1955 lines
47 KiB
INI
1955 lines
47 KiB
INI
{
|
|
"controllers": [
|
|
{
|
|
"protocol": "EtherNet/IP",
|
|
"name": "hrswd",
|
|
"samplePeriod": 10,
|
|
"expired": 10000,
|
|
"enablePerOnchange": 0,
|
|
"args": {
|
|
"slot": 0
|
|
},
|
|
"endpoint": "192.168.1.10:44818"
|
|
}
|
|
],
|
|
"measures": [
|
|
{
|
|
"name": "plc_io_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "IO_Fault_Alarm",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "plc_fault",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "PLC_FAULT",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "plc_fault_code",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "DINT",
|
|
"addr": "MAJOR_FAULT_CODE",
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "analog_01_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Fault_Analog_Mod_01",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "analog_02_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Fault_Analog_Mod_02",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "analog_03_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Fault_Analog_Mod_03",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "analog_04_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Fault_Analog_Mod_04",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "digital_05_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Fault_Digital_In_Mod_05",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "containment_high_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "Contain_Hi_Level.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "dc_power_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "UPS_DC_OK.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "esd_push_button",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "ESD_Switch.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_run_tank",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "DINT",
|
|
"addr": "WT_Selector",
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_level",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_1.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_1.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_1.Alm_Hi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_1.Alm_Fail",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_hihi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_1.PSet_HiHiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_hi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_1.PSet_HiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_01_max_height",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_1.Cfg_PVEUMax",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_level",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_2.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_2.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_2.Alm_Hi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_2.Alm_Fail",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_hihi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_2.PSet_HiHiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_hi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_2.PSet_HiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_02_max_height",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_2.Cfg_PVEUMax",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_level",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_3.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_3.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_3.Alm_Hi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_3.Alm_Fail",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_hihi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_3.PSet_HiHiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_hi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_3.PSet_HiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_03_max_height",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_3.Cfg_PVEUMax",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_level",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_4.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_4.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_4.Alm_Hi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "WT_4.Alm_Fail",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_hihi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_4.PSet_HiHiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_hi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_4.PSet_HiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "water_04_max_height",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "WT_4.Cfg_PVEUMax",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_level",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "OT_1.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "OT_1.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "OT_1.Alm_Hi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "OT_1.Alm_Fail",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_hihi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "OT_1.PSet_HiHiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_hi_spt",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "OT_1.PSet_HiLim",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "oil_01_max_height",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "OT_1.Cfg_PVEUMax",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_sts",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Motor_01.Sts_Running",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_failed_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Motor_01.Alm_FailToStart",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_suction",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "East_Pump_Suction_PSI.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_suction_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Suction_PSI.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_suction_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Suction_PSI.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_discharge",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "East_Pump_Discharge_PSI.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_discharge_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Discharge_PSI.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_discharge_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Discharge_PSI.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_flow_rate",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "East_Pump_Flow_Meter.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_flow_rate_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Flow_Meter.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_flow_rate_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Flow_Meter.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_oil_level_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Oil_Level_Switch.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_vibration_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Vib_Switch.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_01_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "East_Pump_Fault.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_sts",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Motor_02.Sts_Running",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_failed_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Motor_02.Alm_FailToStart",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_suction",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "West_Pump_Suction_PSI.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_suction_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Suction_PSI.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_suction_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Suction_PSI.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_discharge",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "West_Pump_Discharge_PSI.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_discharge_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Discharge_PSI.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_discharge_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Discharge_PSI.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_flow_rate",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "FLOAT",
|
|
"addr": "West_Pump_Flow_Meter.Val",
|
|
"decimal": 2,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_flow_rate_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Flow_Meter.Alm_HiHi",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_flow_rate_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Flow_Meter.Alm_LoLo",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_oil_level_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Oil_Level_Switch.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_vibration_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Vib_Switch.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
},
|
|
{
|
|
"name": "pump_02_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"group": "default",
|
|
"uploadType": "periodic",
|
|
"dataType": "BIT",
|
|
"addr": "West_Pump_Fault.Alm_TgtDisagree",
|
|
"bitMap": 0,
|
|
"readWrite": "ro",
|
|
"unit": "",
|
|
"desc": "",
|
|
"transformType": 0
|
|
}
|
|
],
|
|
"alarmLables": [
|
|
"default"
|
|
],
|
|
"alarms": [
|
|
{
|
|
"name": "plc_io_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "plc_io_fault_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "PLC IO has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "plc_fault",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "plc_fault",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "PLC has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "analog_01_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "analog_01_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Analog Module 1 has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "analog_02_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "analog_02_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Analog Module 2 has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "analog_03_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "analog_03_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Analog Module 3 has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "analog_04_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "analog_04_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Analog Module 4 has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "digital_05_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "digital_05_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Analog Module 5 has faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "containment_high_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "containment_high_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Containment Level has crossed the Hi threshold.",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "dc_power_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "dc_power_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "DC Power Fault",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "esd_push_button",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "esd_push_button",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "ESD Button Pressed",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_01_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_01_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 1 crossed HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_01_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_01_hi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 1 crossed Hi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_01_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_01_tx_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 1 transmission error",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_02_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_02_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 2 crossed HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_02_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_02_hi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 2 crossed Hi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_02_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_02_tx_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 2 transmission error",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_03_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_03_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 3 crossed HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_03_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_03_hi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 3 crossed Hi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_03_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_03_tx_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 3 transmission error",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_04_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_04_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 4 crossed HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_04_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_04_hi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 4 crossed Hi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "water_04_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "water_04_tx_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Water Tank 4 transmission error",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "oil_01_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "oil_01_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Oil Tank 1 crossed HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "oil_01_hi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "oil_01_hi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Oil Tank 1 crossed Hi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "oil_01_tx_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "oil_01_tx_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Oil Tank 1 transmission error",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_failed_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_failed_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 failed to start",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_suction_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_suction_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed suction HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_suction_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_suction_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed suction LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_discharge_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_discharge_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed discharge HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_discharge_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_discharge_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed discharge LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_flow_rate_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_flow_rate_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed flow rate HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_flow_rate_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_flow_rate_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 crossed flow rate LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_oil_level_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_oil_level_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 oil level triggered",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_vibration_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_vibration_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 vibration triggered",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_01_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_01_fault_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 1 faulted",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_failed_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_failed_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 failed to start",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_suction_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_suction_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed suction HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_suction_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_suction_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed suction LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_discharge_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_discharge_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed discharge HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_discharge_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_discharge_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed discharge LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_flow_rate_hihi_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_flow_rate_hihi_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed flow rate HiHi threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_flow_rate_lolo_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_flow_rate_lolo_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 crossed flow rate LoLo threshold",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_oil_level_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_oil_level_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 oil level triggered",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_vibration_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_vibration_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 vibration triggered",
|
|
"alarmLable": "default"
|
|
},
|
|
{
|
|
"name": "pump_02_fault_alm",
|
|
"ctrlName": "hrswd",
|
|
"measureName": "pump_02_fault_alm",
|
|
"alarmLevel": 5,
|
|
"cond1": {
|
|
"op": "eq",
|
|
"value": "1.0"
|
|
},
|
|
"condOp": "none",
|
|
"cond2": {
|
|
"op": "eq",
|
|
"value": ""
|
|
},
|
|
"content": "Pump 2 faulted",
|
|
"alarmLable": "default"
|
|
}
|
|
],
|
|
"groups": [
|
|
{
|
|
"name": "default",
|
|
"uploadInterval": 600
|
|
}
|
|
],
|
|
"misc": {
|
|
"maxAlarmRecordSz": 2000,
|
|
"logLvl": "INFO",
|
|
"coms": [
|
|
{
|
|
"name": "rs232",
|
|
"baud": 9600,
|
|
"bits": 8,
|
|
"stopbits": 1,
|
|
"parityChk": "n"
|
|
},
|
|
{
|
|
"name": "rs485",
|
|
"baud": 9600,
|
|
"bits": 8,
|
|
"stopbits": 1,
|
|
"parityChk": "n"
|
|
}
|
|
]
|
|
},
|
|
"clouds": [
|
|
{
|
|
"cacheSize": 10000,
|
|
"enable": 1,
|
|
"name": "default",
|
|
"type": "Standard MQTT",
|
|
"args": {
|
|
"host": "hp.henrypump.cloud",
|
|
"port": 1883,
|
|
"clientId": "unknown",
|
|
"auth": 1,
|
|
"tls": 0,
|
|
"cleanSession": 0,
|
|
"mqttVersion": "v3.1.1",
|
|
"keepalive": 60,
|
|
"key": "",
|
|
"cert": "",
|
|
"rootCA": "",
|
|
"verifyServer": 0,
|
|
"verifyClient": 0,
|
|
"username": "unknown",
|
|
"passwd": "unknown",
|
|
"willQos": 0,
|
|
"willRetain": 0,
|
|
"willTopic": "",
|
|
"willPayload": ""
|
|
}
|
|
}
|
|
],
|
|
"quickfaas": {
|
|
"genericFuncs": [],
|
|
"uploadFuncs": [
|
|
{
|
|
"qos": 1,
|
|
"funcName": "sendData",
|
|
"script": "# Enter your python code.\nimport json, os\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom quickfaas.global_dict import get as get_params\nfrom quickfaas.global_dict import _set_global_args\n\ndef reboot(reason=\"Rebooting for config file update\"):\n #basic = Basic()\n logger.info(\"!\" * 10 + \"REBOOTING DEVICE\" + \"!\"*10)\n logger.info(reason)\n r = os.popen(\"kill -s SIGHUP `cat /var/run/python/supervisord.pid`\").read()\n logger.info(f\"REBOOT : {r}\")\n\ndef checkFileExist(filename):\n path = \"/var/user/files\"\n if not os.path.exists(path):\n logger.info(\"no folder making files folder in var/user\")\n os.makedirs(path)\n with open(path + \"/\" + filename, \"a\") as f:\n json.dump({}, f)\n if not os.path.exists(path + \"/\" + filename):\n logger.info(\"no creds file making creds file\")\n with open(path + \"/\" + filename, \"a\") as f:\n json.dump({}, f)\n\ndef convertDStoJSON(ds):\n j = dict()\n for x in ds:\n j[x[\"key\"]] = x[\"value\"]\n return j\n\ndef convertJSONtoDS(j):\n d = []\n for key in j.keys():\n d.append({\"key\": key, \"value\": j[key]})\n return d\n\ndef checkCredentialConfig():\n logger.debug(\"CHECKING CONFIG\")\n cfgpath = \"/var/user/cfg/device_supervisor/device_supervisor.cfg\"\n credspath = \"/var/user/files/creds.json\"\n cfg = dict()\n with open(cfgpath, \"r\") as f:\n cfg = json.load(f)\n clouds = cfg.get(\"clouds\")\n logger.debug(clouds)\n #if not configured then try to configure from stored values\n if clouds[0][\"args\"][\"clientId\"] == \"unknown\" or clouds[0][\"args\"][\"username\"] == \"unknown\" or not clouds[0][\"args\"][\"passwd\"] or clouds[0][\"args\"][\"passwd\"] == \"unknown\":\n checkFileExist(\"creds.json\")\n with open(credspath, \"r\") as c:\n creds = json.load(c)\n if creds:\n logger.debug(\"updating config with stored data\")\n clouds[0][\"args\"][\"clientId\"] = creds[\"clientId\"]\n clouds[0][\"args\"][\"username\"] = creds[\"userName\"]\n clouds[0][\"args\"][\"passwd\"] = creds[\"password\"]\n cfg[\"clouds\"] = clouds\n cfg = checkParameterConfig(cfg)\n with open(cfgpath, \"w\", encoding='utf-8') as n:\n json.dump(cfg, n, indent=1, ensure_ascii=False)\n reboot()\n else:\n #assuming clouds is filled out, if data is different then assume someone typed in something new and store it, if creds is empty fill with clouds' data\n checkFileExist(\"creds.json\")\n with open(credspath, \"r\") as c:\n logger.debug(\"updating stored file with new data\")\n cfg = checkParameterConfig(cfg)\n with open(cfgpath, \"w\", encoding='utf-8') as n:\n json.dump(cfg, n, indent=1, ensure_ascii=False)\n creds = json.load(c)\n if creds:\n if creds[\"clientId\"] != clouds[0][\"args\"][\"clientId\"]:\n creds[\"clientId\"] = clouds[0][\"args\"][\"clientId\"]\n if creds[\"userName\"] != clouds[0][\"args\"][\"username\"]:\n creds[\"userName\"] = clouds[0][\"args\"][\"username\"]\n if creds[\"password\"] != clouds[0][\"args\"][\"passwd\"]:\n creds[\"password\"] = clouds[0][\"args\"][\"passwd\"]\n else:\n creds[\"clientId\"] = clouds[0][\"args\"][\"clientId\"]\n creds[\"userName\"] = clouds[0][\"args\"][\"username\"]\n creds[\"password\"] = clouds[0][\"args\"][\"passwd\"]\n with open(credspath, \"w\") as cw:\n json.dump(creds,cw)\n\ndef checkParameterConfig(cfg):\n logger.debug(\"Checking Parameters!!!!\")\n paramspath = \"/var/user/files/params.json\"\n cfgparams = convertDStoJSON(cfg.get(\"labels\"))\n #check stored values \n checkFileExist(\"params.json\")\n with open(paramspath, \"r\") as f:\n logger.debug(\"Opened param storage file\")\n params = json.load(f)\n if params:\n if cfgparams != params:\n #go through each param\n #if not \"unknown\" and cfg and params aren't the same take from cfg likely updated manually\n #if key in cfg but not in params copy to params\n logger.debug(\"equalizing params between cfg and stored\")\n for key in cfgparams.keys():\n try:\n if cfgparams[key] != params[key] and cfgparams[key] != \"unknown\":\n params[key] = cfgparams[key]\n except:\n params[key] = cfgparams[key]\n cfg[\"labels\"] = convertJSONtoDS(params)\n _set_global_args(convertJSONtoDS(params))\n with open(paramspath, \"w\") as p:\n json.dump(params, p)\n else:\n with open(paramspath, \"w\") as p:\n logger.debug(\"initializing param file with params in memory\")\n json.dump(convertDStoJSON(get_params()), p)\n cfg[\"labels\"] = get_params()\n \n return cfg\n\ndef sendData(message):\n #logger.debug(message)\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(e)\n payload = {\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\": {}}\n run_tanks = {}\n\n for measure in message[\"measures\"]:\n try:\n logger.debug(measure)\n if abs(payload[\"ts\"]/1000 - measure[\"timestamp\"]) > 3600:\n reboot(reason=\"Poll timestamp and actual timestamp out of sync. Actual: {} Poll: {}\".format(payload[\"ts\"]/1000,measure[\"timestamp\"]))\n if measure[\"name\"] in [\"oil_run_tank\",\"water_run_tank\"]:\n run_tanks[measure[\"name\"]] = measure[\"value\"]\n if \"_level\" in measure[\"name\"]:\n run_tanks[measure[\"name\"]] = measure[\"value\"]\n payload[\"values\"][measure[\"name\"]] = measure[\"value\"] \n except Exception as e:\n logger.error(e)\n #payload[\"values\"][\"oil_run_tank_level\"] = run_tanks[\"oil_0\" + str(run_tanks[\"oil_run_tank\"]) + \"_level\"]\n payload[\"values\"][\"water_run_tank_level\"] = run_tanks[\"water_0\" + str(run_tanks[\"water_run_tank\"]) + \"_level\"]\n publish(__topic__, json.dumps(payload), __qos__)\n publish(\"v1/devices/me/attributes\", json.dumps({\"latestReportTime\": (round(dt.timestamp(dt.now())/600)*600)*1000}), __qos__)\n\n",
|
|
"name": "sendData",
|
|
"trigger": "measure_event",
|
|
"topic": "v1/devices/me/telemetry",
|
|
"cloudName": "default",
|
|
"groups": [
|
|
"default"
|
|
],
|
|
"msgType": 0
|
|
},
|
|
{
|
|
"qos": 1,
|
|
"funcName": "sendAlarm",
|
|
"script": "# Enter your python code.\nimport json, time\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\n\n\ndef sendAlarm(message):\n logger.info(message)\n payload = {}\n payload[\"ts\"] = time.time()*1000\n payload[\"values\"] = {message[\"measureName\"]: message[\"value\"]}\n publish(__topic__, json.dumps(payload), __qos__)",
|
|
"name": "sendAlarms",
|
|
"trigger": "warning_event",
|
|
"topic": "v1/devices/me/telemetry",
|
|
"msgType": 0,
|
|
"cloudName": "default",
|
|
"alarms": [
|
|
"default"
|
|
]
|
|
}
|
|
],
|
|
"downloadFuncs": [
|
|
{
|
|
"name": "receiveCommands",
|
|
"topic": "v1/devices/me/rpc/+",
|
|
"qos": 1,
|
|
"funcName": "receiveCommand",
|
|
"payload_type": "Plaintext",
|
|
"script": "import json, time\nfrom quickfaas.measure import recall, write\nfrom quickfaas.remotebus import publish\nfrom common.Logger import logger\n\ndef sync():\n #get new values and send\n payload = {}\n topic = \"v1/devices/me/telemetry\"\n try:\n data = recall()#json.loads(recall().decode(\"utf-8\"))\n except Exception as e:\n logger.error(e)\n logger.debug(data)\n for controller in data:\n for measure in controller[\"measures\"]:\n #publish measure\n payload[measure[\"name\"]] = measure[\"value\"]\n logger.debug(\"Sending on topic: {}\".format(topic))\n logger.debug(\"Sending value: {}\".format(payload))\n publish(topic, json.dumps(payload), 1)\ndef writeplctag(value):\n #value in the form {\"measurement\": <measurement_name>, \"value\": <value to write>}\n try:\n #value = json.loads(value.replace(\"'\",'\"'))\n logger.debug(value)\n #payload format: [{\"name\": \"advvfdipp\", \"measures\": [{\"name\": \"manualfrequencysetpoint\", \"value\": 49}]}]\n message = [{\"name\": \"hrswd\", \"measures\":[{\"name\":value[\"measurement\"], \"value\": value[\"value\"]}]}]\n resp = write(message) \n logger.debug(\"RETURN FROM WRITE: {}\".format(resp))\n return True\n except Exception as e:\n logger.debug(e)\n return False\n \ndef receiveCommand(topic, payload):\n try:\n logger.debug(topic)\n logger.debug(json.loads(payload))\n p = json.loads(payload)\n command = p[\"method\"]\n commands = {\n \"sync\": sync,\n \"writeplctag\": writeplctag,\n } \n if command == \"setPLCTag\":\n try:\n result = commands[\"writeplctag\"](p[\"params\"])\n logger.debug(result)\n except Exception as e:\n logger.error(e)\n #logger.debug(command)\n ack(topic.split(\"/\")[-1])\n time.sleep(5)\n sync()\n except Exception as e:\n logger.debug(e)\n \n\ndef ack(msgid):\n #logger.debug(msgid)\n #logger.debug(mac)\n #logger.debug(name)\n #logger.debug(value)\n publish(\"v1/devices/me/rpc/response/\" + str(msgid), json.dumps({\"msg\": {\"time\": time.time()}, \"metadata\": \"\", \"msgType\": \"\"}), 1)\n\n",
|
|
"msgType": 0,
|
|
"cloudName": "default",
|
|
"trigger": "command_event"
|
|
}
|
|
]
|
|
},
|
|
"labels": [
|
|
{
|
|
"key": "SN",
|
|
"value": "GF5022228018968"
|
|
},
|
|
{
|
|
"key": "MAC",
|
|
"value": "00:18:05:22:9c:e8"
|
|
}
|
|
],
|
|
"modbusSlave": {
|
|
"enable": 0,
|
|
"protocol": "Modbus-TCP",
|
|
"port": 502,
|
|
"slaveAddr": 1,
|
|
"int16Ord": "ab",
|
|
"int32Ord": "abcd",
|
|
"float32Ord": "abcd",
|
|
"maxConnection": 5,
|
|
"mapping_table": []
|
|
},
|
|
"modbusRTUSlave": {
|
|
"enable": 0,
|
|
"protocol": "Modbus-RTU",
|
|
"coms": "rs485",
|
|
"slaveAddr": 1,
|
|
"int16Ord": "ab",
|
|
"int32Ord": "abcd",
|
|
"float32Ord": "abcd",
|
|
"mapping_table": []
|
|
},
|
|
"iec104Server": {
|
|
"enable": 0,
|
|
"cotSize": 2,
|
|
"port": 2404,
|
|
"serverList": [
|
|
{
|
|
"asduAddr": 1
|
|
}
|
|
],
|
|
"kValue": 12,
|
|
"wValue": 8,
|
|
"t0": 30,
|
|
"t1": 15,
|
|
"t2": 10,
|
|
"t3": 20,
|
|
"maximumLink": 5,
|
|
"timeSet": 1,
|
|
"byteOrder": "abcd",
|
|
"mapping_table": []
|
|
},
|
|
"iec104Client": {
|
|
"enable": 0,
|
|
"connectType": 2,
|
|
"serverAddr": "ipower.inhandcloud.cn",
|
|
"serverPort": 2404,
|
|
"communicationCode": "",
|
|
"protocol": 1,
|
|
"asduAddr": 1,
|
|
"tls": 0,
|
|
"mapping_table": {
|
|
"YX": [],
|
|
"YC": [],
|
|
"YK": []
|
|
}
|
|
},
|
|
"opcuaServer": {
|
|
"enable": 0,
|
|
"port": 4840,
|
|
"maximumLink": 5,
|
|
"securityMode": 0,
|
|
"identifierType": "String",
|
|
"certificate": "None",
|
|
"privateKey": "None",
|
|
"mapping_table": []
|
|
},
|
|
"southMetadata": {},
|
|
"bindMetadata": {
|
|
"version": "",
|
|
"timestamp": ""
|
|
},
|
|
"bindConfig": {
|
|
"enable": 0,
|
|
"bind": {
|
|
"modelId": "",
|
|
"modelName": "",
|
|
"srcId": "",
|
|
"srcName": "",
|
|
"devId": "",
|
|
"devName": ""
|
|
},
|
|
"varGroups": [],
|
|
"variables": [],
|
|
"alerts": []
|
|
},
|
|
"version": "2.4.0"
|
|
} |