(*************** QuickLD compiler **********************)
(*************** Copyright ICS Triplex ISaGRAF *********)
(*************** ST ************************************)

(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB1 := TRUE ;
IF __EDTB1 THEN
LOCALADDR[1] := ANY_TO_WORD(0) ;
END_IF ;
__MO_ANY_TO_WORD_1 := __EDTB1 ;
__EDTB2 := __EDTB1 ;
__EDTB3 := TRUE ;
IF __EDTB3 THEN
LOCALADDR[22] := ANY_TO_WORD(0) ;
END_IF ;
__MO_ANY_TO_WORD_2 := __EDTB3 ;
__EDTB4 := __EDTB3 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB6 := TRUE ;
IF __EDTB6 THEN
(* Operator output on : <> with __EDTB5 *)
__EDTB5 := (CONTROL_COMMANDS <> OLD_CONTROL_CMD) ;
ELSE
__EDTB5 := FALSE ;
END_IF ;
__MO_DIFF_1 := __EDTB5 ;
ENABLE_CONTROL_COMMANDS := __EDTB5 ;
__EDTB8 := TRUE ;
IF __EDTB8 THEN
(* Operator output on : <> with __EDTB7 *)
__EDTB7 := (TARGET_VALUE <> OLD_TARGET_VALUE) ;
ELSE
__EDTB7 := FALSE ;
END_IF ;
__MO_DIFF_2 := __EDTB7 ;
ENABLE_TARGET_VALUE := __EDTB7 ;
__EDTB10 := TRUE ;
IF __EDTB10 THEN
(* Operator output on : <> with __EDTB9 *)
__EDTB9 := (COARSE_VALUE <> OLD_COARSE_VALUE) ;
ELSE
__EDTB9 := FALSE ;
END_IF ;
__MO_DIFF_3 := __EDTB9 ;
ENABLE_COARSE_VALUE := __EDTB9 ;
__EDTB12 := TRUE ;
IF __EDTB12 THEN
(* Operator output on : <> with __EDTB11 *)
__EDTB11 := (FINE_VALUE <> OLD_FINE_VALUE) ;
ELSE
__EDTB11 := FALSE ;
END_IF ;
__MO_DIFF_4 := __EDTB11 ;
ENABLE_FINE_VALUE := __EDTB11 ;
__EDTB14 := TRUE ;
IF __EDTB14 THEN
(* Operator output on : <> with __EDTB13 *)
__EDTB13 := (CALIBRATION_COMMANDS <> OLD_CALIBRATION_COMMANDS) ;
ELSE
__EDTB13 := FALSE ;
END_IF ;
__MO_DIFF_5 := __EDTB13 ;
ENABLE_CALIBRATION_COMMANDS := __EDTB13 ;
__EDTB16 := TRUE ;
IF __EDTB16 THEN
(* Operator output on : <> with __EDTB15 *)
__EDTB15 := (SPAN_CALB_VALUE <> OLD_SPAN_CALB_VALUE) ;
ELSE
__EDTB15 := FALSE ;
END_IF ;
__MO_DIFF_6 := __EDTB15 ;
ENABLE_SPAN_CALB_VALUE := __EDTB15 ;
__EDTB18 := TRUE ;
IF __EDTB18 THEN
(* Operator output on : <> with __EDTB17 *)
__EDTB17 := (DIGITAL_OUTPUTS <> OLD_DIGITAL_OUTPUTS) ;
ELSE
__EDTB17 := FALSE ;
END_IF ;
__MO_DIFF_7 := __EDTB17 ;
ENABLE_DIGITAL_OUTPUTS := __EDTB17 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB19 := ENABLE_CONTROL_COMMANDS ;
__EDTB20 := ENABLE_TARGET_VALUE ;
__EDTB21 := ENABLE_COARSE_VALUE ;
__EDTB22 := ENABLE_FINE_VALUE ;
__EDTB23 := ENABLE_CALIBRATION_COMMANDS ;
__EDTB24 := ENABLE_SPAN_CALB_VALUE ;
__EDTB25 := ENABLE_DIGITAL_OUTPUTS ;
__EDTB26 := (__EDTB24 OR __EDTB25) ;
__EDTB27 := (__EDTB23 OR __EDTB26) ;
__EDTB28 := (__EDTB22 OR __EDTB27) ;
__EDTB29 := (__EDTB21 OR __EDTB28) ;
__EDTB30 := (__EDTB20 OR __EDTB29) ;
__EDTB31 := (__EDTB19 OR __EDTB30) ;
IF __EDTB31 THEN
(*Set coil*)
ENABLE := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB32 := TRUE ;
IF __EDTB32 THEN
TARGETCFG.NODE := (  NODEADRESS) ;
END_IF ;
__MO_1GAIN_1 := __EDTB32 ;
__EDTB33 := __EDTB32 ;
__EDTB34 := TRUE ;
IF __EDTB34 THEN
LOCALCFG.CHANNEL := (  CHANNEL) ;
END_IF ;
__MO_1GAIN_2 := __EDTB34 ;
__EDTB35 := __EDTB34 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB36 := ENABLE_CONTROL_COMMANDS ;
IF __EDTB36 THEN
LOCALADDR[1] := ANY_TO_WORD(CONTROL_COMMANDS) ;
END_IF ;
__MO_ANY_TO_WORD_3 := __EDTB36 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB37 := ENABLE_TARGET_VALUE ;
IF __EDTB37 THEN
DINT4 := AND_MASK(TARGET_VALUE, 65535) ;
END_IF ;
__MO_AND_MASK_1 := __EDTB37 ;
__EDTB38 := __EDTB37 ;
IF __EDTB38 THEN
LOCALADDR[4] := ANY_TO_WORD(DINT4) ;
END_IF ;
__MO_ANY_TO_WORD_4 := __EDTB38 ;
__EDTB39 := __EDTB38 ;
__EDTB40 := ENABLE_TARGET_VALUE ;
IF __EDTB40 THEN
DINT3 := SHR(TARGET_VALUE, 16) ;
END_IF ;
__MO_SHR_1 := __EDTB40 ;
__EDTB41 := __EDTB40 ;
IF __EDTB41 THEN
LOCALADDR[3] := ANY_TO_WORD(DINT3) ;
END_IF ;
__MO_ANY_TO_WORD_5 := __EDTB41 ;
__EDTB42 := __EDTB41 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB43 := ENABLE_COARSE_VALUE ;
IF __EDTB43 THEN
DINT8 := AND_MASK(COARSE_VALUE, 65535) ;
END_IF ;
__MO_AND_MASK_2 := __EDTB43 ;
__EDTB44 := __EDTB43 ;
IF __EDTB44 THEN
LOCALADDR[8] := ANY_TO_WORD(DINT8) ;
END_IF ;
__MO_ANY_TO_WORD_6 := __EDTB44 ;
__EDTB45 := __EDTB44 ;
__EDTB46 := ENABLE_COARSE_VALUE ;
IF __EDTB46 THEN
DINT7 := SHR(COARSE_VALUE, 16) ;
END_IF ;
__MO_SHR_2 := __EDTB46 ;
__EDTB47 := __EDTB46 ;
IF __EDTB47 THEN
LOCALADDR[7] := ANY_TO_WORD(DINT7) ;
END_IF ;
__MO_ANY_TO_WORD_7 := __EDTB47 ;
__EDTB48 := __EDTB47 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB49 := ENABLE_FINE_VALUE ;
IF __EDTB49 THEN
DINT10 := AND_MASK(FINE_VALUE, 65535) ;
END_IF ;
__MO_AND_MASK_3 := __EDTB49 ;
__EDTB50 := __EDTB49 ;
IF __EDTB50 THEN
LOCALADDR[10] := ANY_TO_WORD(DINT10) ;
END_IF ;
__MO_ANY_TO_WORD_8 := __EDTB50 ;
__EDTB51 := __EDTB50 ;
__EDTB52 := ENABLE_FINE_VALUE ;
IF __EDTB52 THEN
DINT9 := SHR(FINE_VALUE, 16) ;
END_IF ;
__MO_SHR_3 := __EDTB52 ;
__EDTB53 := __EDTB52 ;
IF __EDTB53 THEN
LOCALADDR[9] := ANY_TO_WORD(DINT9) ;
END_IF ;
__MO_ANY_TO_WORD_9 := __EDTB53 ;
__EDTB54 := __EDTB53 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB55 := ENABLE_DIGITAL_OUTPUTS ;
IF __EDTB55 THEN
LOCALADDR[19] := ANY_TO_WORD(DIGITAL_OUTPUTS) ;
END_IF ;
__MO_ANY_TO_WORD_10 := __EDTB55 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB56 := ENABLE_CALIBRATION_COMMANDS ;
IF __EDTB56 THEN
LOCALADDR[22] := ANY_TO_WORD(CALIBRATION_COMMANDS) ;
END_IF ;
__MO_ANY_TO_WORD_11 := __EDTB56 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB57 := ENABLE_SPAN_CALB_VALUE ;
IF __EDTB57 THEN
DINT24 := AND_MASK(SPAN_CALB_VALUE, 65535) ;
END_IF ;
__MO_AND_MASK_4 := __EDTB57 ;
__EDTB58 := __EDTB57 ;
IF __EDTB58 THEN
LOCALADDR[24] := ANY_TO_WORD(DINT24) ;
END_IF ;
__MO_ANY_TO_WORD_12 := __EDTB58 ;
__EDTB59 := __EDTB58 ;
__EDTB60 := ENABLE_SPAN_CALB_VALUE ;
IF __EDTB60 THEN
DINT23 := SHR(SPAN_CALB_VALUE, 16) ;
END_IF ;
__MO_SHR_4 := __EDTB60 ;
__EDTB61 := __EDTB60 ;
IF __EDTB61 THEN
LOCALADDR[23] := ANY_TO_WORD(DINT23) ;
END_IF ;
__MO_ANY_TO_WORD_13 := __EDTB61 ;
__EDTB62 := __EDTB61 ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
; (*Pulse detection on : RESETBIT with __MEMO__1__RESETBIT *)
__EDTB63 := (RESETBIT AND NOT(__MEMO__1__RESETBIT)) ;
__EDTB64 := __EDTB63 ;
IF __EDTB64 THEN
OLD_CONTROL_CMD := (  CONTROL_COMMANDS) ;
END_IF ;
__MO_1GAIN_3 := __EDTB64 ;
__EDTB65 := __EDTB64 ;
__EDTB66 := __EDTB63 ;
IF __EDTB66 THEN
OLD_TARGET_VALUE := (  TARGET_VALUE) ;
END_IF ;
__MO_1GAIN_4 := __EDTB66 ;
__EDTB67 := __EDTB66 ;
__EDTB68 := __EDTB63 ;
IF __EDTB68 THEN
OLD_COARSE_VALUE := (  COARSE_VALUE) ;
END_IF ;
__MO_1GAIN_5 := __EDTB68 ;
__EDTB69 := __EDTB68 ;
__EDTB70 := __EDTB63 ;
IF __EDTB70 THEN
OLD_FINE_VALUE := (  FINE_VALUE) ;
END_IF ;
__MO_1GAIN_6 := __EDTB70 ;
__EDTB71 := __EDTB70 ;
__EDTB72 := __EDTB63 ;
IF __EDTB72 THEN
OLD_DIGITAL_OUTPUTS := (  DIGITAL_OUTPUTS) ;
END_IF ;
__MO_1GAIN_7 := __EDTB72 ;
__EDTB73 := __EDTB72 ;
__EDTB74 := (__EDTB71 OR __EDTB73) ;
__EDTB75 := __EDTB63 ;
IF __EDTB75 THEN
OLD_CALIBRATION_COMMANDS := (  CALIBRATION_COMMANDS) ;
END_IF ;
__MO_1GAIN_8 := __EDTB75 ;
__EDTB76 := __EDTB75 ;
__EDTB77 := __EDTB63 ;
IF __EDTB77 THEN
OLD_SPAN_CALB_VALUE := (  SPAN_CALB_VALUE) ;
END_IF ;
__MO_1GAIN_9 := __EDTB77 ;
__EDTB78 := __EDTB77 ;
__EDTB79 := (__EDTB76 OR __EDTB78) ;
__EDTB80 := (__EDTB74 OR __EDTB79) ;
__EDTB81 := (__EDTB69 OR __EDTB80) ;
__EDTB82 := (__EDTB67 OR __EDTB81) ;

(*************** Code for the end of Rung **************)
__MEMO__1__RESETBIT := RESETBIT ; (*Pulse detection on : RESETBIT with __MEMO__1__RESETBIT *)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
(* FB call: MSG_MODBUS *)
MSG_MODBUS_1(ENABLE, false, LOCALCFG, TARGETCFG, LOCALADDR, 0) ;
MODBUSERROR := MSG_MODBUS_1.Error ;
MODBUSERRORID := MSG_MODBUS_1.ErrorID ;
__EDTB83 := MSG_MODBUS_1.Q ;
(* FB call: TON *)
TON_1(ENABLE, t#500ms) ;
RESETBIT := TON_1.Q ;

(*************** Code for the end of Rung **************)


(*************** Rung **********************************)
(**)
(*Label :*)(**)
__EDTB84 := TRUE ;
IF __EDTB84 THEN
(*Reset coil*)
ENABLE := FALSE ;
END_IF ;

(*************** Code for the end of Rung **************)


(*************** Code for the end of File **************)
__GL __LG0000 ;



(*************** Local Symbols table *******************)
(* __EDTB1 *)
(* __EDTB2 *)
(* __EDTB3 *)
(* __EDTB4 *)
(* __EDTB5 *)
(* __EDTB6 *)
(* __EDTB7 *)
(* __EDTB8 *)
(* __EDTB9 *)
(* __EDTB10 *)
(* __EDTB11 *)
(* __EDTB12 *)
(* __EDTB13 *)
(* __EDTB14 *)
(* __EDTB15 *)
(* __EDTB16 *)
(* __EDTB17 *)
(* __EDTB18 *)
(* __EDTB19 *)
(* __EDTB20 *)
(* __EDTB21 *)
(* __EDTB22 *)
(* __EDTB23 *)
(* __EDTB24 *)
(* __EDTB25 *)
(* __EDTB26 *)
(* __EDTB27 *)
(* __EDTB28 *)
(* __EDTB29 *)
(* __EDTB30 *)
(* __EDTB31 *)
(* __EDTB32 *)
(* __EDTB33 *)
(* __EDTB34 *)
(* __EDTB35 *)
(* __EDTB36 *)
(* __EDTB37 *)
(* __EDTB38 *)
(* __EDTB39 *)
(* __EDTB40 *)
(* __EDTB41 *)
(* __EDTB42 *)
(* __EDTB43 *)
(* __EDTB44 *)
(* __EDTB45 *)
(* __EDTB46 *)
(* __EDTB47 *)
(* __EDTB48 *)
(* __EDTB49 *)
(* __EDTB50 *)
(* __EDTB51 *)
(* __EDTB52 *)
(* __EDTB53 *)
(* __EDTB54 *)
(* __EDTB55 *)
(* __EDTB56 *)
(* __EDTB57 *)
(* __EDTB58 *)
(* __EDTB59 *)
(* __EDTB60 *)
(* __EDTB61 *)
(* __EDTB62 *)
(* __MEMO__1__RESETBIT *)
(* __EDTB63 *)
(* __EDTB64 *)
(* __EDTB65 *)
(* __EDTB66 *)
(* __EDTB67 *)
(* __EDTB68 *)
(* __EDTB69 *)
(* __EDTB70 *)
(* __EDTB71 *)
(* __EDTB72 *)
(* __EDTB73 *)
(* __EDTB74 *)
(* __EDTB75 *)
(* __EDTB76 *)
(* __EDTB77 *)
(* __EDTB78 *)
(* __EDTB79 *)
(* __EDTB80 *)
(* __EDTB81 *)
(* __EDTB82 *)
(* __EDTB83 *)
(* __EDTB84 *)

