Updates program to read units and status

This commit is contained in:
Patrick McDonagh
2018-03-21 16:33:24 -05:00
parent 61822d3158
commit d2dda282d7
144 changed files with 4027 additions and 1234 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
<modbusServer Version="2.0">
</modbusServer>

View File

@@ -4,3 +4,5 @@ FLOWMETERAI
PRESSURE
LINEARSCALE
WORDSTOREAL
FLOWRATEUNITS
FLOWTOTALUNITS

View File

@@ -0,0 +1,56 @@
MODBUSTIMER.IN@FLOWMETERMB,__TMPB__TON__IN,BOOL
MODBUSTIMER.PT@FLOWMETERMB,MODBUSSCANRATE@FLOWMETERMB,TIME
WAIT_TO_RESET_TON.IN@FLOWMETERMB,CMD_CLEARRESETTOTALIZER@FLOWMETERMB,BOOL
WAIT_TO_RESET_TON.PT@FLOWMETERMB,PAR_TIMETOWAITTOCLEARRESETTOTALIZER@FLOWMETERMB,TIME
MODBUSERRORTIMER.IN@FLOWMETERMB,__TMPB__TON__IN,BOOL
MODBUSERRORTIMER.PT@FLOWMETERMB,MODBUSERRORDURATION,TIME
TON_TOTALIZER.IN@FLOWMETERAI,__TMPB__TON__IN,BOOL
TON_TOTALIZER.PT@FLOWMETERAI,__CTIME00002710,TIME
MBS_FLOWRATE_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_FLOWRATE_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_FLOWRATE_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_FLOWRATE_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_FLOWRATE_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_FLOWRATE_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_FLOWTOTALIZERA_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_FLOWTOTALIZERA_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_FLOWTOTALIZERA_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_FLOWTOTALIZERA_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_FLOWTOTALIZERA_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_FLOWTOTALIZERA_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_FLOWTOTALIZERB_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_FLOWTOTALIZERB_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_FLOWTOTALIZERB_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_FLOWTOTALIZERB_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_FLOWTOTALIZERB_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_FLOWTOTALIZERB_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_FLOWTOTALIZERC_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_FLOWTOTALIZERC_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_FLOWTOTALIZERC_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_FLOWTOTALIZERC_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_FLOWTOTALIZERC_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_FLOWTOTALIZERC_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_STATUS_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_STATUS_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_STATUS_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_STATUS_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_STATUS_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_STATUS_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_RESETTOTALIZER_MSG.IN@FLOWMETERMB,CMD_RESETTOTALIZER@FLOWMETERMB,BOOL
MBS_RESETTOTALIZER_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_RESETTOTALIZER_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_RESETTOTALIZER_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_RESETTOTALIZER_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_RESETTOTALIZER_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_CLEARRESETTOTALIZER_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_CLEARRESETTOTALIZER_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_CLEARRESETTOTALIZER_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_CLEARRESETTOTALIZER_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_CLEARRESETTOTALIZER_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_CLEARRESETTOTALIZER_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT
MBS_UNITS_MSG.IN@FLOWMETERMB,__TMPB__MSG_MODBUS__IN,BOOL
MBS_UNITS_MSG.CANCEL@FLOWMETERMB,MBS_CANCEL@FLOWMETERMB,BOOL
MBS_UNITS_MSG.LOCALCFG@FLOWMETERMB,<NOT USED>,MODBUSLOCPARA
MBS_UNITS_MSG.TARGETCFG@FLOWMETERMB,<NOT USED>,MODBUSTARPARA
MBS_UNITS_MSG.LOCALADDR@FLOWMETERMB,<NOT USED>,MODBUSLOCADDR
MBS_UNITS_MSG.__ADI_LOCALADDR@FLOWMETERMB,<NOT USED>,UINT

View File

@@ -15,35 +15,46 @@ _PUSH_PAR FLOW_EU_MIN
_PUSH_PAR FLOW_EU_MAX
_PUSH_PAR VAL_AI00_UA
__TMPR5 := _CALL LINEARSCALE
VAL_FLOWGROSS := __TMPR5
VAL_FLOWRATE := __TMPR5
__TMPB1 := TON_TOTALIZER [ __CDINT00000004 ]
__TMPB1 := _NOT __TMPB1
__TMPB__TON__IN := __TMPB1
__FBL_RET := _PUSHCALLFB TON TON_TOTALIZER
__TMPB1 := TON_TOTALIZER [ __CDINT00000004 ]
_IF _NOT __TMPB1 _GOTO __LAB2
__TMPB2 := VAL_FLOWGROSS > __TMPR7
__TMPB2 := VAL_FLOWRATE > __TMPR7
_IF _NOT __TMPB2 _GOTO __LAB3
__TMPR5 := __TMPR8 / __TMPR9
__TMPR6 := VAL_FLOWGROSS * __TMPR5
__TMPR10 := VAL_FLOWTOTALPOS + __TMPR6
VAL_FLOWTOTALPOS := __TMPR10
__TMPR6 := VAL_FLOWRATE * __TMPR5
__TMPR10 := VAL_FLOWTOTALIZERB + __TMPR6
VAL_FLOWTOTALIZERB := __TMPR10
_GOTO __LAB4
__LAB3 :
__TMPR5 := __TMPR8 / __TMPR9
__TMPR6 := VAL_FLOWGROSS * __TMPR5
__TMPR10 := VAL_FLOWTOTALNEG + __TMPR6
VAL_FLOWTOTALNEG := __TMPR10
__TMPR6 := VAL_FLOWRATE * __TMPR5
__TMPR10 := VAL_FLOWTOTALIZERC + __TMPR6
VAL_FLOWTOTALIZERC := __TMPR10
__LAB4 :
_GOTO __LAB5
__LAB2 :
__LAB5 :
_IF _NOT CMD_CLEARFLOWTOTALS _GOTO __LAB6
VAL_FLOWTOTALNEG := __TMPR7
VAL_FLOWTOTALPOS := __TMPR7
__TMPR5 := VAL_FLOWTOTALIZERB + VAL_FLOWTOTALIZERC
VAL_FLOWTOTALIZERA := __TMPR5
_IF _NOT CMD_RESETTOTALIZERA _GOTO __LAB6
VAL_FLOWTOTALIZERA := __TMPR7
_GOTO __LAB7
__LAB6 :
__LAB7 :
_GOTO __LAB8
__LAB1 :
_IF _NOT CMD_RESETTOTALIZERB _GOTO __LAB8
VAL_FLOWTOTALIZERB := __TMPR7
_GOTO __LAB9
__LAB8 :
__LAB9 :
_IF _NOT CMD_RESETTOTALIZERC _GOTO __LABa
VAL_FLOWTOTALIZERC := __TMPR7
_GOTO __LABb
__LABa :
__LABb :
_GOTO __LABc
__LAB1 :
__LABc :

View File

@@ -0,0 +1 @@
FLOWMETERMB(150):F,WORDSTOREAL(148);F,RIGHT();F,MLEN();F,FLOWRATEUNITS(153);F,FLOWTOTALUNITS(154);

View File

