Modbus-rtu通信协议整理
ModbusRTU通讯协议整理版

Modbus 通讯协议(RTU传输模式)目录1.Modbus协议简介 (3)1.1.传输方式 (3)1.2.协议 (3)1.2.1.信息帧 (4)1.2.2.地址(Address)域 (4)1.2.3.功能(Function)域 (4)1.2.4.数据域 (5)1.2.5.错误校验域 (5)1.2.6.字符的连续传输 (5)1.3.错误检测 (5)1.3.1.奇偶校验 (5)1.3.2.CRC检测 (6)2.Modbus数据和控制功能详解 (7)2.1.读取线圈状态(功能码01) (7)2.2.读取输入状态(功能码02) (8)2.3.读取保持寄存器(功能码03) (8)2.4.读取输入寄存器(功能码04) (9)2.5.强置单线圈(功能码05) (9)2.6.预置单寄存器(功能码06) (10)2.7.读取异常状态(功能码7) (10)2.8.强置多线圈(功能码15) (11)2.9.预置多寄存器(功能码16) (12)2.10.报告从机标识(功能码17) (12)3.附录 (13)3.1.附录A:MODBUS全部功能码 (13)3.2.附录B:不正常响应 (14)3.3.附录C:CRC校验生成程序 (15)1.Modbus协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
MODBUS-RTU通讯协议书范本

®MODBUS通讯协议使用手册1. RTU 方式通讯协议1.1. 硬件采用RS -485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 38400 1.3. 功能码03H : 读寄存器值主机发送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 读寄存器值功能码 第3、4字节 : 要读的寄存器开始地址 要读FCC 下挂仪表,第5、6字节 : 要读的寄存器数量 第7、8字节 : 从字节1到6的CRC16校验和 从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 返回读功能码第3字节 :从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 83H : 读寄存器值出错第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值主机发送:当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR:从机地址码(=001~254)第2字节 86H :写寄存器值出错功能码 第3字节 错误数息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.5. 功能码10H : 连续写多个寄存器值当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR: 从机地址码(=001~254)第2字节 90H : 写寄存器值出错 第3字节 错误信息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.8 寄存器定义表:(注:寄存器地址编码为16进制)备注:E为阶码。
M为尾数的小数点部分。
MODBUSRTU通讯规约

MODBUS_RTU通讯规约一、通讯数据的类型及格式信息传输为异步方式,并以字节为单位,在主机和从机之间传递的通讯信息是11位的字格式,包含1个起始位(0),8个数据位,2个停止位(1)。
信息帧格式:二、通讯信息传输过程通讯命令由主机发送至从机时,与主机发送的地址码相符的从机接收通讯命令,如果CRC校验无误,则执行相应的操作,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
如果CRC校验出错就不返回任何信息。
2.1 地址码地址码是每个通讯信息帧的第个1字节,从0到100。
每个从机必须有总线内唯一的地址码,只有与主机发送的地址码相符的从机才能响应回送信息。
当从机回送信息时,回送数据均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,从机返回的地址码表明回送的从机地址,相应的地址码表明该信息来自于何处。
2.2 功能码每个通讯信息帧的第个2字节。
主机发送,通过功能码告诉从机应执行什么动作。
从机响应,从机返回的功能码与从主机发送来的功能码一样,表明从机已响应主机并已执行了相关的操作。
仪表支持以下2个功能码:2.3 数据区数据区随功能码不同而不同。
这些数据可以是数值、参考地址等。
对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。
主机利用通讯命令(功能码03H和10H),可以任意读取和修改从机数据寄存器,一次读取或写入的数据长度应不超过数据寄存器地址有效范围。
三、功能码简介3.1 功能码03H:读寄存器例如:主机要读取从机地址为01H,起始寄存器地址为0CH的2个寄存器数据。
主机发送:如果从机寄存器0CH、0DH的数据为0000H、1388H,从机返回:3.2功能码10H:写多路寄存器例如:主寄存器地址为00H的3个寄存器中。
主机发送:从机返回:四、16位CRC校验码主机或从机可用校验码判别接收信息是否正确。
由于电子噪声或一些其它干扰,信息在传输过程中可能会发生错误,校验码可以检验主机或从机通讯信息是否有误。
(完整版)MODBUS通讯协议-RTU要点

