feat: 简化开始操作逻辑,移除对话框,直接写入寄存器 2 和 3 的值为 1
This commit is contained in:
parent
c6d101f65c
commit
26e835e25a
@ -482,114 +482,18 @@ class MainWindow(MainWindowUI):
|
|||||||
|
|
||||||
def handle_start(self):
|
def handle_start(self):
|
||||||
"""
|
"""
|
||||||
处理开始按钮点击事件,并启动 modbus 监控
|
2,3 寄存器设置为 1
|
||||||
"""
|
"""
|
||||||
# 创建对话框
|
|
||||||
dialog = QDialog(self)
|
|
||||||
dialog.setWindowTitle("上料操作")
|
|
||||||
dialog.setFixedSize(300, 200)
|
|
||||||
|
|
||||||
# 对话框布局
|
|
||||||
layout = QVBoxLayout(dialog)
|
|
||||||
|
|
||||||
# 添加提示信息
|
|
||||||
info_label = QLabel("请选择拆垛层数:")
|
|
||||||
info_label.setFont(self.normal_font)
|
|
||||||
layout.addWidget(info_label)
|
|
||||||
|
|
||||||
# 添加托盘类型选择
|
|
||||||
pallet_combo = QComboBox()
|
|
||||||
pallet_combo.setFont(self.normal_font)
|
|
||||||
# 复制当前托盘类型选择器的内容
|
|
||||||
for i in range(1,4):
|
|
||||||
pallet_combo.addItem(str(i))
|
|
||||||
layout.addWidget(pallet_combo)
|
|
||||||
|
|
||||||
# 添加提示信息
|
|
||||||
info_label = QLabel("请选择码垛层数:")
|
|
||||||
info_label.setFont(self.normal_font)
|
|
||||||
layout.addWidget(info_label)
|
|
||||||
|
|
||||||
# 添加托盘类型选择
|
|
||||||
pallet_combo2 = QComboBox()
|
|
||||||
pallet_combo2.setFont(self.normal_font)
|
|
||||||
# 复制当前托盘类型选择器的内容
|
|
||||||
for i in range(1,4):
|
|
||||||
pallet_combo2.addItem(str(i))
|
|
||||||
layout.addWidget(pallet_combo2)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 添加按钮
|
|
||||||
button_layout = QHBoxLayout()
|
|
||||||
confirm_button = QPushButton("确认")
|
|
||||||
confirm_button.setFont(self.normal_font)
|
|
||||||
confirm_button.setStyleSheet("background-color: #e3f2fd; border: 1px solid #2196f3; padding: 8px 16px; font-weight: bold; border-radius: 4px;")
|
|
||||||
|
|
||||||
cancel_button = QPushButton("取消")
|
|
||||||
cancel_button.setFont(self.normal_font)
|
|
||||||
cancel_button.setStyleSheet("padding: 8px 16px; font-weight: bold; border-radius: 4px;")
|
|
||||||
|
|
||||||
button_layout.addStretch()
|
|
||||||
button_layout.addWidget(confirm_button)
|
|
||||||
button_layout.addWidget(cancel_button)
|
|
||||||
layout.addLayout(button_layout)
|
|
||||||
|
|
||||||
# 连接按钮信号
|
|
||||||
confirm_button.clicked.connect(dialog.accept)
|
|
||||||
cancel_button.clicked.connect(dialog.reject)
|
|
||||||
|
|
||||||
# 显示对话框
|
|
||||||
result = dialog.exec()
|
|
||||||
|
|
||||||
# 如果用户确认,则执行上料操作
|
|
||||||
if result == QDialog.Accepted:
|
|
||||||
stow_num = pallet_combo.currentText()
|
|
||||||
stow_num2 = pallet_combo2.currentText()
|
|
||||||
|
|
||||||
# 获取托盘号对应的托盘类型
|
|
||||||
tray_id = self.tray_edit.currentText()
|
|
||||||
pallet_type = self.pallet_type_manager.get_pallet_type_by_pallet_id(tray_id)
|
|
||||||
# 初始化托盘号对应的序号
|
|
||||||
if tray_id not in self.init_seq:
|
|
||||||
self.init_seq[tray_id] = 1
|
|
||||||
|
|
||||||
if not pallet_type:
|
|
||||||
QMessageBox.warning(self, "错误", "未查到对应下料托盘类型")
|
|
||||||
return
|
|
||||||
|
|
||||||
# 执行Modbus操作
|
|
||||||
modbus = ModbusUtils()
|
modbus = ModbusUtils()
|
||||||
client = modbus.get_client()
|
client = modbus.get_client()
|
||||||
try:
|
try:
|
||||||
# 启动Modbus监控
|
|
||||||
self.setup_modbus_monitor()
|
|
||||||
|
|
||||||
# 启动串口监听
|
|
||||||
self.serial_manager.auto_open_configured_ports()
|
|
||||||
|
|
||||||
# 显式启动键盘监听器
|
|
||||||
self.serial_manager.start_keyboard_listener()
|
|
||||||
logging.info("已在开始操作时启动键盘监听器")
|
|
||||||
|
|
||||||
success0 = modbus.write_register_until_success(client, 0, int(stow_num))
|
|
||||||
success1 = modbus.write_register_until_success(client, 1, int(pallet_type))
|
|
||||||
success2 = modbus.write_register_until_success(client, 2, 1)
|
success2 = modbus.write_register_until_success(client, 2, 1)
|
||||||
success3 = modbus.write_register_until_success(client, 3, 1)
|
success3 = modbus.write_register_until_success(client, 3, 1)
|
||||||
success4 = modbus.write_register_until_success(client, 4, int(stow_num2))
|
|
||||||
# 上料 D2 寄存器写入 1 ,D0 寄存器写入托盘类型
|
|
||||||
if success0 and success2 and success1 and success3 and success4:
|
|
||||||
# 创建状态标签并显示在右上角
|
|
||||||
self.show_operation_status("拆垛层数", "input", stow_num)
|
|
||||||
else:
|
|
||||||
QMessageBox.information(self, "操作提示", "上料失败")
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"上料操作失败: {str(e)}")
|
logging.error(f"启动操作失败: {str(e)}")
|
||||||
QMessageBox.critical(self, "错误", f"上料操作失败: {str(e)}")
|
|
||||||
finally:
|
finally:
|
||||||
modbus.close_client(client)
|
modbus.close_client(client)
|
||||||
|
|
||||||
|
|
||||||
def handle_stop(self):
|
def handle_stop(self):
|
||||||
"""处理停止按钮点击事件,并关闭 modbus 监控"""
|
"""处理停止按钮点击事件,并关闭 modbus 监控"""
|
||||||
modbus = ModbusUtils()
|
modbus = ModbusUtils()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user