我们先准备个plc和通信上。
我们需要一款支持modbus rtu通信的plc和一根usb转串口线。
然后电脑这边准备一个工具软件。
1 我们确认下plc的串口参数。
plc当前的串口,支持了modbus协议。
串口参数是115200波特率,数据位为8,停止位为1,无校验。
2 打开modbus poll工具。
设置参数也是115200,8,1,无即可。
3 选择寄存器变量。
点击图中按钮,即可选择要读写的寄存器。
slave id 是从站设备的id。设置为1,和plc对应上。
function: 也就是功能码。0x寄存器对应的功能就是01为read.
address: 要读的寄存器地址。设置为0,也就是从0开始读,刚好对应plc上面的输出点。
quantity: 寄存器个数。设置10,我们先读10个。
sacn rate: 扫描周期。默认1000ms。也就是每1000ms读一次。
其它参数不关心,默认,然后点ok。
然后就显示都通信上了。
我们试着拿偶数地址都设置为1看一下。
对里面的值双击,会出来设置值界面。因为是单独写,可以默认使用05功能码。
可以看到plc里相应的输出点,也被置1了。
这就是很基本的一个modbus rtu通信的demo。
如果你认为到此就结束了,那可能你猜对了。
我们上手学modbus 协议,没必要搞那么复杂。一天收获一点点,慢慢消化modbus 协议。
先学会怎么使用的,再进一步了解协议。
好了,如果前面的内容已经消化的,我们可以继续往下了。如果还没有消化的,那下面的内容,建议你先收藏,改天再继续看。
在刚才的实验中,我们看到通过电脑的modbus poll对plc进行读写操作了。
难道我们不想知道,他们是怎么起使用的么。
modbus poll 有一个功能,可以显示发送和接收的报文,对于我们学习modbus 协议非常有帮助。
我们找到display->communication选项,就可以看到发送和接收的报文了。
tx:072-01 01 00 00 00 0a bc 0d
rx:073-01 01 02 55 01 47 6c
我们复制一个报文。
对于刚入门的,不管是使用者,还是开发者,建议还是找个支持modbus 的设备以及工具,比如modbus poll,进行通信测试,看一下modbus的报文是什么样的,看一下读写的情况。
因为遇到有些入门者,自己上来就拿个串口工具,给单片机或者plc发送数据,发现对方怎么都不回。除了串口参数要设置正常之外,要确保你的报文是正确的modbus 协议才可以哦。
比如读0x寄存器,读10个,报文为01 01 00 00 00 0a bc 0d
前面的报文01 01 00 00 00 0a 估计很多人都会了。
然后用工具或者在线计算crc,要么计算出来是错误的,要么计算正常了,却拼成这样的报文 01 01 00 00 00 0a 0d bc。crc的字节反了。
怎么发,plc就是不回复。
这是很多新手,入门者常犯的错误。
所以不要小看一个简单的modbus, 要怎么把它用好,还不是件简单的事。
有时候,你的设备和对方设备进行通信,就是有问题,你都说不清楚是你设备的问题还是对方设备的问题,就容易产生不必要的误会和工作了。
modbus poll还提供了不同功能码的读写测试。
【论坛精选】Station M2 开箱视频与图文介绍(第一篇)
新能源革命下,机构为何大举加仓传统能源?
人工智能名片让销售不再难
wifi芯片厂商有哪些_wifi芯片厂商十大排名
航盛与高通达成战略合作,携手推动智能网联汽车技术创新
Modbus协议上手实践篇
AMD 新款显卡规格曝光
4G招标齐失意,国产芯片商如何迈步重头越
PCB设计之共阻抗及抑制
物联网安全的漏洞有哪些
模拟集成电路是什么
华硕发布首款智能手环——ASUS VivoWatch BP,主打血压监测和AI健康管理功能
爱立信携手广东移动推进的《联塑工业园5G+智能制造应用项目》获“绽放杯”二等奖
专业显卡强在什么地方?它们和普通显卡有什么区别呢?
prolog中文教程及语法规则
基于时空大数据分析、挖掘与可视化高性能计算解决方案
怎样挑选一台好的GTX1060游戏本
2020 AIoT/新基建排行榜,机智云物联网智能硬件开发云服务平台上榜
大数据+5G,为短信带来更多想象空间
iphone12上市时间已定 iPhone11顺势清货印度买iPhone11赠AirPods