MODBUS通讯协议RTU要点

上传人:简*** 文档编号:227115803 上传时间:2023-08-10 格式:DOCX 页数:16 大小:100.81KB
返回 下载 相关 举报
MODBUS通讯协议RTU要点_第1页
第1页 / 共16页
MODBUS通讯协议RTU要点_第2页
第2页 / 共16页
MODBUS通讯协议RTU要点_第3页
第3页 / 共16页
点击查看更多>>
资源描述
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(循环冗长检测)1.2 协议当信息帧到达终端设备时,它通过一个简洁的“口”进入寻址到的设备,该设备去掉 数据帧的“信封”数据头,读取数据,假设没有错误,就执行数据所恳求的任务,然后,它将自己生成的数据参加到取得的“信封”中,把数据帧返回给发送者。返回的响应数据 中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的 被恳求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。1.2.1 信息帧Address8-BitsFunction8-BitsDataN x 8-BitsCheck16-Bits图 1 1 . 信息帧格式特注:Modbus 信息帧所允许的最大长度为 256 个字节,即 N 的范围是大于等于零且小于等于 252N0,252。即,全部的数据一共 256 个,数据剩下 253 个。1.2.2 地址Address域信息帧地址域(信息地址)在帧的开头局部,由 8 位组成,有效的从机设备地址范围0-247(十进制),各从机设备的寻址范围为 1-247。主机把从机地址放入信息帧的地址区,并向从机寻址。从机响应时,把自己的地址放入响应信息的地址区,让主机识别已作出响应的从机地址。地址 0 为播送地址,全部从机均能识别。当 Modbus 协议用于高级网络时,则不允许播送或其它方式替代。1.2.3 功能Function域信息帧功能域代码告知了被寻址到的终端执行何种功能。有效码范围 1-225(十进制) , 有些代码是适用于全部掌握器,有些适应于某种掌握器,还有些保存以备后用。有关功能代 替码的全部内容见附录 A。当主机向从句发送信息时,功能代码向从机说明应执行的动作。如读一组离散式线圈或 输入信号的ON/OFF 状态,读一组存放器的数据,读从机的诊断状态,写线圈或存放器,允许下截、记录、确认从机内的程序等。当从机响应主机时,功能代码可说明从机正常响应或消灭错误(即不正常响应),正常响应时,从句简洁返回原始功能代码;不正常响应时,从 机返回与原始代码相等效的一个码,并把最高有效位设定为“1”。如,主机要求从机读一组保持存放器时,则发送信息的功能码为:0000 0011 (十六进制 03)假设从机正确接收恳求的动作信息后,则返回一样的代码值作为正常响应。觉察错时,则返回一个不正常响信息:1000 0011(十六进制 83)从机对功能代码作为了修改,此外,还把一个特别码放入响应信息的数据区中,告知主机消灭的错误类型和不正常响应的缘由,不正常响应见附录 B。主机设备的应用程序负责处理不正常响应,典型处理过程是主机把对信息的测试和诊断送给从机,并通知操作者。表 1 1 列出了全部设备常用的功能码、它们的意义及它们的初始功能。代码0102名称读取线圈状态读取输入状态作用取得一组规律线圈的当前状态ON/OFF) 取得一组开关输入的当前状态(ON/OFF)表 1 1 常用功能码0304050607151617读取保持存放器读取输入存放器强置单线圈预置单存放器读取特别状态强置多线圈 预置多存放器报告从机标识在一个或多个保持存放器中取得当前的二进制值在一个或多个输入存放器中取得当前的二进制值强置一个规律线圈的通断状态放置一个特定的二进制值到一个单存放器中取得 8 个内部线圈的通断状态强置一串连续规律线圈的通断放置一系列特定的二进制值到一系列多存放器中可使主机推断编址从机的类型及该从机运行指示灯的状态1.2.4 数据域数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者极限值。他由数据区有 2 个 16 进制的数据位2 的 8 次方 256,数据范围为00-FF(16 进制)。例如:功能域码告知终端读取一个存放器,数据域则需要指明从哪个存放器开头及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同力量而有所不同。假设无错误消灭,从机向主机的响应信息中包含了恳求数据,假设有错误消灭,则数据中有一个不正常代码,使主机能推断并作出下一步的动作。数据区的长度可为“零”以表示某类信息。1.2.5 错误校验域该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些转变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了转变的数据,这就提高了系统的安全性和效率,出错校验使用了 16 位循环冗余的方法,即CRC 校验。错误检测域包含一 16Bits 值(用两个 8 位的字符来实现)。错误检测域的内容是通过对消息内容进展循环冗长检测方法得出的。CRC 域附加在消息的最终,添加时先是低字节然后是高字节。故CRC 的高位字节是发送消息的最终一个字节。1.2.6 字符的连续传输当消息在标准的Modbus 系列网络传输时,每个字符或字节按由左到右的次序方式发送: 最低有效位LSB.最高有效位(MSB)。位的序列是:有奇偶校验启始位12345678奇偶位停顿位无奇偶校验启始位12345678停顿位停顿位图 1 2 . 位挨次RTU1.3 错误检测 1、奇偶校验用户可以配置掌握器是奇或偶校验,或无校验。这将打算了每个字符中的奇偶校验位是如何设置的。假设指定了奇或偶校验,“1”的位数将算到每个字符的位数中ASCII 模式 7 个数据位,RTU 中 8 个数据位。例如RTU 字符帧中包含以下 8 个数据位:1 1 0 0 0 1 0 1整个“1”的数目是 4 个。假设便用了偶校验,帧的奇偶校验位将是0,便得整个“1”的个数仍是 4 个。假设便用了奇校验,帧的奇偶校验位将是1,便得整个“1”的个数是5 个。假设没有指定奇偶校验位,传输时就没有校验位,也不进展校验检测。代替一附加的停顿位填充至要传输的字符帧中。2、CRC 检测RTU 方式时,承受 CRC 方法计算错误校验码,CRC 校验传送的全部数据。它无视信息中单个字符数据的奇偶校验方法。循环冗余校验CRC域占用两个字节,包含了一个16 位的二进制值。CRC 值由传送设备计算出来,然后附加到数据帧上,接收设备在接收数据时重计算CRC 值,然后与接收到的CRC 域中的值进展比较,假设这两个值不相等,就发生了错误。CRC 开头时先把存放器的 16 位全部置成“1”,然后把相邻 2 个 8 位字节的数据放入当前存放器中,只有每个字符的 8 位数据用作产生 CRC,起始位,停顿位和奇偶校验位不加到 CRC 中。在生成 CRC 时,每个 8 位字节与存放器中的内容进展异或,然后将结果向低位移位, 高位则用“0”补充,最低位LSB移出并检测,假设是 1,该存放器就与一个预设的固定值进展一次异或运算,假设最低位为0,不作任何处理。上述处理重复进展,知道执行完了8 次移位操作,当最终一位第8 位移完以后,下一个8 位字节与存放器材的当前值进展异或运算,同样进展上述的另一个8 次移位异或操作, 当数据帧中的全部字节都作了处理,生成的最终值就是CRC 值。生成一个CRC 的流程为:1、 预置一个 16 位存放器为 0FFFFH全 1,称之为 CRC 存放器。2、 把数据帧中的第一个8 位字节与CRC 存放器中的低字节进展异或运算,结果存回 CRC 存放器。3、 将 CRC 存放器向右移一位,最高位填以0,最低位移出并检测。4、 假设最低位为 0:重复第 3 步下一次移位。假设最低位为 1:将CRC 存放器与一个预设的固定值0A001H进展异或运算。5、 重复第 3 步和第 4 步直到 8 次移位。这样处理完了一个完整的八位。6、 重复第 2 步到第 5 步来处理下一个八位,直到全部的字节处理完毕。7、 最终CRC 存放器得值就是CRC 的值。CRC 值附加到信息时,低位在先,高位在后。查阅附录 C 中的一个实例,它具体说明白 CRC 的校验。其次章 Modbus 数据和掌握功能详解Modbus 信息中的全部数据地址以零作为基准,各项数据的第一个数据地址的编号为0。假设无特别说明在此节文中用进制值表示,图中的数据区则用十六进制表示。图 2-1 为一个例子,说明白 Modbus 的查询信息,图 2-2 为正常响应的例子,这两例子中的数据均是 16 进制的,也表示了以RTU 方式构成数据帧的方法。主机查询是读保持存放器,被恳求的从机地址是 06,读取的数据来自地址 40108 保持寄有器。留意,该信息规定了存放器的起始地址为0107 (006BH)。从机响应返回该功能代码,说明是正常响应,字节数“Byle count”中说明有多少个 8 位字节被返回。它说明白附在数据区中 8 位字节的数量,当在缓冲区组织响应信息时,“字节数”区域中的值应与该信息中数据区的字节数相等。如 RTU 方式时, 63H 用一个字节(01100011)发送。8 个位为一个单位计算“字节数”,它无视了信息帧用组成的方法。AddrFunData startreg hiData startreg loData #ofregs hiData #ofregs loCRC16hiCRC16lo06H03H00H6BH00H01HXXHXXH图 2 1 Modbus 的查询信息AddrFunByteData1Data1Data 2Data2Data3Data3CRC16CRC16counthiLohilohilohilo06H03H06H02H2BH00H00H00H63HXXHXXH图 2 2 Modbus 的响应信息2.1 读取线圈状态功能码 01读取从机离散量输出口DO,0X 类型的 ON/OFF 状态,不支持播送。查询查询信息规定了要读的起始线圈和线圈量,线圈的起始地址为 0000H,1-16 个线圈的寻址地址分为 0000H 0015HDO1=0000H,DO2=0001H,依此类推。图 2 3 的例子是从地址为 17 的从机读取DO1 至DO6 的状态。AddrFunDO startreg hiDO startreg loDO #ofregs hiDO #ofregs loCRC16hiCRC16lo11H01H00H00H00H06HXXHXXH图 2 3 读取线圈状态查询响应响应信息中的各线圈的状态与数据区的每一位的值相对应,即每个DO 占用一位1 = ON, 0 = OFF,第一个数据字节的 LSB 为查询中的寻址地址,其他的线圈按挨次在该字节中由低位向高位排列,直至 8 个为止,下一个字节也是从低位向高位排例。假设返回的线圈数不是 8 的倍数,则在最终的数据字节中的剩余位至字节的最高位全部填0,字节数区说明全部数据的字节数。图 2 4 所示为线圈的输出状态响应的实例。Addr 11HFun 01HByte count 01HData 2AHCRC16hi XXHCRC16lo XXH数据000000DO2DO1MSB765432LSB图 2 4 读取线圈状态响应2.2 读取输入状态功能码 02读取从机离散量输入信号DI,0X 类型的ON/OFF 状态,不支持播送。查询查询信息规定了要读的输入起始地址,以及输入信号的数量。输入的起始地址为 0000H, 1-16 个输入口的地址分别为 0-15DO1=0000H,DO2=0001H,依此类推。图 2 5 的例子是从地址为 17 的从机读取DI1 到 DI16 的状态。AddrFunDI startaddrhiDI startaddrloDI numhiDI numloCRC16hiCRC16lo11H02H00H00H00H10HXXHXXH图 2 5 读取输入状态查询响应响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1 = ON; 0 = OFF,第一个数据字节的 LSB 为查询中的寻址地址,其他输入口按挨次在该字节中由低位向高位排列,直至 8 个位为止。下一个字节中的 8 个输入位也是从低位到高位排列。假设返回的输入位数不是 8 的倍数,则在最终的数据字节中的剩余位直至字节的最高位全部填零。字节数区说明白全部数据的字节数。图 2 6 所示为读数字输出状态响应的实例。AddrFunByte countData1Data2CRC16 hiCRC16 lo11H02H02H33HCCHXXHXXH数据 1DI8DI7DI6DI5DI4DI3DI2DI1数据 2MSBLSBDI16DI15DI14DI13DI12DI11DI10DI9MSBLSB图 2 6 读取输入状态响应2.3 读取保持存放器功能码 03读取从机保持存放器4X 类型的二进制数据,不支持播送。查询查询信息规定了要读的保持存放器起始地址及保持存放器的数量,保持存放器寻址起始地址为 0000H,存放器 1-16 所对应的地址分别为 0000H 0015H。AddrFunData startaddrhi 00H11H03HData startData #ofData #ofCRC16CRC16addr loregs hiregs lohilo 00H00H03HXXHXXH图2 7 的例子是从17 号从机读3 个采集到的根本数据U1、U2、U3,U1 的地址为0000H, U2 的地址为 0001H,U3 的地址为 0002H。图 2 7 读取保持存放器查询响应响应信息中的存放器数据为二进制数据,每个存放器分别对应 2 个字节,第一个字节为高位值数据,其次个字节为低位数据。图 2 8 的例子是读取U1,U2,U3(U1=03E8H,U2=03E7H,U3=03E9H)的响应。AddrFunBytecountData1hiData1LoData 2hiData2loData3hiData3loCRC16hiCRC16lo11H03H06H03HE8H03HE7H03HE9HXXHXXH图 2 8 读取保持存放器响应2.4 读取输入存放器功能码 04读取从机输入存放器(3X 类型)中的二进制数据,不支持播送。查询查询信息规定了要读的存放器的起始地址及存放器的数量,寻止起始地址为 0,存放器 1-16 所对应的地址分别为 0000H 0015H。图 2 9 的例子是恳求 17 号从机的 0009 存放器。AddrFunDO addrhiDO addrloData #of regs hiData #of regs loCRC16hiCRC16lo11H04H00H08H00H01HXXHXXH图 2 9 读取输入存放器查询响应响应信息中的存放器数据为每个存放器分别对应2 个字节,第一个字节为高位数据,其次个字节为低位数据。图 2 10 的例子存放器 30009 中的数据用 000AH 2 个字节表示。AddrFunByte countData hiData LoCRC16hiCRC16lo11H04H02H00H0AHXXHXXH图 2 10 读取输入存放器响应2.5 强置单线圈功能码 05强制单个线圈(DO,0X 类型)为 ON 或 OFF 状态,播送时,该功能可强制全部从机中同一类型的线圈均为ON 或 OFF 状态。该功能可越过掌握器内存的保护状态和线圈的制止状态。线圈强制状态始终保持有效直至下一个掌握规律作用于线圈为止。掌握规律中无线圈程序时,则线圈处于强制状态。查询查询信息规定了需要强制一个单独线圈的类型,线圈的起始地址为0000H,1-16 个线圈的寻址地址分为 0000H 0015HDO1=0000H,DO2=0001H,依此类推。由查询数据区中的一个常量,规定被恳求线圈的 ON/OFF 状态, FF00H 值恳求线圈处于ON 状态,0000H 值恳求线圈处于OFF 状态,其它值对线圈无效,不起作用。图示 2-11 的例子是恳求 17 号从机开DO1 的On 状态。AddrFunDO addrhiDO addrloValuehiValueloCRC16hiCRC16lo11H05H00H00HFFH00HXXHXXH图示 2-11 强制单线圈查询响应图 2 12 所示为对这个命令恳求的正常响应是在DO 状态转变以后传送接收到的数据。AddrFunDO addrhiDO addrloValuehiValueloCRC16hiCRC16lo11H05H00H00HFFH00HXXHXXH图示 2-12 强制单线圈响应2.6 预置单存放器功能码 06把一个值预置到一个保持存放器4X 类型中,播送时,该功能把值预置到全部从机的一样类型的存放器中。该功能可越过掌握器的内存保护。使存放器中的预置值保持有效。只能由掌握器的下一个规律信号来处理该预置值。假设掌握规律中无存放器程序时,则存放器中的值保持不变。查询查询信息规定了要预置存放器的类型,存放器寻址起始地址为 0000H,存放器 1 所对应的地址为 0000H。AddrFunData start Data start Value Value CRCCRCreghi00Hreg lo40Hhilohilo11H 06H0AH 9DHXXH XXH图示 2-13 的例子是恳求 17 号从机 0040H.的值为 2717。图示 2-13 预设单存放器查询响应AddrFunData start Data start Value Value CRCCRCreghi00Hreg lo40Hhilohilo11H 06H0AH 9DHXXH XXH图 2 14 所示对于预置单存放器恳求的正常响应是在存放器值转变以后将接收到的数据传送回去。图示 2-14 预设单存放器响应2.7 读取特别状态功能码 7读从中机中 8 个不正常状态线圈的数据,某些线圈号已在不同型号的掌握器中预定义, 而其它的线圈由用户编程,作为有关掌握器的状态信息,如“ machine ON/OFF”,“heads retraced”,(缩回标题),“safeties satisfied”(安全性满足),“error conditions”(存在错误条件)或其它用户定义的标志等。该功能码不支持播送。该功能代码为存取该类信息供给了一种简洁的方法,不正常线圈的类型是的(在功能代码中不需要线圈类型) 预定义的不正常线圈号如下:掌握器型号线圈设定M84,184/384,584,9841-8用户定义484257电池状态258-264用户定义884761电池状态762内存保护状态763R10 工况状态764-768用户预定义查询Addr11HFun07HCRC16hiXXHCRC16loXXH图示 2-15 的例子是恳求读从机设备 17 中的不正常状态。图示 2-15 读取特别状态查询响应正常响应包含 8 个不正常的线圈状态,为一个数据字节,每个线圈一位。LSB 对应为最低线圈类型的状态。Addr11HFun07HDO Data6DHCRC16hiXXHCRC16loXXH图 2 16 所示按查询要求返回响应:图示 2-16 读取特别状态 响应该例子中,线圈数据为 6DH (二进制 0110 ,1101),从左到右 (最高位至最低位) 的线圈状态分别为: OFF ON ON OFF ON ON OFF ON。假设掌握器型号为 984,这些位表示线圈 8 至 1 的状态;假设掌握器型号为 484 则表示线圈 264 至 257 的状态。2.8 强置多线圈功能码 15按线圈的挨次把各线圈 (DO,0X 类型) 强制成 ON 或 OFF。播送时,该功能代码可对各从机中一样类型的线圈起强制作用。该功能代码可越过内存保护和线圈的制止状态线圈。保持强制状态有效,并只能由掌握器的下一个规律来处理。假设无线圈掌握规律程序时,线圈将保持强制状态。查询查询信息规定了被强制线圈的类型,线圈的起始地址为 0000H,1-16 个线圈的寻址地址分为 0000H 0015HDO1=0000H,DO2=0001H,依此类推。查询数据区规定了被恳求线圈的 ON/OFF 状态,如数据区的某位值为“1”表示恳求的相应线圈状态为ON,位值为“0”,则为 OFF 状态。图示 2-17 例子为恳求从机设备 17 中一组 10 个线圈为强制状态,起始线圈为 20 (则寻址地址为 19 或 13H),查询的数据为 2 个字节,CD01H (二进制 11001101 0000 0001) 相应线圈的二进制位排列如下:Bit:1100110100000001Coll:2726252423222120-2928AddrFunDO addr DO addr Data #of Data #of ByteValue Value CRCCRChi00Hlo13Hreghireg locounthilohilo11H 0FH00H0AH02H CDH01HXXH XXH传送的第一个字节 CDH 对应线圈为 27-20,LSB 对应线圈 20,传送的其次个字节为01H,对应的线圈为 29-28, LSB 为继圈 28,其余未使用的位均填“0”。图示 2-17 强置多线圈查询响应正常响应返回从机地址,功能代码,起始地址以及强制线圈数。图 2 18 对上述查询返回的响应。AddrFunDO addrhiDO addrloData #ofreghiData #ofreg loCRC16hiCRC16lo11H0FH00H13H00H0AHXXHXXH图示 2-18 强置多线圈响应2.9 预置多存放器功能码 16把数据按挨次预置到各 (4X 类型) 存放器中,播送时该功能代码可把数据预置到全部从机中的一样类型的存放器中。该功能代码可越过掌握器的内存保护,在存放器中的预置值始终保持有效,只能由掌握器的下一个规律来处理存放器的内容,掌握规律中无该存放器程序时,则存放器中的值保持不变。查询查询信息规定了要预置存放器的类型,存放器寻址起始地址为 0000H,存放器 1 所对应的地址为 0000H。AddrFunData start Data start Data #of Data #of ByteValue Value Value Value CRCCRCreghi00Hreg lo40Hreghireg locounthilo89Hhilohilo11H 10H00H02H04H 40H0AH 9DHXXH XXH图示 2-19 的例子是恳求 17 号从机 0040H.的值为 178077833。图示 2-19 预设多存放器查询响应图 2 20 所示对于预置单存放器恳求的正常响应是在存放器值转变以后将接收到的数据传送回去。AddrFunData startreghiData startreg loData #ofreghiData #ofreg loCRC16hiCRC16lo11H10H00H40H00H02HXXHXXH图示 2-20 预设多存放器响应2.10 报告从机标识功能码 17返回一个从机地址掌握器的类型,从机的当前状态,以及有关从机的其他说明,不支持播送。查询Addr11HFun11HCRC16hiXXHCRC16loXXH图示 2-21 的例子是恳求报告从机设备 17 的 标识 ID 和状态。图示 2-21 报告从机标识查询响应图 2 22 所示正常响应格式,数据内容对应每台掌握器的类型。AddrFunByte CountXXHSlave ID11H11HXXHRun Indicator StatusXXHAdditfional DataXXHCRC16hiXXHCRC16loXXH从机 ID 总结图示 2-22 报告从机标识响应数据区第一个字节为 Modicon 掌握器返回的从机 IDSlave IDController0Micro 8414842184/384358488849984特注:具体信息见Modbus 协议英文版或中文版。第三章 附录附录A:MODBUS 全部功能码ModBus 网络是一个工业通信系统,由带智能终端的可编程序掌握器和计算机通过公用线路或局部专用线路连接而成。其系统构造既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表 3-1 是 ModBus 的功能码定义。表 3-1 ModBus 功能码功能码名称作用01读取线圈状态取得一组规律线圈的当前状态ON/OFF)02读取输入状态取得一组开关输入的当前状态ON/OFF)03读取保持存放器在一个或多个保持存放器中取得当前的二进制值04读取输入存放器在一个或多个输入存放器中取得当前的二进制值05强置单线圈强置一个规律线圈的通断状态06预置单存放器把具体二进值装入一个保持存放器07 读取特别状态08 回送诊断校验09 编程只用于 48410 控询只用于 48411 读取大事计数12 读取通信大事记录取得 8 个内部线圈的通断状态,这8 个线圈的地址由掌握器打算,用户规律可以将这些线圈定义,以说明从机状态,短报文适宜于快速读取状态把诊断校验报文送从机,以对通信处理进展评鉴使主机模拟编程器作用,修改PC 从机规律可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9 的报文发送后,本功能码才发送可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时可是主机检索每台从机的ModBus 事务处理通信大事记录。假设某项事务处理完成,记录会给出有关错误13 编程184/384 484 584可使主机模拟编程器功能修改PC 从机规律可使主机与正在执行任务的从机通信,定期控询该从14 探询184/384 484 584机是否已完成其程序操作,仅在含有功能13 的报文发送后,本功能码才得发送15 强置多线圈16 预置多存放器17 报告从机标识强置一串连续规律线圈的通断把具体的二进制值装入一串连续的保持存放器可使主机推断编址从机的类型及该从机运行指示灯的状态18 884 和 MICRO 84 可使主机模拟编程功能,修改PC 状态规律19 重置通信链路发生非可修改错误后,是从机复位于状态,可重置挨次字节20 读取通用参数584L 显示扩展存储器文件中的数据信息21 写入通用参数584L 把通用参数写入扩展存储文件,或修改之2264保存作扩展功能备用6572保存以备用户功能所用73 非法功能119120 保存127128 保存255留作用户功能的扩展编码留作内部作用用于特别应答ModBus 网络只是一个主机,全部通信都由他发出。网络可支持 247 个之多的远程附属控制器,但实际所支持的从机数要由所用通信设备打算。承受这个系统,各PC 可以和中心主机交换信息而不影响各PC 执行本身的掌握任务。表 3-2 是 ModBus 各功能码对应的数据类型。表 3-2 ModBus 功能码与数据类型对应表代码功能数据类型01读位02读位03读整型、字符型、状态字、浮点型04读整型、状态字、浮点型05写位06写整型、字符型、状态字、浮点型08N/A重复“回路反响”信息15写位16写整型、字符型、状态字、浮点型17读字符型附录B:不正常响应不正常响应:除播送外,主机向从机设备发送查询并期望有一个正常响应,主机查询中有可能产生4 种大事: 从机接收查询,通讯错误正常处理信息,则返回一个正常响应大事。 由于通讯出错,从机不能接收查询数据,因而不返回响应。此时,主机依靠处理程序给出查询超时大事。 假设从机接收查询,觉察有 (LRC 或 CRC) 通讯错误,并返回响应,此时,依靠主机处理程序给出查询超时大事。 从机接收查询,无通讯错误,但无法处理(如读不存在的线圈和存放器)时,向主机报告错误的性质。不正常响应信息有 2 个与正常响应不一样的区域:功能代码区:正常响应时,从机的响应功能代码区,带原查询的功能代码。全部功能代码的 MSB 为 0(其值低于 80H)。不正常响应时,从机把功能代码的MSB 置为 1,使功能代码值大于 80H,高于正常响应的值。这样,主机应用程序能识别不正常响应大事,能检查不正常代码的数据区。数据区:正常响应中,数据区含有(按查询要求给出的) 数据或统计值,在不正常响应中,数据区为一个不正常代码,它说明从机产生不正常响应的条件和缘由。例:主机发出查询,从机不正常响应。为十六进制数据。查询:AddrFunDO startreg hiDO startreg loDO #ofregs hiDO #ofregs loCRC16HiCRC16Lo0AH01H04HA1H00H01HXXHXXH响应不正常或例外:AddrFun0AH81HException Code02HCRC16HiXXHCRC16LoXXH图 3 1 . 不正常信息帧格式上例中,从机设备地址10(0AH),读线圈状态的功能代码(01),主机恳求线圈状态的地址为 1245(04A1H)。留意:只读一个指定线圈,地址为(0001).假设从机中不存在此线圈地址时,即以不正常代码(02),向主机返回一个不正常响应。说明为不合法地址。表 3-3 ModBus 的不正常代码:代码名称含义01不合法功能代码从机接收的是一种不能执行功能代码。发出查询命令后,该代码指示无程序功能。02不合法数据地址接收的数据地址,是从机不允许的地址。03不合法数据查询数据区的值是从机不允许的值。04从机设备故障从机执行主机恳求的动作时消灭不行恢复的错误。05确认从机已接收恳求处理数据,但需要较长的处理时间,为避开主机消灭超时错误而发送该确认响应。主机以此再发送一个“查询程序完成”未打算从机是否已完成处理。06从机设备劳碌从机正忙于处理一个长时程序命令,恳求主机在从机空闲时发送信息。07否认从机不能执行查询要求的程序功能时,该代码使用十进制 13或 14 代码,向主机返回一个“不成功的编程恳求”信息。主机应恳求诊断从机的错误信息。08内存奇偶校验错误从机读扩展内存中的数据时,觉察有奇偶校验错误,主机按从机的要求重发送数据恳求。/功能码描述是 否 支持播送起始地址备注01读线圈状态DO不支持0000H读离散量输出口(0X 类型)状态02读输入位状态DI不支持0000H读离散量输入信号(0X 类型)状态03读保持存放器不支持0000H读保持存放器数据04读输入存放器不支持0000H读输入存放器(3X 类型)数据05强制单个线圈DO支持0000H强制单个线圈(0X 类型)状态06预置单个保持存放器支持0000H置保持存放器4X 类型中07读不正常状态不支持08诊断(见第 3 章)不支持0000H09程序 484不0000H没查到10查询 484不0000H没查到11通讯大事掌握不支持12通讯大事记录不支持13程序掌握器不0000H没查到14查询掌握器不0000H没查到15强制多个线圈DO支持0000H强制各线圈 (0X 类型)状态16预置多个保持存放器支持0000H置保持存放器4X 类型中17报告从机 ID不支持18程序 884/M84不0000H没查到19通讯链路复位不0000H没查到20读通用参考值不支持0000H扩展存放器6X 类型21写通用参考值不支持0000H扩展存放器6X 类型22掩码写入 4X 类型存放器不支持0000H保持存放器4X 类型23读/写 4X 类型存放器不支持0000H保持存放器4X 类型24读 FIFO 查询数据不支持0000H保持存放器4X 类型
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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