feat: 修复急停信号异常

This commit is contained in:
zhu-mengmeng 2025-07-01 10:15:57 +08:00
parent ce8483d298
commit 7457cd8b4c
4 changed files with 42 additions and 14 deletions

View File

@ -90,6 +90,6 @@
}
},
"electricity": {
"auto_start": true
"auto_start": false
}
}

Binary file not shown.

View File

@ -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()

View File

@ -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