MODBUS_RTU通信规约
- 格式:pdf
- 大小:190.29 KB
- 文档页数:7
第一章Modbus协议□介绍Modbus协议介绍□两种串行传输模式□信息帧□错误检查方法Modbus协议介绍Modbus可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯,支撑网络有Modicon的Modbus和Modbus+工业网络。
网络信息存取可由控制器内置的端口,网络适配器以及Modicon提供的模块选件和网关等设备实现,对OEM(机械设备制造商)来说,Modicon可为合作伙伴提供现有的程序,可使Modbus+网络紧密地集成到他们的产品设计中去。
Modicon的各种控制器使用的公共语言被称为Modbus协议,该协议定义了控制器能识别和使用的信息结构。
当在Modbus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用Modbus协议将此信息传送出去。
在其他网络上使用时,数据包和数据帧中也包含着Modbus协议。
如,Modbus+或MAP网络控制器中有相应的应用程序库和驱动程序,实现嵌入式Modbus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。
该转换也可扩展,处理节点地址,路由,和每一个特殊网络的错误检查方法。
如包含在Modbus协议中的设备地址,在信息发送前就转换成节点地址,错误检查区也用于数据包,与每个网络的协议一致,最后一点是需用Modbus协议,写入嵌入的信息,定义应处理的动作。
图1说明了采用不同通讯技术的多层网络中设备的互连方法。
在信息交换中,嵌入到每个网络数据包中的图1:Modbus 协议应用示意图* MB+为 Modbus主处理器4个Modus设备或网络编程器 编程器(去MB+)S980(去MAP) AT/HC-984 和 HOST/MMHI AT/HC-984HOST/MMHI 984A/B 和S985Modbus 上的数据传输Modicon 控制器上的标准Modbus 端口是使用一个RS-232兼容的串行接口,定义了连接器,接线电缆,信号等级,传输波特率,和奇偶校验,控制器可直接或通过调制解调器(以后简称Modems)接入总线(网络)。
modbus rtu 遵循标准?
答:Modbus RTU是一种常见的串行通信协议,主要用于工业自动化领域的设备间数据传输。
本协议旨在规范Modbus RTU的通信格式和数据处理流程,以确保设备之间能够正确地进行通信。
它是一种基于二进制码的通信协议,使用RS-485、RS-422或RS-232串行通信接口。
该协议定义了设备之间的数据传输格式、命令和响应规范。
在传输过程中,两个字节之间的相邻时间不得大于3.5个字符的时间,否则视为一帧数据传输结束。
以波特率9600、1bit起始位、8bit数据位、1bit停止位,1bit校验位、无流控为例,那么1s内就可以传输(1+8+1+1)/9600*3.5*1000≈4ms,所以,如果从机在接收过程中,超过了4ms没有收到数据,则认为本帧数据接收结束;同样的,在发送完数据后也要延时等待4ms的延时时间。
《GB/T 19582.2》中规定:RTU模式中每个字节为11位,格式为:8bit数据位(先发低位)、1bit起始位、1bit奇偶校验、1bit停止位,要求使用偶校验。
也可以使用其他模式(奇校验、无校验)。
为了保证与其他产品的最大兼容性,建议还支持无校验模式。
默认校验模式必须是偶校验。
注:使用无校验时要求2个停止位,以此来满足11bit 的数据。
以上内容仅供参考,如需更详细的信息,建议直接查阅标准《GB/T 19582.2》内容。
Modbus RTU通用规约说明、模板及规约配置说明文档一、Modbus RTU通用规约说明1.1Modbus协议简介Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的串口链路RS-232、RS-422、RS-485和以太网设备。
许多工业设备包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的报文结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了报文、数据的结构、询问和应答的方式,数据通讯采用主/从方式,主站发出数据请求报文,从站接收到正确报文后就可以发送数据到主站端以响应请求;主站也可以直接发报文修改从站的数据,实现双向读写。
1.2Modbus通用规约介绍Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC 校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。
另外,Modbus采用主从问答方式收发数据,在实际使用中如果某从站站点断开后(如故障或失电),主站可以诊断出来,而当故障修复后,网络又可自动接通。
因此Modbus协议的可靠性较好。
Modbus协议在串行链路中RTU模式使用的最多,通用性很强,所以在这里仅介绍一下Modbus RTU协议即Modbus通用规约。
下表是Modbus Rtu支持的功能码:在工程现场我们经常遇到第三方设备需要进行通信,如果是特殊规约,那就需要工自研究所专门做规约与模板。
如果是标准通信规约比如说CDT-91,MODBUS-RTU,103规约等,我们就可以根据厂家要到的规约与点表,自行配置模板进行通信。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议1. 引言ModBusRTU通讯协议是一种常用于工业自动化领域的通信协议,用于在不同设备之间进行数据交换和通信。
本协议旨在确保设备之间的稳定通信,并规定了数据帧的格式、通信规范和错误处理机制,以实现可靠的数据传输。
2. 协议范围本协议适用于使用ModBusRTU通信协议的设备之间的数据交换和通信。
3. 术语和定义3.1. 主站:指发送请求的设备。
3.2. 从站:指接收请求并响应的设备。
3.3. 数据帧:指在ModBusRTU通信协议中传输的数据单元。
4. 数据帧格式4.1. 传输模式ModBusRTU通信协议使用串行通信模式,每个数据帧由一系列连续的位组成。
4.2. 起始位每个数据帧以一个起始位(逻辑“0”)开始。
4.3. 设备地址设备地址用于标识从站设备,占用8位,取值范围为1-247。
功能码用于指示请求的类型,占用8位,取值范围为1-255。
4.5. 数据数据字段用于传输具体的数据信息,占用8位或16位,具体长度由功能码决定。
4.6. 校验位校验位用于验证数据的完整性和准确性,采用CRC校验算法。
4.7. 结束位每个数据帧以一个结束位(逻辑“1”)结束。
5. 通信规范5.1. 请求帧主站发送请求帧给从站,请求帧包括设备地址、功能码、数据和校验位。
5.2. 响应帧从站接收到请求帧后,根据功能码进行相应的处理,并返回响应帧给主站,响应帧包括设备地址、功能码、数据和校验位。
5.3. 帧间间隔每个数据帧之间应有适当的时间间隔,以确保设备能够正确接收和处理数据。
5.4. 重试机制如果主站未收到从站的响应帧或者接收到的响应帧出现错误,主站可以根据需要进行重试。
6.1. 异常响应如果从站无法正确处理主站的请求,从站应发送一个异常响应帧给主站,异常响应帧包括设备地址、功能码和错误码。
6.2. 错误码错误码用于指示出现的错误类型,常见的错误码包括非法功能码、非法数据地址、非法数据值等。
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校验码主机或从机可用校验码判别接收信息是否正确。
由于电子噪声或一些其它干扰,信息在传输过程中可能会发生错误,校验码可以检验主机或从机通讯信息是否有误。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、协议概述ModBusRTU通讯协议是一种串行通信协议,用于在工业自动化领域中实现设备之间的数据交换。
本协议规定了通信的物理层、数据帧格式、功能码及其对应的数据格式,以及通信过程中的错误处理等。
二、物理层1. 通信接口:本协议使用RS485接口进行通信,支持多主机和多从机的通信方式。
2. 通信波特率:支持的通信波特率范围为9600bps至115200bps,可根据实际需求进行设置。
3. 数据位:通信数据位为8位。
4. 停止位:通信停止位为1位。
5. 校验位:通信校验位可选择为无校验、奇校验或偶校验。
三、数据帧格式1. 帧起始符:每个数据帧以一个起始符开始,起始符为一个字节,固定为0xFF。
2. 从机地址:紧随起始符之后的一个字节为从机地址,用于标识通信中的从机设备。
3. 功能码:从机地址之后的一个字节为功能码,用于指示从机设备执行的操作类型。
4. 数据域:功能码之后的数据域长度可变,根据功能码的不同而不同。
5. CRC校验码:数据域之后为两个字节的CRC校验码,用于检测数据传输过程中是否出现错误。
6. 帧结束符:每个数据帧以一个结束符结束,结束符为一个字节,固定为0x00。
四、功能码及数据格式1. 读取线圈状态(功能码:0x01)请求帧格式:[起始符][从机地址][功能码][起始地址高字节][起始地址低字节][读取数量高字节][读取数量低字节][CRC校验码][结束符]响应帧格式:[起始符][从机地址][功能码][字节数][线圈状态][CRC校验码][结束符]数据格式:线圈状态为一个字节,每个位表示一个线圈的状态(0表示OFF,1表示ON)。
2. 读取离散输入状态(功能码:0x02)请求帧格式:[起始符][从机地址][功能码][起始地址高字节][起始地址低字节][读取数量高字节][读取数量低字节][CRC校验码][结束符]响应帧格式:[起始符][从机地址][功能码][字节数][离散输入状态][CRC校验码][结束符]数据格式:离散输入状态为一个字节,每个位表示一个输入的状态(0表示OFF,1表示ON)。
MODBUS-RTU通讯协议简介什么是MODBUS?常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据量大而且是二进制数值时,多采用MODBUS RTU规约。
MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。
首先,主计算机的信号寻址到一台终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
1.1查询—回应周期1.1.1查询查询消息中的功能代码告之被选中的从设备要执行何种功能。
数据段包含了从设备要执行功能的任何附加信息。
例如使用功能代码03(读从设备保持寄存器的内容)时,数据段必须包含要告之从设备的相关信息包括:从那个寄存器开始读,以及需要读的寄存器的数量。
错误检测域为从设备提供了一种验证消息内容是否正确的方法。
1.2.2 回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。
数据段包括了从设备收集的数据:如寄存器值或状态。
如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
错误检测域允许主设备确认消息内容是否可用。
1.3传输方式传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS 协议– RTU方式相兼容的传输方式。
每个字节的位:· 1个起始位· 8个数据位,最小的有效位先发送·无奇偶校验位· 1个停止位错误检测(Error checking):CRC(循环冗余校验)1.4协议当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。
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 协议作为一种简单而可靠的串行通信协议,为工业自动化系统的数据传输提供了有效的解决方案,为工业控制和监控领域的发展做出了重要贡献。
java 通讯规约-modbus-rtu-解析报文示例引言概述:
Java通讯规约是在软件开发中非常重要的一部分,其中Modbus-RTU是一种常用的通信协议。
本文将详细介绍Modbus-RTU通讯协议的解析报文示例,通过分析其结构和内容,帮助读者更好地理解和应用该协议。
正文内容:
1. Modbus-RTU协议概述
1.1 Modbus-RTU的定义和特点
1.2 Modbus-RTU的应用领域
1.3 Modbus-RTU的通信方式
2. Modbus-RTU报文结构
2.1 报文格式和组成部分
2.2 报文的功能码和数据域
2.3 报文的校验和计算方法
3. Modbus-RTU报文示例解析
3.1 读取保持寄存器的报文示例
3.2 写入保持寄存器的报文示例
3.3 读取输入寄存器的报文示例
3.4 写入多个保持寄存器的报文示例
3.5 异常响应报文的示例
4. Modbus-RTU报文解析过程
4.1 接收报文的数据处理
4.2 解析功能码和数据域
4.3 校验和验证
4.4 执行相应的操作
4.5 生成响应报文
5. Modbus-RTU报文解析的注意事项
5.1 报文长度和字节顺序
5.2 数据类型和格式转换
5.3 错误处理和异常情况
总结:
通过本文的介绍,我们详细了解了Modbus-RTU通讯协议的解析报文示例。
我们了解了该协议的概述、报文结构、示例解析和解析过程,同时也了解了解析过程中需要注意的事项。
希望本文能为读者提供帮助,使其能够更好地理解和应用Modbus-RTU通讯协议。
附录一:MODBUS_RTU通讯规约(本协议采用主从问答方式)PDM系列仪表/变送器:PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。
For personal use only in study and research; not for commercial useMODBUS通讯协议:ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus 兼容的监控系统之间进行信息交换和数据传送。
PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。
广泛的系统集成:PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。
通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是11位的字格式:字格式(串行数据)11位二进制起始位1位数据位8位奇偶校验位1位:有奇偶校验位/无:无奇偶校验位停止位1位:有奇偶校验位/2位:无奇偶校验位●通讯数据(信息帧)格式数据格式:地址码功能码数据区错误校检数据长度:1字节1字节N字节16位CRC码(冗余循环码)★注:1、1个字节由8位二进制数组成(既8 bit)。
2、ModBus是Modicon公司的注册商标。
3、“从机”在本文件中既为PDM。
一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种常用的串行通信协议,用于在工业自动化领域中实现设备之间的数据交换。
该协议基于RTU(Remote Terminal Unit)模式,通过串行通信接口传输数据。
本协议旨在规范ModBusRTU通讯协议的格式、数据类型、通信方式等方面的内容,以确保设备之间的数据交换的准确性和可靠性。
二、协议格式1. 物理层ModBusRTU通讯协议使用RS485串行通信接口,支持全双工通信。
通信速率可根据实际需求设置,常见的速率有9600、19200、38400、57600和115200等。
2. 数据帧格式ModBusRTU通讯协议使用二进制方式传输数据,每个数据帧包含以下几个部分:- 起始位:由一个高电平信号表示,用于同步通信双方的时钟。
- 地址位:一个字节,用于标识通信的从站地址。
范围为1-247,其中1为广播地址。
- 功能码:一个字节,用于标识通信的功能类型。
常见的功能码有读取线圈状态、读取输入状态、读取保持寄存器、读取输入寄存器、写单个线圈、写单个寄存器等。
- 数据域:根据功能码的不同,数据域的长度也不同。
数据域包含要读取或写入的数据。
- CRC校验:用于校验数据的完整性。
3. 数据类型ModBusRTU通讯协议支持多种数据类型,包括线圈状态(Coil Status)、输入状态(Input Status)、保持寄存器(Holding Register)和输入寄存器(Input Register)等。
每种数据类型都有对应的读取和写入功能码。
4. 通信方式ModBusRTU通讯协议支持主从模式的通信方式。
主站负责发起通信请求,从站负责响应请求并返回数据。
主站可以向多个从站发送请求,每个从站根据地址进行识别并响应相应的请求。
三、通信流程1. 主站发送请求主站发送请求的数据帧包含从站地址、功能码、数据域和CRC校验。
实用文档第一章Modbus协议□介绍Modbus协议介绍□两种串行传输模式□信息帧□错误检查方法Modbus协议介绍Modbus可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯,支撑网络有Modicon的Modbus和Modbus+工业网络。
网络信息存取可由控制器内置的端口,网络适配器以及Modicon提供的模块选件和网关等设备实现,对OEM(机械设备制造商)来说,Modicon可为合作伙伴提供现有的程序,可使Modbus+网络紧密地集成到他们的产品设计中去。
Modicon的各种控制器使用的公共语言被称为Modbus协议,该协议定义了控制器能识别和使用的信息结构。
当在Modbus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用Modbus协议将此信息传送出去。
在其他网络上使用时,数据包和数据帧中也包含着Modbus协议。
如,Modbus+或MAP网络控制器中有相应的应用程序库和驱动程序,实现嵌入式Modbus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。
该转换也可扩展,处理节点地址,路由,和每一个特殊网络的错误检查方法。
如包含在Modbus协议中的设备地址,在信息发送前就转换成节点地址,错误检查区也用于数据包,与每个网络的协议一致,最后一点是需用Modbus协议,写入嵌入的信息,定义应处理的动作。
Modbus Protocol PI-MBUS-3002实用文档图1说明了采用不同通讯技术的多层网络中设备的互连方法。
在信息交换中,嵌入到每个网络数据包中的Modbus 协议,提供了设备间能够交换数据的公共的语言。
图1:Modbus 协议应用示意图* MB+为 Modbus主处理器4个Modus 设备或网络编程器 编程器(去MB+)S980(去MAP) AT/HC-984和HOST/MMHI AT/HC-984 HOST/MMHI 984A/B 和 S985Modbus Protocol PI-MBUS-3004 Modbus 上的数据传输Modicon 控制器上的标准Modbus 端口是使用一个RS-232兼容的串行接口,定义了连接器,接线电缆,信号等级,传输波特率,和奇偶校验,控制器可直接或通过调制解调器(以后简称Modems)接入总线(网络)。
附录一:MODBUS_RTU通讯规约(本协议采用主从问答方式)PDM系列仪表/变送器:PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。
MODBUS通讯协议:ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus兼容的监控系统之间进行信息交换和数据传送。
PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。
广泛的系统集成:PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。
通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是11位的字格式:字格式(串行数据1位二进起始数据奇偶校验有奇偶校验无:无奇偶校验停止位1位:有奇偶校验位/2位:无奇偶校验位●通讯数据(信息帧)格式数据格式:地址码功能码数据区错误校检数据长度:1字节1字节N字节16位CRC码(冗余循环码)★注:1、1个字节由8位二进制数组成(既8 bit)。
2、ModBus是Modicon公司的注册商标。
3、“从机”在本文件中既为PDM。
一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
如果CRC校验出错就不返回任何信息。
1.1 地址码:地址码是每次通讯信息帧的第一字节(8位),从0到255。
®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通讯协议1. 引言ModBus RTU通讯协议是一种常用的串行通信协议,广泛应用于工业自动化领域。
本协议旨在规定ModBus RTU通讯协议的标准格式,以确保设备之间的可靠通信和数据交换。
2. 协议结构ModBus RTU通讯协议采用基于串行通信的方式,使用二进制编码进行数据传输。
协议结构如下:2.1 帧格式每个ModBus RTU通讯帧由以下几个部分组成:- 起始位:一个起始位用于标识通讯帧的开始。
- 设备地址:一个字节,用于指定通讯的设备地址。
- 功能码:一个字节,用于指定所要执行的功能。
- 数据域:包含数据和指令的部分,长度可变。
- CRC校验:用于校验数据的完整性。
2.2 设备地址设备地址用于标识通讯的设备,取值范围为1-247。
其中1-247为设备地址,0为广播地址。
2.3 功能码功能码用于指定所要执行的功能,常用的功能码如下:- 读取线圈状态(0x01):用于读取线圈的开关状态。
- 读取输入状态(0x02):用于读取输入信号的状态。
- 读取保持寄存器(0x03):用于读取设备的保持寄存器。
- 读取输入寄存器(0x04):用于读取设备的输入寄存器。
- 写单个线圈(0x05):用于控制单个线圈的开关状态。
- 写单个保持寄存器(0x06):用于写入单个保持寄存器的值。
- 写多个线圈(0x0F):用于控制多个线圈的开关状态。
- 写多个保持寄存器(0x10):用于写入多个保持寄存器的值。
3. 数据传输ModBus RTU通讯协议使用串行通信进行数据传输。
通讯帧以连续的方式传输,每个字节由8个位组成,使用LSB(Least Significant Bit)优先的方式传输。
3.1 数据格式数据格式如下:- 起始位:一个起始位,标识通讯帧的开始,取值为0。
- 设备地址:一个字节,用于指定通讯的设备地址。
- 功能码:一个字节,用于指定所要执行的功能。
基于VB的MODBUS_RTU通信规约实现办法(1)一、MODBUS_RTU通信规约1、通信数据类型及格式标准的MODBUS协议使用串行接口,保护、测控装置(以下称从机,相应称微机为主机)上使用RS-485通信接口,主机上则需要一个RS-232转RS-485转接卡,才能和从机联接。
因此通信信息是标准的串口格式,串行数据字节格式如表1。
表1:串行数据字节格式RTU模式下每个8Bit字节包含两个4Bit的十六进制数字。
这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
通信数据帧格式如表2。
表2:通信数据帧格式2、地址码和功能码地址码是标识接在同一RS-485总线上不同从机的编号,只有符合地址码的从机才能响应并根据命令回送信息。
地址码是一个字节,从0到255,要求从机地址码不能重复,每个从机只有唯一的地址码。
可定义的功能码为1到127,常用的几个功能码如表3。
表3:常用功能码3、错误校验MODBUS_RTU的数据校验方式采用CRC-16(循环冗余错误校验)其步骤如下:①预置一个16位寄存器为十六进制FFFF,称此寄存器为CRC寄存器。
②把第一个8位二进制数据与CRC低8位字节进行异或运算,将结果放入CRC寄存器。
③把这个16寄存器向右移一位,用0填补最高位,检查移出位。
④若向右移出的数位是0,则返回③,若向右(标记位)移出的数位是1,则CRC寄存器与多项式1010000000000001(A001)进行异或运算。
⑤重复③和④,直至移出8位。
⑥重复②~⑤,进行下一字节处理。
⑦所有字节处理完毕,得到的16位CRC寄存器的高低字节进行交换。
⑧最后得到的CRC寄存器内容即CRC码。
二、VB中串行通信组件设置使用“Microsoft Comm Control 6.0”即MSComm控件,参数设置如图1。
图1:MSComm控件参数设置端口主要参数有端口代号,即串口号,常见的有微机标准配置1和2,其他的号则是由PCI或USB接口转换来的。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种用于串行通信的通讯协议,广泛应用于工业自动化领域。
本协议旨在规范ModBusRTU通讯协议的格式和规则,确保通讯的可靠性和稳定性。
二、协议结构ModBusRTU通讯协议由以下几个部分组成:1. 帧头:包含起始位和地址位,用于标识通讯的起始。
2. 功能码:用于标识通讯的类型和操作。
3. 数据域:包含具体的数据信息。
4. CRC校验:用于校验数据的完整性。
三、通讯规则1. 帧头- 起始位:占据一个字节,固定为0xFF。
- 地址位:占据一个字节,用于标识设备的地址。
2. 功能码- 读取操作:功能码为0x03,用于读取设备的寄存器数据。
- 写入操作:功能码为0x06,用于向设备的寄存器写入数据。
3. 数据域- 读取操作:数据域包含读取的寄存器地址和读取的寄存器数量。
- 写入操作:数据域包含写入的寄存器地址和写入的数据。
4. CRC校验- CRC校验位:占据两个字节,用于校验数据的完整性。
- CRC校验规则:对帧头、功能码和数据域进行CRC校验,将结果附加在数据域之后。
四、通讯流程1. 主站发送请求:- 主站向从站发送帧头、功能码和数据域。
- 主站计算CRC校验位,将结果附加在数据域之后。
- 主站将数据发送给从站。
2. 从站响应请求:- 从站接收主站发送的数据。
- 从站检查CRC校验位,如果校验通过,则执行相应的操作。
- 从站将执行结果或读取的数据发送给主站。
3. 主站处理响应:- 主站接收从站发送的数据。
- 主站解析数据,根据需要进行后续操作。
五、通讯错误处理1. CRC校验错误:- 如果CRC校验错误,从站将不执行任何操作,并返回错误码给主站。
2. 通讯超时:- 如果主站在规定时间内没有接收到从站的响应,主站将重发请求。
3. 其他错误:- 如果发生其他错误,主站和从站可以根据具体情况进行相应的处理。
六、总结ModBusRTU通讯协议是一种用于串行通信的通讯协议,通过规范通讯的格式和规则,确保通讯的可靠性和稳定性。
MODBUS_RTU通讯规约(本协议采用主从问答方式)PDM系列仪表/变送器:PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。
MODBUS通讯协议:ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus 兼容的监控系统之间进行信息交换和数据传送。
PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。
广泛的系统集成:PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。
通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。
在主站和从站之间传递的通讯信息是11位的字格式:字格式(串行数据) 11位二进制起始位1位数据位8位奇偶校验位1位:有奇偶校验位/无:无奇偶校验位停止位1位:有奇偶校验位/2位:无奇偶校验位●通讯数据(信息帧)格式数据格式:地址码功能码数据区错误校检数据长度:1字节1字节N字节 16位CRC码(冗余循环码)★ 注:1、1个字节由8位二进制数组成(既8 bit)。
2、ModBus是Modicon公司的注册商标。
一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。
返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。
如果CRC校验出错就不返回任何信息。
1.1 地址码:地址码是每次通讯信息帧的第一字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。
当从机回送信息时,回送数据均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。
相应的地址码表明该信息来自于何处。
1.2 功能码:是每次通讯信息帧传送的第二个字节。
ModBus通讯规约可定义的功能码为1到127。
PDM系列仪表/变送器仅用到其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机应执行什么动作。
作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。
表8.1 MODBUS部分功能码功能码定义操作(二进制)02 读开关量输入读取一路或多路开关量状态输入数据01 读开关量输出读取一路或多路开关量输出状态数据03 读寄存器数据读取一个或多个寄存器的数据05 写开关量输出控制一路继电器“合/分”输出06 写单路寄存器把一组二进制数据写入单个寄存器10 写多路寄存器把多组二进制数据写入多个寄存器1.3 数据区:数据区包括需要由从机返送何种信息或执行什么动作。
这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。
例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。
对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。
PDM系列仪表/变送器采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。
PDM 系列仪表/变送器的数据寄存器存储的电量多达几百个(如:电流、电压、功率、0~31次谐波分量等),并且都是16位(2字节)的二进制数据,并且高位在前;一次最多可读取寄存器数(既各种电量的数量)是50个。
PDM响应的命令格式是从机地址、功能码、数据区及CRC码。
数据区的数据都是两个字节,并且高位在前(电能量除外)。
注:1、PDM-820AC/ACM/ACR、PDM-800AC/ACM具有“03”、“06”、“10”功能码;2、如果PDM采用MODBUS ASCII通讯协议,其通讯数据格式为;7个数据位,1个停止位,偶校验。
二、MODBUS功能码简介2.1 功能码“02”:读1路或多路开关量状态输入例如:主机要读取地址为01,开关量DI1—DI4的输入状态。
从机(PDM)数据寄存器的地址和数据为:起始位地址 DI寄存器数据(16进制)备注0000 0BDI1/DI2/DI4状态为“1”,DI3状态为“0”主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 02 读开关量输入状态起始BIT位 2 0000 起始BIT位地址为0000读数据长度 2 0004 读取4路开关量输入状态位由主机计算得到CRC码CRC码 2 79C9从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 02 读开关量输入状态数据长度 1 01 1个字节(8个BIT位)DI状态数据 1 0B DI寄存器内容由从机计算得到CRC码CRC码 2 E04F2.2 功能码“01”:读1路或多路开关量输出状态例如:主机要读取地址为01,开关量DO1,DO2的输出状态。
从机(PDM)数据寄存器的地址和数据为:起始位地址 DO寄存器数据(16进制)备注0000 02DO2输出状态为“1”,DO1输出状态为“0”主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 01 读开关量输出状态起始BIT位 2 0000 起始BIT位地址为0000读数据长度 2 0002 读取2路继电器输出状态位由主机计算得到CRC码CRC码 2 BDCB从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 01 读开关量输出状态数据长度 1 01 1个字节(8个BIT位)DO状态数据 1 02 DO寄存器内容2.3 功能码“03”:读多路寄存器输入例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。
从机(PDM)数据寄存器的地址和数据为:寄存器地址寄存器数据(16进制)对应PDM电量0116 1784 UA0117 1780 UB0118 178A UC 主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 03 读取寄存器起始地址 2 0116 起始地址为0116数据长度 3 0003 读取3个寄存器(共6个字节)由主机计算得到CRC码CRC码 2 E5F3从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 03 读取寄存器读取字 1 06 3个寄存器共6个字节地址为0116内存的内容寄存器数据1 2 1784寄存器数据2 2 1780地址为0117内存的内容寄存器数据3 2 178A 地址为0118内存的内容CRC码 2 5847 由从机计算得到CRC码2.4 功能码“05”:写1路开关量输出(“遥控”)例1:开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。
控制命令为:“FF00”为控制继电器“合”;“0000”为控制继电器“分”;主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 05 写开关量输出状态输出BIT位 2 0000 对应输出继电器BIT位(DO1)控制该路继电器输出为“合”状态位控制命令 2 FF00CRC码 2 8C3A由主机计算得到CRC码从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。
例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。
主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 05 写开关量输出状态输出BIT位 2 0001 对应输出继电器BIT位(DO2)控制命令 2 0000 控制该路继电器输出为“合”状态位由主机计算得到CRC码CRC码 2 9C0A从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。
2.5 功能码“06”:写单路寄存器例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。
通讯数据保存结束后,地址为002C的PDM表原存储信息为:地址原来存储数据(16进制)002C 04B0主机发送的报文格式:主机发送字节数发送的信息举例从机地址 1 01 发送至地址为01的从机功能码 1 06 写单路寄存器起始地址 2 002C 要写入的寄存器地址写入数据 2 07D0 对应的新数据由主机计算得到的CRC码CRC码 24BAF从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。
2.6功能码“10”:写多路寄存器主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。
Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。
这样PDM的存储器都是二个字节。
由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。
例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。
通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:地址原来存储数据(16进制)002C 04B0002D 1388主机发送的报文格式:主机发送字节数发送信息举例发送至从机01从机地址 1 01写多路寄存器功能码 1 10要写入的寄存器的起始地址起始地址 2 002C保存数据的字长度(共2字)保存数据字长度 2 0002保存数据的字节长度(共4字节)保存数据字节长 1 04数据地址002C保存数据1 2 04B0数据地址002D保存数据2 2 1388由主机计算得到的CRC码CRC码 2 FC63从机(PDM)响应返回的报文格式:从机响应字节数字节数举例来自从机01从机地址 1 01写多路寄存器功能码 1 10起始地址为002C起始地址 2 002C保存2个字长度的数据保存数据字长度 2 0002由从机计算得到的CRC码CRC码 2 8001三、错误校验码(CRC校验):主机或从机可用校验码进行判别接收信息是否正确。