关于 modbustcp python 借鉴别人的码
2022/2/20 23:57:01
本文主要是介绍关于 modbustcp python 借鉴别人的码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码自用
demo1 = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9)
import modbus_tk import modbus_tk.defines as cst import modbus_tk.modbus_tcp as modbus_tcp logger = modbus_tk.utils.create_logger("console") if __name__ == "__main__": try: # 连接MODBUS TCP从机 master = modbus_tcp.TcpMaster(host="127.0.0.1", port=502) master.set_timeout(5.0) logger.info("connected") # 读保持寄存器 demo1 = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9) print(demo1) # 读输入寄存器 # logger.info(master.execute(3, cst.READ_INPUT_REGISTERS, 0, 9, output_value=1)) # # 读线圈寄存器 # logger.info(master.execute(2, cst.READ_COILS, 0, 8)) # logger.info(master.execute(2, cst.WRITE_SINGLE_COIL, 1, output_value=2)) # # 读离散输入寄存器 # logger.info(master.execute(4, cst.READ_DISCRETE_INPUTS, 0, 8)) # 单个读写寄存器操作 # 写寄存器地址为0的保持寄存器 logger.info(master.execute(1, cst.WRITE_SINGLE_REGISTER, 0, output_value=25)) logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 8)) demo1 = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9) print("demo1=",demo1) # 写寄存器地址为0的线圈寄存器,写入内容为0(位操作) logger.info(master.execute(2, cst.WRITE_SINGLE_COIL, 0, output_value=2)) logger.info(master.execute(2, cst.READ_COILS, 0, 1)) # # 多个寄存器读写操作 # # 写寄存器起始地址为0的保持寄存器,操作寄存器个数为4 logger.info(master.execute(1, cst.WRITE_MULTIPLE_REGISTERS, 0, output_value=[20, 21, 22, 23])) logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 4)) # # 写寄存器起始地址为0的线圈寄存器 logger.info(master.execute(2, cst.WRITE_MULTIPLE_COILS, 0, output_value=[0, 0, 0, 1])) logger.info(master.execute(2, cst.READ_COILS, 0, 4)) except modbus_tk.modbus.ModbusError as e: logger.error("%s- Code=%d" % (e, e.get_exception_code())) # import modbus_tk.defines # # #modbus exception codes 异常代码 # # 代码功能不合法 # ILLEGAL_FUNCTION = 1 # # 数据地址不合法 # ILLEGAL_DATA_ADDRESS = 2 # # 数据值不合法 # ILLEGAL_DATA_VALUE = 3 # # slave设备失败 # SLAVE_DEVICE_FAILURE = 4 # # 命令已收到 # COMMAND_ACKNOWLEDGE = 5 # # slave设备忙 # SLAVE_DEVICE_BUSY = 6 # # 内存奇偶校验差 # MEMORY_PARITY_ERROR = 8 # # # supported modbus functions 功能代码 # # 读线圈 # READ_COILS = 1 # # 离散读输入 # READ_DISCRETE_INPUTS = 2 # # 读保持寄存器 # READ_HOLDING_REGISTERS = 3 # # 读输入寄存器 # READ_INPUT_REGISTERS = 4 # # 写单一线圈 # WRITE_SINGLE_COIL = 5 # # 写单一寄存器 # WRITE_SINGLE_REGISTER = 6 # # *读例外状态 # READ_EXCEPTION_STATUS = 7 # DIAGNOSTIC = 8 # # *报告slave的id # REPORT_SLAVE_ID = 17 # # 写多个线圈 # WRITE_MULTIPLE_COILS = 15 # # 写多寄存器 # WRITE_MULTIPLE_REGISTERS = 16 # # *读写多个寄存器 # READ_WRITE_MULTIPLE_REGISTERS = 23 # # *设备信息 # DEVICE_INFO = 43 # # # supported block types 支持的块类型 # # 线圈 # COILS = 1 # # 离散输入 # DISCRETE_INPUTS = 2 # # 保持寄存器 # HOLDING_REGISTERS = 3 # # 模拟量输入 # ANALOG_INPUTS = 4
这篇关于关于 modbustcp python 借鉴别人的码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南