尝试在RL里判断最大速度,尝试失败
This commit is contained in:
@ -5,7 +5,7 @@ import selectors
|
||||
from time import time, sleep
|
||||
from os.path import dirname
|
||||
from pymodbus.client.tcp import ModbusTcpClient
|
||||
from pymodbus.payload import BinaryPayloadDecoder
|
||||
from pymodbus.payload import BinaryPayloadDecoder, BinaryPayloadBuilder
|
||||
from pymodbus.constants import Endian
|
||||
|
||||
MAX_FRAME_SIZE = 1024
|
||||
@ -125,13 +125,48 @@ class ModbusRequest(object):
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法读取准备信号,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
def set_stop0(self, number):
|
||||
def write_stop0(self, number):
|
||||
try:
|
||||
self.c.write_register(41004, number)
|
||||
except Exception as Err:
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法通过IO操作stop0急停,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
def write_speed_max(self, speed):
|
||||
try:
|
||||
builder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.LITTLE)
|
||||
builder.add_32bit_float(float(speed))
|
||||
payload = builder.build()
|
||||
self.c.write_registers(41005, payload, skip_encode=True)
|
||||
except Exception as Err:
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法写入速度值,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
def read_brake_done(self):
|
||||
try:
|
||||
results = self.c.read_holding_registers(41007, 1)
|
||||
return results.registers[0]
|
||||
except Exception as Err:
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法读取制动已执行信号,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
def write_axis(self, axis):
|
||||
try:
|
||||
builder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.LITTLE)
|
||||
builder.add_32bit_int(int(axis))
|
||||
payload = builder.to_registers()
|
||||
self.c.write_registers(41008, payload)
|
||||
except Exception as Err:
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法写入速度值,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
def write_probe(self, probe):
|
||||
try:
|
||||
self.c.write_register(41010, probe)
|
||||
except Exception as Err:
|
||||
self.w2t(f"{Err}")
|
||||
self.w2t("无法写入速度探测信号,连接Modbus失败,需要确认网络是否通畅,或是未正确导入寄存器文件...", 0, 100, 'red', self.tab_name)
|
||||
|
||||
|
||||
class HmiRequest(object):
|
||||
def __init__(self, w2t):
|
||||
@ -188,7 +223,8 @@ class HmiRequest(object):
|
||||
md.reset_estop()
|
||||
md.clear_alarm()
|
||||
md.write_act(False)
|
||||
md.set_stop0(1)
|
||||
md.write_probe(False)
|
||||
md.write_axis(1)
|
||||
except Exception as Err:
|
||||
self.w2t("Connection failed...", 0, 0, 'red', tab_name=self.tab_name)
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_hb:
|
||||
@ -233,7 +269,7 @@ class HmiRequest(object):
|
||||
f_hb.write(_flag)
|
||||
if _flag == '0':
|
||||
self.w2t(f"{_id} 心跳丢失,连接失败,重新连接中...", 0, 7, 'red', tab_name=self.tab_name)
|
||||
sleep(2)
|
||||
sleep(1.5)
|
||||
# with open(f"{current_path}/../../assets/templates/c_msg.log", "w", encoding='utf-8') as f:
|
||||
# for msg in self.c_msg:
|
||||
# f.write(str(loads(msg)) + '\n')
|
||||
|
Reference in New Issue
Block a user