我正在使用从属计算机,并希望将通过Modbus RS485从主站传输的数据保存到文本文件中。主计算机不断向从机发送写入和读取请求……
您可能希望直接管理串行端口。
为此,您可以使用 pyserial 模块,你必须知道如何 Modbus协议 作品。
基本配置可以是:
import serial port = '/dev/ttyUSB1' serial_comunication = serial.Serial(port, baudrate=4800, timeout=0.75) serial_comunication.write(b'frame') answer = serial_comunication.read(255) serial_comunication.close() print answer.decode()
MODBUS-TK 可以编写自己的modbus slave。
这是一个运行RTU服务器的示例,其中100个保持寄存器从地址0开始:
import sys import modbus_tk import modbus_tk.defines as cst from modbus_tk import modbus_rtu import serial PORT = 0 #PORT = '/dev/ptyp5' def main(): """main""" logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s") #Create the server server = modbus_rtu.RtuServer(serial.Serial(PORT)) try: logger.info("running...") logger.info("enter 'quit' for closing the server") server.start() slave_1 = server.add_slave(1) slave_1.add_block('0', cst.HOLDING_REGISTERS, 0, 100) while True: cmd = sys.stdin.readline() args = cmd.split(' ') if cmd.find('quit') == 0: sys.stdout.write('bye-bye\r\n') break finally: server.stop() if __name__ == "__main__": main()
我希望它有所帮助