Fixes incorrect modbus status
This commit is contained in:
@@ -2531,8 +2531,8 @@ Controller.Micro820.Micro820.SolarPanelMb.temp_ArrayFault
|
||||
Controller.Micro820.Micro820.SolarPanelMb.temp_ChargeState
|
||||
Controller.Micro820.Micro820.sts_ArrayFault
|
||||
Controller.Micro820.Micro820.sts_ChargeState
|
||||
Controller.Micro820.Micro820.sts_FlowmeterModbusError
|
||||
Controller.Micro820.Micro820.sts_SolarModbusError
|
||||
Controller.Micro820.Micro820.sts_FlowmeterModbusOK
|
||||
Controller.Micro820.Micro820.sts_SolarModbusOK
|
||||
Controller.Micro820.Micro820.val_FlowRate
|
||||
Controller.Micro820.Micro820.val_FlowTotalizerA
|
||||
Controller.Micro820.Micro820.val_FlowTotalizerAUnits
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
MODBUSTIMER.IN@FLOWMETERMB,__TMPB__TON__IN,BOOL
|
||||
MODBUSTIMER.PT@FLOWMETERMB,MODBUSSCANRATE,TIME
|
||||
MODBUSERRORTIMER.IN@FLOWMETERMB,__TMPB__TON__IN,BOOL
|
||||
MODBUSERRORTIMER.PT@FLOWMETERMB,MODBUSERRORDURATION,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
|
||||
MODBUSTIMER.IN@SOLARPANELMB,__TMPB__TON__IN,BOOL
|
||||
MODBUSTIMER.PT@SOLARPANELMB,MODBUSSCANRATE,TIME
|
||||
MODBUSERRORTIMER.IN@SOLARPANELMB,__TMPB__TON__IN,BOOL
|
||||
|
||||
@@ -180,19 +180,6 @@ VAL_STATUS2 := __TMPUIN2
|
||||
_GOTO __LABa
|
||||
__LAB9 :
|
||||
__LABa :
|
||||
__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
|
||||
__TMPB__TON__IN := __TMPB1
|
||||
__FBL_RET := _PUSHCALLFB TON MODBUSERRORTIMER
|
||||
__TMPB1 := MODBUSERRORTIMER [ __CDINT00000004 ]
|
||||
STS_FLOWMETERMODBUSERROR := __TMPB1
|
||||
__TMPUIN1 := VAL_STATUS0 + VAL_STATUS1
|
||||
__TMPUIN1 := __TMPUIN1 + VAL_STATUS2
|
||||
__TMPB1 := __TMPUIN1 = __UINT_NULL
|
||||
@@ -772,3 +759,19 @@ 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
|
||||
|
||||
Binary file not shown.
@@ -84,8 +84,7 @@ IF mbs_Status_MSG.Q THEN
|
||||
val_Status2 := ANY_TO_UINT(mbs_Status_Data[3]);
|
||||
END_IF;
|
||||
|
||||
ModbusErrorTimer(mbs_FlowRate_MSG.Error OR mbs_FlowTotalizerA_MSG.Error OR mbs_FlowTotalizerB_MSG.Error OR mbs_FlowTotalizerC_MSG.Error OR mbs_Status_MSG.Error, ModbusErrorDuration);
|
||||
sts_FlowmeterModbusError := ModbusErrorTimer.Q;
|
||||
|
||||
|
||||
IF (val_Status0 + val_Status1 + val_Status2) = 0 THEN
|
||||
val_StatusString := 'OK';
|
||||
@@ -306,4 +305,12 @@ IF mbs_Units_MSG.Q THEN
|
||||
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
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@ Offset0=0x1C64
|
||||
Offset1=0x2464
|
||||
Offset2=0x2464
|
||||
Offset3=0x2464
|
||||
Memory Usage Estimate(Code)=0x26C4
|
||||
Memory Usage Estimate(Code)=0x26DC
|
||||
Memory Usage Estimate(Data)=0x5030
|
||||
Memory Usage Estimate(Retain)=0x34
|
||||
Memory Usage Estimate(Temporary variables)=0xBC8
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
[MEMORY]
|
||||
Offset0=0x1C64
|
||||
Offset1=0x2464
|
||||
Offset2=0x2464
|
||||
Offset3=0x2464
|
||||
Memory Usage Estimate(Code)=0x26C4
|
||||
Memory Usage Estimate(Data)=0x5030
|
||||
Memory Usage Estimate(Retain)=0x34
|
||||
Memory Usage Estimate(Temporary variables)=0xBC8
|
||||
Offset4=0x414
|
||||
@@ -5,12 +5,12 @@ ON_LINE=N
|
||||
TBL_CONF=Y
|
||||
CRC_ORG=0x0
|
||||
CRC_OLD=
|
||||
CRC_NEW=0xF767B173
|
||||
CRC_NEW=0x2625A20D
|
||||
DAT_ORG=0
|
||||
DAT_OLD=0
|
||||
DAT_NEW=1517442743
|
||||
DAT_NEW=1517863824
|
||||
VER_ORG=0
|
||||
VER_OLD=0
|
||||
VER_NEW=36
|
||||
VER_NEW=37
|
||||
CRC_ALL_OLD=
|
||||
CRC_ALL_NEW=0xEDEFD638
|
||||
CRC_ALL_NEW=0x5DF21E41
|
||||
@@ -1,9 +0,0 @@
|
||||
[MEMORY]
|
||||
Memory Usage Estimate(Temporary variables)=0xBC8
|
||||
Biggest online change user variable memory block size=0x800
|
||||
Currently added user variables=0x0
|
||||
Total data size=0x282C
|
||||
User variables size=0x1C64
|
||||
Maximum size for temporary variables=0x2BC8
|
||||
Memory Usage Estimate(Data)=0x502C
|
||||
Free memory for user variables=0x800
|
||||
@@ -4,8 +4,8 @@
|
||||
<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>,MODBUSERRORTIMER@FLOWMETERMB,TON,IN,__TMPB__TON__IN,BOOL,PT,MODBUSERRORDURATION,TIME
|
||||
<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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,10 +1,10 @@
|
||||
[BEGIN FB INPUTS]
|
||||
I1=micro820.micro820.flowmetermb/modbustimer.in,0x2465,BOOL
|
||||
I2=micro820.micro820.flowmetermb/modbustimer.pt,0x55C,TIME
|
||||
I3=micro820.micro820.flowmetermb/modbuserrortimer.in,0x2465,BOOL
|
||||
I4=micro820.micro820.flowmetermb/modbuserrortimer.pt,0x560,TIME
|
||||
I5=micro820.micro820.flowmetermb/wait_to_reset_ton.in,0x464,BOOL
|
||||
I6=micro820.micro820.flowmetermb/wait_to_reset_ton.pt,0x564,TIME
|
||||
I3=micro820.micro820.flowmetermb/wait_to_reset_ton.in,0x464,BOOL
|
||||
I4=micro820.micro820.flowmetermb/wait_to_reset_ton.pt,0x564,TIME
|
||||
I5=micro820.micro820.flowmetermb/modbuserrortimer.in,0x2465,BOOL
|
||||
I6=micro820.micro820.flowmetermb/modbuserrortimer.pt,0x560,TIME
|
||||
I7=micro820.micro820.solarpanelmb/modbustimer.in,0x2465,BOOL
|
||||
I8=micro820.micro820.solarpanelmb/modbustimer.pt,0x55C,TIME
|
||||
I9=micro820.micro820.solarpanelmb/modbuserrortimer.in,0x2465,BOOL
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,75 +0,0 @@
|
||||
[__DEFIO_CPXDVC]
|
||||
Nb = 2
|
||||
NotMDF = 0, 1, AB_, OPTIMUS_, IO_Base
|
||||
MDF = -1
|
||||
RIdx = 0
|
||||
NotMDF = 101, 1, AB_, OPTIMUS_, IOUP_Analog
|
||||
MDF = -1
|
||||
RIdx = 0
|
||||
|
||||
|
||||
[__DEFIO_SPLDVC]
|
||||
Nb = 6
|
||||
NotMDF = 0, 0, 1, AB_, OPTIMUS_, digitOut_Base
|
||||
MDF = -1
|
||||
RIdx = 0, 0
|
||||
NotMDF = 0, 1, 1, AB_, OPTIMUS_, digitIn_Base
|
||||
MDF = -1
|
||||
RIdx = 0, 0
|
||||
NotMDF = 0, 2, 1, AB_, OPTIMUS_, analogIn_Base
|
||||
MDF = -1
|
||||
RIdx = 0, 0
|
||||
NotMDF = 0, 3, 1, AB_, OPTIMUS_, analogOut_Base
|
||||
MDF = -1
|
||||
RIdx = 0, 0
|
||||
NotMDF = 101, 0, 1, AB_, OPTIMUS_, analogOut_UP
|
||||
MDF = -1
|
||||
RIdx = 0, 1
|
||||
NotMDF = 101, 1, 1, AB_, OPTIMUS_, analogIn_UP
|
||||
MDF = -1
|
||||
RIdx = 0, 1
|
||||
|
||||
|
||||
[__DEFIO_CHAN]
|
||||
RIdx = 0, 0, 0
|
||||
Nb = 7
|
||||
MDF = 1\1, 1, 0, 0, -1, _IO_EM_DO_00
|
||||
MDF = 1\1, 1, 0, 1, -1, _IO_EM_DO_01
|
||||
MDF = 1\1, 1, 0, 2, -1, _IO_EM_DO_02
|
||||
MDF = 1\1, 1, 0, 3, -1, _IO_EM_DO_03
|
||||
MDF = 1\1, 1, 0, 4, -1, _IO_EM_DO_04
|
||||
MDF = 1\1, 1, 0, 5, -1, _IO_EM_DO_05
|
||||
MDF = 1\1, 1, 0, 6, -1, _IO_EM_DO_06
|
||||
RIdx = 0, 0, 1
|
||||
Nb = 12
|
||||
MDF = 1\1, 1, 0, 0, -1, _IO_EM_DI_00
|
||||
MDF = 1\1, 1, 0, 1, -1, _IO_EM_DI_01
|
||||
MDF = 1\1, 1, 0, 2, -1, _IO_EM_DI_02
|
||||
MDF = 1\1, 1, 0, 3, -1, _IO_EM_DI_03
|
||||
MDF = 1\1, 1, 0, 4, -1, _IO_EM_DI_04
|
||||
MDF = 1\1, 1, 0, 5, -1, _IO_EM_DI_05
|
||||
MDF = 1\1, 1, 0, 6, -1, _IO_EM_DI_06
|
||||
MDF = 1\1, 1, 0, 7, -1, _IO_EM_DI_07
|
||||
MDF = 1\1, 1, 0, 8, -1, _IO_EM_DI_08
|
||||
MDF = 1\1, 1, 0, 9, -1, _IO_EM_DI_09
|
||||
MDF = 1\1, 1, 0, 10, -1, _IO_EM_DI_10
|
||||
MDF = 1\1, 1, 0, 11, -1, _IO_EM_DI_11
|
||||
RIdx = 0, 0, 2
|
||||
Nb = 4
|
||||
MDF = 1\1, 1, 0, 0, -1, _IO_EM_AI_00
|
||||
MDF = 1\1, 1, 0, 1, -1, _IO_EM_AI_01
|
||||
MDF = 1\1, 1, 0, 2, -1, _IO_EM_AI_02
|
||||
MDF = 1\1, 1, 0, 3, -1, _IO_EM_AI_03
|
||||
RIdx = 0, 0, 3
|
||||
Nb = 1
|
||||
MDF = 1\1, 1, 0, 0, -1, _IO_EM_AO_00
|
||||
RIdx = 0, 1, 4
|
||||
Nb = 0
|
||||
RIdx = 0, 1, 5
|
||||
Nb = 2
|
||||
MDF = 1\1, 0, 0, 0, -1, _IO_P1_AI_00
|
||||
MDF = 1\1, 0, 0, 1, -1, _IO_P1_AI_01
|
||||
|
||||
|
||||
[__READONLY_VALUES]
|
||||
Nb = 0
|
||||
Binary file not shown.
@@ -84,11 +84,6 @@ TEMP_ARRAYFAULT := __TMPUIN2
|
||||
_GOTO __LAB2
|
||||
__LAB1 :
|
||||
__LAB2 :
|
||||
__TMPB1 := MBS_SOLARPANEL_MSG [ __CDINT0000000D ]
|
||||
__TMPB__TON__IN := __TMPB1
|
||||
__FBL_RET := _PUSHCALLFB TON MODBUSERRORTIMER
|
||||
__TMPB1 := MODBUSERRORTIMER [ __CDINT00000004 ]
|
||||
STS_SOLARMODBUSERROR := __TMPB1
|
||||
__TMPB1 := TEMP_CHARGESTATE = __UINT_NULL
|
||||
_IF _NOT __TMPB1 _GOTO __LAB3
|
||||
STS_CHARGESTATE := __TMPM1
|
||||
@@ -247,3 +242,9 @@ _PUSH_PAR __TMPI1
|
||||
__TMPM13 := _CALL RIGHT
|
||||
STS_ARRAYFAULT := __TMPM13
|
||||
__LABe :
|
||||
__TMPB1 := MBS_SOLARPANEL_MSG [ __CDINT0000000D ]
|
||||
__TMPB1 := _NOT __TMPB1
|
||||
__TMPB__TON__IN := __TMPB1
|
||||
__FBL_RET := _PUSHCALLFB TON MODBUSERRORTIMER
|
||||
__TMPB1 := MODBUSERRORTIMER [ __CDINT00000004 ]
|
||||
STS_SOLARMODBUSOK := __TMPB1
|
||||
|
||||
Binary file not shown.
@@ -25,8 +25,7 @@ IF mbs_SolarPanel_MSG.Q THEN
|
||||
temp_ArrayFault := ANY_TO_UINT(mbs_SolarPanel_Data[35]);
|
||||
END_IF;
|
||||
|
||||
ModbusErrorTimer(mbs_SolarPanel_MSG.Error, ModbusErrorDuration);
|
||||
sts_SolarModbusError := ModbusErrorTimer.Q;
|
||||
|
||||
|
||||
(* Map Charge State *)
|
||||
IF temp_ChargeState = 0 THEN
|
||||
@@ -84,5 +83,8 @@ ELSE
|
||||
|
||||
sts_ArrayFault := RIGHT(sts_ArrayFault, MLEN(sts_ArrayFault) - 2);
|
||||
END_IF;
|
||||
|
||||
|
||||
|
||||
ModbusErrorTimer(NOT(mbs_SolarPanel_MSG.Error), ModbusErrorDuration);
|
||||
sts_SolarModbusOK := ModbusErrorTimer.Q;
|
||||
END_PROGRAM
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user