modbus串口虚拟服务器,RS485串口服务器实现Modbus-RTU转Modbus-TCP采集串口设备数据...

回顾一下当时踩的坑:我计划是把采集电量这个任务也挂到NAS上(DS218+)。于是把采集数据的RS485(Modbus-RUT转)USB连接到NAS的USB口,发现调用不到,一查NAS上有4个串口,然后没有一个能用,找商家一问:Nas的USB口只支持存储设备,其他不支持。结果很明显,不能用NAS跑采集任务。

于是我在某宝上找到了一款RS485串口服务器,它天生就是为了填平我踩的这个坑:因为它能完成Modbus-RTU到Modbus-TCP透明转换,实现通过网络方式读取串口设备数据。

经过2天的等待今天收到RS485串口服务器,跟我认识的USB有线网卡好像呢

d7ee04f20574c99a144eb176ab9af010.png

使用RS485串口服务器定制的特殊的连接线,连接方式简单易懂。从上图即可看出来,需要注意的地方就是连接线C端,它是RS485的引线用于连接串口设备的,根据标识连接对应接口即可(分别是地线、VCC、A、B),当时店家说RS串口服务器要单独供电,12V1A。我直接就用串口设备供电(5V)也能正常跑就不管单独供电了,如果通讯距离远可能还是要单独供电。

连线接好之后,打开店家发过来的工具软件,找到IP地址,就可以用WEB的方式管理了。

628e072d12c5fc17bbee98e4666b5917.png

b973a871cf92f5900a36f25a9dd49eb3.png

在WEB管理后台主要就是配置了串口设置的波特率和协议两项参数。

c3caff44d39fea9c01bb6bc50e3448ed.png

后面就是敲代码了。

import modbus_tk.modbus_tcp as mt

import modbus_tk.defines as md

master = mt.TcpMaster("RS485串口服务器IP地址", 8899)#这个商口是默认端口

master.set_timeout(1.0)

result= master.execute(slave=1, function_code=md.READ_INPUT_REGISTERS, starting_address=0,quantity_of_x=9)

slave:从机编号,用1即可,如果有多个就是搞清楚

function_code:Modbus-TCP功能码

starting_address:要读取的寄存器地址

quantity_of_x:要读取寄存器个数

就三行代码就已经读出结果,但是结果需要二次加工才能使用的。否则数据就会不正确。

555ca34e4f0c2ad65a07a10741749a68.png

未完待续……

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值