您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 工业系统中常用通讯协议
自控系统中常用通讯MODBUS协议2009年1月15日EIA——ElectronicIndustriesAssociation美国电子工业协会TIA——TelecommunicationsIndustryAssociation电信工业协会OSI——OpenSystemInterconnection开放系统互联MODBUS——MODICOM公司定义的通讯协议ADU——ApplicationDataUnit应用数据单元PDU——ProtocolDataUnit协议数据单元HDLC——HighDataLinkControl高级数据链路控制IP——InternetProtocol互联网协议TCP——TransportControlProtocol传输控制协议CSMA/CD——CarrierSenseMultipleAccess/CollisionDetect载波监听多路访问/冲突检测IEEE754——浮点数表示标准名词网络结构模型MODBUS协议串行接口SIRS485可靠性网络结构模型NetworkModel通讯网络结构模型OSI(一)OPENSYSTEMINTERCONNECT7、应用层(ApplicationLayer)应用层确定进程之间通信的性质,以满足用户的需要。不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,为完成一些为进行信息交换所必需的功能。应用层为操作系统或网络应用程序提供访问网络服务的接口。典型的协议:TelnetFTPHTTPSNMP6、表示层(PresentationLayer)主要用于处理两个通信系统中交换信息的表示方式。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能。5、会话层(SessionLayer)在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式。本层管理主机之间的会话进程,负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。通讯网络结构模型OSI(二)OPENSYSTEMINTERCONNECT4、传输层(TransportLayer)传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。传输层还要处理端到端的差错控制和流量控制问题。包括全双工或半双工、流控制和错误恢复服务;本层的数据称为“数据段”。传输层协议的代表包括:TCPUDPSPX等。3、网络层(NetworkLayer)本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据;网络层负责对子网间的数据包进行路由选择。本层的数据称为“数据包”。网络层协议的代表包括:IPIPXRIPOSPF等通讯网络结构模型OSI(三)OPENSYSTEMINTERCONNECT2、数据链路层(DataLinkLayer)在此层将数据分帧,并处理流控制。指定拓扑结构,物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。本层的数据称为“数据帧”。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。1、物理层(PhysicalLayer)物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。在这一层,数据的单位称为比特(bit)。物理层定义的典型规范代表包括:EIA/TIARS-232,EIA/TIARS-449,V.35,RJ-45;MODBUS标准分类MODBUS分为两种:串行链路上的MODBUS(MODBUSonSerialLine)TCP/IP上的MODBUS(MODBUSonTCP/IP)串行链路上的MODBUSTIA/EIA-232-FTIA/EIA-485-ATCP/IP上的MODBUSRFC793和RFC791MODBUSonSerial与OSI层次对应关系MODBUS协议的各个层次只采用了OSI层次模型中的三层:物理层,数据链路层和应用层。各层都有各层相应的标准规范。物理层标准:EIA/TIA-485(或EIA/TIA-232)数据链路层标准:MODBUSSerialLineProtocolMODBUS串行线协议应用层标准:MODBUSApplicationProtocolMODBUS应用协议MODBUSonTCP与OSI层次对应关系MODBUS协议的各个层次只采用了OSI层次模型中的三层:物理层,数据链路层和应用层。各层都有各层相应的标准规范。物理层:在多种物理媒体上以多种速率采用CSMA/CD访问方式10Base2,10Base5,10BaseTX,10BaseFX数据链路层:IEEE802.3逻辑链路控制LLC(LogicalLinkControl)子层媒体接入控制MAC(MediumAccessControl)子层。应用层标准:MODBUSApplicationProtocolMODBUS应用协议MODBUS典型网络结构MODBUS协议定义与PDU结构定义:MODBUS协议是一项应用层报文传输协议,用于在通过不同类型的总线或网络所连接的设备之间的客户机/服务器通讯。MODBUS协议定义了一个与基础通讯层无关的简单协议数据单元(PDU)PDU由通讯发起方负责创建,发起方在协议定义中称为客户机通讯接收方负责对PDU的应答,通讯接收方在协议定义中称为服务器一次的通讯过程称为事务处理MODBUSonSerial——PDU长度为253字节MODBUSonTCP——PDU长度为249字节无错误的事务处理过程——事务正常完成,服务器返回客户机所需的数据错误的事务处理过程——事务异常完成,服务器返回错误代码指示错误原因。设置请求功能码的MSB为1,因此一般情况下MODBUS协议中80H以上功能码保留。功能码(FUNCTIONCODE)功能码——定义某一个PDU的功能分为公共功能码和用户功能码公共功能码——唯一的被较好定义的MODBUS组织认可的功能码用户功能码——不保证唯一的,各用户不同的。只能定义65~72和100~110范围内的功能码。常用的功能码——01H,02H,03H,04H,05H,06H,16H,23H等常用数据类型(DataType)bit——比特类型,通常用于表示开关量状态。WORD——字类型,通常表示一个数。浮点数可以采用IEEE754格式,其长度为32bits。占2个字长。在显示时,注意高低位是否需要交换。MODBUSRTU报文(PDU)格式(FormatofMODBUSRTUPDU)在不同的模式下,PDU的内容是不一样的。RTU模式——每个字节为1个16进制的数(0~FFH)ASCII模式——每个字节为ASCII码(0~9,A~F)RTU模式下的报文(PDU)内容请求PDU正常应答PDU异常应答PDU异常错误子码1(ErrorSubCode)异常错误子码2(ErrorSubCode2)串行接口(SerialInterface)MODBUS主/从站协议基本原理MODBUS串行链路协议与OSI模型的对应关系MODBUS串行链路协议是一个主从协议,主节点发送请求,子节点的响应;在任何时刻,同一个网络上有且只能有一个主节点存在,有多个子节点(地址1~247)。子节点在没有收到主节点的请求时,是沉默的。任何时刻,子节点之间是互相沉默的。MODBUS主/从站协议基本原理通讯模式主站与从站之间有两种通讯模式单播模式——主节点指定地址的方式请求数据,子节点根据请求,向主节点返回相应的数据。在这种情况下,MODBUS通讯事务只包含2个报文(主节点请求报文和子节点应答报文)。子节点在单播模式中的地址必须在网络上是唯一的(1~247)。多播模式——主节点对所有子节点进行请求,子节点沉默,仅仅根据请求完成相应的自身功能。在这种情况下,MODBUS通讯事务只包含1个报文(主节点请求报文)。子节点在多播模式下地址可以不用考虑,但是子节点必须能够相应地址0的请求。0在协议中定义为多播地址。MODBUS地址规则MODBUS地址范围——地址域长度为1字节,因此可能的寻址范围0~255MODBUS协议规定地址范围广播地址——用于向所有子节点进行请求(0)子节点地址——同一网络中唯一表示子节点的地址(1~247)保留地址——MODBUS协议保留的地址(248~255)协议规定所有子节点必须识别广播地址0主节点在网络上没有也不需要地址MODBUS数据帧MODBUS是应用层协议,只定义协议数据单元PDU。MODBUSonSerial是数据链路层协议,需要定义目的地址和差错效验等功能,因此定义了应用数据单元ADU。根据数据链路层协议的不同,ADU的内容是不同的。MODBUS主/从站状态图主站状态图“空闲“——无等待的请求“等待应答“——请求发出后的状态“应答检查”——检查应答数据“错误处理“——应答错误处理“处理应答”——处理正常的应答数据MODBUS主/从站状态图从站状态图“空闲“——无等待的请求“检查请求“——请求发出后的状态“格式化正常应答”——形成正常应答数据并发送,分单播模式和多播模式“格式化错误应答”——形成错误应答数据并发送“非本节点地址”——请求地址不是本节点地址,忽略请求,回到空闲状态RTU模式允许字符:0x00h~0xFFh8位二进制位(bit)1位起始位1位奇偶校验位1/1.5位停止位奇偶校验位可选LSB-MSB最大帧长:256字节,数据长度252字节ASCII模式允许字符:0~9,A~F7位数据位1位起始位1位奇偶校验位1位停止位奇偶校验位可选LSB-MSB最大帧长:256字节,数据长度是RTU模式的2倍两种MODBUS串行模式RTU模式起始字符:≥3.5字符地址域:1Byte,寻址范围0~247功能码域:1Byte,0x00h~0xFFh数据域:NBytes,最长252Bytes效验域:2Bytes(1Word),CRC方式CRC——循环冗余效验(CyclicalRedundancyChecking)结束字符:≥3.5字符ASCII模式起始字符:1字符,:(冒号)地址域:2个字符功能码域:2个字符,00~FF(char)数据域:最长252×2字符效验域:2字符,LRC方式LRC——纵向冗余效验(LongitudinalRedundancyChecking)结束字符:CR.LF(回车和换行符),2字符MODBUS报文帧RTU模式下的数据流RTU方式没有明显的起止符号,因此必须规定时间的要求由发送设备将Modbus报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到,错误标志必须作为结果被设置。在RTU模式,报文帧由时长至少为3.5个字符时间的空闲间隔区分。这个时间区间通常被称作t3.5。MODBUS差错控制RTU模式循环冗余校验(CRC-CyclicalRedundancyChecking)由两个8位字节组成的一个16位值CRC域检验整个报文的内容报文中附加低字节,然后是高字节ASCII模式纵向冗余校验(LRC-LongitudinalRedundancyChecking)LRC为一个8位二进制值检验包括除起始“冒号”和结尾CRLF的整个ASCII报文域的内容差错控制方法奇偶校验(偶或奇)——每个字符采用帧检验(LRCorCRC)——整个报文报文有无奇偶校验,均执行帧检验物理层——电气接口MODBUS协议默认的通讯速率:19200bps可用速率:4800bps~115Kbps每种波特率对发送方,要求其精度必须高于1%,即19008~19392bps对接收方,必须允许2%误差,即18816~19584bps常用速率:9600bps(Micro-motion默认速率)电气物理接口——网络结构有源接口和无源接口电气接头分为几种:主干接口——主干间接口ITr分支接口——设备与无源接口之间的接口IDv附件单元接口——设备与有源接口的接口AUI主要连接方式:RS485,RS422,RS23
本文标题:工业系统中常用通讯协议
链接地址:https://www.777doc.com/doc-4004890 .html