diff --git a/.DS_Store b/.DS_Store index 851789f..ee251c9 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Pub_Sub/.DS_Store b/Pub_Sub/.DS_Store index c832e4b..cc8a32d 100644 Binary files a/Pub_Sub/.DS_Store and b/Pub_Sub/.DS_Store differ diff --git a/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.csv b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.csv new file mode 100644 index 0000000..b4ebf6e --- /dev/null +++ b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.csv @@ -0,0 +1,16 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DataType,Address,Decimal,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit,bitMap,msecSample +suction,hrbooster,default,periodic,FLOAT,AIn_SuctionPressure.Val,2,,ro,,,none,,,,,,,,,, +discharge,hrbooster,default,periodic,FLOAT,AIn_DischargePressure.Val,2,,ro,,,none,,,,,,,,,, +flowrate,hrbooster,default,periodic,FLOAT,Flow_Rate_MBS,2,,ro,,,none,,,,,,,,,, +today_total,hrbooster,default,periodic,FLOAT,Today_Totalizer.Total,2,,ro,,,none,,,,,,,,,, +month_total,hrbooster,default,periodic,FLOAT,Month_Totalizer.Total,2,,ro,,,none,,,,,,,,,, +output_current,hrbooster,default,periodic,FLOAT,VFD_OutCurrent,2,,ro,,,none,,,,,,,,,, +speed_feedback,hrbooster,default,periodic,FLOAT,VFD_SpeedFdbk,2,,ro,,,none,,,,,,,,,, +running_status,hrbooster,default,periodic,BIT,VFD_753:I.DriveStatus_Running,,,ro,,,none,,,,,,,,,0, +suction_alm,hrbooster,default,periodic,BIT,alarm_SuctionPressure,,,ro,,,none,,,,,,,,,0, +discharge_alm,hrbooster,default,periodic,BIT,alarm_DischargePressure,,,ro,,,none,,,,,,,,,0, +vfd_alm,hrbooster,default,periodic,BIT,alarm_VFD,,,ro,,,none,,,,,,,,,0, +dc_alm,hrbooster,default,periodic,BIT,DC_Alarm,,,ro,,,none,,,,,,,,,0, +ups_alm,hrbooster,default,periodic,BIT,UPS_Alarm,,,ro,,,none,,,,,,,,,0, +ac_alm,hrbooster,default,periodic,BIT,AC_Power_Fail,,,ro,,,none,,,,,,,,,0, +plc_io_alm,hrbooster,default,periodic,BIT,ControllerFault_IO,,,ro,,,none,,,,,,,,,0, \ No newline at end of file diff --git a/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.numbers b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.numbers new file mode 100755 index 0000000..240d7cf Binary files /dev/null and b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster.numbers differ diff --git a/Pub_Sub/hrbooster/thingsboard/v1/hrbooster2.csv b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster2.csv new file mode 100644 index 0000000..fb02e69 --- /dev/null +++ b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster2.csv @@ -0,0 +1,16 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DataType,Address,Address,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit,bitMap,msecSample +suction,hrbooster,default,periodic,FLOAT,AIn_SuctionPressureVal,2,1,ro,,,none,,,,,,,,,, +discharge,hrbooster,default,periodic,FLOAT,AIn_DischargePressureVal,2,1,ro,,,none,,,,,,,,,, +flowrate,hrbooster,default,periodic,FLOAT,Flow_Rate_MBS,2,1,ro,,,none,,,,,,,,,, +today_total,hrbooster,default,periodic,FLOAT,Today_Totalizer,2,1,ro,,,none,,,,,,,,,, +month_total,hrbooster,default,periodic,FLOAT,Month_Totalizer,2,1,ro,,,none,,,,,,,,,, +output_current,hrbooster,default,periodic,FLOAT,VFD_OutCurrent,2,1,ro,,,none,,,,,,,,,, +speed_feedback,hrbooster,default,periodic,FLOAT,VFD_SpeedFdbk,2,1,ro,,,none,,,,,,,,,, +running_status,hrbooster,default,periodic,BIT,VFD_753IDriveStatus_Running,2,1,ro,,,none,,,,,,,,,, +suction_alm,hrbooster,default,periodic,BIT,alarm_SuctionPressure,2,1,ro,,,none,,,,,,,,,, +discharge_alm,hrbooster,default,periodic,BIT,alarm_DischargePressure,2,1,ro,,,none,,,,,,,,,, +vfd_alm,hrbooster,default,periodic,BIT,alarm_VFD,2,1,ro,,,none,,,,,,,,,, +dc_alm,hrbooster,default,periodic,BIT,DC_Alarm,2,1,ro,,,none,,,,,,,,,, +ups_alm,hrbooster,default,periodic,BIT,UPS_Alarm,2,1,ro,,,none,,,,,,,,,, +ac_alm,hrbooster,default,periodic,BIT,AC_Power_Fail,2,1,ro,,,none,,,,,,,,,, +plc_io_alm,hrbooster,default,periodic,BIT,ControllerFault_IO,2,1,ro,,,none,,,,,,,,,, \ No newline at end of file diff --git a/Pub_Sub/hrbooster/thingsboard/v1/hrboosterAlarms.csv b/Pub_Sub/hrbooster/thingsboard/v1/hrboosterAlarms.csv new file mode 100644 index 0000000..3ac4678 --- /dev/null +++ b/Pub_Sub/hrbooster/thingsboard/v1/hrboosterAlarms.csv @@ -0,0 +1,8 @@ +AlarmName,ControllerName,MeasuringPointName,AlarmLevel,Condition1,Operand1,CombineMethod,Condition2,Operand2,AlarmContent +suction_alm,hrbooster,suction_alm,5,eq,1.0,none,eq,,Suction Pressure Alarm +discharge_alm,hrbooster,discharge_alm,5,eq,1.0,none,eq,,Discharge Pressure Alarm +vfd_alm,hrbooster,vfd_alm,5,eq,1.0,none,eq,,VFD has Alarmed +dc_alm,hrbooster,dc_alm,5,eq,1.0,none,eq,,DC Power Failure +ups_alm,hrbooster,ups_alm,5,eq,1.0,none,eq,,UPS Alarm +ac_alm,hrbooster,ac_alm,5,eq,1.0,none,eq,,AC Power Failure +plc_io_alm,hrbooster,plc_io_alm,5,eq,1.0,none,eq,,Controller IO Failure \ No newline at end of file diff --git a/Pub_Sub/hrbooster/thingsboard/v1/hrbooster_tb_v1.cfg b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster_tb_v1.cfg new file mode 100644 index 0000000..a33114b --- /dev/null +++ b/Pub_Sub/hrbooster/thingsboard/v1/hrbooster_tb_v1.cfg @@ -0,0 +1,602 @@ +{ + "controllers": [ + { + "protocol": "EtherNet/IP", + "name": "hrbooster", + "args": {}, + "samplePeriod": 10, + "expired": 10000, + "endpoint": "192.168.1.10:44818" + } + ], + "measures": [ + { + "name": "suction", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "AIn_SuctionPressure.Val", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "discharge", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "AIn_DischargePressure.Val", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "flowrate", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Flow_Rate_MBS", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "today_total", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Today_Totalizer.Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "month_total", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Month_Totalizer.Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "output_current", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "VFD_OutCurrent", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "speed_feedback", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "VFD_SpeedFdbk", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "running_status", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "VFD_753:I.DriveStatus_Running", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "suction_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "alarm_SuctionPressure", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "discharge_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "alarm_DischargePressure", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "vfd_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "alarm_VFD", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "dc_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "DC_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "ups_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "UPS_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "ac_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "AC_Power_Fail", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "plc_io_alm", + "ctrlName": "hrbooster", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "ControllerFault_IO", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + } + ], + "alarmLables": [ + "default" + ], + "alarms": [ + { + "name": "suction_alm", + "ctrlName": "hrbooster", + "measureName": "suction_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Suction Pressure Alarm" + }, + { + "name": "discharge_alm", + "ctrlName": "hrbooster", + "measureName": "discharge_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Discharge Pressure Alarm" + }, + { + "name": "vfd_alm", + "ctrlName": "hrbooster", + "measureName": "vfd_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "VFD has Alarmed" + }, + { + "name": "dc_alm", + "ctrlName": "hrbooster", + "measureName": "dc_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "DC Power Failure" + }, + { + "name": "ups_alm", + "ctrlName": "hrbooster", + "measureName": "ups_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "UPS Alarm" + }, + { + "name": "ac_alm", + "ctrlName": "hrbooster", + "measureName": "ac_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "AC Power Failure" + }, + { + "name": "plc_io_alm", + "ctrlName": "hrbooster", + "measureName": "plc_io_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Controller IO Failure" + } + ], + "groups": [ + { + "name": "default", + "uploadInterval": 10 + } + ], + "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": 100, + "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": "", + "authType": 1 + } + } + ], + "quickfaas": { + "genericFuncs": [], + "uploadFuncs": [ + { + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "qos": 1, + "groups": [ + "default" + ], + "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():\n #basic = Basic()\n logger.info(\"!\" * 10 + \"REBOOTING DEVICE\" + \"!\"*10)\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.info(\"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.info(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.info(\"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.info(\"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.info(\"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.info(\"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.info(\"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.info(\"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 for measure in message[\"measures\"]:\n try:\n logger.debug(measure)\n payload[\"values\"][measure[\"name\"]] = measure[\"value\"] \n except Exception as e:\n logger.error(e)\n \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", + "msgType": 0, + "cloudName": "default" + } + ], + "downloadFuncs": [] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022230019659" + }, + { + "key": "MAC", + "value": "00:18:05:22:e8:9d" + } + ], + "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" +} \ No newline at end of file diff --git a/Pub_Sub/hrtankbattery/thingsboard/hrbattery_8_7.csv b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_8_7.csv new file mode 100644 index 0000000..b8673e3 --- /dev/null +++ b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_8_7.csv @@ -0,0 +1,154 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DataType,Address,Decimal,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit,bitMap,msecSample +plc_io_fault_alm,hrtankbattery,default,periodic,BIT,IO_Fault_Alarm,,,ro,,,none,,,,,,,,,0, +plc_fault,hrtankbattery,default,periodic,BIT,PLC_FAULT,,,ro,,,none,,,,,,,,,0, +analog_01_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_01,,,ro,,,none,,,,,,,,,0, +analog_02_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_02,,,ro,,,none,,,,,,,,,0, +analog_03_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_03,,,ro,,,none,,,,,,,,,0, +analog_04_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_04,,,ro,,,none,,,,,,,,,0, +analog_05_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_05,,,ro,,,none,,,,,,,,,0, +analog_06_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_06,,,ro,,,none,,,,,,,,,0, +ac_power_alm,hrtankbattery,default,periodic,BIT,Alm_AC_Pwr.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, +ups_alm,hrtankbattery,default,periodic,BIT,Alm_UPS.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, +dc_power_alm,hrtankbattery,default,periodic,BIT,DC_Power_OK.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, +three_phase_pwr_alm,hrtankbattery,default,periodic,BIT,Three_Phase_Power_Alarm.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, +water_run_tank,hrtankbattery,default,periodic,DINT,WT_Selector,,,ro,,,none,,,,,,,,,, +water_01_level,hrtankbattery,default,periodic,FLOAT,WT_1.Val,2,,ro,,,none,,,,,,,,,, +water_01_hihi_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_01_hi_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_01_tx_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_01_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_1.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_01_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_1.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_01_max_height,hrtankbattery,default,periodic,FLOAT,WT_1.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_02_level,hrtankbattery,default,periodic,FLOAT,WT_2.Val,2,,ro,,,none,,,,,,,,,, +water_02_hihi_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_02_hi_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_02_tx_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_02_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_2.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_02_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_2.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_02_max_height,hrtankbattery,default,periodic,FLOAT,WT_2.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_03_level,hrtankbattery,default,periodic,FLOAT,WT_3.Val,2,,ro,,,none,,,,,,,,,, +water_03_hihi_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_03_hi_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_03_tx_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_03_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_3.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_03_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_3.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_03_max_height,hrtankbattery,default,periodic,FLOAT,WT_3.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_04_level,hrtankbattery,default,periodic,FLOAT,WT_4.Val,2,,ro,,,none,,,,,,,,,, +water_04_hihi_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_04_hi_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_04_tx_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_04_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_4.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_04_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_4.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_04_max_height,hrtankbattery,default,periodic,FLOAT,WT_4.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_05_level,hrtankbattery,default,periodic,FLOAT,WT_5.Val,2,,ro,,,none,,,,,,,,,, +water_05_hihi_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_05_hi_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_05_tx_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_05_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_5.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_05_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_5.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_05_max_height,hrtankbattery,default,periodic,FLOAT,WT_5.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_06_level,hrtankbattery,default,periodic,FLOAT,WT_6.Val,2,,ro,,,none,,,,,,,,,, +water_06_hihi_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_06_hi_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_06_tx_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_06_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_6.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_06_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_6.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_06_max_height,hrtankbattery,default,periodic,FLOAT,WT_6.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_07_level,hrtankbattery,default,periodic,FLOAT,WT_7.Val,2,,ro,,,none,,,,,,,,,, +water_07_hihi_alm,hrtankbattery,default,periodic,BIT,WT_7.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_07_hi_alm,hrtankbattery,default,periodic,BIT,WT_7.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_07_tx_alm,hrtankbattery,default,periodic,BIT,WT_7.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_07_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_7.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_07_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_7.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_07_max_height,hrtankbattery,default,periodic,FLOAT,WT_7.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +water_08_level,hrtankbattery,default,periodic,FLOAT,WT_8.Val,2,,ro,,,none,,,,,,,,,, +water_08_hihi_alm,hrtankbattery,default,periodic,BIT,WT_8.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +water_08_hi_alm,hrtankbattery,default,periodic,BIT,WT_8.Alm_Hi,,,ro,,,none,,,,,,,,,0, +water_08_tx_alm,hrtankbattery,default,periodic,BIT,WT_8.Alm_Fail,,,ro,,,none,,,,,,,,,0, +water_08_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_8.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +water_08_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_8.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +water_08_max_height,hrtankbattery,default,periodic,FLOAT,WT_8.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_run_tank,hrtankbattery,default,periodic,DINT,OT_Selector,,,ro,,,none,,,,,,,,,, +oil_01_level,hrtankbattery,default,periodic,FLOAT,OT_1.Val,2,,ro,,,none,,,,,,,,,, +oil_01_hihi_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_01_hi_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_01_tx_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_01_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_1.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_01_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_1.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_01_max_height,hrtankbattery,default,periodic,FLOAT,OT_1.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_02_level,hrtankbattery,default,periodic,FLOAT,OT_2.Val,2,,ro,,,none,,,,,,,,,, +oil_02_hihi_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_02_hi_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_02_tx_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_02_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_2.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_02_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_2.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_02_max_height,hrtankbattery,default,periodic,FLOAT,OT_2.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_03_level,hrtankbattery,default,periodic,FLOAT,OT_3.Val,2,,ro,,,none,,,,,,,,,, +oil_03_hihi_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_03_hi_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_03_tx_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_03_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_3.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_03_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_3.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_03_max_height,hrtankbattery,default,periodic,FLOAT,OT_3.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_04_level,hrtankbattery,default,periodic,FLOAT,OT_4.Val,2,,ro,,,none,,,,,,,,,, +oil_04_hihi_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_04_hi_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_04_tx_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_04_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_4.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_04_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_4.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_04_max_height,hrtankbattery,default,periodic,FLOAT,OT_4.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_05_level,hrtankbattery,default,periodic,FLOAT,OT_5.Val,2,,ro,,,none,,,,,,,,,, +oil_05_hihi_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_05_hi_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_05_tx_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_05_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_5.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_05_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_5.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_05_max_height,hrtankbattery,default,periodic,FLOAT,OT_5.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_06_level,hrtankbattery,default,periodic,FLOAT,OT_6.Val,2,,ro,,,none,,,,,,,,,, +oil_06_hihi_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_06_hi_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_06_tx_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_06_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_6.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_06_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_6.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_06_max_height,hrtankbattery,default,periodic,FLOAT,OT_6.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +oil_07_level,hrtankbattery,default,periodic,FLOAT,OT_7.Val,2,,ro,,,none,,,,,,,,,, +oil_07_hihi_alm,hrtankbattery,default,periodic,BIT,OT_7.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +oil_07_hi_alm,hrtankbattery,default,periodic,BIT,OT_7.Alm_Hi,,,ro,,,none,,,,,,,,,0, +oil_07_tx_alm,hrtankbattery,default,periodic,BIT,OT_7.Alm_Fail,,,ro,,,none,,,,,,,,,0, +oil_07_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_7.PSet_HiHiLim,2,,ro,,,none,,,,,,,,,, +oil_07_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_7.PSet_HiLim,2,,ro,,,none,,,,,,,,,, +oil_07_max_height,hrtankbattery,default,periodic,FLOAT,OT_7.Cfg_PVEUMax,2,,ro,,,none,,,,,,,,,, +transfer_01_sts,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_01.Sts_Running,,,ro,,,none,,,,,,,,,0, +transfer_01_alm,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_01.Alm_FailToStart,,,ro,,,none,,,,,,,,,0, +transfer_01_discharge,hrtankbattery,default,periodic,FLOAT,XferPump_01_Dis_PSI.Val,2,,ro,,,none,,,,,,,,,, +transfer_01_discharge_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_01_Dis_PSI.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +transfer_01_discharge_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_01_Dis_PSI.Alm_LoLo,,,ro,,,none,,,,,,,,,0, +transfer_01_flow_rate,hrtankbattery,default,periodic,FLOAT,XferPump_01_FlowRate.Val,2,,ro,,,none,,,,,,,,,, +transfer_01_flow_rate_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_01_FlowRate.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +transfer_01_flow_rate_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_01_FlowRate.Alm_LoLo,,,ro,,,none,,,,,,,,,0, +transfer_02_sts,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_02.Sts_Running,,,ro,,,none,,,,,,,,,0, +transfer_02_alm,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_02.Alm_FailToStart,,,ro,,,none,,,,,,,,,0, +transfer_02_discharge,hrtankbattery,default,periodic,FLOAT,XferPump_02_Dis_PSI.Val,2,,ro,,,none,,,,,,,,,, +transfer_02_discharge_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_02_Dis_PSI.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +transfer_02_discharge_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_02_Dis_PSI.Alm_LoLo,,,ro,,,none,,,,,,,,,0, +transfer_02_flow_rate,hrtankbattery,default,periodic,FLOAT,XferPump_02_FlowRate.Val,2,,ro,,,none,,,,,,,,,, +transfer_02_flow_rate_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_02_FlowRate.Alm_HiHi,,,ro,,,none,,,,,,,,,0, +transfer_02_flow_rate_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_02_FlowRate.Alm_LoLo,,,ro,,,none,,,,,,,,,0, +lact_01_permissive,hrtankbattery,default,periodic,BIT,LACT_01_Permissive,,,ro,,,none,,,,,,,,,0, +lact_01_sts,hrtankbattery,default,periodic,BIT,LACT_01_Run_Status,,,ro,,,none,,,,,,,,,0, +lact_01_alm,hrtankbattery,default,periodic,BIT,LACT_01_Failure,,,ro,,,none,,,,,,,,,0, +lact_01_oil_shutdown,hrtankbattery,default,periodic,BIT,LACT_01_Bad_Oil_Shutdown,,,ro,,,none,,,,,,,,,0, +lact_01_flow_rate,hrtankbattery,default,periodic,FLOAT,Lact_01_Realtime_Flow_Rate,2,,ro,,,none,,,,,,,,,, +lact_01_bs_w,hrtankbattery,default,periodic,FLOAT,Lact_01_BS_and_W_Reading,2,,ro,,,none,,,,,,,,,, +lact_01_daily_volume,hrtankbattery,default,periodic,FLOAT,Lact_01_Current_Daily_Ind_Volume_Total,2,,ro,,,none,,,,,,,,,, +lact_01_prev_day,hrtankbattery,default,periodic,FLOAT,Lact_01_History.Previous_Day_1,2,,ro,,,none,,,,,,,,,, +lact_02_permissive,hrtankbattery,default,periodic,BIT,LACT_02_Permissive,,,ro,,,none,,,,,,,,,0, +lact_02_sts,hrtankbattery,default,periodic,BIT,LACT_02_Run_Status,,,ro,,,none,,,,,,,,,0, +lact_02_alm,hrtankbattery,default,periodic,BIT,LACT_02_Failure,,,ro,,,none,,,,,,,,,0, +lact_02_oil_shutdown,hrtankbattery,default,periodic,BIT,LACT_02_Bad_Oil_Shutdown,,,ro,,,none,,,,,,,,,0, +lact_02_flow_rate,hrtankbattery,default,periodic,FLOAT,Lact_02_Realtime_Flow_Rate,2,,ro,,,none,,,,,,,,,, +lact_02_bs_w,hrtankbattery,default,periodic,FLOAT,Lact_02_BS_and_W_Reading,2,,ro,,,none,,,,,,,,,, +lact_02_daily_volume,hrtankbattery,default,periodic,FLOAT,Lact_02_Current_Daily_Ind_Volume_Total,2,,ro,,,none,,,,,,,,,, +lact_02_prev_day,hrtankbattery,default,periodic,FLOAT,Lact_02_History.Previous_Day_1,2,,ro,,,none,,,,,,,,,, +containment_high_alm,hrtankbattery,default,periodic,BIT,Contain_Hi_Level.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, +h2s_alm,hrtankbattery,default,periodic,BIT,H2s_Alarm.Alm_TgtDisagree,,,ro,,,none,,,,,,,,,0, \ No newline at end of file diff --git a/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm.csv b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm.csv new file mode 100644 index 0000000..c5080f1 --- /dev/null +++ b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm.csv @@ -0,0 +1,64 @@ +AlarmName,ControllerName,MeasuringPointName,AlarmLevel,Condition1,Operand1,CombineMethod,Condition2,Operand2,AlarmContent +plc_io_fault_alm,hrtankbattery,plc_io_fault_alm,5,eq,1.0,none,eq,,PLC IO has faulted +plc_fault,hrtankbattery,plc_fault,5,eq,1.0,none,eq,,PLC has faulted +analog_01_alm,hrtankbattery,analog_01_alm,5,eq,1.0,none,eq,,Analog Module 1 has faulted +analog_02_alm,hrtankbattery,analog_02_alm,5,eq,1.0,none,eq,,Analog Module 2 has faulted +analog_03_alm,hrtankbattery,analog_03_alm,5,eq,1.0,none,eq,,Analog Module 3 has faulted +analog_04_alm,hrtankbattery,analog_04_alm,5,eq,1.0,none,eq,,Analog Module 4 has faulted +analog_05_alm,hrtankbattery,analog_05_alm,5,eq,1.0,none,eq,,Analog Module 5 has faulted +analog_06_alm,hrtankbattery,analog_06_alm,5,eq,1.0,none,eq,,Analog Module 6 has faulted +ac_power_alm,hrtankbattery,ac_power_alm,5,eq,1.0,none,eq,,AC Power Fault +ups_alm,hrtankbattery,ups_alm,5,eq,1.0,none,eq,,UPS Fault +dc_power_alm,hrtankbattery,dc_power_alm,5,eq,1.0,none,eq,,DC Power Fault +three_phase_pwr_alm,hrtankbattery,three_phase_pwr_alm,5,eq,1.0,none,eq,,Three Phase Power Fault +water_01_hihi_alm,hrtankbattery,water_01_hihi_alm,5,eq,1.0,none,eq,,Water Tank 1 crossed HiHi threshold +water_01_hi_alm,hrtankbattery,water_01_hi_alm,5,eq,1.0,none,eq,,Water Tank 1 crossed Hi threshold +water_01_tx_alm,hrtankbattery,water_01_tx_alm,5,eq,1.0,none,eq,,Water Tank 1 transmission error +water_02_hihi_alm,hrtankbattery,water_02_hihi_alm,5,eq,1.0,none,eq,,Water Tank 2 crossed HiHi threshold +water_02_hi_alm,hrtankbattery,water_02_hi_alm,5,eq,1.0,none,eq,,Water Tank 2 crossed Hi threshold +water_02_tx_alm,hrtankbattery,water_02_tx_alm,5,eq,1.0,none,eq,,Water Tank 2 transmission error +water_03_hihi_alm,hrtankbattery,water_03_hihi_alm,5,eq,1.0,none,eq,,Water Tank 3 crossed HiHi threshold +water_03_hi_alm,hrtankbattery,water_03_hi_alm,5,eq,1.0,none,eq,,Water Tank 3 crossed Hi threshold +water_03_tx_alm,hrtankbattery,water_03_tx_alm,5,eq,1.0,none,eq,,Water Tank 3 transmission error +water_04_hihi_alm,hrtankbattery,water_04_hihi_alm,5,eq,1.0,none,eq,,Water Tank 4 crossed HiHi threshold +water_04_hi_alm,hrtankbattery,water_04_hi_alm,5,eq,1.0,none,eq,,Water Tank 4 crossed Hi threshold +water_04_tx_alm,hrtankbattery,water_04_tx_alm,5,eq,1.0,none,eq,,Water Tank 4 transmission error +water_05_hihi_alm,hrtankbattery,water_05_hihi_alm,5,eq,1.0,none,eq,,Water Tank 5 crossed HiHi threshold +water_05_hi_alm,hrtankbattery,water_05_hi_alm,5,eq,1.0,none,eq,,Water Tank 5 crossed Hi threshold +water_05_tx_alm,hrtankbattery,water_05_tx_alm,5,eq,1.0,none,eq,,Water Tank 5 transmission error +water_06_hihi_alm,hrtankbattery,water_06_hihi_alm,5,eq,1.0,none,eq,,Water Tank 6 crossed HiHi threshold +water_06_hi_alm,hrtankbattery,water_06_hi_alm,5,eq,1.0,none,eq,,Water Tank 6 crossed Hi threshold +water_06_tx_alm,hrtankbattery,water_06_tx_alm,5,eq,1.0,none,eq,,Water Tank 6 transmission error +oil_01_hihi_alm,hrtankbattery,oil_01_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 1 crossed HiHi threshold +oil_01_hi_alm,hrtankbattery,oil_01_hi_alm,5,eq,1.0,none,eq,,Oil Tank 1 crossed Hi threshold +oil_01_tx_alm,hrtankbattery,oil_01_tx_alm,5,eq,1.0,none,eq,,Oil Tank 1 transmission error +oil_02_hihi_alm,hrtankbattery,oil_02_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 2 crossed HiHi threshold +oil_02_hi_alm,hrtankbattery,oil_02_hi_alm,5,eq,1.0,none,eq,,Oil Tank 2 crossed Hi threshold +oil_02_tx_alm,hrtankbattery,oil_02_tx_alm,5,eq,1.0,none,eq,,Oil Tank 2 transmission error +oil_03_hihi_alm,hrtankbattery,oil_03_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 3 crossed HiHi threshold +oil_03_hi_alm,hrtankbattery,oil_03_hi_alm,5,eq,1.0,none,eq,,Oil Tank 3 crossed Hi threshold +oil_03_tx_alm,hrtankbattery,oil_03_tx_alm,5,eq,1.0,none,eq,,Oil Tank 3 transmission error +oil_04_hihi_alm,hrtankbattery,oil_04_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 4 crossed HiHi threshold +oil_04_hi_alm,hrtankbattery,oil_04_hi_alm,5,eq,1.0,none,eq,,Oil Tank 4 crossed Hi threshold +oil_04_tx_alm,hrtankbattery,oil_04_tx_alm,5,eq,1.0,none,eq,,Oil Tank 4 transmission error +oil_05_hihi_alm,hrtankbattery,oil_05_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 5 crossed HiHi threshold +oil_05_hi_alm,hrtankbattery,oil_05_hi_alm,5,eq,1.0,none,eq,,Oil Tank 5 crossed Hi threshold +oil_05_tx_alm,hrtankbattery,oil_05_tx_alm,5,eq,1.0,none,eq,,Oil Tank 5 transmission error +oil_06_hihi_alm,hrtankbattery,oil_06_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 6 crossed HiHi threshold +oil_06_hi_alm,hrtankbattery,oil_06_hi_alm,5,eq,1.0,none,eq,,Oil Tank 6 crossed Hi threshold +oil_06_tx_alm,hrtankbattery,oil_06_tx_alm,5,eq,1.0,none,eq,,Oil Tank 6 transmission error +transfer_01_alm,hrtankbattery,transfer_01_alm,5,eq,1.0,none,eq,,Transfer 1 Faulted +transfer_01_discharge_hihi_alm,hrtankbattery,transfer_01_discharge_hihi_alm,5,eq,1.0,none,eq,,Transfer 1 Discharge crossed HiHi threshold +transfer_01_discharge_lolo_alm,hrtankbattery,transfer_01_discharge_lolo_alm,5,eq,1.0,none,eq,,Transfer 1 Discharge crossed LoLo threshold +transfer_01_flow_rate_hihi_alm,hrtankbattery,transfer_01_flow_rate_hihi_alm,5,eq,1.0,none,eq,,Transfer 1 Flow Rate crossed HiHi threshold +transfer_01_flow_rate_lolo_alm,hrtankbattery,transfer_01_flow_rate_lolo_alm,5,eq,1.0,none,eq,,Transfer 1 Flow Rate crossed LoLo threshold +transfer_02_alm,hrtankbattery,transfer_02_alm,5,eq,1.0,none,eq,,Transfer 2 Faulted +transfer_02_discharge_hihi_alm,hrtankbattery,transfer_02_discharge_hihi_alm,5,eq,1.0,none,eq,,Transfer 2 Discharge crossed HiHi threshold +transfer_02_discharge_lolo_alm,hrtankbattery,transfer_02_discharge_lolo_alm,5,eq,1.0,none,eq,,Transfer 2 Discharge crossed LoLo threshold +transfer_02_flow_rate_hihi_alm,hrtankbattery,transfer_02_flow_rate_hihi_alm,5,eq,1.0,none,eq,,Transfer 2 Flow Rate crossed HiHi threshold +transfer_02_flow_rate_lolo_alm,hrtankbattery,transfer_02_flow_rate_lolo_alm,5,eq,1.0,none,eq,,Transfer 2 Flow Rate crossed LoLo threshold +lact_01_alm,hrtankbattery,lact_01_alm,5,eq,1.0,none,eq,,LACT 1 Meter Failure +lact_01_oil_shutdown,hrtankbattery,lact_01_oil_shutdown,5,eq,1.0,none,eq,,LACT 1 Bad Oil +lact_02_alm,hrtankbattery,lact_02_alm,5,eq,1.0,none,eq,,LACT 2 Meter Failure +lact_02_oil_shutdown,hrtankbattery,lact_02_oil_shutdown,5,eq,1.0,none,eq,,LACT 2 Bad Oil +containment_high_alm,hrtankbattery,containment_high_alm,5,eq,1.0,none,eq,,Containment Level has crossed the Hi threshold. \ No newline at end of file diff --git a/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm_8_7.csv b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm_8_7.csv new file mode 100644 index 0000000..e3a5781 --- /dev/null +++ b/Pub_Sub/hrtankbattery/thingsboard/hrbattery_alarm_8_7.csv @@ -0,0 +1,74 @@ +AlarmName,ControllerName,MeasuringPointName,AlarmLevel,Condition1,Operand1,CombineMethod,Condition2,Operand2,AlarmContent,AlarmTag +plc_io_fault_alm,hrtankbattery,plc_io_fault_alm,5,eq,1.0,none,eq,,PLC IO has faulted,default +plc_fault,hrtankbattery,plc_fault,5,eq,1.0,none,eq,,PLC has faulted,default +analog_01_alm,hrtankbattery,analog_01_alm,5,eq,1.0,none,eq,,Analog Module 1 has faulted,default +analog_02_alm,hrtankbattery,analog_02_alm,5,eq,1.0,none,eq,,Analog Module 2 has faulted,default +analog_03_alm,hrtankbattery,analog_03_alm,5,eq,1.0,none,eq,,Analog Module 3 has faulted,default +analog_04_alm,hrtankbattery,analog_04_alm,5,eq,1.0,none,eq,,Analog Module 4 has faulted,default +analog_05_alm,hrtankbattery,analog_05_alm,5,eq,1.0,none,eq,,Analog Module 5 has faulted,default +analog_06_alm,hrtankbattery,analog_06_alm,5,eq,1.0,none,eq,,Analog Module 6 has faulted,default +ac_power_alm,hrtankbattery,ac_power_alm,5,eq,1.0,none,eq,,AC Power Fault,default +ups_alm,hrtankbattery,ups_alm,5,eq,1.0,none,eq,,UPS Fault,default +dc_power_alm,hrtankbattery,dc_power_alm,5,eq,1.0,none,eq,,DC Power Fault,default +three_phase_pwr_alm,hrtankbattery,three_phase_pwr_alm,5,eq,1.0,none,eq,,Three Phase Power Fault,default +water_01_hihi_alm,hrtankbattery,water_01_hihi_alm,5,eq,1.0,none,eq,,Water Tank 1 crossed HiHi threshold,default +water_01_hi_alm,hrtankbattery,water_01_hi_alm,5,eq,1.0,none,eq,,Water Tank 1 crossed Hi threshold,default +water_01_tx_alm,hrtankbattery,water_01_tx_alm,5,eq,1.0,none,eq,,Water Tank 1 transmission error,default +water_02_hihi_alm,hrtankbattery,water_02_hihi_alm,5,eq,1.0,none,eq,,Water Tank 2 crossed HiHi threshold,default +water_02_hi_alm,hrtankbattery,water_02_hi_alm,5,eq,1.0,none,eq,,Water Tank 2 crossed Hi threshold,default +water_02_tx_alm,hrtankbattery,water_02_tx_alm,5,eq,1.0,none,eq,,Water Tank 2 transmission error,default +water_03_hihi_alm,hrtankbattery,water_03_hihi_alm,5,eq,1.0,none,eq,,Water Tank 3 crossed HiHi threshold,default +water_03_hi_alm,hrtankbattery,water_03_hi_alm,5,eq,1.0,none,eq,,Water Tank 3 crossed Hi threshold,default +water_03_tx_alm,hrtankbattery,water_03_tx_alm,5,eq,1.0,none,eq,,Water Tank 3 transmission error,default +water_04_hihi_alm,hrtankbattery,water_04_hihi_alm,5,eq,1.0,none,eq,,Water Tank 4 crossed HiHi threshold,default +water_04_hi_alm,hrtankbattery,water_04_hi_alm,5,eq,1.0,none,eq,,Water Tank 4 crossed Hi threshold,default +water_04_tx_alm,hrtankbattery,water_04_tx_alm,5,eq,1.0,none,eq,,Water Tank 4 transmission error,default +water_05_hihi_alm,hrtankbattery,water_05_hihi_alm,5,eq,1.0,none,eq,,Water Tank 5 crossed HiHi threshold,default +water_05_hi_alm,hrtankbattery,water_05_hi_alm,5,eq,1.0,none,eq,,Water Tank 5 crossed Hi threshold,default +water_05_tx_alm,hrtankbattery,water_05_tx_alm,5,eq,1.0,none,eq,,Water Tank 5 transmission error,default +water_06_hihi_alm,hrtankbattery,water_06_hihi_alm,5,eq,1.0,none,eq,,Water Tank 6 crossed HiHi threshold,default +water_06_hi_alm,hrtankbattery,water_06_hi_alm,5,eq,1.0,none,eq,,Water Tank 6 crossed Hi threshold,default +water_06_tx_alm,hrtankbattery,water_06_tx_alm,5,eq,1.0,none,eq,,Water Tank 6 transmission error,default +water_07_hihi_alm,hrtankbattery,water_07_hihi_alm,5,eq,1.0,none,eq,,Water Tank 7 crossed HiHi threshold,default +water_07_hi_alm,hrtankbattery,water_07_hi_alm,5,eq,1.0,none,eq,,Water Tank 7 crossed Hi threshold,default +water_07_tx_alm,hrtankbattery,water_07_tx_alm,5,eq,1.0,none,eq,,Water Tank 7 transmission error,default +water_08_hihi_alm,hrtankbattery,water_08_hihi_alm,5,eq,1.0,none,eq,,Water Tank 8 crossed HiHi threshold,default +water_08_hi_alm,hrtankbattery,water_08_hi_alm,5,eq,1.0,none,eq,,Water Tank 8 crossed Hi threshold,default +water_08_tx_alm,hrtankbattery,water_08_tx_alm,5,eq,1.0,none,eq,,Water Tank 8 transmission error,default +oil_01_hihi_alm,hrtankbattery,oil_01_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 1 crossed HiHi threshold,default +oil_01_hi_alm,hrtankbattery,oil_01_hi_alm,5,eq,1.0,none,eq,,Oil Tank 1 crossed Hi threshold,default +oil_01_tx_alm,hrtankbattery,oil_01_tx_alm,5,eq,1.0,none,eq,,Oil Tank 1 transmission error,default +oil_02_hihi_alm,hrtankbattery,oil_02_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 2 crossed HiHi threshold,default +oil_02_hi_alm,hrtankbattery,oil_02_hi_alm,5,eq,1.0,none,eq,,Oil Tank 2 crossed Hi threshold,default +oil_02_tx_alm,hrtankbattery,oil_02_tx_alm,5,eq,1.0,none,eq,,Oil Tank 2 transmission error,default +oil_03_hihi_alm,hrtankbattery,oil_03_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 3 crossed HiHi threshold,default +oil_03_hi_alm,hrtankbattery,oil_03_hi_alm,5,eq,1.0,none,eq,,Oil Tank 3 crossed Hi threshold,default +oil_03_tx_alm,hrtankbattery,oil_03_tx_alm,5,eq,1.0,none,eq,,Oil Tank 3 transmission error,default +oil_04_hihi_alm,hrtankbattery,oil_04_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 4 crossed HiHi threshold,default +oil_04_hi_alm,hrtankbattery,oil_04_hi_alm,5,eq,1.0,none,eq,,Oil Tank 4 crossed Hi threshold,default +oil_04_tx_alm,hrtankbattery,oil_04_tx_alm,5,eq,1.0,none,eq,,Oil Tank 4 transmission error,default +oil_05_hihi_alm,hrtankbattery,oil_05_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 5 crossed HiHi threshold,default +oil_05_hi_alm,hrtankbattery,oil_05_hi_alm,5,eq,1.0,none,eq,,Oil Tank 5 crossed Hi threshold,default +oil_05_tx_alm,hrtankbattery,oil_05_tx_alm,5,eq,1.0,none,eq,,Oil Tank 5 transmission error,default +oil_06_hihi_alm,hrtankbattery,oil_06_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 6 crossed HiHi threshold,default +oil_06_hi_alm,hrtankbattery,oil_06_hi_alm,5,eq,1.0,none,eq,,Oil Tank 6 crossed Hi threshold,default +oil_06_tx_alm,hrtankbattery,oil_06_tx_alm,5,eq,1.0,none,eq,,Oil Tank 6 transmission error,default +oil_07_hihi_alm,hrtankbattery,oil_07_hihi_alm,5,eq,1.0,none,eq,,Oil Tank 7 crossed HiHi threshold,default +oil_07_hi_alm,hrtankbattery,oil_07_hi_alm,5,eq,1.0,none,eq,,Oil Tank 7 crossed Hi threshold,default +oil_07_tx_alm,hrtankbattery,oil_07_tx_alm,5,eq,1.0,none,eq,,Oil Tank 7 transmission error,default +transfer_01_alm,hrtankbattery,transfer_01_alm,5,eq,1.0,none,eq,,Transfer 1 Faulted,default +transfer_01_discharge_hihi_alm,hrtankbattery,transfer_01_discharge_hihi_alm,5,eq,1.0,none,eq,,Transfer 1 Discharge crossed HiHi threshold,default +transfer_01_discharge_lolo_alm,hrtankbattery,transfer_01_discharge_lolo_alm,5,eq,1.0,none,eq,,Transfer 1 Discharge crossed LoLo threshold,default +transfer_01_flow_rate_hihi_alm,hrtankbattery,transfer_01_flow_rate_hihi_alm,5,eq,1.0,none,eq,,Transfer 1 Flow Rate crossed HiHi threshold,default +transfer_01_flow_rate_lolo_alm,hrtankbattery,transfer_01_flow_rate_lolo_alm,5,eq,1.0,none,eq,,Transfer 1 Flow Rate crossed LoLo threshold,default +transfer_02_alm,hrtankbattery,transfer_02_alm,5,eq,1.0,none,eq,,Transfer 2 Faulted,default +transfer_02_discharge_hihi_alm,hrtankbattery,transfer_02_discharge_hihi_alm,5,eq,1.0,none,eq,,Transfer 2 Discharge crossed HiHi threshold,default +transfer_02_discharge_lolo_alm,hrtankbattery,transfer_02_discharge_lolo_alm,5,eq,1.0,none,eq,,Transfer 2 Discharge crossed LoLo threshold,default +transfer_02_flow_rate_hihi_alm,hrtankbattery,transfer_02_flow_rate_hihi_alm,5,eq,1.0,none,eq,,Transfer 2 Flow Rate crossed HiHi threshold,default +transfer_02_flow_rate_lolo_alm,hrtankbattery,transfer_02_flow_rate_lolo_alm,5,eq,1.0,none,eq,,Transfer 2 Flow Rate crossed LoLo threshold,default +lact_01_alm,hrtankbattery,lact_01_alm,5,eq,1.0,none,eq,,LACT 1 Meter Failure,default +lact_01_oil_shutdown,hrtankbattery,lact_01_oil_shutdown,5,eq,1.0,none,eq,,LACT 1 Bad Oil,default +lact_02_alm,hrtankbattery,lact_02_alm,5,eq,1.0,none,eq,,LACT 2 Meter Failure,default +lact_02_oil_shutdown,hrtankbattery,lact_02_oil_shutdown,5,eq,1.0,none,eq,,LACT 2 Bad Oil,default +containment_high_alm,hrtankbattery,containment_high_alm,5,eq,1.0,none,eq,,Containment Level has crossed the Hi threshold.,default +h2s_alm,hrtankbattery,h2s_alm,5,eq,1.0,none,eq,,H2S Detected,default \ No newline at end of file diff --git a/Pub_Sub/hrtankbattery/thingsboard/hrtankbattery.csv b/Pub_Sub/hrtankbattery/thingsboard/hrtankbattery.csv new file mode 100644 index 0000000..b21c131 --- /dev/null +++ b/Pub_Sub/hrtankbattery/thingsboard/hrtankbattery.csv @@ -0,0 +1,132 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DataType,Address,Decimal,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit +plc_io_fault_alm,hrtankbattery,default,periodic,BIT,IO_Fault_Alarm,2,1,ro,,,none,,,,,,,, +plc_fault,hrtankbattery,default,periodic,BIT,PLC_FAULT,2,1,ro,,,none,,,,,,,, +analog_01_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_01,2,1,ro,,,none,,,,,,,, +analog_02_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_02,2,1,ro,,,none,,,,,,,, +analog_03_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_03,2,1,ro,,,none,,,,,,,, +analog_04_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_04,2,1,ro,,,none,,,,,,,, +analog_05_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_05,2,1,ro,,,none,,,,,,,, +analog_06_alm,hrtankbattery,default,periodic,BIT,Fault_Analog_Mod_06,2,1,ro,,,none,,,,,,,, +ac_power_alm,hrtankbattery,default,periodic,BIT,Alm_AC_Pwr.Alm_TgtDisagree,2,1,ro,,,none,,,,,,,, +ups_alm,hrtankbattery,default,periodic,BIT,Alm_UPS.Alm_TgtDisagree,2,1,ro,,,none,,,,,,,, +dc_power_alm,hrtankbattery,default,periodic,BIT,DC_Power_OK.Alm_TgtDisagree,2,1,ro,,,none,,,,,,,, +three_phase_pwr_alm,hrtankbattery,default,periodic,BIT,Three_Phase_Power_Alarm.Alm_TgtDisagree,2,1,ro,,,none,,,,,,,, +water_run_tank,hrtankbattery,default,periodic,DINT,WT_Selector,2,1,ro,,,none,,,,,,,, +water_01_level,hrtankbattery,default,periodic,FLOAT,WT_1.Val,2,1,ro,,,none,,,,,,,, +water_01_hihi_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_01_hi_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_01_tx_alm,hrtankbattery,default,periodic,BIT,WT_1.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_01_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_1.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_01_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_1.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_01_max_height,hrtankbattery,default,periodic,FLOAT,WT_1.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +water_02_level,hrtankbattery,default,periodic,FLOAT,WT_2.Val,2,1,ro,,,none,,,,,,,, +water_02_hihi_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_02_hi_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_02_tx_alm,hrtankbattery,default,periodic,BIT,WT_2.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_02_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_2.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_02_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_2.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_02_max_height,hrtankbattery,default,periodic,FLOAT,WT_2.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +water_03_level,hrtankbattery,default,periodic,FLOAT,WT_3.Val,2,1,ro,,,none,,,,,,,, +water_03_hihi_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_03_hi_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_03_tx_alm,hrtankbattery,default,periodic,BIT,WT_3.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_03_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_3.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_03_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_3.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_03_max_height,hrtankbattery,default,periodic,FLOAT,WT_3.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +water_04_level,hrtankbattery,default,periodic,FLOAT,WT_4.Val,2,1,ro,,,none,,,,,,,, +water_04_hihi_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_04_hi_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_04_tx_alm,hrtankbattery,default,periodic,BIT,WT_4.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_04_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_4.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_04_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_4.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_04_max_height,hrtankbattery,default,periodic,FLOAT,WT_4.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +water_05_level,hrtankbattery,default,periodic,FLOAT,WT_5.Val,2,1,ro,,,none,,,,,,,, +water_05_hihi_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_05_hi_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_05_tx_alm,hrtankbattery,default,periodic,BIT,WT_5.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_05_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_5.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_05_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_5.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_05_max_height,hrtankbattery,default,periodic,FLOAT,WT_5.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +water_06_level,hrtankbattery,default,periodic,FLOAT,WT_6.Val,2,1,ro,,,none,,,,,,,, +water_06_hihi_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_HiHi,2,1,ro,,,none,,,,,,,, +water_06_hi_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_Hi,2,1,ro,,,none,,,,,,,, +water_06_tx_alm,hrtankbattery,default,periodic,BIT,WT_6.Alm_Fail,2,1,ro,,,none,,,,,,,, +water_06_hihi_spt,hrtankbattery,default,periodic,FLOAT,WT_6.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +water_06_hi_spt,hrtankbattery,default,periodic,FLOAT,WT_6.PSet_HiLim,2,1,ro,,,none,,,,,,,, +water_06_max_height,hrtankbattery,default,periodic,FLOAT,WT_6.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_run_tank,hrtankbattery,default,periodic,DINT,OT_Selector,2,1,ro,,,none,,,,,,,, +oil_01_level,hrtankbattery,default,periodic,FLOAT,OT_1.Val,2,1,ro,,,none,,,,,,,, +oil_01_hihi_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_01_hi_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_01_tx_alm,hrtankbattery,default,periodic,BIT,OT_1.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_01_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_1.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_01_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_1.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_01_max_height,hrtankbattery,default,periodic,FLOAT,OT_1.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_02_level,hrtankbattery,default,periodic,FLOAT,OT_2.Val,2,1,ro,,,none,,,,,,,, +oil_02_hihi_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_02_hi_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_02_tx_alm,hrtankbattery,default,periodic,BIT,OT_2.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_02_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_2.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_02_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_2.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_02_max_height,hrtankbattery,default,periodic,FLOAT,OT_2.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_03_level,hrtankbattery,default,periodic,FLOAT,OT_3.Val,2,1,ro,,,none,,,,,,,, +oil_03_hihi_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_03_hi_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_03_tx_alm,hrtankbattery,default,periodic,BIT,OT_3.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_03_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_3.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_03_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_3.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_03_max_height,hrtankbattery,default,periodic,FLOAT,OT_3.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_04_level,hrtankbattery,default,periodic,FLOAT,OT_4.Val,2,1,ro,,,none,,,,,,,, +oil_04_hihi_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_04_hi_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_04_tx_alm,hrtankbattery,default,periodic,BIT,OT_4.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_04_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_4.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_04_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_4.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_04_max_height,hrtankbattery,default,periodic,FLOAT,OT_4.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_05_level,hrtankbattery,default,periodic,FLOAT,OT_5.Val,2,1,ro,,,none,,,,,,,, +oil_05_hihi_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_05_hi_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_05_tx_alm,hrtankbattery,default,periodic,BIT,OT_5.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_05_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_5.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_05_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_5.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_05_max_height,hrtankbattery,default,periodic,FLOAT,OT_5.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +oil_06_level,hrtankbattery,default,periodic,FLOAT,OT_6.Val,2,1,ro,,,none,,,,,,,, +oil_06_hihi_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_HiHi,2,1,ro,,,none,,,,,,,, +oil_06_hi_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_Hi,2,1,ro,,,none,,,,,,,, +oil_06_tx_alm,hrtankbattery,default,periodic,BIT,OT_6.Alm_Fail,2,1,ro,,,none,,,,,,,, +oil_06_hihi_spt,hrtankbattery,default,periodic,FLOAT,OT_6.PSet_HiHiLim,2,1,ro,,,none,,,,,,,, +oil_06_hi_spt,hrtankbattery,default,periodic,FLOAT,OT_6.PSet_HiLim,2,1,ro,,,none,,,,,,,, +oil_06_max_height,hrtankbattery,default,periodic,FLOAT,OT_6.Cfg_PVEUMax,2,1,ro,,,none,,,,,,,, +transfer_01_sts,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_01.Sts_Running,2,1,ro,,,none,,,,,,,, +transfer_01_alm,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_01.Alm_FailToStart,2,1,ro,,,none,,,,,,,, +transfer_01_discharge,hrtankbattery,default,periodic,FLOAT,XferPump_01_Dis_PSI.Val,2,1,ro,,,none,,,,,,,, +transfer_01_discharge_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_01_Dis_PSI.Alm_HiHi,2,1,ro,,,none,,,,,,,, +transfer_01_discharge_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_01_Dis_PSI.Alm_LoLo,2,1,ro,,,none,,,,,,,, +transfer_01_flow_rate,hrtankbattery,default,periodic,FLOAT,XferPump_01_FlowRate.Val,2,1,ro,,,none,,,,,,,, +transfer_01_flow_rate_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_01_FlowRate.Alm_HiHi,2,1,ro,,,none,,,,,,,, +transfer_01_flow_rate_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_01_FlowRate.Alm_LoLo,2,1,ro,,,none,,,,,,,, +transfer_02_sts,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_02.Sts_Running,2,1,ro,,,none,,,,,,,, +transfer_02_alm,hrtankbattery,default,periodic,BIT,XFER_PUMP_Motor_02.Alm_FailToStart,2,1,ro,,,none,,,,,,,, +transfer_02_discharge,hrtankbattery,default,periodic,FLOAT,XferPump_02_Dis_PSI.Val,2,1,ro,,,none,,,,,,,, +transfer_02_discharge_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_02_Dis_PSI.Alm_HiHi,2,1,ro,,,none,,,,,,,, +transfer_02_discharge_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_02_Dis_PSI.Alm_LoLo,2,1,ro,,,none,,,,,,,, +transfer_02_flow_rate,hrtankbattery,default,periodic,FLOAT,XferPump_02_FlowRate.Val,2,1,ro,,,none,,,,,,,, +transfer_02_flow_rate_hihi_alm,hrtankbattery,default,periodic,BIT,XferPump_02_FlowRate.Alm_HiHi,2,1,ro,,,none,,,,,,,, +transfer_02_flow_rate_lolo_alm,hrtankbattery,default,periodic,BIT,XferPump_02_FlowRate.Alm_LoLo,2,1,ro,,,none,,,,,,,, +lact_01_permissive,hrtankbattery,default,periodic,BIT,LACT_01_Permissive,2,1,ro,,,none,,,,,,,, +lact_01_sts,hrtankbattery,default,periodic,BIT,LACT_01_Run_Status,2,1,ro,,,none,,,,,,,, +lact_01_alm,hrtankbattery,default,periodic,BIT,LACT_01_Failure,2,1,ro,,,none,,,,,,,, +lact_01_oil_shutdown,hrtankbattery,default,periodic,BIT,LACT_01_Bad_Oil_Shutdown,2,1,ro,,,none,,,,,,,, +lact_01_flow_rate,hrtankbattery,default,periodic,FLOAT,Lact_01_Realtime_Flow_Rate,2,1,ro,,,none,,,,,,,, +lact_01_bs_w,hrtankbattery,default,periodic,FLOAT,Lact_01_BS_and_W_Reading,2,1,ro,,,none,,,,,,,, +lact_01_daily_volume,hrtankbattery,default,periodic,FLOAT,Lact_01_Current_Daily_Ind_Volume_Total,2,1,ro,,,none,,,,,,,, +lact_01_prev_day,hrtankbattery,default,periodic,FLOAT,Lact_01_History.Previous_Day_1,2,1,ro,,,none,,,,,,,, +lact_02_permissive,hrtankbattery,default,periodic,BIT,LACT_02_Permissive,2,1,ro,,,none,,,,,,,, +lact_02_sts,hrtankbattery,default,periodic,BIT,LACT_02_Run_Status,2,1,ro,,,none,,,,,,,, +lact_02_alm,hrtankbattery,default,periodic,BIT,LACT_02_Failure,2,1,ro,,,none,,,,,,,, +lact_02_oil_shutdown,hrtankbattery,default,periodic,BIT,LACT_02_Bad_Oil_Shutdown,2,1,ro,,,none,,,,,,,, +lact_02_flow_rate,hrtankbattery,default,periodic,FLOAT,Lact_02_Realtime_Flow_Rate,2,1,ro,,,none,,,,,,,, +lact_02_bs_w,hrtankbattery,default,periodic,FLOAT,Lact_02_BS_and_W_Reading,2,1,ro,,,none,,,,,,,, +lact_02_daily_volume,hrtankbattery,default,periodic,FLOAT,Lact_02_Current_Daily_Ind_Volume_Total,2,1,ro,,,none,,,,,,,, +lact_02_prev_day,hrtankbattery,default,periodic,FLOAT,Lact_02_History.Previous_Day_1,2,1,ro,,,none,,,,,,,, +containment_high_alm,hrtankbattery,default,periodic,BIT,Contain_Hi_Level.Alm_TgtDisagree,2,1,ro,,,none,,,,,,,, diff --git a/Pub_Sub/tankalarms/thingsboard/v1/tankalarmAlarms.csv b/Pub_Sub/tankalarms/thingsboard/v1/tankalarmAlarms.csv new file mode 100644 index 0000000..bda0d8b --- /dev/null +++ b/Pub_Sub/tankalarms/thingsboard/v1/tankalarmAlarms.csv @@ -0,0 +1,9 @@ +AlarmName,ControllerName,MeasuringPointName,AlarmLevel,Condition1,Operand1,CombineMethod,Condition2,Operand2,AlarmContent +water_hihi_alm,tankalarms,water_hihi_alm,5,eq,1.0,none,eq,,Water Tank HiHi +water_hi_alm,tankalarms,water_hi_alm,5,eq,1.0,none,eq,,Water Tank Hi +water_batt_lolo_alm,tankalarms,water_batt_lolo_alm,5,eq,1.0,none,eq,,Water Tank Battery LoLo +water_comm_fail_alm,tankalarms,water_comm_fail_alm,5,eq,1.0,none,eq,,Water Tank Comms Fail +oil_hihi_alm,tankalarms,oil_hihi_alm,5,eq,1.0,none,eq,,Oil Tank HiHi +oil_hi_alm,tankalarms,oil_hi_alm,5,eq,1.0,none,eq,,Oil Tank Hi +oil_batt_lolo_alm,tankalarms,oil_batt_lolo_alm,5,eq,1.0,none,eq,,Oil Tank Battery LoLo +oil_comm_fail_alm,tankalarms,oil_comm_fail_alm,5,eq,1.0,none,eq,,Oil Tank Comms Fail \ No newline at end of file diff --git a/Pub_Sub/tankalarms/thingsboard/v1/tankalarms.csv b/Pub_Sub/tankalarms/thingsboard/v1/tankalarms.csv new file mode 100644 index 0000000..d518115 --- /dev/null +++ b/Pub_Sub/tankalarms/thingsboard/v1/tankalarms.csv @@ -0,0 +1,20 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DataType,Address,Decimal,Len,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit +water_level,tankalarms,default,periodic,FLOAT,WaterTxLevel,2,1,ro,,,none,,,,,,,, +water_batt_volts,tankalarms,default,periodic,FLOAT,WaterTxBatVolts,2,1,ro,,,none,,,,,,,, +water_rssi,tankalarms,default,periodic,FLOAT,WaterTxRSSI,2,1,ro,,,none,,,,,,,, +water_hihi_spt,tankalarms,default,periodic,FLOAT,WaterTx_HHSP,2,1,rw,,,none,,,,,,,, +water_hi_spt,tankalarms,default,periodic,FLOAT,WaterTx_HSp,2,1,rw,,,none,,,,,,,, +water_hihi_alm,tankalarms,default,periodic,BIT,WaterTx_HHAlrm,2,1,ro,,,none,,,,,,,, +water_hi_alm,tankalarms,default,periodic,BIT,WaterTx_HAlrm,2,1,ro,,,none,,,,,,,, +water_batt_lolo_alm,tankalarms,default,periodic,BIT,WaterTxBatVolts_LLAlrm,2,1,ro,,,none,,,,,,,, +water_comm_fail_alm,tankalarms,default,periodic,BIT,WaterTx_RF_CommFail,2,1,ro,,,none,,,,,,,, +oil_level,tankalarms,default,periodic,FLOAT,OilTxLevel,2,1,ro,,,none,,,,,,,, +oil_batt_volts,tankalarms,default,periodic,FLOAT,OilTxBatVolts,2,1,ro,,,none,,,,,,,, +oil_rssi,tankalarms,default,periodic,FLOAT,OilTxRSSI,2,1,ro,,,none,,,,,,,, +oil_hihi_spt,tankalarms,default,periodic,FLOAT,OilTx_HHSP,2,1,rw,,,none,,,,,,,, +oil_hi_spt,tankalarms,default,periodic,FLOAT,OilTx_HSp,2,1,rw,,,none,,,,,,,, +oil_hihi_alm,tankalarms,default,periodic,BIT,OilTx_HHAlrm,2,1,ro,,,none,,,,,,,, +oil_hi_alm,tankalarms,default,periodic,BIT,OilTx_HAlrm,2,1,ro,,,none,,,,,,,, +oil_batt_lolo_alm,tankalarms,default,periodic,BIT,OilTxBatVolts_LLAlrm,2,1,ro,,,none,,,,,,,, +oil_comm_fail_alm,tankalarms,default,periodic,BIT,OilTx_RF_CommFail,2,1,ro,,,none,,,,,,,, +alarmreset,tankalarms,default,periodic,BIT,Reset,2,1,rw,,,none,,,,,,,, \ No newline at end of file diff --git a/Pub_Sub/tankalarms/thingsboard/v1/tankalarms_tb_v1.cfg b/Pub_Sub/tankalarms/thingsboard/v1/tankalarms_tb_v1.cfg new file mode 100644 index 0000000..8eca50f --- /dev/null +++ b/Pub_Sub/tankalarms/thingsboard/v1/tankalarms_tb_v1.cfg @@ -0,0 +1,724 @@ +{ + "controllers": [ + { + "protocol": "EtherNet/IP", + "name": "tankalarms", + "args": {}, + "samplePeriod": 10, + "expired": 10000, + "endpoint": "192.168.1.12:44818" + } + ], + "measures": [ + { + "name": "water_level", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "WaterTxLevel", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_batt_volts", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "WaterTxBatVolts", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_rssi", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "WaterTxRSSI", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_hihi_spt", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "WaterTx_HHSP", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_hi_spt", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "WaterTx_HSp", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_hihi_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "WaterTx_HHAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_hi_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "WaterTx_HAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_batt_lolo_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "WaterTxBatVolts_LLAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "water_comm_fail_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "WaterTx_RF_CommFail", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_level", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "OilTxLevel", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_batt_volts", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "OilTxBatVolts", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_rssi", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "OilTxRSSI", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_hihi_spt", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "OilTx_HHSP", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_hi_spt", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "OilTx_HSp", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_hihi_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "OilTx_HHAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_hi_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "OilTx_HAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_batt_lolo_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "OilTxBatVolts_LLAlrm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "oil_comm_fail_alm", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "OilTx_RF_CommFail", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + }, + { + "name": "alarmreset", + "ctrlName": "tankalarms", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Reset", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "" + } + ], + "alarmLables": [ + "default" + ], + "alarms": [ + { + "name": "water_hihi_alm", + "ctrlName": "tankalarms", + "measureName": "water_hihi_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Water Tank HiHi" + }, + { + "name": "water_hi_alm", + "ctrlName": "tankalarms", + "measureName": "water_hi_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Water Tank Hi" + }, + { + "name": "water_batt_lolo_alm", + "ctrlName": "tankalarms", + "measureName": "water_batt_lolo_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Water Tank Battery LoLo" + }, + { + "name": "water_comm_fail_alm", + "ctrlName": "tankalarms", + "measureName": "water_comm_fail_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Water Tank Comms Fail" + }, + { + "name": "oil_hihi_alm", + "ctrlName": "tankalarms", + "measureName": "oil_hihi_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Oil Tank HiHi" + }, + { + "name": "oil_hi_alm", + "ctrlName": "tankalarms", + "measureName": "oil_hi_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Oil Tank Hi" + }, + { + "name": "oil_batt_lolo_alm", + "ctrlName": "tankalarms", + "measureName": "oil_batt_lolo_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Oil Tank Battery LoLo" + }, + { + "name": "oil_comm_fail_alm", + "ctrlName": "tankalarms", + "measureName": "oil_comm_fail_alm", + "alarmLevel": 5, + "cond1": { + "op": "eq", + "value": "1.0" + }, + "condOp": "none", + "cond2": { + "op": "eq", + "value": "" + }, + "content": "Oil Tank Comms Fail" + } + ], + "groups": [ + { + "name": "default", + "uploadInterval": 600 + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "DEBUG", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "parityChk": "n", + "stopbits": 1 + }, + { + "name": "rs485", + "baud": 19200, + "bits": 8, + "parityChk": "n", + "stopbits": 1 + } + ] + }, + "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", + "authType": 1 + } + } + ], + "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():\n #basic = Basic()\n logger.info(\"!\" * 10 + \"REBOOTING DEVICE\" + \"!\"*10)\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.info(\"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.info(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.info(\"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.info(\"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.info(\"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.info(\"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.info(\"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.info(\"initializing param file with params in memory\")\n json.dump(convertDStoJSON(get_params()), p)\n cfg[\"labels\"] = get_params()\n \n return cfg\n\n\n\n\ndef sendData(message):\n payload = {}\n payload[\"ts\"] = (round(dt.timestamp(dt.now())/600)*600)*1000\n payload[\"values\"] = {}\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(e)\n for measure in message[\"measures\"]:\n try:\n logger.debug(measure)\n payload[\"values\"][measure[\"name\"]] = measure[\"value\"]\n except Exception as e:\n logger.error(e)\n publish(__topic__, json.dumps(payload), __qos__)", + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "cloudName": "default", + "groups": [ + "default" + ], + "msgType": 0 + }, + { + "name": "sendAlarms", + "trigger": "warning_event", + "topic": "v1/devices/me/telemetry", + "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__)", + "alarms": [ + "water_hihi_alm", + "water_hi_alm", + "water_batt_lolo_alm", + "water_comm_fail_alm", + "oil_hihi_alm", + "oil_hi_alm", + "oil_batt_lolo_alm", + "oil_comm_fail_alm" + ], + "msgType": 0, + "cloudName": "default" + } + ], + "downloadFuncs": [ + { + "name": "Receive Command", + "topic": "v1/devices/me/rpc/request/+", + "qos": 1, + "funcName": "receiveCommand", + "payload_type": "JSON", + "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\": , \"value\": }\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\": \"tankalarms\", \"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\n", + "msgType": 0, + "cloudName": "default", + "trigger": "command_event" + } + ] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022137006251" + }, + { + "key": "MAC", + "value": "00:18:05:1a:e5:36" + } + ], + "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", + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": { + "version": "", + "timestamp": "" + }, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "version": "2.3.1" +} \ No newline at end of file diff --git a/getPLCData.ipynb b/getPLCData.ipynb new file mode 100644 index 0000000..9efd2bc --- /dev/null +++ b/getPLCData.ipynb @@ -0,0 +1,562 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from pycomm3 import LogixDriver" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "attributes = [\n", + " \"EnableIn\",\n", + " \"EnableOut\",\n", + " \"Inp_PV\",\n", + " \"Inp_PVSrcQ\",\n", + " \"Inp_PVBad\",\n", + " \"Inp_PVUncertain\",\n", + " \"Inp_Sim\",\n", + " \"Inp_HiHiGate\",\n", + " \"Inp_HiGate\",\n", + " \"Inp_LoGate\",\n", + " \"Inp_LoLoGate\",\n", + " \"Inp_FailGate\",\n", + " \"Inp_Reset\",\n", + " \"Cfg_NoSubstPV\",\n", + " \"Cfg_SetTrack\",\n", + " \"Cfg_HasChanObj\",\n", + " \"Cfg_UseChanSrcQ\",\n", + " \"Cfg_PCmdClear\",\n", + " \"Cfg_ProgDefault\",\n", + " \"Cfg_HasHiHiAlm\",\n", + " \"Cfg_HasHiAlm\",\n", + " \"Cfg_HasLoAlm\",\n", + " \"Cfg_HasLoLoAlm\",\n", + " \"Cfg_HasFailAlm\",\n", + " \"Cfg_HiHiResetReqd\",\n", + " \"Cfg_HiResetReqd\",\n", + " \"Cfg_LoResetReqd\",\n", + " \"Cfg_LoLoResetReqd\",\n", + " \"Cfg_FailResetReqd\",\n", + " \"Cfg_HiHiAckReqd\",\n", + " \"Cfg_HiAckReqd\",\n", + " \"Cfg_LoAckReqd\",\n", + " \"Cfg_LoLoAckReqd\",\n", + " \"Cfg_FailAckReqd\",\n", + " \"Cfg_HiHiSeverity\",\n", + " \"Cfg_HiSeverity\",\n", + " \"Cfg_LoSeverity\",\n", + " \"Cfg_LoLoSeverity\",\n", + " \"Cfg_FailSeverity\",\n", + " \"Cfg_InpRawMin\",\n", + " \"Cfg_InpRawMax\",\n", + " \"Cfg_PVEUMin\",\n", + " \"Cfg_PVEUMax\",\n", + " \"Cfg_FiltTC\",\n", + " \"Cfg_HiHiDB\",\n", + " \"Cfg_HiHiOnDly\",\n", + " \"Cfg_HiHiOffDly\",\n", + " \"Cfg_HiHiGateDly\",\n", + " \"Cfg_HiDB\",\n", + " \"Cfg_HiOnDly\",\n", + " \"Cfg_HiOffDly\",\n", + " \"Cfg_HiGateDly\",\n", + " \"Cfg_LoDB\",\n", + " \"Cfg_LoOnDly\",\n", + " \"Cfg_LoOffDly\",\n", + " \"Cfg_LoGateDly\",\n", + " \"Cfg_LoLoDB\",\n", + " \"Cfg_LoLoOnDly\",\n", + " \"Cfg_LoLoOffDly\",\n", + " \"Cfg_LoLoGateDly\",\n", + " \"Cfg_FailHiLim\",\n", + " \"Cfg_FailLoLim\",\n", + " \"Cfg_FailDB\",\n", + " \"Cfg_FailOnDly\",\n", + " \"Cfg_FailOffDly\",\n", + " \"Cfg_FailGateDly\",\n", + " \"PSet_Owner\",\n", + " \"PSet_HiHiLim\",\n", + " \"PSet_HiLim\",\n", + " \"PSet_LoLim\",\n", + " \"PSet_LoLoLim\",\n", + " \"MSet_SubstPV\",\n", + " \"OSet_HiHiLim\",\n", + " \"OSet_HiLim\",\n", + " \"OSet_LoLim\",\n", + " \"OSet_LoLoLim\",\n", + " \"Set_SimPV\",\n", + " \"PCmd_ClearCapt\",\n", + " \"PCmd_Acq\",\n", + " \"PCmd_Rel\",\n", + " \"PCmd_Lock\",\n", + " \"PCmd_Unlock\",\n", + " \"PCmd_Reset\",\n", + " \"PCmd_HiHiAck\",\n", + " \"PCmd_HiHiSuppress\",\n", + " \"PCmd_HiHiUnsuppress\",\n", + " \"PCmd_HiHiUnshelve\",\n", + " \"PCmd_HiAck\",\n", + " \"PCmd_HiSuppress\",\n", + " \"PCmd_HiUnsuppress\",\n", + " \"PCmd_HiUnshelve\",\n", + " \"PCmd_LoAck\",\n", + " \"PCmd_LoSuppress\",\n", + " \"PCmd_LoUnsuppress\",\n", + " \"PCmd_LoUnshelve\",\n", + " \"PCmd_LoLoAck\",\n", + " \"PCmd_LoLoSuppress\",\n", + " \"PCmd_LoLoUnsuppress\",\n", + " \"PCmd_LoLoUnshelve\",\n", + " \"PCmd_FailAck\",\n", + " \"PCmd_FailSuppress\",\n", + " \"PCmd_FailUnsuppress\",\n", + " \"PCmd_FailUnshelve\",\n", + " \"MCmd_SubstPV\",\n", + " \"MCmd_InpPV\",\n", + " \"OCmd_ClearCapt\",\n", + " \"MCmd_Acq\",\n", + " \"MCmd_Rel\",\n", + " \"OCmd_AcqLock\",\n", + " \"OCmd_Unlock\",\n", + " \"OCmd_Reset\",\n", + " \"OCmd_ResetAckAll\",\n", + " \"Val\",\n", + " \"Val_InpPV\",\n", + " \"Val_PVMinCapt\",\n", + " \"Val_PVMaxCapt\",\n", + " \"Val_PVEUMin\",\n", + " \"Val_PVEUMax\",\n", + " \"SrcQ_IO\",\n", + " \"SrcQ\",\n", + " \"Val_Fault\",\n", + " \"Val_Mode\",\n", + " \"Val_Owner\",\n", + " \"Val_Notify\",\n", + " \"Val_HiHiLim\",\n", + " \"Val_HiLim\",\n", + " \"Val_LoLim\",\n", + " \"Val_LoLoLim\",\n", + " \"Sts_SubstPV\",\n", + " \"Sts_InpPV\",\n", + " \"Sts_PVBad\",\n", + " \"Sts_PVUncertain\",\n", + " \"Sts_MaintByp\",\n", + " \"Sts_AlmInh\",\n", + " \"Sts_Err\",\n", + " \"Err_Raw\",\n", + " \"Err_EU\",\n", + " \"Err_Timer\",\n", + " \"Err_Filt\",\n", + " \"Err_DB\",\n", + " \"Err_Alarm\",\n", + " \"Sts_Maint\",\n", + " \"Sts_Prog\",\n", + " \"Sts_Oper\",\n", + " \"Sts_ProgOperLock\",\n", + " \"Sts_NoMode\",\n", + " \"Sts_MAcqRcvd\",\n", + " \"Sts_HiHiCmp\",\n", + " \"Sts_HiHiGate\",\n", + " \"Sts_HiHi\",\n", + " \"Alm_HiHi\",\n", + " \"Ack_HiHi\",\n", + " \"Sts_HiHiDisabled\",\n", + " \"Sts_HiHiSuppressed\",\n", + " \"Sts_HiHiShelved\",\n", + " \"Sts_HiCmp\",\n", + " \"Sts_HiGate\",\n", + " \"Sts_Hi\",\n", + " \"Alm_Hi\",\n", + " \"Ack_Hi\",\n", + " \"Sts_HiDisabled\",\n", + " \"Sts_HiSuppressed\",\n", + " \"Sts_HiShelved\",\n", + " \"Sts_LoCmp\",\n", + " \"Sts_LoGate\",\n", + " \"Sts_Lo\",\n", + " \"Alm_Lo\",\n", + " \"Ack_Lo\",\n", + " \"Sts_LoDisabled\",\n", + " \"Sts_LoSuppressed\",\n", + " \"Sts_LoShelved\",\n", + " \"Sts_LoLoCmp\",\n", + " \"Sts_LoLoGate\",\n", + " \"Sts_LoLo\",\n", + " \"Alm_LoLo\",\n", + " \"Ack_LoLo\",\n", + " \"Sts_LoLoDisabled\",\n", + " \"Sts_LoLoSuppressed\",\n", + " \"Sts_LoLoShelved\",\n", + " \"Sts_FailCmp\",\n", + " \"Sts_FailGate\",\n", + " \"Sts_Fail\",\n", + " \"Alm_Fail\",\n", + " \"Ack_Fail\",\n", + " \"Sts_FailDisabled\",\n", + " \"Sts_FailSuppressed\",\n", + " \"Sts_FailShelved\",\n", + " \"Rdy_SubstPV\",\n", + " \"Rdy_InpPV\",\n", + " \"Rdy_Reset\",\n", + " \"Rdy_ResetAckAll\",\n", + " \"Rdy_OSet\",\n", + " \"P_AIn\",\n", + " \"inp_ProcessRunning\",\n", + " \"LoLo\",\n", + " \"Lo\",\n", + " \"Hi\",\n", + " \"HiHi\",\n", + " \"Mode\",\n", + " \"Cfg_EU\",\n", + " \"Cfg_Tag\",\n", + " \"Cfg_Label\",\n", + " \"Cfg_Desc\",\n", + " \"Fail\",\n", + " \"Wrk_Notify\",\n", + " \"Inf_Tab\",\n", + " \"Wrk_Fault\",\n", + " \"Wrk_SrcQ\",\n", + " \"Wrk_SubstPV\",\n", + " \"Wrk_UnfiltPV\",\n", + " \"Wrk_Alpha\",\n", + " \"Wrk_ScanT\",\n", + " \"Wrk_ScanTime\",\n", + " \"Wrk_FiltPV\",\n", + " \"Wrk_ValidONS\",\n", + " \"Wrk_SelPVDINT\",\n", + " \"Wrk_SelPVInfNaN\",\n", + " \"Inf_Type\",\n", + " \"Wrk_Fail\",\n", + " \"Wrk_LoLo\",\n", + " \"Wrk_Lo\",\n", + " \"Wrk_Hi\",\n", + " \"Wrk_HiHi\",\n", + " \"FailGate\",\n", + " \"LoLoGate\",\n", + " \"LoGate\",\n", + " \"HiHiGate\",\n", + " \"HiGate\",\n", + " \"Wrk_InpInfNaN\",\n", + " \"Wrk_InpDINT\",\n", + " \"Inf_Lib\",\n", + " \"Wrk_InpFail\",\n", + " \"ONS_Supress\",\n", + " \"ONS_Unsupress\",\n", + " \"ONS_ProcessRunning\",\n", + " \"ONS_ProcessNotRunning\"\n", + " ]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "taglist = []\n", + "basetag = \"AIn_IntakePressure\"\n", + "for x in attributes:\n", + " taglist.append(basetag + \".\" + x)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "with LogixDriver('166.252.25.65') as plc:\n", + " r = plc.read(*taglist)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AIn_IntakePressure.EnableIn, True, BOOL, None\n", + "AIn_IntakePressure.EnableOut, True, BOOL, None\n", + "AIn_IntakePressure.Inp_PV, 6354.0, REAL, None\n", + "AIn_IntakePressure.Inp_PVSrcQ, 0, SINT, None\n", + "AIn_IntakePressure.Inp_PVBad, False, BOOL, None\n", + "AIn_IntakePressure.Inp_PVUncertain, False, BOOL, None\n", + "AIn_IntakePressure.Inp_Sim, False, BOOL, None\n", + "AIn_IntakePressure.Inp_HiHiGate, True, BOOL, None\n", + "AIn_IntakePressure.Inp_HiGate, True, BOOL, None\n", + "AIn_IntakePressure.Inp_LoGate, True, BOOL, None\n", + "AIn_IntakePressure.Inp_LoLoGate, True, BOOL, None\n", + "AIn_IntakePressure.Inp_FailGate, True, BOOL, None\n", + "AIn_IntakePressure.Inp_Reset, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_NoSubstPV, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_SetTrack, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasChanObj, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_UseChanSrcQ, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_PCmdClear, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_ProgDefault, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasHiHiAlm, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasHiAlm, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasLoAlm, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasLoLoAlm, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_HasFailAlm, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HiHiResetReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HiResetReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_LoResetReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_LoLoResetReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_FailResetReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HiHiAckReqd, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_HiAckReqd, True, BOOL, None\n", + "AIn_IntakePressure.Cfg_LoAckReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_LoLoAckReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_FailAckReqd, False, BOOL, None\n", + "AIn_IntakePressure.Cfg_HiHiSeverity, 750, INT, None\n", + "AIn_IntakePressure.Cfg_HiSeverity, 500, INT, None\n", + "AIn_IntakePressure.Cfg_LoSeverity, 500, INT, None\n", + "AIn_IntakePressure.Cfg_LoLoSeverity, 750, INT, None\n", + "AIn_IntakePressure.Cfg_FailSeverity, 1000, INT, None\n", + "AIn_IntakePressure.Cfg_InpRawMin, 4000.0, REAL, None\n", + "AIn_IntakePressure.Cfg_InpRawMax, 20000.0, REAL, None\n", + "AIn_IntakePressure.Cfg_PVEUMin, 0.0, REAL, None\n", + "AIn_IntakePressure.Cfg_PVEUMax, 30.0, REAL, None\n", + "AIn_IntakePressure.Cfg_FiltTC, 0.0, REAL, None\n", + "AIn_IntakePressure.Cfg_HiHiDB, 1.0, REAL, None\n", + "AIn_IntakePressure.Cfg_HiHiOnDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_HiHiOffDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_HiHiGateDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_HiDB, 1.0, REAL, None\n", + "AIn_IntakePressure.Cfg_HiOnDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_HiOffDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_HiGateDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoDB, 1.0, REAL, None\n", + "AIn_IntakePressure.Cfg_LoOnDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoOffDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoGateDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoLoDB, 1.0, REAL, None\n", + "AIn_IntakePressure.Cfg_LoLoOnDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoLoOffDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_LoLoGateDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_FailHiLim, 30.0, REAL, None\n", + "AIn_IntakePressure.Cfg_FailLoLim, 0.0, REAL, None\n", + "AIn_IntakePressure.Cfg_FailDB, 0.5, REAL, None\n", + "AIn_IntakePressure.Cfg_FailOnDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_FailOffDly, 0, DINT, None\n", + "AIn_IntakePressure.Cfg_FailGateDly, 0, DINT, None\n", + "AIn_IntakePressure.PSet_Owner, 0, DINT, None\n", + "AIn_IntakePressure.PSet_HiHiLim, 500.0, REAL, None\n", + "AIn_IntakePressure.PSet_HiLim, 30.0, REAL, None\n", + "AIn_IntakePressure.PSet_LoLim, 0.5, REAL, None\n", + "AIn_IntakePressure.PSet_LoLoLim, 0.0, REAL, None\n", + "AIn_IntakePressure.MSet_SubstPV, 4.415625095367432, REAL, None\n", + "AIn_IntakePressure.OSet_HiHiLim, 500.0, REAL, None\n", + "AIn_IntakePressure.OSet_HiLim, 30.0, REAL, None\n", + "AIn_IntakePressure.OSet_LoLim, 0.5, REAL, None\n", + "AIn_IntakePressure.OSet_LoLoLim, 0.0, REAL, None\n", + "AIn_IntakePressure.Set_SimPV, 4.415625095367432, REAL, None\n", + "AIn_IntakePressure.PCmd_ClearCapt, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_Acq, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_Rel, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_Lock, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_Unlock, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_Reset, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiHiAck, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiHiSuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiHiUnsuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiHiUnshelve, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiAck, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiSuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiUnsuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_HiUnshelve, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoAck, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoSuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoUnsuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoUnshelve, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoLoAck, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoLoSuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoLoUnsuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_LoLoUnshelve, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_FailAck, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_FailSuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_FailUnsuppress, False, BOOL, None\n", + "AIn_IntakePressure.PCmd_FailUnshelve, False, BOOL, None\n", + "AIn_IntakePressure.MCmd_SubstPV, False, BOOL, None\n", + "AIn_IntakePressure.MCmd_InpPV, False, BOOL, None\n", + "AIn_IntakePressure.OCmd_ClearCapt, False, BOOL, None\n", + "AIn_IntakePressure.MCmd_Acq, False, BOOL, None\n", + "AIn_IntakePressure.MCmd_Rel, False, BOOL, None\n", + "AIn_IntakePressure.OCmd_AcqLock, False, BOOL, None\n", + "AIn_IntakePressure.OCmd_Unlock, False, BOOL, None\n", + "AIn_IntakePressure.OCmd_Reset, False, BOOL, None\n", + "AIn_IntakePressure.OCmd_ResetAckAll, False, BOOL, None\n", + "AIn_IntakePressure.Val, 4.415625095367432, REAL, None\n", + "AIn_IntakePressure.Val_InpPV, 4.415625095367432, REAL, None\n", + "AIn_IntakePressure.Val_PVMinCapt, 4.391250133514404, REAL, None\n", + "AIn_IntakePressure.Val_PVMaxCapt, 4.421249866485596, REAL, None\n", + "AIn_IntakePressure.Val_PVEUMin, 0.0, REAL, None\n", + "AIn_IntakePressure.Val_PVEUMax, 30.0, REAL, None\n", + "AIn_IntakePressure.SrcQ_IO, 1, SINT, None\n", + "AIn_IntakePressure.SrcQ, 1, SINT, None\n", + "AIn_IntakePressure.Val_Fault, 0, SINT, None\n", + "AIn_IntakePressure.Val_Mode, 8, SINT, None\n", + "AIn_IntakePressure.Val_Owner, 0, DINT, None\n", + "AIn_IntakePressure.Val_Notify, 0, SINT, None\n", + "AIn_IntakePressure.Val_HiHiLim, 500.0, REAL, None\n", + "AIn_IntakePressure.Val_HiLim, 30.0, REAL, None\n", + "AIn_IntakePressure.Val_LoLim, 0.5, REAL, None\n", + "AIn_IntakePressure.Val_LoLoLim, 0.0, REAL, None\n", + "AIn_IntakePressure.Sts_SubstPV, False, BOOL, None\n", + "AIn_IntakePressure.Sts_InpPV, True, BOOL, None\n", + "AIn_IntakePressure.Sts_PVBad, False, BOOL, None\n", + "AIn_IntakePressure.Sts_PVUncertain, False, BOOL, None\n", + "AIn_IntakePressure.Sts_MaintByp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_AlmInh, False, BOOL, None\n", + "AIn_IntakePressure.Sts_Err, False, BOOL, None\n", + "AIn_IntakePressure.Err_Raw, False, BOOL, None\n", + "AIn_IntakePressure.Err_EU, False, BOOL, None\n", + "AIn_IntakePressure.Err_Timer, False, BOOL, None\n", + "AIn_IntakePressure.Err_Filt, False, BOOL, None\n", + "AIn_IntakePressure.Err_DB, False, BOOL, None\n", + "AIn_IntakePressure.Err_Alarm, False, BOOL, None\n", + "AIn_IntakePressure.Sts_Maint, False, BOOL, None\n", + "AIn_IntakePressure.Sts_Prog, True, BOOL, None\n", + "AIn_IntakePressure.Sts_Oper, False, BOOL, None\n", + "AIn_IntakePressure.Sts_ProgOperLock, False, BOOL, None\n", + "AIn_IntakePressure.Sts_NoMode, False, BOOL, None\n", + "AIn_IntakePressure.Sts_MAcqRcvd, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHiCmp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHiGate, True, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHi, False, BOOL, None\n", + "AIn_IntakePressure.Alm_HiHi, False, BOOL, None\n", + "AIn_IntakePressure.Ack_HiHi, True, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHiDisabled, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHiSuppressed, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiHiShelved, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiCmp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiGate, True, BOOL, None\n", + "AIn_IntakePressure.Sts_Hi, False, BOOL, None\n", + "AIn_IntakePressure.Alm_Hi, False, BOOL, None\n", + "AIn_IntakePressure.Ack_Hi, True, BOOL, None\n", + "AIn_IntakePressure.Sts_HiDisabled, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiSuppressed, False, BOOL, None\n", + "AIn_IntakePressure.Sts_HiShelved, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoCmp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoGate, True, BOOL, None\n", + "AIn_IntakePressure.Sts_Lo, False, BOOL, None\n", + "AIn_IntakePressure.Alm_Lo, False, BOOL, None\n", + "AIn_IntakePressure.Ack_Lo, True, BOOL, None\n", + "AIn_IntakePressure.Sts_LoDisabled, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoSuppressed, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoShelved, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLoCmp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLoGate, True, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLo, False, BOOL, None\n", + "AIn_IntakePressure.Alm_LoLo, False, BOOL, None\n", + "AIn_IntakePressure.Ack_LoLo, True, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLoDisabled, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLoSuppressed, False, BOOL, None\n", + "AIn_IntakePressure.Sts_LoLoShelved, False, BOOL, None\n", + "AIn_IntakePressure.Sts_FailCmp, False, BOOL, None\n", + "AIn_IntakePressure.Sts_FailGate, True, BOOL, None\n", + "AIn_IntakePressure.Sts_Fail, False, BOOL, None\n", + "AIn_IntakePressure.Alm_Fail, False, BOOL, None\n", + "AIn_IntakePressure.Ack_Fail, True, BOOL, None\n", + "AIn_IntakePressure.Sts_FailDisabled, False, BOOL, None\n", + "AIn_IntakePressure.Sts_FailSuppressed, False, BOOL, None\n", + "AIn_IntakePressure.Sts_FailShelved, False, BOOL, None\n", + "AIn_IntakePressure.Rdy_SubstPV, False, BOOL, None\n", + "AIn_IntakePressure.Rdy_InpPV, False, BOOL, None\n", + "AIn_IntakePressure.Rdy_Reset, False, BOOL, None\n", + "AIn_IntakePressure.Rdy_ResetAckAll, False, BOOL, None\n", + "AIn_IntakePressure.Rdy_OSet, False, BOOL, None\n", + "AIn_IntakePressure.P_AIn, False, BOOL, None\n", + "AIn_IntakePressure.inp_ProcessRunning, True, BOOL, None\n", + "AIn_IntakePressure.LoLo, None, None, Permission denied\n", + "AIn_IntakePressure.Lo, None, None, Permission denied\n", + "AIn_IntakePressure.Hi, None, None, Permission denied\n", + "AIn_IntakePressure.HiHi, None, None, Permission denied\n", + "AIn_IntakePressure.Mode, None, None, Permission denied\n", + "AIn_IntakePressure.Cfg_EU, 'PSI', STRING_8, None\n", + "AIn_IntakePressure.Cfg_Tag, 'AIn_IntakePressure', STRING_20, None\n", + "AIn_IntakePressure.Cfg_Label, 'Intake Pressure', STRING_20, None\n", + "AIn_IntakePressure.Cfg_Desc, 'Intake Pressure', STRING_40, None\n", + "AIn_IntakePressure.Fail, None, None, Permission denied\n", + "AIn_IntakePressure.Wrk_Notify, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Inf_Tab, 0, SINT, None\n", + "AIn_IntakePressure.Wrk_Fault, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_SrcQ, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_SubstPV, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_UnfiltPV, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_Alpha, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_ScanT, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_ScanTime, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_FiltPV, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_ValidONS, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_SelPVDINT, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_SelPVInfNaN, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Inf_Type, 'P_AIn', STRING_16, None\n", + "AIn_IntakePressure.Wrk_Fail, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_LoLo, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_Lo, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_Hi, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_HiHi, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.FailGate, {'Cfg_GateCond': 'Gating Condition', 'Cfg_GateDly': 0, 'Cfg_InpCond': 'Input Failure', 'Cfg_OffDly': 0, ...}, P_Gate, None\n", + "AIn_IntakePressure.LoLoGate, {'Cfg_GateCond': 'n/a', 'Cfg_GateDly': 0, 'Cfg_InpCond': 'Low-Low Pressure', 'Cfg_OffDly': 0, ...}, P_Gate, None\n", + "AIn_IntakePressure.LoGate, {'Cfg_GateCond': 'n/a', 'Cfg_GateDly': 0, 'Cfg_InpCond': 'Low Pressure', 'Cfg_OffDly': 0, ...}, P_Gate, None\n", + "AIn_IntakePressure.HiHiGate, {'Cfg_GateCond': 'n/a', 'Cfg_GateDly': 0, 'Cfg_InpCond': 'High-High Pressure', 'Cfg_OffDly': 0, ...}, P_Gate, None\n", + "AIn_IntakePressure.HiGate, {'Cfg_GateCond': 'n/a', 'Cfg_GateDly': 0, 'Cfg_InpCond': 'Startup Pressure', 'Cfg_OffDly': 0, ...}, P_Gate, None\n", + "AIn_IntakePressure.Wrk_InpInfNaN, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Wrk_InpDINT, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.Inf_Lib, 'RA-BAS', STRING_12, None\n", + "AIn_IntakePressure.Wrk_InpFail, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.ONS_Supress, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.ONS_Unsupress, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.ONS_ProcessRunning, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n", + "AIn_IntakePressure.ONS_ProcessNotRunning, None, None, IOI syntax error. A syntax error was detected decoding the Request Path (see extended status) - Extended status out of memory (04, 00)\n" + ] + } + ], + "source": [ + "\n", + "for x in r:\n", + " print(x)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.5 ('tbDataCollector')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "1ff24bb78522b54a2b0b4d6825921b0b6e3118b5057a0b6390d4ff598478e38b" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}