Adds Pressure Transmitter interface. Completes MAXH2O-98

This commit is contained in:
Patrick McDonagh
2018-02-01 10:15:26 -06:00
parent d8caad894c
commit 808d650496
72 changed files with 232 additions and 100 deletions

View File

@@ -43,6 +43,8 @@ Controller.Micro820.Micro820._IO_EM_DO_03
Controller.Micro820.Micro820._IO_EM_DO_04
Controller.Micro820.Micro820._IO_EM_DO_05
Controller.Micro820.Micro820._IO_EM_DO_06
Controller.Micro820.Micro820._IO_P1_AI_00
Controller.Micro820.Micro820._IO_P1_AI_01
Controller.Micro820.Micro820.cfg_Flowmeter_ModbusNode 20
Controller.Micro820.Micro820.cfg_FlowRate_Register 40201
Controller.Micro820.Micro820.cfg_FlowTotalizerA_Register 40203
@@ -2215,6 +2217,12 @@ Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_MSG.TargetCfg.Addr 40205
Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_MSG.TargetCfg.Node 20
Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_TargetCfg.Addr 40205
Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_TargetCfg.Node 20
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.ET
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.IN
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Pdate
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.PT
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Q
Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Redge
Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.ET
Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.IN
Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.Pdate
@@ -2230,7 +2238,9 @@ Controller.Micro820.Micro820.FlowMeterMb.Wait_To_Reset_TON.PT
Controller.Micro820.Micro820.FlowMeterMb.Wait_To_Reset_TON.Q
Controller.Micro820.Micro820.FlowMeterMb.Wait_To_Reset_TON.Redge
Controller.Micro820.Micro820.FlowMeterMb.WRITECOIL_CMD
Controller.Micro820.Micro820.ModbusErrorDuration
Controller.Micro820.Micro820.ModbusScanRate
Controller.Micro820.Micro820.PressureAnalog.val_AI00_uA
Controller.Micro820.Micro820.skid_Latitude
Controller.Micro820.Micro820.skid_Longitude
Controller.Micro820.Micro820.SolarPanelMb.mbs_Cancel
@@ -2504,6 +2514,12 @@ Controller.Micro820.Micro820.SolarPanelMb.mbs_SolarPanel_MSG.TargetCfg.Node 20
Controller.Micro820.Micro820.SolarPanelMb.mbs_SolarPanel_TargetCfg.Addr 40203
Controller.Micro820.Micro820.SolarPanelMb.mbs_SolarPanel_TargetCfg.Node 20
Controller.Micro820.Micro820.SolarPanelMb.mbs_TriggerType
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.ET
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.IN
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Pdate
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.PT
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Q
Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Redge
Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.ET
Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.IN
Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.Pdate
@@ -2525,6 +2541,7 @@ Controller.Micro820.Micro820.val_FlowTotalizerBUnits
Controller.Micro820.Micro820.val_FlowTotalizerC
Controller.Micro820.Micro820.val_FlowTotalizerCUnits
Controller.Micro820.Micro820.val_FlowUnits
Controller.Micro820.Micro820.val_PressureReading
Controller.Micro820.Micro820.val_SolarAmbientTemperature
Controller.Micro820.Micro820.val_SolarArrayCurrent
Controller.Micro820.Micro820.val_SolarArrayVoltage
1 Controller.Micro820.Micro820.__SYSVA_ABORT_CYCLE
43 Controller.Micro820.Micro820._IO_EM_DO_04
44 Controller.Micro820.Micro820._IO_EM_DO_05
45 Controller.Micro820.Micro820._IO_EM_DO_06
46 Controller.Micro820.Micro820._IO_P1_AI_00
47 Controller.Micro820.Micro820._IO_P1_AI_01
48 Controller.Micro820.Micro820.cfg_Flowmeter_ModbusNode 20
49 Controller.Micro820.Micro820.cfg_FlowRate_Register 40201
50 Controller.Micro820.Micro820.cfg_FlowTotalizerA_Register 40203
2217 Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_MSG.TargetCfg.Node 20
2218 Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_TargetCfg.Addr 40205
2219 Controller.Micro820.Micro820.FlowMeterMb.mbs_Units_TargetCfg.Node 20
2220 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.ET
2221 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.IN
2222 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Pdate
2223 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.PT
2224 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Q
2225 Controller.Micro820.Micro820.FlowMeterMb.ModbusErrorTimer.Redge
2226 Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.ET
2227 Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.IN
2228 Controller.Micro820.Micro820.FlowMeterMb.ModbusTimer.Pdate
2238 Controller.Micro820.Micro820.FlowMeterMb.Wait_To_Reset_TON.Q
2239 Controller.Micro820.Micro820.FlowMeterMb.Wait_To_Reset_TON.Redge
2240 Controller.Micro820.Micro820.FlowMeterMb.WRITECOIL_CMD
2241 Controller.Micro820.Micro820.ModbusErrorDuration
2242 Controller.Micro820.Micro820.ModbusScanRate
2243 Controller.Micro820.Micro820.PressureAnalog.val_AI00_uA
2244 Controller.Micro820.Micro820.skid_Latitude
2245 Controller.Micro820.Micro820.skid_Longitude
2246 Controller.Micro820.Micro820.SolarPanelMb.mbs_Cancel
2514 Controller.Micro820.Micro820.SolarPanelMb.mbs_SolarPanel_TargetCfg.Addr 40203
2515 Controller.Micro820.Micro820.SolarPanelMb.mbs_SolarPanel_TargetCfg.Node 20
2516 Controller.Micro820.Micro820.SolarPanelMb.mbs_TriggerType
2517 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.ET
2518 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.IN
2519 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Pdate
2520 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.PT
2521 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Q
2522 Controller.Micro820.Micro820.SolarPanelMb.ModbusErrorTimer.Redge
2523 Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.ET
2524 Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.IN
2525 Controller.Micro820.Micro820.SolarPanelMb.ModbusTimer.Pdate
2541 Controller.Micro820.Micro820.val_FlowTotalizerC
2542 Controller.Micro820.Micro820.val_FlowTotalizerCUnits
2543 Controller.Micro820.Micro820.val_FlowUnits
2544 Controller.Micro820.Micro820.val_PressureReading
2545 Controller.Micro820.Micro820.val_SolarAmbientTemperature
2546 Controller.Micro820.Micro820.val_SolarArrayCurrent
2547 Controller.Micro820.Micro820.val_SolarArrayVoltage

