ModBusRTU通讯协议

ModBusRTU通讯协议

Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC 校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。

对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6

并通过TCP/IP网络协议发送出去即可。

(一)、通讯传送方式:

通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与ModBusRTU通讯规约相兼容:

初始结构= ≥4字节的时间

地址码= 1 字节

功能码= 1 字节

数据区= N 字节

错误校检= 16位CRC码

结束结构= ≥4字节的时间

地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。

数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。

CRC码:二字节的错误检测码。

(二)、通讯规约:

当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。

1.信息帧结构

地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。

功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作。

数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。

错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。

注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。

2.错误校验

冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。

(三)、Modbus支持的功能码:

(三)、功能码命令详解:

在这些功能码中较长使用的是1、2、3、4、5、6号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。

1、01号命令,读可读写数字量寄存器(线圈状态):

计算机发送命令:[设备地址] [命令号01] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]

例:[11][01][00][13][00][25][CRC低][CRC高]

意义如下:

<1>设备地址:在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。例子中为想和17号(十进制的17是十六进制的11)通讯。

<2>命令号01:读取数字量的命令号固定为01。

<3>起始地址高8位、低8位:表示想读取的开关量的起始地址(起始地址为0)。比如例子中的起始地址为19。

<4>寄存器数高8位、低8位:表示从起始地址开始读多少个开关量。例子中为37个开关量。

<5>CRC校验:是从开头一直校验到此之前。

设备响应:[设备地址] [命令号01] [返回的字节个数][数据1][数据2]...[数据n] [CRC校验的高8位] [CRC校验的低8位]

例:[11][01][05][CD][6B][B2][0E][1B] [CRC高] [CRC低]

意义如下:

<1>设备地址和命令号和上面的相同。

<2>返回的字节个数:表示数据的字节个数,也就是数据1,2...n中的n的值。

<3>数据1...n:由于每一个数据是一个8位的数,所以每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为1表示闭合。比如例子中,表示20号(索引号为19)开关闭合,21号断开,22闭合,23闭合,24断开,25断开,26闭合,27闭合...如果询问的开关量不是8的整倍数,那么最后一个字节的高位部分无意义,置为0。

<4>CRC校验同上。

2、05号命令,写数字量(线圈状态):

计算机发送命令:[设备地址] [命令号05] [需下置的寄存器地址高8位] [低8位] [下置的数据高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]

例:[11][05][00][AC][FF][00][CRC高][CRC低]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:写数字量的命令号固定为05。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的开关的地址。

<4>下置的数据高8位,低8位:表明需要下置的开关量的状态。例子中为把该开关闭合。注意,此处只可以是[FF][00]表示闭合[00][00]表示断开,其他数值非法。

<5>注意此命令一条只能下置一个开关量的状态。

设备响应:如果成功把计算机发送的命令原样返回,否则不响应。

3、03号命令,读可读写模拟量寄存器(保持寄存器):

存器数高8位] [低8位] [CRC校验的高8位] [CRC校验的低8位]

例:[11][03][00][6B][00][03] [CRC高][CRC低]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:读模拟量的命令号固定为03。

<3>起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为107。

<4>寄存器数高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为3个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。

设备响应:[设备地址] [命令号03] [返回的字节个数][数据1][数据2]...[数据n] [CRC 校验的高8位] [CRC校验的低8位]

例:[11][03][06][02][2B][00][00][00][64] [CRC高] [CRC低]

意义如下:

<1>设备地址和命令号和上面的相同。

<2>返回的字节个数:表示数据的字节个数,也就是数据1,2...n中的n的值。例子中返回了3个模拟量的数据,因为一个模拟量需要2个字节所以共6个字节。

<3>数据1...n:其中[数据1][数据2]分别是第1个模拟量的高8位和低8位,[数据3][数据4]是第2个模拟量的高8位和低8位,以此类推。例子中返回的值分别是555,0,100。

<4>CRC校验同上。

4、06号命令,写单个模拟量寄存器(保持寄存器):

的数据高8位] [低8位] [CRC校验的高8位] [CRC校验的低8位]

例:[11][06][00][01][00][03] [CRC高] [CRC低]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:写模拟量的命令号固定为06。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的模拟量寄存器的地址。

<4>下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号寄存器的值设为3。

<5>注意此命令一条只能下置一个模拟量的状态。

设备响应:如果成功把计算机发送的命令原样返回,否则不响应。

5、16号命令,写多个模拟量寄存器(保持寄存器):

计算机发送命令:[设备地址] [命令号16] [需下置的寄存器地址高8位] [低8位] [数据数量高8位] [数据数量低8位] [下置的数据高8位] [低8位][……][……] [CRC校验的高8位] [CRC校验的低8位]

例:[11][16][00][01][00][01][00][05] [CRC高] [CRC低]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:写模拟量的命令号固定为16。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的模拟量寄存器的地址。

