基本信息
源码名称:python实现modbus主站 代码
源码大小:1.55KB
文件格式:.py
开发语言:Python
更新时间:2020-01-01
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#!/usr/bin/env python # -*- coding: utf_8 -*- ''' 作者:weizy 时间:2017/3/10 简介:modbus协议主机测试脚本 ''' import sys import logging 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: #连接从机地址,这里要注意端口号和IP与从机一致 MASTER = modbus_tcp.TcpMaster(host="192.168.1.20", port=11100) MASTER.set_timeout(5.0) LOGGER.info("connected") #读取从机1的0-4保持寄存器 LOGGER.info(MASTER.execute(1, cst.READ_HOLDING_REGISTERS, 0, 4)) #读取从机1的4-14保持寄存器,因为寄存器独立分块了,所以不能直接连通读取,强行结果是会出现数据越界 LOGGER.info(MASTER.execute(1, cst.READ_HOLDING_REGISTERS, 4, 14)) # 需要按照execute格式 LOGGER.info(MASTER.execute(1, cst.WRITE_MULTIPLE_REGISTERS, 0, output_value=[0, 1, 2])) LOGGER.info(MASTER.execute(1, cst.READ_HOLDING_REGISTERS, 0, 4)) LOGGER.info(MASTER.execute(2, cst.READ_COILS, 0, 8)) LOGGER.info(MASTER.execute(2, cst.WRITE_MULTIPLE_COILS, 0, output_value=[1, 0, 0, 0, 1])) LOGGER.info(MASTER.execute(2, cst.READ_COILS, 0, 8)) LOGGER.info(MASTER.execute(2, cst.READ_HOLDING_REGISTERS, 0, 4)) # 线圈和寄存器地址不是同一区块的 except modbus_tk.modbus.ModbusError as err: LOGGER.error("%s- Code=%d" % (err, err.get_exception_code()))