@@ -0,0 +1,778 @@
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPB1 := _NOT __TMPB1
__TMPB1 := __TMPB1 _AND USE_MODBUSFLOWMETER
__TMPB__TON__IN := __TMPB1
__FBL_RET := _PUSHCALLFB TON MODBUSTIMER
MBS_FLOWRATE_TARGETCFG [ __DINT_NULL ] := CFG_FLOWRATE_REGISTER
MBS_FLOWRATE_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_FLOWRATE_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_FLOWRATE_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_FLOWRATE_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_FLOWRATE_LOCALCFG [ __CDINT00000004 ] := __CUINT00000002
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_FLOWRATE_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_FLOWRATE_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_FLOWRATE_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_FLOWRATE_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_FLOWRATE_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_FLOWRATE_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_FLOWRATE_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_0
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_FLOWRATE_MSG
__TMPB1 := MBS_FLOWRATE_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB1
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_FLOWRATE_DATA [ __TMPI1 ]
__TMPI2 := __CDINT00000002 - __CDINT00000001
__TMPI2 := __TMPI2 * __CDINT00000002
__TMPUIN2 := MBS_FLOWRATE_DATA [ __TMPI2 ]
_PUSH_PAR __TMPUIN1
_PUSH_PAR __TMPUIN2
__TMPR1 := _CALL WORDSTOREAL
VAL_FLOWRATE := __TMPR1
_GOTO __LAB2
__LAB1 :
__LAB2 :
MBS_FLOWTOTALIZERA_TARGETCFG [ __DINT_NULL ] := CFG_FLOWTOTALIZERA_REGISTER
MBS_FLOWTOTALIZERA_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_FLOWTOTALIZERA_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_FLOWTOTALIZERA_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_FLOWTOTALIZERA_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_FLOWTOTALIZERA_LOCALCFG [ __CDINT00000004 ] := __CUINT00000002
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_FLOWTOTALIZERA_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_FLOWTOTALIZERA_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_FLOWTOTALIZERA_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_FLOWTOTALIZERA_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_FLOWTOTALIZERA_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_FLOWTOTALIZERA_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_FLOWTOTALIZERA_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_1
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_FLOWTOTALIZERA_MSG
__TMPB1 := MBS_FLOWTOTALIZERA_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB3
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_FLOWTOTALIZERA_DATA [ __TMPI1 ]
__TMPI2 := __CDINT00000002 - __CDINT00000001
__TMPI2 := __TMPI2 * __CDINT00000002
__TMPUIN2 := MBS_FLOWTOTALIZERA_DATA [ __TMPI2 ]
_PUSH_PAR __TMPUIN1
_PUSH_PAR __TMPUIN2
__TMPR1 := _CALL WORDSTOREAL
VAL_FLOWTOTALIZERA := __TMPR1
_GOTO __LAB4
__LAB3 :
__LAB4 :
MBS_FLOWTOTALIZERB_TARGETCFG [ __DINT_NULL ] := CFG_FLOWTOTALIZERB_REGISTER
MBS_FLOWTOTALIZERB_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_FLOWTOTALIZERB_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_FLOWTOTALIZERB_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_FLOWTOTALIZERB_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_FLOWTOTALIZERB_LOCALCFG [ __CDINT00000004 ] := __CUINT00000002
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_FLOWTOTALIZERB_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_FLOWTOTALIZERB_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_FLOWTOTALIZERB_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_FLOWTOTALIZERB_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_FLOWTOTALIZERB_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_FLOWTOTALIZERB_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_FLOWTOTALIZERB_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_2
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_FLOWTOTALIZERB_MSG
__TMPB1 := MBS_FLOWTOTALIZERB_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB5
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_FLOWTOTALIZERB_DATA [ __TMPI1 ]
__TMPI2 := __CDINT00000002 - __CDINT00000001
__TMPI2 := __TMPI2 * __CDINT00000002
__TMPUIN2 := MBS_FLOWTOTALIZERB_DATA [ __TMPI2 ]
_PUSH_PAR __TMPUIN1
_PUSH_PAR __TMPUIN2
__TMPR1 := _CALL WORDSTOREAL
VAL_FLOWTOTALIZERB := __TMPR1
_GOTO __LAB6
__LAB5 :
__LAB6 :
MBS_FLOWTOTALIZERC_TARGETCFG [ __DINT_NULL ] := CFG_FLOWTOTALIZERC_REGISTER
MBS_FLOWTOTALIZERC_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_FLOWTOTALIZERC_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_FLOWTOTALIZERC_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_FLOWTOTALIZERC_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_FLOWTOTALIZERC_LOCALCFG [ __CDINT00000004 ] := __CUINT00000002
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_FLOWTOTALIZERC_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_FLOWTOTALIZERC_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_FLOWTOTALIZERC_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_FLOWTOTALIZERC_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_FLOWTOTALIZERC_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_FLOWTOTALIZERC_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_FLOWTOTALIZERC_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_3
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_FLOWTOTALIZERC_MSG
__TMPB1 := MBS_FLOWTOTALIZERC_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB7
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_FLOWTOTALIZERC_DATA [ __TMPI1 ]
__TMPI2 := __CDINT00000002 - __CDINT00000001
__TMPI2 := __TMPI2 * __CDINT00000002
__TMPUIN2 := MBS_FLOWTOTALIZERC_DATA [ __TMPI2 ]
_PUSH_PAR __TMPUIN1
_PUSH_PAR __TMPUIN2
__TMPR1 := _CALL WORDSTOREAL
VAL_FLOWTOTALIZERC := __TMPR1
_GOTO __LAB8
__LAB7 :
__LAB8 :
MBS_STATUS_TARGETCFG [ __DINT_NULL ] := CFG_STATUS_REGISTER
MBS_STATUS_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_STATUS_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_STATUS_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_STATUS_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_STATUS_LOCALCFG [ __CDINT00000004 ] := __CUINT00000003
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_STATUS_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_STATUS_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_STATUS_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_STATUS_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_STATUS_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_STATUS_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_STATUS_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_4
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_STATUS_MSG
__TMPB1 := MBS_STATUS_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB9
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_STATUS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPUIN2 := _CALL ANY_TO_UINT
VAL_STATUS0 := __TMPUIN2
__TMPI1 := __CDINT00000002 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_STATUS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPUIN2 := _CALL ANY_TO_UINT
VAL_STATUS1 := __TMPUIN2
__TMPI1 := __CDINT00000003 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_STATUS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPUIN2 := _CALL ANY_TO_UINT
VAL_STATUS2 := __TMPUIN2
_GOTO __LABa
__LAB9 :
__LABa :
__TMPUIN1 := VAL_STATUS0 + VAL_STATUS1
__TMPUIN1 := __TMPUIN1 + VAL_STATUS2
__TMPB1 := __TMPUIN1 = __UINT_NULL
_IF _NOT __TMPB1 _GOTO __LABb
VAL_STATUSSTRING := __TMPM1
_GOTO __LABc
__LABb :
VAL_STATUSSTRING := __STRING_NULL
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __DINT_NULL
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LABd
__TMPM3 := VAL_STATUSSTRING + __TMPM2
VAL_STATUSSTRING := __TMPM3
_GOTO __LABe
__LABd :
__LABe :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000001
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LABf
__TMPM3 := VAL_STATUSSTRING + __TMPM4
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB10
__LABf :
__LAB10 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000002
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB11
__TMPM3 := VAL_STATUSSTRING + __TMPM5
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB12
__LAB11 :
__LAB12 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000003
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB13
__TMPM3 := VAL_STATUSSTRING + __TMPM6
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB14
__LAB13 :
__LAB14 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000004
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB15
__TMPM3 := VAL_STATUSSTRING + __TMPM7
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB16
__LAB15 :
__LAB16 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000005
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB17
__TMPM3 := VAL_STATUSSTRING + __TMPM8
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB18
__LAB17 :
__LAB18 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000006
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB19
__TMPM3 := VAL_STATUSSTRING + __TMPM9
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB1a
__LAB19 :
__LAB1a :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000007
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB1b
__TMPM3 := VAL_STATUSSTRING + __TMPM10
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB1c
__LAB1b :
__LAB1c :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000008
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB1d
__TMPM3 := VAL_STATUSSTRING + __TMPM11
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB1e
__LAB1d :
__LAB1e :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT00000009
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB1f
__TMPM3 := VAL_STATUSSTRING + __TMPM12
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB20
__LAB1f :
__LAB20 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000A
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB21
__TMPM3 := VAL_STATUSSTRING + __TMPM13
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB22
__LAB21 :
__LAB22 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000B
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB23
__TMPM3 := VAL_STATUSSTRING + __TMPM14
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB24
__LAB23 :
__LAB24 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000C
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB25
__TMPM3 := VAL_STATUSSTRING + __TMPM15
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB26
__LAB25 :
__LAB26 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000D
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB27
__TMPM3 := VAL_STATUSSTRING + __TMPM16
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB28
__LAB27 :
__LAB28 :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000E
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB29
__TMPM3 := VAL_STATUSSTRING + __TMPM17
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB2a
__LAB29 :
__LAB2a :
_PUSH_PAR VAL_STATUS0
_PUSH_PAR __CDINT0000000F
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB2b
__TMPM3 := VAL_STATUSSTRING + __TMPM18
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB2c
__LAB2b :
__LAB2c :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __DINT_NULL
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB2d
__TMPM3 := VAL_STATUSSTRING + __TMPM19
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB2e
__LAB2d :
__LAB2e :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000001
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB2f
__TMPM3 := VAL_STATUSSTRING + __TMPM20
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB30
__LAB2f :
__LAB30 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000002
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB31
__TMPM3 := VAL_STATUSSTRING + __TMPM21
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB32
__LAB31 :
__LAB32 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000003
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB33
__TMPM3 := VAL_STATUSSTRING + __TMPM22
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB34
__LAB33 :
__LAB34 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000004
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB35
__TMPM3 := VAL_STATUSSTRING + __TMPM23
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB36
__LAB35 :
__LAB36 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000005
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB37
__TMPM3 := VAL_STATUSSTRING + __TMPM24
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB38
__LAB37 :
__LAB38 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000006
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB39
__TMPM3 := VAL_STATUSSTRING + __TMPM25
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB3a
__LAB39 :
__LAB3a :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000007
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB3b
__TMPM3 := VAL_STATUSSTRING + __TMPM26
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB3c
__LAB3b :
__LAB3c :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000008
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB3d
__TMPM3 := VAL_STATUSSTRING + __TMPM27
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB3e
__LAB3d :
__LAB3e :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT00000009
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB3f
__TMPM3 := VAL_STATUSSTRING + __TMPM28
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB40
__LAB3f :
__LAB40 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000A
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB41
__TMPM3 := VAL_STATUSSTRING + __TMPM29
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB42
__LAB41 :
__LAB42 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000B
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB43
__TMPM3 := VAL_STATUSSTRING + __TMPM30
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB44
__LAB43 :
__LAB44 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000C
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB45
__TMPM3 := VAL_STATUSSTRING + __TMPM31
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB46
__LAB45 :
__LAB46 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000D
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB47
__TMPM3 := VAL_STATUSSTRING + __TMPM32
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB48
__LAB47 :
__LAB48 :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000E
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB49
__TMPM3 := VAL_STATUSSTRING + __TMPM33
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB4a
__LAB49 :
__LAB4a :
_PUSH_PAR VAL_STATUS1
_PUSH_PAR __CDINT0000000F
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB4b
__TMPM3 := VAL_STATUSSTRING + __TMPM34
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB4c
__LAB4b :
__LAB4c :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __DINT_NULL
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB4d
__TMPM3 := VAL_STATUSSTRING + __TMPM35
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB4e
__LAB4d :
__LAB4e :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000001
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB4f
__TMPM3 := VAL_STATUSSTRING + __TMPM36
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB50
__LAB4f :
__LAB50 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000002
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB51
__TMPM3 := VAL_STATUSSTRING + __TMPM37
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB52
__LAB51 :
__LAB52 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000003
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB53
__TMPM3 := VAL_STATUSSTRING + __TMPM38
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB54
__LAB53 :
__LAB54 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000004
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB55
__TMPM3 := VAL_STATUSSTRING + __TMPM39
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB56
__LAB55 :
__LAB56 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000005
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB57
__TMPM3 := VAL_STATUSSTRING + __TMPM40
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB58
__LAB57 :
__LAB58 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000006
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB59
__TMPM3 := VAL_STATUSSTRING + __TMPM41
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB5a
__LAB59 :
__LAB5a :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000007
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB5b
__TMPM3 := VAL_STATUSSTRING + __TMPM42
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB5c
__LAB5b :
__LAB5c :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000008
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB5d
__TMPM3 := VAL_STATUSSTRING + __TMPM43
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB5e
__LAB5d :
__LAB5e :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT00000009
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB5f
__TMPM3 := VAL_STATUSSTRING + __TMPM44
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB60
__LAB5f :
__LAB60 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000A
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB61
__TMPM3 := VAL_STATUSSTRING + __TMPM45
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB62
__LAB61 :
__LAB62 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000B
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB63
__TMPM3 := VAL_STATUSSTRING + __TMPM46
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB64
__LAB63 :
__LAB64 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000C
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB65
__TMPM3 := VAL_STATUSSTRING + __TMPM47
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB66
__LAB65 :
__LAB66 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000D
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB67
__TMPM3 := VAL_STATUSSTRING + __TMPM48
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB68
__LAB67 :
__LAB68 :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000E
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB69
__TMPM3 := VAL_STATUSSTRING + __TMPM49
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB6a
__LAB69 :
__LAB6a :
_PUSH_PAR VAL_STATUS2
_PUSH_PAR __CDINT0000000F
__TMPB1 := _CALL __ANARBIT
_IF _NOT __TMPB1 _GOTO __LAB6b
__TMPM3 := VAL_STATUSSTRING + __TMPM50
VAL_STATUSSTRING := __TMPM3
_GOTO __LAB6c
__LAB6b :
__LAB6c :
_PUSH_PAR VAL_STATUSSTRING
__TMPI1 := _CALL MLEN
__TMPI1 := __TMPI1 - __CDINT00000002
_PUSH_PAR VAL_STATUSSTRING
_PUSH_PAR __TMPI1
__TMPM3 := _CALL RIGHT
VAL_STATUSSTRING := __TMPM3
__LABc :
__TMPB1 := CMD_RESETTOTALIZERA _OR CMD_RESETTOTALIZERB
__TMPB1 := __TMPB1 _OR CMD_RESETTOTALIZERC
CMD_RESETTOTALIZER := __TMPB1
_IF _NOT CMD_RESETTOTALIZERA _GOTO __LAB6d
MBS_RESETTOTALIZER_TARGETCFG [ __DINT_NULL ] := CFG_RESETTOTALIZERA_COIL
_GOTO __LAB6e
__LAB6d :
_IF _NOT CMD_RESETTOTALIZERB _GOTO __LAB6f
MBS_RESETTOTALIZER_TARGETCFG [ __DINT_NULL ] := CFG_RESETTOTALIZERB_COIL
_GOTO __LAB6e
__LAB6f :
_IF _NOT CMD_RESETTOTALIZERC _GOTO __LAB70
MBS_RESETTOTALIZER_TARGETCFG [ __DINT_NULL ] := CFG_RESETTOTALIZERC_COIL
_GOTO __LAB6e
__LAB70 :
__LAB6e :
MBS_RESETTOTALIZER_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_RESETTOTALIZER_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000003 ] := WRITECOIL_CMD
MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000002 ] := __USINT_NULL
MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000004 ] := __CUINT00000001
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
MBS_RESETTOTALIZER_DATA [ __TMPI1 ] := __CUINT00000001
__TMPV1 := MBS_RESETTOTALIZER_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_RESETTOTALIZER_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_RESETTOTALIZER_DATA [ __DINT_NULL ]
__TMPV4 := MBS_RESETTOTALIZER_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_RESETTOTALIZER_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_RESETTOTALIZER_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_RESETTOTALIZER_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_5
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_RESETTOTALIZER_MSG
__TMPB1 := MBS_RESETTOTALIZER_MSG [ __CDINT0000000C ]
__TMPB2 := MBS_RESETTOTALIZER_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB2
_IF _NOT __TMPB1 _GOTO __LAB71
CMD_CLEARRESETTOTALIZER := TRUE
CMD_RESETTOTALIZERA := FALSE
CMD_RESETTOTALIZERB := FALSE
CMD_RESETTOTALIZERC := FALSE
_GOTO __LAB72
__LAB71 :
__LAB72 :
__FBL_RET := _PUSHCALLFB TON WAIT_TO_RESET_TON
__TMPUDI1 := MBS_RESETTOTALIZER_TARGETCFG [ __DINT_NULL ]
MBS_CLEARRESETTOTALIZER_TARGETCFG [ __DINT_NULL ] := __TMPUDI1
__TMPUSI1 := MBS_RESETTOTALIZER_TARGETCFG [ __CDINT00000004 ]
MBS_CLEARRESETTOTALIZER_TARGETCFG [ __CDINT00000004 ] := __TMPUSI1
__TMPUIN1 := MBS_RESETTOTALIZER_LOCALCFG [ __DINT_NULL ]
MBS_CLEARRESETTOTALIZER_LOCALCFG [ __DINT_NULL ] := __TMPUIN1
__TMPUSI1 := MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000003 ]
MBS_CLEARRESETTOTALIZER_LOCALCFG [ __CDINT00000003 ] := __TMPUSI1
__TMPUSI1 := MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000002 ]
MBS_CLEARRESETTOTALIZER_LOCALCFG [ __CDINT00000002 ] := __TMPUSI1
__TMPUIN1 := MBS_RESETTOTALIZER_LOCALCFG [ __CDINT00000004 ]
MBS_CLEARRESETTOTALIZER_LOCALCFG [ __CDINT00000004 ] := __TMPUIN1
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
MBS_CLEARRESETTOTALIZER_DATA [ __TMPI1 ] := __UINT_NULL
__TMPB1 := WAIT_TO_RESET_TON [ __CDINT00000004 ]
__TMPV1 := MBS_CLEARRESETTOTALIZER_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_CLEARRESETTOTALIZER_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_CLEARRESETTOTALIZER_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_CLEARRESETTOTALIZER_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_CLEARRESETTOTALIZER_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_CLEARRESETTOTALIZER_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_CLEARRESETTOTALIZER_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_6
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_CLEARRESETTOTALIZER_MSG
__TMPB1 := MBS_CLEARRESETTOTALIZER_MSG [ __CDINT0000000C ]
__TMPB2 := MBS_CLEARRESETTOTALIZER_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB2
_IF _NOT __TMPB1 _GOTO __LAB73
CMD_CLEARRESETTOTALIZER := FALSE
_GOTO __LAB74
__LAB73 :
__LAB74 :
MBS_UNITS_TARGETCFG [ __DINT_NULL ] := CFG_UNITS_REGISTER
MBS_UNITS_TARGETCFG [ __CDINT00000004 ] := CFG_FLOWMETER_MODBUSNODE
MBS_UNITS_LOCALCFG [ __DINT_NULL ] := __CUINT00000002
MBS_UNITS_LOCALCFG [ __CDINT00000003 ] := READ_CMD
MBS_UNITS_LOCALCFG [ __CDINT00000002 ] := MBS_TRIGGERTYPE
MBS_UNITS_LOCALCFG [ __CDINT00000004 ] := __CUINT00000004
__TMPB1 := MODBUSTIMER [ __CDINT00000004 ]
__TMPV1 := MBS_UNITS_LOCALCFG [ __DINT_NULL ]
__TMPV2 := MBS_UNITS_TARGETCFG [ __DINT_NULL ]
__TMPV3 := MBS_UNITS_DATA [ __DINT_NULL ]
__TMPB__MSG_MODBUS__IN := __TMPB1
__TMPV4 := MBS_UNITS_MSG [ __CDINT00000004 ]
__TMPV4 := __TMPV1
__TMPV5 := MBS_UNITS_MSG [ __CDINT00000006 ]
__TMPV5 := __TMPV2
__TMPV6 := MBS_UNITS_MSG [ __CDINT00000008 ]
__TMPV6 := __TMPV3
MBS_UNITS_MSG [ __CDINT0000000A ] := __ADI__FLOWMETERMB_0_7
__FBL_RET := _PUSHCALLFB MSG_MODBUS MBS_UNITS_MSG
__TMPB1 := MBS_UNITS_MSG [ __CDINT0000000C ]
_IF _NOT __TMPB1 _GOTO __LAB75
__TMPI1 := __CDINT00000001 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_UNITS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPM3 := _CALL FLOWRATEUNITS
VAL_FLOWUNITS := __TMPM3
__TMPI1 := __CDINT00000002 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_UNITS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPM3 := _CALL FLOWTOTALUNITS
VAL_FLOWTOTALIZERAUNITS := __TMPM3
__TMPI1 := __CDINT00000003 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_UNITS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPM3 := _CALL FLOWTOTALUNITS
VAL_FLOWTOTALIZERBUNITS := __TMPM3
__TMPI1 := __CDINT00000004 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_UNITS_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPM3 := _CALL FLOWTOTALUNITS
VAL_FLOWTOTALIZERCUNITS := __TMPM3
_GOTO __LAB76
__LAB75 :
__LAB76 :
__TMPB1 := MBS_FLOWRATE_MSG [ __CDINT0000000D ]
__TMPB2 := MBS_FLOWTOTALIZERA_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB2
__TMPB3 := MBS_FLOWTOTALIZERB_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB3
__TMPB4 := MBS_FLOWTOTALIZERC_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB4
__TMPB5 := MBS_STATUS_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB5
__TMPB6 := MBS_UNITS_MSG [ __CDINT0000000D ]
__TMPB1 := __TMPB1 _OR __TMPB6
__TMPB1 := _NOT __TMPB1
__TMPB__TON__IN := __TMPB1
__FBL_RET := _PUSHCALLFB TON MODBUSERRORTIMER
__TMPB1 := MODBUSERRORTIMER [ __CDINT00000004 ]
STS_FLOWMETERMODBUSOK := __TMPB1

