10 Commits

116 changed files with 3224 additions and 1448 deletions

View File

@@ -1 +1 @@
COMPILED
TO RELINK

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<DevicePreferences xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Micro800ConnectionPath>PMCDONAGH-SURF!AB_ETH-1\10.20.4.5</Micro800ConnectionPath>
<Micro800ConnectionPath>DESKTOP-AGBV11S!Old_Parkland\10.20.158.3</Micro800ConnectionPath>
</DevicePreferences>

View File

@@ -8,7 +8,7 @@
<DLGRCP_VarVA>
<DLGRCP_VarVA>
<ArrayLength>1</ArrayLength>
<VirtualAddress>1368</VirtualAddress>
<VirtualAddress>1380</VirtualAddress>
<Name>DH_IntakeTemperature</Name>
<Index>1</Index>
<ISaDataType>REAL</ISaDataType>
@@ -18,7 +18,7 @@
</DLGRCP_VarVA>
<DLGRCP_VarVA>
<ArrayLength>1</ArrayLength>
<VirtualAddress>1372</VirtualAddress>
<VirtualAddress>1384</VirtualAddress>
<Name>DH_IntakePressure</Name>
<Index>2</Index>
<ISaDataType>REAL</ISaDataType>
@@ -28,7 +28,7 @@
</DLGRCP_VarVA>
<DLGRCP_VarVA>
<ArrayLength>1</ArrayLength>
<VirtualAddress>2201</VirtualAddress>
<VirtualAddress>2213</VirtualAddress>
<Name>DH_DownholeStatus</Name>
<Index>3</Index>
<ISaDataType>STRING</ISaDataType>

View File

@@ -45,6 +45,8 @@ Controller.Micro820.Micro820._IO_EM_DO_05 FALSE
Controller.Micro820.Micro820._IO_EM_DO_06 FALSE
Controller.Micro820.Micro820._IO_P1_AI_00
Controller.Micro820.Micro820._IO_P1_AI_01
Controller.Micro820.Micro820._IO_P1_AI_02
Controller.Micro820.Micro820._IO_P1_AI_03
Controller.Micro820.Micro820.alarm_DHPressure
Controller.Micro820.Micro820.alarm_DHTemperature
Controller.Micro820.Micro820.alarm_E300
@@ -226,9 +228,16 @@ Controller.Micro820.Micro820.Control.Pressure_Switch_OK FALSE
Controller.Micro820.Micro820.Control.RTrig_AutoMode.CLK
Controller.Micro820.Micro820.Control.RTrig_AutoMode.Q
Controller.Micro820.Micro820.Control.RTrig_AutoMode.Redge
Controller.Micro820.Micro820.Control.StartCommandTime T#4s
Controller.Micro820.Micro820.Control.TEST_started
Controller.Micro820.Micro820.Control.Time_Until_Startup_Min
Controller.Micro820.Micro820.Control.Time_Until_Startup_Sec
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.ET
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.IN
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Pdate
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.PT
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Q
Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Redge
Controller.Micro820.Micro820.CurrentTimeRTC.day
Controller.Micro820.Micro820.CurrentTimeRTC.day_seconds
Controller.Micro820.Micro820.CurrentTimeRTC.Epoch
@@ -254,6 +263,7 @@ Controller.Micro820.Micro820.CurrentTimeRTC.second
Controller.Micro820.Micro820.CurrentTimeRTC.year
Controller.Micro820.Micro820.CurrentTimeRTC.year_seconds
Controller.Micro820.Micro820.Device_Status 'Not ready to start'
Controller.Micro820.Micro820.Device_Status_INT
Controller.Micro820.Micro820.DH_DischargePressure 0
Controller.Micro820.Micro820.DH_DischargeTemperature 0
Controller.Micro820.Micro820.DH_DownholeStatus 'OK'
1 Controller.Micro820.Micro820.__SYSVA_ABORT_CYCLE FALSE
45 Controller.Micro820.Micro820._IO_EM_DO_06 FALSE
46 Controller.Micro820.Micro820._IO_P1_AI_00
47 Controller.Micro820.Micro820._IO_P1_AI_01
48 Controller.Micro820.Micro820._IO_P1_AI_02
49 Controller.Micro820.Micro820._IO_P1_AI_03
50 Controller.Micro820.Micro820.alarm_DHPressure
51 Controller.Micro820.Micro820.alarm_DHTemperature
52 Controller.Micro820.Micro820.alarm_E300
228 Controller.Micro820.Micro820.Control.RTrig_AutoMode.CLK
229 Controller.Micro820.Micro820.Control.RTrig_AutoMode.Q
230 Controller.Micro820.Micro820.Control.RTrig_AutoMode.Redge
231 Controller.Micro820.Micro820.Control.StartCommandTime T#4s
232 Controller.Micro820.Micro820.Control.TEST_started
233 Controller.Micro820.Micro820.Control.Time_Until_Startup_Min
234 Controller.Micro820.Micro820.Control.Time_Until_Startup_Sec
235 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.ET
236 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.IN
237 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Pdate
238 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.PT
239 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Q
240 Controller.Micro820.Micro820.Control.UNSTICK_STARTCOMMAND.Redge
241 Controller.Micro820.Micro820.CurrentTimeRTC.day
242 Controller.Micro820.Micro820.CurrentTimeRTC.day_seconds
243 Controller.Micro820.Micro820.CurrentTimeRTC.Epoch
263 Controller.Micro820.Micro820.CurrentTimeRTC.year
264 Controller.Micro820.Micro820.CurrentTimeRTC.year_seconds
265 Controller.Micro820.Micro820.Device_Status 'Not ready to start'
266 Controller.Micro820.Micro820.Device_Status_INT
267 Controller.Micro820.Micro820.DH_DischargePressure 0
268 Controller.Micro820.Micro820.DH_DischargeTemperature 0
269 Controller.Micro820.Micro820.DH_DownholeStatus 'OK'

View File

