2466 lines
82 KiB
Python
2466 lines
82 KiB
Python
from device_conf import class_comm_device_config
|
|
import comm_remap as remap
|
|
import menu_utils as uitls
|
|
from enum import Enum
|
|
from datetime import datetime
|
|
import time
|
|
import menu_utils as utils
|
|
import json
|
|
import re
|
|
from enum import Enum
|
|
from comm_modbus_device import class_modbus_comm_device
|
|
|
|
now_time = datetime.now()
|
|
current_time = now_time.strftime("(%y/%m/%d)")
|
|
VERSION_DATE = current_time
|
|
|
|
class StrInfo(Enum):
|
|
STR_MAX_VALUE = 0, #"最大值"
|
|
STR_MIN_VALUE = 1, #"最小值"
|
|
STR_SET_VALUE = 2, #"设定值"
|
|
STR_VALUE_EXCEED = 3, #"设定值越界"
|
|
STR_ZERO_PHASE = 4, #"有功相位"
|
|
STR_INPUT_PASSWORD = 5, #"请输入系统密码
|
|
STR_SYSTEM_PASSWORD = 6, #"系统密码"
|
|
STR_PASSWORD_ERR = 7, #"密码错误"
|
|
STR_SHORT_PHASE_MODIFY =8, #"短路倍数\n恢复缺省"
|
|
STR_SWITCH_TYPE_MODIFY =9, #"漏电延时\n恢复缺省"
|
|
STR_SOFT_VERSION =10, #"软件版本"
|
|
STR_NO_RECORD =11, #"无记录"
|
|
STR_ENTER_TO_CLEAR =12, #"确定清除"
|
|
STR_ESC_TO_CANCEL =13, #"ESC取消"
|
|
STR_CLEAR_FINISH =14, #"清除成功"
|
|
STR_ESC_TO_EXIT =15, #"ESC退出
|
|
STR_INPUT_NEW_PASSWORD =16, #"请设置新密码"
|
|
STR_NOT_POSSIBLE_TO_MODIFY =17, #"不可修改"
|
|
STR_CAPACITOR_MEASURE =18, #"电容检测
|
|
STR_CAPACITOR_EQUAL =19, #"电容"
|
|
STR_LEEKAGE_MEASURE =20, #"检测中.."
|
|
STR_TEST_ACTIVE =21, #"测试状态
|
|
STR_POWER_ON=22, #"合闸"
|
|
STR_POWER_OFF=23, #"分闸"
|
|
STR_FAIL=24, #"失效"
|
|
STR_NORMAL=25, #"正常"
|
|
STR_MEASURE_CURRENT=26, #"实测电流"
|
|
STR_RATE_CURRENT=27, #"额定电流"
|
|
STR_ANGLE=28, #"角度"
|
|
STR_AVERAGE_CURRENT=29, #"平均电流"
|
|
STR_MAX_CURRENT=30, #"最大电流
|
|
STR_LOW_VOLTAGE_RATE=31, #"欠压值
|
|
STR_MEASURE_VOLTAGE=32, #"实测电压"
|
|
STR_ZERO_CURRENT=33, #"零序电流"
|
|
STR_ZERO_VOLTAGE=34, #"零序电压"
|
|
STR_RECORD=35, #"记录"
|
|
STR_LEEAKGE_LOCK_VALUE=36, #"闭锁设定值"
|
|
STR_LEEAKGE_ACTIVE_VALUE=37, #"动作设定值"
|
|
STR_MEASURE_RESISTOR=38, #"电阻测量值"
|
|
STR_FRONT_CIRCUIT=39, #"前机"
|
|
STR_NEXT_CIRCUIT=40, #"后机"
|
|
STR_RATE_VOLTAGE=41, #"额定电压"
|
|
STR_PARA_MODIFY_ERROR=42, #"参数修改失败"
|
|
STR_LEEKAGE_RES_FINISH=43, #"闭锁电阻检测完"
|
|
STR_LEEKAGE_RES_MEASURE=44, #"闭锁电阻检测中"
|
|
STR_SFJ_MONITOR=45, #"双风机磁力监控"
|
|
STR_CL_MONITOR=46, #"磁力监控系统"
|
|
STR_CL_DB_MONITOR=47, #"双回路磁力监控"
|
|
STR_YB_MONITOR=48, #"移变低压侧"
|
|
STR_KUI_DIAN_MONITOR=49, #"馈电开关监控"
|
|
STR_TYPE=50, #"类型:"
|
|
STR_TOP_SWITCH=51, #"总开关"
|
|
STR_BOTTOM_SWITCH=52, #"分开关"
|
|
STR_COS_V=53, #"COS(ΦaΦbΦc)"
|
|
STR_POWER_VI=54, #"有功功率"
|
|
STR_POWER_VI_T=55, #"电量"
|
|
STR_FRONT_POWER_ON=56, #"前机合"
|
|
STR_NEXT_POWER_ON=57, #"后机合"
|
|
STR_FRONT_POWER_OFF=58, #"前机分"
|
|
STR_NEXT_POWER_OFF=59, #"后机分"
|
|
STR_FRONT_RESISTOR=60, #"前机电阻:"
|
|
STR_NEXT_RESISTOR=61, #"后机电阻:"
|
|
STR_WORK_MODE=62, #"模式:"
|
|
STR_LEEKAGE_RES=63, #"漏电电阻"
|
|
STR_REVERSE_VOLTAGE=64, #"反电动势\n注意安全"
|
|
STR_LIGHT=65, #"照明"
|
|
STR_SIGNAL=66, #"信号"
|
|
STR_SWITCH_STATUS=67, #"开关状态"
|
|
STR_POWER_ON_COUNTS=68, #"合闸次数"
|
|
STR_SETTING=69, #"设定值"
|
|
STR_POW_U=70, #"无功功率"
|
|
STR_TEST_FAIL=71, #"测试不正确"
|
|
STR_LEAKAGE_TEST_FAIL=72, #"漏电测试不正确"
|
|
STR_DETECT_FAIL_WHEN_POWER_ON=73, #"合闸时不能检测"
|
|
STR_LINK=74, #"联机系统"
|
|
STR_SINGLE=75, #"单机系统"
|
|
STR_STATUS=76, #"状态"
|
|
STR_MAIN_FIRST=77, #"主机优先"
|
|
STR_MAIN_BAK_SAME=78, #"主辅对等"
|
|
STR_MAIN_BAK_SWITCH=79, #"主辅轮动"
|
|
STR_SWITCH_DISABLE=80, #"局扇模式"
|
|
STR_MAIN=81, #"主机"
|
|
STR_BACKUP=82, #"备机"
|
|
STR_SINGLE_CIRCUIT_FRONT=83, #"单前机"
|
|
STR_SINGLE_CIRCUIT_NEXT=84, #"单后机"
|
|
STR_DOUBLE_CIRCUIT=85, #"双回路"
|
|
STR_WATER_PUMP_ON=86, #"水泵已开阀"
|
|
STR_WATER_PUMP_OFF=87, #"水泵已关阀"
|
|
STR_SWITCH_FAIL=88, #"粘连"
|
|
STR_SWITCH_THROUGH_2=89, #"击穿"
|
|
STR_GB_MONITOR=90, #"高压真空配电装置"
|
|
STR_GB_PROTECT_SYSTEM=91, #"综合保护监控系统"
|
|
STR_YBGY_MONITOR=92, #"移变高压侧"
|
|
STR_ERROR=93, #"故障"
|
|
STR_TEMPERATURE=94, #"温度"
|
|
STR_NEXT_CURRENT=95, #"后机电流"
|
|
STR_FRONT_CURRENT=96, #"前机电流"
|
|
STR_FJ_WS_LOCK=97, #"风机处瓦斯闭锁"
|
|
STR_GZM_WS_LOCK=98, #"工作面瓦斯闭锁"
|
|
STR_CURRENT=99, #"电流"
|
|
STR_VOLTAGE=100, #"电压"
|
|
STR_MONITOR_RES=101, #"监视电阻"
|
|
STR_SWITCH_THROUGH_SIMPLE=102, #"击穿"
|
|
STR_LINK_FAIL=103, #"联机失败"
|
|
STR_RES_OFF=104, #"漏电临界值"
|
|
STR_ANOTHER_REPAIR=105, #"另台维修请勿停机"
|
|
STR_WS_INTENSITY=106, #"瓦斯浓度"
|
|
STR_HIGH_VOLT=107, #"高压"
|
|
STR_AUTO=108, #"自动"
|
|
STR_MANUAL=109, #"手动"
|
|
STR_FREQUENCY=110, #"频率"
|
|
STR_FWD_ON=111, #正向启动
|
|
STR_RVS_ON=112, #反向启动
|
|
STR_TEMPERATURE_UNIT=113, #温度单位
|
|
STR_POWER_LOSS=114,
|
|
STR_CALIBRATE_SUCCESS=115, #标定成功
|
|
STR_ISOLATE_RES=116, #绝缘电阻
|
|
STR_WATER_MONITOR=117, #水位控制排水监控系统
|
|
STR_SWTICH_PROTECTOR=118, #ZDB-200电动机保护器
|
|
STR_INDEPENDENT=119, #独立模式
|
|
STR_DEPENDENT=120, #联动模式
|
|
STR_OUT_POSITION=121,
|
|
STR_IN_POSITION=122,
|
|
STR_QUIT_IN_POSITION=123,
|
|
STR_RUN_DATA=124,
|
|
STR_WATER_MODE=125,
|
|
STR_INV_MODE=126,
|
|
STR_ISOLATE_RESISTOR_LOW=127,
|
|
STR_SWITCH=128,
|
|
STR_DIDAO=129,
|
|
STR_REMOTE=130,
|
|
STR_LOCAL=131,
|
|
STR_ONE_KEY_LOCK=132,
|
|
STR_COMM_FAIL=133,
|
|
|
|
class Alarm(Enum):
|
|
ERR_NONE = 0,
|
|
ERR_CREEPAGE_LOCK = 1, #漏电报警
|
|
ERR_VOLTAGE_LOW = 2, #欠压报警
|
|
ERR_OVER_CURRENT = 3, #过流保护
|
|
ERR_SHORT_CURRENT = 4, #短路保护
|
|
ERR_CREEPAGE_SELECT = 5, #选漏
|
|
ERR_UNBANLANCE_CURRENT = 6, #三相不平衡
|
|
ERR_FLASH_FAIL = 7, #FLASH无法写入
|
|
ERR_CREEPAGE_ACTIVE = 8, #漏电动作
|
|
ERR_BREAK_PHASE = 9, #断相保护动作
|
|
ERR_VOLTAGE_BREAK_PHASE = 10, #电压断相
|
|
ERR_GAS_LOCK = 11, #瓦斯闭锁
|
|
ERR_WIND_MOTOR_LOCK = 12, #风电闭锁
|
|
ERR_VOLTAGE_OVER = 13, #过压报警
|
|
ERR_SHORT_PHASE = 14, #相敏短路
|
|
ERR_WATCH_DOG = 15, #看门狗保房
|
|
ERR_SWITCH_FAIL = 16, #开关粘轿
|
|
ERR_SWITCH_THROUGH = 17, #开关击?
|
|
ERR_SWITCH_ON_FAIL = 18, #开关合闸失?
|
|
ERR_COMM_FAIL = 19, #通讯故障
|
|
ERR_CREEPAGE_SELECT2 = 20, #选择性报?
|
|
ERR_TEMP_IO_HIGH = 21, #IO口温度过驿
|
|
ERR_SHORT_CURRENT_SIGNAL = 22, #信号电流短路
|
|
ERR_REMOTE_OFF = 23, #远方分励
|
|
ERR_REPAIR = 24, #维修状?
|
|
ERR_TEMP_ALARM = 25, #温度报警
|
|
ERR_QUICK_CREEPAGE_ACT = 26, #快速漏电动仿
|
|
ERR_GB_LEEK_SHORT = 27, #高爆绝缘短路
|
|
ERR_GB_LEEK_BREAK = 28, #高爆绝缘断路
|
|
ERR_YB_LOW_VOLTAGE_FAIL = 29, #移变低压侧失?
|
|
ERR_YB_LOW_VOLTAGE_UNREADY = 30, #移变低压侧未准备?
|
|
ERR_WS_FREQ_FAIL = 31, #瓦斯浓度超标
|
|
ERR_HIGH_LOW_LOCK = 32, #高低压联钿
|
|
ERR_MOTOR_ROTATE_LOCK = 33, #电机堵转
|
|
ERR_FIX_TIME_OVER_CURRENT = 34, #定时限过泿
|
|
ERR_FIX_TIME_SHORT_CURRENT = 35, #定时限短?
|
|
ERR_PHASE_ERROR = 36, #相序故障
|
|
ERR_UNDER_LOAD = 37, #欠载保护
|
|
ERR_PHASE_UNMATCH = 38, #互感器反?
|
|
ERR_EXTERNAL_ALARM = 39, #外部故障
|
|
ERR_SENSOR_LOSS = 40, #水位传感器未?
|
|
ERR_ROTOR_SLOW = 41,
|
|
ERR_ROTOR_LOCK = 42,
|
|
ERR_POWER_LOSS = 43, #系统断电
|
|
ERR_RSV1 = 44,
|
|
ERR_RSV2 = 45,
|
|
ERR_RSV3 = 46,
|
|
ERR_RSV4 = 47,
|
|
ERR_RSV5 = 48,
|
|
ERR_RSV6 = 49,
|
|
ERR_RSV7 = 50,
|
|
ERR_USER_ALARM1 = 51, #50,用户自定义故阿
|
|
ERR_USER_ALARM2 = 52, #51,用户自定义故阿
|
|
ERR_USER_ALARM3 = 53, #52,用户自定义故阿
|
|
ERR_USER_ALARM4 = 54, #53,用户自定义故阿
|
|
ERR_GB_LIGHT_THREAD_SON_LOSS = 55,
|
|
ERR_GB_LIGHT_THREAD_BROTHER_LOSS = 56,
|
|
ERR_GB_LIGHT_MODULE_LOSS = 57,
|
|
ERR_GB_FORCE_LEEK_OFF = 58,
|
|
ERR_GB_FORCE_SHORT_OFF = 59,
|
|
ERR_GB_CREEPAGE_SELECT = 60, #选择性报警
|
|
ERR_SWITCH_OUT_POSITION = 61,
|
|
ERR_DZM_CREEPAGE_ACTIVE = 62,
|
|
ERR_OIL_PRESSURE_SENSOR_FAIL = 63,
|
|
ERR_FREQ_SENSOR_EXCEED = 64,
|
|
ERR_FREQ_SENSOR_FAIL = 65,
|
|
ERR_ANALOG_SENSOR_EXCEED = 66,
|
|
ERR_ANALOG_SENSOR_FAIL = 67,
|
|
ERR_VOLTAGE_LOSS = 68,
|
|
ERR_SPEED_LOSS = 69,
|
|
ERR_GB_ZERO_VOLT_OVER = 70, #零序过压
|
|
ERR_PT_BREAK = 71,
|
|
ERR_CT_BREAK = 72,
|
|
ERR_ZERO_OVER_VOLTAGE = 73,
|
|
ERR_ZERO_OVER_CURRENT = 74,
|
|
ERR_GAS_WARNING = 75,
|
|
ERR_TEMP_WARNING = 76,
|
|
ERR_COMM_LOSS = 77,
|
|
ERR_CAR_FAIL = 78,
|
|
ERR_WATER_LOW = 79,
|
|
ERR_SWITCH_DIDAO_IN_POSITION = 80,
|
|
ERR_SWITCH_DIDAO_MID_POSITION = 81,
|
|
ERR_GB_CREEPAGE_SELECT_5 = 82, #5次谐波选漏
|
|
ERR_FLUX_LOCK = 83,
|
|
ERR_GLOBAL_OIL_TEMP_LOCK = 84,
|
|
ERR_GLOBAL_WATER_PRESSURE_LOCK = 85,
|
|
ERR_GLOBAL_WATER_LEVEL_LOCK = 86,
|
|
ERR_GLOBAL_CURRENT_SENSOR_LOSS = 87,
|
|
ERR_GLOBAL_GAS_PERCENTAGE_LOCK = 88,
|
|
ERR_GLOBAL_GAS_SENSOR_LOSS = 89,
|
|
ERR_MEASURE_OVER_CURRENT = 90, #测量回路过流保护
|
|
ERR_CREAPGE_BREAK = 91,
|
|
ERR_REMOTE_CREAPGE_TEST_FAIL = 92,
|
|
ERR_REMOTE_CREAPGE_TEST_SUCCESS = 93,
|
|
|
|
|
|
|
|
class Alias(Enum):
|
|
alias_alarm = 0,
|
|
alias_str = 1,
|
|
alias_company = 2,
|
|
alias_bool = 3,
|
|
alias_voltage = 4,
|
|
alias_parity = 5,
|
|
alias_baud = 6,
|
|
alias_input = 7,
|
|
alias_onoff = 8,
|
|
alias_test = 9,
|
|
alias_can_baud = 10,
|
|
alias_measure_v = 11,
|
|
alias_switch_type = 12,
|
|
alias_work_mode = 13,
|
|
alias_us_phase = 14,
|
|
alias_sensor = 15,
|
|
alias_table = 16,
|
|
alias_remote = 17,
|
|
alias_current = 18,
|
|
alias_eth = 19,
|
|
alias_lcd = 20,
|
|
alias_dev = 21,
|
|
alias_fyj = 22,
|
|
alias_alarm_type = 23,
|
|
alias_car_position = 24,
|
|
|
|
class Menu(Enum):
|
|
menu_current = 0,
|
|
menu_test = 1,
|
|
|
|
alias_table = [
|
|
{Alias.alias_alarm: {Alarm.ERR_NONE: "无故障",
|
|
Alarm.ERR_CREEPAGE_LOCK: "照明闭锁",
|
|
Alarm.ERR_VOLTAGE_LOW: "欠压",
|
|
Alarm.ERR_OVER_CURRENT : "照明过载", #过流保护
|
|
Alarm.ERR_SHORT_CURRENT : "短路保护", #短路保护
|
|
Alarm.ERR_CREEPAGE_SELECT : "选漏", #选漏
|
|
Alarm.ERR_UNBANLANCE_CURRENT : "三相不平衡", #三相不平衡报?
|
|
Alarm.ERR_FLASH_FAIL : "FLASH无法写入", #FLASH无法写入
|
|
Alarm.ERR_CREEPAGE_ACTIVE : "漏电动作", #漏电动作
|
|
Alarm.ERR_BREAK_PHASE : "照明电流断相", #断相保护动作
|
|
Alarm.ERR_VOLTAGE_BREAK_PHASE : "电压断相", #电压断相
|
|
Alarm.ERR_GAS_LOCK : "瓦斯闭锁", #瓦斯闭锁
|
|
Alarm.ERR_WIND_MOTOR_LOCK : "风电闭锁", #风电闭锁
|
|
Alarm.ERR_VOLTAGE_OVER : "过压", #过压报警
|
|
Alarm.ERR_SHORT_PHASE : "相敏短路", #相敏短路
|
|
Alarm.ERR_WATCH_DOG : "看门狗重启", #看门狗保房
|
|
Alarm.ERR_SWITCH_FAIL : "真空管粘连", #真空管粘连
|
|
Alarm.ERR_SWITCH_THROUGH : "真空管击穿", #真空管击穿
|
|
Alarm.ERR_SWITCH_ON_FAIL : "合闸失败", #合闸失败
|
|
Alarm.ERR_COMM_FAIL : "通讯失败", #通讯失败
|
|
Alarm.ERR_CREEPAGE_SELECT2 : "选 漏", #选 漏
|
|
Alarm.ERR_TEMP_IO_HIGH : "温度过高", #温度过高
|
|
Alarm.ERR_SHORT_CURRENT_SIGNAL : "信号电流短路", #信号电流短路
|
|
Alarm.ERR_REMOTE_OFF : "远方分励", #远方分励
|
|
Alarm.ERR_REPAIR : "维修状态", #维修状态
|
|
Alarm.ERR_TEMP_ALARM : "温度报警", #温度报警
|
|
Alarm.ERR_QUICK_CREEPAGE_ACT : "漏电 动作", #快速漏电 动作
|
|
Alarm.ERR_GB_LEEK_SHORT : "绝缘短路", #绝缘短路
|
|
Alarm.ERR_GB_LEEK_BREAK : "绝缘断路", #绝缘断路
|
|
Alarm.ERR_YB_LOW_VOLTAGE_FAIL : "低压侧故障", #低压侧故障
|
|
Alarm.ERR_YB_LOW_VOLTAGE_UNREADY : "低压侧未准备好", #低压侧未准备好
|
|
Alarm.ERR_WS_FREQ_FAIL : "瓦斯浓度超标", #瓦斯浓度超标
|
|
Alarm.ERR_HIGH_LOW_LOCK : "高低压联锁", #高低压联锁
|
|
Alarm.ERR_MOTOR_ROTATE_LOCK : "电机堵转", #电机堵转
|
|
Alarm.ERR_FIX_TIME_OVER_CURRENT : "定时限过流", #定时限过流
|
|
Alarm.ERR_FIX_TIME_SHORT_CURRENT : "定时限短路", #定时限短路?
|
|
Alarm.ERR_PHASE_ERROR : "相序故障", #相序故障
|
|
Alarm.ERR_UNDER_LOAD : "欠载保护", #欠载保护
|
|
Alarm.ERR_EXTERNAL_ALARM : "外部故障", #外部故障
|
|
Alarm.ERR_POWER_LOSS : "系统断电", #系统断电
|
|
Alarm.ERR_USER_ALARM1 : "触头温度超标", #用户自定义故阿
|
|
Alarm.ERR_USER_ALARM2 : "触头温度超标", #用户自定义故阿
|
|
Alarm.ERR_GB_LIGHT_THREAD_SON_LOSS : "光纤子节点丢失",
|
|
Alarm.ERR_GB_LIGHT_THREAD_BROTHER_LOSS : "光纤兄弟节点丢失",
|
|
Alarm.ERR_GB_LIGHT_MODULE_LOSS : "无光纤模块",
|
|
Alarm.ERR_GB_FORCE_LEEK_OFF : "光纤漏电越级跳",
|
|
Alarm.ERR_GB_FORCE_SHORT_OFF : "光纤短路越级跳",
|
|
Alarm.ERR_GB_CREEPAGE_SELECT : "漏电", #选择性报警
|
|
Alarm.ERR_SWITCH_OUT_POSITION : "开关未推到位",
|
|
Alarm.ERR_DZM_CREEPAGE_ACTIVE : "漏电动作",
|
|
Alarm.ERR_OIL_PRESSURE_SENSOR_FAIL : "油压传感器未接入",
|
|
Alarm.ERR_FREQ_SENSOR_EXCEED : "频率传感器超限",
|
|
Alarm.ERR_FREQ_SENSOR_FAIL : "频率传感器未接入",
|
|
Alarm.ERR_ANALOG_SENSOR_EXCEED : "模拟量传感器超限",
|
|
Alarm.ERR_ANALOG_SENSOR_FAIL : "模拟量传感器未接入",
|
|
Alarm.ERR_VOLTAGE_LOSS : "失压故障",
|
|
Alarm.ERR_SPEED_LOSS : "失速故障",
|
|
Alarm.ERR_GB_ZERO_VOLT_OVER : "零序过压",
|
|
Alarm.ERR_PT_BREAK : "PT断线",
|
|
Alarm.ERR_CT_BREAK : "CT断线",
|
|
Alarm.ERR_ZERO_OVER_VOLTAGE : "零序过压",
|
|
Alarm.ERR_ZERO_OVER_CURRENT : "零序过流",
|
|
Alarm.ERR_GAS_WARNING : "轻瓦斯告警",
|
|
Alarm.ERR_TEMP_WARNING : "温度异常",
|
|
Alarm.ERR_COMM_LOSS : "通讯中断",
|
|
Alarm.ERR_CAR_FAIL : "手车控制器故障",
|
|
Alarm.ERR_WATER_LOW : "循环泵无水故障",
|
|
Alarm.ERR_SWITCH_DIDAO_IN_POSITION: "地刀合闸保护中",
|
|
Alarm.ERR_SWITCH_DIDAO_MID_POSITION: "地刀未到位",
|
|
Alarm.ERR_GB_CREEPAGE_SELECT_5: "5次谐波选漏",
|
|
Alarm.ERR_FLUX_LOCK: "流量闭锁",
|
|
Alarm.ERR_GLOBAL_OIL_TEMP_LOCK: "油温闭锁",
|
|
Alarm.ERR_GLOBAL_WATER_PRESSURE_LOCK: "水压闭锁",
|
|
Alarm.ERR_GLOBAL_WATER_LEVEL_LOCK: "液位闭锁",
|
|
Alarm.ERR_GLOBAL_CURRENT_SENSOR_LOSS: "互感器未接入",
|
|
Alarm.ERR_GLOBAL_GAS_PERCENTAGE_LOCK: "瓦斯浓度闭锁",
|
|
Alarm.ERR_GLOBAL_GAS_SENSOR_LOSS: "瓦斯断线",
|
|
Alarm.ERR_MEASURE_OVER_CURRENT: "测量回路过流",
|
|
Alarm.ERR_CREAPGE_BREAK: "接地开路",
|
|
Alarm.ERR_REMOTE_CREAPGE_TEST_FAIL: "漏电测试失败",
|
|
Alarm.ERR_REMOTE_CREAPGE_TEST_SUCCESS: "漏电测试成功",
|
|
}
|
|
},
|
|
|
|
{"alias_str" : { StrInfo.STR_MAX_VALUE :"最大值",
|
|
StrInfo.STR_MIN_VALUE :"最小值",
|
|
StrInfo.STR_SET_VALUE :"设定值",
|
|
StrInfo.STR_VALUE_EXCEED :"设定值越界",
|
|
StrInfo.STR_ZERO_PHASE :"有功相位",
|
|
StrInfo.STR_INPUT_PASSWORD :"请输入系统密码",
|
|
StrInfo.STR_SYSTEM_PASSWORD :"系统密码",
|
|
StrInfo.STR_PASSWORD_ERR :"密码错误",
|
|
StrInfo.STR_SHORT_PHASE_MODIFY :"短路倍数\n恢复缺省",
|
|
StrInfo.STR_SWITCH_TYPE_MODIFY :"漏电延时\n恢复缺省",
|
|
StrInfo.STR_SOFT_VERSION:"软件版本",
|
|
StrInfo.STR_NO_RECORD :"无记录",
|
|
StrInfo.STR_ENTER_TO_CLEAR:"确定清除",
|
|
StrInfo.STR_ESC_TO_CANCEL:"ESC取消",
|
|
StrInfo.STR_CLEAR_FINISH :"清除成功",
|
|
StrInfo.STR_ESC_TO_EXIT :"ESC退出",
|
|
StrInfo.STR_INPUT_NEW_PASSWORD :"请设置新密码",
|
|
StrInfo.STR_NOT_POSSIBLE_TO_MODIFY :"不可修改",
|
|
StrInfo.STR_CAPACITOR_MEASURE :"电容检测",
|
|
StrInfo.STR_CAPACITOR_EQUAL :"电容",
|
|
StrInfo.STR_LEEKAGE_MEASURE :"检测中..",
|
|
StrInfo.STR_TEST_ACTIVE :"测试状态",
|
|
StrInfo.STR_POWER_ON :"合闸",
|
|
StrInfo.STR_POWER_OFF :"分闸",
|
|
StrInfo.STR_FAIL :"失效",
|
|
StrInfo.STR_NORMAL :"正常",
|
|
StrInfo.STR_MEASURE_CURRENT :"实测电流",
|
|
StrInfo.STR_RATE_CURRENT :"额定电流",
|
|
StrInfo.STR_ANGLE :"角度",
|
|
StrInfo.STR_AVERAGE_CURRENT :"平均电流",
|
|
StrInfo.STR_MAX_CURRENT :"最大电流",
|
|
StrInfo.STR_LOW_VOLTAGE_RATE :"欠压值",
|
|
StrInfo.STR_MEASURE_VOLTAGE :"实测电压",
|
|
StrInfo.STR_ZERO_CURRENT :"零序电流",
|
|
StrInfo.STR_ZERO_VOLTAGE :"零序电压",
|
|
StrInfo.STR_RECORD :"记录",
|
|
StrInfo.STR_LEEAKGE_LOCK_VALUE :"闭锁设定值",
|
|
StrInfo.STR_LEEAKGE_ACTIVE_VALUE :"动作设定值",
|
|
StrInfo.STR_MEASURE_RESISTOR :"电阻测量值",
|
|
StrInfo.STR_FRONT_CIRCUIT :"前机",
|
|
StrInfo.STR_NEXT_CIRCUIT :"后机",
|
|
StrInfo.STR_RATE_VOLTAGE :"额定电压",
|
|
StrInfo.STR_PARA_MODIFY_ERROR :"参数修改失败",
|
|
StrInfo.STR_LEEKAGE_RES_FINISH :"闭锁电阻检测完",
|
|
StrInfo.STR_LEEKAGE_RES_MEASURE :"闭锁电阻检测中",
|
|
StrInfo.STR_SFJ_MONITOR :"双风机磁力监控",
|
|
StrInfo.STR_CL_MONITOR :"磁力监控系统",
|
|
StrInfo.STR_CL_DB_MONITOR :"双回路磁力监控",
|
|
StrInfo.STR_YB_MONITOR :"移变低压侧",
|
|
StrInfo.STR_KUI_DIAN_MONITOR :"馈电开关监控",
|
|
StrInfo.STR_TYPE :"类型:",
|
|
StrInfo.STR_TOP_SWITCH :"总开关",
|
|
StrInfo.STR_BOTTOM_SWITCH :"分开关",
|
|
StrInfo.STR_COS_V :"COS(ΦaΦbΦc)",
|
|
StrInfo.STR_POWER_VI :"有功功率",
|
|
StrInfo.STR_POWER_VI_T :"电量",
|
|
StrInfo.STR_FRONT_POWER_ON :"前机合",
|
|
StrInfo.STR_NEXT_POWER_ON :"后机合",
|
|
StrInfo.STR_FRONT_POWER_OFF :"前机分",
|
|
StrInfo.STR_NEXT_POWER_OFF :"后机分",
|
|
StrInfo.STR_FRONT_RESISTOR :"前机电阻:",
|
|
StrInfo.STR_NEXT_RESISTOR :"后机电阻:",
|
|
StrInfo.STR_WORK_MODE :"模式:",
|
|
StrInfo.STR_LEEKAGE_RES :"漏电电阻",
|
|
StrInfo.STR_REVERSE_VOLTAGE :"反电动势\n注意安全",
|
|
StrInfo.STR_LIGHT :"照明",
|
|
StrInfo.STR_SIGNAL :"信号",
|
|
StrInfo.STR_SWITCH_STATUS :"开关状态",
|
|
StrInfo.STR_POWER_ON_COUNTS :"合闸次数",
|
|
StrInfo.STR_SETTING :"设定值",
|
|
StrInfo.STR_POW_U :"无功功率",
|
|
StrInfo.STR_TEST_FAIL :"测试不正确",
|
|
StrInfo.STR_LEAKAGE_TEST_FAIL :"漏电测试不正确",
|
|
StrInfo.STR_DETECT_FAIL_WHEN_POWER_ON :"合闸时不能检测",
|
|
StrInfo.STR_LINK :"联机系统",
|
|
StrInfo.STR_SINGLE :"单机系统",
|
|
StrInfo.STR_STATUS :"状态",
|
|
StrInfo.STR_MAIN_FIRST :"主机优先",
|
|
StrInfo.STR_MAIN_BAK_SAME :"主辅对等",
|
|
StrInfo.STR_MAIN_BAK_SWITCH :"主辅轮动",
|
|
StrInfo.STR_SWITCH_DISABLE :"局扇模式",
|
|
StrInfo.STR_MAIN :"主机",
|
|
StrInfo.STR_BACKUP :"备机",
|
|
StrInfo.STR_SINGLE_CIRCUIT_FRONT :"单前机",
|
|
StrInfo.STR_SINGLE_CIRCUIT_NEXT :"单后机",
|
|
StrInfo.STR_DOUBLE_CIRCUIT :"双回路",
|
|
StrInfo.STR_WATER_PUMP_ON :"水泵已开阀",
|
|
StrInfo.STR_WATER_PUMP_OFF :"水泵已关阀",
|
|
StrInfo.STR_SWITCH_FAIL :"粘连",
|
|
StrInfo.STR_SWITCH_THROUGH_2 :"击穿",
|
|
StrInfo.STR_GB_MONITOR :"高压真空配电装置",
|
|
StrInfo.STR_GB_PROTECT_SYSTEM :"综合保护监控系统",
|
|
StrInfo.STR_YBGY_MONITOR :"移变高压侧",
|
|
StrInfo.STR_ERROR :"故障",
|
|
StrInfo.STR_TEMPERATURE:"温度",
|
|
StrInfo.STR_NEXT_CURRENT :"后机电流",
|
|
StrInfo.STR_FRONT_CURRENT :"前机电流",
|
|
StrInfo.STR_FJ_WS_LOCK :"风机处瓦斯闭锁",
|
|
StrInfo.STR_GZM_WS_LOCK :"工作面瓦斯闭锁",
|
|
StrInfo.STR_CURRENT :"电流",
|
|
StrInfo.STR_VOLTAGE:"电压",
|
|
StrInfo.STR_MONITOR_RES :"监视电阻",
|
|
StrInfo.STR_SWITCH_THROUGH_SIMPLE :"击穿",
|
|
StrInfo.STR_LINK_FAIL :"联机失败",
|
|
StrInfo.STR_RES_OFF :"漏电临界值",
|
|
StrInfo.STR_ANOTHER_REPAIR :"另台维修请勿停机",
|
|
StrInfo.STR_WS_INTENSITY :"瓦斯浓度",
|
|
StrInfo.STR_HIGH_VOLT :"高压",
|
|
StrInfo.STR_AUTO :"自动",
|
|
StrInfo.STR_MANUAL :"手动",
|
|
StrInfo.STR_FREQUENCY :"频率",
|
|
StrInfo.STR_FWD_ON :"正向启动",
|
|
StrInfo.STR_RVS_ON :"反向启动",
|
|
StrInfo.STR_TEMPERATURE_UNIT : "℃",
|
|
StrInfo.STR_POWER_LOSS :"系统断电",
|
|
StrInfo.STR_CALIBRATE_SUCCESS :"标定成功",
|
|
StrInfo.STR_ISOLATE_RES :"绝缘电阻",
|
|
StrInfo.STR_WATER_MONITOR :"水位控制排水监控系统",
|
|
StrInfo.STR_SWTICH_PROTECTOR :"ZDB-200电动机保护器",
|
|
StrInfo.STR_INDEPENDENT :"独立模式",
|
|
StrInfo.STR_DEPENDENT :"联动模式",
|
|
StrInfo.STR_OUT_POSITION : "未到位",
|
|
StrInfo.STR_IN_POSITION : "进到位",
|
|
StrInfo.STR_QUIT_IN_POSITION : "退到位",
|
|
StrInfo.STR_RUN_DATA : "运行数据",
|
|
StrInfo.STR_WATER_MODE : "水位",
|
|
StrInfo.STR_INV_MODE : "可逆",
|
|
StrInfo.STR_ISOLATE_RESISTOR_LOW : "绝缘电阻降低",
|
|
StrInfo.STR_SWITCH : "开关",
|
|
StrInfo.STR_DIDAO : "地刀",
|
|
StrInfo.STR_REMOTE : "程控",
|
|
StrInfo.STR_LOCAL : "就地",
|
|
StrInfo.STR_ONE_KEY_LOCK : "闭锁中",
|
|
StrInfo.STR_COMM_FAIL : "通讯失败",
|
|
}},
|
|
|
|
{"alias_company": {0: "浙江志展智能科技",
|
|
1: "华荣科技",
|
|
}
|
|
},
|
|
{"alias_sensor" : {0: "10 A", 1: "30 A", 2: "50 A", 3: "75 A", 4: "80 A", 5: "100 A",
|
|
6: "120 A", 7: "150 A", 8: "200 A", 9: "300 A", 10: "315 A", 11: "400 A",
|
|
12: "500 A", 13: "600 A", 14: "630 A", 15: "800 A", 16: "1000 A", 17: "1250 A",
|
|
18: "1300 A", 19: "1600 A", 20: "160 A", 21: "250 A", 22: "750 A", 23: "1200 A",
|
|
24: "1500 A", 25: "2000 A", 26: "2500 A" ,27: "5 A"}},
|
|
{"alias_switch_type" : {0: "总开关", 1: "分开关"}},
|
|
{"alias_measure_v": {0: "正电压", 1: "负电压"}},
|
|
{"alias_bool": {0:"关闭", 1:"打开"}},
|
|
{"alias_voltage": {0:"380V", 1:"660V", 2:"1140V", 3:"3300V", 4:"100V", 5:"127V", 6:"220V", 7:"440V"}},
|
|
{"alias_parity": {0: "无校验", 1: "奇校验", 2: "偶校验"}},
|
|
{"alias_baud": {0: "1200", 1: "2400", 2: "4800", 3: "9600", 4:"19200", 5:"38400", 6:"51200", 7:"115200"}},
|
|
{"alias_input": {0: "常开", 1: "常闭"}},
|
|
{"alias_onoff": {0: "分闸", 1: "合闸"}},
|
|
{"alias_test": {0: "模拟测试", 1: "继电器测试"}},
|
|
{"alias_can_baud": {0: "1000K", 1: "800K", 2: "500K", 3: "250K", 4: "125K", 5: "100K", 6: "50K", 7: "20K", 8: "10K", 9: "AUTO"}},
|
|
{Alias.alias_measure_v: {0: "正电压", 1: "负电压"}},
|
|
{Alias.alias_switch_type : {0: "总开关", 1: "分开关"}},
|
|
{"alias_work_mode": {0: "水位模式", 1: "磁力模式", 2: "正反转模式", 3: "联控模式"}},
|
|
{"alias_us_phase": {0: "Uab_ABC", 1: "Uab_ACB", 2: "Ubc_ABC", 3: "Ubc_ACB", 4: "Uca_ABC", 5: "Uca_ACB"}},
|
|
{Alias.alias_sensor : {0: "10 A", 1: "30 A", 2: "50 A", 3: "75 A", 4: "80 A", 5: "100 A",
|
|
6: "120 A", 7: "150 A", 8: "200 A", 9: "300 A", 10: "315 A", 11: "400 A",
|
|
12: "500 A", 13: "600 A", 14: "630 A", 15: "800 A", 16: "1000 A", 17: "1250 A",
|
|
18: "1300 A", 19: "1600 A", 20: "160 A", 21: "250 A", 22: "750 A", 23: "1200 A",
|
|
24: "2500 A", 25: "5 A"}},
|
|
{"alias_table": {0: "0", 1: "1", 2: "2", 3: "3"}},
|
|
{"alias_remote": {0: "就地", 1: "程控"}},
|
|
{"alias_current": {0: "三相测量", 1: "两相平均", 2: "两相测量"}},
|
|
|
|
{Alias.alias_eth : {0: "无", 1: "一代以太网", 2: "二代以太网"}},
|
|
{Alias.alias_lcd : {0: "一体迪文屏", 1: "分体迪文屏", 2: "大彩屏", 3 : "昆仑通态屏"}},
|
|
{Alias.alias_fyj : {0: "无", 1: "FYJ", 2: "FYJ2", 3 : "FYJ4"}},
|
|
{Alias.alias_dev : {0: "馈电", 1: "高爆", 2: "移变", 3 : "双风机", 4 : "磁力",
|
|
5 : "双磁力", 6 : "照明", 7 : "移变高压侧", 8: "双高爆",
|
|
9: "组合馈电", 10: "双照明", 11 : "ZZ630"}},
|
|
{"alias_alarm_type": {0: "试验", 1: "动作"}},
|
|
{"alias_car_position": {0: "小车未到位", 1 : "小车试验位", 2: "小车工作位", 3 : "位置信号异常"}},
|
|
]
|
|
|
|
MENU_PROPERTY_READ_ONLY = 0
|
|
MENU_PROPERTY_USER = 1
|
|
MENU_PROPERTY_ENGINEER = 2
|
|
MENU_PROPERTY_WRITE_ONLY = 3
|
|
|
|
|
|
def get_alias_value_str(alias_str, alias_value) :
|
|
alias_value_msg = None
|
|
compare_value = int(alias_value)
|
|
|
|
for alias_dict in alias_table :
|
|
for alias_name, value_dict in alias_dict.items():
|
|
if isinstance(alias_name, Enum):
|
|
alias_name = alias_name.name
|
|
|
|
if alias_name == alias_str :
|
|
for each_value_dict in value_dict.items():
|
|
if isinstance(each_value_dict[0], Enum) :
|
|
key_value = each_value_dict[0].value[0]
|
|
else :
|
|
key_value = each_value_dict[0]
|
|
key_string = each_value_dict[1]
|
|
|
|
if int(key_value) == compare_value :
|
|
alias_value_msg = key_string
|
|
return alias_value_msg
|
|
return alias_value_msg
|
|
|
|
def func_adjust_current_menu_item(device : class_modbus_comm_device, menu_item) :
|
|
#获得互感器类型, 根据互感器类型来调整 scale, format, 让电流可以正确显示与设置
|
|
sensor_type = device.comm_get_value_from_mqtt_name("Sensor")
|
|
sensor_current = 400
|
|
|
|
if sensor_type != None :
|
|
value_str = get_alias_value_str("alias_sensor", sensor_type)
|
|
if value_str != None :
|
|
value_str_no_unit = value_str.replace("A", "")
|
|
sensor_current = int(value_str_no_unit)
|
|
|
|
#80A 以下电流互感器, 显示一位小数点
|
|
if sensor_current <= 80 :
|
|
new_item = menu_item
|
|
new_item["scale"] = 0.1
|
|
new_item["format"] = "%1.1f"
|
|
return new_item
|
|
else :
|
|
return menu_item
|
|
|
|
# def func_caculate_Is(device : class_modbus_comm_device, menu_item, mqtt_dict : dict = None) :
|
|
# format_str = utils.dict_or_object_get_attr(menu_item, "format", "%4.2f")
|
|
# try :
|
|
# Ia = device.comm_get_value_from_mqtt_name("Ia")
|
|
# Ib = device.comm_get_value_from_mqtt_name("Ib")
|
|
# Ic = device.comm_get_value_from_mqtt_name("Ic")
|
|
# Is = (Ia + Ib + Ic) / 3
|
|
# except Exception as e :
|
|
# Is = 0.00
|
|
# Is_str = format_str%(Is)
|
|
# mqtt_dict["Is"] = Is_str
|
|
|
|
#视频触发
|
|
def func_video_trigger(device : class_modbus_comm_device, menu_item, mqtt_dict : dict = None) :
|
|
value = device.comm_get_value_from_menu_item(menu_item)
|
|
if value == None :
|
|
#通讯未建立
|
|
return
|
|
|
|
value = round(value)
|
|
in_position = (value >> 10) & 0x1
|
|
out_position = (value >> 9) & 0x1
|
|
now_time = time.time()
|
|
if hasattr(device, "MqttVideoActive") == False:
|
|
#动态添加视频触发所需的变量
|
|
device.MqttVideoActive = False
|
|
device.MqttVideoBaseTime = now_time
|
|
device.DI_SwitchInPosition = in_position
|
|
device.DI_SwitchQuitPosition = out_position
|
|
|
|
if in_position != device.DI_SwitchInPosition or out_position != device.DI_SwitchQuitPosition:
|
|
#开关进到位与 开关退到位信号, 当这两个状态发生变化时, 触发20秒的视频
|
|
device.MqttVideoActive = True
|
|
device.MqttVideoBaseTime = now_time
|
|
mqtt_dict["VideoActive"] = "1"
|
|
if device.MqttVideoActive :
|
|
#视频延时20后主动关闭视频显示
|
|
if now_time - device.MqttVideoBaseTime > 20.0 :
|
|
mqtt_dict["VideoActive"] = "0"
|
|
device.MqttVideoActive = False
|
|
|
|
device.DI_SwitchInPosition = in_position
|
|
device.DI_SwitchQuitPosition = out_position
|
|
|
|
|
|
COLOR_RED = "#EE2D2D"
|
|
COLOR_GREEN = "#83BF6E"
|
|
|
|
def func_process_car_message(device : class_modbus_comm_device, menu_item, mqtt_dict : dict = None) :
|
|
car_pos_value = device.comm_get_value_from_menu_item(menu_item)
|
|
if car_pos_value == None or mqtt_dict == None:
|
|
return
|
|
car_msg = get_alias_value_str("alias_car_position", car_pos_value)
|
|
if car_msg != None :
|
|
mqtt_dict["CarPositionMsg"] = car_msg
|
|
|
|
def func_process_alarm_message(device : class_modbus_comm_device, menu_item, mqtt_dict : dict = None) :
|
|
alarm_id = device.comm_get_value_from_menu_item(menu_item)
|
|
if alarm_id == None or mqtt_dict == None:
|
|
#通讯未建立
|
|
return
|
|
alarm_msg = get_alias_value_str("alias_alarm", alarm_id)
|
|
if alarm_msg != None :
|
|
alarm_msg_dict = {}
|
|
if alarm_id > 0 :
|
|
alarm_msg_dict["value"] = alarm_msg
|
|
alarm_msg_dict["color"] = COLOR_RED
|
|
else :
|
|
alarm_msg_dict["value"] = alarm_msg
|
|
alarm_msg_dict["color"] = COLOR_GREEN
|
|
|
|
mqtt_dict["AlarmMessage"] = alarm_msg_dict
|
|
|
|
mqtt_video_trigger = [
|
|
{
|
|
"name": "视频触发",
|
|
"addr": "8015",
|
|
"call" : func_video_trigger,
|
|
},
|
|
]
|
|
|
|
mqtt_time_update = [
|
|
{
|
|
"name": "Year",
|
|
"addr": "2300",
|
|
"format" : "%04.0f",
|
|
"mqtt" : "Year",
|
|
},
|
|
{
|
|
"name": "Month",
|
|
"addr": "2301",
|
|
"format" : "%02.0f",
|
|
"mqtt" : "Month",
|
|
},
|
|
{
|
|
"name": "Day",
|
|
"addr": "2302",
|
|
"format" : "%02.0f",
|
|
"mqtt" : "Day",
|
|
},
|
|
{
|
|
"name": "Hour",
|
|
"addr": "2303",
|
|
"format" : "%02.0f",
|
|
"mqtt" : "Hour",
|
|
},
|
|
{
|
|
"name": "Minute",
|
|
"addr": "2304",
|
|
"format" : "%02.0f",
|
|
"mqtt" : "Minute",
|
|
},
|
|
{
|
|
"name": "Second",
|
|
"addr": "2305",
|
|
"format" : "%02.0f",
|
|
"mqtt" : "Second",
|
|
},
|
|
{
|
|
"name": "SetupTime",
|
|
"addr": "2305",
|
|
"mqtt" : "SetupTime",
|
|
"action" : "SetupTime",
|
|
},
|
|
]
|
|
|
|
mqtt_pack_param = [
|
|
#系统设置
|
|
{
|
|
"name": "温度设定",
|
|
"addr": "8423",
|
|
"scale" : 1,
|
|
"format": "%03.0f",
|
|
"mqtt" : "Temperature",
|
|
},
|
|
{
|
|
"name": "瓦斯触点",
|
|
"addr": "8190",
|
|
"alias" : "alias_input",
|
|
"mqtt" : "Gas",
|
|
},
|
|
{
|
|
"name": "瓦斯延时",
|
|
"addr": "8191",
|
|
"scale" : 0.01,
|
|
"format": "%06.2f",
|
|
"mqtt" : "GasDelay",
|
|
},
|
|
{
|
|
"name": "瓦斯浓度",
|
|
"addr": "8237",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"mqtt" : "GasConcentration",
|
|
},
|
|
{
|
|
"name": "风电触点",
|
|
"addr": "8248",
|
|
"alias" : "alias_input",
|
|
"mqtt" : "Fan",
|
|
},
|
|
{
|
|
"name": "风电延时",
|
|
"addr": "8234",
|
|
"scale" : 0.01,
|
|
"format": "%06.2f",
|
|
"mqtt" : "FanDelay",
|
|
},
|
|
{
|
|
"name": "远近控模式",
|
|
"addr": "8558",
|
|
"alias" : "alias_remote",
|
|
"mqtt" : "FarAndNearMode",
|
|
},
|
|
{
|
|
"name": "维修模式",
|
|
"addr": "8565",
|
|
"alias" : "alias_bool",
|
|
"mqtt" : "MaintenanceMode",
|
|
},
|
|
|
|
|
|
#电流参数
|
|
{
|
|
"name": "照明额定电流",
|
|
"unit": "A",
|
|
"addr": "8200",
|
|
"scale" : 1.0,
|
|
"format": "%04.0f",
|
|
"action": "rate_current",
|
|
"mqtt" : "RateCurrent",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
|
|
{
|
|
"name": "照明短路倍数",
|
|
"unit": "Ie",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"addr": "8201",
|
|
"min" : 1.0,
|
|
"max" : 10.0,
|
|
"mqtt" : "ShortLevel",
|
|
},
|
|
{
|
|
"name": "照明短路延时",
|
|
"unit": "ms",
|
|
"scale" : 1.0,
|
|
"format": "%03.0f",
|
|
"addr": "8198",
|
|
"min" : 0.0,
|
|
"max" : 200.0,
|
|
"mqtt" : "ShortDelay",
|
|
},
|
|
{
|
|
"name": "互感器类型",
|
|
"alias" :"alias_sensor",
|
|
"addr": "8207",
|
|
"mqtt" : "Sensor",
|
|
},
|
|
{
|
|
"name": "不平衡值",
|
|
"unit": "%",
|
|
"addr": "8213",
|
|
"scale" : 1.0,
|
|
"format": "%03.0f",
|
|
"min" : 10.0,
|
|
"max" : 100.0,
|
|
"mqtt" : "UnbalanceLevel",
|
|
},
|
|
{
|
|
"name": "不平衡延时",
|
|
"unit": "s",
|
|
"addr": "8197",
|
|
"scale" : 0.1,
|
|
"format": "%04.1f",
|
|
"mqtt" : "UnbalanceDelay",
|
|
},
|
|
{
|
|
"name": "定时限过流",
|
|
"unit": "Ie",
|
|
"addr": "8239",
|
|
"scale" : 0.01,
|
|
"format": "%04.2f",
|
|
"mqtt" : "TimeOvercurrent",
|
|
},
|
|
{
|
|
"name": "定时限过流延时",
|
|
"unit": "ms",
|
|
"addr": "8240",
|
|
"scale" : 1,
|
|
"format": "%05.0f",
|
|
"mqtt" : "TimeOvercurrentDelay",
|
|
},
|
|
{
|
|
"name": "定时限短路",
|
|
"unit": "Ie",
|
|
"addr": "8523",
|
|
"scale" : 0.01,
|
|
"format": "%04.2f",
|
|
"mqtt" : "TimeLimitcurrent",
|
|
},
|
|
{
|
|
"name": "定时限短路延时",
|
|
"unit": "ms",
|
|
"addr": "8524",
|
|
"scale" : 1,
|
|
"format": "%04.0f",
|
|
"mqtt" : "TimeLimitcurrentDelay",
|
|
},
|
|
{
|
|
"name": "Is 校正",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format": "%04.2f",
|
|
"addr": "8494",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
"mqtt" : "CorrectIs",
|
|
},
|
|
{
|
|
"name": "信号Ie",
|
|
"unit": "A",
|
|
"addr": "8492",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"mqtt" : "CurrentIs",
|
|
},
|
|
{
|
|
"name": "信号短路倍数",
|
|
"unit": "Ie",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"addr": "8493",
|
|
"mqtt" : "ShortIs",
|
|
},
|
|
|
|
{
|
|
"name": "B相电流",
|
|
"alias": "alias_current",
|
|
"addr": "8244",
|
|
"mqtt" : "CurrentB"
|
|
},
|
|
|
|
|
|
#电压参数
|
|
{
|
|
"name": "额定电压",
|
|
"addr": "8211",
|
|
"alias": "alias_voltage",
|
|
"mqtt" : "RateVoltage",
|
|
},
|
|
{
|
|
"name": "欠压比值",
|
|
"unit": "%",
|
|
"addr": "8202",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 100.0,
|
|
"mqtt" : "PercentLowVoltage",
|
|
},
|
|
{
|
|
"name": "欠压延时",
|
|
"unit": "s",
|
|
"addr": "8177",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"min" : 0.1,
|
|
"max" : 60.0,
|
|
"mqtt" : "DelayLowVoltage",
|
|
},
|
|
{
|
|
"name": "过压比值",
|
|
"unit": "%",
|
|
"addr": "8224",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 100.0,
|
|
"max" : 150.0,
|
|
"mqtt" : "PercentHighVoltage",
|
|
},
|
|
{
|
|
"name": "过压延时",
|
|
"unit": "s",
|
|
"addr": "8176",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"min" : 0.1,
|
|
"max" : 60.0,
|
|
"mqtt" : "DelayHighVoltage",
|
|
},
|
|
{
|
|
"name": "Ua校正",
|
|
"unit": "%",
|
|
"addr": "8220",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
"mqtt" : "CorrectUa",
|
|
},
|
|
{
|
|
"name": "Ub校正",
|
|
"unit": "%",
|
|
"addr": "8221",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
"mqtt" : "CorrectUb",
|
|
},
|
|
{
|
|
"name": "Uc校正",
|
|
"unit": "%",
|
|
"addr": "8222",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
"mqtt" : "CorrectUc",
|
|
},
|
|
{
|
|
"name": "Us校正",
|
|
"unit": "%",
|
|
"addr": "8214",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
"mqtt" : "CorrectUs",
|
|
},
|
|
|
|
|
|
#漏电参数
|
|
{
|
|
"name": "零序电流",
|
|
"addr": "2007",
|
|
"unit": "mA",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"mqtt" : "KD.Io",
|
|
"action" : "Visible_KD", #馈电模式所需菜单
|
|
},
|
|
{
|
|
"name": "零序电压",
|
|
"addr": "2008",
|
|
"unit": "V",
|
|
"scale" : 1.0,
|
|
"format" : "%04.0f",
|
|
"mqtt" : "KD.Uo",
|
|
"action" : "Visible_KD", #馈电模式菜单有效
|
|
},
|
|
{
|
|
"name": "漏电延时",
|
|
"addr": "8205",
|
|
"unit": "ms",
|
|
"scale" : 1.0,
|
|
"format" : "%03.0f",
|
|
"mqtt" : "LeakageDelay",
|
|
"action" : "Visible_KD_GB", #馈电, 高爆模式所需菜单
|
|
},
|
|
{
|
|
"name": "串联电阻",
|
|
"addr": "8236",
|
|
"unit": "K",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"mqtt" : "SeriesResistor"
|
|
},
|
|
{
|
|
"name": "照明闭锁值",
|
|
"addr": "8204",
|
|
"unit": "K",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Hide_GB", #高爆模式下隐藏菜单
|
|
"mqtt" : "BlockResistor"
|
|
},
|
|
{
|
|
"name": "Uo校正值",
|
|
"addr": "8187",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Visible_KD_GB", #馈电与高爆模式菜单有效
|
|
"mqtt" : "CorrectUo"
|
|
},
|
|
{
|
|
"name": "Io校正值",
|
|
"addr": "8196",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Visible_KD_GB", #馈电与高爆模式菜单有效
|
|
"mqtt" : "CorrectIo"
|
|
},
|
|
{
|
|
"name": "检测电压",
|
|
"addr": "8253",
|
|
"alias": "alias_measure_v",
|
|
"mqtt" : "MeasureV"
|
|
},
|
|
{
|
|
"name": "漏电投入延时",
|
|
"addr": "8252",
|
|
"unit": "S",
|
|
"scale" : 0.1,
|
|
"format" : "%04.1f",
|
|
"action" : "Hide_GB", #高爆模式下隐藏菜单
|
|
"default": 3.0,
|
|
"mqtt" : "DelayLeakageTrip"
|
|
},
|
|
|
|
#保护参数投入
|
|
{
|
|
"name": "短路保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.1",
|
|
"mqtt" : "ProtectShort",
|
|
},
|
|
{
|
|
"name": "信号短路保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8175.15",
|
|
"mqtt" : "ProtectIsShort",
|
|
},
|
|
{
|
|
"name": "过载保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.3",
|
|
"mqtt" : "ProtectOverLoad",
|
|
},
|
|
{
|
|
"name": "电流断相保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.4",
|
|
"mqtt" : "ProtectCurrentPhaseOff",
|
|
},
|
|
{
|
|
"name": "不平衡保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.2",
|
|
"mqtt" : "ProtectImbalance",
|
|
},
|
|
{
|
|
"name": "漏电闭锁保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.10",
|
|
"mqtt" : "ProtectLeakage"
|
|
},
|
|
{
|
|
"name": "定时限过载保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.11",
|
|
"mqtt" : "ProtectTimeLimitOverload"
|
|
},
|
|
{
|
|
"name": "定时限短路保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.12",
|
|
"mqtt" : "ProtectTimeLimitShortCircuit",
|
|
},
|
|
{
|
|
"name": "欠压保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.1",
|
|
"mqtt" : "ProtectUnderVoltage",
|
|
},
|
|
{
|
|
"name": "过压保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.0",
|
|
"mqtt" : "ProtectOverVoltage",
|
|
},
|
|
{
|
|
"name": "电压断相保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.2",
|
|
"mqtt" : "ProtectVoltagePhaseOff",
|
|
},
|
|
{
|
|
"name": "漏电动作保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.6",
|
|
"mqtt" : "ProtectLeakageAction",
|
|
},
|
|
{
|
|
"name": "温度报警保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.8",
|
|
"mqtt" : "ProtectTemperatureAlarm",
|
|
},
|
|
|
|
#通讯设置
|
|
{
|
|
"name": "485地址",
|
|
"addr": "8212",
|
|
"format": "%03.0f",
|
|
"mqtt" : "485Address",
|
|
},
|
|
{
|
|
"name": "485波特率",
|
|
"alias": "alias_baud",
|
|
"addr": "8188",
|
|
"mqtt" : "485Baud",
|
|
},
|
|
{
|
|
"name": "485校验",
|
|
"alias": "alias_parity",
|
|
"addr": "8194",
|
|
"mqtt" : "485Parity",
|
|
},
|
|
{
|
|
"name": "CAN地址",
|
|
"format": "%03.0f",
|
|
"addr": "8440",
|
|
"mqtt" : "CANAddress",
|
|
},
|
|
{
|
|
"name": "CAN波特率",
|
|
"alias": "alias_can_baud",
|
|
"addr": "8439",
|
|
"mqtt" : "CANBaud",
|
|
},
|
|
]
|
|
|
|
mqtt_pack_measure = [
|
|
{
|
|
"name": "SwitchStatus",
|
|
"addr": "8162.0",
|
|
"alias": Alias.alias_onoff,
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_SWITCH_STATUS,
|
|
"measure" : True,
|
|
"mqtt" : "SwitchStatus",
|
|
},
|
|
{
|
|
"name": "AlarmId",
|
|
"addr": "8166",
|
|
"alias": Alias.alias_alarm,
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_SWITCH_ALARM,
|
|
"measure" : True,
|
|
"mqtt" : "AlarmId",
|
|
},
|
|
{
|
|
"name": "AlarmMessage",
|
|
"addr": "8166",
|
|
"alias": Alias.alias_alarm,
|
|
"call" : func_process_alarm_message,
|
|
},
|
|
{
|
|
"name": "CarPositionMsg",
|
|
"addr": "8015.10#2",
|
|
"alias": Alias.alias_car_position,
|
|
"call" : func_process_car_message,
|
|
},
|
|
{
|
|
"name": "Ia",
|
|
"unit": "A",
|
|
"addr": "8156",
|
|
"format": "%05.1f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_IA,
|
|
"measure" : True,
|
|
"mqtt" : "Ia",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Ib",
|
|
"unit": "A",
|
|
"addr": "8157",
|
|
"format": "%05.1f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_IB,
|
|
"measure" : True,
|
|
"mqtt" : "Ib",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Ic",
|
|
"unit": "A",
|
|
"addr": "8158",
|
|
"format": "%05.1f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_IC,
|
|
"measure" : True,
|
|
"mqtt" : "Ic",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Is",
|
|
"unit": "A",
|
|
"addr": "8142",
|
|
"format": "%05.2f",
|
|
"measure" : True,
|
|
"mqtt" : "Is",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Voltage",
|
|
"unit": "V",
|
|
"addr": "8153",
|
|
"format": "%05.0f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_UAB,
|
|
"measure" : True,
|
|
"mqtt" : "Voltage",
|
|
},
|
|
{
|
|
"name": "Current",
|
|
"unit": "A",
|
|
"addr": "8156",
|
|
"format": "%05.1f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_IA,
|
|
"measure" : True,
|
|
"mqtt" : "Current",
|
|
},
|
|
{
|
|
"name": "Power",
|
|
"unit": "kw",
|
|
"addr": "8167",
|
|
"format": "%07.0f",
|
|
"measure" : True,
|
|
"mqtt" : "Power",
|
|
},
|
|
{
|
|
"name": "Electricity",
|
|
"unit": "kwh",
|
|
"addr": "8160#2",
|
|
"format": "%07.0f",
|
|
"measure" : True,
|
|
"mqtt" : "Electricity",
|
|
},
|
|
{
|
|
"name": "Uab",
|
|
"unit": "V",
|
|
"addr": "8153",
|
|
"format": "%05.0f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_UAB,
|
|
"measure" : True,
|
|
"mqtt" : "Uab",
|
|
},
|
|
{
|
|
"name": "Ubc",
|
|
"unit": "V",
|
|
"addr": "8154",
|
|
"format": "%05.0f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_UBC,
|
|
"measure" : True,
|
|
"mqtt" : "Ubc",
|
|
},
|
|
{
|
|
"name": "Uca",
|
|
"unit": "V",
|
|
"addr": "8155",
|
|
"format": "%05.0f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_UCA,
|
|
"measure" : True,
|
|
"mqtt" : "Uca",
|
|
},
|
|
# {
|
|
# "name": "Uo",
|
|
# "unit": "V",
|
|
# "addr": "8152",
|
|
# "format": "%05.1f",
|
|
# "remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_UO,
|
|
# "measure" : True,
|
|
# "mqtt" : "Uo",
|
|
# },
|
|
# {
|
|
# "name": "Io",
|
|
# "unit": "mA",
|
|
# "addr": "8151",
|
|
# "format": "%05.1f",
|
|
# "scale" : 1.0,
|
|
# "remap_addr" : remap.COMM_REMAP_MEASURE_FLOAT_IO,
|
|
# "measure" : True,
|
|
# "mqtt" : "Io",
|
|
# },
|
|
{
|
|
"name": "Ro",
|
|
"unit": "K",
|
|
"addr": "8150",
|
|
"scale": 0.1,
|
|
"format": "%05.1f",
|
|
"remap_addr": remap.COMM_REMAP_MEASURE_FLOAT_RO,
|
|
"measure" : True,
|
|
"mqtt" : "Ro",
|
|
},
|
|
{
|
|
"name": "合闸次数",
|
|
"addr": "8169",
|
|
"format": "%06.0f",
|
|
"property": MENU_PROPERTY_READ_ONLY,
|
|
"mqtt" : "OnCount",
|
|
},
|
|
|
|
# {
|
|
# "name": "Is",
|
|
# "addr": "8171",
|
|
# "scale": 0.01,
|
|
# "format": "%04.2f",
|
|
# "measure" : True,
|
|
# "call" : func_caculate_Is,
|
|
# },
|
|
|
|
# {
|
|
# "name": "A相上",
|
|
# "addr": "8056",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Aup",
|
|
# },
|
|
|
|
# {
|
|
# "name": "B相上",
|
|
# "addr": "8057",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Bup",
|
|
# },
|
|
# {
|
|
# "name": "C相上",
|
|
# "addr": "8058",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Cup",
|
|
# },
|
|
# {
|
|
# "name": "A相下",
|
|
# "addr": "8059",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Adown",
|
|
# },
|
|
# {
|
|
# "name": "B相下",
|
|
# "addr": "8060",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Bdown",
|
|
# },
|
|
# {
|
|
# "name": "C相下",
|
|
# "addr": "8061",
|
|
# "format": "%05.1f",
|
|
# "measure" : True,
|
|
# "mqtt" : "Cdown",
|
|
# },
|
|
]
|
|
|
|
mqtt_pack_alarm = [
|
|
{
|
|
"name": "AlarmCode",
|
|
"addr": "8121",
|
|
"alias": "alias_alarm",
|
|
"mqtt" : "AlarmCode",
|
|
},
|
|
{
|
|
"name": "AlarmTest",
|
|
"addr": "8138",
|
|
"alias": "alias_alarm_type",
|
|
"format" : "%1.0f",
|
|
"mqtt" : "AlarmTest",
|
|
},
|
|
{
|
|
"name": "Ua",
|
|
"addr": "8122",
|
|
"format" : "%1.0f",
|
|
"mqtt" : "AlarmUa",
|
|
},
|
|
{
|
|
"name": "Ub",
|
|
"addr": "8123",
|
|
"format" : "%1.0f",
|
|
"mqtt" : "AlarmUb",
|
|
},
|
|
{
|
|
"name": "Uc",
|
|
"addr": "8124",
|
|
"format" : "%1.0f",
|
|
"mqtt" : "AlarmUc",
|
|
},
|
|
{
|
|
"name": "Ia",
|
|
"addr": "8125",
|
|
"format" : "%1.0f",
|
|
"mqtt": "AlarmIa",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Ib",
|
|
"addr": "8126",
|
|
"format" : "%1.0f",
|
|
"mqtt": "AlarmIb",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Ic",
|
|
"addr": "8127",
|
|
"format" : "%1.0f",
|
|
"mqtt": "AlarmIc",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "Ro",
|
|
"addr": "8128",
|
|
"format" : "%5.1f",
|
|
"scale" : 0.1,
|
|
"mqtt": "AlarmRo",
|
|
},
|
|
{
|
|
"name": "Is",
|
|
"addr": "8142",
|
|
"format": "%05.2f",
|
|
"mqtt" : "AlarmIs",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
# {
|
|
# "name": "Io",
|
|
# "addr": "8129",
|
|
# "format" : "%1.1f",
|
|
# "scale" : 0.1,
|
|
# "mqtt": "AlarmIo",
|
|
# },
|
|
# {
|
|
# "name": "Uo",
|
|
# "addr": "8130",
|
|
# "format" : "%5.0f",
|
|
# "scale" : 1.0,
|
|
# "mqtt": "AlarmUo",
|
|
# },
|
|
{
|
|
"name": "Year",
|
|
"addr": "8131",
|
|
"format" : "%4.0f",
|
|
"mqtt": "AlarmYear",
|
|
},
|
|
{
|
|
"name": "Month",
|
|
"addr": "8132",
|
|
"format" : "%2.0f",
|
|
"mqtt": "AlarmMonth",
|
|
},
|
|
{
|
|
"name": "Day",
|
|
"addr": "8133",
|
|
"format" : "%2.0f",
|
|
"mqtt": "AlarmDay",
|
|
},
|
|
{
|
|
"name": "Hour",
|
|
"addr": "8134",
|
|
"format" : "%2.0f",
|
|
"mqtt": "AlarmHour",
|
|
},
|
|
{
|
|
"name": "Minute",
|
|
"addr": "8135",
|
|
"format" : "%2.0f",
|
|
"mqtt": "AlarmMinute",
|
|
},
|
|
{
|
|
"name": "Second",
|
|
"addr": "8136",
|
|
"format" : "%2.0f",
|
|
"mqtt": "AlarmSecond",
|
|
},
|
|
]
|
|
|
|
menu_data = [
|
|
{
|
|
"name": "数据页面",
|
|
"sub_menu": "menu_curve_physical",
|
|
},
|
|
]
|
|
|
|
#曲线菜单
|
|
menu_curve_physical = [
|
|
{
|
|
"name": "物理曲线",
|
|
"property" : MENU_PROPERTY_READ_ONLY,
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
#曲线菜单
|
|
menu_curve_adc = [
|
|
{
|
|
"name": "ADC曲线",
|
|
"property" : MENU_PROPERTY_READ_ONLY,
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
#谐波菜单
|
|
menu_curve_harmonic = [
|
|
{
|
|
"name": "谐波曲线",
|
|
"property" : MENU_PROPERTY_READ_ONLY,
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
modbus_comm_table = [
|
|
{"name":"alarm", "reg_addr":8120, "reg_count":25, "cycle": 0, "mqtt_pack": mqtt_pack_alarm},
|
|
{"name":"measure", "reg_addr":8000, "reg_count":62, "cycle": 500, "mqtt_pack": mqtt_video_trigger},
|
|
{"name":"measure", "reg_addr":8139, "reg_count":35, "cycle": 200, "mqtt_pack": mqtt_pack_measure},
|
|
{"name":"comm_cmd", "reg_addr":100618, "reg_count":32, "cycle": 100},
|
|
#{"name":"key_group", "reg_addr":1000, "reg_count":18, "cycle": 20},
|
|
# {"name":"para_group", "reg_addr":2000, "reg_count":32, "cycle": 0},
|
|
{"name":"time_group", "reg_addr":2300, "reg_count":6, "cycle": 1000},
|
|
{"name":"param/info", "reg_addr":8174, "reg_count":96, "cycle": 3000, "mqtt_pack" : mqtt_pack_param},
|
|
{"name":"param/info", "reg_addr":8180, "reg_count":60, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":8490, "reg_count":10, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":8520, "reg_count":20, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":8550, "reg_count":30, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":8435, "reg_count":10, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":8420, "reg_count":10, "cycle": 3000},
|
|
{"name":"param/info", "reg_addr":2000, "reg_count":32, "cycle": 3000},
|
|
#{"name":"global_status", "reg_addr":3200, "reg_count":6, "cycle": 400},
|
|
]
|
|
|
|
def func_comm_table_trigger_check(object_comm_table, comm_table_item) :
|
|
if not hasattr(comm_table_item, "name"):
|
|
return False
|
|
return False
|
|
|
|
menu_current = [ #菜单表[menu_current],存储菜单项属性字典<>
|
|
{
|
|
"name": "额定电流",
|
|
"unit": "A",
|
|
"addr": "8200",
|
|
"action": "rate_current",
|
|
"adjust" : func_adjust_current_menu_item,
|
|
},
|
|
{
|
|
"name": "短路倍数",
|
|
"unit": "Ie",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"addr": "8201",
|
|
"min" : 1.0,
|
|
"max" : 10.0,
|
|
},
|
|
{
|
|
"name": "短路延时",
|
|
"unit": "ms",
|
|
"scale" : 1.0,
|
|
"format": "%03.0f",
|
|
"addr": "8198",
|
|
"min" : 0.0,
|
|
"max" : 200.0,
|
|
#"mqtt" : "ShortDelay",
|
|
},
|
|
{
|
|
"name": "互感器类型",
|
|
"alias" : Alias.alias_sensor,
|
|
"addr": "8207",
|
|
},
|
|
# {
|
|
# "name": "反时限表",
|
|
# "alias" :"alias_table",
|
|
# "addr": "8178",
|
|
# },
|
|
{
|
|
"name": "不平衡值",
|
|
"unit": "%",
|
|
"addr": "8213",
|
|
"scale" : 1.0,
|
|
"format": "%03.0f",
|
|
"min" : 10.0,
|
|
"max" : 100.0,
|
|
#"mqtt" : "UnbalanceLevel",
|
|
},
|
|
{
|
|
"name": "不平衡延时",
|
|
"unit": "s",
|
|
"addr": "8197",
|
|
"scale" : 0.1,
|
|
"format": "%04.1f",
|
|
#"mqtt" : "UnbalanceDelay",
|
|
},
|
|
{
|
|
"name": "B相电流",
|
|
"alias": "alias_current",
|
|
"addr": "8244",
|
|
},
|
|
{
|
|
"name": "Ia 校正",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"addr": "8217",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectIa",
|
|
},
|
|
{
|
|
"name": "Ib 校正",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"addr": "8218",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectIb",
|
|
},
|
|
{
|
|
"name": "Ic 校正",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"addr": "8219",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectIc",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_voltage = [
|
|
{
|
|
"name": "额定电压",
|
|
"addr": "8211",
|
|
"alias": "alias_voltage",
|
|
"default": 0,
|
|
},
|
|
{
|
|
"name": "欠压比值",
|
|
"unit": "%",
|
|
"addr": "8202",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 100.0,
|
|
#"mqtt" : "PercentLowVoltage",
|
|
},
|
|
{
|
|
"name": "欠压延时",
|
|
"unit": "s",
|
|
"addr": "8177",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"min" : 0.1,
|
|
"max" : 60.0,
|
|
#"mqtt" : "DelayLowVoltage",
|
|
},
|
|
{
|
|
"name": "过压比值",
|
|
"unit": "%",
|
|
"addr": "8224",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 100.0,
|
|
"max" : 150.0,
|
|
#"mqtt" : "PercentHighVoltage",
|
|
},
|
|
{
|
|
"name": "过压延时",
|
|
"unit": "s",
|
|
"addr": "8176",
|
|
"scale" : 0.01,
|
|
"format": "%05.2f",
|
|
"min" : 0.1,
|
|
"max" : 60.0,
|
|
#"mqtt" : "DelayHighVoltage",
|
|
},
|
|
{
|
|
"name": "Ua校正",
|
|
"unit": "%",
|
|
"addr": "8220",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectUa",
|
|
},
|
|
{
|
|
"name": "Ub校正",
|
|
"unit": "%",
|
|
"addr": "8221",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectUb",
|
|
},
|
|
{
|
|
"name": "Uc校正",
|
|
"unit": "%",
|
|
"addr": "8222",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectUc",
|
|
},
|
|
{
|
|
"name": "Us校正",
|
|
"unit": "%",
|
|
"addr": "8214",
|
|
"scale" : 0.1,
|
|
"format": "%05.1f",
|
|
"min" : 60.0,
|
|
"max" : 130.0,
|
|
#"mqtt" : "CorrectUs",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_alarm_display = [
|
|
{
|
|
"name": "当前故障",
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
menu_alarm_curve = [
|
|
{
|
|
"name": "录波曲线",
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
menu_alarm_history = [
|
|
{
|
|
"name": "故障查询",
|
|
"action" : "Idle",
|
|
},
|
|
]
|
|
|
|
menu_alarm = [
|
|
{
|
|
"name": "故障查询",
|
|
"sub_menu": "menu_alarm_history",
|
|
},
|
|
{
|
|
"name": "故障清除",
|
|
"action": "alarm_clear",
|
|
},
|
|
{
|
|
"name": "合闸清零",
|
|
"action": "clear_oncount",
|
|
},
|
|
{
|
|
"name": "合闸次数",
|
|
"addr": "8169",
|
|
"format": "%05.0f",
|
|
"property": MENU_PROPERTY_READ_ONLY,
|
|
#"mqtt" : "OnCount",
|
|
},
|
|
{
|
|
"name": "电量清除",
|
|
"action": "clear_kwh",
|
|
},
|
|
{
|
|
"name": "累计时间清除",
|
|
"action": "clear_time",
|
|
},
|
|
{
|
|
"name": "累计合闸时间",
|
|
"addr": "8016#2",
|
|
"unit": "Min",
|
|
"scale": 0.0166666666666667,
|
|
"format": "%07.0f",
|
|
"property": MENU_PROPERTY_READ_ONLY,
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_test = [
|
|
{
|
|
"name": "短路试验",
|
|
"action": "test",
|
|
"addr" : "100628",
|
|
"mqtt" : "TestShort",
|
|
},
|
|
{
|
|
"name": "漏电试验",
|
|
"action": "test",
|
|
"addr" : "100629",
|
|
"mqtt" : "TestIsolation",
|
|
},
|
|
{
|
|
"name": "过压试验",
|
|
"action": "test",
|
|
"addr" : "100641",
|
|
"mqtt" : "TestOverVoltage",
|
|
},
|
|
{
|
|
"name": "电流断相试验",
|
|
"action": "test",
|
|
"addr" : "100642",
|
|
"mqtt" : "TestBreak",
|
|
},
|
|
|
|
{
|
|
"name": "复归",
|
|
"action": "test",
|
|
"addr" : "100649",
|
|
"mqtt" : "TestRecover",
|
|
},
|
|
|
|
{
|
|
"name": "漏电试验配置",
|
|
"alias" : "alias_test",
|
|
"addr": "8265",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_protect_set = [
|
|
{
|
|
"name": "短路保护",
|
|
"alias": Alias.alias_bool,
|
|
"addr": "8192.1",
|
|
#"mqtt" : "ProtectShort",
|
|
},
|
|
{
|
|
"name": "不平衡保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.2",
|
|
#"mqtt" : "ProtectUnbalance",
|
|
},
|
|
{
|
|
"name": "反时限过流",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.3",
|
|
#"mqtt" : "ProtectOverCurrent",
|
|
},
|
|
{
|
|
"name": "过压保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.0",
|
|
#"mqtt" : "ProtectHighVotage",
|
|
},
|
|
{
|
|
"name": "欠压保护",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.1",
|
|
#"mqtt" : "ProtectLowVotage",
|
|
},
|
|
# {
|
|
# "name": "电压断相",
|
|
# "alias": "alias_bool",
|
|
# "addr": "8174.2",
|
|
# },
|
|
# {
|
|
# "name": "相序保护",
|
|
# "alias": "alias_bool",
|
|
# "addr": "8174.3",
|
|
# },
|
|
{
|
|
"name": "漏电闭锁",
|
|
"alias": "alias_bool",
|
|
"addr": "8192.10",
|
|
#"mqtt" : "ProtectIsolationLock",
|
|
},
|
|
{
|
|
"name": "漏电动作",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.6",
|
|
#"mqtt" : "ProtectIsolationAction",
|
|
},
|
|
# {
|
|
# "name": "选漏保护",
|
|
# "alias": "alias_bool",
|
|
# "addr": "8174.7",
|
|
# },
|
|
{
|
|
"name": "风电闭锁",
|
|
"alias": "alias_bool",
|
|
"addr": "8175.0",
|
|
#"mqtt" : "ProtectWindMotor",
|
|
},
|
|
{
|
|
"name": "瓦斯闭锁",
|
|
"alias": "alias_bool",
|
|
"addr": "8174.13",
|
|
#"mqtt" : "ProtectGasLock",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_comm_set = [
|
|
{
|
|
"name": "485地址",
|
|
"addr": "8212",
|
|
"format": "%03.0f",
|
|
},
|
|
{
|
|
"name": "485波特率",
|
|
"alias": "alias_baud",
|
|
"addr": "8188",
|
|
},
|
|
{
|
|
"name": "485校验",
|
|
"alias": "alias_parity",
|
|
"addr": "8194",
|
|
},
|
|
# {
|
|
# "name": "CAN地址",
|
|
# },
|
|
# {
|
|
# "name": "CAN波特率",
|
|
# "alias": "alias_can_baud",
|
|
# },
|
|
{
|
|
"name": "IP设置",
|
|
"addr": "8271#2",
|
|
"action": "ip",
|
|
},
|
|
{
|
|
"name": "IP网关",
|
|
"addr": "8273#2",
|
|
"action": "ip",
|
|
},
|
|
{
|
|
"name": "IP掩码",
|
|
"addr": "8275#2",
|
|
"action": "ip",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_system = [
|
|
{
|
|
"name": "工作模式",
|
|
"addr": "8231",
|
|
"alias": "alias_work_mode",
|
|
"property": MENU_PROPERTY_ENGINEER,
|
|
"action" : "Visible_CL", #磁力模式显示菜单
|
|
},
|
|
{
|
|
"name": "开关类型",
|
|
"alias": "alias_switch_type",
|
|
"addr": "8210",
|
|
"action" : "Visible_KD", #馈电模式显示菜单
|
|
},
|
|
{
|
|
"name": "控制模式",
|
|
"alias": "alias_remote",
|
|
"addr": "8262",
|
|
},
|
|
{
|
|
"name": "瓦斯触点",
|
|
"alias": "alias_input",
|
|
"addr": "8190",
|
|
},
|
|
{
|
|
"name": "瓦斯延时",
|
|
"unit": "S",
|
|
"addr": "8191",
|
|
"scale": 0.01,
|
|
"format": "%05.2f",
|
|
},
|
|
{
|
|
"name": "风电触点",
|
|
"alias": "alias_input",
|
|
"addr": "8248",
|
|
},
|
|
{
|
|
"name": "风电延时",
|
|
"unit": "S",
|
|
"addr": "8234",
|
|
"scale": 0.01,
|
|
"format": "%05.2f",
|
|
},
|
|
{
|
|
"name": "高水位延时",
|
|
"addr": "8267",
|
|
"unit": "S",
|
|
"scale": 0.1,
|
|
"format": "%04.1f",
|
|
"action" : "Visible_CL_WATER", #水位磁力模式显示
|
|
},
|
|
{
|
|
"name": "正反转延时",
|
|
"addr": "8266",
|
|
"unit": "ms",
|
|
"scale": 1.0,
|
|
"format": "%04.0f",
|
|
"action" : "Visible_CL_INV", #正反转磁力模式显示
|
|
},
|
|
{
|
|
"name": "维修模式",
|
|
"addr": "8260",
|
|
"alias": "alias_bool",
|
|
},
|
|
# {
|
|
# "name": "温度设定",
|
|
# "unit": "℃",
|
|
# "addr": "2030",
|
|
# "format": "%+03.0f",
|
|
# },
|
|
{
|
|
"name": "系统日期",
|
|
"addr": "2300#3",
|
|
"action": "date",
|
|
},
|
|
{
|
|
"name": "当前时间",
|
|
"addr": "2303#3",
|
|
"action": "time",
|
|
},
|
|
{
|
|
"name": "软件版本",
|
|
"addr": "8180",
|
|
"unit" : VERSION_DATE,
|
|
"scale": 0.01,
|
|
"format": "%.2f",
|
|
"property": MENU_PROPERTY_READ_ONLY,
|
|
},
|
|
{
|
|
"name": "系统密码",
|
|
"addr": "8181",
|
|
"format": "%04.0f",
|
|
"action": "password",
|
|
},
|
|
{
|
|
"name": "Us相位",
|
|
"alias": "alias_us_phase",
|
|
"addr": "8269",
|
|
},
|
|
{
|
|
"name": "重启",
|
|
"action": "restart",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_switch_cmd = [
|
|
{
|
|
"name": "通讯合闸",
|
|
"action": "write_bit",
|
|
"addr" : "100618",
|
|
"mqtt" : "SwitchOn",
|
|
},
|
|
{
|
|
"name": "通讯分闸",
|
|
"action": "write_bit",
|
|
"addr" : "100619",
|
|
"mqtt" : "SwitchOff",
|
|
},
|
|
{
|
|
"name": "通讯复位",
|
|
"action": "write_bit",
|
|
"addr" : "100620",
|
|
"mqtt" : "SwitchRst",
|
|
},
|
|
{
|
|
"name": "小车进控制",
|
|
"addr" : "100636",
|
|
"mqtt" : "CarForward",
|
|
},
|
|
{
|
|
"name": "小车退控制",
|
|
"addr" : "100637",
|
|
"mqtt" : "CarRetreat",
|
|
},
|
|
|
|
]
|
|
|
|
memu_setting = [
|
|
{
|
|
"name": "电流设置",
|
|
"sub_menu": Menu.menu_current,
|
|
},
|
|
{
|
|
"name": "电压设置",
|
|
"sub_menu": "menu_voltage"
|
|
},
|
|
{
|
|
"name": "漏电设置",
|
|
"sub_menu": "menu_leak"
|
|
},
|
|
{
|
|
"name": "系统设置",
|
|
"sub_menu": "menu_system"
|
|
},
|
|
{
|
|
"name": "保护设置",
|
|
"sub_menu": "menu_protect_set"
|
|
},
|
|
{
|
|
"name": "通讯设置",
|
|
"sub_menu": "menu_comm_set"
|
|
},
|
|
{
|
|
"name": "保护试验",
|
|
"sub_menu": Menu.menu_test #"menu_test"
|
|
},
|
|
{
|
|
"name": "故障查询",
|
|
"sub_menu": "menu_alarm"
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
menu_leak = [
|
|
{
|
|
"name": "漏电延时",
|
|
"addr": "8205",
|
|
"unit": "ms",
|
|
"scale" : 1.0,
|
|
"format" : "%03.0f",
|
|
"action" : "Visible_KD_GB", #馈电, 高爆模式所需菜单
|
|
},
|
|
{
|
|
"name": "零序电流",
|
|
"addr": "2007",
|
|
"unit": "mA",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
#"mqtt" : "KD.Io",
|
|
"action" : "Visible_KD", #馈电模式所需菜单
|
|
},
|
|
{
|
|
"name": "零序电压",
|
|
"addr": "2008",
|
|
"unit": "V",
|
|
"scale" : 1.0,
|
|
"format" : "%04.0f",
|
|
#"mqtt" : "KD.Uo",
|
|
"action" : "Visible_KD", #馈电模式菜单有效
|
|
},
|
|
{
|
|
"name": "零序电流",
|
|
"addr": "2007",
|
|
"unit": "A",
|
|
"scale" : 0.01,
|
|
"format" : "%05.2f",
|
|
"mqtt" : "GB.Io",
|
|
"action" : "Visible_GB", #高爆模式菜单有效
|
|
},
|
|
{
|
|
"name": "零序电压",
|
|
"addr": "2008",
|
|
"unit": "V",
|
|
"scale" : 1.0,
|
|
"format" : "%05.2f",
|
|
"mqtt" : "GB.Uo",
|
|
"action" : "Visible_GB", #高爆模式菜单有效
|
|
},
|
|
{
|
|
"name": "Uo校正值",
|
|
"addr": "8187",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Visible_KD_GB", #馈电与高爆模式菜单有效
|
|
},
|
|
{
|
|
"name": "Io校正值",
|
|
"addr": "8196",
|
|
"unit": "%",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Visible_KD_GB", #馈电与高爆模式菜单有效
|
|
},
|
|
{
|
|
"name": "闭锁电阻",
|
|
"addr": "8204",
|
|
"unit": "K",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
"action" : "Hide_GB", #高爆模式下隐藏菜单
|
|
},
|
|
{
|
|
"name": "串联电阻",
|
|
"addr": "8236",
|
|
"unit": "K",
|
|
"scale" : 0.1,
|
|
"format" : "%05.1f",
|
|
},
|
|
{
|
|
"name": "漏电投入延时",
|
|
"addr": "8252",
|
|
"unit": "S",
|
|
"scale" : 0.1,
|
|
"format" : "%04.1f",
|
|
"action" : "Hide_GB", #高爆模式下隐藏菜单
|
|
"default": 3.0
|
|
},
|
|
{
|
|
"name": "检测电压",
|
|
"addr": "8253",
|
|
"alias": Alias.alias_measure_v,
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
calibrate = [
|
|
{
|
|
"name": "999校正",
|
|
"action": "calibrate999",
|
|
"mqtt" : "Calibrate999",
|
|
},
|
|
{
|
|
"name": "0欧校正",
|
|
"action": "calibrate0",
|
|
"mqtt" : "Calibrate0",
|
|
},
|
|
{
|
|
"name": "以太网模块",
|
|
"alias": Alias.alias_eth,
|
|
"addr" : "8280",
|
|
},
|
|
{
|
|
"name": "LCD模块",
|
|
"alias": Alias.alias_lcd,
|
|
"addr" : "8281",
|
|
},
|
|
{
|
|
"name": "防越级模块",
|
|
"alias": Alias.alias_fyj,
|
|
"addr" : "8282",
|
|
},
|
|
{
|
|
"name": "设备型号",
|
|
"alias": Alias.alias_dev,
|
|
"addr" : "8270",
|
|
},
|
|
{
|
|
"name": "退出",
|
|
"action": "exit",
|
|
},
|
|
]
|
|
|
|
startup = [
|
|
{
|
|
"name": "退出",
|
|
},
|
|
]
|
|
|
|
menu_main = [
|
|
{
|
|
"name": "设置",
|
|
"sub_menu": "memu_setting",
|
|
},
|
|
{
|
|
"name": "数据",
|
|
"sub_menu": "menu_data",
|
|
},
|
|
{
|
|
"name": "报警",
|
|
"sub_menu": "menu_alarm_display",
|
|
},
|
|
{
|
|
"name": "标定",
|
|
"sub_menu": "calibrate",
|
|
"property": MENU_PROPERTY_ENGINEER,
|
|
},
|
|
]
|
|
|
|
mqtt_topic_subscribe = None
|
|
|
|
MENU_STARTUP_PAGE = 150
|
|
MENU_DISPLAY_PAGE = 2
|
|
MENU_ALARM_PAGE = 3
|
|
MENU_DATA_PAGE = 120
|
|
MENU_CL_MAIN_PAGE = 90
|
|
MENU_KD_MAIN_PAGE = 20
|
|
MENU_KD_MAIN_PAGE_LANGUAGE = 21
|
|
MENU_CURVE_PAGE = 10
|
|
MENU_ADC_CURVE_PAGE = 18
|
|
MENU_HARNOMIC_CURVE_PAGE = 19
|
|
|
|
menu_caption = [
|
|
{"name" : "startup", "menu" : startup, "caption": "启动页面", "page" : MENU_STARTUP_PAGE, "max_items" : 1},
|
|
{"name" : "menu_main", "menu" : menu_main, "caption": "主菜单", "page" : MENU_KD_MAIN_PAGE, "max_items" : 4},
|
|
{"name" : "menu_leak", "menu" : menu_leak, "caption": "漏电设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "memu_setting", "menu" : memu_setting, "caption": "参数设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_current", "menu" : menu_current, "caption": "电流设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_voltage", "menu" : menu_voltage, "caption": "电压设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_system", "menu" : menu_system, "caption": "系统设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_protect_set", "menu" : menu_protect_set, "caption": "保护设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_comm_set", "menu" : menu_comm_set, "caption": "通讯设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_alarm", "menu" : menu_alarm, "caption": "故障查询", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_alarm_display", "menu" : menu_alarm_display, "caption": "当前故障", "page" : MENU_ALARM_PAGE, "prev": menu_alarm_curve, "next": menu_alarm_curve, "max_items" : 1},
|
|
{"name" : "menu_alarm_curve", "menu" : menu_alarm_curve, "caption": "曲线故障", "page" : MENU_ADC_CURVE_PAGE, "prev": menu_alarm_display, "next": menu_alarm_display, "max_items" : 1},
|
|
|
|
{"name" : "menu_alarm_history", "menu" : menu_alarm_history, "caption": "故障查询", "page" : MENU_ALARM_PAGE, "max_items" : 1},
|
|
{"name" : "menu_test", "menu" : menu_test, "caption": "保护试验", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "mqtt_pack_alarm", "menu" : mqtt_pack_alarm, "caption": "报警数据", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "mqtt_pack_measure", "menu" : mqtt_pack_measure, "caption": "测量数据", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_data", "menu" : menu_data, "caption": "数据页面", "page" : MENU_DATA_PAGE, "max_items" : 8},
|
|
{"name" : "menu_curve_physical", "menu" : menu_curve_physical, "caption": "物理曲线", "page" : MENU_CURVE_PAGE, "prev": menu_curve_harmonic, "next": menu_curve_adc, "max_items" : 8},
|
|
{"name" : "menu_curve_adc", "menu" : menu_curve_adc, "caption": "ADC曲线", "page" : MENU_ADC_CURVE_PAGE, "prev": menu_curve_physical, "next": menu_curve_harmonic, "max_items" : 8},
|
|
{"name" : "menu_curve_harmonic", "menu" : menu_curve_harmonic, "caption": "谐波曲线", "page" : MENU_HARNOMIC_CURVE_PAGE, "prev": menu_curve_adc, "next": menu_curve_physical, "max_items" : 8},
|
|
{"name" : "calibrate", "menu" : calibrate, "caption": "标定页面", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "menu_switch_cmd", "menu" : menu_switch_cmd, "caption": "通讯操作", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "mqtt_pack_param", "menu" : mqtt_pack_param, "caption": "参数刷新", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
{"name" : "mqtt_video_trigger", "menu" : mqtt_video_trigger, "caption": "视频触发", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
|
|
{"name" : "mqtt_time_update", "menu" : mqtt_time_update, "caption": "时钟设置", "page" : MENU_DISPLAY_PAGE, "max_items" : 8},
|
|
]
|
|
|
|
|
|
# mqtt 故障查询函数
|
|
def func_alarm_query(device : class_modbus_comm_device, alarm_index = 0) :
|
|
result = device.protocol.modbus_write_regs(device.comm_addr, 8120, 1, alarm_index)
|
|
time.sleep(0.05)
|
|
alarm_regs = device.protocol.modbus_read_regs(device.comm_addr, 8121, 20)
|
|
if alarm_regs != None :
|
|
device.modbus_regs_flush(8121, 20, alarm_regs)
|
|
|
|
msg_alarm_dict = device.comm_item_trigger_mqtt_pack(mqtt_pack_alarm)
|
|
|
|
err_code = utils.dict_or_object_get_attr(msg_alarm_dict, "AlarmCode", 0)
|
|
err_code = int(err_code)
|
|
test_code = utils.dict_or_object_get_attr(msg_alarm_dict, "AlarmTest", 0)
|
|
test_code = int(test_code)
|
|
|
|
|
|
test_value_str = get_alias_value_str("alias_alarm_type", test_code)
|
|
if test_value_str == None:
|
|
test_value_str = " "
|
|
err_code_str = get_alias_value_str("alias_alarm", err_code)
|
|
if err_code_str == None:
|
|
err_code_str = " "
|
|
msg_alarm_dict["AlarmCodeMsg"] = err_code_str
|
|
msg_alarm_dict["AlarmTestMsg"] = test_value_str
|
|
msg_alarm_dict["index"] = alarm_index
|
|
msg : str = json.dumps(msg_alarm_dict, ensure_ascii=False)
|
|
|
|
if device.mqtt_thread :
|
|
device.mqtt_thread.publish("response/alarm/" + device.unique_name, msg)
|
|
|
|
# mqtt action处理函数
|
|
def func_action_process(device : class_modbus_comm_device, menu_item = None, value_str : str = None) :
|
|
action_str = utils.dict_or_object_get_attr(menu_item, "action", " ")
|
|
mqtt_name = utils.dict_or_object_get_attr(menu_item, "mqtt", " ")
|
|
result = None
|
|
|
|
if action_str == "SetupTime" : #设置保护器时间
|
|
numbers = re.findall(r'\d+', value_str)
|
|
if len(numbers) == 6 :
|
|
year = int(numbers[0])
|
|
month = int(numbers[1])
|
|
day = int(numbers[2])
|
|
hour = int(numbers[3])
|
|
minute = int(numbers[4])
|
|
second = int(numbers[5])
|
|
device.protocol.modbus_write_regs(device.comm_addr, 2300, 6, (year, month, day, hour, minute, second))
|
|
pass
|
|
if action_str == "calibrate999" :
|
|
result = device.protocol.modbus_write_regs(device.comm_addr, 8255, 0x2007)
|
|
if action_str == "calibrate0" :
|
|
result = device.protocol.modbus_write_regs(device.comm_addr, 8255, 0x2006)
|
|
if action_str == "write_bit" or action_str == "test":
|
|
comm_str = utils.dict_or_object_get_attr(menu_item, "addr", " ")
|
|
reg_addr, bit, reg_count = utils.comm_str_unpack(comm_str)
|
|
if reg_count == 1:
|
|
command_value = [1]
|
|
result = device.write_bit_register(reg_addr, command_value)
|
|
|
|
if device.mqtt_thread and result != None:
|
|
device.mqtt_thread.publish("response/action/" + device.unique_name, '{"name" : "%s", "result" : %d}'%(mqtt_name, result))
|
|
|
|
|
|
class class_menu_comm_device_config(class_comm_device_config):
|
|
def __init__(self):
|
|
pass
|
|
|
|
#@override get_alias_table
|
|
def get_alias_table(self) :
|
|
return alias_table
|
|
|
|
#@override get_comm_table
|
|
def get_comm_table(self) :
|
|
return modbus_comm_table, func_comm_table_trigger_check
|
|
|
|
#@override get_menu_top
|
|
def get_menu_top(self) :
|
|
return menu_main
|
|
|
|
def get_menu_caption_info(self) :
|
|
return menu_caption
|
|
|
|
#@override get_mqtt_table
|
|
def get_mqtt_table(self) :
|
|
return mqtt_topic_subscribe
|
|
|
|
def is_gb2312(self) :
|
|
return False
|
|
|
|
#comm_device_config的名字不要更改, 创建通讯配置类
|
|
comm_device_config = class_menu_comm_device_config()
|