java modbus通讯协议_什么是Modbus 通讯协议?

6b7e70c273dd0e6208eec86407e70285.png

Modbus协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商的产品可以简单可靠的接入网络,实现系统的集中监控,分散控制功能。

目前Modbus规约主要使用的是ASCII, RTU, TCP等,并没有规定物理层。目前Modbus常用的接口形式主要有RS-232C,RS485,RS422,也有使用RJ45接口的,ModBus的ASCII, RTU协议则在此基础上规定了消息、数据的结构、命令和应答的方式。ModBus数据通信采用Master/Slave方式(主/从),即Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

cc555ceea2e11f9fae351c63b7ef8bb7.png

在串行通信中,用“波特率”来描述数据的传输速率。国际上规定了一个标准波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒传送9600位,包含字符的数位和其它必须的数位,如起始位、停止位和奇偶校验位等。

在自动化领域我们常用RTU模式,RTU 模式中每个字节的格式:

编码系统:8 位二进制,十六进制 0-9,A-F

数据位:1 起始位

8 位数据,低位先送

奇/偶校验时 1 位;无奇偶校验时 0 位

带校验时 1 位停止位;无校验时 2 位停止位

错误校验区:循环冗余校验(CRC)

从站地址设置:信息地址包括 2 个字符(ASCII)或 8 位(RTU),有效的从机设备地址范围 0-247(十进制)。

功能码设置:信息帧功能代码包括字符(ASCII)或 8 位(RTU)。有效码范围 1-225(十进制)。

数据区的内容:数据区有 2 个 16 进制的数据位,数据范围为 00-FF(16 进制),根据网络串行传输的方式,数据区可由一对 ASCII 字符组成或由一个 RTU 字符组成。

RTU方式的消息帧:

71996f16fd8e706abbb82b5cb9a29605.png

Modbus的功能码:

bde0a7aeebb6686ca06bad621f7a73d3.png

ModBus 功能码与数据类型对应表:

d5b0ab7d52b21014283f0b9b2e3a3f64.png

RTU 方式读取整数据的例子:

8e8dfaa9313be52c812cd71dfbe7a453.png

解析一下:主机发送指令,访问从站地址为1,使用功能码03(读保持寄存器),起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为38,十进制为:56。寄存器数量高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为1个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。错误校验为CRC校验。

从站应答:设备地址和命令号和上面的相同。返回的字节数:表示数据的字节个数,也就是数据1,2...n中的n的值。例子中返回了1个模拟量的数据,因为一个模拟量需要2个字节所以共2个字节。数据高低字节:41和24代表返回的1个模拟量的值,即十进制的16676。错误校验为CRC校验。


免责申明:本机构号所载文章为本号原创或根据网络搜索编辑整理,文章版权归原作者所有。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片,资料,下载链接中所包含的软件,资料等,如有侵权,请跟我们联系协商或删除,谢谢!


本文为剑指工控原创技术类文章,2020年4月29日首次发表于《剑指工控》公众号。

特别鸣谢本文作者

剑控老罗

具有10年工业自动化领域SCADA,DCS,PLC等项目实施经验,熟悉石化行业,油田数字化行业,熟悉多个品牌PLC,HMI,SCADA,数据库等。


本账号为《剑指工控》官方知乎账号。剑指工控由一群带有工控情结的技术青年组织在一起,他们都是在工控一线的技术达人,如果你是工控一线的工程师,如果你在日常工控工作当中会遇到种种的技术问题,如果你热爱工控技术和工控生活,欢迎加入我们,随手提出你的技术问题会有技术达人第一时间为你解答。可以分享你的工控喜怒哀乐,会有兄弟们跟你产生共鸣。可以获得最新的工控资讯,指明技术和行业路线,做到未雨绸缪。

欢迎大家关注我们的公众号剑指工控(JZGKCHINA),更多的了解我们。

Ps. 进入公众号,“群&社区”菜单中有各个”技术交流学习群“的入口链接,获取小编微信号,添加小编微信并备注“行业+微信名+城市”(格式不对能通过好友验证,但一律不加群)

高校在校生请告知小编,进入“高校自动化专业交流群”~

高校自动化专业群,旨在专业课程学习,专业方向选择,课程设计,毕业设计,就业方向,考研方向,高校杯自动化竞赛等方面进行交流和经验分享~

期待你的加入~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值