cq9电子·(中国)官方网站

  • 技術服務
    24小時提供高效率、高質量的技術支持

    Modbus協議簡要介紹

    时间:2019-01-08 11:42:45來源:本站原創

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

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


      在串行通信中,用“波特率”來描述數據的傳輸速率。國際上規定了一個標准波特率系列: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方式的消息幀:


      Modbus的功能碼:


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


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

      解析一下:主機發送指令,訪問從站地址爲1,使用功能碼03(讀保持寄存器),起始地址高8位、低8位:表示想讀取的模擬量的起始地址(起始地址爲0)。比如例子中的起始地址爲38,十進制爲:56。寄存器數量高8位、低8位:表示從起始地址開始讀多少個模擬量。例子中爲1個模擬量。注意,在返回的信息中一個模擬量需要返回兩個字節。錯誤校驗爲CRC校驗。

      從站應答:設備地址和命令號和上面的相同。返回的字節數:表示數據的字節個數,也就是數據1,2...n中的n的值。例子中返回了1個模擬量的數據,因爲一個模擬量需要2個字節所以共2個字節。數據高低字節:41和24代表返回的1個模擬量的值,即十進制的16676。錯誤校驗爲CRC校驗。

    计讯物联——物联网産品与行业解决方案提供商 申請樣機
    All Rights Reserved 廈門cq9电子官方网站物聯科技有限公司版權所有 閩ICP備15001895號 闽公网安备 35021102001331号
    【网站地图】【sitemap】