Modbus 通讯协议(RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。
第一章Modbus协议简介Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。
协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
1.1 传输方式传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU 模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼容的传输方式。
代码系统•8位二进制,十六进制数0...9,A...F•消息中的每个8位域都是一个两个十六进制字符组成每个字节的位•1个起始位•8个数据位,最小的有效位先发送•1个奇偶校验位,无校验则无•1个停止位(有校验时),2个Bit(无校验时)错误检测域•CRC(循环冗长检测)11.2协议当信息帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
MODBUS_RTU通讯协议

百特工控福州福光百特自动化设备有限公司MODBUS通讯协议使用手册1. RTU 方式通讯协议1.1. 硬件采用RS -485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 38400 1.3. 功能码03H : 读寄存器值主机发送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 读寄存器值功能码 第3、4字节 : 要读的寄存器开始地址 要读FCC 下挂仪表,第5、6字节 : 要读的寄存器数量 第7、8字节 : 从字节1到6的CRC16校验和 从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 返回读功能码第3字节 :从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 83H : 读寄存器值出错第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值主机发送:当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR:从机地址码(=001~254)第2字节 86H :写寄存器值出错功能码 第3字节 错误数息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.5. 功能码10H : 连续写多个寄存器值当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR: 从机地址码(=001~254)第2字节 90H : 写寄存器值出错 第3字节 错误信息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.8 寄存器定义表:(注:寄存器地址编码为16进制)备注:E为阶码。
MODBUSRTU通信协议

MODBUS RTU通信协议本通信协议采用标准ModBus协议,采用RTU(十六进制数)传输模式。
ModBus协议是一种主---从式协议。
任何时刻只有一个设备能够在线路上进行发送。
由主站管理信息交换,且只有主站能发起。
主站会依次对从站进行轮流查询。
只有当从站地址与轮询地址相匹配,从站才能回复消息。
从站之间不能进行直接通信。
协议桢中不包含任何消息报头及消息结束符,消息的开始和结束依靠间隔时间来识别,当间隔时间长于或等于3.5个字符时,即作为检测到桢结束。
如果网络内没有与查询地址相一致的从站或从站接收时CRC校验出错,主站将不会接收到返回桢,这时主站根据超时设定判断是否超时,如超时,作出重发或弹出异常错误窗口动作。
协议桢定义如下:从站地址功能代码数据区CRC16从站地址:地址必须在1---247之间。
在同个主站网络中每个从站地址必须唯一。
设定仪表二级参数DE。
功能代码:包含读、写多个寄存器。
数据:以二进制代码传输。
CRC16:循环冗余校验,校验从从站地址到数据区最后一个字节,计算多项式码为A001(hex)。
通讯口设置通讯方式异步串行通讯接口,如RS-485,RS-232,RS-422等波特率 1200~9600bps(可由设定仪表二级参数自由更改,设定仪表二级参数BT,默认9600)见表10字节数据格式 HEX. 一位起始位. 八位数据位. 一位停止位. 无校验起始位数据位(从低到高)停止位消息桢格式(读、写功能是从主站角度定义的)读寄存器桢读寄存器返回桢写寄存器桢写寄存器返回桢错误返回桢功能代码表:1错误代码表:2寄存器0x03,0x10命令对应的保持寄存器地址表,MODBUS地址40001 对应于寄存器地址0。
所以MODBUS上面传输的地址应该是寄存器地址+ 40001。
每个通道的起始地址为40001注:1. 继电器在低危险报警浓度和高危险报警浓度都工作。
2.必须在控制器上面使用 1066 的指令来读取所有探头的高低报警数值,MODBUS里面的低危险报警值和低危险报警值,以及报警状态才能有正确的数值反馈。
Modbus RTU通讯协议》》》》》

2.波特率设定:在BAUD栏写相应的数据:1代表2400 BIT/S2代表4800 BIT/S3代表9600 BIT/S4代表19200 BIT/S5代表38400 BIT/S3.通讯地址设定:在ADD框中输入要设定的地址,默认为50,设定范围为:1-254,255为公共地址二.调教部分:1.CLEAR按钮:CLEAR按钮为清零按钮2.RESET按钮:RESET按钮为数据在清零后要回到决定位置时单击此按钮三.MODBUS通讯协议MODBUS-RTU MODE Protocol1位起始位,8位数据位,1位停止位,无奇偶效验位上位机要求一般数据读取(一共8个字节)Address 8-bits XXH Function8-bits03HStart_Address16-bitsXXH,XXHPoint16-bitsXXH,XXH=NCRC1616-bits(LO, HI)XXH,XXH 下位机回复(一共5+n个字节)Address 8-bits XXH Function8-bits03H字节8-bitsXXH=NDATAN x 8-bitsXXH,XXH...CRC1616-bits(LO, HI)XXH,XXH-------------------------------------------------------------------- 40001:为写入命令(11为清零)40002:显示高位(注:显示为有符号数,负数取其补码)40003:显示低位(显示=40002值*65536+40003值)40004:线性校正显示高位(注:显示为有符号数,负数取其补码)40005:线性校正显示低位(显示=40002值*65536+40003值)40006:最高显示设定(设定范围:0-60000)40007:最低显示设定(设定范围:0-60000)40008:波特率(1:2400;2:4800;3:9600;4:19200;5:38400)40009:通讯地址(设定范围:1-254,255为公共地址)-------------------------------------------------------------------- 范例:例如40001项写入11实现清0功能.发送如下命令:031 006 000 000 000 011 203 197上位机要求一般数据写入(一共8个字节)Address 8-bits 031 Function8-bits006Start_Address16-bits000,000Point16-bits000,011CRC1616-bits(LO, HI)203,197。
modbus rtu 规约

modbus rtu 规约
Modbus RTU (Remote Terminal Unit) 是一种串行通信协议,用于在工业自动化系统中传输数据。
它是一种简单而可靠的协议,被广泛应用于监控和控制领域,包括工厂自动化、建筑自动化、能源管理系统等。
Modbus RTU 协议使用串行通信方式,通常在 RS-485 或 RS-232 等物理层上进行数据传输。
它采用了一种简单的主从结构,其中一个主站可以与多个从站进行通信。
主站负责发起通信请求,而从站则负责响应请求并提供数据。
Modbus RTU 协议定义了一系列功能码,用于读取和写入不同类型的数据,如线圈、离散输入、保持寄存器和输入寄存器。
这些功能码使得 Modbus RTU 协议非常灵活,可以满足各种不同应用场景的需求。
由于其简单和可靠性,Modbus RTU 协议已经成为工业自动化领域中的标准之一。
许多工业设备和控制系统都支持 Modbus RTU 协议,使得不同厂家的设备可以方便地进行通信和集成。
然而,需要注意的是,由于其串行通信的特点,Modbus RTU 在传输速度和距离上存在一定的限制。
因此,在设计和部署系统时,需要合理考虑通信距离和速度,以确保系统的稳定性和可靠性。
总的来说,Modbus RTU 协议作为一种简单而可靠的串行通信协议,为工业自动化系统的数据传输提供了有效的解决方案,为工业控制和监控领域的发展做出了重要贡献。