feat: 修复急停信号异常
This commit is contained in:
parent
ce8483d298
commit
7457cd8b4c
@ -90,6 +90,6 @@
|
||||
}
|
||||
},
|
||||
"electricity": {
|
||||
"auto_start": true
|
||||
"auto_start": false
|
||||
}
|
||||
}
|
||||
BIN
db/jtDB.db
BIN
db/jtDB.db
Binary file not shown.
@ -2260,10 +2260,10 @@ class MainWindow(MainWindowUI):
|
||||
@Slot(int, str)
|
||||
def handle_error_1(self, error_code, error_desc):
|
||||
"""机器人视觉报警"""
|
||||
logging.info(f"[处理] 机器人视觉报警: {error_desc}")
|
||||
logging.info(f"[处理] 机械手报警: {error_desc}")
|
||||
from utils.register_handlers import Error1Handler
|
||||
error_handler = Error1Handler()
|
||||
detailed_desc = error_handler.error_map.get(error_code, f"机器人视觉报警-{error_code}")
|
||||
detailed_desc = error_handler.error_map.get(error_code, f"机械手报警-{error_code}")
|
||||
|
||||
# 保存故障码
|
||||
self.error_1 = error_code
|
||||
@ -2271,7 +2271,7 @@ class MainWindow(MainWindowUI):
|
||||
|
||||
# 只有当错误码为1、2或3时才弹框提示
|
||||
if error_code in [1, 2, 3]:
|
||||
QMessageBox.warning(self, "机器人视觉报警", f"机器人视觉报警: {detailed_desc}")
|
||||
QMessageBox.warning(self, "机械手报警", f"机械手报警: {detailed_desc}")
|
||||
# 获取Modbus连接
|
||||
modbus = ModbusUtils()
|
||||
client = modbus.get_client()
|
||||
|
||||
@ -173,7 +173,6 @@ class Error2Handler(RegisterHandler):
|
||||
self.callback = callback
|
||||
self.error_map = {
|
||||
0: "无报警",
|
||||
1: "急停报警",
|
||||
2: "贴标故障"
|
||||
}
|
||||
def handle_change(self, value):
|
||||
@ -246,20 +245,49 @@ class NGHandler(RegisterHandler):
|
||||
self.callback(value)
|
||||
|
||||
|
||||
class EmergencyStopHandler(RegisterHandler):
|
||||
"""寄存器D25处理器,处理急停信号"""
|
||||
class EmergencyStopHandler:
|
||||
"""处理急停信号"""
|
||||
|
||||
def __init__(self, callback=None):
|
||||
super().__init__()
|
||||
"""初始化处理器
|
||||
|
||||
Args:
|
||||
callback: 回调函数,接收两个参数:value(int), desc(str)
|
||||
"""
|
||||
self.callback = callback
|
||||
self.prev_value = 0
|
||||
|
||||
# 急停状态描述映射
|
||||
self.status_map = {
|
||||
0: "正常",
|
||||
1: "急停触发"
|
||||
}
|
||||
|
||||
def handle_change(self, value):
|
||||
status = self.status_map.get(value, f"未知状态({value})")
|
||||
logging.info(f"急停信号: {status}")
|
||||
def handle(self, value):
|
||||
"""处理急停信号
|
||||
|
||||
# 如果有回调函数,则调用
|
||||
if self.callback and value == 1:
|
||||
self.callback(value, "监听到急停信号")
|
||||
Args:
|
||||
value: 寄存器值
|
||||
|
||||
Returns:
|
||||
tuple: (是否变化, 状态描述)
|
||||
"""
|
||||
# 检查值是否有效
|
||||
if value not in [0, 1]:
|
||||
return False, f"无效的急停状态值: {value}"
|
||||
|
||||
# 检查值是否变化
|
||||
if value == self.prev_value:
|
||||
return False, self.status_map.get(value, "未知状态")
|
||||
|
||||
# 更新上一次的值
|
||||
self.prev_value = value
|
||||
|
||||
# 获取状态描述
|
||||
desc = self.status_map.get(value, "未知状态")
|
||||
|
||||
# 调用回调函数
|
||||
if self.callback:
|
||||
self.callback(value, desc)
|
||||
|
||||
return True, desc
|
||||
Loading…
Reference in New Issue
Block a user