View File

@@ -1,8 +1,10 @@
FLOWMETERMB
WATCHDOG
SOLARPANELMB
PRESSUREANALOG
WORDSTOREAL
FLOWRATEUNITS
FLOWTOTALUNITS
WORDTOFLOAT16
REVERSEUINT
LINEARSCALE

View File

@@ -1,9 +1,13 @@
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
MODBUSTIMER.IN@SOLARPANELMB,__TMPB__TON__IN,BOOL
MODBUSTIMER.PT@SOLARPANELMB,MODBUSSCANRATE,TIME
MODBUSERRORTIMER.IN@SOLARPANELMB,__TMPB__TON__IN,BOOL
MODBUSERRORTIMER.PT@SOLARPANELMB,MODBUSERRORDURATION,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

View File

@@ -189,6 +189,9 @@ __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

View File

@@ -84,7 +84,8 @@ IF mbs_Status_MSG.Q THEN
val_Status2 := ANY_TO_UINT(mbs_Status_Data[3]);
END_IF;
sts_FlowmeterModbusError := mbs_FlowRate_MSG.Error OR mbs_FlowTotalizerA_MSG.Error OR mbs_FlowTotalizerB_MSG.Error OR mbs_FlowTotalizerC_MSG.Error OR mbs_Status_MSG.Error;
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';

View File

@@ -0,0 +1,10 @@
__TMPR1 := EU_MAX - EU_MIN
__TMPR2 := RAW_MAX - RAW_MIN
__TMPR1 := __TMPR1 / __TMPR2
M := __TMPR1
__TMPR1 := M * RAW_MAX
__TMPR2 := EU_MAX - __TMPR1
B := __TMPR2
__TMPR1 := M * RAW_INP
__TMPR1 := __TMPR1 + B
LINEARSCALE := __TMPR1

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,6 @@
FUNCTION LinearScale
m := (EU_Max - EU_Min) / (Raw_Max - Raw_Min);
b := EU_Max - m * Raw_Max;
LinearScale := m * Raw_Inp + b;
END_FUNCTION

View File

@@ -1,8 +1,10 @@
WATCHDOG(149):
WORDTOFLOAT16(153):F,REVERSEUINT(154);
REVERSEUINT(154):
PRESSUREANALOG(155):F,LINEARSCALE(156);
FLOWRATEUNITS(150):
FLOWMETERMB(147):F,WORDSTOREAL(148);F,FLOWRATEUNITS(150);F,FLOWTOTALUNITS(151);
SOLARPANELMB(152):F,WORDTOFLOAT16(153);
LINEARSCALE(156):
WORDSTOREAL(148):
FLOWTOTALUNITS(151):
SOLARPANELMB(152):F,WORDTOFLOAT16(153);