View File

@@ -0,0 +1,147 @@
__TMPB1 := INTEGERVALUE = __CUINT000000F1
_IF _NOT __TMPB1 _GOTO __LAB1
FLOWRATEUNITS := __TMPM1
_GOTO __LAB2
__LAB1 :
__TMPB1 := INTEGERVALUE = __CUINT000000F2
_IF _NOT __TMPB1 _GOTO __LAB3
FLOWRATEUNITS := __TMPM2
_GOTO __LAB2
__LAB3 :
__TMPB1 := INTEGERVALUE = __CUINT000000F3
_IF _NOT __TMPB1 _GOTO __LAB4
FLOWRATEUNITS := __TMPM3
_GOTO __LAB2
__LAB4 :
__TMPB1 := INTEGERVALUE = __CUINT000000F4
_IF _NOT __TMPB1 _GOTO __LAB5
FLOWRATEUNITS := __TMPM4
_GOTO __LAB2
__LAB5 :
__TMPB1 := INTEGERVALUE = __CUINT00000084
_IF _NOT __TMPB1 _GOTO __LAB6
FLOWRATEUNITS := __TMPM5
_GOTO __LAB2
__LAB6 :
__TMPB1 := INTEGERVALUE = __CUINT00000085
_IF _NOT __TMPB1 _GOTO __LAB7
FLOWRATEUNITS := __TMPM6
_GOTO __LAB2
__LAB7 :
__TMPB1 := INTEGERVALUE = __CUINT00000086
_IF _NOT __TMPB1 _GOTO __LAB8
FLOWRATEUNITS := __TMPM7
_GOTO __LAB2
__LAB8 :
__TMPB1 := INTEGERVALUE = __CUINT00000087
_IF _NOT __TMPB1 _GOTO __LAB9
FLOWRATEUNITS := __TMPM8
_GOTO __LAB2
__LAB9 :
__TMPB1 := INTEGERVALUE = __CUINT000000F8
_IF _NOT __TMPB1 _GOTO __LABa
FLOWRATEUNITS := __TMPM9
_GOTO __LAB2
__LABa :
__TMPB1 := INTEGERVALUE = __CUINT0000001A
_IF _NOT __TMPB1 _GOTO __LABb
FLOWRATEUNITS := __TMPM10
_GOTO __LAB2
__LABb :
__TMPB1 := INTEGERVALUE = __CUINT0000000F
_IF _NOT __TMPB1 _GOTO __LABc
FLOWRATEUNITS := __TMPM11
_GOTO __LAB2
__LABc :
__TMPB1 := INTEGERVALUE = __CUINT00000082
_IF _NOT __TMPB1 _GOTO __LABd
FLOWRATEUNITS := __TMPM12
_GOTO __LAB2
__LABd :
__TMPB1 := INTEGERVALUE = __CUINT0000001B
_IF _NOT __TMPB1 _GOTO __LABe
FLOWRATEUNITS := __TMPM13
_GOTO __LAB2
__LABe :
__TMPB1 := INTEGERVALUE = __CUINT0000001C
_IF _NOT __TMPB1 _GOTO __LABf
FLOWRATEUNITS := __TMPM14
_GOTO __LAB2
__LABf :
__TMPB1 := INTEGERVALUE = __CUINT00000083
_IF _NOT __TMPB1 _GOTO __LAB10
FLOWRATEUNITS := __TMPM15
_GOTO __LAB2
__LAB10 :
__TMPB1 := INTEGERVALUE = __CUINT00000013
_IF _NOT __TMPB1 _GOTO __LAB11
FLOWRATEUNITS := __TMPM16
_GOTO __LAB2
__LAB11 :
__TMPB1 := INTEGERVALUE = __CUINT0000001D
_IF _NOT __TMPB1 _GOTO __LAB12
FLOWRATEUNITS := __TMPM17
_GOTO __LAB2
__LAB12 :
__TMPB1 := INTEGERVALUE = __CUINT00000016
_IF _NOT __TMPB1 _GOTO __LAB13
FLOWRATEUNITS := __TMPM18
_GOTO __LAB2
__LAB13 :
__TMPB1 := INTEGERVALUE = __CUINT00000010
_IF _NOT __TMPB1 _GOTO __LAB14
FLOWRATEUNITS := __TMPM19
_GOTO __LAB2
__LAB14 :
__TMPB1 := INTEGERVALUE = __CUINT00000088
_IF _NOT __TMPB1 _GOTO __LAB15
FLOWRATEUNITS := __TMPM20
_GOTO __LAB2
__LAB15 :
__TMPB1 := INTEGERVALUE = __CUINT000000EB
_IF _NOT __TMPB1 _GOTO __LAB16
FLOWRATEUNITS := __TMPM21
_GOTO __LAB2
__LAB16 :
__TMPB1 := INTEGERVALUE = __CUINT00000089
_IF _NOT __TMPB1 _GOTO __LAB17
FLOWRATEUNITS := __TMPM22
_GOTO __LAB2
__LAB17 :
__TMPB1 := INTEGERVALUE = __CUINT00000012
_IF _NOT __TMPB1 _GOTO __LAB18
FLOWRATEUNITS := __TMPM23
_GOTO __LAB2
__LAB18 :
__TMPB1 := INTEGERVALUE = __CUINT0000001E
_IF _NOT __TMPB1 _GOTO __LAB19
FLOWRATEUNITS := __TMPM24
_GOTO __LAB2
__LAB19 :
__TMPB1 := INTEGERVALUE = __CUINT0000001F
_IF _NOT __TMPB1 _GOTO __LAB1a
FLOWRATEUNITS := __TMPM25
_GOTO __LAB2
__LAB1a :
__TMPB1 := INTEGERVALUE = __CUINT00000018
_IF _NOT __TMPB1 _GOTO __LAB1b
FLOWRATEUNITS := __TMPM26
_GOTO __LAB2
__LAB1b :
__TMPB1 := INTEGERVALUE = __CUINT00000011
_IF _NOT __TMPB1 _GOTO __LAB1c
FLOWRATEUNITS := __TMPM27
_GOTO __LAB2
__LAB1c :
__TMPB1 := INTEGERVALUE = __CUINT0000008A
_IF _NOT __TMPB1 _GOTO __LAB1d
FLOWRATEUNITS := __TMPM28
_GOTO __LAB2
__LAB1d :
__TMPB1 := INTEGERVALUE = __CUINT000000F0
_IF _NOT __TMPB1 _GOTO __LAB1e
FLOWRATEUNITS := __TMPM29
_GOTO __LAB2
__LAB1e :
FLOWRATEUNITS := __TMPM30
__LAB2 :