<4>需下置的数据数量高8位,低8位:表明了需要下置的数据数量,这里为1。

<5>下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号

寄存器的值设为5。

设备响应:如果成功把计算机返回的如下命令,否则不响应。

设备响应:[设备地址] [命令号16] [需下置的寄存器地址高8位] [低8位] [数据数量高8位] [数据数量低8位] [CRC校验的高8位] [CRC校验的低8位],如上例返回:

[11][16][00][01][00][01] [CRC高] [CRC低]

MODBUS通讯协议-RTU要点

通讯协议

(RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

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

(完整版)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(循环冗长检测)

ModBusRTU通讯协议

ModBusRTU通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC 校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6

modbusrtu协议

modbusrtu协议 1. 简介 modbusrtu协议是一种串行通信协议,广泛应用于工业自动化领域。它定义了一种主从设备之间进行通信的规则和数据帧格式,能够实现 可靠的数据交换。本文将介绍modbusrtu协议的基本原理、数据帧结构、功能码以及在实际应用中的常见用途。 2. 基本原理 modbusrtu协议采用了简单的主从架构,其中一个设备作为主站,控制多个从站进行数据交换。主站负责发起请求并解析从站的响应数据。通信采用全双工的方式进行,主站和从站通过共享的数据线交换 信息。 3. 数据帧结构 modbusrtu协议的数据帧由起始符、从站地址、功能码、数据、校验码和结束符组成。具体结构如下: 起始符 | 地址 | 功能码 | 数据 | 校验码 | 结束符 •起始符:用于同步通信的起始标识符,通常为一个字节。 •地址:标识从站的地址,通常为一个字节。地址0为广播地址,用于向多个从站发送指令。

•功能码:指定从站执行的操作,可以是读取数据、写入数据或其他特定功能。 •数据:用于传输的数据,长度可变。 •校验码:用于检测数据传输过程中的错误,通常采用循环冗余校验(CRC)算法计算得出。 •结束符:标志数据帧的结束,通常为一个或多个字节。 4. 功能码 modbusrtu协议定义了一套常用的功能码,用于指示从站执行不同的操作。常见的功能码及其功能如下: •读取线圈状态(01H):用于读取从站的开关量输出状态。 •读取输入状态(02H):用于读取从站的开关量输入状态。 •读取保持寄存器(03H):用于读取从站的模拟量输入状态。 •读取输入寄存器(04H):用于读取从站的模拟量输出状态。 •强制单线圈(05H):用于强制从站的开关量输出状态。 •预置多个寄存器(06H):用于设置从站的模拟量输出状态。 •执行多个操作(0FH):用于执行多个操作,如同时读取多个寄存器或写入多个寄存器的值。

ModBusRTU通讯协议

ModBusRTU通讯协议 协议名称:ModBus RTU通讯协议 1. 引言 ModBus RTU通讯协议是一种常用的串行通讯协议,用于在工业自动化领域中实现设备之间的数据通信。本协议旨在定义ModBus RTU通讯协议的标准格式和规范,以确保各设备之间的互操作性和数据传输的可靠性。 2. 术语和定义 在本协议中,以下术语和定义适用: - 主站:指发起通信请求的设备。 - 从站:指响应通信请求的设备。 - 寄存器:指用于存储和传输数据的内存单元。 - 线圈:指用于控制设备状态的开关。 3. 协议结构 ModBus RTU通讯协议采用二进制格式进行数据传输,每个通信帧包含以下几个字段: - 地址:指定从站的地址,用于识别通信的目标设备。 - 功能码:指定通信的功能类型,如读取寄存器、写入线圈等。 - 数据:包含具体的通信数据,如读取的寄存器值或写入的线圈状态。 - CRC校验:用于检测通信数据的完整性。 4. 通信过程

ModBus RTU通讯协议的通信过程如下: 4.1 主站发送请求 主站向从站发送请求,请求包含地址、功能码和相关数据。 4.2 从站响应请求 从站接收到请求后,根据功能码进行相应的处理,并生成响应数据。 4.3 主站接收响应 主站接收从站的响应数据,并进行解析和处理。 5. 功能码 ModBus RTU通讯协议定义了一系列功能码,用于实现不同的通信功能。以下是常用的功能码及其描述: - 读取线圈状态(功能码01):主站向从站请求读取线圈的状态,从站响应包含线圈的当前状态。 - 读取输入状态(功能码02):主站向从站请求读取输入的状态,从站响应包含输入的当前状态。 - 读取保持寄存器(功能码03):主站向从站请求读取保持寄存器的值,从站响应包含寄存器的当前值。 - 读取输入寄存器(功能码04):主站向从站请求读取输入寄存器的值,从站响应包含寄存器的当前值。 - 写入单个线圈(功能码05):主站向从站请求写入单个线圈的状态,从站响应确认写入结果。 - 写入单个寄存器(功能码06):主站向从站请求写入单个寄存器的值,从站响应确认写入结果。

modbusrtu 协议

modbusrtu 协议 Modbus是一种通讯协议,最初由Modicon公司开创。目前这个协议已经成为了全球工业自动化设备间的通讯标准之一,被广泛应用于许多领域,包括工业自动化、家庭自动化、建筑物自动化、能源管理等等。Modbus RTU协议是其中最常见的格式之一,本文将详细介绍该协议的基本特点、通讯方式、报文结构以及应用范围等方面。 一、协议介绍 1.1 基本概念 Modbus RTU协议是Modbus协议的一种变体,是在串行通讯中广泛应用的一种方式。RTU通讯的特点在于通讯速度较快,协议间数据的传输效率高。 1.2 协议特点 针对它的通讯方式而言,Modbus RTU协议最明显的特点是它的速度快。由于基于串行通讯,可以实现数据快速传输。此外,它采取了类似于“请求—响应”的模式,能够保证通讯中数据的可靠性。 二、通讯方式 Modbus RTU协议采取了一种“Master/Slave”的结构,其中,Master表示设备的控制器或CPU,而Slave则具有更低的智力,被动从属于Master,它们互相交换信

息,实现整个系统的控制。在通讯时,Master通过一个唯一的地址向Slave发送请求消息,并等待接收Slave的响应消息。通讯过程主要包括以下两个阶段: 2.1 请求消息 当Master向Slave发送请求时,它会先确定拟请求的Slave的地址、功能码和数据。其中,地址是指Slave设备在同一个网络上的唯一标识符,功能码表示所请求的操作类型,数据则是操作所需的具体数据。请求消息的格式如下: Slave Address: 1 byte Function Code: 1 byte Data: n bytes CRC Check: 2 bytes 需要注意的是,在发送请求消息时,Master应能确保请求在网络上的唯一性,否则将导致请求的冲突,影响通讯的有效性。 2.2 响应消息 当Slave接受到Master的请求消息时,它会根据请求完成相应的操作,并返回响应消息。响应消息的格式如下: Slave Address: 1 byte Function Code: 1 byte Data: n bytes CRC Check: 2 bytes 在响应消息中,捎带着的主要是请求所需操作的结果,Master再根据响应的数据做出相应的决策。

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位域都是一个两个十六进制字符组成 每个字节的位

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(循环冗长检测)

MODBUS通讯协议-RTU

MODBUS通讯协议-RTU

Modbus 通讯协议 (RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

Modbus通讯协议(RTU传输模式) 第一章Modbus协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议 1

有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。 1.2.1信息帧 图 1 – 1 . 信息帧格式 特注:Modbus信息帧所允许的最大长度为256个字节,即N的范围是大于等于零且小于等于252(N{0,252})。 即,所有的数据一共256个,数据剩下253个。 1.2.2地址(Address)域 信息帧地址域(信息地址)在帧的开始部分,由8位组成,有效的从机设备地址范围0-247(十进

(完整)MODBUS_RTU通讯协议

MODBUS 通讯协议 使用手册

从机地址码(=001〜254) 读寄存器值岀错 见信息码表 从字节1到3的CRC16校验和 1.4. 功能码06H:写单个寄存器值 : 1. RTU 方式通讯协议 1.1. 硬件采用RS- 485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。 1. 2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。 波特率:9600;19200 38400 1.3. 功能码03H:读寄存器值 主机发送: 第1字节ADR 第2字节03H 第3、4字节 第5、6字节 第7、8字节 从机地址码(=001〜254) 读寄存器值功能码 要读的寄存器开始地址 要读FCC 下挂仪表, 要读的寄存器数量 从字节1到6的CRC16校验和 从机回送: 第1字节ADR 第 2字节 03H 第3字节 第4到M 字节 从机地址码(=001〜254) 返回读功能码 从4到M (包括4及M 的字节总数 寄存器数据 第 M+ 1、 当从机接收错误时,从机回送: M+2字节 : 从字节1至U M 的CRC16校验和 第1字节ADR 第2字节 83H 第3字节信息码 第4、 5字节

当从机接收正确时,从机回送: 当从机接收错误时,从机回送: 从机地址码(=001〜254) 写寄存器值岀错功能码 见信息码表 从字节1到3的CRC16校验和 当从机接收错误时,从机回送: 从机地址码(=001〜254) 写寄存器值岀错 见信息码表 从字节1到3的CRC16校验和 第1字节ADR 第2字节 86H 第3字节错误数息码 第4、 5字节 第1字节ADR 第2字节 90H 第3字节错误信息码 第4、 5字节

相关主题
相关文档
最新文档