View File

@@ -1,10 +1,10 @@
[MEMORY]
Offset0=0x1C00
Offset1=0x2400
Offset2=0x2400
Offset3=0x2400
Memory Usage Estimate(Code)=0x247C
Memory Usage Estimate(Data)=0x4F9C
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)=0xB98
Memory Usage Estimate(Temporary variables)=0xBC8
Offset4=0x414

View File

@@ -1,10 +1,10 @@
[MEMORY]
Offset0=0x1C00
Offset1=0x2400
Offset2=0x2400
Offset3=0x2400
Memory Usage Estimate(Code)=0x247C
Memory Usage Estimate(Data)=0x4F9C
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)=0xB98
Memory Usage Estimate(Temporary variables)=0xBC8
Offset4=0x414

View File

@@ -5,12 +5,12 @@ ON_LINE=N
TBL_CONF=Y
CRC_ORG=0x0
CRC_OLD=
CRC_NEW=0x978BA04B
CRC_NEW=0xF767B173
DAT_ORG=0
DAT_OLD=0
DAT_NEW=1517372534
DAT_NEW=1517442743
VER_ORG=0
VER_OLD=0
VER_NEW=31
VER_NEW=36
CRC_ALL_OLD=
CRC_ALL_NEW=0x672665CF
CRC_ALL_NEW=0xEDEFD638

View File

@@ -1,9 +1,9 @@
[MEMORY]
Memory Usage Estimate(Temporary variables)=0xB98
Memory Usage Estimate(Temporary variables)=0xBC8
Biggest online change user variable memory block size=0x800
Currently added user variables=0x0
Total data size=0x2798
User variables size=0x1C00
Maximum size for temporary variables=0x2B98
Memory Usage Estimate(Data)=0x4F98
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

View File

@@ -1,9 +1,9 @@
[MEMORY]
Memory Usage Estimate(Temporary variables)=0xB98
Memory Usage Estimate(Temporary variables)=0xBC8
Biggest online change user variable memory block size=0x800
Currently added user variables=0x0
Total data size=0x2798
User variables size=0x1C00
Maximum size for temporary variables=0x2B98
Memory Usage Estimate(Data)=0x4F98
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

View File

@@ -4,6 +4,7 @@
<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

View File

@@ -1,2 +1,3 @@
<INPUT>,MODBUSTIMER@SOLARPANELMB,TON,IN,__TMPB__TON__IN,BOOL,PT,MODBUSSCANRATE,TIME
<INPUT>,MBS_SOLARPANEL_MSG@SOLARPANELMB,MSG_MODBUS,IN,__TMPB__MSG_MODBUS__IN,BOOL,CANCEL,MBS_CANCEL@SOLARPANELMB,BOOL,LOCALCFG,<NOT USED>,MODBUSLOCPARA,TARGETCFG,<NOT USED>,MODBUSTARPARA,LOCALADDR,<NOT USED>,MODBUSLOCADDR,__ADI_LOCALADDR,<NOT USED>,UINT
<INPUT>,MODBUSERRORTIMER@SOLARPANELMB,TON,IN,__TMPB__TON__IN,BOOL,PT,MODBUSERRORDURATION,TIME

View File

