0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Modbus协议上手实践篇

冬至子 来源:物联网诸子东 作者:诸子东 2023-08-10 16:40 次阅读

我们先准备个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

我们复制一个报文。

1.jpg

对于刚入门的,不管是使用者,还是开发者,建议还是找个支持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还提供了不同功能码的读写测试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5036

    浏览量

    117763
  • PLC控制
    +关注

    关注

    9

    文章

    232

    浏览量

    27008
  • RTU
    RTU
    +关注

    关注

    0

    文章

    345

    浏览量

    28348
  • USB转串口
    +关注

    关注

    0

    文章

    36

    浏览量

    11486
  • ModBus通信
    +关注

    关注

    0

    文章

    31

    浏览量

    2481
收藏 人收藏

    评论

    相关推荐

    Modbus协议Modbus M16程序及Modbus协议文档几篇

    ,在帧收完了计算有点浪费且不好控制。Modbus协议英文Modbus协议中文Modbus协议介绍含流程图,上面crc16程序中高低位反了,有点问题
    发表于 11-11 10:12

    什么是Modbus协议?如何写稳定的Modbus代码?

    什么是Modbus协议Modbus协议有哪些分类?使用Modbus时有哪些注意事项?如何写稳定的Modbus代码?
    发表于 07-02 06:54

    modbus协议笔记

    1 Modbus协议概要​ Modbus通信协议由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为可编程逻辑控制(即PLC)通信而发表。目前,Modbu
    发表于 07-02 07:17

    Modbus协议是什么?Modbus协议主要有哪些应用?

    请问一下Modbus协议是什么?Modbus协议主要有哪些应用?
    发表于 07-15 12:04

    Modbus协议的特点是什么

    Modbus协议的特点是什么?Modbus协议有哪几类功能码?
    发表于 09-26 08:13

    Modbus协议是怎样进行通信的

    Modbus协议的原理是什么?Modbus协议是怎样进行通信的?
    发表于 09-28 06:48

    Modbus协议地址与协议层次

    Modbus协议地址是什么意思?Modbus协议层次有何优势?
    发表于 09-28 06:27

    Modbus协议是什么

    Modbus协议是什么?MODBUS功能码有哪些?MODBUS协议有哪几种传输模式?
    发表于 09-29 07:06

    Modbus是什么?Modbus协议有哪些优点

    Modbus是什么?Modbus协议有哪些优点?Modbus协议包括哪些?
    发表于 09-30 08:40

    modbus协议的相关资料分享

    第一次写专栏,暂时打算分为3吧;第一modbus协议的理论内容;第二modbus的实现载体——RS485硬件部分程序实现
    发表于 02-21 06:43

    Modbus协议简介及其特点

    Modbus协议是什么,Modbus协议的特点,本文针对Modbus协议的概况加以阐述。
    发表于 11-02 15:00 4475次阅读

    欧姆龙CP1L-EL转Modbus协议欧姆龙PLC转Modbus协议

    欧姆龙PLC转Modbus协议 欧姆龙CP1L-EL转Modbus协议
    的头像 发表于 11-06 15:55 1709次阅读
    欧姆龙CP1L-EL转<b class='flag-5'>Modbus协议</b>欧姆龙PLC转<b class='flag-5'>Modbus协议</b>

    modbus协议应用指南

    modbus协议
    发表于 12-04 09:45 1次下载

    modbus协议功能码分类 modbus协议功能码是什么,有什么作用

    Modbus协议是一种用于工业领域常见的通信协议,它基于主从结构,用于在不同设备之间实现数据交换。Modbus协议的功能码是决定数据交换类型和操作的重要部分。下面将详细介绍Modbus协议
    的头像 发表于 01-31 14:47 1564次阅读

    Modbus协议网关是什么?Modbus协议网关的功能

    Modbus协议网关是一种专门用于工业自动化环境中的网络设备,其主要功能是实现不同通信协议之间的转换,尤其是将基于Modbus协议的设备或系统与使用其他协议的设备、控制系统或信息系统连
    的头像 发表于 04-11 15:51 137次阅读