modbus tcp

技术源于生活,服务生活

demo.py

# demo:modbus_tcp应答机制
import modbus_tk.defines as md
import modbus_tk.modbus_tcp as mt
from xlwt.compat import xrange


class ConfigModbus(object):
    host = "127.0.0.1"
    port = 502


# 创建连接对象
master = mt.TcpMaster(ConfigModbus.host, ConfigModbus.port)
master.set_timeout(5.0)

print('连接成功')

try:
    # master.execute 远程连接到服务器端
    # 判断是否链接正常

    START_POS = 0  # 起始位置
    MAX_LENGTH = 10  # 取值的位数
    # md.READ_HOLDING_REGISTERS  # modbus读取保持寄存器 3
    Hold_value = master.execute(slave=1, function_code=md.READ_HOLDING_REGISTERS, starting_address=START_POS,
                                quantity_of_x=MAX_LENGTH)# 写操作output_value = 1/[1,2,2,2]一个或多个值
    print(Hold_value)

    # 写寄存器起始地址为0的保持寄存器,操作寄存器个数为68
    START_POS = 0  # 起始位置
    MAX_LENGTH = 10  # 取值的位数
    # md.READ_HOLDING_REGISTERS  # modbus读取保持寄存器 3
    output_value_2 = [257]
    # output_value_2 = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1]
    data = master.execute(slave=1, function_code=md.WRITE_MULTIPLE_REGISTERS, starting_address=START_POS,
                          quantity_of_x=MAX_LENGTH, output_value=output_value_2)
    print(data)
    Hold_value = master.execute(slave=1, function_code=md.READ_HOLDING_REGISTERS, starting_address=START_POS,
                                quantity_of_x=MAX_LENGTH, output_value=5)
    print(Hold_value, '程序结束')


except Exception as e:
    print("error:", e)
    pass



运行结果:

连接成功
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(0, 10)
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) 程序结束

配合mod_RSsim.exe软件使用
软件下载地址:mod_RSsim.exe

mod_RSsim

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值