自己整理的modbus协议
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协议整理
MODBUS协议整理协议名称:MODBUS协议整理一、引言MODBUS协议是一种用于工业控制系统的通信协议,广泛应用于自动化领域。
本协议旨在整理MODBUS协议的基本原理、通信方式、数据帧格式以及相关功能码的使用方法,以便于开发人员在设计和实施MODBUS通信时能够准确理解和应用该协议。
二、协议原理1. MODBUS协议采用主从结构,主设备负责发起通信请求,从设备负责响应请求。
2. 通信基于串行通信或以太网通信,通过物理层的传输介质进行数据传输。
3. MODBUS协议使用简单、高效的数据帧格式,在通信过程中通过功能码来定义通信类型和数据操作。
三、通信方式1. 串行通信方式a. MODBUS RTU:采用二进制编码,数据帧包括起始位、设备地址、功能码、数据、CRC校验等字段。
b. MODBUS ASCII:采用ASCII编码,数据帧包括起始符、设备地址、功能码、数据、LRC校验等字段。
2. 以太网通信方式a. MODBUS TCP/IP:基于TCP/IP协议,数据帧采用以太网帧格式,包括设备地址、功能码、数据等字段。
四、数据帧格式1. MODBUS RTU数据帧格式起始位 | 设备地址 | 功能码 | 数据 | CRC校验-------|---------|-------|------|--------1字节 | 1字节 | 1字节 | n字节 | 2字节2. MODBUS ASCII数据帧格式起始符 | 设备地址 | 功能码 | 数据 | LRC校验 | 结束符-------|---------|-------|------|--------|-------1字节 | 2字节 | 2字节 | n字节 | 1字节 | 2字节3. MODBUS TCP/IP数据帧格式以太网帧格式五、功能码1. 读取操作a. 读取线圈状态:功能码01,用于读取从设备的线圈状态。
b. 读取输入状态:功能码02,用于读取从设备的输入状态。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理协议背景:MODBUS协议是一种用于工业自动化领域的通信协议,广泛应用于工业控制系统中。
为了更好地理解和应用MODBUS协议,现整理该协议的相关内容。
一、协议概述MODBUS协议是一种基于主从架构的串行通信协议,用于实现设备之间的数据交换。
该协议定义了数据传输的格式、通信方式和错误处理等规范,使得不同厂商的设备能够互联互通。
二、协议特点1. 简单易懂:MODBUS协议采用简单的二进制格式进行数据传输,易于理解和实现。
2. 灵活可扩展:该协议支持多种通信方式,如串口、以太网等,并且可以根据具体需求进行扩展。
3. 高效可靠:MODBUS协议具有较高的传输效率和可靠性,适用于实时性要求较高的工业控制系统。
三、协议结构MODBUS协议由多个功能码组成,每个功能码对应一种操作。
以下为常用的功能码及其对应的操作:1. 读取线圈状态(功能码01):用于读取远程设备的线圈状态,返回线圈的开关状态。
2. 读取输入状态(功能码02):用于读取远程设备的输入状态,返回输入的开关状态。
3. 读取保持寄存器(功能码03):用于读取远程设备的保持寄存器的值,返回寄存器的内容。
4. 读取输入寄存器(功能码04):用于读取远程设备的输入寄存器的值,返回寄存器的内容。
5. 写单个线圈(功能码05):用于控制远程设备的单个线圈,将线圈置为开启或关闭状态。
6. 写单个保持寄存器(功能码06):用于设置远程设备的单个保持寄存器的值。
7. 写多个线圈(功能码15):用于控制远程设备的多个线圈,将多个线圈置为开启或关闭状态。
8. 写多个保持寄存器(功能码16):用于设置远程设备的多个保持寄存器的值。
四、协议通信方式MODBUS协议支持多种通信方式,包括串口通信和以太网通信。
以下为常用的通信方式:1. 串口通信:MODBUS协议支持RS-232、RS-485等串口通信方式,适用于小规模的设备互联。
modbus通信协议书
modbus通信协议书甲方(以下简称甲方):地址:法定代表人:乙方(以下简称乙方):地址:法定代表人:鉴于甲方需要在其自动化控制系统中采用Modbus通信协议进行数据交换,乙方拥有提供Modbus通信解决方案的专业能力,双方本着平等互利的原则,经友好协商,就Modbus通信协议的实施达成如下协议:第一条定义1.1 Modbus通信协议:指由Modicon公司(现为施耐德电气的一部分)开发的用于工业自动化领域的通信协议,包括Modbus RTU、Modbus ASCII和Modbus TCP/IP等。
第二条协议内容2.1 乙方将根据甲方的需求,提供符合Modbus通信协议标准的设备和技术支持。
2.2 甲方应按照乙方提供的技术规范和操作手册,正确使用Modbus通信协议进行数据交换。
2.3 双方应共同遵守Modbus通信协议的相关标准和规定,确保数据交换的准确性和安全性。
第三条技术支持与服务3.1 乙方负责提供Modbus通信协议的技术支持,包括但不限于设备调试、故障排除和技术咨询。
3.2 甲方在遇到技术问题时,应首先联系乙方寻求帮助。
乙方应在接到请求后及时响应并提供解决方案。
第四条保密条款4.1 双方应对在合作过程中知悉的商业秘密和技术秘密予以保密,未经对方书面同意,不得向第三方披露。
第五条知识产权5.1 乙方提供的Modbus通信协议解决方案及相关技术文档的知识产权归乙方所有,甲方应尊重乙方的知识产权。
第六条违约责任6.1 如一方违反本协议的任何条款,应承担违约责任,并赔偿对方因此遭受的损失。
第七条协议的变更和解除7.1 本协议的任何变更和补充,应由双方协商一致,并以书面形式确定。
7.2 如一方严重违约,另一方有权解除本协议,并要求违约方承担相应的违约责任。
第八条争议解决8.1 本协议在履行过程中如发生争议,双方应首先通过友好协商解决;协商不成时,任何一方可向甲方所在地人民法院提起诉讼。
第九条其他9.1 本协议自双方授权代表签字盖章之日起生效。
ModBus 通讯协议
1、数据帧基本形式:
设备地址
功能码
数据
效验码
8-Bits
8-Bits
N * 8-Bits
16-Bits
2、设备地址:为保护装置的通讯地址ID号。
3、功能码列表:
功能码
含义
注释
03H
读遥测量
读采样值
02H要遥信
05H遥控
04H SOE数据
06H设置通播校时
4、效验码:
5、上下位机的通讯帧:
上来
01 02 02 00 01 78 78 /*因为只要了0X0A个,所以上来两字节就够了0X0001里面包含了16个遥信了*/
解释:
为要遥信量,要了0xA=10个遥信量,但是实际上遥信量一个装置最多就64个,一个字节就能包含8个遥信量。F80D为CRC校验,不用管,程序里不检测。01为保护装置的通讯地址;
·上位机要求数据格式举例
设备地址
功能码
数据起始地址(HI)
数据起始地址(LO)
数据字节数(HI)
数据字节数(LO)
CRC16(LO)
CRC16(HI)
00H
01H
00H
00H
00H
01H
FCH
1BH
·下位机回应数据格式举例
设备地址
功能码
字节数
数据
CRC16
CRC16
00H
01H
01H
02H
D4H
89H
字节计数
数据
校验和CRC
01H
03H
08H
00 00 01 30 0000 f964
97H B9H
00 00 01 30为有功电度数据(除以100为真实值)
(完整word版)MODBUS通讯协议以及应用
ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。
下面就ModBus RTU协议简要介绍如下:一、通讯协议(一)、通讯传送方式:通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义也与MODBUS RTU 通讯规约相兼容:初始结构 = ≥4字节的时间地址码 = 1 字节功能码 = 1 字节数据区 = N 字节错误校检 = 16位CRC码结束结构= ≥4字节的时间地址码:地址码为通讯传送的第一个字节。
这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。
并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。
ModBus通讯规约定义功能号为1到127。
本仪表只利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机执行什么动作。
作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。
数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。
CRC码:二字节的错误检测码。
(二)、通讯规约:当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。
如果出错就不发送任何信息。
1.信息帧结构地址码:地址码是信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理协议简介:MODBUS协议是一种通信协议,用于在工业自动化系统中传输数据。
该协议采用主从结构,允许主设备(通常是控制器或计算机)与从设备(通常是传感器、执行器或其他外设)进行通信。
MODBUS协议被广泛应用于工业领域,以实现设备之间的数据交换和控制。
协议内容:1. MODBUS协议类型:- MODBUS RTU:采用二进制编码,在串行通信中使用。
- MODBUS ASCII:采用ASCII编码,在串行通信中使用。
- MODBUS TCP:采用TCP/IP协议,在以太网通信中使用。
2. MODBUS协议帧格式:- MODBUS RTU帧格式:- 起始符:1字节,值为0xFF。
- 设备地址:1字节,用于标识主从设备。
- 功能码:1字节,用于指定操作类型。
- 数据域:可变长度,包含读取或写入的数据。
- CRC校验:2字节,用于数据完整性验证。
- MODBUS ASCII帧格式:- 起始符:1字节,值为':'- 设备地址:2字节,用于标识主从设备。
- 功能码:2字节,用于指定操作类型。
- 数据域:可变长度,包含读取或写入的数据。
- LRC校验:2字节,用于数据完整性验证。
- MODBUS TCP帧格式:- 事务标识符:2字节,用于标识请求和响应的对应关系。
- 协议标识符:2字节,值为0x0000。
- 长度字段:2字节,指示后续数据长度。
- 设备地址:1字节,用于标识主从设备。
- 功能码:1字节,用于指定操作类型。
- 数据域:可变长度,包含读取或写入的数据。
3. MODBUS协议功能码:- 读取线圈状态(功能码0x01):用于读取从设备的开关量输入。
- 读取离散输入状态(功能码0x02):用于读取从设备的离散量输入。
- 读取保持寄存器(功能码0x03):用于读取从设备的模拟量输入。
- 读取输入寄存器(功能码0x04):用于读取从设备的模拟量输入。
自己整理的modbus协议
自己整理的modbus协议Modbus协议是一种通信协议,用于在工业自动化系统中实现设备之间的数据交换。
本文将介绍Modbus协议的基本原理和特点,并提供一些自行整理的Modbus协议示例。
1. Modbus协议概述Modbus协议是一种基于主机-从机架构的通信协议,最初由Modicon公司于1979年开发,现已成为工业控制系统中最常用的通信协议之一。
Modbus协议采用了简洁、高效的ASCII码和RTU(远程终端单元)格式,可用于串口、以太网等不同物理介质。
2. Modbus协议的通信方式Modbus协议支持两种主要的通信方式:Modbus ASCII和Modbus RTU。
Modbus ASCII使用ASCII码进行数据传输,每个数据字节都是用ASCII字符表示。
Modbus RTU使用二进制编码,每个数据字节都是一个8位无符号整数。
下面是一个Modbus ASCII协议的示例:起始符地址功能码数据 CRC校验: 01 06 000A 5A46起始符(:):表示数据帧的开始。
地址(01):表示从机设备的地址。
功能码(06):表示所需执行的功能。
数据(000A):表示要写入从机设备的数据。
CRC校验(5A46):表示数据帧的校验和。
3. Modbus协议的功能码Modbus协议定义了一系列的功能码,用于执行不同的任务。
以下是常见的几种功能码:- 读取线圈状态(读取位操作):功能码为01,可用于读取从机设备的输出线圈状态。
- 读取输入状态(读取位操作):功能码为02,可用于读取从机设备的输入状态。
- 读取保持寄存器(读取字节或字操作):功能码为03,可用于读取从机设备的保持寄存器。
- 读取输入寄存器(读取字节或字操作):功能码为04,可用于读取从机设备的输入寄存器。
- 写单个线圈状态(写位操作):功能码为05,可用于设置从机设备的输出线圈状态。
- 写单个保持寄存器(写字节或字操作):功能码为06,可用于设置从机设备的保持寄存器。
modbus协议
modbus协议协议名称:Modbus协议一、引言Modbus协议是一种通信协议,用于在工业自动化领域中实现设备之间的通信。
该协议由Modicon公司于1979年开发,已成为工业领域中最常用的通信协议之一。
本协议旨在规定Modbus通信的标准格式和通信规则,以确保设备之间的稳定和可靠的数据传输。
二、范围本协议适用于使用Modbus协议进行通信的设备,包括但不限于传感器、执行器、PLC控制器、数据采集设备等。
本协议适用于Modbus RTU、Modbus ASCII和Modbus TCP/IP三种通信方式。
三、术语定义1. Modbus主站:负责发起通信请求的设备。
2. Modbus从站:响应主站请求并提供数据的设备。
3. 寄存器:存储设备数据的内存单元。
4. 线圈:存储设备状态的内存单元。
5. 功能码:用于标识通信请求的类型。
四、通信格式1. Modbus RTU通信格式:- 起始位:一个起始位,用于同步通信。
- 地址位:从站设备地址,用于标识通信的目标设备。
- 功能码:用于标识通信请求的类型。
- 数据域:包含读取或写入的数据。
- CRC校验:用于检测通信数据的完整性。
- 结束位:一个或多个停止位,用于标识通信的结束。
2. Modbus ASCII通信格式:- 起始符:一个起始符,用于同步通信。
- 地址符:从站设备地址,用于标识通信的目标设备。
- 功能码:用于标识通信请求的类型。
- 数据域:包含读取或写入的数据。
- LRC校验:用于检测通信数据的完整性。
- 结束符:一个或多个结束符,用于标识通信的结束。
3. Modbus TCP/IP通信格式:- TCP头部:包含源IP地址、目标IP地址等信息。
- Modbus应用数据单元(ADU):包含Modbus请求或响应的数据。
- Modbus协议数据单元(PDU):包含Modbus请求或响应的功能码和数据。
五、通信规则1. Modbus主站发送请求:- 主站向从站发送请求,包括从站设备地址和功能码。
modbus协议范本
Modbus协议范本
一、通信协议
Modbus是一种串行通信协议,用于连接工业电子设备。
它定义了主从设备之间的通信方式和数据格式,使得不同厂商生产的设备能够相互通信。
二、数据格式
Modbus协议采用ASCII码或二进制码进行数据传输。
在ASCII码格式中,每个字节都表示为一个ASCII字符,而在二进制码格式中,每个字节都表示为8位二进制数。
三、命令与应答
Modbus协议采用命令/应答的方式进行通信。
主设备发送一个命令,从设备接收并执行该命令,然后返回一个应答。
命令和应答都遵循一定的格式和协议。
四、校验方式
Modbus协议提供了两种校验方式:奇偶校验和CRC校
验。
奇偶校验方式通过在数据字节后添加一个校验位来确保数据的正确性。
CRC校验方式则使用一个循环冗余检查算法来确保数据的正确性。
五、数据通信方式
Modbus协议支持两种数据通信方式:同步通信和异步通信。
同步通信要求主设备和从设备在通信时保持同步,而异步通信则不需要同步。
六、连接方式
Modbus协议支持多种连接方式,包括RS-485、RS-422、RS-232等。
这些连接方式适用于不同的应用场景和设备配置。
七、传输速率
Modbus协议支持多种传输速率,包括9.6kbps、19.2kbps、4800bps等。
根据不同的应用场景和设备配置,可以选择合适的传输速率来确保通信的稳定性和可靠性。
modbus通讯协议模板
Modbus通讯协议是一种在工业领域广泛使用的通信协议,用于在设备之间传输数据。
Modbus协议有多个变体,包括Modbus RTU(串行通信)和Modbus TCP(基于TCP/IP的通信)。
以下是一个简单的Modbus通讯协议模板,供参考:Modbus RTU 通讯协议模板:1. 起始符:Modbus RTU通讯以一帧二进制数据开始。
在串行通信中,通常使用起始符标志通讯的开始。
常见的起始符是11位的空闲时间。
2. 设备地址:Modbus RTU协议中,每个设备都有一个唯一的地址。
设备通过地址来区分通信的目标。
3. 功能码:描述要执行的操作的功能码。
常见功能码包括读取保持寄存器、写入单个寄存器、读取输入寄存器等。
4. 数据:数据字段包含读取或写入的数据。
数据的格式取决于功能码和具体的操作。
5. CRC 校验:使用CRC (循环冗余校验)进行数据校验,以确保通讯的完整性。
CRC通常包括两个字节。
6. 停止位:在Modbus RTU通讯中,停止位表示一个数据帧的结束。
通常有一个停止位。
Modbus TCP 通讯协议模板:1. Modbus TCP 头部:Modbus TCP通讯以TCP/IP帧开始。
头部包含源端口、目标端口等信息。
2. Modbus TCP 协议标识符:标识TCP报文中的Modbus协议。
通常为0。
3. 长度字段:描述Modbus数据的长度,以字节为单位。
4. 设备地址:Modbus TCP中,设备地址也包含在TCP报文的数据字段中。
5. 功能码:描述要执行的操作的功能码,与Modbus RTU相同。
6. 数据:数据字段包含读取或写入的数据。
数据的格式取决于功能码和具体的操作。
7. CRC 或校验字段:在Modbus TCP中,通常使用CRC或其他校验方法来确保通讯的完整性。
这是一个简化的模板,实际的Modbus通讯可能会涉及更多的细节和特定的实现。
使用Modbus协议时,请根据具体情况参考Modbus协议规范和设备文档。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理协议介绍:MODBUS协议是一种串行通信协议,广泛应用于工业自动化领域。
它定义了一种主从结构的通信方式,主要用于实现数据在不同设备间的传输和共享。
本协议整理旨在对MODBUS协议的相关内容进行详细介绍和解释,包括协议的基本原理、通信方式、数据格式、功能码等。
1. 协议基本原理:MODBUS协议采用主从结构,主设备负责发起通信请求,从设备负责响应请求。
主设备通过发送请求报文来读取或写入从设备的数据。
通信基于物理层的串行通信,如RS-232、RS-485等。
2. 通信方式:MODBUS协议支持两种主要的通信方式:ASCII(American Standard Code for Information Interchange)和RTU(Remote Terminal Unit)。
ASCII方式使用ASCII字符作为通信数据的表示形式,每个字符占用一个字节;RTU方式使用二进制编码,每个字节包含8个比特。
3. 数据格式:MODBUS协议定义了不同类型的数据帧,包括请求帧和响应帧。
请求帧包含了主设备的请求信息,响应帧包含了从设备的响应信息。
数据帧的基本结构如下:- 起始符:表示帧的开始,通常为一个字节。
- 地址字段:指定从设备的地址,通常为一个字节。
- 功能码:指定请求的功能,通常为一个字节。
- 数据字段:包含请求或响应的数据,字节长度可变。
- CRC校验:用于校验数据的完整性,通常为两个字节。
4. 功能码:MODBUS协议定义了一系列功能码,用于指定不同的操作类型。
常用的功能码包括:- 读取线圈状态(功能码01):用于读取从设备的输出线圈状态。
- 读取输入状态(功能码02):用于读取从设备的输入状态。
- 读取保持寄存器(功能码03):用于读取从设备的保持寄存器。
- 读取输入寄存器(功能码04):用于读取从设备的输入寄存器。
- 写单个线圈(功能码05):用于写入从设备的单个线圈状态。
modbus协议范文
modbus协议范文1. 协议目的1.1 本协议旨在规范使用Modbus通信协议的相关事宜,以确保设备之间的正常通信和数据交换。
1.2 协议适用于使用Modbus协议进行数据通信的设备,包括但不限于传感器、执行器、控制器等。
2. Modbus协议版本2.1 本协议采用Modbus协议的[协议版本]。
3. 通信参数3.1 通信方式:[RTU/ASCII/TCP]。
3.2 波特率:[波特率]。
3.3 数据位:[数据位]。
3.4 停止位:[停止位]。
3.5 奇偶校验:[奇偶校验]。
4. 寄存器映射4.1 本协议使用的Modbus寄存器地址映射如下:输入寄存器起始地址:[起始地址];离散输入寄存器起始地址:[起始地址];保持寄存器起始地址:[起始地址];线圈起始地址:[起始地址]。
5. 功能码支持5.1 本协议支持的Modbus功能码如下:读取线圈状态(0x01);读取离散输入状态(0x02);读取保持寄存器(0x03);读取输入寄存器(0x04);强制单线圈(0x05);预置单保持寄存器(0x06);读写多个寄存器(0x23)。
6. 数据格式6.1 Modbus通信使用大端模式(Big-Endian)。
6.2 数据均采用16位、32位等整数形式传输,具体根据寄存器类型而定。
7. 数据交互7.1 通信双方在交互数据时,应按照Modbus协议规定的数据格式和命令格式进行封装和解析。
8. 错误处理8.1 通信双方在接收到错误数据时,应根据Modbus协议规定的错误代码进行相应的错误处理。
9. 安全性9.1 数据通信中的敏感信息应采用加密等方式进行保护。
10. 修改与更新10.1 本协议的修改与更新需由设备制造商或系统集成商负责,并确保设备固件或软件能够兼容新的协议版本。
11. 附则11.1 本协议的解释权归通信双方共同所有。
签署方:设备制造商/系统集成商:签字:__________________ 日期:_________姓名/单位名称:__________________ 联系电话:____________设备使用方:签字:__________________ 日期:_________姓名/单位名称:__________________ 联系电话:____________以上为一份Modbus协议范本,具体内容可根据实际情况和设备要求进行调整。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理一、引言MODBUS协议是一种通信协议,用于在工业自动化领域中实现设备之间的通信。
本协议整理旨在对MODBUS协议进行详细的解释和说明,包括协议的基本原理、通信方式、数据帧格式以及功能码定义等内容。
二、协议概述MODBUS协议是一种基于主从架构的串行通信协议,支持多种物理层接口,如串口、以太网等。
它采用简单的请求/响应机制,主设备通过发送请求帧来获取或设置从设备的数据。
MODBUS协议主要用于监控和控制领域,广泛应用于工业自动化、能源管理、楼宇自动化等领域。
三、通信方式1. 物理层接口MODBUS协议支持多种物理层接口,包括RS-232、RS-485、以太网等。
具体的物理层接口由通信双方协商确定。
2. 通信速率通信速率是指数据在物理层传输的速度,MODBUS协议支持多种通信速率,常见的有9600bps、19200bps、38400bps等。
通信双方必须在相同的通信速率下进行通信。
3. 通信模式MODBUS协议支持两种通信模式:ASCII模式和RTU模式。
ASCII模式使用ASCII字符表示数据帧,适用于低速率的通信;RTU模式使用二进制表示数据帧,适用于高速率的通信。
四、数据帧格式MODBUS协议的数据帧由起始位、从设备地址、功能码、数据域、CRC校验和等组成。
具体格式如下:1. ASCII模式数据帧格式:起始字符从设备地址功能码数据域 CRC校验和结束字符: 00-FF 00-FF 00-FF 00-FF CR LF2. RTU模式数据帧格式:起始位从设备地址功能码数据域 CRC校验和1字节 1字节 1字节可变长度 2字节五、功能码定义MODBUS协议定义了一系列功能码,用于表示主设备请求的具体操作。
常见的功能码包括读取线圈状态、读取输入状态、读取保持寄存器、写单个保持寄存器等。
每个功能码都有特定的数据格式和操作方式。
六、协议流程MODBUS协议的通信流程如下:1. 主设备发送请求帧给从设备。
Modbus协议中文版【完整版】
6
GB/T ××××—××××
设备应用存储器
MODBUS 访问
输入离散量 线圈 输入寄存器 保存寄存器
MODBUS 请求
MODBUS 服务器设备
图 6:带有独立块的 MODBUS 数据模型 实例 2:仅有 1 个块的设备 在这个实例中,设备仅有 1 个数据块。通过几个 MODBUS 功能码可能得到一个相同数据,或 者通过 16 比特访问或 1 个访问比特。
客户机 服务 器
数据
差错校验
启 动请求
功能码
数 据 请求
执行操作 启动响应
接 收 响应 操 作码 数据响应
图 4:MODBUS 事务处理(无差错) 对于异常响应,服务器返回一个与原始功能码等同的码,设置该原始功能码的最高有效位为逻 辑 1。
4
GB/T ××××—××××
客户机
服务器
启动请求
功能码
数据请求
等待 MB 指示
[接收 MB 指示] 确认操作码 [无效的]
异常码_1ຫໍສະໝຸດ [有效的] 确认数据地址 [无效的]
异常码_2
[有效的] 确认数据值
异常码_3
[无效的] [有效的] 执行 MB 操作 [无效的]
异常码_4_5_6
发 送 Modbus 异常响应
[有效的] 发 送 Modbus 响应
图 8:MODBUS 事务处理的状态图 一旦服务器处理请求,使用合适的 MODBUS 服务器事务建立 MODBUS 响应。 根据处理结果,可以建立两种类型响应: l 一个正 MODBUS 响应: ● 响应功能码 = 请求功能码 l 一个 MODBUS 异常响应(参见第 6.14 节): l 用来为客户机提供处理过程中与被发现的差错相关的信息; l 响应功能码 = 请求功能码 + 0x80; l 提供一个异常码来指示差错原因。 5 功能码分类 有三类 MODBUS 功能码。它们是: 公共功能码 l 是较好地被定义的功能码, l 保证是唯一的, l MODBUS 组织可改变的, l 公开证明的, l 具有可用的一致性测试, l MB IETF RFC 中证明的,
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理一、引言MODBUS协议是一种通信协议,用于在工业自动化领域中实现设备之间的通信。
本协议整理旨在详细描述MODBUS协议的标准格式,以便于各方在使用和开发MODBUS协议时能够准确理解和实施。
二、协议概述MODBUS协议是一种基于主从结构的协议,其中包含了主站和从站两种角色。
主站负责发起通信请求,而从站则负责响应请求并提供所需数据。
MODBUS协议支持多种物理层和传输层,如串口、以太网等。
三、协议格式1. MODBUS帧格式MODBUS协议使用二进制格式进行通信,每一帧包含了特定的字段,如下所示:- 地址字段(1字节):用于标识从站的地址。
- 功能码字段(1字节):用于指示主站要执行的操作类型。
- 数据字段(可变长度):用于传输数据。
- CRC校验字段(2字节):用于校验数据的完整性。
2. MODBUS功能码MODBUS协议定义了一系列功能码,用于指示主站要执行的具体操作,如读取数据、写入数据等。
常用的功能码包括:- 读取线圈状态(功能码01):用于读取从站的开关量输入状态。
- 读取输入状态(功能码02):用于读取从站的开关量输出状态。
- 读取保持寄存器(功能码03):用于读取从站的模拟量输入状态。
- 读取输入寄存器(功能码04):用于读取从站的模拟量输出状态。
- 写单个线圈(功能码05):用于写入从站的开关量输出状态。
- 写单个寄存器(功能码06):用于写入从站的模拟量输出状态。
3. MODBUS数据类型MODBUS协议支持多种数据类型,包括开关量和模拟量。
开关量数据类型包括线圈和输入状态,用于表示开关的开关状态。
模拟量数据类型包括保持寄存器和输入寄存器,用于表示模拟量的数值。
四、协议流程1. 请求响应流程MODBUS协议的通信流程一般遵循以下步骤:- 主站发送请求帧给从站。
- 从站接收请求帧并进行处理。
- 从站发送响应帧给主站。
- 主站接收响应帧并进行处理。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理一、背景和目的MODBUS协议是一种通信协议,用于在工业自动化领域中实现设备之间的通信。
本协议整理的目的是为了提供一份详细的MODBUS协议文档,以便于各方能够准确理解和使用该协议。
二、范围和适用性本协议适用于使用MODBUS协议进行通信的设备和系统。
它涵盖了MODBUS协议的基本结构、数据格式、通信方式以及相关的命令和功能码。
三、术语和定义在本协议中,以下术语和定义适用:1. MODBUS主站:负责发起通信请求的设备或系统。
2. MODBUS从站:响应主站请求的设备或系统。
3. 寄存器:存储和传输数据的内存单元。
4. 线圈:用于控制设备的开关状态的输出。
5. 功能码:用于标识和区分不同类型通信请求的代码。
四、协议结构MODBUS协议包括两种通信方式:MODBUS ASCII和MODBUS RTU。
下面分别介绍这两种通信方式的结构:1. MODBUS ASCII:MODBUS ASCII使用ASCII字符表示数据,每个字符由7个比特组成。
通信帧的结构如下:起始符(冒号)| 地址 | 功能码 | 数据 | 校验码(两个十六进制字符)| 结束符(回车换行)2. MODBUS RTU:MODBUS RTU使用二进制表示数据,每个字符由8个比特组成。
通信帧的结构如下:地址 | 功能码 | 数据 | CRC校验码(两个字节)五、数据格式MODBUS协议中的数据格式包括寄存器和线圈两种类型。
1. 寄存器:寄存器分为输入寄存器和保持寄存器两种类型。
每个寄存器包含16位数据。
地址范围为0-65535。
2. 线圈:线圈用于控制设备的开关状态,每个线圈包含1位数据。
地址范围为0-65535。
六、通信方式MODBUS协议支持以下几种通信方式:1. 串行通信:MODBUS协议支持RS-232和RS-485两种串行通信方式。
RS-232适用于近距离通信,而RS-485适用于远距离通信。
modbus协议手册
modbus协议手册Modbus协议手册。
Modbus协议是一种用于工业控制系统的通信协议,它广泛应用于自动化领域,包括工厂自动化、建筑自动化、能源管理系统等。
本手册将详细介绍Modbus协议的基本原理、通信方式、数据格式以及常见的应用场景,帮助读者更好地理解和应用Modbus协议。
1. Modbus协议概述。
Modbus协议是一种串行通信协议,最初由Modicon公司于1979年开发,用于连接PLC(可编程逻辑控制器)和外部设备。
它采用主从架构,主站负责发起通信请求,从站响应主站的请求并返回数据。
Modbus协议支持多种物理层和数据链路层,包括RS-232、RS-485、TCP/IP等,因此具有较强的通用性和灵活性。
2. Modbus通信方式。
Modbus协议主要包括两种通信方式,Modbus RTU和Modbus TCP。
Modbus RTU采用二进制编码,在串行通信中传输数据,具有较高的实时性和稳定性;Modbus TCP则采用基于以太网的通信方式,支持更大的数据传输量和更灵活的网络拓扑结构。
3. Modbus数据格式。
Modbus协议的数据格式包括功能码、数据字段和校验字段。
功能码用于区分不同的功能,如读取数据、写入数据等;数据字段包括数据地址、数据值等信息;校验字段用于检测数据传输过程中的错误。
通过这些字段的组合,Modbus协议可以实现对PLC和外部设备的控制和监测。
4. Modbus应用场景。
Modbus协议广泛应用于工业控制系统中,包括工厂自动化、建筑自动化、能源管理系统等领域。
在工厂自动化中,Modbus协议可以实现PLC和传感器、执行器之间的数据交换和控制;在能源管理系统中,Modbus协议可以实现对电力设备、照明设备等的远程监测和控制。
总结。
通过本手册的介绍,读者对Modbus协议的基本原理、通信方式、数据格式以及应用场景有了更深入的了解。
Modbus协议作为一种通用的工业控制通信协议,具有较强的通用性和灵活性,可以满足不同领域的通信需求。
MODBUS协议整理
MODBUS协议整理协议名称:MODBUS协议整理一、引言MODBUS协议是一种通信协议,用于在工业自动化系统中进行数据传输和设备控制。
本协议整理旨在详细介绍MODBUS协议的基本原理、数据帧格式以及常见的功能码和寄存器类型。
通过本协议的整理,读者将能够全面了解MODBUS协议的结构和应用。
二、协议概述1. 协议定义MODBUS协议是一种基于主从架构的通信协议,用于在工业自动化系统中实现设备之间的数据交换和控制。
该协议支持串行通信和以太网通信,并提供了多种功能码和寄存器类型以满足不同应用场景的需求。
2. 协议特点MODBUS协议具有以下特点:- 简单易学:协议结构简单,易于理解和实现。
- 灵活可扩展:支持不同的物理介质和传输方式,并提供了多种功能码和寄存器类型以适应不同的应用需求。
- 高效可靠:采用CRC校验和错误检测机制,确保数据传输的可靠性和完整性。
三、协议结构1. 物理层MODBUS协议可以通过串口、以太网等物理介质进行通信。
串口通信一般使用RS-232、RS-485等标准,以太网通信则使用标准的TCP/IP协议栈。
2. 数据帧格式MODBUS协议的数据帧格式如下:- 起始符:用于标识数据帧的起始位置,一般为一个字节。
- 地址字段:用于标识设备的地址,一般为一个字节。
- 功能码:用于指示数据帧的操作类型,一般为一个字节。
- 数据字段:用于存储传输的数据,长度可变。
- CRC校验:用于校验数据帧的完整性,一般为两个字节。
四、功能码和寄存器类型1. 功能码MODBUS协议定义了多种功能码,用于指示数据帧的操作类型。
常见的功能码包括:- 读取线圈状态(0x01):用于读取设备的开关量输入状态。
- 读取输入状态(0x02):用于读取设备的开关量输出状态。
- 读取保持寄存器(0x03):用于读取设备的模拟量输入状态。
- 读取输入寄存器(0x04):用于读取设备的模拟量输出状态。
- 写单个线圈(0x05):用于控制设备的开关量输出状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整理 徐凯 江南大学 机械工程学院 Email xukai19871105@
MODBUS 协议整理
MODBUS 部分功能代码
下表列出 MODBUS 支持的部分功能代码:以十进制表示。
代码 中文名称
寄存器信息地址
位操作/字操作
操作数量
01 读线圈状态
00001-09999
下述例子为请求从机设备 17 中一组 10 个线圈为强制状态,起始线圈信息地址为 20 , 则寻址地址为 19( 13H),查询的数据为 2 个字节,即 CD01H (二进制 11001101 0000 0001) 相应线圈的二进制位排列如下表所示。
表 读输入寄存器-查询
10
MODBUS 协议整理
响应
响应信息中的寄存器数据为每个寄存器分别对应 2 个字节,第一个字节为高位数据,第
二个字节为低位数据。
例按查询要求返回响应
Hex 格式
从机地址
11
功能码
04
字节数
02
数据高位(地址 30009)
00
数据低位(地址 30009)
0A
CRC 高位
CRC 低位
响应
响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1 代表 ON;0 代表 OFF。第一个数据字节的 LSB(最低位)为查询的寻址地址,其他输入口按顺序在该字节中由 低位向高位排列,直至 8 位为止。下一个字节中的 8 个输入位也是从低位到高位排列。
若返回的输入位数不是 8 的倍数,则在最后的数据字节中的剩余位直至字节的最高位全 部填零。字节数区,说明了全部数据的字节数。
Hex 11 03 00 6B 00 03
表 读保持寄存器-查询
8
MODBUS 协议整理
响应
响应信息中的寄存器数据为二进制数据,每个寄存器分别对应 2 个字节,第一个字节为 高位数据,第二个字节为低位数据。
例按查询要求返回响应。
Hex
从机地址
11
功能码
03
字节数
数据 1 高位(寄存器 40108)
据为 0000 和 0064H,(十进制时为 0 和 100)
地址 40108
40108
40109
40109
40110
40110
高字节
低字节
高字节
低字节
高字节
低字节
状态 00
6B
00
13
00
00
表 保持寄存器 40108 协议整理
04 读输入寄存器
说明
读从机输入寄存器(3XXXX 类型)中的二进制数据。
从机地址
11
功能码
06
寄存器起始地址高位
00
寄存器起始地址低位
01
数据高位
00
数据低位
00
CRC 校验高位
CRC 校验低位
表 预置单个寄存器-查询
14
MODBUS 协议整理
响应
寄存器内容被预置后返回正常响应。
例:按查询要求返回响应
Hex
从机地址
11
功能码
06
寄存器起始地址高位
00
寄存器起始地址低位
Hex
从机地址
11
功能码
02
返回字节数
03
数据 1(开关 10204-开关 10197)
AC
数据 2(开关 10212-开关 10205)
DB
数据 3(开关 10218-开关 10213)
35
CRC 校验高位
CRC 校验低位
1B
表 读输入位状态-响应
输入位 10204-10197 的状态用 35H (或二进制 00110101) 表示。输入位 10218 为左数第 3 位, 10213 输入位为 LSB,输入位 10218-10213 的状态分别为 ON-ON-OFF-ON-OFF-ON,最后 2 个剩余位填零。
00
寄存器地址低位
AC
寄存器数量高位
FF
寄存器数量低位
00
CRC 校验高位
CRC 校验低位
表 强制单个线圈-查询
12
MODBUS 协议整理
响应
线圈为强制状态后即返回正常响应
例:按查询要求返回响应
Hex
从机地址
11
功能码
05
寄存器地址高位
00
寄存器地址低位
AC
寄存器数量高位
FF
寄存器数量低位
00
CRC 校验高位
Modbus 寄存器地址分配
寄存器信息地址
适用功能码
(PLC 地址)
(10 进制)
00001-09999
01 05 15
10001-19999
02
30001-39999
04
40001-49999
03 06 16
寄存器种类
线圈状态 (开关)输入状态 输入寄存器 保持寄存器
读写状态
可读可写 可读 可读 可读可写
状态 ON
ON
OFF
OFF
ON
ON
OFF
ON
表 线圈 00027 到 00020 状态
最后一个数据字节中,56-52 线圈的状态为 1BH(或二进制 00011011),线圈 56 是左数
第 4 位,线圈 52 是该字节的最低位,所线圈 56 至 52 的状态分别为 ON-ON-OFF-ON-ON,
00
数据 1 低位(寄存器 40108)
6B
数据 2 高位(寄存器 40109)
00
数据 2 低位(寄存器 40109)
03
数据 3 高位寄存器 40110)
00
数据 3 低位寄存器 40110)
00
CRC 高位
CRC 低位
表 读寄存器-响应
寄存器 40108 的数据用 022BH 2 个字节(或用十进制 555)表示,寄存器 40109-40110 中的数
寄存器寻址地址指的是通信时使用的寄存器地址,例如信息地址 40001 对应寻址地址 0x0000,40002 对应寻址地址 0x0001,寄存器寻址地址一般使用 16 进制描述。再如,信息 寄存器 40003 对应寻址地址 0002,信息寄存器 30003 对应寻址地址 0002,虽然两个信息寄 存器通信时使用相同的地址,但是需要使用不同的命令才可以访问,所以访问时不存在冲突。
3 个剩余位全部填 0。
地址 00059 00058 00057 00056 00055 00054 00053 00052
状态 填充 填充 填充 ON
ON
OFF
ON
ON
表 线圈 00056 到 00052 状态
5
MODBUS 协议整理
02 读输入位状态
说明
读从机离散量输入信号的 ON/OFF 状态。
查询
查询信息规定了要读的寄存器的起始地址及寄存器的数量,寄存器 30001-30016 所对应 的地址分别为 0-15。 例:请求读从机设备 17 中的 30009 寄存器。
Hex 格式
从机地址
11
功能码
04
寄存器起始地址高位
00
寄存器起始地址低位
08
寄存器个数高位
00
寄存器个数低位
01
CRC 高位 CRC 低位
2
MODBUS 协议整理
寄存器种类说明
寄存器种 说明 类
PLC 类比
线圈状态 输出端口,按位操作,可设定端 DO
口的输出状态,也可以读取该位
的输出状态。
开关
输入端口,按位操作,通过外部 DI
输入状态 设定改变输入状态,可读不可写。
保持
输出参数或是保持参数,控制器 AO
寄存器 运行时被设定的某些参数。可读
Hex
从机地址
11
功能码
01
返回字节数
05
数据 1(线圈 00027-线圈 00020)
CD
数据 2(线圈 00035-线圈 00028)
6B
数据 3(线圈 00043-线圈 00036)
B2
数据 4(线圈 00051-线圈 00044)
0E
数据 5(线圈 00056-线圈 00052)
1B
CRC 校验高位
于 ON 状态,0000H 值请求线圈处于 OFF 状态。05 指令设置单个线圈的状态,15 指令可
以设置多个线圈的状态,虽然都是设定线圈的 ON/OFF 状态,但是 ON/OFF 的表达方式却
不同。
例:强制从机设备 17 中的 00173 线圈为 ON 状态
Hex
从机地址
11
功能码
05
寄存器地址高位
Hex
从机地址
11
功能码
01
寄存器起始地址高位
00
寄存器起始地址低位
13
寄存器数量高位
00
寄存器数量低位
25
CRC 校验高位
CRC 校验低位
表 读线圈状态-查询
4
MODBUS 协议整理
响应
响应信息中的各线圈的状态与数据区的每一位的值相对应,1 代表 ON;0 代表 OFF。 若返回的线圈数不是 8 的倍数,则在最后的数据字节未使用的位中全部填充 0,字节数区说 明全部数据的字节数。
表 读寄存器-响应
寄存器 30009 中的数据用 000AH 2 个字节(或用十进制 10)表示。
11
MODBUS 协议整理
05 强制单个线圈
说明
强制单个线圈(0XXXX 类型)为 ON 或 OFF 状态。
查询