From 39765e002e71a2dd54e932469877acfc1b6fcb67 Mon Sep 17 00:00:00 2001 From: pux Date: Thu, 7 Jan 2021 19:39:17 +0100 Subject: add *.exp; (this is redundant information, just to be able to diff later on) --- exp/FB_BECKHOFF_EL5101_INC.EXP | 62 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 exp/FB_BECKHOFF_EL5101_INC.EXP (limited to 'exp/FB_BECKHOFF_EL5101_INC.EXP') diff --git a/exp/FB_BECKHOFF_EL5101_INC.EXP b/exp/FB_BECKHOFF_EL5101_INC.EXP new file mode 100644 index 0000000..e262631 --- /dev/null +++ b/exp/FB_BECKHOFF_EL5101_INC.EXP @@ -0,0 +1,62 @@ + +(* @NESTEDCOMMENTS := 'Yes' *) +(* @PATH := '\/TEMP' *) +(* @OBJECTFLAGS := '0, 8' *) +(* @SYMFILEFLAGS := '2048' *) +FUNCTION_BLOCK FB_BECKHOFF_EL5101_INC + +VAR_INPUT + E_InfoData_AdsAddr_port AT%I* : INT; + E_InfoData_State AT%I* : INT; + + E_CounterValue AT%I* : UINT; + UEboReferenzieren : BOOL; + UErSkalierung : REAL; + UErRefWertMm : REAL; +END_VAR + +VAR_OUTPUT + A_SetCounter AT%Q* : BOOL; + A_SetCounterValue AT%Q* : UINT; + UAboReferenziert : BOOL; + UArWert: REAL; +END_VAR + +VAR + pfReferenzieren : R_TRIG; +END_VAR + + +(* @END_DECLARATION := '0' *) +(***************************************************) +(** Beckhoff EL5101 Incremental Encoder Interface **) +(***************************************************) + +a_Referenzieren(); + +UArWert := E_CounterValue / UErSkalierung; +END_FUNCTION_BLOCK +ACTION a_Referenzieren: +pfReferenzieren(clk:= + UEboReferenzieren + AND E_InfoData_State = 8 (* Op *) +); +UEboReferenzieren := FALSE; + + +A_SetCounter := 0; +(* z.B. RefWertMm = 432 + Skalierung = 25 + => 10800 *) +A_SetCounterValue := + REAL_TO_UINT(UErRefWertMm + * UErSkalierung); + (* TODO: Andere Typen? *) + + +IF pfReferenzieren.Q THEN + A_SetCounter := 1; + UAboReferenziert := TRUE; +END_IF +END_ACTION + -- cgit v1.2.2-1-g5e49