Modbus-RTU规约详解.doc

上传人:一*** 文档编号:809313 上传时间:2019-07-16 格式:DOC 页数:75 大小:558KB
返回 下载 相关 举报
Modbus-RTU规约详解.doc_第1页
第1页 / 共75页
Modbus-RTU规约详解.doc_第2页
第2页 / 共75页
点击查看更多>>
资源描述

《Modbus-RTU规约详解.doc》由会员分享,可在线阅读,更多相关《Modbus-RTU规约详解.doc(75页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 第一章 Modbus 协议 介绍 Modbus 协议介绍 两种串行传输模式 信息帧 错误检查方法Modbus Protocol PI-MBUS-3002Modbus 协议介绍协议介绍Modbus 可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯,支撑网络有 Modicon 的 Modbus 和 Modbus+工业网络。网络信息存取可由控制器内置的端口,网络适配器以及 Modicon 提供的模块选 件和网关等设备实现,对 OEM(机械设备制造商)来说,Modicon 可为合作伙伴提供现有的程序,可使 Modbus+ 网络紧密地集成到他们的产品设计中去。Modicon 的各种控制器

2、使用的公共语言被称为 Modbus 协议,该协议定义了控制器能识别和使用的信息结 构。当在 Modbus 网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据, 决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用 Modbus 协议将 此信息传送出去。在其他网络上使用时,数据包和数据帧中也包含着 Modbus 协议。如,Modbus+或 MAP 网络控制器中有相 应的应用程序库和驱动程序,实现嵌入式 Modbus 协议信息与此网络中用子节点设备间通讯的特殊信息帧的数 据转换。该转换也可扩展,处理节点地址,路由,和每一个特殊网络的错误检

3、查方法。如包含在 Modbus 协议中的 设备地址,在信息发送前就转换成节点地址,错误检查区也用于数据包,与每个网络的协议一致,最后一点是 需用 Modbus 协议,写入嵌入的信息,定义应处理的动作。图 1 说明了采用不同通讯技术的多层网络中设备的互连方法。在信息交换中,嵌入到每个网络数据包中的 Modbus 协议,提供了设备间能够交换数据的公共的语言。图图 1:Modbus 协议应用示意图协议应用示意图* MB+为 Modbus主处理器 4 个 Modus 设备或网络编程器编程器(去 MB+)S980(去 MAP)AT/HC-984和HOST/MMHIAT/HC-984和HOST/MMHI9

4、84A/B和S985Modbus Protocol PI-MBUS-3004Modbus 上的数据传输Modicon 控制器上的标准 Modbus 端口是使用一个 RS-232 兼容的串行接口,定义了连接器,接线电缆,信 号等级,传输波特率,和奇偶校验,控制器可直接或通过调制解调器(以后简称 Modems)接入总线(网络)。控制 器通讯使用主从技术,即主机能起动数据传输,称查询。而其它设备(从机)应返回对查询作出的响应,或处理 查询所要求的动作。典应的主机设备应包括主处理器和编程器。典应的从机包括可编程控制器。主机可对各从机寻址,发出广播信息,从机返回信息作为对查询的响应。从机对于主机的广播查

5、询,无响 应返回 Modbus 协议报据设备地址,请求功能代码,发送数据,错误校验码,建立了主机查询格式,从机的响 应信息也用 Modbus 协议组织,它包括确认动作的代码,返回数据和错误校验码。若在接收信息时出现一个错 误或从机不能执行要求的动作时,从机会组织一个错误信息。并向主机发送作为响应。在其它总线上传输数据在其它总线上传输数据除标准的 Modbus 功能外,有些 Modcon 控制器内置端口或总线适配器,在 Modbus+总线上实现通讯或使 用网络适配器,在 MAP 网络上通讯。在这些总线上,控制器间采用对等的技术进行通讯,即任意一个控制器可向其它控制器启动数据传送。因 此,一台控制

6、器既可作为从机,也可作为主机,常提供多重的内部通道,允许并列处理主机和从机传输数据在信息级,尽管网络通讯方法是对等的,但 Modbus 协议仍采用主从方式,若一台控制器作为主机设备发送一 个信息,则可从一台从机设备返回一个响应,类似,当一台控制器接受信息时,它就组织一个从机设备的响应 信息,并返回至原发送信息的控制器。 查询响应周期:查询响应周期:图图 2:主从查询响应周期:主从查询响应周期 查询:查询: 查询中的功能代码为被寻址的从机设备应执行的动作类型。数据字节中包含从机须执行功能的各附加信息, 如功能代码 03 将查询从机,并读保持寄存器。并用寄存器的内容作响应。该数据区必须含有告之从机

7、读取寄存 器的起始地址及数量,错误校验区的一些信息,为从机提供一种校验方法,以保证信息内容的完整性。 响应:响应: 从机正常响应时,响应功能码是查询功能码的应答,数据字节包含从机采集的数据,如寄存器值或状态。 如出现错误,则修改功能码,指明为错误响应。并在数据字节中含有一个代码,来说明错误,错误检查区允许 主机确认有效的信息内容。主机查询信息主机查询信息设备地址功能代码8 位数据字节错误校验设备地址功能代码8 位数据字节错误校验从机响应信息从机响应信息 两种串行传输模式控制器可使用 ASCII 或 RTU 通讯模式,在标准 Modbus 上通讯。在配置每台控制器时,用户须选择通讯模 式以及串行

8、口的通讯参数。(波特率,奇偶校验等),在 Modbus 总线上的所有设备应具有相同的通讯模式和串行 通讯参数。选择 ASCII 或 RTU 模式用于标准的 Modbus 总线。它定义了总线上串行传输信息区的“位”的含义,决定 信息打包及解码方法。 如在 MAP 和 Modbus+总线上时,Modbus 信息以帧的方式出现,并与串行传输无关,如请求读保持寄存器可以 在 Modbus+上的两个控制器之间处理,而与使用的控制器的 Modbus 端口无关。ASCII 模式当控制器以 ASCII 模式在 Modbus 总线上进行通讯时,一个信息中的每 8 位字节作为 2 个 ASCII 字符传输 的,这

9、种模式的主要优点是允许字符之间的时间间隔长达 IS,也不会出现错误。ASCII 码每一个字节的格式:编码系统: 16 进制,ASCII 字符 0-9,A-F 1 个 16 进制 数据位: 1 起始位 7 位数据,低位先送 奇/偶校验时 1 位;无奇偶校验时 0 位 (LRC)1 位带校验 1 停止位;无校验 2 止位 错误校验区: 纵向冗余校验RTU 模式模式控制器以 RTU 模式在 Modbus 总线上进行通讯时,信息中的每 8 位字节分成 2 个 4 位 16 进制的字符,该 模式的主要优点是在相同波特率下其传输的字符的密度高于 ASCII 模式,每个信息必须连续传输。RTU 模式中每个字

10、节的格式:编码系统:8 位二进制,十六进制 0-9,A-F数据位:1 起始位 8 位数据,低位先送 奇/偶校验时 1 位;无奇偶校验时 0 位 停止位 1 位(带校验);停止位 2 位(无校验) 带校验时 1 位停止位;无校验时 2 位停止位错误校验区:循环冗余校验(CRC)Modbus 信息帧何论是 ASCII 模式还是 RTU 模式,Modbus 信息以帧的方式传输,每帧有确定的起始点和结束点,使接收 设备在信息的起点开始读地址,并确定要寻址的设备 (广播时对全部设备),以及信息传输的结束时间。可检测 部分信息,错误可作为一种结果设定。对 MAP 或 Modbus+协议可对信息帧的起始和结

11、束点标记进行处理,也可管理发送至目的地的信息,此时, 信息传输中 Modbus 数据帧内的目的地址已无关紧要,因为 Modbus+地址已由发送者或它的网络适配器把它转 换成网络节点地址和路由。ASCII 帧帧在 ASCII 模式中,以(:)号(ASCII3AH)表示信息开始,以回撤一换行键(CRLF) (ASCII OD 和 OAH)表示信息 结束。对其它的区,允许发送的字符为 16 进制字符 0-9,A-F。网络中设备连续检测并接收一个冒号(:)时,每台设 备对地址区解码,找出要寻址的设备。字符之间的最大间隔为 1S,若大于 1S,则接收设备认为出现了一个错误。 典型的信息帧见下表Modbu

12、s Protocol PI-MBUS-3006开始地址功能数据纵向冗余 检查结束1 字符 :2字符2字符n字符2字符2字符图图 3 ASCII 信息帧信息帧例外:例外:对于 584 和 984A/B/X 控制器,一个 ASCII 信息可在 LRC 区后正常终止,而不需发送 CRLF 字符,此时 出现IS 的时间间隔,控制器也将认为是正常中断。RTU 帧帧RTU 模式中,信息开始至少需要有 3.5 个字符的静止时间,依据使用的波特率,很容易计算这个静止的时 间(如下图中的 T1-T2-T3-T4)。接着,第一个区的数据为设备地址。各个区允许发送的字符均为 16 进制的 0-9,A-F。网络上的设

13、备连续监测网络上的信息,包括静止时间。当接收第一个地址数据时,每台设备立即对它解码, 以决定是否是自己的地址。发送完最后一个字符号后,也有一个 3.5 个字符的静止时间,然后才能发送一个新 的信息。整个信息必须连续发送。如果在发送帧信息期间,出现大于 1.5 个字符的静止时间时,则接收设备刷新不 完整的信息,并假设下一个地址数据。同样一个信息后,立即发送的一个新信息, (若无 3。5 个字符的静止时间)这将会产生一个错误。是因为 合并信息的 CRC 校验码无效而产生的错误。开始地址功能数据校验终止T1-T2-T3-T48 B 位 S8 B 位 SN8 B 位 S16B 位 ST1-T2-T3T

14、-4图图 4 RTU 信息帧信息帧Modbus 信息帧(Continued)地址设置地址设置信息地址包括 2 个字符(ASCII)或 8 位(RTU),有效的从机设备地址范围 0-247,(十进制),各从机设备的寻址 范围为 1-247。主机把从机地址放入信息帧的地址区,并向从机寻址。从机响应时,把自己的地址放入响应信息 的地址区,让主机识别已作出响应的从机地址。地址 0 为于广播地址,所有从机均能识别。当 Modbus 协议用于高级网络时,则不允许广播或其它方式替 代。如 Modbus+使用令牌循环,自动更新共享的数据库。 功能码设置功能码设置信息帧功能代码包括字符(ASCII)或 8 位(

15、RTU)。有效码范围 1-225(十进制),其中有些代码适用全部型号的 Modicon 控制器,而有些代码仅适用于某些型号的控制器。还有一些代码留作将来使用,有关功能代替码的设 置将在第 2 章说明。当主机向从句发送信息时,功能代码向从机说明应执行的动作。如读一组离散式线圈或输入信号的 ON/OFF 状态,读一组寄存器的数据,读从机的诊断状态,写线圈(或寄存器) ,允许下截、记录、确认从机内 的程序等。当从机响应主机时,功能代码可说明从机正常响应或出现错误(即不正常响应),正常响应时,从句 简单返回原始功能代码;不正常响应时,从机返回与原始代码相等效的一个码,并把最高有效位设定为“1” 。如,

16、主机要求从机读一组保持寄存器时,则发送信息的功能码为:0000 0011 (十六进制 03)若从机正确接收请求的动作信息后,则返回相同的代码值作为正常响应。发现错时,则返回一个不正常响 信息:1000 0011(十六进制 83) 从机对功能代码作为了修改,此外,还把一个特殊码放入响应信息的数据区中,告诉主机出现的错误类型 和不正常响应的原因。主机设备的应用程序负责处理不正常响应,典型处理过程是主机把对信息的测试和诊断 送给从机,并通知操作者。 数据区的内容数据区的内容数据区有 2 个 16 进制的数据位,数据范围为 00-FF(16 进制),根据网络串行传输的方式,数据区可由一对 ASCII

17、字符组成或由一个 RTU 字符组成。主机向从机设备发送的信息数据中包含了从机执行主机功能代码中规定的请求动作,如离散量寄存器地址, 处理对象的数目,以及实际的数据字节数等。举例说明,若主机请求从机读一组寄存器(功能代码 03) ,该数据规定了寄存器的起始地址,以及寄存器 的数量。又如,主机要在一从机中写一组寄存器, (则功能代码为 10H) 。该数据区规定了要写入寄存区的起始 地址,寄存器的数量,数据的字节数,以及要写入到寄存器的数据。若无错误出现,从机向主机的响应信息中包含了请求数据,若有错误出现,则数据中有一个不正常代码, 使主机能判断并作出下一步的动作。数据区的长度可为“零”以表示某类信

18、息,如,主机要求-从机响应它的通讯事件记录(功能代码 OBH) 。 此时,从机不需要其他附加的信息,功能代码只规定了该动作。 信息帧 错误校验错误校验标准 Modbus 总线,有两类错误检查方法,错误检查区的内容按使用的错误检查方法填写。 SDCII使用 ASCII 方式时,错误校验码为 2 个 ASCII 字符,错误校验字符是 LRC 校验结果。校验时,起始符为 (:)冒号结束符为 CRLF 字符。 RTU使用 RTU 方式时,错误校验码为一个 16 位的值,2 个 8 位字节。错误校验值是对信息内容执行 CRC 校验 结果。CRC 校验信息帧是最后的一个数据,得到的校验码先送低位字节,后送

19、高位字节,所以 CRC 码的高位 字节是最后被传送的信息。 串行传送信息串行传送信息在标准的 Modbus 上传送的信息中,每个字符或字节,按由左向右的次序传送:最低有效位:(LSB)最高有效位:(MSB) ASCII 数据帧位序:图图 5 ASCII 位序位序RTU 数据帧位序:无奇偶校验带奇偶校验无奇偶校验带奇偶校验Modbus Protocol PI-MBUS-3008图图 6 RTU 位序位序 错误校验方法标准的 Modbus 串行通讯网络采用两种错误校验方法,奇偶校验(奇或偶)可用于校验每一个字符,信息帧校 验(LRC 或 CRC)适用整个信息的校验,字符校验和信息帧校验均由主机设备

20、产生,并在传送前加到信息中去。 从机设备在接收信息过程中校验每个字符和整个信息。主机可由用户设置的一个预定时间间隔,确定是否放弃传送信息。该间隔应有足够的时间来满足从机的正 常响应。若主机检测到传输错误时,则传输的信息无效。从机不再向主机返回响应信息。此时,主机会产生一 个超时信息,并允许主机程序处理该错误信号。注意:主机向实际并未存在的从机发送信息时也会引起超时出 错信号。在 MAP 或 Modbus+等其它网骆上使用时,采用比 Modbus 更高一级的数据帧校验方法。在这些网络中,不 再运用 Modbus 中的 LRC 或 CRC 校验方法。当出现发送错误时,网络中的通讯协议通知发送设备有

21、错误出现, 并允许根据设置的情况,重试或放弃信息发送。若信息已发送,但从机设备未作响应,则主机通过程序检查后 发出一个超时错误。 奇偶校验奇偶校验用户可设置奇偶校验或无校验,以此决定每个字符发送时的奇偶校验位的状态。何论是奇或偶校验,它均 会计算每个字符数据中值为“1”的位数,ASCII 方式为位数据;RTU 方式为 8 位数据。并根据“1”的位数值 (奇数或偶数)来设定为“0”或“1”如一个 RTU 数据帧中 8 位数据位为:1100 0101在该帧中,值为“1”的总位数为 4,即偶数。如采用奇校验方式时,则 “1”的总位数为奇数,即 5。发送信息时,计算奇偶位,并加到数据帧中,接收设备统计

22、位值为“1”的数量,若与该设备要求的不一致时产 生一个错误。在 Modbus 总线上的所有设备必须采用相同的奇偶校验方式。注意:奇偶校验只能检测到数据帧在传输过程中丢失奇数“位”时才产生的错误。如采用奇数校验方式时, 一个包含 3 个“1”位的数据丢失 2 个“1”位时,其结果仍然是奇数。若无奇偶校验方式时,传输中不作实际 的校验,应附加一个停止位。LRC 校验校验ASCII 方式时,数据中包含错误校验码,采用 LRC 校验方法时,LRC 校验信息以冒号“:”开始,以 CRLF 字符作为结束。它忽略了单个字符数据的奇偶校验的方法。LRC 校验码为 1 个字节,8 位二进制值,由发送设备计算 L

23、RC 值。接收设备在接收信息时计算 LRC 校验 码。并与收到的 LRC 的实际值进行比较,若二者不一致,亦产生一个错误。在梯形图中,CKSM 函数可计算数据信息中 LRC 的校验。用于主计算机时请查阅附录 C 中的一个实例, 它详细说明 LRC 的校验的过程。 错误校验方法 CRC 校验校验RTU 方式时,采用 CRC 方法计算错误校验码,CRC 校验传送的全部数据。它忽略信息中单个字符数据的 奇偶校验方法。CRC 码为 2 个字节,16 位的二进制值。由发送设备计算 CRC 值,并把它附到信息中去。接收设备在接收 信息过程中再次计算 CRC 值并与 CRC 的实际值进行比较,若二者不一致,

24、亦产生一个错误,校验开始时,把 16 位寄存器的各位都置为“1” ,然后把信息中的相邻 2 个 8 位字节数据放到当前寄存器中处理,只有每个字符 的 8 位数据用于 CRC 处理。起始位,停止位和校验位不参与 CRC 计算。CRC 校验时,每个 8 位数据与该寄存器的内容进行异或运算,然后向最低有效位(LSB)方向移位,用零填 入最高有效位(MSB)后,再对 LSB 检查,若 LSB=1,则寄存器与预置的固定值异或,若 LSB=0,不作异或运算。重复上述处理过程,直至移位 8 次,最后一次(第 8 次)移位后,下一个 8 位字节数据与寄存器的当前值异 或,再重复上述过程。全部处理完信息中的数据

25、字节后,最终得到的寄存器值为 CRC 值。 CRC 值附加到信息时,低位在先,高位在后。在梯形图中,CKSM 函数计算信息中的 CRC 值。用于主计 算机时,可查阅附录 C 中的一个实例,它详细说明了 CRC 的校验。 第二章第二章 数据和控制功能数据和控制功能Modbus 功能代码格式Modbus 功能代码总结Modbus 功能代码说明Modbus Protocol PI-MBUS-30010功能代码格式功能代码格式数字值表达数字值表达 若无特殊说明在此节文中用进制值表示,图中的数据区则用十六进制表示。Modbus 信息中的数据地址信息中的数据地址 Modbus 信息中的所有数据地址以零作为

26、基准,各项数据的第一个数据地址的编号为 0 如: 在可编程控制器中“coil 1”在 Modbus 信息中其地址值表示为 0000 Coil 127(十进制)在 Modbus 信息中则为 007EH(126 十进制) 保持寄存器 40001,在信息中数据地址为寄存器 0000。功能代码区为保持寄存器类型规定的操作,因此, “4XXXX”是缺省的地址类型。 保持寄存器 40108 寻址寄存器地址为 006B hex(进制 107)Modbus 信息中区内容信息中区内容 图 7 为一个例子,说明了 Modbus 的查询信息,图 8 为正常响应的例子,这两例子中的数据均是 16 进制的, 也表示了以

27、 ASCLL 或 RTU 方式构成数据帧的方法。主机查询是读保持寄存器,被请求的从机地址是 06,读取 的数据来自地址从 40108 至 40110 3 个保持寄有器。注意,该信息规定了寄存器的起始地址为 0107 (006BH)。 从机响应返回该功能代码,说明是正常响应,字节数“Byle count”中说明有多少个 8 位字节被返回。因无 论是 ASCII 方式还是 RTU 方式,它表明了附在数据区中 8 位字节的数量。ASCII 方式时,字节数为数据中 ASCII 字符实际数的一半,每 4 个位的 16 进制值需要一个 ASCII 字符表示,因此在数据中应由 2 个 ASCII 字符 来表

28、示一个 8 位的字节。如 RTU 方式时,63H 用一个字节(01100011)发送,而用 ASCII 方式时,发送需 2 个字节,即 ASCII“6” (0110110)和 ASCII“3”(0110011)。8 个位为一个单位计算“字节数” ,它忽略了信息帧用(ASCII 或 RTU)组成 的方法。 字节数使用方法:字节数使用方法:当在缓冲区组织响应信息时, “字节数”区域中的值应与该信息中数据区的字节数相等。QUERYField NameHeader Slave Address Function Starting Address Hi Starting Address Lo No. of

29、 Registers Hi No. of Registers Lo Error Check TrailerExample (Hex)06 03 00 6B 00 03Total Bytes:ASCII Characters:(colon) 06 03 00 6B 00 03 LRC (2 chars.) CR LF17RTU 8-Bit FieldNone 0000 0110 0000 0011 0000 0000 0110 1011 0000 0000 0000 0011 CRC (16 bits) None8图图 8 说明说明“字节数字节数”区在一个贡型响应中的应用。区在一个贡型响应中的应

30、用。RESPONSEField NameHeader Slave Address Function Byte Count Data Hi Data Lo Data Hi Data Lo Data Hi Data Lo Error Check TrailerExample (Hex)06 03 06 02 2B 00 00 00 63Total Bytes:ASCII Characters:(colon) 0 6 0 3 0 6 0 2 2 B 0 0 0 0 0 0 6 3 LRC (2 chars.) CR LF23RTU 8-Bit FieldNone 0000 0110 0000 001

31、1 0000 0110 0000 0010 0010 1011 0000 0000 0000 0000 0000 0000 0110 0011 CRC (16 bits) None11图图 8:从机采用:从机采用 ASCII/RTU 方式响应方式响应前导 工作标记 广播地址 MAC/LLC 区 CRC 结束标志 HDLC 级 MAC 级: 目的地址 原地址 MAC功能 字节数 LLC 区 LLC 级: 输出路由 路由器 传送次序 路由 MODBUS 信息帧 计数器 从机地址 功能代码 高位起始 低位起始 高位寄 低位寄 地址 地址 存器数量 存器数量 MODBUS 信息: Modbus+数据内

32、容数据内容在 Modbus+网络发送的 Modbus 信息应需嵌入到 LLC (逻辑连接控制)级数据帧,Modbus 信息区由 8 位字节 的数据组成,类似于 RTU 中的信息组成。由发送设备把从机地址转换成 Modbus+路由地址,CRC 数据不在 Modbus 信息中发送,因为会在更高级的 数据链路控制层(HDLC)中进行 CRC 校验。其余的信息与原标准格式一致,应用软件(控制器中的 MSTR 或主机中的 Modcom III)可将这些信息帧组成 数据包。图 9 示例说明了如何将读寄存器值的请求嵌入到Modbus 网络的数据帧中。图图 9:Modbus+数据内容数据内容 控制器支持的功能

33、代码控制器支持的功能代码下表列出 Modicon 控制器支持的功能代码:以十进制表示。“Y”表示支持“N”表示不支持。 代码代码名称名称 384 484 584 884 M84984 01读线圈状态YYYYYY 02 读输入状态 Y Y Y Y Y Y 03 读线保持寄存器Y Y Y YY Y 04 读输入寄存器Y Y Y Y Y Y 05 强制单个线圈 Y Y YY Y Y 06 预置单个寄存器 Y YYYYY 07 读不正常状态Y YYYYY 08 诊断(见第 3 章) 09 程序 484 N Y N N N N 10 查询 484 N Y N N N N 11 通讯事件控制 Y N Y

34、N N Y 12 通讯事件记录 Y N Y N N Y 13 程序控制器 Y N Y N N Y 14 查询控制器 Y N Y N N Y 15 强制多个寄存器 Y Y Y Y Y Y 16 预置多个寄存器 Y Y Y Y Y Y 17 报告从机 ID Y Y Y Y Y Y Modbus Protocol PI-MBUS-3001218 程序 884/M84 N N N Y Y N 19 通讯链路复位 N N N Y Y N 20 读通用参考值 N N YN N Y 21 写通用参考值 N N Y N N Y 22 Mask Write 4X Register N N NN N (1) 23

35、 Read/Write 4X Registers N N N N N (1) 24 Read FIFO 队列 N N N N N (1) (1)功能代码仅由 984-785 控制器支持 01 读线圈状态读线圈状态描述描述 读从机离散量输出口的 ON/OFF 状态,不支持广播。附录 B 列出由不同控制器型号支持最大的参数清单。查询查询查询信息规定了要读的起始线圈和线圈量,线圈的起始地址为零,1-16 个线圈的寻址地址分为 0-15。例: 请求从机设备 17 读 20-56 线圈。QUERYField NameSlave Address Function Starting Address Hi S

36、tarting Address Lo No. of Points Hi No. of Roints Lo Error Check (LRC or CRC)Example (Hex)11 01 00 13 00 25 图图 10: 读线圈状态查询读线圈状态查询响应响应响应信息中的各线圈的状态与数据区的每一位的值相对应,1=ON; 0=OFF。第一个数据字节的 LSB 为查询中的寻址地址,其他的线圈按顺序在该字节中由低位向高位 排列,直至 8 个为止,下一个字节也是从低位向高位排例。若返回的线圈数不是 8 的倍数,则在最后的数据字节中的剩余位至字节的最高位全部填零,字节数区说明 全部数据的字节数。

37、RESPONSEField NameSlave Address Function Byte Count Data (Coils 27-20) Data (Coils 35-28) Data (Coils 43-36) Data (Coils 51-44) Data (Coils 56-52) Error Check (LRC or CRC)Example (Hex)11 01 05 CD 6B B2 0E 1B 图图 11: 读线圈状态响应读线圈状态响应线圈 27-20 的状态用 CDH 表示,二进制值为 11001101,该字节的 MCB 为线圈 27,LSB 为 20。线圈从左 (27)向

38、右(20)状态分别为 ON-ON-OFF-OFF-ON-ON-OFF-ON,因此第一个字节中的线圈从左到右应是 27-20。下 一个字节的线圈应为 35 至 28。位数据串行转输从低位到高位,即 2027,2835。最后一个数据字节中,56-52 线圈的状态为 1BH(或二进制 00011011),线圈 56 是左数第 4 位,线圈 52 是 该字节的最低位,所线圈 56 至 52 的状态分别为 ON-ON-OFF-ON-ON 注意 3 个剩余位(至最高位的数)全部填 0。Modbus Protocol PI-MBUS-3001402 读输入位状态读输入位状态说明说明 读从机离散量输入信号的

39、ON/OFF 状态。不支持广播。附录 B 列出各种型号控制器所支持的最大参数量。查询查询查询信息规定了要读的输入起始地址,以及输入信号的数量。输入起始地址为 0,1-16 个输入口的地址分 别为 0-15。 例:请求读从机设备 17 的 10197-10218 的输入位状态。QUERYField NameSlave Address Function Starting Address Hi Starting Address Lo No. of Points Hi No. of Roints Lo Error Check (LRC or CRC)Example (Hex)11 02 00 C4 0

40、0 16 图图 12: 读输入位状态查询。读输入位状态查询。响应响应响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1 = ON; 0 = OFF,第一个数据字节的 LSB 为查询中的寻址地址,其他输入口按顺序在该字节中由低位向高位排列,直至 8 个位为止。下一个字节中 的 8 个输入位也是从低位到高位排列。若返回的输入位数不是 8 的倍数,则在最后的数据字节中的剩余位直至字节的最高位全部填零。字节的最 高位,字节数区。说明了全部数据的字节数。 例:对查询作出响应(参见上页)。RESPONSEField NameSlave Address Function Byte Count Da

41、ta (Inputs 10204-10197) Data (Inputs 10212-10205) Data (Inputs 10218-10213) Error Check (LRC or CRC)Example (Hex)11 02 03 AC DB 35 图图 13:读输入位状态响应。:读输入位状态响应。输入位 10204-10197 的状态用 35H (或二进制 00110101) 表示。输入位 10218 为左数第 3 位,10213 输入位 为 LSB,输入位 10218-10213 的状态分别为 ON-ON-OFF-ON-OFF-ON,注意最位还有 2 个剩余位需填零。 03 读

42、保持寄存器读保持寄存器说明说明读从机保持寄存器的二进制数据不支持广播,附录 B 列出了由各种型号控制器所支持的最大的参数量 查询查询查询信息规定了要读的寄存器起始地址及寄存器的数量,寄存器寻址起始地址为 0000,寄存器 1-16 所对应 的地址分别为 0-15QUERYField NameSlave Address Function Starting Address Hi Starting Address Lo No. of Points Hi No. of Roints Lo Error Check (LRC or CRC)Example (Hex)11 03 00 6B 00 03 图图

43、 14:读保持寄存器:读保持寄存器-查询查询 响应响应响应信息中的寄存器数据为二进制数据,每个寄存器分别对应 2 个字节,第一个字节为高位值数据,第二 个字节为低位数据。对 984-X8X 型控制器(如 984-685 等),扫描数据的速率为每次 125 个寄存器。对其它控制器型号的扫描速 率为每次 32 个寄存器,全部数据完成组合后返回响应信息。 例按查询要求返回响应。RESPONSEField NameSlave Address Function Byte Count Data Hi (Register 40108) Data Lo(Register 40108) Data Hi(Regi

44、ster 40109) Data Lo(Register 40109) Data Hi(Register 40110) Data Lo(Register 40110) Error Check (LRC or CRC)Example (Hex)11 03 06 02 2B 00 00 00 64 图图 15:读寄存器:读寄存器-响应响应寄存器 40108 的数据用 022BH 2 个字节(或用十进制 555)表示,寄存器 40109-40110 中的数据为 0000 和 0064H,(十进制时为 0 和 100) 04 读输入寄存器读输入寄存器说明说明读从机输入寄存器(3X 类型)中的二进制数据

45、,不支持广播附录 B 列出了由各种型号控制器所支持的最大的参数量 查询查询查询信息规定了要读的寄存器的起始地址及寄存器的数量,寻止起始地址为 0,寄存器 1-16 所对应的地址 分别为 0-15。例:请求读从机设备 17 中的 30009 寄存器。Modbus Protocol PI-MBUS-30016QUERYField NameSlave Address Function Starting Address Hi Starting Address Lo No. of Points Hi No. of Roints Lo Error Check (LRC or CRC)Example (He

46、x)11 04 00 08 00 01 图图 16:读输入寄存器:读输入寄存器-查询查询 响应响应响应信息中的寄存器数据为每个寄存器分别对应 2 个字节,第一个字节为高位数据,第二个字节为低位数 据。对 984-X8X 型控制器(如 984-685 等),扫描数据的速率为每次 125 个寄存器,对其它型号的控制器为每次 32 个寄存器。数据完成组合后,返回响应信息。 例按查询要求返回响应RESPONSEField NameSlave Address Function Byte Count Data Hi(Register 30009) Data Lo(Register 30009) Error

47、 Check (LRC or CRC)Example (Hex)11 04 02 00 0A 图图 17:读寄存器:读寄存器-响应响应 寄存器 30009 中的数据用 000AH 2 个字节(或用十进制 10)表示 05 强制单个线圈强制单个线圈说明说明强制单个线圈(0X 类型)为 ON 或 OFF 状态。广播时,该功能可强制所有从机中同一类型的线圈均为 ON 或 OFF 状态。 注意:注意:该功能可越过控制器内存的保护状态和线圈的禁止状态。线圈强制状态一直保持有效直至下一个 控制逻辑作用于线圈为止。控制逻辑中无线圈程序时,则线圈处于强制状态。附录 B 中列出了由各种型号控制器所支持的最大的参

48、数量。 查询查询查询信息规定了需要强制线圈的类型,线圈起始地址为 0,线圈 1 的寻址地址为 0由查询数据区中的一个常量。规定被请求线圈的 ON/OFF 状态, FF00H 值请求线圈处于 ON 状态,0000H 值请求线圈处于 OFF 状态,其它值对线圈无效,不起作用。 例:强制从机设备 17 中的 173 线圈为 ON 状态QUERYField NameSlave Address Function Coil Address Hi Coil Address Lo Force Data Hi Force Data Lo Error Check (LRC or CRC)Example (Hex)

49、11 05 00 AC FF 00 图图 18:强制单个线圈:强制单个线圈-查询查询 响应响应线圈为强制状态后即返回正常响应 例:按查询要求返回响应RESPONSEField NameSlave Address Function Coil Address Hi Coil Address Lo Force Data Hi Force Data Lo Error Check (LRC or CRC)Example (Hex)11 05 00 AC FF 00 图图 19:强制单个线圈:强制单个线圈Modbus Protocol PI-MBUS-3001806 预置单个寄存器预置单个寄存器说明说明把一个值预置到一个 4X 类型保持寄存器中。广播时,该功能把值预置到所有从机的相

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com