feat: 修复急停信号异常
This commit is contained in:
parent
ce8483d298
commit
7457cd8b4c
@ -90,6 +90,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electricity": {
|
"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)
|
@Slot(int, str)
|
||||||
def handle_error_1(self, error_code, error_desc):
|
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
|
from utils.register_handlers import Error1Handler
|
||||||
error_handler = 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
|
self.error_1 = error_code
|
||||||
@ -2271,7 +2271,7 @@ class MainWindow(MainWindowUI):
|
|||||||
|
|
||||||
# 只有当错误码为1、2或3时才弹框提示
|
# 只有当错误码为1、2或3时才弹框提示
|
||||||
if error_code in [1, 2, 3]:
|
if error_code in [1, 2, 3]:
|
||||||
QMessageBox.warning(self, "机器人视觉报警", f"机器人视觉报警: {detailed_desc}")
|
QMessageBox.warning(self, "机械手报警", f"机械手报警: {detailed_desc}")
|
||||||
# 获取Modbus连接
|
# 获取Modbus连接
|
||||||
modbus = ModbusUtils()
|
modbus = ModbusUtils()
|
||||||
client = modbus.get_client()
|
client = modbus.get_client()
|
||||||
|
|||||||
@ -173,7 +173,6 @@ class Error2Handler(RegisterHandler):
|
|||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.error_map = {
|
self.error_map = {
|
||||||
0: "无报警",
|
0: "无报警",
|
||||||
1: "急停报警",
|
|
||||||
2: "贴标故障"
|
2: "贴标故障"
|
||||||
}
|
}
|
||||||
def handle_change(self, value):
|
def handle_change(self, value):
|
||||||
@ -246,20 +245,49 @@ class NGHandler(RegisterHandler):
|
|||||||
self.callback(value)
|
self.callback(value)
|
||||||
|
|
||||||
|
|
||||||
class EmergencyStopHandler(RegisterHandler):
|
class EmergencyStopHandler:
|
||||||
"""寄存器D25处理器,处理急停信号"""
|
"""处理急停信号"""
|
||||||
|
|
||||||
def __init__(self, callback=None):
|
def __init__(self, callback=None):
|
||||||
super().__init__()
|
"""初始化处理器
|
||||||
|
|
||||||
|
Args:
|
||||||
|
callback: 回调函数,接收两个参数:value(int), desc(str)
|
||||||
|
"""
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
|
self.prev_value = 0
|
||||||
|
|
||||||
|
# 急停状态描述映射
|
||||||
self.status_map = {
|
self.status_map = {
|
||||||
0: "正常",
|
0: "正常",
|
||||||
1: "急停触发"
|
1: "急停触发"
|
||||||
}
|
}
|
||||||
|
|
||||||
def handle_change(self, value):
|
def handle(self, value):
|
||||||
status = self.status_map.get(value, f"未知状态({value})")
|
"""处理急停信号
|
||||||
logging.info(f"急停信号: {status}")
|
|
||||||
|
|
||||||
# 如果有回调函数,则调用
|
Args:
|
||||||
if self.callback and value == 1:
|
value: 寄存器值
|
||||||
self.callback(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