@@ -1,62 +1,66 @@
[BEGIN FB INPUTS]
I1=micro820.micro820.flowmetermb/modbustimer.in,0x2401,BOOL
I2=micro820.micro820.flowmetermb/modbustimer.pt,0x52C,TIME
I3=micro820.micro820.flowmetermb/wait_to_reset_ton.in,0x45C,BOOL
I4=micro820.micro820.flowmetermb/wait_to_reset_ton.pt,0x530,TIME
I5=micro820.micro820.solarpanelmb/modbustimer.in,0x2401,BOOL
I6=micro820.micro820.solarpanelmb/modbustimer.pt,0x52C,TIME
I7=micro820.micro820.flowmetermb/mbs_flowrate_msg.in,0x2402,BOOL
I8=micro820.micro820.flowmetermb/mbs_flowrate_msg.cancel,0x45A,BOOL
I9=micro820.micro820.flowmetermb/mbs_flowrate_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I10=micro820.micro820.flowmetermb/mbs_flowrate_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I11=micro820.micro820.flowmetermb/mbs_flowrate_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I12=micro820.micro820.flowmetermb/mbs_flowrate_msg.__adi_localaddr,0xFFFFFFFF,UINT
I13=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.in,0x2402,BOOL
I14=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.cancel,0x45A,BOOL
I15=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I16=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I17=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I18=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.__adi_localaddr,0xFFFFFFFF,UINT
I19=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.in,0x2402,BOOL
I20=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.cancel,0x45A,BOOL
I21=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I22=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I23=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I24=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.__adi_localaddr,0xFFFFFFFF,UINT
I25=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.in,0x2402,BOOL
I26=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.cancel,0x45A,BOOL
I27=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I28=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I29=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I30=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.__adi_localaddr,0xFFFFFFFF,UINT
I31=micro820.micro820.flowmetermb/mbs_status_msg.in,0x2402,BOOL
I32=micro820.micro820.flowmetermb/mbs_status_msg.cancel,0x45A,BOOL
I33=micro820.micro820.flowmetermb/mbs_status_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I34=micro820.micro820.flowmetermb/mbs_status_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I35=micro820.micro820.flowmetermb/mbs_status_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I36=micro820.micro820.flowmetermb/mbs_status_msg.__adi_localaddr,0xFFFFFFFF,UINT
I37=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.in,0x45B,BOOL
I38=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.cancel,0x45A,BOOL
I39=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I40=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I41=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I42=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I43=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.in,0x2402,BOOL
I44=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.cancel,0x45A,BOOL
I45=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I46=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I47=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I48=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I49=micro820.micro820.flowmetermb/mbs_units_msg.in,0x2402,BOOL
I50=micro820.micro820.flowmetermb/mbs_units_msg.cancel,0x45A,BOOL
I51=micro820.micro820.flowmetermb/mbs_units_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I52=micro820.micro820.flowmetermb/mbs_units_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I53=micro820.micro820.flowmetermb/mbs_units_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I54=micro820.micro820.flowmetermb/mbs_units_msg.__adi_localaddr,0xFFFFFFFF,UINT
I55=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.in,0x2402,BOOL
I56=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.cancel,0x45D,BOOL
I57=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I58=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I59=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I60=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.__adi_localaddr,0xFFFFFFFF,UINT
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
I7=micro820.micro820.solarpanelmb/modbustimer.in,0x2465,BOOL
I8=micro820.micro820.solarpanelmb/modbustimer.pt,0x55C,TIME
I9=micro820.micro820.solarpanelmb/modbuserrortimer.in,0x2465,BOOL
I10=micro820.micro820.solarpanelmb/modbuserrortimer.pt,0x560,TIME
I11=micro820.micro820.flowmetermb/mbs_flowrate_msg.in,0x2466,BOOL
I12=micro820.micro820.flowmetermb/mbs_flowrate_msg.cancel,0x462,BOOL
I13=micro820.micro820.flowmetermb/mbs_flowrate_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I14=micro820.micro820.flowmetermb/mbs_flowrate_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I15=micro820.micro820.flowmetermb/mbs_flowrate_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I16=micro820.micro820.flowmetermb/mbs_flowrate_msg.__adi_localaddr,0xFFFFFFFF,UINT
I17=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.in,0x2466,BOOL
I18=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.cancel,0x462,BOOL
I19=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I20=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I21=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I22=micro820.micro820.flowmetermb/mbs_flowtotalizera_msg.__adi_localaddr,0xFFFFFFFF,UINT
I23=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.in,0x2466,BOOL
I24=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.cancel,0x462,BOOL
I25=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I26=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I27=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I28=micro820.micro820.flowmetermb/mbs_flowtotalizerb_msg.__adi_localaddr,0xFFFFFFFF,UINT
I29=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.in,0x2466,BOOL
I30=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.cancel,0x462,BOOL
I31=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I32=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I33=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I34=micro820.micro820.flowmetermb/mbs_flowtotalizerc_msg.__adi_localaddr,0xFFFFFFFF,UINT
I35=micro820.micro820.flowmetermb/mbs_status_msg.in,0x2466,BOOL
I36=micro820.micro820.flowmetermb/mbs_status_msg.cancel,0x462,BOOL
I37=micro820.micro820.flowmetermb/mbs_status_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I38=micro820.micro820.flowmetermb/mbs_status_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I39=micro820.micro820.flowmetermb/mbs_status_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I40=micro820.micro820.flowmetermb/mbs_status_msg.__adi_localaddr,0xFFFFFFFF,UINT
I41=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.in,0x463,BOOL
I42=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.cancel,0x462,BOOL
I43=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I44=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I45=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I46=micro820.micro820.flowmetermb/mbs_resettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I47=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.in,0x2466,BOOL
I48=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.cancel,0x462,BOOL
I49=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I50=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I51=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I52=micro820.micro820.flowmetermb/mbs_clearresettotalizer_msg.__adi_localaddr,0xFFFFFFFF,UINT
I53=micro820.micro820.flowmetermb/mbs_units_msg.in,0x2466,BOOL
I54=micro820.micro820.flowmetermb/mbs_units_msg.cancel,0x462,BOOL
I55=micro820.micro820.flowmetermb/mbs_units_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I56=micro820.micro820.flowmetermb/mbs_units_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I57=micro820.micro820.flowmetermb/mbs_units_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I58=micro820.micro820.flowmetermb/mbs_units_msg.__adi_localaddr,0xFFFFFFFF,UINT
I59=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.in,0x2466,BOOL
I60=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.cancel,0x465,BOOL
I61=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.localcfg,0xFFFFFFFF,MODBUSLOCPARA
I62=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.targetcfg,0xFFFFFFFF,MODBUSTARPARA
I63=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.localaddr,0xFFFFFFFF,MODBUSLOCADDR
I64=micro820.micro820.solarpanelmb/mbs_solarpanel_msg.__adi_localaddr,0xFFFFFFFF,UINT
[END]