@@ -1,473 +1,473 @@
<modbusServer Version="2.0">
<modbusRegister name="DISCRETES_INPUTS">
<mapping variable="Auto_Mode" parent="Micro820" dataType="Bool" address="100001" va="0x470">
<mapping variable="Auto_Mode" parent="Micro820" dataType="Bool" address="100001" va="0x478">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Test_Mode" parent="Micro820" dataType="Bool" address="100002" va="0x47a">
<mapping variable="Test_Mode" parent="Micro820" dataType="Bool" address="100002" va="0x482">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Hand_Mode" parent="Micro820" dataType="Bool" address="100003" va="0x46f">
<mapping variable="Hand_Mode" parent="Micro820" dataType="Bool" address="100003" va="0x477">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Contactor_Status" parent="Micro820" dataType="Bool" address="100004" va="0x472">
<mapping variable="Contactor_Status" parent="Micro820" dataType="Bool" address="100004" va="0x47a">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Start_Permissive" parent="Micro820" dataType="Bool" address="100005" va="0x464">
<mapping variable="Start_Permissive" parent="Micro820" dataType="Bool" address="100005" va="0x46c">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Run_Permissive" parent="Micro820" dataType="Bool" address="100006" va="0x465">
<mapping variable="Run_Permissive" parent="Micro820" dataType="Bool" address="100006" va="0x46d">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_READ" parent="Micro820" dataType="Bool" address="100007" va="0x473">
<mapping variable="cfg_READ" parent="Micro820" dataType="Bool" address="100007" va="0x47b">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_WRITE" parent="Micro820" dataType="Bool" address="100009" va="0x474">
<mapping variable="cfg_WRITE" parent="Micro820" dataType="Bool" address="100009" va="0x47c">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="TripStatus" parent="Micro820" dataType="Bool" address="100010" va="0x478">
<mapping variable="TripStatus" parent="Micro820" dataType="Bool" address="100010" va="0x480">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="WarningStatus" parent="Micro820" dataType="Bool" address="100011" va="0x479">
<mapping variable="WarningStatus" parent="Micro820" dataType="Bool" address="100011" va="0x481">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="OverloadTrip" parent="Micro820" dataType="Bool" address="100012" va="0x477">
<mapping variable="OverloadTrip" parent="Micro820" dataType="Bool" address="100012" va="0x47f">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="VoltageOK" parent="Micro820" dataType="Bool" address="100013" va="0x47b">
<mapping variable="VoltageOK" parent="Micro820" dataType="Bool" address="100013" va="0x483">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="TripResetCmd" parent="Micro820" dataType="Bool" address="100014" va="0x476">
<mapping variable="TripResetCmd" parent="Micro820" dataType="Bool" address="100014" va="0x47e">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_0" parent="Micro820" dataType="Bool" address="100015" va="0x45e">
<mapping variable="DigitalInput_Status_0" parent="Micro820" dataType="Bool" address="100015" va="0x466">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_1" parent="Micro820" dataType="Bool" address="100016" va="0x45f">
<mapping variable="DigitalInput_Status_1" parent="Micro820" dataType="Bool" address="100016" va="0x467">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_2" parent="Micro820" dataType="Bool" address="100017" va="0x460">
<mapping variable="DigitalInput_Status_2" parent="Micro820" dataType="Bool" address="100017" va="0x468">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_3" parent="Micro820" dataType="Bool" address="100018" va="0x461">
<mapping variable="DigitalInput_Status_3" parent="Micro820" dataType="Bool" address="100018" va="0x469">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_4" parent="Micro820" dataType="Bool" address="100019" va="0x468">
<mapping variable="DigitalInput_Status_4" parent="Micro820" dataType="Bool" address="100019" va="0x470">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="DigitalInput_Status_5" parent="Micro820" dataType="Bool" address="100020" va="0x467">
<mapping variable="DigitalInput_Status_5" parent="Micro820" dataType="Bool" address="100020" va="0x46f">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Temp_Shutdown_Enabled" parent="Micro820" dataType="Bool" address="100021" va="0x469">
<mapping variable="Temp_Shutdown_Enabled" parent="Micro820" dataType="Bool" address="100021" va="0x471">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Pressure_Shutdown_Enabled" parent="Micro820" dataType="Bool" address="100022" va="0x46b">
<mapping variable="Pressure_Shutdown_Enabled" parent="Micro820" dataType="Bool" address="100022" va="0x473">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Temp_Startup_Enabled" parent="Micro820" dataType="Bool" address="100023" va="0x46a">
<mapping variable="Temp_Startup_Enabled" parent="Micro820" dataType="Bool" address="100023" va="0x472">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Pressure_Startup_Enabled" parent="Micro820" dataType="Bool" address="100024" va="0x46c">
<mapping variable="Pressure_Startup_Enabled" parent="Micro820" dataType="Bool" address="100024" va="0x474">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Start_Command" parent="Micro820" dataType="Bool" address="100025" va="0x462">
<mapping variable="Start_Command" parent="Micro820" dataType="Bool" address="100025" va="0x46a">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Stop_Command" parent="Micro820" dataType="Bool" address="100026" va="0x463">
<mapping variable="Stop_Command" parent="Micro820" dataType="Bool" address="100026" va="0x46b">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Pressure_Switch_Enabled" parent="Micro820" dataType="Bool" address="100027" va="0x49c">
<mapping variable="Pressure_Switch_Enabled" parent="Micro820" dataType="Bool" address="100027" va="0x4a4">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="Downhole_Tool_Enabled" parent="Micro820" dataType="Bool" address="100028" va="0x49d">
<mapping variable="Downhole_Tool_Enabled" parent="Micro820" dataType="Bool" address="100028" va="0x4a5">
<MBVarInfo ElemType="Bool" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_GF_GroundFaultInhibitTime" parent="Micro820" dataType="USInt" address="100056" va="0x4cb">
<mapping variable="cfg_GF_GroundFaultInhibitTime" parent="Micro820" dataType="USInt" address="100056" va="0x4d3">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_CurrentImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100064" va="0x4d2">
<mapping variable="cfg_I_CurrentImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100064" va="0x4da">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_CurrentImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100072" va="0x4d2">
<mapping variable="cfg_I_CurrentImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100072" va="0x4da">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_CurrentImbalanceTripDelay" parent="Micro820" dataType="USInt" address="100080" va="0x4d3">
<mapping variable="cfg_I_CurrentImbalanceTripDelay" parent="Micro820" dataType="USInt" address="100080" va="0x4db">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_CurrentImbalanceTripLevel" parent="Micro820" dataType="USInt" address="100088" va="0x4d4">
<mapping variable="cfg_I_CurrentImbalanceTripLevel" parent="Micro820" dataType="USInt" address="100088" va="0x4dc">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_CurrentImbalanceWarningLevel" parent="Micro820" dataType="USInt" address="100096" va="0x4d5">
<mapping variable="cfg_I_CurrentImbalanceWarningLevel" parent="Micro820" dataType="USInt" address="100096" va="0x4dd">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_JamInhibitTime" parent="Micro820" dataType="USInt" address="100104" va="0x4cd">
<mapping variable="cfg_I_JamInhibitTime" parent="Micro820" dataType="USInt" address="100104" va="0x4d5">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_JamTripDelay" parent="Micro820" dataType="USInt" address="100112" va="0x4ce">
<mapping variable="cfg_I_JamTripDelay" parent="Micro820" dataType="USInt" address="100112" va="0x4d6">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_LineLossInhibitTime" parent="Micro820" dataType="USInt" address="100120" va="0x4e4">
<mapping variable="cfg_I_LineLossInhibitTime" parent="Micro820" dataType="USInt" address="100120" va="0x4ec">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_OvercurrentInhibitTime" parent="Micro820" dataType="USInt" address="100128" va="0x4dd">
<mapping variable="cfg_I_OvercurrentInhibitTime" parent="Micro820" dataType="USInt" address="100128" va="0x4e5">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_OvercurrentTripLevel" parent="Micro820" dataType="USInt" address="100136" va="0x506">
<mapping variable="cfg_I_OvercurrentTripLevel" parent="Micro820" dataType="USInt" address="100136" va="0x50e">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_OvercurrentWarningLevel" parent="Micro820" dataType="USInt" address="100144" va="0x507">
<mapping variable="cfg_I_OvercurrentWarningLevel" parent="Micro820" dataType="USInt" address="100144" va="0x50f">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_StallEnabledTime" parent="Micro820" dataType="USInt" address="100152" va="0x4cc">
<mapping variable="cfg_I_StallEnabledTime" parent="Micro820" dataType="USInt" address="100152" va="0x4d4">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_TripEnableCurrent" parent="Micro820" dataType="UInt" address="100160" va="0x522">
<mapping variable="cfg_I_TripEnableCurrent" parent="Micro820" dataType="UInt" address="100160" va="0x52a">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_UndercurrentInhibitTime" parent="Micro820" dataType="USInt" address="100176" va="0x4d6">
<mapping variable="cfg_I_UndercurrentInhibitTime" parent="Micro820" dataType="USInt" address="100176" va="0x4de">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_C_WarningEnableControl" parent="Micro820" dataType="UInt" address="100184" va="0x530">
<mapping variable="cfg_C_WarningEnableControl" parent="Micro820" dataType="UInt" address="100184" va="0x538">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_UndercurrentTripLevel" parent="Micro820" dataType="USInt" address="100200" va="0x504">
<mapping variable="cfg_I_UndercurrentTripLevel" parent="Micro820" dataType="USInt" address="100200" va="0x50c">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_UndercurrentWarningLevel" parent="Micro820" dataType="USInt" address="100208" va="0x505">
<mapping variable="cfg_I_UndercurrentWarningLevel" parent="Micro820" dataType="USInt" address="100208" va="0x50d">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_UnderloadInhibitTime" parent="Micro820" dataType="USInt" address="100216" va="0x4cf">
<mapping variable="cfg_I_UnderloadInhibitTime" parent="Micro820" dataType="USInt" address="100216" va="0x4d7">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_UnderloadTripLevel" parent="Micro820" dataType="USInt" address="100224" va="0x4d0">
<mapping variable="cfg_I_UnderloadTripLevel" parent="Micro820" dataType="USInt" address="100224" va="0x4d8">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_UnderloadWarningLevel" parent="Micro820" dataType="USInt" address="100232" va="0x4d1">
<mapping variable="cfg_I_UnderloadWarningLevel" parent="Micro820" dataType="USInt" address="100232" va="0x4d9">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_I_WarningEnableCurrent" parent="Micro820" dataType="UInt" address="100240" va="0x52a">
<mapping variable="cfg_I_WarningEnableCurrent" parent="Micro820" dataType="UInt" address="100240" va="0x532">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_PL_PhaseLossInhibitTime" parent="Micro820" dataType="USInt" address="100256" va="0x4ca">
<mapping variable="cfg_PL_PhaseLossInhibitTime" parent="Micro820" dataType="USInt" address="100256" va="0x4d2">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_TCU_OLResetLevel" parent="Micro820" dataType="USInt" address="100264" va="0x4c8">
<mapping variable="cfg_TCU_OLResetLevel" parent="Micro820" dataType="USInt" address="100264" va="0x4d0">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_TCU_OLWarningLevel" parent="Micro820" dataType="USInt" address="100272" va="0x4c9">
<mapping variable="cfg_TCU_OLWarningLevel" parent="Micro820" dataType="USInt" address="100272" va="0x4d1">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_TCU_TripClass" parent="Micro820" dataType="USInt" address="100280" va="0x4c7">
<mapping variable="cfg_TCU_TripClass" parent="Micro820" dataType="USInt" address="100280" va="0x4cf">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_OverfrequencyInhibitTime" parent="Micro820" dataType="USInt" address="100288" va="0x4f0">
<mapping variable="cfg_V_OverfrequencyInhibitTime" parent="Micro820" dataType="USInt" address="100288" va="0x4f8">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_OverfrequencyTripLevel" parent="Micro820" dataType="USInt" address="100296" va="0x4f1">
<mapping variable="cfg_V_OverfrequencyTripLevel" parent="Micro820" dataType="USInt" address="100296" va="0x4f9">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_OverfrequencyWarningLevel" parent="Micro820" dataType="USInt" address="100304" va="0x4f2">
<mapping variable="cfg_V_OverfrequencyWarningLevel" parent="Micro820" dataType="USInt" address="100304" va="0x4fa">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_OvervoltageInhibitTime" parent="Micro820" dataType="USInt" address="100312" va="0x4e7">
<mapping variable="cfg_V_OvervoltageInhibitTime" parent="Micro820" dataType="USInt" address="100312" va="0x4ef">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_PhaseRotationInhibitTime" parent="Micro820" dataType="USInt" address="100320" va="0x4e8">
<mapping variable="cfg_V_PhaseRotationInhibitTime" parent="Micro820" dataType="USInt" address="100320" va="0x4f0">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_PhaseRotationTripType" parent="Micro820" dataType="USInt" address="100328" va="0x4e9">
<mapping variable="cfg_V_PhaseRotationTripType" parent="Micro820" dataType="USInt" address="100328" va="0x4f1">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_TripEnableVoltage" parent="Micro820" dataType="UInt" address="100336" va="0x524">
<mapping variable="cfg_V_TripEnableVoltage" parent="Micro820" dataType="UInt" address="100336" va="0x52c">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_V_UnderfrequencyInhibitTime" parent="Micro820" dataType="USInt" address="100352" va="0x4ed">
<mapping variable="cfg_V_UnderfrequencyInhibitTime" parent="Micro820" dataType="USInt" address="100352" va="0x4f5">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_UnderfrequencyTripLevel" parent="Micro820" dataType="USInt" address="100360" va="0x4ee">
<mapping variable="cfg_V_UnderfrequencyTripLevel" parent="Micro820" dataType="USInt" address="100360" va="0x4f6">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_UnderfrequencyWarningLevel" parent="Micro820" dataType="USInt" address="100368" va="0x4ef">
<mapping variable="cfg_V_UnderfrequencyWarningLevel" parent="Micro820" dataType="USInt" address="100368" va="0x4f7">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_UndervoltageInhibitTime" parent="Micro820" dataType="USInt" address="100376" va="0x4e6">
<mapping variable="cfg_V_UndervoltageInhibitTime" parent="Micro820" dataType="USInt" address="100376" va="0x4ee">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_VoltageImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100384" va="0x4ea">
<mapping variable="cfg_V_VoltageImbalanceInhibitTime" parent="Micro820" dataType="USInt" address="100384" va="0x4f2">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_VoltageImbalanceTripLevel" parent="Micro820" dataType="USInt" address="100392" va="0x4eb">
<mapping variable="cfg_V_VoltageImbalanceTripLevel" parent="Micro820" dataType="USInt" address="100392" va="0x4f3">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_VoltageImbalanceWarningLevel" parent="Micro820" dataType="USInt" address="100400" va="0x4ec">
<mapping variable="cfg_V_VoltageImbalanceWarningLevel" parent="Micro820" dataType="USInt" address="100400" va="0x4f4">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_VoltageMode" parent="Micro820" dataType="USInt" address="100408" va="0x4e5">
<mapping variable="cfg_V_VoltageMode" parent="Micro820" dataType="USInt" address="100408" va="0x4ed">
<MBVarInfo ElemType="USInt" SubElemType="Any" DataTypeSize="1" />
</mapping>
<mapping variable="cfg_V_WarningEnableVoltage" parent="Micro820" dataType="UInt" address="100416" va="0x52c">
<mapping variable="cfg_V_WarningEnableVoltage" parent="Micro820" dataType="UInt" address="100416" va="0x534">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="TripStatusControl_INT" parent="Micro820" dataType="UInt" address="100432" va="0x546">
<mapping variable="TripStatusControl_INT" parent="Micro820" dataType="UInt" address="100432" va="0x54e">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="TripStatusCurrent_INT" parent="Micro820" dataType="UInt" address="100448" va="0x540">
<mapping variable="TripStatusCurrent_INT" parent="Micro820" dataType="UInt" address="100448" va="0x548">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="TripStatusPower_INT" parent="Micro820" dataType="UInt" address="100464" va="0x544">
<mapping variable="TripStatusPower_INT" parent="Micro820" dataType="UInt" address="100464" va="0x54c">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="TripStatusVoltage_INT" parent="Micro820" dataType="UInt" address="100480" va="0x542">
<mapping variable="TripStatusVoltage_INT" parent="Micro820" dataType="UInt" address="100480" va="0x54a">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="WarningStatusControl_INT" parent="Micro820" dataType="UInt" address="100496" va="0x54e">
<mapping variable="WarningStatusControl_INT" parent="Micro820" dataType="UInt" address="100496" va="0x556">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="WarningStatusCurrent_INT" parent="Micro820" dataType="UInt" address="100512" va="0x548">
<mapping variable="WarningStatusCurrent_INT" parent="Micro820" dataType="UInt" address="100512" va="0x550">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="WarningStatusPower_INT" parent="Micro820" dataType="UInt" address="100528" va="0x54c">
<mapping variable="WarningStatusPower_INT" parent="Micro820" dataType="UInt" address="100528" va="0x554">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="WarningStatusVoltage_INT" parent="Micro820" dataType="UInt" address="100544" va="0x54a">
<mapping variable="WarningStatusVoltage_INT" parent="Micro820" dataType="UInt" address="100544" va="0x552">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
</modbusRegister>
<modbusRegister name="HOLDING_REGISTERS">
<mapping variable="cfg_C_FLASetting" parent="Micro820" dataType="Real" address="400001" va="0x580">
<mapping variable="cfg_C_FLASetting" parent="Micro820" dataType="Real" address="400001" va="0x58c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_C_TripEnableControl" parent="Micro820" dataType="UInt" address="400003" va="0x528">
<mapping variable="cfg_C_TripEnableControl" parent="Micro820" dataType="UInt" address="400003" va="0x530">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_GF_GroundFaultTripDelay" parent="Micro820" dataType="Real" address="400005" va="0x588">
<mapping variable="cfg_GF_GroundFaultTripDelay" parent="Micro820" dataType="Real" address="400005" va="0x594">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_GF_GroundFaultTripLevel" parent="Micro820" dataType="Real" address="400007" va="0x58c">
<mapping variable="cfg_GF_GroundFaultTripLevel" parent="Micro820" dataType="Real" address="400007" va="0x598">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_GF_GroundFaultWarningDelay" parent="Micro820" dataType="Real" address="400009" va="0x590">
<mapping variable="cfg_GF_GroundFaultWarningDelay" parent="Micro820" dataType="Real" address="400009" va="0x59c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_I_CTPrimary" parent="Micro820" dataType="UInt" address="400011" va="0x538">
<mapping variable="cfg_I_CTPrimary" parent="Micro820" dataType="UInt" address="400011" va="0x540">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_CTSecondary" parent="Micro820" dataType="UInt" address="400012" va="0x53a">
<mapping variable="cfg_I_CTSecondary" parent="Micro820" dataType="UInt" address="400012" va="0x542">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_JamTripLevel" parent="Micro820" dataType="UInt" address="400013" va="0x534">
<mapping variable="cfg_I_JamTripLevel" parent="Micro820" dataType="UInt" address="400013" va="0x53c">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_JamWarningLevel" parent="Micro820" dataType="UInt" address="400014" va="0x536">
<mapping variable="cfg_I_JamWarningLevel" parent="Micro820" dataType="UInt" address="400014" va="0x53e">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_I_LineLossTripDelay" parent="Micro820" dataType="Real" address="400015" va="0x654">
<mapping variable="cfg_I_LineLossTripDelay" parent="Micro820" dataType="Real" address="400015" va="0x660">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_I_OvercurrentTripDelay" parent="Micro820" dataType="Real" address="400017" va="0x658">
<mapping variable="cfg_I_OvercurrentTripDelay" parent="Micro820" dataType="Real" address="400017" va="0x664">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_I_UndercurrentTripDelay" parent="Micro820" dataType="Real" address="400019" va="0x650">
<mapping variable="cfg_I_UndercurrentTripDelay" parent="Micro820" dataType="Real" address="400019" va="0x65c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_I_UnderloadTripDelay" parent="Micro820" dataType="Real" address="400021" va="0x598">
<mapping variable="cfg_I_UnderloadTripDelay" parent="Micro820" dataType="Real" address="400021" va="0x5a4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_PL_PhaseLossTripDelay" parent="Micro820" dataType="Real" address="400023" va="0x584">
<mapping variable="cfg_PL_PhaseLossTripDelay" parent="Micro820" dataType="Real" address="400023" va="0x590">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_OverfrequencyTripDelay" parent="Micro820" dataType="Real" address="400025" va="0x5e0">
<mapping variable="cfg_V_OverfrequencyTripDelay" parent="Micro820" dataType="Real" address="400025" va="0x5ec">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_OvervoltageTripDelay" parent="Micro820" dataType="Real" address="400027" va="0x5cc">
<mapping variable="cfg_V_OvervoltageTripDelay" parent="Micro820" dataType="Real" address="400027" va="0x5d8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_OvervoltageTripLevel" parent="Micro820" dataType="Real" address="400029" va="0x5d0">
<mapping variable="cfg_V_OvervoltageTripLevel" parent="Micro820" dataType="Real" address="400029" va="0x5dc">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_OvervoltageWarningLevel" parent="Micro820" dataType="Real" address="400031" va="0x5d4">
<mapping variable="cfg_V_OvervoltageWarningLevel" parent="Micro820" dataType="Real" address="400031" va="0x5e0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_PTPrimary" parent="Micro820" dataType="UInt" address="400033" va="0x53c">
<mapping variable="cfg_V_PTPrimary" parent="Micro820" dataType="UInt" address="400033" va="0x544">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_V_PTSecondary" parent="Micro820" dataType="UInt" address="400034" va="0x53e">
<mapping variable="cfg_V_PTSecondary" parent="Micro820" dataType="UInt" address="400034" va="0x546">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="cfg_V_UnderfrequencyTripDelay" parent="Micro820" dataType="Real" address="400035" va="0x5dc">
<mapping variable="cfg_V_UnderfrequencyTripDelay" parent="Micro820" dataType="Real" address="400035" va="0x5e8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_UndervoltageTripDelay" parent="Micro820" dataType="Real" address="400037" va="0x5c0">
<mapping variable="cfg_V_UndervoltageTripDelay" parent="Micro820" dataType="Real" address="400037" va="0x5cc">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_UndervoltageTripLevel" parent="Micro820" dataType="Real" address="400039" va="0x5c4">
<mapping variable="cfg_V_UndervoltageTripLevel" parent="Micro820" dataType="Real" address="400039" va="0x5d0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_UndervoltageWarningLevel" parent="Micro820" dataType="Real" address="400041" va="0x5c8">
<mapping variable="cfg_V_UndervoltageWarningLevel" parent="Micro820" dataType="Real" address="400041" va="0x5d4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="cfg_V_VoltageImbalanceTripDelay" parent="Micro820" dataType="Real" address="400043" va="0x5d8">
<mapping variable="cfg_V_VoltageImbalanceTripDelay" parent="Micro820" dataType="Real" address="400043" va="0x5e4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="DH_DischargePressure" parent="Micro820" dataType="UInt" address="400045" va="0x50c">
<mapping variable="DH_DischargePressure" parent="Micro820" dataType="UInt" address="400045" va="0x514">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_DischargeTemperature" parent="Micro820" dataType="UInt" address="400046" va="0x50a">
<mapping variable="DH_DischargeTemperature" parent="Micro820" dataType="UInt" address="400046" va="0x512">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_DownholeStatus_INT" parent="Micro820" dataType="UInt" address="400047" va="0x520">
<mapping variable="DH_DownholeStatus_INT" parent="Micro820" dataType="UInt" address="400047" va="0x528">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_IntakePressure" parent="Micro820" dataType="Real" address="400048" va="0x55c">
<mapping variable="DH_IntakePressure" parent="Micro820" dataType="Real" address="400048" va="0x568">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="DH_IntakeTemperature" parent="Micro820" dataType="Real" address="400050" va="0x558">
<mapping variable="DH_IntakeTemperature" parent="Micro820" dataType="Real" address="400050" va="0x564">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="DH_MaxIntakePressure_Forever" parent="Micro820" dataType="UInt" address="400052" va="0x51e">
<mapping variable="DH_MaxIntakePressure_Forever" parent="Micro820" dataType="UInt" address="400052" va="0x526">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_MaxIntakePressure_Startup" parent="Micro820" dataType="UInt" address="400053" va="0x518">
<mapping variable="DH_MaxIntakePressure_Startup" parent="Micro820" dataType="UInt" address="400053" va="0x520">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_MaxIntakeTemperature_Forever" parent="Micro820" dataType="Real" address="400054" va="0x57c">
<mapping variable="DH_MaxIntakeTemperature_Forever" parent="Micro820" dataType="Real" address="400054" va="0x588">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="DH_MaxIntakeTemperature_Startup" parent="Micro820" dataType="Real" address="400056" va="0x578">
<mapping variable="DH_MaxIntakeTemperature_Startup" parent="Micro820" dataType="Real" address="400056" va="0x584">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="DH_NumChannels" parent="Micro820" dataType="UInt" address="400058" va="0x514">
<mapping variable="DH_NumChannels" parent="Micro820" dataType="UInt" address="400058" va="0x51c">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_PSIRating" parent="Micro820" dataType="UInt" address="400059" va="0x51c">
<mapping variable="DH_PSIRating" parent="Micro820" dataType="UInt" address="400059" va="0x524">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_ToolType" parent="Micro820" dataType="UInt" address="400060" va="0x51a">
<mapping variable="DH_ToolType" parent="Micro820" dataType="UInt" address="400060" va="0x522">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_ToolVoltage" parent="Micro820" dataType="UInt" address="400061" va="0x516">
<mapping variable="DH_ToolVoltage" parent="Micro820" dataType="UInt" address="400061" va="0x51e">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_VibrationX" parent="Micro820" dataType="UInt" address="400062" va="0x50e">
<mapping variable="DH_VibrationX" parent="Micro820" dataType="UInt" address="400062" va="0x516">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_VibrationY" parent="Micro820" dataType="UInt" address="400063" va="0x510">
<mapping variable="DH_VibrationY" parent="Micro820" dataType="UInt" address="400063" va="0x518">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="DH_WindingTemperature" parent="Micro820" dataType="UInt" address="400064" va="0x508">
<mapping variable="DH_WindingTemperature" parent="Micro820" dataType="UInt" address="400064" va="0x510">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="E300_kWh" parent="Micro820" dataType="Real" address="400065" va="0x570">
<mapping variable="E300_kWh" parent="Micro820" dataType="Real" address="400065" va="0x57c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_kWh_Regen" parent="Micro820" dataType="Real" address="400067" va="0x574">
<mapping variable="E300_kWh_Regen" parent="Micro820" dataType="Real" address="400067" va="0x580">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_SCAN_RATE" parent="Micro820" dataType="UInt" address="400069" va="0x512">
<mapping variable="E300_SCAN_RATE" parent="Micro820" dataType="UInt" address="400069" va="0x51a">
<MBVarInfo ElemType="UInt" SubElemType="Any" DataTypeSize="2" />
</mapping>
<mapping variable="Pressure_Shutdown" parent="Micro820" dataType="Real" address="400070" va="0x568">
<mapping variable="Pressure_Shutdown" parent="Micro820" dataType="Real" address="400070" va="0x574">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="Pressure_Startup" parent="Micro820" dataType="Real" address="400072" va="0x56c">
<mapping variable="Pressure_Startup" parent="Micro820" dataType="Real" address="400072" va="0x578">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="Temp_Shutdown" parent="Micro820" dataType="Real" address="400074" va="0x560">
<mapping variable="Temp_Shutdown" parent="Micro820" dataType="Real" address="400074" va="0x56c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="Temp_Startup" parent="Micro820" dataType="Real" address="400076" va="0x564">
<mapping variable="Temp_Startup" parent="Micro820" dataType="Real" address="400076" va="0x570">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_LineFrequency" parent="Micro820" dataType="Real" address="400078" va="0x65c">
<mapping variable="E300_LineFrequency" parent="Micro820" dataType="Real" address="400078" va="0x668">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1Current" parent="Micro820" dataType="Real" address="400080" va="0x660">
<mapping variable="E300_L1Current" parent="Micro820" dataType="Real" address="400080" va="0x66c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2Current" parent="Micro820" dataType="Real" address="400082" va="0x664">
<mapping variable="E300_L2Current" parent="Micro820" dataType="Real" address="400082" va="0x670">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3Current" parent="Micro820" dataType="Real" address="400084" va="0x668">
<mapping variable="E300_L3Current" parent="Micro820" dataType="Real" address="400084" va="0x674">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_AverageCurrent" parent="Micro820" dataType="Real" address="400086" va="0x66c">
<mapping variable="E300_AverageCurrent" parent="Micro820" dataType="Real" address="400086" va="0x678">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_PercentCurrentUnbalance" parent="Micro820" dataType="Real" address="400088" va="0x670">
<mapping variable="E300_PercentCurrentUnbalance" parent="Micro820" dataType="Real" address="400088" va="0x67c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1NVoltage" parent="Micro820" dataType="Real" address="400090" va="0x674">
<mapping variable="E300_L1NVoltage" parent="Micro820" dataType="Real" address="400090" va="0x680">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2NVoltage" parent="Micro820" dataType="Real" address="400092" va="0x678">
<mapping variable="E300_L2NVoltage" parent="Micro820" dataType="Real" address="400092" va="0x684">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3NVoltage" parent="Micro820" dataType="Real" address="400094" va="0x67c">
<mapping variable="E300_L3NVoltage" parent="Micro820" dataType="Real" address="400094" va="0x688">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_AverageLNVoltage" parent="Micro820" dataType="Real" address="400096" va="0x680">
<mapping variable="E300_AverageLNVoltage" parent="Micro820" dataType="Real" address="400096" va="0x68c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1L2Voltage" parent="Micro820" dataType="Real" address="400098" va="0x684">
<mapping variable="E300_L1L2Voltage" parent="Micro820" dataType="Real" address="400098" va="0x690">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2L3Voltage" parent="Micro820" dataType="Real" address="400100" va="0x688">
<mapping variable="E300_L2L3Voltage" parent="Micro820" dataType="Real" address="400100" va="0x694">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3L1Voltage" parent="Micro820" dataType="Real" address="400102" va="0x68c">
<mapping variable="E300_L3L1Voltage" parent="Micro820" dataType="Real" address="400102" va="0x698">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_AverageLLVoltage" parent="Micro820" dataType="Real" address="400104" va="0x690">
<mapping variable="E300_AverageLLVoltage" parent="Micro820" dataType="Real" address="400104" va="0x69c">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1RealPower" parent="Micro820" dataType="Real" address="400106" va="0x698">
<mapping variable="E300_L1RealPower" parent="Micro820" dataType="Real" address="400106" va="0x6a4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2RealPower" parent="Micro820" dataType="Real" address="400108" va="0x69c">
<mapping variable="E300_L2RealPower" parent="Micro820" dataType="Real" address="400108" va="0x6a8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3RealPower" parent="Micro820" dataType="Real" address="400110" va="0x6a0">
<mapping variable="E300_L3RealPower" parent="Micro820" dataType="Real" address="400110" va="0x6ac">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_TotalRealPower" parent="Micro820" dataType="Real" address="400112" va="0x6a4">
<mapping variable="E300_TotalRealPower" parent="Micro820" dataType="Real" address="400112" va="0x6b0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1ReactivePower" parent="Micro820" dataType="Real" address="400114" va="0x6a8">
<mapping variable="E300_L1ReactivePower" parent="Micro820" dataType="Real" address="400114" va="0x6b4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2ReactivePower" parent="Micro820" dataType="Real" address="400116" va="0x6ac">
<mapping variable="E300_L2ReactivePower" parent="Micro820" dataType="Real" address="400116" va="0x6b8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3ReactivePower" parent="Micro820" dataType="Real" address="400118" va="0x6b0">
<mapping variable="E300_L3ReactivePower" parent="Micro820" dataType="Real" address="400118" va="0x6bc">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_TotalReactivePower" parent="Micro820" dataType="Real" address="400120" va="0x6b4">
<mapping variable="E300_TotalReactivePower" parent="Micro820" dataType="Real" address="400120" va="0x6c0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1ApparentPower" parent="Micro820" dataType="Real" address="400122" va="0x6b8">
<mapping variable="E300_L1ApparentPower" parent="Micro820" dataType="Real" address="400122" va="0x6c4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2ApparentPower" parent="Micro820" dataType="Real" address="400124" va="0x6bc">
<mapping variable="E300_L2ApparentPower" parent="Micro820" dataType="Real" address="400124" va="0x6c8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3ApparentPower" parent="Micro820" dataType="Real" address="400126" va="0x6c0">
<mapping variable="E300_L3ApparentPower" parent="Micro820" dataType="Real" address="400126" va="0x6cc">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_TotalApparentPower" parent="Micro820" dataType="Real" address="400128" va="0x6c4">
<mapping variable="E300_TotalApparentPower" parent="Micro820" dataType="Real" address="400128" va="0x6d0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L1TruePowerFactor" parent="Micro820" dataType="Real" address="400130" va="0x6c8">
<mapping variable="E300_L1TruePowerFactor" parent="Micro820" dataType="Real" address="400130" va="0x6d4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L2TruePowerFactor" parent="Micro820" dataType="Real" address="400132" va="0x6cc">
<mapping variable="E300_L2TruePowerFactor" parent="Micro820" dataType="Real" address="400132" va="0x6d8">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_L3TruePowerFactor" parent="Micro820" dataType="Real" address="400134" va="0x6d0">
<mapping variable="E300_L3TruePowerFactor" parent="Micro820" dataType="Real" address="400134" va="0x6dc">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="E300_ThreePhaseTruePowerFactor" parent="Micro820" dataType="Real" address="400136" va="0x6d4">
<mapping variable="E300_ThreePhaseTruePowerFactor" parent="Micro820" dataType="Real" address="400136" va="0x6e0">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
<mapping variable="Pressure_In" parent="Micro820" dataType="Real" address="400138" va="0x6d8">
<mapping variable="Pressure_In" parent="Micro820" dataType="Real" address="400138" va="0x6e4">
<MBVarInfo ElemType="Real" SubElemType="Any" DataTypeSize="4" />
</mapping>
</modbusRegister>

