第7章 可编程控制器的通信及通信网络 7.1 可编程控制器通信及网络基础 7.2 PLC通信协议 7.3 S7-200的通信方式 第7章 可编程控制器的通信及通信网络 7.1 可编程控制器通信及网络基础 7.2 PLC通信协议 7.3 S7-200的通信方式 7.4 S7-200的网络通信
7.1 可编程控制器通信及网络基础 PLC通信是指PLC与PLC、PLC与计算机、PLC与现场设备或远程I/O之间的信息交换。PLC通信的任务就是将地理位置不同的PLC、计算机、各种现场设备等,通过通信介质连接起来,按照规定的通信协议,以某种特定的通信方式高效率地完成数据的传送、交换和处理。 7.1.1 网络通信协议基础 1. OSI开放系统互联基本参考模型 图7-1 OSI参考模型 计算机网络通信系统是非常复杂的系统,计算机之间相互通信涉及到许多复杂的技术问题,比如网络阻塞、数据损坏、数据重复以及乱序、硬件失效的检测、寻址以及不同系统不同类型数据的交换等等。
为实现计算机网络通信与资源共享,计算机网络采用的是对解决复杂问题十分有效的方法,即分层解决问题的方法。通过把系统分成若干相对独立的模块,每个模块解决一个子问题。这样就大大的简化了系统的复杂性。 为此,国际标准化组织ISO(International Standards Organization)于1977年成立了专门的机构来研究该问题,在1984年正式颁布了“开放系统互联基本参考模型”(0pen System Interconnection Basic Reference Model)的国际标准OSI模型。 OSI参考模型各层功能分述如下: (1) 物理层 最底层称为物理层(Physical Layer),这一层定义了电压、接口、线缆标准、传输距离等特性。物理层负责传送比特流 。
(2) 数据链路层(DLL) OSI参考模型的第二层称为数据链路层(DLL)。它要提供数据有效传输的端端(端到端)连接以及数据无差错传输。 (3) 网络层 网络层负责在源机器和目标机器之间建立它们所使用的路由。 (4) 传输层 传输层提供类似于DLL所提供的服务,传输层的职责也是保证数据在端到端之间完整传输。不过与DLL不同,传输层的功能是在本地LAN网段之上提供这种功能,它可以检测到路由器丢弃的包,然后自动产生一个重新传输请求。 传输层的另一项重要功能就是将收到的乱序数据包重新排序。
(5) 会话层 OSI会话层的功能主要是用于管理两个计算机系统连接间的通信流。通信流称为会话,它决定了通信是单工还是双工。它也确保了接受一个新请求一定在另一请求完成之后。 (6) 表示层 表示层负责管理数据编码方式。 (7) 应用层 OSI参考模型的最顶层是应用层,应用层直接和用户的应用程序打交道。但它并不包含任何用户应用。相反,它只在那些应用和网络服务间提供接口。应用层为用户提供电子邮件、文件传输、远程登录和资源定位等服务。 相对于OSI参考模型而言,TCP/IP协议族只有四层,其应用层功能对应于OSI的应用层、表示层和会话层。
2. IEEE802通信标准 IEEE802通信标准是IEEE(国际电工与电子工程师学会)的802分委员会从1981年至今颁布的一系列计算机局域网分层通信协议标准草案的总称。它把OSI参考模型的底部两层分解为逻辑链路控制子层(LLC)、媒体访问子层(MAC)和物理层。前两层对应于OSI参考模型中的数据链路层,数据链路层是一条链路(Link)两端的两台设备进行通信时所共同遵守的规则和约定。 IEEE802的媒体访问控制子层对应于多种标准,包括: IEEE 802.1A——综述和体系结构; IEEE 802.1B——寻址、网络管理和网络互连; IEEE 802.2——逻辑链路控制协议(LLC);
IEEE 802.3——载波侦听多路访问/冲突检测(CSMA/CD)访问控制方法和物理层规范; IEEE 802.4——令牌总线(Token-Bus)访问控制方法和物理层规范; IEEE 802.5——令牌环(Token-Ring)访问控制方法和物理层规范; IEEE 802.7——宽带时间片环(Time-Slot)访问控制方法和物理层规范; IEEE 802.8——光纤网媒体访问控制方法和物理层规范; IEEE 802.9——等时网(Isonet); IEEE 802.10——LAN的信息安全技术; IEEE 802.11——无线LAN媒体访问控制方法和物理层规范; IEEE 802.12——100 Mbps VG-Anylan访问控制方法和物理层规范。
其中最常用的有三种,即带冲突检测的载波侦听多路访问(CSMA/CD)协议、令牌总线(Token Bus)和令牌环(Token Ring)。 CSMA/CD(carrier-sense multiple access with collision detection)通信协议的基础是XEROX公司研制的以太网(Ethernet),各站共享一条广播式的传输总线,每个站都是平等的,采用竞争方式发送信息到传输线上。当某个站识别到报文上的接收站名与本站的站名相同时,便将报文接收下来。由于没有专门的控制站,两个或多个站可能因同时发送信息而发生冲突,造成报文作废,因此必须采取措施来防止冲突。 为了防止冲突,可以采取两种措施:一种是发送报文开始的一段时间,仍然监听总线,采用边发送边接收的办法
另一种措施是准备发送报文的站先监听一段时间,如果在这段时间内总线一直空闲,则开始作发送准备,准备完毕,真正要将报文发送到总线上之前,再对总线作一次短暂的检测,若仍为空闲,则正式开始发送 。 (2) 令牌总线 在令牌总线中,媒体访问控制是通过传递一种称为令牌的特殊标志来实现的。按照逻辑顺序,令牌从一个装置传递到另一个装置,传递到最后一个装置后,再传递给第一个装置,如此周而复始,形成一个逻辑环。令牌有“空”、“忙”两个状态,令牌网开始运行时,由指定站产生一个空令牌沿逻辑环传送。任何一个要发送信息的站都要等到令牌传给自己,判断为“空”令牌时才发送信息。发送站首先把令牌置成“忙”,并写入要传送的信息、发送站名和接收站名,然后将载有信息的令牌送入环网传输。
(3) 令牌环 在令牌环上,最多只能有一个令牌绕环运动,不允许两个站同时发送数据。令牌环从本质上看是一种集中控制式的环,环上必须有一个中心控制站负责网络的工作状态的检测和管理。 7.1.2 PLC通信方式 1. 并行通信与串行通信 数据通信主要有并行通信和串行通信两种方式。 (1) 并行通信是以字节或字为单位的数据传输方式;而并行传输(Parallel Transmission)指可以同时传输一组比特,每个比特使用单独的一条线路(导线)。 (2) 串行通信是以二进制的位(bit)为单位的数据传输方式,每次只传送一位
2. 单工通信与双工通信 串行通信按信息在设备间的传送方向又可分为单工、双工两种方式。 单工通信方式只能沿单一个方向发送或接收数据。双工通信方式的信息可沿两个方向传送,每一个站既可以发送数据,也可以接收数据。 双工方式又分为全双工和半双工两种方式。数据的发送和接收分别由两根或两组不同的数据线传送,通信的双方都能在同一时刻接收和发送信息,这种传送方式称为全双工方式;用同一根线或同一组线接收和发送数据,通信的双方在同一时刻只能发送数据或接收数据,这种传送方式称为半双工方式。 3. 异步通信与同步通信 按照同步方式的不同,可将串行通信分为异步通信和同步通信。
异步通信又称起止式传输。发送的数据字符由1个起始位、7~8个数据位、l个奇偶校验位(可以没有)和停止位(1位、1 同步通信有两种类型。一种是面向字符同步协议,一种是面向比特同步协议。同步通信以字节为单位(一个字节由8位二进制数组成),以多个字符或者多个比特组合成的数据块为单位进行传输的。 7.1.3 PLC常用通信接口 PLC通信主要采用串行异步通信,其常用的串行通信接口标准有RS-232C、RS-422A和RS-485等。 1. RS-232C RS-232C是美国电子工业协会EIA于1969年公布的通信协议,它的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
2. RS-422与RS-485串行接口标准 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B 。 (1) RS-422电气规定 RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。 (2) RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相似。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。
3. RS-422与RS-485的网络安装注意要点 在构建网络时,应注意如下几点: (1) 采用一条双绞线电缆作总线,将各个节点串接起来。 (2) 应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。 7.2 PLC通信协议 7.2.1 MODBUS协议 MODBUS协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。 1. MODBUS的通信结构 MODBUS采用主—从通信结构,在该结构中只有一个设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。
2. MODBUS的通信方式 MODBUS定义的通信方式有两种:ACSII和RTU(远程终端单元)。 (1) ASCII模式 当控制器设为在MODBUS网络上以ASCII(美国标准信息交换代码)模式通信时,在消息中的每8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。 (2) RTU模式 当控制器设为在MODBUS网络上以RTU(远程终端单元)模式通信时,在消息中的每8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
(3) 地址域 消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。可能的从设备地址是0~247(十进制)。单个设备的地址范围是1~247。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。 (4) 如何处理功能域 消息帧中的功能代码域包含了两个字符(ASCII)或8Bits(RTU)。可能的代码范围是十进制的1~255。 (5) 数据域 数据域是由两个十六进制数构成的,范围00~FF。根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成。
3. MODBUS字符的连续传输 当消息在标准的MODBUS系列网络传输时,每个字符或字节发送方式(从左到右)为:最低有效位~最高有效位。 7.2.2 PROFIBUS协议 PROFIBUS是Process Field Bus(现场总线)的缩写,它是1989年由以Siemens为首的13家公司和5家科研机构在联合开发的项目中制定的标准化规范。 PROFIBUS有3种传输类型:PROFIBUS-DP和PROFIBUS-FMS的RS-485(H2)、PROFIBUS-PA的IEC1157-2(H1)、光纤(FO)。 1. PROFIBUS的协议结构 PROFIBUS协议结构依据ISO7498国际标准,以OSI作为参考模型。PROFIBUS协议结构省略了(3~6)层,
增加了用户层。PROFIBUS-DP定义了第1、2层和用户接口,第3到7层未加描述。 PROFIBUS提供了三种数据传输类型:RS-485传输、IEC1157-2传输和光纤传输。 (1) RS-485传输技术 RS-485传输是PROFIBUS最常用的一种传输技术,通常称之为H2。
(2) IEC1157-2传输技术 IEC1l57-2的传输技术用于PROFIBUS-PA,能满足化工和石油化工业的要求。它可保持其本质安全性,并通过总线对现场设备供电。 (3) 光纤传输技术 PROFIBUS系统在电磁干扰很大的环境下应用时,可使用光纤导体,以增加高速传输的距离。可使用两种光纤导体:一种是价格低廉的塑料纤维导体,供距离小于50m情况下使用;另一种是玻璃纤维导体,供距离小于1km情况下使用。 3. PROFIBUS总线存取协议 (1) 三种PROFIBUS(DP、FMS、PA)均使用一致的总线存取协议。 (2) 在PROFIBUS中,第二层称之为现场总线数据链路层(Fieldbus Data Link-FDL)。
介质存取控制(Medium Access Control-MAC)具体控制数据传输的程序,MAC必须确保在任何一个时刻只有一个站点发送数据。 (3) PROFIBUS协议的设计要满足介质控制的两个基本要求: ① 在复杂的自动化系统(主站)间的通信,必须保证在确切限定的时间间隔内,任何一个站点要有足够的时间来完成通信任务; ② 在复杂的程序控制器和简单的I/O设备(从站)间通信,应尽可能快速又简单地完成数据的实时传输。 (4) 令牌传递程序保证每个主站在一个确切规定的时间内得到总线存取权(令牌)。在PROFIBUS中,令牌传递仅在各主站之间进行。 (5) 主站得到总线存取令牌时可与从站通信。每个主站均可向从站发送或读取信息。
6) 以一个由3个主站,7个从站构成的PROFIBUS系统为例。3个主站之间构成令牌逻辑环。当某主站得到令牌报文后,该主站可在一定时间内执行主站工作。 (7) 在总线系统初建时,主站介质存取控制MAC的任务是制定总线上的站点分配并建立逻辑环。 (8) 第二层的另一重要工作任务是保证数据的可靠性。 (9) PROFIBUS在第二层按照非连接的模式操作,除提供点对点逻辑数据传输外,还提供多点通信,其中包括广播及选择广播功能。 4. PROFIBUS-DP功能介绍 PROFIBUS-DP用于现场设备级的高速数据传送 。DP主站(DPM1)周期地读取从站的输入信息并周期地向从站发送输出信息。
(1) PROFIBUS-DP基本特征 采用RS-485双绞线、双线电缆或光缆传输,传输速率从9.6Kbps到12Mbps。各主站间令牌传递,主站与从站间为主-从传送。支持单主或多主系统,总线上最多站点(主-从设备)数为126。采用点对点(用户数据传送)或 广播(控制指令)通信。循环主-从用户数据传送和非循环主-主数据传送。控制指令允许输入和输出同步。同步模式为输出同步 。(2) PROFIBUS-DP构成的单主站或多主站系统在同一总线上最多可连接126个站点。系统配置的描述包括:站数、站地址、输入/输出地址、输入/输出数据格式、诊断信息格式及所使用的总线参数。 5. PROFIBUS控制系统的几种形式 根据现场设备是否具备PROFIBUS接口,控制系统的配置总共有总线接口型、单一总线型和混合型3种形式。 (1) 总线接口型
现场设备不具备PROFIBUS接口,采用分散式I/O作为总线接口与现场设备连接。 (2) 单一总线型 现场设备都具备PROFIBUS接口,这是一种理想情况。可使用现场总线技术,实现完全的分布式结构,可充分获得这一先进技术所带来的的利益。 (3) 混合型 现场设备部分具备PROFIBUS接口,这将是一种相当普遍的情况。这时应采用PROFIBUS现场设备加分散式I/O混合使用的办法。 7.3 S7-200的通信方式 7.3.1 S7-200的通信方式 S7-200支持的通讯协议很多,具体来说有:点对点接口PPI、多点接口MPI、PROFIBUS-DP、AS-I、USS、MODBUS、自由口通讯以及以太网等。
1. PPI通信方式 PPI是一个主从协议:主站向从站发出请求,从站作出应答。从站不主动发出信息,而是等候主站向其发出请求或查询,要求其应答。 2. MPI方式 MPI允许主站与主站或主站与从站之间的通讯。 3. 自由口通讯方式 PPI通信协议是西门子公司专门为S7-200系列PLC开发的一种通信协议,一般不对外开放。而自由口模式则是对用户完全开放的,在自由口模式下通信协议是由用户定义的。 4. PROFIBUS通信方式 PROFIBUS协议用于与分布式I/O设备(远程I/O)进行高速通讯。各类制造商提供多种PROFIBUS设备。此类设备从简单的输入或输出模块到电机控制器和PLC无所不包。
7.3.2 S7-200的通信模块 1. EM277 PROFIBUS-DP模块 EM277 PROFIBUS-DP模块是专门用于PROFIBUS-DP协议通信的智能扩展模块。它是PROFIBUS-DP的从站模块,可以作为PROFIBUS-DP从站和MPI从站。 2. CP243-1模块 CP243-1以太网模块是S7-200系列的通讯处理器,可使S7-200 PLC与工业以太网络链接。 7.4 S7-200的网络通信 7.4.1 S7-200 PPI通信网络的构建 PPI通信协议是西门子公司专为S7-200系列PLC开发的一个通信协议。它是一个主/从协议。在一般情况下,网上的所有S7-200 CPU都为从站。通常PPI协议既支持单主站网络,也支持多主站网络。
1. 单主站PPI网络 对于简单的单台主站网络,编程站和S7-200 CPU通过PC/PPI电缆或安装在编程站中的通讯处理器(CP)卡连接。其中,编程站(STEP 7-Micro/WIN)是网络主站。另外,一台人机接口(HMI)设备(例如TD、TP或OP)也可以作为网络主站。 2. 多主站PPI网络 对于多台主站访问一台从站的网络,将STEP 7-Micro/WIN配置为使用PPI协议,并启用多台主站驱动程序。对于配备多台主站和多台从站的PPI网络,同样要将STEP 7-Micro/WIN配置为使用PPI协议,并启用多台主站驱动程序。PPI高级协议是最佳选择。
7.4.2 构建S7-200通信网络的注意事项 1. 网络的距离、传送速率和电缆的确定和选择 网络段的最大长度由两个因素决定:绝缘(使用RS-485中继器)和波特率。 2. 在网络中中继器的使用 RS-485中继器为网络段提供偏流和终端。 3. 偏流和设置网络电缆终端 西门子提供两种网络接头,可用于多台设备接入网络:一个是标准网络接头;另一个是包含编程端口的接头。 4. 网络上的HMI设备的使用 S7-200 CPU支持多种SIEMENS和其他制造商生产的HMI设备。 5. 网络设备的连接
网络设备通过个别连接进行通讯,这些个别连接是主站和从站之间的专用链接。 6. 令牌循环时间 令牌循环时间是衡量网络性能的重要指标。 7. 复杂网络出现的通信问题 对于S7-200,复杂网络通常有多台S7-200主站,使用“网络读取”(NETR)和“网络写入”(NETW)指令与PPI网络上的其它设备通讯。但复杂网络通常会发生特殊故障,阻碍主站与从站通讯。 8. 网络性能的优化 7.4.3 S7-200通信指令 S7-200PLC提供的通信指令主要有:网络读与网络写指令、发送与接收指令、获取与设置通信口地址指令等。
1. 网络读与网络写指令 网络读/写指令(NETR/NETW)的指令格式 如图: 2. 发送与接收指令 发送与接收指令如图
3. 获取与设置通信口地址指令 获取与设置通信口地址指令如图 7.4.4 S7-200通信网络范例 1. 通信任务 本例用NETR和NETW指令实现两台CPU 224之间的数据通信。
2. 实现步骤 按下面的步骤完成两台CPU之间的通信: 分别只用PC/PPI电缆连接各个PLC。在编程软件中,分别将它们的站地址设为2和3,并下载到CPU模块中; 连接好网线,双击“通信刷新”图标,编程软件将会显示出网站中站号为2和3的两个子站; 双击某一个子站的图标,编程软件将和该子站建立连接,可以对它进行下载,上载和监视等通信操作; 输入、编译通信程序,它们下载到站号为2的CPU模块中,该模块为主站;将两台PLC的工作方式开关置于RUN位置,分别改变两台PLC输入信号的状态,可以观察到通信效果。 3. 通信程序 用网络读/写指令完成两台PLC之间的通信
下面是通信程序清单: //A机的通信程序 LD SM0.1 MOVB 2,SMB3.0 //PPI主站模式 FILL 0,VW100,10 //清空接受和发送缓冲区 LD V100.7 //若网络读操作完成 MOVB VB107,QB0 //将读取的B机的IB0送给QB0 LDN SM0.1 AN V100.6 //若NETR未被激活 AN V100.5 //且没有错误 MOVB 3,VB101 //送远程站的站地址 MOVD &IB0,&BD102 //送远程站的数据指针值IB0
MOVB 1,VB106 //送要读取得数据字节数 NETR VB101,0 //从端口0读取B机 的IB0,缓冲区的起始地址为VB100 LDN SM0.1 AN V110.6 //若NETW未被激活 AN B110.5 //且没有错误 MOVB 3,VB111 //送远程站的站地址 MOVD &IB0,&VD102 //送远程站的数据指针IB0 MOVB 1,VB116 //送要写入数据的字节数 MOVB IB0,VB117 //将本机的IB0的值写入发送数据缓冲区的数据区 NETR VB101,0 //从端口0读取B机的QB0,缓冲区的起始地址为VB110