View File

@@ -1,12 +1,15 @@
[__DEFIO_CPXDVC]
Nb = 1
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 = 4
Nb = 6
NotMDF = 0, 0, 1, AB_, OPTIMUS_, digitOut_Base
MDF = -1
RIdx = 0, 0
@@ -19,6 +22,12 @@ 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]
@@ -54,6 +63,12 @@ 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]

View File

@@ -1,12 +1,15 @@
[__DEFIO_CPXDVC]
Nb = 1
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 = 4
Nb = 6
NotMDF = 0, 0, 1, AB_, OPTIMUS_, digitOut_Base
MDF = -1
RIdx = 0, 0
@@ -19,6 +22,12 @@ 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]
@@ -54,6 +63,12 @@ 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]

View File

@@ -0,0 +1 @@
PRESSUREANALOG(155):F,LINEARSCALE(156);

View File

@@ -0,0 +1,16 @@
_PUSH_PAR _IO_P1_AI_00
__TMPR5 := _CALL ANY_TO_UINT
_PUSH_PAR __TMPR1
_PUSH_PAR __TMPR2
_PUSH_PAR __TMPR3
_PUSH_PAR __TMPR4
_PUSH_PAR __TMPR5
__TMPR6 := _CALL LINEARSCALE
VAL_AI00_UA := __TMPR6
_PUSH_PAR __TMPR3
_PUSH_PAR __TMPR4
_PUSH_PAR __TMPR7
_PUSH_PAR __TMPR8
_PUSH_PAR VAL_AI00_UA
__TMPR5 := _CALL LINEARSCALE
VAL_PRESSUREREADING := __TMPR5

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,4 @@
PROGRAM PressureAnalog
val_AI00_uA := LinearScale(13107.0, 65535.0, 4000.0, 20000.0, ANY_TO_REAL(_IO_P1_AI_00));
val_PressureReading := LinearScale(4000.0, 20000.0, 0.0, 600.0, val_AI00_uA);
END_PROGRAM

View File

@@ -58,12 +58,16 @@ __TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_SOLARPANEL_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPR1 := _CALL WORDTOFLOAT16
__TMPR1 := __TMPR1 * __TMPR2
__TMPR1 := __TMPR1 + __TMPR3
VAL_SOLARBATTERYTEMPERATURE := __TMPR1
__TMPI1 := __CDINT0000001D - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
__TMPUIN1 := MBS_SOLARPANEL_DATA [ __TMPI1 ]
_PUSH_PAR __TMPUIN1
__TMPR1 := _CALL WORDTOFLOAT16
__TMPR1 := __TMPR1 * __TMPR2
__TMPR1 := __TMPR1 + __TMPR3
VAL_SOLARAMBIENTTEMPERATURE := __TMPR1
__TMPI1 := __CDINT00000022 - __CDINT00000001
__TMPI1 := __TMPI1 * __CDINT00000002
@@ -81,6 +85,9 @@ _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

View File