View File

@@ -29,6 +29,7 @@ __LAB2 :
_IF _NOT __SYSVA_FIRST_SCAN _GOTO __LAB3
SHUTDOWN_TIME := TIME_CURRENTTIME
DEVICE_STATUS := __TMPM1
DEVICE_STATUS_INT := __CUINT00000001
RESTART_COMMAND := FALSE
RESTART_ALLOWED := FALSE
RUN_PERMISSIVE := FALSE
@@ -227,6 +228,7 @@ __TMPB2 := _NOT CMD_RUN
__TMPB1 := __TMPB1 _AND __TMPB2
_IF _NOT __TMPB1 _GOTO __LAB16
DEVICE_STATUS := __TMPM9
DEVICE_STATUS_INT := __CUINT00000002
_GOTO __LAB17
__LAB16 :
__LAB17 :
@@ -236,6 +238,7 @@ __TMPB2 := _NOT CMD_RUN
__TMPB1 := __TMPB1 _AND __TMPB2
_IF _NOT __TMPB1 _GOTO __LAB18
DEVICE_STATUS := __TMPM10
DEVICE_STATUS_INT := __CUINT00000003
_GOTO __LAB19
__LAB18 :
__LAB19 :
@@ -268,6 +271,7 @@ __TMPB1 := _NOT RUN_PERMISSIVE
__TMPB1 := __TMPB1 _AND CMD_RUN
_IF _NOT __TMPB1 _GOTO __LAB1a
DEVICE_STATUS := __TMPM11
DEVICE_STATUS_INT := __CUINT00000004
SHUTDOWN_TIME := TIME_CURRENTTIME
__TMPB1 := _NOT STS_TRIPCOUNTINCREASED
_IF _NOT __TMPB1 _GOTO __LAB1b
@@ -290,6 +294,7 @@ __TMPB1 := VAL_OVERLOADTRIPCOUNT > CFG_OVERLOADTRIPCOUNTLIMIT
_IF _NOT __TMPB1 _GOTO __LAB20
RESTART_ALLOWED := FALSE
DEVICE_STATUS := __TMPM12
DEVICE_STATUS_INT := __CUINT00000005
STS_TRIPLIMITOLREACHED := TRUE
_GOTO __LAB21
__LAB20 :
@@ -299,6 +304,7 @@ __TMPB1 := VAL_TRIPCOUNT > CFG_TRIPCOUNTLIMIT
_IF _NOT __TMPB1 _GOTO __LAB22
RESTART_ALLOWED := FALSE
DEVICE_STATUS := __TMPM13
DEVICE_STATUS_INT := __CUINT00000006
STS_TRIPLIMITREACHED := TRUE
_GOTO __LAB23
__LAB22 :
@@ -375,6 +381,7 @@ TIME_UNTIL_STARTUP_STRING := __TMPM14
_IF _NOT AUTO_MODE _GOTO __LAB31
__TMPM14 := __TMPM20 + TIME_UNTIL_STARTUP_STRING
DEVICE_STATUS := __TMPM14
DEVICE_STATUS_INT := __CUINT00000007
_GOTO __LAB32
__LAB31 :
__LAB32 :
@@ -432,6 +439,7 @@ TIME_UNTIL_STARTUP_STRING := __TMPM14
_IF _NOT AUTO_MODE _GOTO __LAB3d
__TMPM14 := __TMPM21 + TIME_UNTIL_STARTUP_STRING
DEVICE_STATUS := __TMPM14
DEVICE_STATUS_INT := __CUINT00000008
_GOTO __LAB3e
__LAB3d :
__LAB3e :
@@ -460,6 +468,7 @@ _IF _NOT __TMPB1 _GOTO __LAB40
START_TIME := TIME_CURRENTTIME
START_TIME_SET := TRUE
DEVICE_STATUS := __TMPM22
DEVICE_STATUS_INT := __CUINT00000009
STS_TRIPCOUNTINCREASED := FALSE
_GOTO __LAB41
__LAB40 :
@@ -523,6 +532,7 @@ __LAB52 :
_IF _NOT STOP_COMMAND _GOTO __LAB53
RESTART_ALLOWED := FALSE
DEVICE_STATUS := __TMPM23
DEVICE_STATUS_INT := __CUINT0000000A
STS_TIMERCYCLEACTIVE := FALSE
VAL_OVERLOADTRIPCOUNT := __DINT_NULL
VAL_TRIPCOUNT := __DINT_NULL
@@ -582,6 +592,7 @@ _IF _NOT __TMPB1 _GOTO __LAB60
STS_TIMERWAITTIMESET := TRUE
TIME_TIMERWAITTIME := TIME_CURRENTTIME
DEVICE_STATUS := __TMPM24
DEVICE_STATUS_INT := __CUINT0000000B
_GOTO __LAB61
__LAB60 :
__LAB61 :

View File