View File

@@ -0,0 +1,42 @@
__TMPB1 := INTEGERINPUT = __CUINT00000028
_IF _NOT __TMPB1 _GOTO __LAB1
FLOWTOTALUNITS := __TMPM1
_GOTO __LAB2
__LAB1 :
__TMPB1 := INTEGERINPUT = __CUINT00000029
_IF _NOT __TMPB1 _GOTO __LAB3
FLOWTOTALUNITS := __TMPM2
_GOTO __LAB2
__LAB3 :
__TMPB1 := INTEGERINPUT = __CUINT0000002A
_IF _NOT __TMPB1 _GOTO __LAB4
FLOWTOTALUNITS := __TMPM3
_GOTO __LAB2
__LAB4 :
__TMPB1 := INTEGERINPUT = __CUINT0000002B
_IF _NOT __TMPB1 _GOTO __LAB5
FLOWTOTALUNITS := __TMPM4
_GOTO __LAB2
__LAB5 :
__TMPB1 := INTEGERINPUT = __CUINT0000002E
_IF _NOT __TMPB1 _GOTO __LAB6
FLOWTOTALUNITS := __TMPM5
_GOTO __LAB2
__LAB6 :
__TMPB1 := INTEGERINPUT = __CUINT00000070
_IF _NOT __TMPB1 _GOTO __LAB7
FLOWTOTALUNITS := __TMPM6
_GOTO __LAB2
__LAB7 :
__TMPB1 := INTEGERINPUT = __CUINT000000F6
_IF _NOT __TMPB1 _GOTO __LAB8
FLOWTOTALUNITS := __TMPM7
_GOTO __LAB2
__LAB8 :
__TMPB1 := INTEGERINPUT = __CUINT000000F7
_IF _NOT __TMPB1 _GOTO __LAB9
FLOWTOTALUNITS := __TMPM8
_GOTO __LAB2
__LAB9 :
FLOWTOTALUNITS := __TMPM9
__LAB2 :

