海南网站公司,键盘事件对网站交互,有哪些微信开发公司,二级域名解析网站利用 python modbus工具实现modbus从站的数据采集#xff0c;很方便简单。Python Modbus 协议工具目前有下面三种#xff1a;modbus_tk#xff1a;完整modbus协议栈的实现#xff0c;支持modbus tcp/rtu#xff5b;1.提供slave模拟器#xff0c;即模拟modbus server:502)…利用 python modbus工具实现modbus从站的数据采集很方便简单。Python Modbus 协议工具目前有下面三种modbus_tk完整modbus协议栈的实现支持modbus tcp/rtu1.提供slave模拟器即模拟modbus server:502), web-based hmi master支持pymodbus使用twisted实现的modbus完整协议(支持异步通讯)MinimalModbus只支持modbusrtuModbsu_tk库使用execute(slave,功能代码,开始地址,quantity_of_x0,output_value0,data_format,指定长度-1)实现数据读与写用功能码很容易实现。READ_COILS 1读线圈READ_DISCRETE_INPUTS 2读离散输入READ_HOLDING_REGISTERS 3【读保持寄存器】READ_INPUT_REGISTERS 4读输入寄存器WRITE_SINGLE_COIL 5写单一线圈WRITE_SINGLE_REGISTER 6写单一寄存器WRITE_MULTIPLE_COILS 15写多个线圈 【强制多点线圈】WRITE_MULTIPLE_REGISTERS 16写多寄存器 【写乘法寄存器】master.execute(1,cst.READ_HOLDING_REGISTERS, 0, 3)1—从设备地址cst.READ_HOLDING_REGISTERS—读保持寄存器0—开始地址3—读三个字节下面来一个简单的例子。#!/usr/bin/env python# -*- coding: utf_8 -*-Modbus TestKit: Implementation of Modbus protocol in python(C)2009 - Luc Jean - luc.jeangmail.com(C)2009 - Apidev - http://www.apidev.frThis is distributed under GNU LGPL license, see license.txtimport serialimport modbus_tkimport modbus_tk.defines as cstfrom modbus_tk import modbus_rtu#PORT 1PORT /dev/ttyUSB0def main():mainlogger modbus_tk.utils.create_logger(console)try:#Connect to the slavemaster modbus_rtu.RtuMaster(serial.Serial(portPORT, baudrate9600, bytesize8, parityN, stopbits1, xonxoff0))master.set_timeout(5.0)master.set_verbose(True)logger.info(connected)logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 1, 1))#send some queries#logger.info(master.execute(1, cst.READ_COILS, 0, 10))#logger.info(master.execute(1, cst.READ_DISCRETE_INPUTS, 0, 8))#logger.info(master.execute(1, cst.READ_INPUT_REGISTERS, 100, 3))#logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 100, 12))#logger.info(master.execute(1, cst.WRITE_SINGLE_COIL, 7, output_value1))#logger.info(master.execute(1, cst.WRITE_SINGLE_REGISTER, 100, output_value54))#logger.info(master.execute(1, cst.WRITE_MULTIPLE_COILS, 0, output_value[1, 1, 0, 1, 1, 0, 1, 1]))#logger.info(master.execute(1, cst.WRITE_MULTIPLE_REGISTERS, 100, output_valuexrange(12)))except modbus_tk.modbus.ModbusError as exc:logger.error(%s- Code%d, exc, exc.get_exception_code())if __name__ __main__:main()用modsim在window下充当slave设置如下在树莓派下运行结果如下