@@ -24,6 +24,7 @@ END_IF;
IF (__SYSVA_FIRST_SCAN) THEN
Shutdown_Time := time_CurrentTime;
Device_Status:= 'Startup';
Device_Status_INT := 1;
Restart_Command := FALSE;
Restart_Allowed := FALSE;
Run_Permissive := FALSE;
@@ -123,10 +124,12 @@ SP_Voltage := VoltageOK;
Start_Permissive := (SP_Pressure AND SP_Temperature AND SP_Mode AND SP_Trip AND SP_Voltage);
IF NOT Start_Permissive AND NOT cmd_Run THEN
Device_Status := 'Not ready to start';
Device_Status_INT := 2;
END_IF;
IF Device_Status = 'Not ready to start' AND Start_Permissive AND NOT cmd_Run THEN
Device_Status := 'Ready to start';
Device_Status_INT := 3;
END_IF;
@@ -145,6 +148,7 @@ alarm_DHTemperature := NOT RP_Temperature AND Contactor_Status;
IF (NOT Run_Permissive AND cmd_Run) THEN
Device_Status := 'Lost Run Permissive';
Device_Status_INT := 4;
Shutdown_Time := time_CurrentTime;
IF NOT sts_TripCountIncreased THEN
IF OverloadTrip THEN
@@ -159,6 +163,7 @@ END_IF;
IF val_OverloadTripCount > cfg_OverloadTripCountLimit THEN
Restart_Allowed := FALSE;
Device_Status := 'Not able to restart - Overload Limit';
Device_Status_INT := 5;
sts_TripLimitOLReached := TRUE;
ELSE
sts_TripLimitOLReached := FALSE;
@@ -167,6 +172,7 @@ END_IF;
IF val_TripCount > cfg_TripCountLimit THEN
Restart_Allowed := FALSE;
Device_Status := 'Not able to restart - Trip Limit';
Device_Status_INT := 6;
sts_TripLimitReached := TRUE;
ELSE
sts_TripLimitReached := FALSE;
@@ -211,6 +217,7 @@ IF (Auto_Mode AND
Time_Until_Startup_String := ANY_TO_STRING(Time_Until_Startup_Min) + ':' + RIGHT('0' + ANY_TO_STRING(Time_Until_Startup_Sec),2);
IF Auto_Mode THEN
Device_Status := 'Waiting to attempt restart: ' + Time_Until_Startup_String;
Device_Status_INT := 7;
END_IF;
END_IF;
@@ -239,6 +246,7 @@ ELSIF (Auto_Mode AND
Time_Until_Startup_String := ANY_TO_STRING(Time_Until_Startup_Min) + ':' + RIGHT('0' + ANY_TO_STRING(Time_Until_Startup_Sec),2);
IF Auto_Mode THEN
Device_Status := 'Waiting to restart (OL Timer):' + Time_Until_Startup_String;
Device_Status_INT := 8;
END_IF;
END_IF;
END_IF;
@@ -249,11 +257,11 @@ IF ((((Start_Button OR Start_Command OR cmd_TimerRun OR (Restart_Allowed AND Res
(NOT Stop_Command) AND (cmd_TimerRun OR NOT cfg_TimerModeEnabled) AND Run_Permissive) THEN
cmd_Run := TRUE;
Restart_Command:= FALSE;
Start_Command := FALSE;
IF NOT Start_Time_Set THEN
Start_Time := time_CurrentTime;
Start_Time_Set := TRUE;
Device_Status := 'Running';
Device_Status_INT := 9;
sts_TripCountIncreased := FALSE;
END_IF;
@@ -264,6 +272,12 @@ ELSE
cmd_Run := FALSE;
END_IF;
UNSTICK_STARTCOMMAND(Start_Command, StartCommandTime);
IF UNSTICK_STARTCOMMAND.Q THEN
Start_Command := FALSE;
END_IF;
IF cmd_Run AND NOT Contactor_Status THEN
IF NOT E300_Output_Enable THEN
IF E300_Output_Toggled THEN
@@ -299,11 +313,15 @@ END_IF;
IF Stop_Command THEN
Restart_Allowed := FALSE;
Device_Status := 'User Stopped';
Device_Status_INT := 10;
sts_TimerCycleActive := FALSE;
val_OverloadTripCount := 0;
val_TripCount := 0;
cmd_TimerRun := FALSE;
sts_TimerRunTimeSet := FALSE;
IF NOT Contactor_Status THEN
Stop_Command := FALSE;
END_IF;
END_IF;
IF (NOT Hand_Mode) AND (NOT Auto_Mode) THEN
@@ -340,6 +358,7 @@ IF cfg_TimerModeEnabled AND sts_TimerCycleActive THEN
sts_TimerWaitTimeSet := TRUE;
time_TimerWaitTime := time_CurrentTime;
Device_Status := 'Waiting to start (Timer Mode)';
Device_Status_INT := 11;
END_IF;
timer_WaitTimeLeft := (cfg_TimerWaitTime * 60) - (time_CurrentTime - time_TimerWaitTime);

View File

@@ -135,10 +135,12 @@ __TMPULI2 := __EPOCH_TIME [ __CDINT00000038 ]
__TMPULI1 := __TMPULI1 + __TMPULI2
__TMPULI3 := __EPOCH_TIME [ __CDINT00000048 ]
__TMPULI1 := __TMPULI1 + __TMPULI3
__TMPULI4 := __EPOCH_TIME [ __CDINT00000040 ]
__TMPULI1 := __TMPULI1 + __TMPULI4
__TMPI1 := __CDINT00000002 + __CDINT0000000A
__TMPI2 := __CDINT00000018 + __TMPI1
__TMPUIN1 := __EPOCH_TIME [ __TMPI2 ]
_PUSH_PAR __TMPUIN1
__TMPULI4 := _CALL ANY_TO_UINT
__TMPULI1 := __TMPULI1 + __TMPULI4
__TMPULI5 := _CALL ANY_TO_UINT
__TMPULI1 := __TMPULI1 + __TMPULI5
__EPOCH_TIME [ __CDINT00000004 ] := __TMPULI1

View File

@@ -26,5 +26,5 @@ day_seconds := ANY_TO_ULINT((prev_months_days + RTC_READ_1.RTCData.Day) * ANY_TO
hour_seconds := ANY_TO_ULINT(RTC_READ_1.RTCData.Hours * 3600);
min_seconds := ANY_TO_ULINT(RTC_READ_1.RTCData.Minutes * 60);
Epoch := year_seconds + day_seconds + hour_Seconds + ANY_TO_ULINT(RTC_READ_1.RTCData.Seconds);
Epoch := year_seconds + day_seconds + hour_Seconds + min_seconds + ANY_TO_ULINT(RTC_READ_1.RTCData.Seconds);
END_FUNCTION_BLOCK

View File

@@ -1,51 +1,51 @@
0::0046-0003::-------------------- Pre-build resource: MICRO820 Configuration: MICRO820 --------------
0::0044-0003::Pre-compiling for 2080LC2020QWBI
0::0000-0003::RA_CIP_ELECTRICAL_ENERGY_OBJ
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_CIP_ELECTRICAL_ENERGY_OBJ:0000-0003::RA_E300_OUTPUT_CONTROL
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_E300_OUTPUT_CONTROL:0000-0003::READE300IO
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300IO:0000-0003::READE300CONFIG
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300CONFIG:0000-0003::READE300TRIPRESET
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300TRIPRESET:0000-0003::READE300PARAM
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300PARAM:0000-0003::USINT_TO_UDINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UDINT:0000-0003::USINT_TO_DINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_DINT:0000-0003::USINT_TO_UINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UINT:0000-0003::USINT_TO_SINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_SINT:0000-0003::UDINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UDINT_TO_USINT:0000-0003::DINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\DINT_TO_USINT:0000-0003::UINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UINT_TO_USINT:0000-0003::SINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\SINT_TO_USINT:0000-0003::WRITEE300CONFIG
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300CONFIG:0000-0003::WRITEE300TRIPRESET
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300TRIPRESET:0000-0003::LINEARSCALE
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\LINEARSCALE:0000-0003::EPOCH_TIME
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\EPOCH_TIME:0000-0003::READDOWNHOLEDATA
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READDOWNHOLEDATA:0000-0003::E300DATA
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\E300DATA:0000-0003::CONTROL
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\CONTROL:0000-0003::FLOWTOTALIZER
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0002-0003::MICRO820: 0 error(s), 0 warning(s)
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_CIP_ELECTRICAL_ENERGY_OBJ:0000-0003::RA_E300_OUTPUT_CONTROL
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_E300_OUTPUT_CONTROL:0000-0003::READE300IO
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300IO:0000-0003::READE300CONFIG
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300CONFIG:0000-0003::READE300TRIPRESET
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300TRIPRESET:0000-0003::READE300PARAM
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300PARAM:0000-0003::USINT_TO_UDINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UDINT:0000-0003::USINT_TO_DINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_DINT:0000-0003::USINT_TO_UINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UINT:0000-0003::USINT_TO_SINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_SINT:0000-0003::UDINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UDINT_TO_USINT:0000-0003::DINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\DINT_TO_USINT:0000-0003::UINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UINT_TO_USINT:0000-0003::SINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\SINT_TO_USINT:0000-0003::WRITEE300CONFIG
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300CONFIG:0000-0003::WRITEE300TRIPRESET
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300TRIPRESET:0000-0003::LINEARSCALE
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\LINEARSCALE:0000-0003::EPOCH_TIME
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\EPOCH_TIME:0000-0003::READDOWNHOLEDATA
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READDOWNHOLEDATA:0000-0003::E300DATA
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\E300DATA:0000-0003::CONTROL
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\CONTROL:0000-0003::FLOWTOTALIZER
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0002-0003::MICRO820: 0 error(s), 0 warning(s)
0::0006-0003::-------------------- Build resource: MICRO820 Configuration: MICRO820 --------------
0::0001-0003::Compiling for 2080LC2020QWBI
0::0000-0003::RA_CIP_ELECTRICAL_ENERGY_OBJ
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_CIP_ELECTRICAL_ENERGY_OBJ:0000-0003::RA_E300_OUTPUT_CONTROL
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_E300_OUTPUT_CONTROL:0000-0003::READE300IO
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300IO:0000-0003::READE300CONFIG
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300CONFIG:0000-0003::READE300TRIPRESET
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300TRIPRESET:0000-0003::READE300PARAM
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300PARAM:0000-0003::USINT_TO_UDINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UDINT:0000-0003::USINT_TO_DINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_DINT:0000-0003::USINT_TO_UINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UINT:0000-0003::USINT_TO_SINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_SINT:0000-0003::UDINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UDINT_TO_USINT:0000-0003::DINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\DINT_TO_USINT:0000-0003::UINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UINT_TO_USINT:0000-0003::SINT_TO_USINT
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\SINT_TO_USINT:0000-0003::WRITEE300CONFIG
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300CONFIG:0000-0003::WRITEE300TRIPRESET
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300TRIPRESET:0000-0003::LINEARSCALE
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\LINEARSCALE:0000-0003::EPOCH_TIME
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\EPOCH_TIME:0000-0003::READDOWNHOLEDATA
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READDOWNHOLEDATA:0000-0003::E300DATA
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\E300DATA:0000-0003::CONTROL
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\CONTROL:0000-0003::FLOWTOTALIZER
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0003-0003::Linking for 2080LC2020QWBI
0:C:\USERS\PATRICK\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0002-0003::MICRO820: 0 error(s), 0 warning(s)
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_CIP_ELECTRICAL_ENERGY_OBJ:0000-0003::RA_E300_OUTPUT_CONTROL
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\RA_E300_OUTPUT_CONTROL:0000-0003::READE300IO
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300IO:0000-0003::READE300CONFIG
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300CONFIG:0000-0003::READE300TRIPRESET
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300TRIPRESET:0000-0003::READE300PARAM
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READE300PARAM:0000-0003::USINT_TO_UDINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UDINT:0000-0003::USINT_TO_DINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_DINT:0000-0003::USINT_TO_UINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_UINT:0000-0003::USINT_TO_SINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\USINT_TO_SINT:0000-0003::UDINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UDINT_TO_USINT:0000-0003::DINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\DINT_TO_USINT:0000-0003::UINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\UINT_TO_USINT:0000-0003::SINT_TO_USINT
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\SINT_TO_USINT:0000-0003::WRITEE300CONFIG
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300CONFIG:0000-0003::WRITEE300TRIPRESET
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\WRITEE300TRIPRESET:0000-0003::LINEARSCALE
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\LINEARSCALE:0000-0003::EPOCH_TIME
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\EPOCH_TIME:0000-0003::READDOWNHOLEDATA
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\READDOWNHOLEDATA:0000-0003::E300DATA
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\E300DATA:0000-0003::CONTROL
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\CONTROL:0000-0003::FLOWTOTALIZER
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0003-0003::Linking for 2080LC2020QWBI
0:C:\USERS\PATRI\DOCUMENTS\HENRY_PUMP\E300-IPP\CONTROLLER\CONTROLLER\MICRO820\MICRO820\FLOWTOTALIZER:0002-0003::MICRO820: 0 error(s), 0 warning(s)

View File

@@ -1,10 +1,10 @@
[MEMORY]
Offset0=0x4534
Offset1=0x5534
Offset2=0x5534
Offset3=0x5534
Memory Usage Estimate(Code)=0xA104
Memory Usage Estimate(Data)=0x9E04
Offset0=0x4540
Offset1=0x5540
Offset2=0x5540
Offset3=0x5540
Memory Usage Estimate(Code)=0xA154
Memory Usage Estimate(Data)=0x9E20
Memory Usage Estimate(Retain)=0x50
Memory Usage Estimate(Temporary variables)=0x28CC
Memory Usage Estimate(Temporary variables)=0x28DC
Offset4=0x414

View File

@@ -0,0 +1,10 @@
[MEMORY]
Offset0=0x4540
Offset1=0x5540
Offset2=0x5540
Offset3=0x5540
Memory Usage Estimate(Code)=0xA154
Memory Usage Estimate(Data)=0x9E20
Memory Usage Estimate(Retain)=0x50
Memory Usage Estimate(Temporary variables)=0x28DC
Offset4=0x414

View File

@@ -5,12 +5,12 @@ ON_LINE=N
TBL_CONF=Y
CRC_ORG=0x0
CRC_OLD=
CRC_NEW=0x334CA400
CRC_NEW=0x463526FC
DAT_ORG=0
DAT_OLD=0
DAT_NEW=1470009374
DAT_NEW=1473283229
VER_ORG=0
VER_OLD=0
VER_NEW=87
VER_NEW=91
CRC_ALL_OLD=
CRC_ALL_NEW=0x7C788B55
CRC_ALL_NEW=0xA673C34C

View File

@@ -1,9 +1,9 @@
[MEMORY]
Memory Usage Estimate(Temporary variables)=0x28CC
Memory Usage Estimate(Temporary variables)=0x28DC
Biggest online change user variable memory block size=0x800
Currently added user variables=0x0
Total data size=0x6E00
User variables size=0x4534
Maximum size for temporary variables=0x48CC
Memory Usage Estimate(Data)=0x9E00
Total data size=0x6E1C
User variables size=0x4540
Maximum size for temporary variables=0x48DC
Memory Usage Estimate(Data)=0x9E1C
Free memory for user variables=0x1000

View File

@@ -0,0 +1,9 @@
[MEMORY]
Memory Usage Estimate(Temporary variables)=0x28DC
Biggest online change user variable memory block size=0x800
Currently added user variables=0x0
Total data size=0x6E1C
User variables size=0x4540
Maximum size for temporary variables=0x48DC
Memory Usage Estimate(Data)=0x9E1C
Free memory for user variables=0x1000

View File

@@ -0,0 +1,77 @@
[__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 = 4
MDF = 1\1, 0, 0, 0, -1, _IO_P1_AI_00
MDF = 1\1, 0, 0, 1, -1, _IO_P1_AI_01
MDF = 1\1, 0, 0, 2, -1, _IO_P1_AI_02
MDF = 1\1, 0, 0, 3, -1, _IO_P1_AI_03
[__READONLY_VALUES]
Nb = 0

View File

@@ -66,9 +66,11 @@ MDF = 1\1, 1, 0, 0, -1, _IO_EM_AO_00
RIdx = 0, 1, 4
Nb = 0
RIdx = 0, 1, 5
Nb = 2
Nb = 4
MDF = 1\1, 0, 0, 0, -1, _IO_P1_AI_00
MDF = 1\1, 0, 0, 1, -1, _IO_P1_AI_01
MDF = 1\1, 0, 0, 2, -1, _IO_P1_AI_02
MDF = 1\1, 0, 0, 3, -1, _IO_P1_AI_03
[__READONLY_VALUES]

Binary file not shown.

View File

@@ -1,2 +1,2 @@
[RMDManager]
TASK=BUILD
TASK=REBUILD

Binary file not shown.

Binary file not shown.

View File

@@ -13,6 +13,7 @@
<AcfElementGuid Guid="73aee734-b491-4716-bb8a-e114474b2e0b" />
<AcfElementGuid Guid="7fef2c64-8552-4a7b-bfcb-a81bf0653d28" />
<AcfElementGuid Guid="825fba0c-a967-4905-b00b-13d3fe1ff759" />
<AcfElementGuid Guid="88be61f4-7c0b-465f-9894-13192a9bfa6f" />
<AcfElementGuid Guid="939ebd4d-03fd-401c-ab85-9cdf9558de18" />
<AcfElementGuid Guid="9e116e82-db64-4872-bda1-ef7ada62d71b" />
<AcfElementGuid Guid="a537c79f-58bd-4503-a8bd-4473e96020b3" />

View File

@@ -7,12 +7,28 @@
<div class="text-center"><h1>CONTROL</h1></div>
<div class="row row-flex">
<div class='col-xs-6 text-center box-me'>
<h2>Start Command</h2>
<input type="toggle" data-checkedValue="1" data-uncheckedValue="0" data-valueupdate="startcommand" data-channelId='<%= channels["ipp.startcommand"].channelId %>' data-techName='<%=channels["ipp.startcommand"].techName %>' data-name='ipp.startcommand' id="<%= channels["ipp.startcommand"].channelId %>" name="<%= channels["ipp.startcommand"].channelId %>">
<a href="#"
data-refreshpause="1"
data-staticsend="1"
data-channelId="<%= channels["ipp.startcommand"].channelId %>"
data-techname="<%=channels["ipp.startcommand"].techName %>"
data-name="<%= channels["ipp.startcommand"].name%>"
data-nodechannelcurrentId="<%= channels["ipp.startcommand"].nodechannelcurrentId %>"
id="<%= channels["ipp.startcommand"].channelId %>"
class="btn btn-large btn-block btn-theme animated setstatic mqtt">
<i class="icon-repeat icon-white mqtt" ></i>Start Command</a>
</div>
<div class='col-xs-6 text-center box-me'>
<h2>Stop Command</h2>
<input type="toggle" data-checkedValue="1" data-uncheckedValue="0" data-valueupdate="stopcommand" data-channelId='<%= channels["ipp.stopcommand"].channelId %>' data-techName='<%=channels["ipp.stopcommand"].techName %>' data-name='ipp.stopcommand' id="<%= channels["ipp.stopcommand"].channelId %>" name="<%= channels["ipp.stopcommand"].channelId %>">
<a href="#"
data-refreshpause="1"
data-staticsend="1"
data-channelId="<%= channels["ipp.stopcommand"].channelId %>"
data-techname="<%=channels["ipp.stopcommand"].techName %>"
data-name="<%= channels["ipp.stopcommand"].name%>"
data-nodechannelcurrentId="<%= channels["ipp.stopcommand"].nodechannelcurrentId %>"
id="<%= channels["ipp.stopcommand"].channelId %>"
class="btn btn-large btn-block btn-theme animated setstatic mqtt">
<i class="icon-repeat icon-white mqtt" ></i>Stop Command</a>
</div>
</div>
<div class="text-center"><h1>VFD CONFIGURATION</h1></div>

View File

@@ -37,12 +37,12 @@
</div>
<div class="col-xs-3">
<h2>Motor Current</h2>
<p><%=channels["ipp.e300averagecurrent"].value %> A</p>
<p><%= Math.round(channels["ipp.e300averagecurrent"].value * 100) / 100 %> A</p>
</div>
<% if (channels["ipp.downholetoolenabled"].value == 1) { %>
<div class="col-xs-3">
<h2>Fluid Level</h2>
<p><%=channels["ipp.dhfluidlevel"].value %> ft</p>
<p><%= Math.round(channels["ipp.dhfluidlevel"].value * 10) / 10 %> ft</p>
</div>
<% } %>
</div>

View File

@@ -3,7 +3,7 @@
"driverFileName":"ipp.py",
"deviceName":"ipp",
"driverId":"0090",
"releaseVersion":"3",
"releaseVersion":"5",
"files": {
"file1":"ipp.py",
"file2":"micro800.py"

View File

@@ -1,474 +1,495 @@
#!/usr/bin/python
import threading
import traceback
import time
from device_base import deviceBase
import micro800 as u800
addr = '10.20.4.5'
channels = {}
version = "4"
e300_current = {
0: 'None',
1: 'Overload',
2: 'Phase Loss',
4: 'Ground Fault',
8: 'Stall',
16: 'Jam',
32: 'Underload',
64: 'Current Imbalance',
128: 'L1 Undercurrent',
256: 'L2 Undercurrent',
512: 'L3 Undercurrent',
1024: 'L1 Overcurrent',
2048: 'L2 Overcurrent',
4096: 'L3 Overcurrent',
8192: 'L1 Line Loss',
16384: 'L2 Line Loss',
32768: 'L3 Line Loss'
0: 'None',
1: 'Overload',
2: 'Phase Loss',
4: 'Ground Fault',
8: 'Stall',
16: 'Jam',
32: 'Underload',
64: 'Current Imbalance',
128: 'L1 Undercurrent',
256: 'L2 Undercurrent',
512: 'L3 Undercurrent',
1024: 'L1 Overcurrent',
2048: 'L2 Overcurrent',
4096: 'L3 Overcurrent',
8192: 'L1 Line Loss',
16384: 'L2 Line Loss',
32768: 'L3 Line Loss'
}
e300_voltage = {
0: 'None',
1: 'Undervoltage',
2: 'Overvoltage',
4: 'Voltage Unbalance',
8: 'Phase Rotation',
16: 'Overfrequency'
0: 'None',
1: 'Undervoltage',
2: 'Overvoltage',
4: 'Voltage Unbalance',
8: 'Phase Rotation',
16: 'Overfrequency'
}
e300_control = {
0: 'None',
1: 'Test Trip',
2: 'DLX Trip',
4: 'PTC Trip',
8: 'Operator Station Trip',
16: 'Remote Trip',
32: 'Blocked Start Trip',
64: 'Hardware Fault Trip',
128: 'Config Trip',
256: 'Option Match Trip',
512: 'DLX FB Timeout Trip',
1024: 'Expansion Bus Trip',
2048: 'Reserved',
4096: 'Reserved',
8192: 'NVS Trip',
16384: 'Test Mode Trip'
0: 'None',
1: 'Test Trip',
2: 'DLX Trip',
4: 'PTC Trip',
8: 'Operator Station Trip',
16: 'Remote Trip',
32: 'Blocked Start Trip',
64: 'Hardware Fault Trip',
128: 'Config Trip',
256: 'Option Match Trip',
512: 'DLX FB Timeout Trip',
1024: 'Expansion Bus Trip',
2048: 'Reserved',
4096: 'Reserved',
8192: 'NVS Trip',
16384: 'Test Mode Trip'
}
e300_power = {
0: 'None',
1: 'Under kW',
2: 'Over kW',
4: 'Under kVAR Consumed',
8: 'Over kVAR Consumed',
16: 'Under kVAR Generated',
32: 'Over kVAR Generated',
64: 'Under kVA',
128: 'Over kVA',
256: 'Under PF Lag',
512: 'Over PF Lag',
1024: 'Under PF Lead',
2048: 'Over PF Lead'
0: 'None',
1: 'Under kW',
2: 'Over kW',
4: 'Under kVAR Consumed',
8: 'Over kVAR Consumed',
16: 'Under kVAR Generated',
32: 'Over kVAR Generated',
64: 'Under kVA',
128: 'Over kVA',
256: 'Under PF Lag',
512: 'Over PF Lag',
1024: 'Under PF Lead',
2048: 'Over PF Lead'
}
device_status = {
1: "Startup",
2: "Not ready to start",
3: "Ready to start",
4: "Lost run permissive",
5: "Not able to restart - Overload Limit",
6: "Not able to restart - Trip Limit",
7: "Waiting to attempt restart",
8: "Waiting to attempt restart (Overload)",
9: "Running",
10: "User stopped",
11: "Waiting to start (Timer Mode)"
}
class Channel():
def read(self):
valData = u800.readMicroTag(self.device_addr, self.tag)
if valData:
nowVal = valData[0]
if self.map_obj:
nowVal = self.map_obj[nowVal]
self.data_type = valData[1]
if (self.data_type == "BOOL") or (type(nowVal) is str) or (type(nowVal) is str):
if self.last_value == "":
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (not (self.last_value == nowVal)) or ((time.time() - self.last_time_uploaded) > self.max_time_between_uploads):
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (self.data_type == "REAL") or (self.data_type[-3:] == "INT"):
if self.last_value == "":
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (abs(self.last_value - nowVal) > self.change_threshold) or ((time.time() - self.last_time_uploaded) > self.max_time_between_uploads):
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
return True
return False
def read(self):
valData = u800.readMicroTag(self.device_addr, self.tag)
if valData:
nowVal = valData[0]
if self.map_obj:
nowVal = self.map_obj[nowVal]
self.data_type = valData[1]
if (self.data_type == "BOOL") or (type(nowVal) is str) or (type(nowVal) is str):
if self.last_value == "":
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (not (self.last_value == nowVal)) or ((time.time() - self.last_time_uploaded) > self.max_time_between_uploads):
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (self.data_type == "REAL") or (self.data_type[-3:] == "INT"):
if self.last_value == "":
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
elif (abs(self.last_value - nowVal) > self.change_threshold) or ((time.time() - self.last_time_uploaded) > self.max_time_between_uploads):
self.sendFn(self.name, nowVal, 0)
self.last_time_uploaded = time.time()
self.last_value = nowVal
return True
return False
def __init__(self, name, tag, max_time_between_uploads, sendFn, change_threshold=0.0, e300_param=False, writeable=False, map_obj=None):
global addr
self.name = name
self.tag = tag
self.data_type = ''
self.last_value = ''
self.last_time_uploaded = 0
self.change_threshold = change_threshold
self.max_time_between_uploads = int(max_time_between_uploads)
self.sendFn = sendFn
self.device_addr = addr
self.writeable = bool(writeable)
self.map_obj = map_obj
self.e300_param = e300_param
self.read()
def __init__(self, name, tag, max_time_between_uploads, sendFn, change_threshold=0.0, e300_param=False, writeable=False, map_obj=None):
global addr
self.name = name
self.tag = tag
self.data_type = ''
self.last_value = ''
self.last_time_uploaded = 0
self.change_threshold = change_threshold
self.max_time_between_uploads = int(max_time_between_uploads)
self.sendFn = sendFn
self.device_addr = addr
self.writeable = bool(writeable)
self.map_obj = map_obj
self.e300_param = e300_param
self.read()
def write(self, val, handshake=None, handshake_val=None):
if self.writeable:
if not self.e300_param:
if handshake is None:
if u800.writeMicroTag(self.device_addr, self.tag, val):
self.sendFn(self.name, val, time.time())
self.last_value = val
return True
else:
return False
else:
return u800.writeMicroTag(self.device_addr, self.tag, val, handshake=handshake, handshake_val=handshake_val)
else:
if u800.writeMicroTag(self.device_addr, self.tag, val):
if u800.writeMicroTag(self.device_addr, "write_E300", 1):
self.sendFn(self.name, val, time.time())
self.last_value = val
return True
return False
def write(self, val, handshake=None, handshake_val=None):
if self.writeable:
if not self.e300_param:
if handshake is None:
if u800.writeMicroTag(self.device_addr, self.tag, val):
self.sendFn(self.name, val, time.time())
self.last_value = val
return True
else:
return False
else:
return u800.writeMicroTag(self.device_addr, self.tag, val, handshake=handshake, handshake_val=handshake_val)
else:
if u800.writeMicroTag(self.device_addr, self.tag, val):
if u800.writeMicroTag(self.device_addr, "write_E300", 1):
self.sendFn(self.name, val, time.time())
self.last_value = val
return True
return False
else:
print("NOT ALLOWED TO WRITE TO {}".format(self.name))
return False
else:
print("NOT ALLOWED TO WRITE TO {}".format(self.name))
return False
class start(threading.Thread, deviceBase):
def writeTag_WriteE300(self, addr, tag, val):
write_tag = u800.writeMicroTag(addr, tag, val)
write_e300 = u800.writeMicroTag(addr, "write_E300", 1)
return write_tag and write_e300
def writeTag_WriteE300(self, addr, tag, val):
write_tag = u800.writeMicroTag(addr, tag, val)
write_e300 = u800.writeMicroTag(addr, "write_E300", 1)
return write_tag and write_e300
def updateGPS(self):
gps = self.mcu.gps
print("GPS found me at {0}".format(gps))
self.sendtodb("gps", gps, 0)
def updateGPS(self):
gps = self.mcu.gps
print("GPS found me at {0}".format(gps))
self.sendtodb("gps", gps, 0)
def setupChannels(self):
global channels
channels = {
'automode': Channel('automode', 'Auto_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'cfgcflasetting': Channel('cfgcflasetting', 'cfg_C_FLASetting', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgcleartripcountafter': Channel('cfgcleartripcountafter', 'cfg_ClearTripCountAfter', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfggfgroundfaultinhibittime': Channel('cfggfgroundfaultinhibittime', 'cfg_GF_GroundFaultInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaulttripdelay': Channel('cfggfgroundfaulttripdelay', 'cfg_GF_GroundFaultTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaulttriplevel': Channel('cfggfgroundfaulttriplevel', 'cfg_GF_GroundFaultTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaultwarningdelay': Channel('cfggfgroundfaultwarningdelay', 'cfg_GF_GroundFaultWarningDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaultwarninglevel': Channel('cfggfgroundfaultwarninglevel', 'cfg_GF_GroundFaultWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgictprimary': Channel('cfgictprimary', 'cfg_I_CTPrimary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgictsecondary': Channel('cfgictsecondary', 'cfg_I_CTSecondary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalanceinhibittim': Channel('cfgicurrentimbalanceinhibittim', 'cfg_I_CurrentImbalanceInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancetripdelay': Channel('cfgicurrentimbalancetripdelay', 'cfg_I_CurrentImbalanceTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancetriplevel': Channel('cfgicurrentimbalancetriplevel', 'cfg_I_CurrentImbalanceTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancewarninglev': Channel('cfgicurrentimbalancewarninglev', 'cfg_I_CurrentImbalanceWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijaminhibittime': Channel('cfgijaminhibittime', 'cfg_I_JamInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamtripdelay': Channel('cfgijamtripdelay', 'cfg_I_JamTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamtriplevel': Channel('cfgijamtriplevel', 'cfg_I_JamTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamwarninglevel': Channel('cfgijamwarninglevel', 'cfg_I_JamWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgilinelossinhibittime': Channel('cfgilinelossinhibittime', 'cfg_I_LineLossInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgilinelosstripdelay': Channel('cfgilinelosstripdelay', 'cfg_I_LineLossTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrentinhibittime': Channel('cfgiovercurrentinhibittime', 'cfg_I_OvercurrentInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrenttripdelay': Channel('cfgiovercurrenttripdelay', 'cfg_I_OvercurrentTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrenttriplevel': Channel('cfgiovercurrenttriplevel', 'cfg_I_OvercurrentTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrentwarninglevel': Channel('cfgiovercurrentwarninglevel', 'cfg_I_OvercurrentWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgistallenabledtime': Channel('cfgistallenabledtime', 'cfg_I_StallEnabledTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgistalltriplevel': Channel('cfgistalltriplevel', 'cfg_I_StallTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrentinhibittime': Channel('cfgiundercurrentinhibittime', 'cfg_I_UndercurrentInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrenttripdelay': Channel('cfgiundercurrenttripdelay', 'cfg_I_UndercurrentTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrenttriplevel': Channel('cfgiundercurrenttriplevel', 'cfg_I_UndercurrentTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrentwarninglevel': Channel('cfgiundercurrentwarninglevel', 'cfg_I_UndercurrentWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadinhibittime': Channel('cfgiunderloadinhibittime', 'cfg_I_UnderloadInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadtripdelay': Channel('cfgiunderloadtripdelay', 'cfg_I_UnderloadTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadtriplevel': Channel('cfgiunderloadtriplevel', 'cfg_I_UnderloadTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadwarninglevel': Channel('cfgiunderloadwarninglevel', 'cfg_I_UnderloadWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgoverloadtripcountlimit': Channel('cfgoverloadtripcountlimit', 'cfg_OverloadTripCountLimit', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgplphaselossinhibittime': Channel('cfgplphaselossinhibittime', 'cfg_PL_PhaseLossInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgplphaselosstripdelay': Channel('cfgplphaselosstripdelay', 'cfg_PL_PhaseLossTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgread': Channel('cfgread', 'cfg_READ', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'cfgspecificgravity': Channel('cfgspecificgravity', 'cfg_SpecificGravity', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtcuolresetlevel': Channel('cfgtcuolresetlevel', 'cfg_TCU_OLResetLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtcuolwarninglevel': Channel('cfgtcuolwarninglevel', 'cfg_TCU_OLWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtcutripclass': Channel('cfgtcutripclass', 'cfg_TCU_TripClass', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtimermodeenabled': Channel('cfgtimermodeenabled', 'cfg_TimerModeEnabled', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'cfgtimerruntime': Channel('cfgtimerruntime', 'cfg_TimerRunTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtimerwaittime': Channel('cfgtimerwaittime', 'cfg_TimerWaitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtripcountlimit': Channel('cfgtripcountlimit', 'cfg_TripCountLimit', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgvoverfrequencyinhibittime': Channel('cfgvoverfrequencyinhibittime', 'cfg_V_OverfrequencyInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencytripdelay': Channel('cfgvoverfrequencytripdelay', 'cfg_V_OverfrequencyTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencytriplevel': Channel('cfgvoverfrequencytriplevel', 'cfg_V_OverfrequencyTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencywarninglevel': Channel('cfgvoverfrequencywarninglevel', 'cfg_V_OverfrequencyWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltageinhibittime': Channel('cfgvovervoltageinhibittime', 'cfg_V_OvervoltageInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagetripdelay': Channel('cfgvovervoltagetripdelay', 'cfg_V_OvervoltageTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagetriplevel': Channel('cfgvovervoltagetriplevel', 'cfg_V_OvervoltageTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagewarninglevel': Channel('cfgvovervoltagewarninglevel', 'cfg_V_OvervoltageWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvphaserotationinhibittime': Channel('cfgvphaserotationinhibittime', 'cfg_V_PhaseRotationInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvphaserotationtriptype': Channel('cfgvphaserotationtriptype', 'cfg_V_PhaseRotationTripType', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvptprimary': Channel('cfgvptprimary', 'cfg_V_PTPrimary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvptsecondary': Channel('cfgvptsecondary', 'cfg_V_PTSecondary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencyinhibittime': Channel('cfgvunderfrequencyinhibittime', 'cfg_V_UnderfrequencyInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencytripdelay': Channel('cfgvunderfrequencytripdelay', 'cfg_V_UnderfrequencyTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencytriplevel': Channel('cfgvunderfrequencytriplevel', 'cfg_V_UnderfrequencyTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencywarninglevel': Channel('cfgvunderfrequencywarninglevel', 'cfg_V_UnderfrequencyWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltageinhibittime': Channel('cfgvundervoltageinhibittime', 'cfg_V_UndervoltageInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagetripdelay': Channel('cfgvundervoltagetripdelay', 'cfg_V_UndervoltageTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagetriplevel': Channel('cfgvundervoltagetriplevel', 'cfg_V_UndervoltageTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagewarninglevel': Channel('cfgvundervoltagewarninglevel', 'cfg_V_UndervoltageWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalanceinhibittim': Channel('cfgvvoltageimbalanceinhibittim', 'cfg_V_VoltageImbalanceInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancetripdelay': Channel('cfgvvoltageimbalancetripdelay', 'cfg_V_VoltageImbalanceTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancetriplevel': Channel('cfgvvoltageimbalancetriplevel', 'cfg_V_VoltageImbalanceTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancewarninglev': Channel('cfgvvoltageimbalancewarninglev', 'cfg_V_VoltageImbalanceWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltagemode': Channel('cfgvvoltagemode', 'cfg_V_VoltageMode', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgwrite': Channel('cfgwrite', 'cfg_WRITE', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'contactorstatus': Channel('contactorstatus', 'Contactor_Status', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'dhdownholestatusint': Channel('dhdownholestatusint', 'DH_DownholeStatus_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhfluidlevel': Channel('dhfluidlevel', 'DH_Fluid_Level', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhintakepressure': Channel('dhintakepressure', 'DH_IntakePressure', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhintaketemperature': Channel('dhintaketemperature', 'DH_IntakeTemperature', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintakepressureforever': Channel('dhmaxintakepressureforever', 'DH_MaxIntakePressure_Forever', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintakepressurestartup': Channel('dhmaxintakepressurestartup', 'DH_MaxIntakePressure_Startup', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintaketemperatureforever': Channel('dhmaxintaketemperatureforever', 'DH_MaxIntakeTemperature_Forever', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintaketemperaturestartup': Channel('dhmaxintaketemperaturestartup', 'DH_MaxIntakeTemperature_Startup', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhnumchannels': Channel('dhnumchannels', 'DH_NumChannels', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhpsirating': Channel('dhpsirating', 'DH_PSIRating', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhtooltype': Channel('dhtooltype', 'DH_ToolType', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhtoolvoltage': Channel('dhtoolvoltage', 'DH_ToolVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'downholetoolenabled': Channel('downholetoolenabled', 'Downhole_Tool_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'downtimetimeparameter': Channel('downtimetimeparameter', 'Downtime_Time_Parameter', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'downtimetimeparameterol': Channel('downtimetimeparameterol', 'Downtime_Time_Parameter_OL', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'e300averagecurrent': Channel('e300averagecurrent', 'E300_AverageCurrent', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300averagellvoltage': Channel('e300averagellvoltage', 'E300_AverageLLVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300averagelnvoltage': Channel('e300averagelnvoltage', 'E300_AverageLNVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300kwh': Channel('e300kwh', 'E300_kWh', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300kwhregen': Channel('e300kwhregen', 'E300_kWh_Regen', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1apparentpower': Channel('e300l1apparentpower', 'E300_L1ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1current': Channel('e300l1current', 'E300_L1Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1l2voltage': Channel('e300l1l2voltage', 'E300_L1L2Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1nvoltage': Channel('e300l1nvoltage', 'E300_L1NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1reactivepower': Channel('e300l1reactivepower', 'E300_L1ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1realpower': Channel('e300l1realpower', 'E300_L1RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1truepowerfactor': Channel('e300l1truepowerfactor', 'E300_L1TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2apparentpower': Channel('e300l2apparentpower', 'E300_L2ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2current': Channel('e300l2current', 'E300_L2Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2l3voltage': Channel('e300l2l3voltage', 'E300_L2L3Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2nvoltage': Channel('e300l2nvoltage', 'E300_L2NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2reactivepower': Channel('e300l2reactivepower', 'E300_L2ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2realpower': Channel('e300l2realpower', 'E300_L2RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2truepowerfactor': Channel('e300l2truepowerfactor', 'E300_L2TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3apparentpower': Channel('e300l3apparentpower', 'E300_L3ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3current': Channel('e300l3current', 'E300_L3Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3l1voltage': Channel('e300l3l1voltage', 'E300_L3L1Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3nvoltage': Channel('e300l3nvoltage', 'E300_L3NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3reactivepower': Channel('e300l3reactivepower', 'E300_L3ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3realpower': Channel('e300l3realpower', 'E300_L3RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3truepowerfactor': Channel('e300l3truepowerfactor', 'E300_L3TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300linefrequency': Channel('e300linefrequency', 'E300_LineFrequency', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300percentcurrentunbalance': Channel('e300percentcurrentunbalance', 'E300_PercentCurrentUnbalance', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300percentvoltageunbalance': Channel('e300percentvoltageunbalance', 'E300_PercentVoltageUnbalance', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300threephasetruepowerfactor': Channel('e300threephasetruepowerfactor', 'E300_ThreePhaseTruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalapparentpower': Channel('e300totalapparentpower', 'E300_TotalApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalreactivepower': Channel('e300totalreactivepower', 'E300_TotalReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalrealpower': Channel('e300totalrealpower', 'E300_TotalRealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'flowrate': Channel('flowrate', 'Flowrate', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'handmode': Channel('handmode', 'Hand_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'overloadtrip': Channel('overloadtrip', 'OverloadTrip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurealarmdelay': Channel('pressurealarmdelay', 'Pressure_Alarm_Delay', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurealarmstartupdelay': Channel('pressurealarmstartupdelay', 'Pressure_Alarm_Startup_Delay', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureeumax': Channel('pressureeumax', 'Pressure_EU_Max', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureeumin': Channel('pressureeumin', 'Pressure_EU_Min', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurehi': Channel('pressurehi', 'Pressure_Hi', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurehisp': Channel('pressurehisp', 'Pressure_Hi_SP', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurein': Channel('pressurein', 'Pressure_In', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'pressurelo': Channel('pressurelo', 'Pressure_Lo', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurelosp': Channel('pressurelosp', 'Pressure_Lo_SP', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureok': Channel('pressureok', 'Pressure_OK', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressureshutdown': Channel('pressureshutdown', 'Pressure_Shutdown', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureshutdownenabled': Channel('pressureshutdownenabled', 'Pressure_Shutdown_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressurestartup': Channel('pressurestartup', 'Pressure_Startup', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurestartupenabled': Channel('pressurestartupenabled', 'Pressure_Startup_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressureswitchenabled': Channel('pressureswitchenabled', 'Pressure_Switch_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressuretransducerenabled': Channel('pressuretransducerenabled', 'Pressure_Transducer_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'rpmode': Channel('rpmode', 'RP_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rppressure': Channel('rppressure', 'RP_Pressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptemperature': Channel('rptemperature', 'RP_Temperature', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptrip': Channel('rptrip', 'RP_Trip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptubingpressure': Channel('rptubingpressure', 'RP_TubingPressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'runpermissive': Channel('runpermissive', 'Run_Permissive', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'spmode': Channel('spmode', 'SP_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sppressure': Channel('sppressure', 'SP_Pressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sptemperature': Channel('sptemperature', 'SP_Temperature', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sptrip': Channel('sptrip', 'SP_Trip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'spvoltage': Channel('spvoltage', 'SP_Voltage', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'startbutton': Channel('startbutton', 'Start_Button', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'startcommand': Channel('startcommand', 'Start_Command', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'startpermissive': Channel('startpermissive', 'Start_Permissive', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'stopcommand': Channel('stopcommand', 'Stop_Command', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tempshutdown': Channel('tempshutdown', 'Temp_Shutdown', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'tempshutdownenabled': Channel('tempshutdownenabled', 'Temp_Shutdown_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tempstartup': Channel('tempstartup', 'Temp_Startup', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'tempstartupenabled': Channel('tempstartupenabled', 'Temp_Startup_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'testmode': Channel('testmode', 'Test_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'tripenabledicurrentimbalance': Channel('tripenabledicurrentimbalance', 'TripEnabled_I_CurrentImbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledigroundfault': Channel('tripenabledigroundfault', 'TripEnabled_I_GroundFault', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledijam': Channel('tripenabledijam', 'TripEnabled_I_Jam', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledilineloss': Channel('tripenabledilineloss', 'TripEnabled_I_LineLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediovercurrent': Channel('tripenablediovercurrent', 'TripEnabled_I_Overcurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledioverload': Channel('tripenabledioverload', 'TripEnabled_I_Overload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediphaseloss': Channel('tripenablediphaseloss', 'TripEnabled_I_PhaseLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledistall': Channel('tripenabledistall', 'TripEnabled_I_Stall', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediundercurrent': Channel('tripenablediundercurrent', 'TripEnabled_I_Undercurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediunderload': Channel('tripenablediunderload', 'TripEnabled_I_Underload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevoverfrequency': Channel('tripenablevoverfrequency', 'TripEnable_V_Overfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevovervoltage': Channel('tripenablevovervoltage', 'TripEnable_V_Overvoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevphaserotation': Channel('tripenablevphaserotation', 'TripEnable_V_PhaseRotation', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevunderfrequency': Channel('tripenablevunderfrequency', 'TripEnable_V_Underfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevundervoltage': Channel('tripenablevundervoltage', 'TripEnable_V_Undervoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevvoltageunbalance': Channel('tripenablevvoltageunbalance', 'TripEnable_V_VoltageUnbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripresetcmd': Channel('tripresetcmd', 'TripResetCmd', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripstatus': Channel('tripstatus', 'TripStatus', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'tripstatuscontrolint': Channel('tripstatuscontrolint', 'TripStatusControl_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_control),
'tripstatuscurrentint': Channel('tripstatuscurrentint', 'TripStatusCurrent_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_current),
'tripstatuspowerint': Channel('tripstatuspowerint', 'TripStatusPower_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_power),
'tripstatusvoltageint': Channel('tripstatusvoltageint', 'TripStatusVoltage_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_voltage),
'valoverloadtripcount': Channel('valoverloadtripcount', 'val_OverloadTripCount', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'valtripcount': Channel('valtripcount', 'val_TripCount', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'voltageok': Channel('voltageok', 'VoltageOK', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'warningenabledicurrentimbalanc': Channel('warningenabledicurrentimbalanc', 'WarningEnabled_I_CurrentImbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledigroundfault': Channel('warningenabledigroundfault', 'WarningEnabled_I_GroundFault', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledijam': Channel('warningenabledijam', 'WarningEnabled_I_Jam', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledilineloss': Channel('warningenabledilineloss', 'WarningEnabled_I_LineLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediovercurrent': Channel('warningenablediovercurrent', 'WarningEnabled_I_Overcurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledioverload': Channel('warningenabledioverload', 'WarningEnabled_I_Overload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediphaseloss': Channel('warningenablediphaseloss', 'WarningEnabled_I_PhaseLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledistall': Channel('warningenabledistall', 'WarningEnabled_I_Stall', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediundercurrent': Channel('warningenablediundercurrent', 'WarningEnabled_I_Undercurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediunderload': Channel('warningenablediunderload', 'WarningEnabled_I_Underload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevoverfrequency': Channel('warningenablevoverfrequency', 'WarningEnable_V_Overfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevovervoltage': Channel('warningenablevovervoltage', 'WarningEnable_V_Overvoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevphaserotation': Channel('warningenablevphaserotation', 'WarningEnable_V_PhaseRotation', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevunderfrequency': Channel('warningenablevunderfrequency', 'WarningEnable_V_Underfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevundervoltage': Channel('warningenablevundervoltage', 'WarningEnable_V_Undervoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevvoltageunbalance': Channel('warningenablevvoltageunbalance', 'WarningEnable_V_VoltageUnbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningstatus': Channel('warningstatus', 'WarningStatus', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningstatuscontrolint': Channel('warningstatuscontrolint', 'WarningStatusControl_INT', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_control),
'warningstatuscurrentint': Channel('warningstatuscurrentint', 'WarningStatusCurrent_INT', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_current),
'warningstatuspowerint': Channel('warningstatuspowerint', 'WarningStatusPower_INT', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_power),
'warningstatusvoltageint': Channel('warningstatusvoltageint', 'WarningStatusVoltage_INT', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_voltage),
}
def setupChannels(self):
global channels
channels = {
'automode': Channel('automode', 'Auto_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'cfgcflasetting': Channel('cfgcflasetting', 'cfg_C_FLASetting', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgcleartripcountafter': Channel('cfgcleartripcountafter', 'cfg_ClearTripCountAfter', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfggfgroundfaultinhibittime': Channel('cfggfgroundfaultinhibittime', 'cfg_GF_GroundFaultInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaulttripdelay': Channel('cfggfgroundfaulttripdelay', 'cfg_GF_GroundFaultTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaulttriplevel': Channel('cfggfgroundfaulttriplevel', 'cfg_GF_GroundFaultTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaultwarningdelay': Channel('cfggfgroundfaultwarningdelay', 'cfg_GF_GroundFaultWarningDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfggfgroundfaultwarninglevel': Channel('cfggfgroundfaultwarninglevel', 'cfg_GF_GroundFaultWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgictprimary': Channel('cfgictprimary', 'cfg_I_CTPrimary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgictsecondary': Channel('cfgictsecondary', 'cfg_I_CTSecondary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalanceinhibittim': Channel('cfgicurrentimbalanceinhibittim', 'cfg_I_CurrentImbalanceInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancetripdelay': Channel('cfgicurrentimbalancetripdelay', 'cfg_I_CurrentImbalanceTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancetriplevel': Channel('cfgicurrentimbalancetriplevel', 'cfg_I_CurrentImbalanceTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgicurrentimbalancewarninglev': Channel('cfgicurrentimbalancewarninglev', 'cfg_I_CurrentImbalanceWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijaminhibittime': Channel('cfgijaminhibittime', 'cfg_I_JamInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamtripdelay': Channel('cfgijamtripdelay', 'cfg_I_JamTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamtriplevel': Channel('cfgijamtriplevel', 'cfg_I_JamTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgijamwarninglevel': Channel('cfgijamwarninglevel', 'cfg_I_JamWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgilinelossinhibittime': Channel('cfgilinelossinhibittime', 'cfg_I_LineLossInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgilinelosstripdelay': Channel('cfgilinelosstripdelay', 'cfg_I_LineLossTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrentinhibittime': Channel('cfgiovercurrentinhibittime', 'cfg_I_OvercurrentInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrenttripdelay': Channel('cfgiovercurrenttripdelay', 'cfg_I_OvercurrentTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrenttriplevel': Channel('cfgiovercurrenttriplevel', 'cfg_I_OvercurrentTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiovercurrentwarninglevel': Channel('cfgiovercurrentwarninglevel', 'cfg_I_OvercurrentWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgistallenabledtime': Channel('cfgistallenabledtime', 'cfg_I_StallEnabledTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgistalltriplevel': Channel('cfgistalltriplevel', 'cfg_I_StallTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrentinhibittime': Channel('cfgiundercurrentinhibittime', 'cfg_I_UndercurrentInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrenttripdelay': Channel('cfgiundercurrenttripdelay', 'cfg_I_UndercurrentTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrenttriplevel': Channel('cfgiundercurrenttriplevel', 'cfg_I_UndercurrentTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiundercurrentwarninglevel': Channel('cfgiundercurrentwarninglevel', 'cfg_I_UndercurrentWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadinhibittime': Channel('cfgiunderloadinhibittime', 'cfg_I_UnderloadInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadtripdelay': Channel('cfgiunderloadtripdelay', 'cfg_I_UnderloadTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadtriplevel': Channel('cfgiunderloadtriplevel', 'cfg_I_UnderloadTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgiunderloadwarninglevel': Channel('cfgiunderloadwarninglevel', 'cfg_I_UnderloadWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgoverloadtripcountlimit': Channel('cfgoverloadtripcountlimit', 'cfg_OverloadTripCountLimit', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgplphaselossinhibittime': Channel('cfgplphaselossinhibittime', 'cfg_PL_PhaseLossInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgplphaselosstripdelay': Channel('cfgplphaselosstripdelay', 'cfg_PL_PhaseLossTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgread': Channel('cfgread', 'cfg_READ', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'cfgspecificgravity': Channel('cfgspecificgravity', 'cfg_SpecificGravity', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtcuolresetlevel': Channel('cfgtcuolresetlevel', 'cfg_TCU_OLResetLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtcuolwarninglevel': Channel('cfgtcuolwarninglevel', 'cfg_TCU_OLWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtcutripclass': Channel('cfgtcutripclass', 'cfg_TCU_TripClass', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgtimermodeenabled': Channel('cfgtimermodeenabled', 'cfg_TimerModeEnabled', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'cfgtimerruntime': Channel('cfgtimerruntime', 'cfg_TimerRunTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtimerwaittime': Channel('cfgtimerwaittime', 'cfg_TimerWaitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgtripcountlimit': Channel('cfgtripcountlimit', 'cfg_TripCountLimit', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'cfgvoverfrequencyinhibittime': Channel('cfgvoverfrequencyinhibittime', 'cfg_V_OverfrequencyInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencytripdelay': Channel('cfgvoverfrequencytripdelay', 'cfg_V_OverfrequencyTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencytriplevel': Channel('cfgvoverfrequencytriplevel', 'cfg_V_OverfrequencyTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvoverfrequencywarninglevel': Channel('cfgvoverfrequencywarninglevel', 'cfg_V_OverfrequencyWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltageinhibittime': Channel('cfgvovervoltageinhibittime', 'cfg_V_OvervoltageInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagetripdelay': Channel('cfgvovervoltagetripdelay', 'cfg_V_OvervoltageTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagetriplevel': Channel('cfgvovervoltagetriplevel', 'cfg_V_OvervoltageTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvovervoltagewarninglevel': Channel('cfgvovervoltagewarninglevel', 'cfg_V_OvervoltageWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvphaserotationinhibittime': Channel('cfgvphaserotationinhibittime', 'cfg_V_PhaseRotationInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvphaserotationtriptype': Channel('cfgvphaserotationtriptype', 'cfg_V_PhaseRotationTripType', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvptprimary': Channel('cfgvptprimary', 'cfg_V_PTPrimary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvptsecondary': Channel('cfgvptsecondary', 'cfg_V_PTSecondary', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencyinhibittime': Channel('cfgvunderfrequencyinhibittime', 'cfg_V_UnderfrequencyInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencytripdelay': Channel('cfgvunderfrequencytripdelay', 'cfg_V_UnderfrequencyTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencytriplevel': Channel('cfgvunderfrequencytriplevel', 'cfg_V_UnderfrequencyTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvunderfrequencywarninglevel': Channel('cfgvunderfrequencywarninglevel', 'cfg_V_UnderfrequencyWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltageinhibittime': Channel('cfgvundervoltageinhibittime', 'cfg_V_UndervoltageInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagetripdelay': Channel('cfgvundervoltagetripdelay', 'cfg_V_UndervoltageTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagetriplevel': Channel('cfgvundervoltagetriplevel', 'cfg_V_UndervoltageTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvundervoltagewarninglevel': Channel('cfgvundervoltagewarninglevel', 'cfg_V_UndervoltageWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalanceinhibittim': Channel('cfgvvoltageimbalanceinhibittim', 'cfg_V_VoltageImbalanceInhibitTime', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancetripdelay': Channel('cfgvvoltageimbalancetripdelay', 'cfg_V_VoltageImbalanceTripDelay', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancetriplevel': Channel('cfgvvoltageimbalancetriplevel', 'cfg_V_VoltageImbalanceTripLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltageimbalancewarninglev': Channel('cfgvvoltageimbalancewarninglev', 'cfg_V_VoltageImbalanceWarningLevel', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgvvoltagemode': Channel('cfgvvoltagemode', 'cfg_V_VoltageMode', 86400, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=True),
'cfgwrite': Channel('cfgwrite', 'cfg_WRITE', 86400, self.sendtodbJSON, writeable=True, e300_param=False),
'contactorstatus': Channel('contactorstatus', 'Contactor_Status', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'devicestatus': Channel('devicestatus', 'Device_Status_INT', 3600, self.sendtodb, writeable=False, e300_param=False, map_obj=device_status),
'dhdownholestatusint': Channel('dhdownholestatusint', 'DH_DownholeStatus_INT', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhfluidlevel': Channel('dhfluidlevel', 'DH_Fluid_Level', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhintakepressure': Channel('dhintakepressure', 'DH_IntakePressure', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhintaketemperature': Channel('dhintaketemperature', 'DH_IntakeTemperature', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintakepressureforever': Channel('dhmaxintakepressureforever', 'DH_MaxIntakePressure_Forever', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintakepressurestartup': Channel('dhmaxintakepressurestartup', 'DH_MaxIntakePressure_Startup', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintaketemperatureforever': Channel('dhmaxintaketemperatureforever', 'DH_MaxIntakeTemperature_Forever', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhmaxintaketemperaturestartup': Channel('dhmaxintaketemperaturestartup', 'DH_MaxIntakeTemperature_Startup', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhnumchannels': Channel('dhnumchannels', 'DH_NumChannels', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhpsirating': Channel('dhpsirating', 'DH_PSIRating', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhtooltype': Channel('dhtooltype', 'DH_ToolType', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'dhtoolvoltage': Channel('dhtoolvoltage', 'DH_ToolVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'downholetoolenabled': Channel('downholetoolenabled', 'Downhole_Tool_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'downtimetimeparameter': Channel('downtimetimeparameter', 'Downtime_Time_Parameter', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'downtimetimeparameterol': Channel('downtimetimeparameterol', 'Downtime_Time_Parameter_OL', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'e300averagecurrent': Channel('e300averagecurrent', 'E300_AverageCurrent', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300averagellvoltage': Channel('e300averagellvoltage', 'E300_AverageLLVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300averagelnvoltage': Channel('e300averagelnvoltage', 'E300_AverageLNVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300kwh': Channel('e300kwh', 'E300_kWh', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300kwhregen': Channel('e300kwhregen', 'E300_kWh_Regen', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1apparentpower': Channel('e300l1apparentpower', 'E300_L1ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1current': Channel('e300l1current', 'E300_L1Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1l2voltage': Channel('e300l1l2voltage', 'E300_L1L2Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1nvoltage': Channel('e300l1nvoltage', 'E300_L1NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1reactivepower': Channel('e300l1reactivepower', 'E300_L1ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1realpower': Channel('e300l1realpower', 'E300_L1RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l1truepowerfactor': Channel('e300l1truepowerfactor', 'E300_L1TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2apparentpower': Channel('e300l2apparentpower', 'E300_L2ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2current': Channel('e300l2current', 'E300_L2Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2l3voltage': Channel('e300l2l3voltage', 'E300_L2L3Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2nvoltage': Channel('e300l2nvoltage', 'E300_L2NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2reactivepower': Channel('e300l2reactivepower', 'E300_L2ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2realpower': Channel('e300l2realpower', 'E300_L2RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l2truepowerfactor': Channel('e300l2truepowerfactor', 'E300_L2TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3apparentpower': Channel('e300l3apparentpower', 'E300_L3ApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3current': Channel('e300l3current', 'E300_L3Current', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3l1voltage': Channel('e300l3l1voltage', 'E300_L3L1Voltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3nvoltage': Channel('e300l3nvoltage', 'E300_L3NVoltage', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3reactivepower': Channel('e300l3reactivepower', 'E300_L3ReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3realpower': Channel('e300l3realpower', 'E300_L3RealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300l3truepowerfactor': Channel('e300l3truepowerfactor', 'E300_L3TruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300linefrequency': Channel('e300linefrequency', 'E300_LineFrequency', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300percentcurrentunbalance': Channel('e300percentcurrentunbalance', 'E300_PercentCurrentUnbalance', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300percentvoltageunbalance': Channel('e300percentvoltageunbalance', 'E300_PercentVoltageUnbalance', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300threephasetruepowerfactor': Channel('e300threephasetruepowerfactor', 'E300_ThreePhaseTruePowerFactor', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalapparentpower': Channel('e300totalapparentpower', 'E300_TotalApparentPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalreactivepower': Channel('e300totalreactivepower', 'E300_TotalReactivePower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'e300totalrealpower': Channel('e300totalrealpower', 'E300_TotalRealPower', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'flowrate': Channel('flowrate', 'Flowrate', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'handmode': Channel('handmode', 'Hand_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'overloadtrip': Channel('overloadtrip', 'OverloadTrip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurealarmdelay': Channel('pressurealarmdelay', 'Pressure_Alarm_Delay', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurealarmstartupdelay': Channel('pressurealarmstartupdelay', 'Pressure_Alarm_Startup_Delay', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureeumax': Channel('pressureeumax', 'Pressure_EU_Max', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureeumin': Channel('pressureeumin', 'Pressure_EU_Min', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurehi': Channel('pressurehi', 'Pressure_Hi', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurehisp': Channel('pressurehisp', 'Pressure_Hi_SP', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurein': Channel('pressurein', 'Pressure_In', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'pressurelo': Channel('pressurelo', 'Pressure_Lo', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressurelosp': Channel('pressurelosp', 'Pressure_Lo_SP', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureok': Channel('pressureok', 'Pressure_OK', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'pressureshutdown': Channel('pressureshutdown', 'Pressure_Shutdown', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressureshutdownenabled': Channel('pressureshutdownenabled', 'Pressure_Shutdown_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressurestartup': Channel('pressurestartup', 'Pressure_Startup', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'pressurestartupenabled': Channel('pressurestartupenabled', 'Pressure_Startup_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressureswitchenabled': Channel('pressureswitchenabled', 'Pressure_Switch_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'pressuretransducerenabled': Channel('pressuretransducerenabled', 'Pressure_Transducer_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'rpmode': Channel('rpmode', 'RP_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rppressure': Channel('rppressure', 'RP_Pressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptemperature': Channel('rptemperature', 'RP_Temperature', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptrip': Channel('rptrip', 'RP_Trip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'rptubingpressure': Channel('rptubingpressure', 'RP_TubingPressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'runpermissive': Channel('runpermissive', 'Run_Permissive', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'spmode': Channel('spmode', 'SP_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sppressure': Channel('sppressure', 'SP_Pressure', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sptemperature': Channel('sptemperature', 'SP_Temperature', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'sptrip': Channel('sptrip', 'SP_Trip', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'spvoltage': Channel('spvoltage', 'SP_Voltage', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'startbutton': Channel('startbutton', 'Start_Button', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'startcommand': Channel('startcommand', 'Start_Command', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'startpermissive': Channel('startpermissive', 'Start_Permissive', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'stopcommand': Channel('stopcommand', 'Stop_Command', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tempshutdown': Channel('tempshutdown', 'Temp_Shutdown', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'tempshutdownenabled': Channel('tempshutdownenabled', 'Temp_Shutdown_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tempstartup': Channel('tempstartup', 'Temp_Startup', 3600, self.sendtodbJSON, writeable=True, change_threshold=1.0, e300_param=False),
'tempstartupenabled': Channel('tempstartupenabled', 'Temp_Startup_Enabled', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'testmode': Channel('testmode', 'Test_Mode', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'tripenabledicurrentimbalance': Channel('tripenabledicurrentimbalance', 'TripEnabled_I_CurrentImbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledigroundfault': Channel('tripenabledigroundfault', 'TripEnabled_I_GroundFault', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledijam': Channel('tripenabledijam', 'TripEnabled_I_Jam', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledilineloss': Channel('tripenabledilineloss', 'TripEnabled_I_LineLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediovercurrent': Channel('tripenablediovercurrent', 'TripEnabled_I_Overcurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledioverload': Channel('tripenabledioverload', 'TripEnabled_I_Overload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediphaseloss': Channel('tripenablediphaseloss', 'TripEnabled_I_PhaseLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenabledistall': Channel('tripenabledistall', 'TripEnabled_I_Stall', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediundercurrent': Channel('tripenablediundercurrent', 'TripEnabled_I_Undercurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablediunderload': Channel('tripenablediunderload', 'TripEnabled_I_Underload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevoverfrequency': Channel('tripenablevoverfrequency', 'TripEnable_V_Overfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevovervoltage': Channel('tripenablevovervoltage', 'TripEnable_V_Overvoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevphaserotation': Channel('tripenablevphaserotation', 'TripEnable_V_PhaseRotation', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevunderfrequency': Channel('tripenablevunderfrequency', 'TripEnable_V_Underfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevundervoltage': Channel('tripenablevundervoltage', 'TripEnable_V_Undervoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripenablevvoltageunbalance': Channel('tripenablevvoltageunbalance', 'TripEnable_V_VoltageUnbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripresetcmd': Channel('tripresetcmd', 'TripResetCmd', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'tripstatus': Channel('tripstatus', 'TripStatus', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'tripstatuscontrolint': Channel('tripstatuscontrolint', 'TripStatusControl_INT', 3600, self.sendtodb, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_control),
'tripstatuscurrentint': Channel('tripstatuscurrentint', 'TripStatusCurrent_INT', 3600, self.sendtodb, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_current),
'tripstatuspowerint': Channel('tripstatuspowerint', 'TripStatusPower_INT', 3600, self.sendtodb, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_power),
'tripstatusvoltageint': Channel('tripstatusvoltageint', 'TripStatusVoltage_INT', 3600, self.sendtodb, writeable=False, change_threshold=1.0, e300_param=False, map_obj=e300_voltage),
'valoverloadtripcount': Channel('valoverloadtripcount', 'val_OverloadTripCount', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'valtripcount': Channel('valtripcount', 'val_TripCount', 3600, self.sendtodbJSON, writeable=False, change_threshold=1.0, e300_param=False),
'voltageok': Channel('voltageok', 'VoltageOK', 3600, self.sendtodbJSON, writeable=False, e300_param=False),
'warningenabledicurrentimbalanc': Channel('warningenabledicurrentimbalanc', 'WarningEnabled_I_CurrentImbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledigroundfault': Channel('warningenabledigroundfault', 'WarningEnabled_I_GroundFault', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledijam': Channel('warningenabledijam', 'WarningEnabled_I_Jam', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledilineloss': Channel('warningenabledilineloss', 'WarningEnabled_I_LineLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediovercurrent': Channel('warningenablediovercurrent', 'WarningEnabled_I_Overcurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledioverload': Channel('warningenabledioverload', 'WarningEnabled_I_Overload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediphaseloss': Channel('warningenablediphaseloss', 'WarningEnabled_I_PhaseLoss', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenabledistall': Channel('warningenabledistall', 'WarningEnabled_I_Stall', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediundercurrent': Channel('warningenablediundercurrent', 'WarningEnabled_I_Undercurrent', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablediunderload': Channel('warningenablediunderload', 'WarningEnabled_I_Underload', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevoverfrequency': Channel('warningenablevoverfrequency', 'WarningEnable_V_Overfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevovervoltage': Channel('warningenablevovervoltage', 'WarningEnable_V_Overvoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevphaserotation': Channel('warningenablevphaserotation', 'WarningEnable_V_PhaseRotation', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevunderfrequency': Channel('warningenablevunderfrequency', 'WarningEnable_V_Underfrequency', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevundervoltage': Channel('warningenablevundervoltage', 'WarningEnable_V_Undervoltage', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningenablevvoltageunbalance': Channel('warningenablevvoltageunbalance', 'WarningEnable_V_VoltageUnbalance', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningstatus': Channel('warningstatus', 'WarningStatus', 3600, self.sendtodbJSON, writeable=True, e300_param=False),
'warningstatuscontrolint': Channel('warningstatuscontrolint', 'WarningStatusControl_INT', 3600, self.sendtodb, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_control),
'warningstatuscurrentint': Channel('warningstatuscurrentint', 'WarningStatusCurrent_INT', 3600, self.sendtodb, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_current),
'warningstatuspowerint': Channel('warningstatuspowerint', 'WarningStatusPower_INT', 3600, self.sendtodb, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_power),
'warningstatusvoltageint': Channel('warningstatusvoltageint', 'WarningStatusVoltage_INT', 3600, self.sendtodb, writeable=True, change_threshold=1.0, e300_param=False, map_obj=e300_voltage),
}
def __init__(self, name=None, number=None, mac=None, Q=None, mcu=None, companyId=None, offset=None, mqtt=None, Nodes=None):
global addr
threading.Thread.__init__(self)
deviceBase.__init__(self, name=name, number=number, mac=mac, Q=Q, mcu=mcu, companyId=companyId, offset=offset, mqtt=mqtt, Nodes=Nodes)
def __init__(self, name=None, number=None, mac=None, Q=None, mcu=None, companyId=None, offset=None, mqtt=None, Nodes=None):
global addr, version
threading.Thread.__init__(self)
deviceBase.__init__(self, name=name, number=number, mac=mac, Q=Q, mcu=mcu, companyId=companyId, offset=offset, mqtt=mqtt, Nodes=Nodes)
self.daemon = True
self.version = "3"
self.device_address = addr
self.finished = threading.Event()
threading.Thread.start(self)
self.sendtodbJSON("device_address", self.device_address, 0)
self.setupChannels()
self.e300_warning = ""
self.e300_trip = ""
# self.updateGPS()
self.daemon = True
self.version = version
self.device_address = addr
self.finished = threading.Event()
threading.Thread.start(self)
self.sendtodbJSON("device_address", self.device_address, 0)
try:
self.setupChannels()
except:
print("Unable to initialize channels...")
traceback.print_exc()
self.e300_warning = ""
self.e300_trip = ""
# self.updateGPS()
# this is a required function for all drivers, its goal is to upload some piece of data
# about your device so it can be seen on the web
def register(self):
self.channels["status"]["last_value"] = ""
# this is a required function for all drivers, its goal is to upload some piece of data
# about your device so it can be seen on the web
def register(self):
self.channels["status"]["last_value"] = ""
def run(self):
global channels
print("****************\n*************\nEXECUTING RUN\n********************\n****************")
self.runLoopStatus = ""
last_OK_state = 0
while True:
if len(channels) > 0:
try:
for i in channels:
channels[i].read()
runLoopStatus = i
time.sleep(0.25)
def run(self):
global channels
print("****************\n*************\nEXECUTING RUN\n********************\n****************")
self.runLoopStatus = ""
last_OK_state = 0
while True:
if len(channels) > 0:
try:
for i in channels:
channels[i].read()
runLoopStatus = i
time.sleep(0.25)
if not (channels['tripstatuscurrentint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuscurrentint'].last_value):
self.e300_trip = channels['tripstatuscurrentint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatusvoltageint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatusvoltageint'].last_value):
self.e300_trip = channels['tripstatusvoltageint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatuscontrolint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuscontrolint'].last_value):
self.e300_trip = channels['tripstatuscontrolint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatuspowerint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuspowerint'].last_value):
self.e300_trip = channels['tripstatuspowerint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
else:
if not (self.e300_trip == "None"):
self.e300_trip = "None"
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
if not (channels['tripstatuscurrentint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuscurrentint'].last_value):
self.e300_trip = channels['tripstatuscurrentint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatusvoltageint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatusvoltageint'].last_value):
self.e300_trip = channels['tripstatusvoltageint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatuscontrolint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuscontrolint'].last_value):
self.e300_trip = channels['tripstatuscontrolint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
elif not (channels['tripstatuspowerint'].last_value == "None"):
if not (self.e300_trip == channels['tripstatuspowerint'].last_value):
self.e300_trip = channels['tripstatuspowerint'].last_value
self.sendtodb("e300tripstatus", self.e300_trip, time.time())
else:
if not (self.e300_trip == "None"):
self.e300_trip = "None"
# self.sendtodb("e300tripstatus", self.e300_trip, time.time())
if not (channels['warningstatuscurrentint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuscurrentint'].last_value):
self.e300_warning = channels['warningstatuscurrentint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatusvoltageint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatusvoltageint'].last_value):
self.e300_warning = channels['warningstatusvoltageint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatuscontrolint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuscontrolint'].last_value):
self.e300_warning = channels['warningstatuscontrolint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatuspowerint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuspowerint'].last_value):
self.e300_warning = channels['warningstatuspowerint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
else:
if not (self.e300_warning == "None"):
self.e300_warning = "None"
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
if not (channels['warningstatuscurrentint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuscurrentint'].last_value):
self.e300_warning = channels['warningstatuscurrentint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatusvoltageint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatusvoltageint'].last_value):
self.e300_warning = channels['warningstatusvoltageint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatuscontrolint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuscontrolint'].last_value):
self.e300_warning = channels['warningstatuscontrolint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
elif not (channels['warningstatuspowerint'].last_value == "None"):
if not (self.e300_warning == channels['warningstatuspowerint'].last_value):
self.e300_warning = channels['warningstatuspowerint'].last_value
self.sendtodb("e300warningstatus", self.e300_warning, time.time())
else:
if not (self.e300_warning == "None"):
self.e300_warning = "None"
# self.sendtodb("e300warningstatus", self.e300_warning, time.time())
runLoopStatus = "Complete"
OK_state = 1
if not OK_state == last_OK_state:
self.sendtodbJSON("driver_ok", OK_state, 0)
last_OK_state = OK_state
time.sleep(10)
except Exception, e:
OK_state = 0
if not OK_state == last_OK_state:
self.sendtodbJSON("driver_ok", OK_state, 0)
last_OK_state = OK_state
sleep_timer = 30
print "Error during {0} of run loop: {1}\nWill try again in {2} seconds...".format(runLoopStatus, e, sleep_timer)
time.sleep(sleep_timer)
else:
print("Apparently no channels... length shows {0}".format(len(channels)))
self.setupChannels()
time.sleep(30)
runLoopStatus = "Complete"
OK_state = 1
if not OK_state == last_OK_state:
self.sendtodbJSON("driver_ok", OK_state, 0)
last_OK_state = OK_state
time.sleep(10)
except Exception, e:
OK_state = 0
if not OK_state == last_OK_state:
self.sendtodbJSON("driver_ok", OK_state, 0)
last_OK_state = OK_state
sleep_timer = 30
print "Error during {0} of run loop: {1}\nWill try again in {2} seconds...".format(runLoopStatus, e, sleep_timer)
time.sleep(sleep_timer)
else:
print("Apparently no channels... length shows {0}".format(len(channels)))
self.setupChannels()
time.sleep(30)
def ipp_sync(self, name, value):
self.sendtodb("connected", "true", 0)
return True
def ipp_sync(self, name, value):
self.sendtodb("connected", "true", 0)
return True
def genericSet(self, name, value, id):
global channels
try:
print("Trying to set {} to {}".format(channels[name].tag, value))
return channels[name].write(value)
except Exception, e:
print("Exception during genericSet: {}".format(e))
def genericSet(self, name, value, id):
global channels
try:
print("Trying to set {} to {}".format(channels[name].tag, value))
return channels[name].write(value)
except Exception, e:
print("Exception during genericSet: {}".format(e))

View File

@@ -0,0 +1,405 @@
{"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-ball","badminton"]}],"address":{}}
{
"1":{
"c":"ETHERNET/IP",
"b":"10.20.158.3",
"addresses":{
"300":{
"2-2":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"cfgspmtarget",
"un":"1",
"dn":"henryhyd",
"da":"300",
"lrt":1471892551.0022135,
"r":"0-20",
"a":"cfg_SPMTarget",
"c":"0",
"misc_u":"SPM",
"f":"1",
"mrt":"15",
"m":"none",
"m1ch":"2-2",
"s":"On",
"mv":"0",
"t":"int"
},
"2-3":{
"bytary":null,
"vm":{
},
"ct":"number",
"le":"16",
"grp":"3600",
"la":0,
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471974386.0297532,
"r":"0-1",
"a":"cmd_Run",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-3",
"s":"On",
"mv":"0",
"t":"int"
},
"2-1":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"stsenginerunning",
"un":"1",
"dn":"henryhyd",
"da":"300",
"lrt":1468878718.76403,
"r":"0-1",
"a":"sts_EngineRunning",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-1",
"s":"On",
"mv":"0",
"t":"int"
},
"2-6":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892533.1567128,
"r":"0-1",
"a":"cmd_EngineStart",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-6",
"s":"On",
"mv":"0",
"t":"int"
},
"2-7":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892513.008441,
"r":"0-1",
"a":"cmd_EngineStop",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-7",
"s":"On",
"mv":"0",
"t":"int"
},
"2-4":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892514.166909,
"r":"0-150",
"a":"val_EngineOilPressure",
"c":"0",
"misc_u":" PSI",
"f":"1",
"mrt":"10",
"m":"none",
"m1ch":"2-4",
"s":"On",
"mv":"0",
"t":"int"
},
"2-5":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892558.0009384,
"r":"0-500",
"a":"time_EngineHourMeter",
"c":"0",
"misc_u":"Hours",
"f":"1",
"mrt":"60",
"m":"none",
"m1ch":"2-5",
"s":"On",
"mv":"0",
"t":"int"
},
"2-8":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892537.8492658,
"r":"0-1",
"a":"cmd_Start",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-8",
"s":"On",
"mv":"0",
"t":"int"
},
"2-9":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"",
"un":"",
"dn":"M1",
"da":"300",
"lrt":1471892538.997888,
"r":"0-1",
"a":"cmd_Stop",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"1",
"m":"none",
"m1ch":"2-9",
"s":"On",
"mv":"0",
"t":"int"
},
"2-14":{
"bytary":null,
"vm":{
"1":"Starting",
"0":"Stopped",
"3":"Stopping",
"2":"Running"
},
"ct":"number",
"le":"16",
"grp":"3600",
"la":"",
"chn":"stsengineint",
"un":"1",
"dn":"henryhyd",
"da":"300",
"lrt":1471892540.141906,
"r":"0-5",
"a":"sts_EngineINT",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"10",
"m":"none",
"m1ch":"2-14",
"s":"On",
"mv":"0",
"t":"int"
},
"2-10":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"3500",
"la":0,
"chn":"automode",
"un":"1",
"dn":"ipp",
"da":"300",
"lrt":1471974396.231401,
"r":"0-1",
"a":"Auto_Mode",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"60",
"m":"none",
"m1ch":"2-10",
"s":"On",
"mv":"0",
"t":"int"
},
"2-11":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"86400",
"la":0.0,
"chn":"cfgcflasetting",
"un":"1",
"dn":"ipp",
"da":"300",
"lrt":1471974397.360571,
"r":"0-200",
"a":"cfg_C_FLASetting",
"c":"0",
"misc_u":"A",
"f":"1",
"mrt":"60",
"m":"none",
"m1ch":"2-11",
"s":"On",
"mv":"0",
"t":"int"
},
"2-12":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"86400",
"la":60,
"chn":"cfgcleartripcountafter",
"un":"1",
"dn":"ipp",
"da":"300",
"lrt":1471974398.501199,
"r":"0-3600",
"a":"cfg_ClearTripCountAfter",
"c":"0",
"misc_u":"sec",
"f":"1",
"mrt":"60",
"m":"none",
"m1ch":"2-12",
"s":"On",
"mv":"0",
"t":"int"
},
"2-13":{
"bytary":null,
"vm":null,
"ct":"number",
"le":"16",
"grp":"86400",
"la":0,
"chn":"cfggfgroundfaultinhibittime",
"un":"1",
"dn":"ipp",
"da":"300",
"lrt":1471974399.6202452,
"r":"0-100",
"a":"cfg_GF_GroundFaultInhibitTime",
"c":"0",
"misc_u":"sec",
"f":"1",
"mrt":"60",
"m":"none",
"m1ch":"2-13",
"s":"On",
"mv":"0",
"t":"int"
}
}
},
"f":"Off",
"p":"",
"s":"1"
},
"2":{
"c":"ETHERNET/IP",
"b":"10.20.158.3",
"addresses":{
"300":{
"4-1":{
"bytary":null,
"vm":{
"11":"Waiting to start (Timer Mode)",
"10":"User stopped",
"1":"Startup",
"3":"Ready to start",
"2":"Not ready to start",
"5":"Not able to restart - Overload Limit",
"4":"Lost run permissive",
"7":"Waiting to attempt restart",
"6":"Not able to restart - Trip Limit",
"9":"Running",
"8":"Waiting to attempt restart (Overload)"
},
"ct":"number",
"le":"16",
"grp":"3600",
"la":0,
"chn":"devicestatus",
"un":"1",
"dn":"M1",
"da":"300",
"lrt":1471974334.856273,
"r":"",
"a":"Device_Status_INT",
"c":"0",
"misc_u":"",
"f":"1",
"mrt":"5",
"m":"none",
"m1ch":"4-1",
"s":"On",
"mv":"0",
"t":"int"
}
}
},
"f":"Off",
"p":"",
"s":"1"
}
}

1228
POCloud_Driver/modbusMap.p Normal file

File diff suppressed because it is too large Load Diff

View File

View File

@@ -0,0 +1,6 @@
import pickle
import json
modbus_map = pickle.load(open('modbusMap.p', 'rb'))
with open('modbusMap.json', 'w') as fp:
json.dump(modbus_map, fp)

18
README.md Normal file
View File

@@ -0,0 +1,18 @@
# Intelligent Pump Panel
## Developed by Henry Pump
# Device_Status_INT Mapping
| Integer | String |
|---------------|---------------------------------------|
| 1 | Startup |
| 2 | Not ready to start |
| 3 | Ready to start |
| 4 | Lost run permissive |
| 5 | Not able to restart - Overload Limit |
| 6 | Not able to restart - Trip Limit |
| 7 | Waiting to attempt restart |
| 8 | Waiting to attempt restart (Overload) |
| 9 | Running |
| 10 | User stopped |
| 11 | Waiting to start (Timer Mode) |

BIN
WaterWellPanel.v12.ccwsuo Normal file

Binary file not shown.

View File

@@ -1 +0,0 @@
TO RELINK

View File

@@ -1 +0,0 @@
COMPILED

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