@@ -19,13 +19,14 @@ IF mbs_SolarPanel_MSG.Q THEN
val_SolarArrayVoltage := WordToFloat16(mbs_SolarPanel_Data[20]);
val_SolarLoadVoltage := WordToFloat16(mbs_SolarPanel_Data[21]);
val_SolarLoadCurrent := WordToFloat16(mbs_SolarPanel_Data[23]);
val_SolarBatteryTemperature := WordToFloat16(mbs_SolarPanel_Data[28]);
val_SolarAmbientTemperature := WordToFloat16(mbs_SolarPanel_Data[29]);
val_SolarBatteryTemperature := WordToFloat16(mbs_SolarPanel_Data[28]) * 1.8 + 32.0;
val_SolarAmbientTemperature := WordToFloat16(mbs_SolarPanel_Data[29]) * 1.8 + 32.0;
temp_ChargeState := ANY_TO_UINT(mbs_SolarPanel_Data[34]);
temp_ArrayFault := ANY_TO_UINT(mbs_SolarPanel_Data[35]);
END_IF;
sts_SolarModbusError := mbs_SolarPanel_MSG.Error;
ModbusErrorTimer(mbs_SolarPanel_MSG.Error, ModbusErrorDuration);
sts_SolarModbusError := ModbusErrorTimer.Q;
(* Map Charge State *)
IF temp_ChargeState = 0 THEN

View File

@@ -1,11 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectElements>
<AcfElementGuid Guid="09f80df8-de78-4f0d-83bb-a50f1aedc854" />
<AcfElementGuid Guid="1f8f27de-e718-45df-9429-35b1463a9e4e" />
<AcfElementGuid Guid="23b6cc54-7135-422a-8743-f460b52a26b3" />
<AcfElementGuid Guid="24745dc1-7289-46d4-939f-92610f2b16b5" />
<AcfElementGuid Guid="3e90d2bb-e548-4dc3-a89b-4dede9914c73" />
<AcfElementGuid Guid="4abfa14a-9a16-4913-a742-278fd478b028" />
<AcfElementGuid Guid="584fd256-dfd3-4908-ba27-015faa1ddf1a" />
<AcfElementGuid Guid="6baaf1eb-2019-4bda-b9e7-8119676bf9bd" />
<AcfElementGuid Guid="8f54bff0-84c6-443e-84ae-c99f1b596308" />
<AcfElementGuid Guid="985f9591-f3ba-4dcb-837f-f4a3058ef166" />
<AcfElementGuid Guid="b347dfd1-4943-49d5-9124-df6855433dbd" />
<AcfElementGuid Guid="d7b5fe0b-4028-475c-b33e-767c5b5daf82" />
<AcfElementGuid Guid="d9cd1c27-0f51-4f96-b960-a629f4aa554a" />
</ProjectElements>

View File

@@ -2,6 +2,7 @@
<ProjectElements>
<AcfElementGuid Guid="24745dc1-7289-46d4-939f-92610f2b16b5" />
<AcfElementGuid Guid="4abfa14a-9a16-4913-a742-278fd478b028" />
<AcfElementGuid Guid="8f54bff0-84c6-443e-84ae-c99f1b596308" />
<AcfElementGuid Guid="b347dfd1-4943-49d5-9124-df6855433dbd" />
<AcfElementGuid Guid="d9cd1c27-0f51-4f96-b960-a629f4aa554a" />
</ProjectElements>

View File

@@ -18,9 +18,15 @@
<AcfElementGuid Guid="6baaf1eb-2019-4bda-b9e7-8119676bf9bd">
<File>FlowRateUnits.AcfMlge</File>
</AcfElementGuid>
<AcfElementGuid Guid="8f54bff0-84c6-443e-84ae-c99f1b596308">
<File>PressureAnalog.AcfMlge</File>
</AcfElementGuid>
<AcfElementGuid Guid="b347dfd1-4943-49d5-9124-df6855433dbd">
<File>FlowMeterMb.AcfMlge</File>
</AcfElementGuid>
<AcfElementGuid Guid="d7b5fe0b-4028-475c-b33e-767c5b5daf82">
<File>LinearScale.AcfMlge</File>
</AcfElementGuid>
<AcfElementGuid Guid="d9cd1c27-0f51-4f96-b960-a629f4aa554a">
<File>Watchdog.AcfMlge</File>
</AcfElementGuid>

View File

@@ -4,9 +4,9 @@
All devices need to be configured with the following Modbus Parameters:
- Baud Rate: 19200
- Parity: Even
- Stop Bits: 1
- Baud Rate: 9600
- Parity: None
- Stop Bits: 2
### Modbus Addresses