modbus-tcp协议学习-python

1. 前言

  • modbus_tk是使用python语言实现的modbus协议栈,该库函数及支持主机也支持从机,同时支持RTU串口通信和TCP范式通信。

2. 准备工作

  1. 查阅modbus相关资料
  2. 下载modbus-tcp tester,这里面有server-tester和client-tester,能加速测试程序过程

3. modbus_tk安装

  • 环境:python2.7, win10 & 树莓派
  • 操作:直接 pip install modbus_tk 或者采用 easy_install

4. 基础示例

  • 从机程序,需要先运行从机程序,才能启动master
#!/usr/bin/env python
# -*- coding: utf_8 -*-
'''
作者:raphael
时间:2017/3/10
简介:modbus协议从机测试脚本
'''
import sys
import logging
import threading
import modbus_tk
import modbus_tk.defines as cst
import modbus_tk.modbus as modbus
import modbus_tk.modbus_tcp as modbus_tcp
LOGGER = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")
if __name__ == "__main__":
    try:
        # server里的address需要写的树莓派的IP和需要开放的端口,注意开放相应的端口
        SERVER = modbus_tcp.TcpServer(address="192.168.1.111", port=1100)
        LOGGER.info("running...")
        LOGGER.info("enter 'quit' for closing the server")
        # 服务启动
        SERVER.start()
        # 建立第一个从机
        SLAVE1 = SERVER.add_slave(1)
        SLAVE1.add_block('A', cst.HOLDING_REGISTERS, 0, 4)#地址0,长度4
        SLAVE1.add_block('B', cst.HOLDING_REGISTERS, 4, 14)

        #建立另一个从机2
        SLAVE2 = SERVER.add_slave(2)
        SLAVE2.add_block('C', cst.COILS, 0, 10)   #地址0,长度10
        SLAVE2.add_block('D', cst.HOLDING_REGISTERS, 0, 10)#地址0,长度10

        SLAVE1.set_values('A', 0, 4) #改变在地址0处的寄存器的值
        SLAVE1.set_values
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值