前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pymodbus使用介绍

pymodbus使用介绍

作者头像
用户5908113
发布2019-11-20 12:25:39
3.2K1
发布2019-11-20 12:25:39
举报
文章被收录于专栏:Pou光明Pou光明

点击上方蓝字可直接关注哦,方便下次阅读~

上次介绍的是Modbus调试助手的使用,这次我们自己使用第三方库实现一些功能。

当我们写程序写的多一些时,自然就会使用第三方库,在使用过程中注意规避掉一些坑即可。

接下来我们使用python的pymodbus库来实现modbus 功能。

运行环境:Ubuntu 14.04、Python2.7

1.下载pymodbus库

我使用的是2.2.0版本,并没有使用最新的。下载完成后并无法直接使用,需要改动一下,不知道其他小伙伴是否也是这样,在网上查的时候资料还很少,最后是看了以前的版本才搞定的。忧桑。。。

下载好后是pymodbus-2.2.0,我们使用时是pymodbus这个文件夹。

2. 客户端简单例子

pymodbus下载好后,里面有很多例子,更多的功能可以参考例子后进行修改。这次和大家分享的是比较简单的例子,很容易上手。

①文件结构

将pymodbus文件夹与新建的测试文件放到同一目录下

②测试文件内容

代码语言:javascript
复制
#! /usr/bin/env python
# coding=utf-8

from pymodbus.client.sync import ModbusTcpClient
import time


UNIT = 0x1

client = ModbusTcpClient('192.168.1.99', port = 502, timeout = 1)

while True:
 request = client.read_holding_registers(0, 3)
 result = request.registers
 #print(result.bits[0])
 print(result)
 print(result[0])
 time.sleep(1)


client.close()

新建客户端去连接服务器,填充服务器IP与端口号。pymodbus库已经为我们封装好了寄存器的种类,例子中是读取保持寄存器的状态。read_holding_registers(0, 3),从地址0开始,读取3位。之后我们将结果打印出来观察。

③服务器配置

使用之前介绍的modbus调试助手ModSim32作为服务器,配置如下图:

地址为1,为方便观察Length设置为10

将40002设置为111,40003设置为222,以检查客户端读取的结果

④python 客户端运行结果

我是直接使用ubuntu终端下运行的,连接成功后打印结果如下:

程序中我们读取3位,分别是0、111、222

⑤客户端与服务器地址不匹配运行报错

如果客户端与服务器配置的地址不匹配,那么在运行的时候就会报错,错误信息如下:

服务器地址还是像之前的配置,但是客户端读取使是从11开始读取的,然鹅这个地址服务器端并没有配置,所以客户端这边对应的进行报错。

后记小结:

python的modbus库还有其他的,感兴趣的老铁可以去查一查。libmodbus库是另一个c 的库,也是很常用的一个库。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pou光明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档