View File

@@ -0,0 +1,30 @@
PROGRAM FlowMeterAI
IF NOT use_ModbusFlowmeter THEN
val_AI00_uA := LinearScale(13107.0, 65535.0, 4000.0, 20000.0, ANY_TO_REAL(_IO_P1_AI_00));
val_FlowRate := LinearScale(4000.0, 20000.0, Flow_EU_Min, Flow_EU_Max, val_AI00_uA);
TON_Totalizer(NOT(TON_Totalizer.Q), T#10s);
IF TON_Totalizer.Q THEN
IF (val_FlowRate > 0.0) THEN
val_FlowTotalizerB := val_FlowTotalizerB + (val_FlowRate * (10.0 / 60.0));
ELSE
val_FlowTotalizerC := val_FlowTotalizerC + (val_FlowRate * (10.0 / 60.0));
END_IF;
END_IF;
val_FlowTotalizerA := val_FlowTotalizerB + val_FlowTotalizerC;
IF cmd_ResetTotalizerA THEN
val_FlowTotalizerA := 0.0;
END_IF;
IF cmd_ResetTotalizerB THEN
val_FlowTotalizerB := 0.0;
END_IF;
IF cmd_ResetTotalizerC THEN
val_FlowTotalizerC := 0.0;
END_IF;
END_IF;
END_PROGRAM

View File

@@ -0,0 +1,316 @@
PROGRAM FlowMeterMb
ModbusTimer(NOT ModbusTimer.Q AND use_ModbusFlowmeter, ModbusScanRate);
(* ============== *)
(* FLOW RATE *)
(* ============== *)
mbs_FlowRate_TargetCfg.Addr := cfg_FlowRate_Register;
mbs_FlowRate_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_FlowRate_LocalCfg.Channel := 2;
mbs_FlowRate_LocalCfg.Cmd := READ_CMD;
mbs_FlowRate_LocalCfg.TriggerType := mbs_TriggerType;
mbs_FlowRate_LocalCfg.ElementCnt := 2;
mbs_FlowRate_MSG(ModbusTimer.Q, mbs_Cancel, mbs_FlowRate_LocalCfg, mbs_FlowRate_TargetCfg, mbs_FlowRate_Data);
IF mbs_FlowRate_MSG.Q THEN
val_FlowRate := WordsToReal(mbs_FlowRate_Data[1], mbs_FlowRate_Data[2]);
END_IF;
(* ============== *)
(* FLOW TOTALIZER A *)
(* ============== *)
mbs_FlowTotalizerA_TargetCfg.Addr := cfg_FlowTotalizerA_Register;
mbs_FlowTotalizerA_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_FlowTotalizerA_LocalCfg.Channel := 2;
mbs_FlowTotalizerA_LocalCfg.Cmd := READ_CMD;
mbs_FlowTotalizerA_LocalCfg.TriggerType := mbs_TriggerType;
mbs_FlowTotalizerA_LocalCfg.ElementCnt := 2;
mbs_FlowTotalizerA_MSG(ModbusTimer.Q, mbs_Cancel, mbs_FlowTotalizerA_LocalCfg, mbs_FlowTotalizerA_TargetCfg, mbs_FlowTotalizerA_Data);
IF mbs_FlowTotalizerA_MSG.Q THEN
val_FlowTotalizerA := WordsToReal(mbs_FlowTotalizerA_Data[1], mbs_FlowTotalizerA_Data[2]);
END_IF;
(* ============== *)
(* FLOW TOTALIZER B *)
(* ============== *)
mbs_FlowTotalizerB_TargetCfg.Addr := cfg_FlowTotalizerB_Register;
mbs_FlowTotalizerB_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_FlowTotalizerB_LocalCfg.Channel := 2;
mbs_FlowTotalizerB_LocalCfg.Cmd := READ_CMD;
mbs_FlowTotalizerB_LocalCfg.TriggerType := mbs_TriggerType;
mbs_FlowTotalizerB_LocalCfg.ElementCnt := 2;
mbs_FlowTotalizerB_MSG(ModbusTimer.Q, mbs_Cancel, mbs_FlowTotalizerB_LocalCfg, mbs_FlowTotalizerB_TargetCfg, mbs_FlowTotalizerB_Data);
IF mbs_FlowTotalizerB_MSG.Q THEN
val_FlowTotalizerB := WordsToReal(mbs_FlowTotalizerB_Data[1], mbs_FlowTotalizerB_Data[2]);
END_IF;
(* ============== *)
(* FLOW TOTALIZER C *)
(* ============== *)
mbs_FlowTotalizerC_TargetCfg.Addr := cfg_FlowTotalizerC_Register;
mbs_FlowTotalizerC_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_FlowTotalizerC_LocalCfg.Channel := 2;
mbs_FlowTotalizerC_LocalCfg.Cmd := READ_CMD;
mbs_FlowTotalizerC_LocalCfg.TriggerType := mbs_TriggerType;
mbs_FlowTotalizerC_LocalCfg.ElementCnt := 2;
mbs_FlowTotalizerC_MSG(ModbusTimer.Q, mbs_Cancel, mbs_FlowTotalizerC_LocalCfg, mbs_FlowTotalizerC_TargetCfg, mbs_FlowTotalizerC_Data);
IF mbs_FlowTotalizerC_MSG.Q THEN
val_FlowTotalizerC := WordsToReal(mbs_FlowTotalizerC_Data[1], mbs_FlowTotalizerC_Data[2]);
END_IF;
(* ============== *)
(* STATUS *)
(* ============== *)
mbs_Status_TargetCfg.Addr := cfg_Status_Register;
mbs_Status_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_Status_LocalCfg.Channel := 2;
mbs_Status_LocalCfg.Cmd := READ_CMD;
mbs_Status_LocalCfg.TriggerType := mbs_TriggerType;
mbs_Status_LocalCfg.ElementCnt := 3;
mbs_Status_MSG(ModbusTimer.Q, mbs_Cancel, mbs_Status_LocalCfg, mbs_Status_TargetCfg, mbs_Status_Data);
IF mbs_Status_MSG.Q THEN
val_Status0 := ANY_TO_UINT(mbs_Status_Data[1]);
val_Status1 := ANY_TO_UINT(mbs_Status_Data[2]);
val_Status2 := ANY_TO_UINT(mbs_Status_Data[3]);
END_IF;
IF (val_Status0 + val_Status1 + val_Status2) = 0 THEN
val_StatusString := 'OK';
ELSE
val_StatusString := '';
IF val_Status0.0 THEN
val_StatusString := val_StatusString + ', Sensor Out of Range';
END_IF;
IF val_Status0.1 THEN
val_StatusString := val_StatusString + ', Empty Pipe';
END_IF;
IF val_Status0.2 THEN
val_StatusString := val_StatusString + ', I/O Processor Failure';
END_IF;
IF val_Status0.3 THEN
val_StatusString := val_StatusString + ', Pulse Output- Out of Range';
END_IF;
IF val_Status0.4 THEN
val_StatusString := val_StatusString + ', Update Missed';
END_IF;
IF val_Status0.5 THEN
val_StatusString := val_StatusString + ', Output at Alarm Level';
END_IF;
IF val_Status0.6 THEN
val_StatusString := val_StatusString + ', Modbus Nonvolatile Memory Error';
END_IF;
IF val_Status0.7 THEN
val_StatusString := val_StatusString + ', Pulse Output Fixed';
END_IF;
IF val_Status0.8 THEN
val_StatusString := val_StatusString + ', EPROM Checksum Error';
END_IF;
IF val_Status0.9 THEN
val_StatusString := val_StatusString + ', NOVRAM Checksum Error';
END_IF;
IF val_Status0.10 THEN
val_StatusString := val_StatusString + ', RAM Checksum Error';
END_IF;
IF val_Status0.11 THEN
val_StatusString := val_StatusString + ', Factory NOVRAM Checksum Error';
END_IF;
IF val_Status0.12 THEN
val_StatusString := val_StatusString + ', Continuous Meter Verification Error';
END_IF;
IF val_Status0.13 THEN
val_StatusString := val_StatusString + ', PZR Output is Active';
END_IF;
IF val_Status0.14 THEN
val_StatusString := val_StatusString + ', Coil Drive Current is Zero';
END_IF;
IF val_Status0.15 THEN
val_StatusString := val_StatusString + ', Reverse Flow Rate Detected';
END_IF;
IF val_Status1.0 THEN
val_StatusString := val_StatusString + ', Internal Flow Simulation Test Error';
END_IF;
IF val_Status1.1 THEN
val_StatusString := val_StatusString + ', Excess Auto Zero Correction- ZR Too High';
END_IF;
IF val_Status1.2 THEN
val_StatusString := val_StatusString + ', Excess Auto Zero Correction- ZR Too Low';
END_IF;
IF val_Status1.3 THEN
val_StatusString := val_StatusString + ', Auto Zero Attempt with Non-zero Flow';
END_IF;
IF val_Status1.4 THEN
val_StatusString := val_StatusString + ', Totalizer Limit 1 Alert';
END_IF;
IF val_Status1.5 THEN
val_StatusString := val_StatusString + ', Universal Trim Failure';
END_IF;
IF val_Status1.6 THEN
val_StatusString := val_StatusString + ', Flow Limit Alert 1';
END_IF;
IF val_Status1.7 THEN
val_StatusString := val_StatusString + ', Flow Limit Alert 2';
END_IF;
IF val_Status1.8 THEN
val_StatusString := val_StatusString + ', Electrode Coated Limit 1';
END_IF;
IF val_Status1.9 THEN
val_StatusString := val_StatusString + ', Electrode Coated Limit 2';
END_IF;
IF val_Status1.10 THEN
val_StatusString := val_StatusString + ', Excess Calibration Correction, GN too Low';
END_IF;
IF val_Status1.11 THEN
val_StatusString := val_StatusString + ', Excess Calibration Correction, GN too High';
END_IF;
IF val_Status1.12 THEN
val_StatusString := val_StatusString + ', Calibration Attempt without Calibrator';
END_IF;
IF val_Status1.13 THEN
val_StatusString := val_StatusString + ', Grounding/Wiring Fault';
END_IF;
IF val_Status1.14 THEN
val_StatusString := val_StatusString + ', High Process Noise Detected';
END_IF;
IF val_Status1.15 THEN
val_StatusString := val_StatusString + ', Electronics Temperature Out of Range';
END_IF;
IF val_Status2.0 THEN
val_StatusString := val_StatusString + ', Digital I/O 1 Active';
END_IF;
IF val_Status2.1 THEN
val_StatusString := val_StatusString + ', Digital I/O 2 Active';
END_IF;
IF val_Status2.2 THEN
val_StatusString := val_StatusString + ', Diagnostic Status Alert Active';
END_IF;
IF val_Status2.3 THEN
val_StatusString := val_StatusString + ', Modbus in Listen Only Mode';
END_IF;
IF val_Status2.4 THEN
val_StatusString := val_StatusString + ', I/O Processor Comm Failure';
END_IF;
IF val_Status2.5 THEN
val_StatusString := val_StatusString + ', Coil Over Current Detected';
END_IF;
IF val_Status2.6 THEN
val_StatusString := val_StatusString + ', Sensor Electrode Saturated';
END_IF;
IF val_Status2.7 THEN
val_StatusString := val_StatusString + ', Coil Power Limit';
END_IF;
IF val_Status2.8 THEN
val_StatusString := val_StatusString + ', Electronics Failure';
END_IF;
IF val_Status2.9 THEN
val_StatusString := val_StatusString + ', Coil Resistance Error';
END_IF;
IF val_Status2.10 THEN
val_StatusString := val_StatusString + ', Coil Inductance Error';
END_IF;
IF val_Status2.11 THEN
val_StatusString := val_StatusString + ', Digital Trim Failure';
END_IF;
IF val_Status2.12 THEN
val_StatusString := val_StatusString + ', Reverse Flow Detected';
END_IF;
IF val_Status2.13 THEN
val_StatusString := val_StatusString + ', Electrode Resistance Error';
END_IF;
IF val_Status2.14 THEN
val_StatusString := val_StatusString + ', Auto Zero Failure';
END_IF;
IF val_Status2.15 THEN
val_StatusString := val_StatusString + ', Reserved for Status Bit';
END_IF;
val_StatusString := RIGHT(val_StatusString, MLEN(val_StatusString) - 2);
END_IF;
(* ============== *)
(* RESET TOTALIZER *)
(* ============== *)
cmd_ResetTotalizer := cmd_ResetTotalizerA OR cmd_ResetTotalizerB OR cmd_ResetTotalizerC;
IF cmd_ResetTotalizerA THEN
mbs_ResetTotalizer_TargetCfg.Addr := cfg_ResetTotalizerA_Coil;
ELSIF cmd_ResetTotalizerB THEN
mbs_ResetTotalizer_TargetCfg.Addr := cfg_ResetTotalizerB_Coil;
ELSIF cmd_ResetTotalizerC THEN
mbs_ResetTotalizer_TargetCfg.Addr := cfg_ResetTotalizerC_Coil;
END_IF;
mbs_ResetTotalizer_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_ResetTotalizer_LocalCfg.Channel := 2;
mbs_ResetTotalizer_LocalCfg.Cmd := WRITECOIL_CMD;
mbs_ResetTotalizer_LocalCfg.TriggerType := 0;
mbs_ResetTotalizer_LocalCfg.ElementCnt := 1;
mbs_ResetTotalizer_Data[1] := 1;
mbs_ResetTotalizer_MSG(cmd_ResetTotalizer, mbs_Cancel, mbs_ResetTotalizer_LocalCfg, mbs_ResetTotalizer_TargetCfg, mbs_ResetTotalizer_Data);
IF mbs_ResetTotalizer_MSG.Q OR mbs_ResetTotalizer_MSG.Error THEN
cmd_ClearResetTotalizer := TRUE;
cmd_ResetTotalizerA := FALSE;
cmd_ResetTotalizerB := FALSE;
cmd_ResetTotalizerC := FALSE;
END_IF;
Wait_To_Reset_TON(cmd_ClearResetTotalizer, par_TimeToWaitToClearResetTotalizer);
mbs_ClearResetTotalizer_TargetCfg.Addr := mbs_ResetTotalizer_TargetCfg.Addr;
mbs_ClearResetTotalizer_TargetCfg.Node := mbs_ResetTotalizer_TargetCfg.Node;
mbs_ClearResetTotalizer_LocalCfg.Channel := mbs_ResetTotalizer_LocalCfg.Channel;
mbs_ClearResetTotalizer_LocalCfg.Cmd := mbs_ResetTotalizer_LocalCfg.Cmd;
mbs_ClearResetTotalizer_LocalCfg.TriggerType := mbs_ResetTotalizer_LocalCfg.TriggerType;
mbs_ClearResetTotalizer_LocalCfg.ElementCnt := mbs_ResetTotalizer_LocalCfg.ElementCnt;
mbs_ClearResetTotalizer_Data[1] := 0;
mbs_ClearResetTotalizer_MSG(Wait_To_Reset_TON.Q, mbs_Cancel, mbs_ClearResetTotalizer_LocalCfg, mbs_ClearResetTotalizer_TargetCfg, mbs_ClearResetTotalizer_Data);
IF mbs_ClearResetTotalizer_MSG.Q OR mbs_ClearResetTotalizer_MSG.Error THEN
cmd_ClearResetTotalizer := FALSE;
END_IF;
(* ============== *)
(* UNITS *)
(* ============== *)
mbs_Units_TargetCfg.Addr := cfg_Units_Register;
mbs_Units_TargetCfg.Node := cfg_Flowmeter_ModbusNode;
mbs_Units_LocalCfg.Channel := 2;
mbs_Units_LocalCfg.Cmd := READ_CMD;
mbs_Units_LocalCfg.TriggerType := mbs_TriggerType;
mbs_Units_LocalCfg.ElementCnt := 4;
mbs_Units_MSG(ModbusTimer.Q, mbs_Cancel, mbs_Units_LocalCfg, mbs_Units_TargetCfg, mbs_Units_Data);
IF mbs_Units_MSG.Q THEN
val_FlowUnits := FlowRateUnits(mbs_Units_Data[1]);
val_FlowTotalizerAUnits := FlowTotalUnits(mbs_Units_Data[2]);
val_FlowTotalizerBUnits := FlowTotalUnits(mbs_Units_Data[3]);
val_FlowTotalizerCUnits := FlowTotalUnits(mbs_Units_Data[4]);
END_IF;
ModbusErrorTimer(NOT(mbs_FlowRate_MSG.Error OR
mbs_FlowTotalizerA_MSG.Error OR
mbs_FlowTotalizerB_MSG.Error OR
mbs_FlowTotalizerC_MSG.Error OR
mbs_Status_MSG.Error OR
mbs_Units_MSG.Error), ModbusErrorDuration);
sts_FlowmeterModbusOK := ModbusErrorTimer.Q;
END_PROGRAM

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Version="6">
<LanguageContainerStyle CommentTextColor="Green" CommentFont="Courier New, 10pt" PonctuationTextColor="Black" PonctuationFont="Courier New, 10pt" IdentifierTextColor="Black" IdentifierFont="Courier New, 10pt" OperatorTextColor="Black" OperatorFont="Courier New, 10pt" ReservedWordTextColor="Fuchsia" ReservedWordFont="Courier New, 10pt" PouTextColor="BlueViolet" PouFont="Courier New, 10pt" NumberTextColor="Firebrick" NumberFont="Courier New, 10pt" StringTextColor="Gray" StringFont="Courier New, 10pt" EditorTextAreaBackgroundColor="White" EditorFont="Courier New, 10pt" Index="0" />
</Root>

View File

@@ -0,0 +1,63 @@
FUNCTION FlowRateUnits
IF integerValue = 241 THEN
FlowRateUnits := 'B31/sec';
ELSIF integerValue = 242 THEN
FlowRateUnits := 'B31/min';
ELSIF integerValue = 243 THEN
FlowRateUnits := 'B31/hour';
ELSIF integerValue = 244 THEN
FlowRateUnits := 'B31/day';
ELSIF integerValue = 132 THEN
FlowRateUnits := 'B42/sec';
ELSIF integerValue = 133 THEN
FlowRateUnits := 'B42/min';
ELSIF integerValue = 134 THEN
FlowRateUnits := 'B42/hour';
ELSIF integerValue = 135 THEN
FlowRateUnits := 'B42/day';
ELSIF integerValue = 248 THEN
FlowRateUnits := 'cm3/sec';
ELSIF integerValue = 26 THEN
FlowRateUnits := 'ft3/sec';
ELSIF integerValue = 15 THEN
FlowRateUnits := 'ft3/min';
ELSIF integerValue = 130 THEN
FlowRateUnits := 'ft3/hour';
ELSIF integerValue = 27 THEN
FlowRateUnits := 'ft3/day';
ELSIF integerValue = 28 THEN
FlowRateUnits := 'm3/sec';
ELSIF integerValue = 131 THEN
FlowRateUnits := 'm3/min';
ELSIF integerValue = 19 THEN
FlowRateUnits := 'm3/hour';
ELSIF integerValue = 29 THEN
FlowRateUnits := 'm3/day';
ELSIF integerValue = 22 THEN
FlowRateUnits := 'gal/sec';
ELSIF integerValue = 16 THEN
FlowRateUnits := 'gal/min';
ELSIF integerValue = 136 THEN
FlowRateUnits := 'gal/hour';
ELSIF integerValue = 235 THEN
FlowRateUnits := 'gal/day';
ELSIF integerValue = 137 THEN
FlowRateUnits := 'gal (Imp.)/sec';
ELSIF integerValue = 18 THEN
FlowRateUnits := 'gal (Imp.)/min';
ELSIF integerValue = 30 THEN
FlowRateUnits := 'gal (Imp.)/hour';
ELSIF integerValue = 31 THEN
FlowRateUnits := 'gal (Imp.)/day';
ELSIF integerValue = 24 THEN
FlowRateUnits := 'L/sec';
ELSIF integerValue = 17 THEN
FlowRateUnits := 'L/min';
ELSIF integerValue = 138 THEN
FlowRateUnits := 'L/hour';
ELSIF integerValue = 240 THEN
FlowRateUnits := 'L/day';
ELSE
FlowRateUnits := 'Unknown';
END_IF;
END_FUNCTION

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Version="6">
<LanguageContainerStyle CommentTextColor="Green" CommentFont="Courier New, 10pt" PonctuationTextColor="Black" PonctuationFont="Courier New, 10pt" IdentifierTextColor="Black" IdentifierFont="Courier New, 10pt" OperatorTextColor="Black" OperatorFont="Courier New, 10pt" ReservedWordTextColor="Fuchsia" ReservedWordFont="Courier New, 10pt" PouTextColor="BlueViolet" PouFont="Courier New, 10pt" NumberTextColor="Firebrick" NumberFont="Courier New, 10pt" StringTextColor="Gray" StringFont="Courier New, 10pt" EditorTextAreaBackgroundColor="White" EditorFont="Courier New, 10pt" Index="0" />
</Root>

View File

@@ -0,0 +1,21 @@
FUNCTION FlowTotalUnits
IF integerInput = 40 THEN
FlowTotalUnits := 'Gallons';
ELSIF integerInput = 41 THEN
FlowTotalUnits := 'Liters';
ELSIF integerInput = 42 THEN
FlowTotalUnits := 'Imp. Gallons';
ELSIF integerInput = 43 THEN
FlowTotalUnits := 'Cubic Meters';
ELSIF integerInput = 46 THEN
FlowTotalUnits := 'BBL42';
ELSIF integerInput = 112 THEN
FlowTotalUnits := 'Cubic Feet';
ELSIF integerInput = 246 THEN
FlowTotalUnits := 'Cubic cm';
ELSIF integerInput = 247 THEN
FlowTotalUnits := 'BBL31';
ELSE
FlowTotalUnits := 'Unknown';
END_IF;
END_FUNCTION

View File

@@ -1,5 +1,7 @@
FLOWMETERMB(150):F,WORDSTOREAL(148);
FLOWMETERMB(150):F,WORDSTOREAL(148);F,FLOWRATEUNITS(153);F,FLOWTOTALUNITS(154);
FLOWMETERAI(151):F,LINEARSCALE(147);
FLOWRATEUNITS(153):
FLOWTOTALUNITS(154):
LINEARSCALE(147):
PRESSURE(152):F,LINEARSCALE(147);
WORDSTOREAL(148):

View File

@@ -0,0 +1,10 @@
[MEMORY]
Offset0=0x1A48
Offset1=0x2248
Offset2=0x2248
Offset3=0x2248
Memory Usage Estimate(Code)=0x1CF0
Memory Usage Estimate(Data)=0x4C14
Memory Usage Estimate(Retain)=0x3D
Memory Usage Estimate(Temporary variables)=0x9C8
Offset4=0x414

View File

@@ -5,12 +5,12 @@ ON_LINE=N
TBL_CONF=Y
CRC_ORG=0x0
CRC_OLD=
CRC_NEW=0x67F1B8EC
CRC_NEW=0x798622D4
DAT_ORG=0
DAT_OLD=0
DAT_NEW=1506706138
DAT_NEW=1521667902
VER_ORG=0
VER_OLD=0
VER_NEW=1
VER_NEW=5
CRC_ALL_OLD=
CRC_ALL_NEW=0x03222B7A
CRC_ALL_NEW=0xEBE8DFFA

View File

@@ -0,0 +1,9 @@
[MEMORY]
Memory Usage Estimate(Temporary variables)=0x9C8
Biggest online change user variable memory block size=0x800
Currently added user variables=0x0
Total data size=0x2410
User variables size=0x1A48
Maximum size for temporary variables=0x29C8
Memory Usage Estimate(Data)=0x4C10
Free memory for user variables=0x800

View File

@@ -0,0 +1,11 @@
<INPUT>,MODBUSTIMER@FLOWMETERMB,TON,IN,__TMPB__TON__IN,BOOL,PT,MODBUSSCANRATE@FLOWMETERMB,TIME
<INPUT>,MBS_FLOWRATE_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_FLOWTOTALIZERA_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_FLOWTOTALIZERB_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_FLOWTOTALIZERC_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_STATUS_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_RESETTOTALIZER_MSG@FLOWMETERMB,MSG_MODBUS,IN,CMD_RESETTOTALIZER@FLOWMETERMB,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,WAIT_TO_RESET_TON@FLOWMETERMB,TON,IN,CMD_CLEARRESETTOTALIZER@FLOWMETERMB,BOOL,PT,PAR_TIMETOWAITTOCLEARRESETTOTALIZER@FLOWMETERMB,TIME
<INPUT>,MBS_CLEARRESETTOTALIZER_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MBS_UNITS_MSG@FLOWMETERMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@FLOWMETERMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MODBUSERRORTIMER@FLOWMETERMB,TON,IN,__TMPB__TON__IN,BOOL,PT,MODBUSERRORDURATION,TIME

View File

@@ -0,0 +1,58 @@
[BEGIN FB INPUTS]
I1=micro820.micro820.flowmetermb/modbustimer.in,0x2249,BOOL
I2=micro820.micro820.flowmetermb/modbustimer.pt,0x52C,TIME
I3=micro820.micro820.flowmetermb/wait_to_reset_ton.in,0x464,BOOL
I4=micro820.micro820.flowmetermb/wait_to_reset_ton.pt,0x528,TIME
I5=micro820.micro820.flowmetermb/modbuserrortimer.in,0x2249,BOOL
I6=micro820.micro820.flowmetermb/modbuserrortimer.pt,0x524,TIME
I7=micro820.micro820.flowmeterai/ton_totalizer.in,0x2249,BOOL
I8=micro820.micro820.flowmeterai/ton_totalizer.pt,0x23B0,TIME
I9=micro820.micro820.flowmetermb/mbs_flowrate_msg.in,0x224A,BOOL
I10=micro820.micro820.flowmetermb/mbs_flowrate_msg.cancel,0x462,BOOL
I11=micro820.micro820.flowmetermb/mbs_flowrate_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I12=micro820.micro820.flowmetermb/mbs_flowrate_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I13=micro820.micro820.flowmetermb/mbs_flowrate_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I14=micro820.micro820.flowmetermb/mbs_flowrate_msg.__adi_localaddr,0xFFFFFFFF,UINT
I15=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.in,0x224A,BOOL
I16=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.cancel,0x462,BOOL
I17=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I18=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I19=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I20=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.__adi_localaddr,0xFFFFFFFF,UINT
I21=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.in,0x224A,BOOL
I22=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.cancel,0x462,BOOL
I23=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I24=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I25=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I26=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.__adi_localaddr,0xFFFFFFFF,UINT
I27=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.in,0x224A,BOOL
I28=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.cancel,0x462,BOOL
I29=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I30=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I31=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I32=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.__adi_localaddr,0xFFFFFFFF,UINT
I33=micro820.micro820.flowmetermb/mbs_status_msg.in,0x224A,BOOL
I34=micro820.micro820.flowmetermb/mbs_status_msg.cancel,0x462,BOOL
I35=micro820.micro820.flowmetermb/mbs_status_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I36=micro820.micro820.flowmetermb/mbs_status_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I37=micro820.micro820.flowmetermb/mbs_status_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I38=micro820.micro820.flowmetermb/mbs_status_msg.__adi_localaddr,0xFFFFFFFF,UINT
I39=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.in,0x463,BOOL
I40=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.cancel,0x462,BOOL
I41=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I42=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I43=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I44=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I45=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.in,0x224A,BOOL
I46=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.cancel,0x462,BOOL
I47=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I48=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I49=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I50=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I51=micro820.micro820.flowmetermb/mbs_units_msg.in,0x224A,BOOL
I52=micro820.micro820.flowmetermb/mbs_units_msg.cancel,0x462,BOOL
I53=micro820.micro820.flowmetermb/mbs_units_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I54=micro820.micro820.flowmetermb/mbs_units_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I55=micro820.micro820.flowmetermb/mbs_units_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I56=micro820.micro820.flowmetermb/mbs_units_msg.__adi_localaddr,0xFFFFFFFF,UINT
[END]

Some files were not shown because too many files have changed in this diff Show More