Modbus 通讯协议简化V10含具体说明剖析.docx

上传人:b****4 文档编号:598032 上传时间:2022-10-11 格式:DOCX 页数:9 大小:19.63KB
下载 相关 举报
Modbus 通讯协议简化V10含具体说明剖析.docx_第1页
第1页 / 共9页
Modbus 通讯协议简化V10含具体说明剖析.docx_第2页
第2页 / 共9页
Modbus 通讯协议简化V10含具体说明剖析.docx_第3页
第3页 / 共9页
Modbus 通讯协议简化V10含具体说明剖析.docx_第4页
第4页 / 共9页
Modbus 通讯协议简化V10含具体说明剖析.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Modbus 通讯协议简化V10含具体说明剖析.docx

《Modbus 通讯协议简化V10含具体说明剖析.docx》由会员分享,可在线阅读,更多相关《Modbus 通讯协议简化V10含具体说明剖析.docx(9页珍藏版)》请在冰豆网上搜索。

Modbus 通讯协议简化V10含具体说明剖析.docx

Modbus通讯协议简化V10含具体说明剖析

Modbus通讯协议简化

V1.02004-5-21

1Modbus协议概述

Modbus协议是主从站通讯协议,用异步串行口完成通讯,物理层采用RS485或RS232。

传输速率可以达到115kbps,理论上可接(寻址一台主站和至多247台从站。

受线路和设备的限制,最多可接一台主站和32台从站。

Modbus协议的某些特性是固定的,如帧格式、帧顺序、通讯错误和异常情况的处理,以及所执行的功能等,都不能随便改动。

其他特性属于用户可选的,如传输介质、波特率、字符奇偶校验、停止位的个数等等,传输模式为RTU。

用户所选择的参数对于各个站必须一致,在系统运行时不能改变。

1.1Modbus协议传输模式

Modbus的传输模式:

RTU方式。

表1-1RTU传输模式的特性

特性RTU编码系统十六进制

每个字符的位数

起始位1位

数据位8位

奇偶校验位0或1位

停止位1或2位

校验和CRC(循环冗余校验

1.2帧

Modbus协议的帧(报文格式:

RTU帧。

下表是RTU传输模式的一般格式命令帧。

从站地址功能码数据校验和

8位8位N*8位16位

2Modbus协议

2.1通讯方式

Modbus有两种通讯方式:

应答方式和广播方式。

应答方式是主站向某个从站(地址1~247发出命令,然后等待从站的应答;从站接到主站命令后,执行命令,并将执行结果返回给主站作为应答,然后等待下一个命令。

广播方式是主站向所有从站发送命令(从站地址为0,不需要等待从站应答;从站接到广播命令后,执行命令,也不向主站应答。

除了会送诊断校验外,只有05、06、15、16这四项功能(见2.3对广播方式有效。

2.2Modbus帧

Modbus的帧按应答方式分为命令帧(询问帧和应答帧。

命令帧为一般格式命令帧,应答帧有显长度帧和隐长度帧之分,图2-1、2-3、2-4给出了典型的帧格式。

数据

从站地址

功能码

数据起始寄存器高位

数据起始寄存器地位

数据寄存器高位

数据寄存器地位

校验和

图2-1一般格式命令帧

从站地址

功能码

数据长度

数据

校验和

图2-3显长度应答帧

从站地址

功能码

数据

校验和

图2-4隐长度应答帧

2.2.1

从站地址字段

帧中的从站地址字段表示接收主站报文的从站地址。

当从站地址字段为0时,表示所有从站,此时的报文是广播报文。

用户必须设定每台从站的专用地址。

只有被编址的设备才能对主机的命令(询问做出应答。

从站发送应答报文时,报文中地址的作用是向主站报告正在通讯的是哪台从站。

2.2.2功能码字段

功能码字段同志从站应执行何种功能。

表2-1列出了功能码的意义和作用。

2.3节

给出了各个功能码对应报文的详细格式和功能。

表2-1Modbus功能码

功能码名称

作用(对主站而言

01读取开出状态取得一组开关量输出的当前状态02读取开入状态取得一组开关量输入的当前状态03读取模出状态取得一组模拟量输出的当前状态04读取模入状态取得一组模拟量输入的当前状态05强制单路开出强制设定某个开关量输出的值06强制单路模出强制设定某个模拟量输出的值07读取异常状态取得从站的一些状态(8位

08回送诊断校验把诊断校验报文送从站,以对通讯处理进行评鉴09编程主机模拟编程器的作用,修改从站逻辑10探询定期探询从站是否已完成某长程序任务11读取事件计数取得通讯状态和通讯事件的次数

12

读取通讯事件记录

取得通讯状态、事件次数、报文数量和至多64个事

13编程主机模拟编程器的作用,修改从站逻辑

14探询定期探询从站是否已完成某长程序任务

15强制多路开出强制设定从站几个开关量输出的值

16强制多路模出强制设定从站几个模拟量输出的值

17报告从站标识取得从站类型和运行指示灯的状态

18编程主机模拟编程器的作用,修改从站逻辑

19重置通讯链路使从站复位于已知状态

20-72保留留作扩展功能备用

73-119非法功能

120-127保留留作内部使用

128-255保留用作异常应答

2.2.2数据长度字段

数据长度字段记录的是随后的数据字段的长度,单位为字符(字节。

数据字段的长度总是被规定为RTU模式下数据字符的总数,数据字符的数量总是按RTU模式下的数据字符计算。

2.2.4数据字段

数据字段内含有从站执行某项具体功能的信息,或者含有从站应答询问的信息。

这些信息可以是数值、地址参数或范围,例如,从哪路开关量或寄存器开始,处理几个开关位或寄存器、开关量或寄存器的值等等。

2.2.5校验和字段

校验和字段用于检查通讯报文在通讯线路中是否出错。

RTU模式传送时,用CRC-16,参见附录A。

2.3功能码

2.3.1读取开出状态(功能码01

本功能可使主站获得被编址从站的开关量输出的通断状态。

起始地址是指从哪一路开关量开始(编号从0开始,数据线圈数是指读取几路。

应答帧中的数据是按上述要求读取的开关量数据(每路一位,每8位组成一个字节,最后一个字节的不足部分补0。

本功能不支持广播方式。

以下例子是读取17号从站开关量输出020-056的状态,读出的37位组成5个字节,最后一个字节的高三位补0。

询问RTU帧:

从站地址功能码起始地址

高位起始地址

低位

数据线圈

数高位

数据线圈

数低位

校验和

CRC

11H01H00H13H00H25H0EH

84H

应答RTU帧:

从站地址功能码字节计数数据校验和CRC

11H01H05HCDH6BHB2H0EH1BH45HE6H

2.2.3读取开入状态(功能码02

本功能可使主站获得被编址从站的开关量输入的通断状态。

起始地址是指从哪一路开关量开始(编号从0开始,数据线圈数是指读取几路。

应答帧中的数据是按上述要求读取的开关量数据(每路一位,每8位组成一个字节,最后一个字节的不足部分补0。

本功能不支持广播方式。

以下例子是读取17号从站开关量输入0197-0218的状态,读出的22位组成3个字节,最后一个字节的高2位补0。

询问RTU帧:

从站地址功能码起始地址

高位起始地址

低位

数据线圈

数高位

数据线圈

数低位

校验和

CRC

11H02H00HC4H00H16HBAH

A9H应答RTU帧:

从站地址功能码字节计数数据校验和CRC

11H02H03HACHDBH35H20H18H

2.2.4读取模出状态(功能码03

本功能可使主站获得被编址从站的模拟量输出的通断状态。

起始地址是指从哪一路

模拟量开始(编号从0开始,寄存器数是指读取几路模拟量(每路模拟量2个字节,

高位在前,低位在后。

应答帧中的数据是按上述要求读取的模拟量数据。

本功能不支

持广播方式。

以下例子是读取17号从站模出点0108-0110的状态。

应答数据高字节在前。

108

是555,109是0,110是100。

询问RTU帧:

从站地址功能码起始地址

高位起始地址

低位

寄存器数

高位

寄存器数

低位

校验和

CRC

11H03H00H6BH00H03H76H

87H应答RTU帧:

从站地址功能码字节计数数据校验和CRC

11H03H06H02H2BH00H00H00H64HCBHBAH

110380

2.2.5读取模入状态(功能码04

本功能可使主站获得被编址从站的模拟量输入值。

起始地址是指从哪一路模拟量开

始(编号从0开始,寄存器数是指读取几路模拟量(每路模拟量2个字节,高位在前,低位在后。

应答帧中的数据是按上述要求读取的模拟量数据。

本功能不支持广播方式。

以下例子是读取17号节点的模入点0108-0110的状态。

应答数据高字节在前。

108是555,109是0,110是100。

询问RTU帧:

从站地址功能码起始地址

高位起始地址

低位

寄存器数

高位

寄存器数

低位

校验和

CRC

11H04H00H6BH00H03HC3H

47H应答RTU帧:

从站地址功能码字节计数数据校验和CRC

11H04H06H02H2BH00H00H00H64H5C89H

2.2.6强制单路开出(功能码05

本功能可使主站强行设定被编址从站某路开关量输出的通断状态。

从站内部的任何

一路开关量均能被强制。

起始地址是指设定开关量的哪一路(编号从0开始,数据用

于设定开或关:

FF为开,0为关,其他值为非法值。

正常应答是将报文原文发回。

站地址为0时,为广播方式。

以下例子是强制17号从站开出点173为ON。

询问RTU帧:

从站地址功能码起始地址

高位起始地址

低位

数据开关原状

校验和

CRC

11H05H00HACHFFH00H4EH

8BH应答RTU帧:

从站地址功能码起始地址

高位起始地址

低位

数据开关原状

校验和

CRC

11H05H00HACHFFH00H4EH

8BH2.2.7强制单路模出(功能码06

本功能可使主站强行设定被编址从站某路模拟量输出的值。

从站内部的任何一路模

拟量均能被强制。

起始地址是指设定哪一路模拟量(编号从0开始,数据用于设定该

模拟量的值(高位在前,低位在后。

正常应答是将报文原文发回。

从站地址为0时,

为广播方式。

以下例子是强制17号从站模出点136为039EH。

询问RTU帧:

从站地址11H功能码06H起始地址高位00H起始地址低位87H数据高位03H数据低位9EH校验和CRCBAH2BH应答RTU帧:

从站地址11H2.2.8功能码06H起始地址高位00H起始地址低位87H数据高位03H数据低位9EH校验和CRCBAH2BH强制多路开出(功能码15)本功能可使主站强行设定被编址从站一组连续开关量输出的通断状态。

从站内部的任何开出量均能被强制。

起始地址是从哪一路开关量开始(编号从0开始),寄存器数是指设定几路。

字节计数是指随后的线圈状态(开关量设定值)的字节数。

线圈状态是设定的开出值,每一路开出占用一位(1为开,0为关),每八位组成一个字节,最后一个字节的不足部分补0。

正常应答内容是回送从站地址、功能码、起始地址和强置的开关量数。

从站地址为0时,为广播模式。

以下例子是强置17号从站开关量输出0020-0029的状态,设定值CD(11001101)和00(00000000)表示开关量输出的第27、26、23、22和20将被强置为开状态。

询问RTU帧:

从站地址11H功能码0FH起始地址高位00H起始地址低位13H寄存器数高位00H寄存器数低位0AH字节计数02H数据CDH00H校验和CRC7EHCBH应答RTU帧:

从站地址11H2.2.9功能码0FH起始地址高位00H起始地址低位13H寄存器数高位00H寄存器数低位0AH校验和CRC26H99H强制多路模出(功能码16)本功能可使主站强行设定被编址从站一组连续模拟量输出的值。

从站内部的任何模出量均能被强制。

起始地址是从哪一路模拟量开始(编号从0开始),寄存器数是指设定几路。

字节计数是指随后的数据(模拟量设定值)的字节数。

数据是设定的模出值,每一路模出两个字节(高位在前,低位在后)。

正常应答内容是回送从

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1