• 2.28 MB
  • 2022-04-22 13:32:16 发布

GBZ19582.2-2004基于Modbus协议的工业自动化网络规范Modbus协议在串行链路上的实现指南.pdf

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS25.040一一N10...........中华人民共和国国家标准化指导性技术文件GB/Z19582.2-2004基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南Modbusindustrialautomationnetworkspecification-Part2:Modbusprotocolimplementationguideoverseriallink2004-09-21发布2005-03-01实施率aM*臀霭t臀篷臀M发“ GB/Z19582.2-2004前称刁本指导性技术文件包括两个通信规程中使用的Modbus应用层协议和服务规范:—串行链路上的ModbusModbus串行链路基于TIA/EIA标准:232-F和485-A.一一TCP/IP上的ModbusModbusTCP/IP基于IETF文件:RFC793和RFC7910串行链路和TCP/IP上的Modbus是根据相应ISO分层模型说明的两个通信规程。下图强调指出了本指导性技术文件的主要部分。深色方框表示规范,浅色方框表示已有的国际标准(TIA/EIA和IETF标准)。一Med6ws------------r.SMudbus}l-}".}jMeFWE1,4-2324TWESA-4R6-ATCPfi#IETFIkFC793基于Modbus协议的工业自动化网络规范分为三部分。—第1部分:Modbus应用协议—第2部分:Modbus协议在串行链路上的实现指南--一第3部分:Modbus协议在TCP/IP上的实现指南第1部分描述了Modbus事务处理;第2部分提供了一个有助于开发者实现串行链路上的Modbus应用层的参考信息;第3部分提供了一个有助于开发者实现TCP/IP上的Modbus应用层的参考信息。本部分的附录A、附录B是规范性附录;附录C、附录D是资料性附录。本部分由中国机械工业联合会提出。本部分由全国工业过程测量和控制标准化技术委员会归口。本部分起草单位:机械工业仪器仪表综合技术经济研究所、北京交通大学现代通信研究所、上海自动化仪表股份有限公司、施耐德电气(中国)投资有限公司、冶金工业钢铁研究总院、宝钢集团上海宝信软件股份有限公司。本部分主要起草人:欧阳劲松、孙听、刘铁椎、冯晓升、王勇、张荣生、丛力群、段永康。标准分享网www.bzfxw.com GB/Z19582.2-2004基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南范围Modbus标准定义了OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。它还将串行链路上的协议标准化,以便在一个主站和一个或多个从站之间交换Modbus请求。本部分的目的是表述串行链路上的Modbus协议。使用对象为在他们的产品实现串行链路Modbus协议的系统设计者。本部分将促进使用Modbus协议的设备之间的互操作性。本部分还是对《基于Modbus协议的工业自动化网络规范第1部分:Modbus应用协议》标准的补充,具体见图to在第9章中,定义了“Modbus串行链路”的不同实现等级。等级的规定是设备能够属于某个等级而必须遵守的全部要求。嚣--}Mo(dObSuls%Jg7fMM)X本嚼o$fc3Mordbus碑(OS1}1}12})图1基于Modbus协议的工业自动化网络规范第1部分、第2部分标准的关系2协议概述本部分描述串行链路上的Modbus协议。Modbus串行链路协议是一个主一从协议。该协议位于OSI模型的第2层。主一从类型的系统有一个向某个“子”节点发出显式命令并处理响应的节点(主站)。从站在没有收到主站的请求时并不主动地传输数据,也不与其他从站通信。在物理层,串行链路上的Modbus系统可以使用不同的物理接口(RS485,RS232)。最常用的物理接口是TIA/EIA-485(RS485)两线制接口。作为附加选项,该物理接口也可以使用RS485四线制接口。当只需要短距离的点到点通信时,也可以使用TIA/EIA-232-E(RS232)串行接口作为Modbus系统的物理接口(见第7章)。图2给出了与7层OSI模型对应的Modbus串行通信栈的一般表示。 GB/Z19582.2-2004层ISO/OSI7应用层Modbus应用协议/一一一一一一一~一~下刁6裘示层坚IAA-A1-}Fit田tr.;wLI15合话层;空.玄户机/旧各器I)4传珊层至砚3网络层望I2数据铸路Modbus甲行链路协议I一一—巨Modbus-tM/AM(*EIA/TIA-232)EIA/TIA-485图2Modbus协议和ISO/OSI模型位于OSI模型第7层的Modbus应用层报文传输协议提供了总线或网络上连接的设备之间的客户机/服务器通信。在Modbus串行链路上,主站提供客户机的功能,而从站作为服务器。3约定在本部分中,使用下列词语定义每个特定要求的重要程度。—“必须,’/“要求的”含有词语“必须”的所有要求是强制的。词语“必须”或形容词“要求的”表示该项为执行的绝对要求。这些词语带有下划线。—“应该”/“建议的”认为包含“应该”或形容词“建议的”的所有建议是期望的功能。应该使用这些建议作为选择不同的实现功能选项时的指南。在特定条件下,可以有合理的理由忽略这些项目,但是,应该理解其全部含义,并且在选择不同过程之前仔细考虑各种情况。这些词语带有下划线。—“可以”/“可选的”词语“可以”或形容词“可选的”表示该项目为真正意义上可选的。因为特定的市场需求或产品功能增强,例如:一个设计者可以选择包含该项目,另一个设计者可以选择忽略该项。4一致性如果某个实现不满足实现等级中的一个或多个必须的要求,那么这个实现是不符合的。如果某个实现满足实现等级中的所有必须的要求和所有应该的建议,那么称这个实现为“无条件符合的”。如果某个实现满足实现等级中的所有必须的要求但不满足所有应该的建议,那么称这个实现为“有条件符合的”。5缩略语本部分中使用下列特定词语、符号和缩略语的定义。2W在“电气接口”一章中定义的两线制配置,或其中的一个接口。4W在“电气接口”一章中定义的四线制配置,或其中的一个接口。AUI附加单元接口。标准分享网www.bzfxw.com GB/Z19582.2-2004公共端(Common)EIA/TIA标准中的信号公共端。在两线制或四线制RS485Modbus网络中,信号和可选的电源的公共端。DCE(DataCommunicationEquipment)一个实现了RS232数据电路终端设备的Modbus设备,例如:可编程序控制器适配器,也称作数据通信设备。设备(Device)Modbus设备。驱动器(Driver)发生器,或发送器DTE(DataTerminalEquipment)一个实现了RS232数据终端设备的Modbus设备。例如:可编程终端或PC.ITrUnterfaceonTrunk)干线侧的物理总线接口。IDv(InterfaceonDerivation)设备侧的物理总线接口。LT(LineTermination)链路终端。Modbus设备(MODBUSDevice)在串行链路上实现Modbus并遵循其技术规范的设备。RS232EIA/TIA-232标准。RS485EIA/TIA-485标准。RS485-Modbus实现了Modbus串行链路并遵循其技术规范的设备。收发器(Transceiver)发送器和接收器(或驱动器和接收器)。6Modbus数据链路层6.1Modbus主/从协议原理:Modbus串行链路协议是一个主一从协议。在同一时间,只能将一个主站连接到总线,将一个或多个从站(最大数量为247)连接到相同串行总线。Modbus通讯总是由主站发起。当从站没有收到来自主站的请求时,将不会发送数据。从站之间不能相互通信。主站同时只能启动一个Modbus事务处理。主站用两种模式向从站发出Modbus请求:一一单播模式(见图3),主站寻址单个从站。从站接收并处理完请求之后,向主站返回一个报文(一个“应答”)。在这种模式下,一个Modbus事务处理包含2个报文:一个是主站的请求,另一个是从站的应答。每个从站必须有唯一的地址(从1^-247),这样才能区别于其他站被独立地寻址。—广播模式(见图4),主站可以向所有的从站发送请求。对于主站广播的请求没有应答返回。广播请求必须是写命令。所有设备必须接受写功能的广播。地址0被保留用来识别广播通信。单播和广播模式的区别在一个多点的结构下(如RS485)更加易于理解。厂叔黔从站从站从站图3单播模式 GB/Z19582.2-2004fr从站从站从站图4广播模式6.2Modbus寻址规则见表toModbus寻址空间由256个不同地址组成。表1卜一09*t}一一1-x247Am*^AU一一248^-255%m州地址0为广播地址。所有从站必须识别广播地址。Modbus主站没有特定地址,只有从站有一个地址。在Modbus串行总线上,这个地址必须是唯一的。6.3Modbus帧描述见图5和图6.Modbus应用协议定义了一个与基础通信层无关的简单协议数据单元(PDU)}功能码}}数据}闷卜~~~~~~~------~ModbusPDU图5Modbus协议数据单元特定总线或网络上的Modbus协议映射能够在协议数据单元(PDU)上引入一些附加域。启动Modbus事务处理的客户机构造ModbusPDU,然后,添加附加域,以便构造适当的通信PDUo阅卜~~~~~~~~~~~~~~Modbus串行链路PDU叫卜~~~~~~~~--~~~~ModbusPDU图6串行链路上的Modbus帧—在Modbus串行链路上,地址域只含有从站地址。如前面各节所述,有效的从站地址范围为十进制0^-247。在1-247范围中为每个从站指配单独的地址。主站通过将从站地址放置在报文地址域中来寻址从站。当从站返回响应时,它将自己的地址放到响应地址域中,以便使主站知道哪个从站正在响应。—功能码指示服务器要执行何种操作。功能码的后面是含有请求和响应参数的数据域。—差错检验域是根据报文内容执行“冗余校验”计算的结果。根据使用的传输模式(RTU或标准分享网www.bzfxw.com GB/Z19582.2-2004ASCU),使用两种计算方法。(见6.5)6.4主站/从站状态图Modbus数据链路层由两个独立子层组成:—主/从协议;—传输模式(RTU和ASCI模式)。下列各节描述了与所使用传输模式无关的主站和从站状态图。在第7章中使用两个状态图详细说明了RTU和ASCII传输模式。描述了一个帧的接收和发送。状态图词法:使用UML标准符号法绘制状态图(图7)。标记法要点如下:触发〔保护条件〕巨口一一竺一注t1CSB图7UML标准表示当处于“状态A”的系统发生“触发”事件时,只有当“保护条件”为真时,系统才会进人“状态B"。然后,执行一个“动作”。6.4.1主站状态图图8说明了主站的动作:书公一图8主站状态图上述状态图的一些解释为:—状态“空闲”=无待决请求。这是电源加电后的初始状态。只有在“空闲”状态下才能发送请求。发送一个请求之后,主站离开“空闲”状态,并且不能同时发送第二个请求。—当向从站发送单播请求时,主站将进人“等待应答”状态,并且启动一个“响应超时”。它防止主站不确定地停留在“等待应答”状态下。响应超时的时间与具体应用有关。—当收到一个应答时,主站在处理数据之前检验应答。在某些情况下,检验的结果可能为错误,例如:收到来自非期望从站的应答或在接收到的帧中的错误。收到来自非期望从站的应答时,响应超时继续计时。如果在帧上检测到差错,可以进行重试。—如果没有接收到应答,响应超时,并产生一个错误。然后,主站进入“空闲”状态,并发出一个重试请求。重试的最大次数与主站设置有关。—当在串行总线上发送广播请求时,从站不返回响应。然而,主站需要考虑延迟,以便在发送新的请求之前允许从站处理当前请求。这个延迟被称作“转换延迟”。因此,在返回“空闲”状态 GB/Z19582.2-2004并且能够发送另一个请求之前,主站进人“等待转换延迟”状态。—在单播模式下,必须设置足够长的响应超时,以便任何从站处理请求并返回响应;在广播模式下,必须有足够长的转换延迟,以便任何从站只处理请求并能够接收新请求。因此,转换延迟应该比响应超时短。在9600bit/s速率时,典型的响应超时值为从1秒到几秒,而转换延迟为从100ms-200ms.—帧错误包括:1)每个字符的奇偶校验;2)整个帧的冗余校验。详细解释见6.6.状态图本身是非常简单的。它没有考虑对链路的访问、报文帧及在传输错误之后的重试等。有关帧传输的细节见6.506.4.2从站状态图图9说明了从站的动作:气沙图9从站状态图上述状态图的一些解释为:—状态“空闲”=无待决请求。这是电源加电后的初始状态。—当收到一个请求时,在处理请求中要求的动作之前,从站校验报文包。可以出现不同错误:请求的格式错误、无效动作⋯⋯。当检测到错误时,必须向主站发送应答。—当完成请求的动作之后,单播报文要求必须格式化应答并将其发送给主站。—如果从站检测到接收帧中的错误,那么不向主站返回响应。—任何从站应该定义并管理Modbus诊断计数器,以便提供诊断信息。通过使用Modbus诊断功能码可以得到这些计数值(见附录A和附录D中Modbus应用协议规范)。6.4.3主站/从站通信时序图图10表示了3种典型的主站/从站通信的时序图。6.5两种串行传输模式定义了两种串行传输模式:RTU模式和ASC11模式。定义了链路上串行传送报文域的位内容。它确定了信息如何打包为报文域和如何解码。在Modbus串行链路上,所有设备的传输模式(及串行口参数)必须相同。尽管在某些特定应用中要求ASCI[模式,但只有每个设备都有相同的模式才能进行Modbus设备之间的互操作:所有设备必须实现RTU模式。ASCII传输模式是一个选项。用户应该将设备设置成所期望的模式:RTU或ASCU模式。默认设置必须为RTU模式。标准分享网www.bzfxw.com GB/Z19582.2-2004主站书If3mI}}11仁}}}}}-..}}IyTTlj1`jI从站111...叫6i?rFi、户..,{八1}从站IV!}{1I!!...叫_‘一f物理链路.........................11广一一数据交换‘一‘一a交换I一IM3Z换1十‘—图10主站/从站通信时序图注1:请求、应答、广播阶段的持续时间与通信特征(帧长度和吞吐量)有关。注2:等待和处理阶段的持续时间与从站应用所需的请求处理时间有关。6.5.1RTU传输模式当设备在Modbus串行链路上使用RTU(远程终端单元)模式通信时,报文中每个8位字节含有两个4位十六进制字符。这种模式的主要优点是在相同的波特率下其较高的字符密度具有比ASCI模式更高的吞吐率。必须以连续的字符流传输每个报文。RTU模式中每个字节(11位)的格式为:编码系统:8位二进制报文中每个8位字节含有两个4位十六进制字符((0^-9,A-F)每个字节的位:1个起始位8个数据位,首先发送最低有效位1个奇偶校验位1个停止位偶校验是要求的。也可以使用其他模式(奇校验、无校验)。为了保证与其他产品的最大兼容性,建议还支持无校验模式。默认校验模式必须是偶校验。注:使用无校验时要求2个停止位。如何串行地传送字符:发送每个字符或字节的顺序是从左到右(见图11):最低有效位(LSB)⋯最高有效位(MSB)一Fjw7m三一工一三二!34*95111&0617"8I11一图11RTU模式中的位序列通过配置,设备可以接受奇校验、偶校验或无校验。如果无校验,那么传送一个附加的停止位来填充字符帧使其成为完整的11位异步字符(见图12,图13): GB/Z19582.2-2004一1_.i..z3!一一}}1}13}}耳}45s7T814k一图12RTU模式中的位序列(无校验的特殊情况)帧校验域:循环冗余校验(CRC>帧描述:日件OCR日0-252-TVRCA&,CRCA,ft2l(-CRCV图13RTU报文帧最大ModbusRTU帧是256个字节。6.5.1.1Modbus报文RTU帧见图14,图150传送设备将Modbus报文放置在带有已知起始和结束点的帧中。这就允许接收新帧的设备在报文的起始处开始接收,并且知道报文传输何时结束。必须能够检测到不完整的报文,并且必须作为结果设置错误标志。在RTU模式中,时长至少为3.5个字符时间的空闲间隔将报文帧区分开。在后续的部分,称这个时间区间为‘.:。帧1顿2帧3产—人一一一‘、产一一—、厂—人—-一、匕少四几二黔0,n奈件01:3.5tP*i⋯⋯至少3.5个字符至少3.5个字符曰4.5不孚"f;iModbus报文圈贵寸TAMA曰二.CRC15}$33.5图14RTU报文帧必须以连续的字符流发送整个报文帧。如果两个字符之间的空闲间隔大于1.5个字符时间,那么认为报文帧不完整,并且接收站应该丢弃这个报文帧。帧I正常帧2不正常厂一一一人一一、厂一一、o,1:1Eln1:1.,,1:1.1:10,,1:111+一.甘II一~书司叫H卜卜韦..砖-4.卜-以‘---,日.1},!刃一X1.5个字符>1.5个字符图15Modbus帧内间隔注:实现了RTU接收的驱动程序会隐含着对由ti.5和t3.5定时器引起的大量中断的管理。在较高的通信波特率下,这将导致CPU负担加重。因此,当波特率等于或低于19200bits时,必须严格地遵守这两个定时;波特率大标准分享网www.bzfxw.com GB/Z19582.2-2004于19200bit/s的情况下,两个定时器应该使用固定值:建议字符间超时时间(ti.5)为750fcs,帧间的超时时间(t3.5)为1.750ms,图16描述了RTU传输模式的状态图。“主站”和“从站”均在相同的图中表示:_接收到字符/初接始收:到_字符},。。宁时时向到//了。图16RTU传输模式的状态图上述状态图的一些解释:—从“初始”状态到“空闲”状态转换需要t3.5超时达限:这保证帧间延迟。—“空闲”状态是没有发送和接收报文要处理的正常状态。—在RTU模式中,当至少3.5个字符的时间间隔之后没有传输激活时,称通信链路为“空闲”状态。—当链路在空闲状态时,在链路上检测到的任何传输的字符被视为帧起始。链路进人“激活”状态。然后,当时间间隔t3.5之后链路上还没有传输字符时,视为帧结束。—检测到帧结束之后,执行CRC计算和校验。然后,分析地址域来确定帧是否发往这个设备。如果不是发往这个设备,那么丢弃这个帧。为了减少接收处理时间,在接收到地址域而不需要等到整个帧结束,就可以分析地址域。这样,CRC计算和校验只需要在帧寻址到该节点(包括广播帧)时进行。6.5.1.2CRC校验RTU模式包含一个差错校验域,该域是基于循环冗余校验(CRC)方法对全部报文内容执行的。CRC域校验整个报文的内容。无论单个字符报文使用何种奇偶校验,均应用这种CRC校验。CRC包含两个8位字节组成的一个16位值。CRC域作为报文的最后域附加到报文上。当进行这种附加时,首先附加域的低位字节,然后附加域的高位字节。CRC高位字节是报文中发送的最后字节。将CRC附加到报文上的发送设备计算CRC值。在接收报文过程中,接收设备重新计算CRC值,并将计算值与CRC域中接收到的实际CRC值相比较。如果两个值不相等,则产生错误。通过对一个16位寄存器预装载全1来启动CRC计算。然后,开始将后续报文中的8位字节与当前寄存器中的内容进行计算。只有每个字符中的8个数据位参与生成CRC的计算。起始位、停止位和校验位不参与CRC计算。在生成CRC过程中,每个8位字符与寄存器中的值异或。然后,向最低有效位(LSB)方向移动这个结果,而用零填充最高有效位(MSB)。提取并检查LSB。如果LSB为1,则寄存器中的值与一个固定的预置值异或;如果LSB为0,则不进行异或操作。 GB/Z19582.2-2004这个过程将重复直到执行完8次移位。完成最后一次(第8次)移位之后,下一个8位字节与寄存器的当前值异或,然后像上述描述的那样重复8次这个过程。当已经计算所有报文中字节之后,寄存器的最终值就是CRC}当将CRC附加到报文上时,首先附加低位字节,然后附加高位字节。附录B中包含产生CRC的详细实例。6.5.2ASCII传输模式当使用ASC11(美国信息交换标准代码)模式设置设备在Modbus串行链路上通信时,用两个ASCII字符发送报文中的一个8位字节。当通信链路或者设备不能满足RTU模式的定时管理要求时,使用该模式。注:由于每个字节需要两个字符发送,所以这种模式比RTU模式效率低。实例:将字节Ox5B编码为两个字符:0x35和0x42(用ASCII表示的0x35="5",0x42="B")oASCII模式中每个字节(10位)的格式为:编码系统:十六进制,ASC11字符0-9,A---F报文中每个ASC11字符含有1个十六进制字符每个字节的位:1个起始位7个数据位,首先发送最低有效位1个奇偶校验位1个停止位偶校验是要求的。也可以使用其他模式(奇校验、无校验)。为了保证与其他产品的最大兼容性,建议还支持无校验模式。默认校验模式必须是偶校验。注:使用无校验时要求2个停止位。如何串行地传送字符:发送每个字符或字节的顺序是从左到右(见图17):最低有效位(LSB)⋯最高有效位(MSB)一匣巨工三!一*I34HIM567?}1}一图17ASCII模式中的位序列通过配置,设备可以接受奇校验、偶校验或无校验。如果无校验,那么传送一个附加的停止位来填充字符帧(见图18):一匣巨一匝9E*11am}I12I3(4(516I7Ilhlf}kl一图18ASC皿模式中的位序列(无校验的特殊悄况)帧校验域:纵向冗余校验(LRC)6.5.2.1Modbus报文ASC五帧传送设备将Modbus报文放置在带有已知起始和结束点的帧中。这就允许接收新帧的设备在报文的起始处开始接收,并且知道报文传输何时结束。必须能够检测到不完整的报文,并且必须作为结果设置错误标志。报文帧的地址域包含两个字符。标准分享网www.bzfxw.com GB/Z19582.2-2004在ASCI模式中,用特定的字符将报文划分为帧起始和帧结束。一个报文必须以一个“冒号”(:)字符(十六进制ASCII3A)起始,以“回车一换行”(CRI_F)(十六进制ASCIIOD和OA)结束。注:可以通过特定的Modbus应用命令改变LF字符(见Modbus应用协议规范)。对于所有的域来说,允许传输的字符为十六进制0^-9,A^-F(ASCU编码)。设备不断地监视总线上的“冒号”字符。当收到这个字符之后,每个设备译码后续字符直到检测到帧结束为止。报文中字符间的时间间隔可以达is。如果出现更大的间隔,则正在接收的设备认为出现错误。图19表示了一个典型的报文帧。一针t2T}f}fz^i=}}t士OY2IxC2m52tf*寸一针2C^R,LF{图19ASC五报文帧注:每个字符字节需要用两个字符编码。因此,为了在Modbus应用级上确保ASCn模式和RTU模式兼容,ASCI数据域(2x252)最大数据长度为RTU数据域(252)的两倍。因此,ModbusASCI帧的最大长度为513个字符。在图20(状态图)中综述了ASCH报文帧的要求。“主站”和“从站”均在相同的图中表示:接收“:”字符/一(jig"L少1F"49.1A"CitR"aiYx}iCfr"}LA(F;Lm"R}tCCaf,1Efa)FIMxuVl10-rr6}C"CR"JT-ajJ-图20ASCI传输模式的状态图上述状态图的一些解释:—“空闲”状态是没有发送和接收报文要处理的正常状态。—每次接收到“:”字符表示新报文的开始。如果在一个报文的接收过程中收到这个字符,则当前报文被认为不完整并被丢弃。然后,分配一个新接收缓冲区。—检测到帧结束之后,执行LRC计算和校验。然后,分析地址域来确定帧是否发往这个设备。如果不是发往这个设备,那么丢弃这个帧。为了减少接收处理时间,在接收到地址域而不需要等到整个帧结束,就可以分析地址域。6.5.2.2LRC校验在ASC]I模式中,报文包含一个差错校验域,该域是基于对全部报文内容执行的纵向冗余校验(LRC)计算结果,不包括起始“冒号”和结束CRLF对。无论单个字符报文使用何种奇偶校验,均应用 GB/Z19582.2-2004这种LRC校验。LRC域是一个字节,包含一个8位二进制值。发送设备计算LRC值,将LRC值附加到报文中。在接收报文过程中,接收设备重新计算LRC值,并将计算值与LRC域中接收到的实际值相比较。如果两个值不相等,则产生错误。对报文中的所有连续8位字节相加,忽略任何进位,计算LRC,然后求出其二进制补码。根据不包括报文起始“冒号”和报文结束CRLF对的整个ASCII报文域内容进行LRC。在ASC11模式中,LRC的结果被编码为两个字节的ASCU,并将其放置CRI.F之前的ASCII模式报文帧的结尾处。附录B含有LRC生成的详细实例。6.6差错校验方法标准Modbus串行链路的安全性是基于两种差错校验:—应该将奇偶校验(偶或奇)应用于每个字符。—必须将帧校验(LRC或CRC)应用于整个报文。在发送的设备(主站或从站)中生成字符校验和帧校验,并且在发送前将其附加于报文体。在接收时,设备(主站或从站)校验每个字符和整个报文。用户配置主站为在放弃事务处理前等待一个预定的超时间隔(响应超时)。设置这个间隔有足够的时间,以便任何从站正常地响应(单播请求)。如果从站检测到事务处理错误,则报文将不起作用。从站将不会对主站响应。因此,超时时间将达限,并且允许主站的程序处理错误。对不存在的从站设备寻址的报文也会产生超时错误。6.6.1奇偶检验用户可以配置设备使用偶(要求的)或奇校验或无校验(建议的)。这将确定如何设置每个字符的奇偶位。无论规定了偶校验还是奇校验,都是计算每个字符数据部分中为1的位的总数(ASCII模式有7个数据位,RTU模式有8个数据位)。然后,将奇偶位设置为0或1,以便产生为1的位的偶数或奇数。例如:RTU字符帧中包含的8个数据位是:11000101这个帧中为1的位的总数为4。如果使用偶校验,帧的奇偶位为。,使为1的位的总数仍然为偶数(4);如果使用奇校验,帧的奇偶位为1,使为1的位的总数为奇数(5)e当发送报文时,计算奇偶位,并将其附加到每个字符帧。接收的设备计算为1的位的数量,并且如果与设备配置不同,则设置错误标记(必须将Modbus串行链路上的所有设备配置成使用相同的奇偶校验方法)。奇偶校验只能检测到传输过程中一个字符帧中增加或丢失奇数个位的错误。例如:如果使用奇校验,含有3个为1的位的字符帧中丢失了2个为1的位,而结果仍然为奇数个为1的位。如果没有规定奇偶校验,不会传送奇偶位,也不能进行奇偶校验。传送一个附加的位来填充字符帧。6.6.2帧检验根据传输模式(RTU模式或ASCII模式)使用两种帧校验方法。—在RTU模式中,报文包含一个基于循环冗余校验(CRC)方法的差错校验域。CRC域校验整个报文的内容。无论单个字符报文使用何种奇偶校验,均应用这种CRC校验。—在ASCII模式中,报文包含一个基于纵向冗余校验(LRC)方法的差错校验域,不包括起始“冒号”和结束CRLF对。无论单个字符报文使用何种奇偶校验,均应用这种LRC校验。有关差错检验方法的详细内容见前面的章节。标准分享网www.bzfxw.com GB/Z19582.2-20047物理层7.1引言新的串行链路上的Modbus解决方案应该按照附录D中EIA/TIA-485标准(也称RS485标准)实现电气接口。该标准允许“两线配置”的点对点和多点系统。此外,一些设备可以实现“四线”RS485接口。设备还可以实现RS232接口。在这种Modbus系统中,一个主站设备和一个或几个从站设备在一个无源串行链路上进行通信。在标准的Modbus系统中,在一条由3根导线组成的干线电缆上连接所有设备(并行)。其中两条导线(“两线”配置)形成一对平衡双绞线,在这个双绞线上双向传送数据,典型的速率为9600bit/sa每台设备可按如下方法连接(见图21);—或是直接连接到干线电缆上,形成菊花链;—或是经分支电缆连接到一个无源分支器;—或是经专用电缆连接到一个有源分支器。在设备上,可以使用螺钉端子RJ45或9芯D型连接器与电缆连接(见7.5)07.2数据信号传输速率9600bit/s和19.2kbit/s是要求的。19.2kbit/s是要求的默认值。可以有选择地实现其他波特率:1200bit/s,2400bit/s,4800bit/s...38400bit/s,56kbit/s,115kbit/s.."..在发送的情况下,每种实现的波特率精度必须高于1%;在接收的情况下,必须允许2%误差。7.3电气接口7.3.1多点串行总线结构图21表示了Modbus多点串行链路系统中串行总线的总体结构。;主站:LTIDvITr犷甘图21串行总线结构Modbus多点串行链路系统是由主电缆(干线)和一些可能的分支电缆组成。在干线电缆的两端需要线路终端以使阻抗匹配(详细情况分别见7.3.2和7.3.3)0如图21所示,不同的实现可以在相同的Modbus串行链路系统中运行:—将集成通信收发器的设备通过无源分支器和分支电缆连接到干线上(例如:从站1和主站);—将没有集成通信收发器的设备通过有源分支器和分支电缆连接到干线上(有源分支器集成了收发器)(例如:从站2);—将设备以菊花链形式直接连接到干线电缆上(例如:从站n). GB/Z19582.2-2004采用下列约定:—干线间的接口称为ITr(干线接口);—设备和无源分支器间的接口称为IDv(分支接口);—设备和有源分支器间的接口称为AUI(附加单元接口)。注1:在某些情况下,可以直接将分支器连接到设备的IDv擂槽或AUI擂槽上,而不使用分支电缆。注2:一个分支器可以有多个IDv插槽来连接多台设备。当它是无源分支器时,称这个分支器为分配器。注3:当使用有源分支器时,可以通过AUI或ITr接口提供分支器电源。在下列章节中,将介绍ITr和IDv接口(详细情况分别见7.3.2和7.3.3),7.3.22线Modbus定义见图22和表2,串行链路上的Modbus解决方案应该依照附录D中EIA/TIA-485标准实现“2线”电气接口。在这个2线总线上,在任何时候只有一个驱动器有权发送信号。实际上,第三条导线还必须将总线上所有设备相互连接:公共端。「一笙矿一,:一厅D}------}R5vFIAfhRLLT图22通用的2线拓扑结构表2}EITrDO一{飞川D1*lMT.注1:对于线路终端(LT)、上拉和下拉电阻,见7.4.注2:在撰写与设备和分支器有关的文件(用户指南,连线指南,⋯⋯)时,必须使用DO,Dl和公共端的电路名称,以便易于互操作。注3:可以增加可选的电气接口,例如:电源:5V-V24Vd.c.。端口模式控制:PMC电路(TTL兼容)。当需要的时候,可由这个外电路和/或其他方式(例如:设备上的开关)来控制端口模式。在第一种情况下,尽管一个开路PMC将要求2线Modbus模式,但实现过程中,在PMC上的低电平将把端口转换成4线Modbus模式或RS232-Modbus模式。标准分享网www.bzfxw.com GB/Z19582.2-20047.3.3可选的4线Modbus定义见图23和表30这种Modbus设备同样允许可选择实现2对总线((4线)单向数据传输。从站只能接收主对总线(RXDI-RXDO)上的数据,而主站只能接收从对总线(TXDl-TXDO)上的数据。实际上,公共端作为第5条导线必须把4线总线上的所有设备相互连接。像2线Modbus那样,在任何时刻只有一个驱动器有权力发送数据。这种设备必须依照EIA/TIA-485在一对平衡线对上实现接收器,并且依照附录D中EIA/TIA-485在另一对平衡线对上实现发送器。(有时候这种解决方式被称为“RS422",这是错误的:RS422标准不支持一个平衡线对上的多个驱动器。){一谨石一飞扮}:;DR"5VTft5VLT;__丛蜘_;,__丛iMn__,图23通用的4线拓扑结构表3阵仁节一注1:对于线路终端(LT)、上拉和下拉电阻,见7.4,注2:只有在实现4线Modbus选项时,表3中(1)所示的那些电路才是要求的。注3:在撰写与设备和分支器有关的文件(用户指南,连线指南,⋯⋯)时,必须使用这5种要求电路的名称,以便易于互操作。注4:可以增加可选的电气接口,例如:1)电源:5V-24Vd.c.。2)PMC电路:见7.3.2端口模式控制的注(在2线Modbus电路定义中)。 GB/Z19582.2-20047.3.3.14线接线系统中的要点见表40在这种4线Modbus中,主站设备和从站设备均有与5种相同要求电路的lDv接口。由于主站必须:—接收从站在从对总线(TXDl-TXDO)上发送的数据;—在主对总线(从站接收的RXDl-RXDO)上发送数据。表4Xt,A1*共华仁}通过交叉电缆实现这种交叉,但是在2线系统中这种交叉电缆的连接可能会造成损坏。为了连接4线主站设备(带有Modbus连接器),最好的解决方法是使用含有交叉功能的分支器。7.3.3.24线与2线接线的兼容性为了将带有2线物理接口的设备接人一个现有4线系统中,可以对4线接线系统进行下列修改:—应将TXDO信号与RXDO信号连接,使之成为DO信号。—应将TXD1信号与RXD1信号连接,使之成为Dl信号。—应重新安排上拉、下拉电阻和线路终端电阻以正确地适应DO,Dl信号的要求。图24给出一个使用2线接口的从站2和3能与使用4线接口的主站和从站1一起工作的实例。{一霍牙一飞;11{5v:__丛犯_:1__瑟处之__;乏_-丛竺3-图24将4线接线系统转换为2线接线系统为了将带有4线物理接口的设备接人一个现有2线系统中,可以按下述要求安排该新接人设备的4线接口,在每个4线设备接口上:—应将TXDO信号与RXDO信号连接,然后将其连接到干线的DO信号上;标准分享网www.bzfxw.com GB/Z19582.2-2004—应将TXD1信号与RXD1信号连接,然后将其连接到干线的D1信号上。图25给出一个使用4线接口的从站2和3与使用2线接口的主站和从站1一起工作的实例。:一-iv一:一1,}1-;AM2DlDi0-D-一图25将带4线接口的设备连接到2线接线系统7.3.4RS232-Modbus定义某些设备可以在DCE和DTE之间实现RS232接口(见表5)0表5DRTCDRTCXSTDRS寸-W*nADTE-xX*Pc*O&}cM1;r1}i}9f}l<}tJ1V}tM}9}1(1kDCEPIDTE)I,注1:标有“X”的信号只在实现RS232-Modbus选项时才要求的。注2:信号符合EIA/TIA-232标(见附录Do注3:每个TXD必须与其他设备的RXD连接。注4:RTS可以与其他设备的CTS连接。注5:DTR可以与其他设备的DSR连接。注6:可以增加可选的电气接口,例如:电源:5V-24Vd.c.。PMC电路:见7.3.2可选电路的注(在2线Modbus电路定义中)。7.3.5RS232-Modbus要求这种可选串行链路上的Modbus应该只应用于短距离(一般小于20m)的点对点的互连。同时,必须符合附录D中EIA/TIA-232标准:—电路定义;—最大线路对地电容量((2500pF,对于100pF/m的电缆,长度为25m).关于屏蔽和使用5类电缆的可能性,见7.so设备提供的文件必须指出:—该设备是否必须作为DCE或DTE; GB/Z19582.2-2004一一若是上述情况,可选的电路必须如何工作。7.4多点系统要求对于任何EIA/TIA-485多点系统,无论是2线配置还是4线配置,均适用下列要求。7.4.1无中继器情况下,最大设备数f在任何没有中继器的RS485-Modbus系统中,总是允许最多有32台设备。与下列项目有关:—所有可能的地址;—设备使用的RS485单元负载总量;—以及需要的线路极性偏置。一个RS485系统可以容纳大量的设备。有些设备在没有中继器情况下允许在设备数大于32台的RS485-Modbus串行链路上运行。在这种情况下,必须为这些Modbus设备提供文件,说明没有中继器时能允许有多少个这类设备。也可以在两个重负载的RS485-Modbus之间使用中继器。7.4.2拓扑结构没有配置中继器的RS485-Modbus有一个与所有设备直接连接(菊花链)或通过短分支电缆连接的干线电缆。干线电缆,又称总线,可以是很长。它的两端必须连接在线路终端上。也可以在多个RS485-Modbus之间使用中继器。7.4.3长度必须限制干线电缆的端到端长度。最大长度与波特率、电缆(规格、电容或特性阻抗)、菊花链上的负载数量以及网络配置((2线或4线制)有关。对于最高波特率为9600bit/s,AWG26(或更粗)规格的电缆来说,其最大长度为1000m。在图24(4线制用作2线制的系统中)中所示的特殊情况下,必须将最大长度除以2,分支必须短,不能超过20m。如果使用n个分支的多端口分支器,每个分支最大长度必须限制为40m除以no7.4.4接地形式必须将“公共端”电路(信号与可选电源的公共端)直接连接到保护地上,最好是整条总线只接在一点。通常,该点可选在主站上或其分支器上。7.4.5线路终端沿线路传播的移动信号波遇到不连续的阻抗,会在传输线路中产生反射。为了使从RS485电缆端的反射最小,要求在总线接近两端处放置线路终端。由于传播是双向的,故在线路两端配置终端是非常重要的,但是,在一个无源DO-Dl平衡线对上放置的LT不允许超过2个,也不允许在分支电缆上放置任何LT,每个线路终端必须连接在平衡线DO和Dl的两条导线之间。线路终端可以是150o(0.5W)的电阻。当双绞线极性偏置时,较好的选择是电容((InF,最低10V)与120WO.25W)电阻串联。在4线系统中,在总线的两端,每一对线都必须有终端。在RS232互联中,不应该连接线路终端。7.4.6线路极性偏置当在RS485平衡线对上没有数据传输时,这个线路没有被驱动,因此容易受到外部噪声或干扰的影响。为确保其接收器处于一个稳定状态,在没有数据信号出现时,一些设备需要使网络偏置。每个Modbus设备都必须用文件说明:一一该设备是否需要线路极性偏置;标准分享网www.bzfxw.com GB/Z19582.2-2004—该设备是否执行或可能实现这样的线路极性偏置。如果一个或多个设备需要线路极性偏置,则必须在该RS485平衡线对上连接一对电阻:—D1线上的上拉电阻连接至5V电压;—DO线上的下拉电阻连接至公共端电路。这些电阻的值必须在45051-6500之间。在串行链路总线上,650a的电阻值可以允许接有较多设备。在这种情况下,必须在整个串行总线的一个位置实现双绞线的极性偏置。通常,将该点选在主站或其分支器上。其他设备必须不实现任何极性偏置。在这类Modbus串行链路上允许的最多设备数比无极性偏置的Modbus系统少4个。7.5机械接口在IDv与ITr两种连接中可以使用螺钉端子。必须向用户提供有关每个信号确切位置的所有信息,这些信号名称与7.3“电气接口”所述一致。如果一台设备上使用一个RJ45(或小型DIN或D型)连接器作为Modbus机械接口,则必须选用屏蔽的母连结器。因而,电缆终端必须带有屏蔽的公连结器。7.5.12线Modbus连接器的引脚见图26和图27.设备端一母连结器前。。视,,顶.视一II一一.刃刃1R万万t一一II公共端-叶‘油绷幽耀_______________」一II气-尸II一D。O1-aes1翻侧口侧翻I图262线Modbus中使用的RJ45连结器(要求的插脚引线)母连接器(前视)公连接器(前视)黝耀撇一蘸黝F}:-图279针D型连接器还可以使用螺钉型的连接器。如果一台标准Modbus设备使用砌45或9针D型连接器,对每种实现电路必须按照表6引脚布局。表6价士产} GB/Z19582.2-20047.5.2可选的4线Modbus连接器引脚见图28和图290设备端一母连结器前视顶视_“”端一s一____TXD。一一遗鳖岔----一TXDl钾曰目脚鑫RXD1一-抽目肺目如二RXDO一-】尸~图284线Modbus上的RJ45连接器(要求的插脚引线)母连接器(前视)公连接器(前视)耀纂鬓一一蘸撇鬓一图299针D型连接器还可以使用螺钉型的连接器。如果一台4线Modbus设备使用RJ45或9针D型连接器,对每种实现电路必须按照表7引脚布局。表7三目注:当在同一个接口上既有2线又有4线的配置时,必须使用4线接线标记。7.5.3可选RS232-Modbus的RJ45和9针D型连接器引脚如果一个RS232-Modbus设备使用RJ45或9针D型连接器,对每种实现电路必须按照表8引脚布局。标准分享网www.bzfxw.com GB/Z19582.2-2004表8一弃州注:一些DCE的引脚与具有相同名称的DTE引脚交叉:在DTE(例如:PC)和DCE(例如:PLC)之间必须使用引脚到引脚的直接连线电缆(无任何交叉)。7.6电缆串行链路上的Modbus电缆必须是屏蔽的。在电缆两端,其屏蔽必须连接到保护地上。若在这个端部使用了连接器,则将连接器外壳连接到电缆屏蔽罩上。RS485-Modbus必须使用一对平衡线对(用于DO-Dl)和第三根线(用于公共端)。此外,在4线Modbus系统中必须使用第二对平衡线对(用于RXDO-RXDI)o若使用4对线的5类电缆来连接,应在撰写用户指南时对用户提醒:“在2线Modbus系统中,交叉电缆的连接可能引起故障”。为减少电缆连接中的错误,在RS485-Modbu。电缆中,建议连线采用色彩标记,见图300阵亡洲图30RS485Modbus连线的色彩标记注:5类电缆使用其他颜色。对RS485-Modbus来说,必须选择足够宽的线缆直径以便允许使用最大长度((1000m).AGW24能够满足Modbus数据传输的需要。RS485-Modbus使用5类电缆,最大长度可达600m.对RS485系统中使用的平衡线对,特别是对19200bit/s和更高波特率,可以首选高于100SZ的特性阻抗。7.7可视诊断对于可视诊断来说,必须用LED(发光两极管)指示通信状态和设备状态,见表9:表9布31p7}>iAx