《工业系统中常用通讯协议.ppt》由会员分享,可在线阅读,更多相关《工业系统中常用通讯协议.ppt(44页珍藏版)》请在三一办公上搜索。
1、自控系统中常用通讯MODBUS协议2009年1月15日,EIA Electronic Industries Association美国电子工业协会TIATelecommunications Industry Association电信工业协会OSIOpen System Interconnection开放系统互联MODBUSMODICOM 公司定义的通讯协议ADUApplication Data Unit应用数据单元PDUProtocol Data Unit协议数据单元HDLCHigh Data Link Control高级数据链路控制IPInternet Protocol互联网协议TCPTr
2、ansport Control Protocol传输控制协议CSMA/CDCarrier Sense Multiple Access/Collision Detect载波监听多路访问/冲突检测IEEE754浮点数表示标准,名 词,网络结构模型MODBUS协议串行接口 SIRS485可靠性,网络结构模型Network Model,通讯网络结构模型OSI(一)Open System Interconnect,7、应用层(Application Layer)应用层确定进程之间通信的性质,以满足用户的需要。不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,为完成一些为进行信
3、息交换所必需的功能。应用层为操作系统或网络应用程序提供访问网络服务的接口。典型的协议:Telnet FTP HTTP SNMP6、表示层(Presentation Layer)主要用于处理两个通信系统中交换信息的表示方式。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能。5、会话层(Session Layer)在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式。本层管理主机之间的会话进程,负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。,通讯网络结构模型OSI(二)Open System I
4、nterconnect,4、传输层(Transport Layer)传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。传输层还要处理端到端的差错控制和流量控制问题。包括全双工或半双工、流控制和错误恢复服务;本层的数据称为“数据段”。传输层协议的代表包括:TCP UDP SPX等。3、网络层(Network Layer)本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据;网络层负责对子网间的数据包进行路由选择。本层的数据称为“数据包”。网络层协议的代表包括:IP IPX RIP OSPF等,通讯网络结构模型OSI(三)Open System Interconne
5、ct,2、数据链路层(DataLink Layer)在此层将数据分帧,并处理流控制。指定拓扑结构,物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。本层的数据称为“数据帧”。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。1、物理层(Physical Layer)物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。在这一层,数据的单位称为比特(bit)。物理层定义的典型规范代表包括:EIA/TIA RS-232,EIA/TIA RS-449,V.35,RJ-
6、45;,MODBUS 标 准 分 类,MODBUS分为两种:串行链路上的MODBUS(MODBUS on Serial Line)TCP/IP上的MODBUS(MODBUS on TCP/IP),串行链路上的MODBUSTIA/EIA-232-FTIA/EIA-485-A,TCP/IP 上的 MODBUSRFC793和RFC791,MODBUS on Serial与OSI层次对应关系,MODBUS协议的各个层次只采用了OSI层次模型中的三层:物理层,数据链路层和应用层。各层都有各层相应的标准规范。物理层标准:EIA/TIA-485(或EIA/TIA-232)数据链路层标准:MODBUS Ser
7、ial Line Protocol MODBUS串行线协议应用层标准:MODBUS Application Protocol MODBUS应用协议,MODBUS on TCP与OSI层次对应关系,MODBUS协议的各个层次只采用了OSI层次模型中的三层:物理层,数据链路层和应用层。各层都有各层相应的标准规范。物理层:在多种物理媒体上以多种速率采用 CSMA/CD 访问方式 10Base2,10Base5,10BaseTX,10BaseFX数据链路层:IEEE 802.3逻辑链路控制 LLC(Logical Link Control)子层媒体接入控制 MAC(Medium Access Cont
8、rol)子层。应用层标准:MODBUS Application Protocol MODBUS应用协议,MODBUS典型网络结构,MODBUS协 议,定义与PDU结构,定义:MODBUS协议是一项应用层报文传输协议,用于在通过不同类型的总线或网络所连接的设备之间的客户机/服务器通讯。MODBUS协议定义了一个与基础通讯层无关的简单协议数据单元(PDU),PDU由通讯发起方负责创建,发起方在协议定义中称为客户机通讯接收方负责对PDU的应答,通讯接收方在协议定义中称为服务器一次的通讯过程称为事务处理,MODBUS on SerialPDU长度为253字节MODBUS on TCPPDU长度为249
9、字节,无错误的事务处理过程事务正常完成,服务器返回客户机所需的数据,错误的事务处理过程事务异常完成,服务器返回错误代码指示错误原因。设置请求功能码的MSB为1,因此一般情况下MODBUS协议中80H以上功能码保留。,功能码(FUNCTION CODE)功能码定义某一个PDU的功能分为公共功能码和用户功能码公共功能码唯一的被较好定义的MODBUS组织认可的功能码用户功能码不保证唯一的,各用户不同的。只能定义6572和100110范围内的功能码。,常用的功能码01H,02H,03H,04H,05H,06H,16H,23H等,常用数据类型(Data Type)bit比特类型,通常用于表示开关量状态。
10、WORD字类型,通常表示一个数。浮点数可以采用IEEE754格式,其长度为32bits。占2个字长。在显示时,注意高低位是否需要交换。,MODBUS RTU报文(PDU)格式(Format of MODBUS RTU PDU),在不同的模式下,PDU的内容是不一样的。RTU模式每个字节为1个16进制的数(0FFH)ASCII模式每个字节为ASCII码(09,AF),RTU模式下的报文(PDU)内容请求PDU正常应答PDU异常应答PDU,异常错误子码1(Error Sub Code),异常错误子码2(Error Sub Code 2),串行接口(Serial Interface),MODBUS主
11、/从站协议基本原理,MODBUS串行链路协议与OSI模型的对应关系,MODBUS串行链路协议是一个主从协议,主节点发送请求,子节点的响应;在任何时刻,同一个网络上有且只能有一个主节点存在,有多个子节点(地址1247)。子节点在没有收到主节点的请求时,是沉默的。任何时刻,子节点之间是互相沉默的。,MODBUS主/从站协议基本原理,通讯模式,主站与从站之间有两种通讯模式,单播模式主节点指定地址的方式请求数据,子节点根据请求,向主节点返回相应的数据。在这种情况下,MODBUS通讯事务只包含2个报文(主节点请求报文和子节点应答报文)。子节点在单播模式中的地址必须在网络上是唯一的(1247)。,多播模式
12、主节点对所有子节点进行请求,子节点沉默,仅仅根据请求完成相应的自身功能。在这种情况下,MODBUS通讯事务只包含1个报文(主节点请求报文)。子节点在多播模式下地址可以不用考虑,但是子节点必须能够相应地址0的请求。0在协议中定义为多播地址。,MODBUS地址规则,MODBUS地址范围地址域长度为1字节,因此可能的寻址范围0255,MODBUS协议规定地址范围 广播地址用于向所有子节点进行请求(0)子节点地址同一网络中唯一表示子节点的地址(1247)保留地址MODBUS协议保留的地址(248255),协议规定所有子节点必须识别广播地址0主节点在网络上没有也不需要地址,MODBUS 数 据 帧,MO
13、DBUS是应用层协议,只定义协议数据单元PDU。,MODBUS on Serial是数据链路层协议,需要定义目的地址和差错效验等功能,因此定义了应用数据单元ADU。,根据数据链路层协议的不同,ADU的内容是不同的。,MODBUS主/从站状态图,主站状态图,“空闲“无等待的请求“等待应答“请求发出后的状态“应答检查”检查应答数据“错误处理“应答错误处理“处理应答”处理正常的应答数据,MODBUS主/从站状态图,从站状态图,“空闲“无等待的请求“检查请求“请求发出后的状态“格式化正常应答”形成正常应答数据并发送,分单播模式和多播模式“格式化错误应答”形成错误应答数据并发送“非本节点地址”请求地址不
14、是本节点地址,忽略请求,回到空闲状态,RTU模式允许字符:0 x00h0 xFFh8位二进制位(bit)1位起始位1位奇偶校验位1/1.5位停止位奇偶校验位可选LSB-MSB最大帧长:256字节,数据长度252字节,ASCII模式允许字符:09,AF7位数据位1位起始位1位奇偶校验位1位停止位奇偶校验位可选LSB-MSB最大帧长:256字节,数据长度是RTU模式的2倍,两种MODBUS串行模式,RTU模式起始字符:3.5字符地址域:1 Byte,寻址范围0247功能码域:1 Byte,0 x00h0 xFFh数据域:N Bytes,最长252Bytes效验域:2 Bytes(1 Word),C
15、RC方式CRC循环冗余效验(Cyclical Redundancy Checking)结束字符:3.5字符,ASCII 模式起始字符:1字符,:(冒号)地址域:2个字符功能码域:2个字符,00FF(char)数据域:最长2522字符效验域:2 字符,LRC方式LRC纵向冗余效验(Longitudinal Redundancy Checking)结束字符:CR.LF(回车和换行符),2字符,MODBUS报文帧,RTU模式下的数据流,RTU方式没有明显的起止符号,因此必须规定时间的要求由发送设备将Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文
16、结束。不完整的报文必须能够被检测到,错误标志必须作为结果被设置。在 RTU 模式,报文帧由时长至少为3.5 个字符时间的空闲间隔区分。这个时间区间通常被称作t3.5。,MODBUS差错控制,RTU模式循环冗余校验(CRC-Cyclical Redundancy Checking)由两个8 位字节组成的一个16 位值CRC 域检验整个报文的内容报文中附加低字节,然后是高字节,ASCII模式纵向冗余校验(LRC-LongitudinalRedundancy Checking)LRC 为一个8 位二进制值检验包括除起始“冒号”和结尾 CRLF的整个 ASCII 报文域的内容,差错控制方法奇偶校验(偶
17、或奇)每个字符采用帧检验(LRC or CRC)整个报文报文有无奇偶校验,均执行帧检验,物理层电气接口,MODBUS协议默认的通讯速率:19200bps可用速率:4800bps115Kbps每种波特率对发送方,要求其精度必须高于1%,即1900819392bps对接收方,必须允许2%误差,即1881619584bps常用速率:9600bps(Micro-motion默认速率),电气物理接口网络结构,有源接口和无源接口电气接头分为几种:主干接口主干间接口ITr分支接口设备与无源接口之间的接口IDv附件单元接口设备与有源接口的接口AUI主要连接方式:RS485,RS422,RS232,电气物理接口
18、2线MODBUS定义,串行链路上的MODBUS依照EIA/TIA-485 标准实现“2-线”电气接口在这个2 线-总线上,在任何时候只有一个驱动器有权发送信号第三条导线把总线上所有设备相互连接:公共地,电气物理接口4线MODBUS定义,从对总线(TXD1-TXD0)上接收来自从站的数据,主对总线(RXD1-RXD0)上发送数据,由从站接收,电气物理接口多点系统需求,多点系统需求无中继器情况下,最大设备数量:32台无配置中继器的RS-485 MODBUS 有一个主干电缆,所有的从设备沿着它直接(菊花链)或通过短的分支电缆连接起来长度主干电缆端到端的长度必须有限制。其长度由波特率,电缆(规格,电容
19、或特征阻抗),菊花链上的负载数,以及网络配置(2线或4线制)所决定接地公共地电路(信号与可选电源公共地)必须直接连到保护地上,最好是整条总线只接在一点终端电阻沿线路传播的移动信号波遇到不连续的阻抗,造成在传输线路中的反射。为了使在RS-485电缆终端的反射最小,需要在接近总线两端点处放置线路终端。,机械物理接口,各种物理连接器的接线定义,电缆连接要求,RS485-MODBUS 必须使用一对平衡对线(用于D0-D1),第三根导线(用于公共地)在4 线-MODBUS 系统中还必须使用第二对平衡对线(用于RXD0-RXD1)。对RS485-MODBUS,必须选择足够大的连线直径以达到最大长度(100
20、0m)AGW24对MODBUS数据总是满足的在RS485-MODBUS 中使用第5 类电缆,最大长度可达600m.在RS485-系统中使用的平衡对线,建议特征阻抗高于100欧姆,MODBUS 串行链路电缆必须屏蔽,RS485可靠性(RS485 Reliability)RS485电气特性常见问题及处理,RS485可靠性电气特性(Electronic Characteristic),RS-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线。规格要求:1、接收器的输入电阻Rin12k2、驱动器能输出7V的共模电压3、输入端的电容Cin50pF4、在节点数为32个,配置了120的终端电阻的情
21、况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)5、接收器的输入灵敏度为200mV即(V+)-(V-)200V,表示信号0;(V+)-(V-)200mV,表示信号1,RS485可靠性,在工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压(即大于+12V或小于-7V时),接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备。用一对双绞线将各个接口的A、B端连接起来,而不对RS-485通信链路的信号接地,在某些情况下也可以工作,但
22、给系统埋下了隐患。RS-485接口采用差分方式传输信号并不需要对于某个参照点来检测信号系统,只需检测两线之间的电位差就可以了。但应该注意的是收发器只有在共模电压不超出一定范围(-7V至+12V)的条件下才能正常工作。当共模电压超出此范围,就会影响通信的可靠直至损坏接口。当发送器A向接收器B发送数据时,发送器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统存在着地电位差VGPD,那么接收器输入端的共模电压就会达到VCM=VOS+VGPD。RS-485标准规定VOS3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号致使接收器共模输入VCM超出正常围,在信号线上产
23、生干扰电流轻则影响正常通信,重则损坏设备。解决此类问题的方法是通过DC-DC将系统电源和RS-485收发器的电源隔离;通过光耦将信号隔离,彻底消除共模电压的影响。实现此方案的途径可分为:光隔离器(光耦)、集成芯片。用1条线或者屏蔽线将所有485设备的GND地连接这样可以避免所有设备之间存在影响通讯的电势差。,RS485可靠性常见问题一,1、信号A和B的判断。B线应该永远是在空闲状态下电压更高的那一根。A线相当于,B线相当于+。可在网络空闲的状态下用电压表检测。如果B线没有比A线电压更高,那么就会存在连接问题。,2、若出现系统完全瘫痪,大多因为某节点芯片的VA、VB对电源击穿,使用万用表测VA、
24、VB间差模电压为零,而对地的共模电压大于3V,此时可通过测共模电压大小来排查,共模电压越大说明离故障点越近,反之越远。,3、系统基本正常但偶尔会出现通信失败。一般是由于网络施工不合理导致系统可靠性处于临界状态,最好改变走线或增加中继模块。,4、RS-485支持半双工或全双工模式。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络,最好采用一条总线将各个节点串接起来。从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失
25、真及噪声等影响所限制。当数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,则电缆长度被限制在1200M。实际上,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。,5、RS-485总线在实际工程中总是出现一些接线的问题,需要注意的是在接传输线时一定要用同样的双绞线或者同样的电缆,一段使用双绞线,由于双绞线长度不够或者在中间接上一段电话线或者是其他的线,这样阻抗就不连续,产生很大的反射信号,通信的是不能正常进行的。,RS485可靠性常见问题二,6、影响485总线的负载能力的因素:通讯距离,线材的品质,波特率,转换器供电能力,485设备的防雷保护,485芯片的选择。如果485总线上的485设备比较多的话,建议使用带有电源的485转换器,无源型的485转换器由于时从串口窃电,供电能力不是很足,负载能力不够。选用好的线材,如有可能使用尽可能低的波特率,选择高负载能力的485芯片,都可以提高485总线的负载能力。485设备的防雷保护中的防雷管会吸收电压,导致485总线负载能力降低,去掉防雷保护可以提高485总线负载能力。,讨论,