在许多重要的工业通信现场,例如电厂、石化、化工、冶金、船舶以及造纸等行业,控制设备的可靠性和安全性要求非常高,通常都需要考虑冗余设计。冗余系统涉及到的相关技术包括控制软件、PLC系统、DCS系统、现场总线及I/O系统等。最近几年,具有实时性的工业以太网系统开始成为工业控制领域的热点,并开始在工厂自动化的一些行业推广应用。主流的工业以太网系统包括PROFINET、Ethernet/IP、Modbus TCP、POWERLINK、EtherCAT等。基于现场总线或专用通信协议的冗余系统在市场上应用比较多,技术比较成熟。那么,是否有基于工业以太网的冗余系统呢?现在,采用德国菲尼克斯电气的控制技术,可以提供一套基于PROFINET系统的冗余解决方案。该方案与传统的PLC冗余方案有较大的不同。PROFINET技术PROFINET支持采用以太网通信的简单分散式现场设备与对时间要求非常苛刻的应用之间的集成,以及基于组件的分布式自动化系统的集成。采用PROFINETIO技术,PROFINET规范为分散式现场设备提供一个集成模型。PROFINETIO包括三种不同的设备类型:IO控制器、IO设备和IO监视器。由于IT技术的应用,在PROFINET方案中保护投资也起着至关重要的作用。通过代理服务器,PROFINET能够无缝地集成现有的现场总线系统(例如INTERBUS,PROFIBUS),且无需修改现有设备,这就保护了工厂操作员/业主、机器/成套装备制造商和设备制造商的现有投资。PROFINET冗余解决方案本文介绍的PROFINET冗余解决方案,可以实现从I/O层、网络层、PLC层到SCADA层的全部冗余通信功能。该方案的特点是,每个功能组都建立了两次。例如,PLC、交换机、HMI等既有主系统设备也有相同的备用系统设备。其优点是主系统和备用系统不同设备同时出现故障时,整个系统不会受到影响而能够继续工作。当然,用户可以根据应用的需求,只选择其中一部分的功能,例如只需要控制器冗余。
1.PLC冗余在这个系统中,采用专用的支持PROFINET的冗余控制器。该控制器集成了专用的冗余接口;集成两个或三个RJ45以太网接口,100M全双工。在PROFINET网络中,它既属于IO控制器,同时也可作为IO设备;另外,它又是INTERBUS现场总线的主站。在本系统中,需要配置两台冗余控制器进行双机热备,一台为主PLC(PrimaryPLC),另一台做备用PLC(BackupPLC)。两台PLC之间既通过交换机和以太网网线来连接,又通过冗余接口相互连接,相互之间作为对方的IO控制器和IO设备。主PLC和备用PLC之间通过以太网或者冗余接口相互交换状态信号和冗余数据,实现数据同步。从工程的层次看,通信连接总是建立在具有“主”任务的PLC上。两台PLC都建立到IO设备的PROFINET连接,但只有主PLC的数据是有效的。两台控制器运行相同的PLC程序,PLC程序是采用PCWORX软件来编写的。PCWORX集成了总线配置、IEC61131编程和诊断功能为一体,是一款32位的控制软件。控制器冗余设置和切换条件在PCWORX软件中通过硬件配置即可完成,无需通过专用的冗余功能块来实现。
2. IO层冗余IO层冗余可以实现PROFINETIO设备与两个IO控制器的通信,或者实现I/O设备的冗余。IO层冗余未来可采用PROFINETSystem Redundancy技术,该技术正由PI组织负责制定,但目前还没有正式发布。因此,菲尼克斯电气开发了Phoenix Redundancy Layer技术作为当前的解决方案。PROFINETIO设备同时和两台PLC进行通信,主PLC和备用PLC各自建立与本地IO设备的应用关系。支持冗余功能的IO设备复制其子槽,一个子槽(subslot)为主IO 控制器所使用,另一个子槽被备用IO控制器所使用。主子槽的索引开始于1(0×0001),备用子槽紧随主子槽之后,其索引为0×0002。输入信号周期性地同时发送给两台PLC,而输出数据则同时有两台PLC周期性地传送给PROFINETIO设备。但只有一个输出值可以送给物理输出,所以PROFINETIO设备需要知道哪台PLC接管控制权,哪台PLC处于备用状态,这通过报文的状态信息来识别。主PLC发送的输出数据的状态标记为有效(IOPS = GOOD),备用PLC发送来的输出数据的状态标记为无效(BAD),标记为有效的报文才会被IO设备所接收。 I/O设备的冗余可以保证其中一个站点出故障时,PLC可以从备用I/O设备站点读取正确的过程数据,这意味着在硬件上I/O站点需要配置两次。PLC同时读取两个I/O设备站点的输入过程数据,这两个站点分别称为PRIMARY-I/O-Station和BACKUP-I/O-Station。在控制程序中,根据判断逻辑通信的连接状态,通过一个选择功能来决定选择哪个子站的输入数据。对于输出过程数据来说,则比较简单,输出数据总是同时写给两个I/O子站。PROFINETIO设备的状态变量周期性地发送给PLC,PLC通过状态变量可以知道IO设备的工作状态。
3. 网络冗余PROFINET采用交换机进行设备的联网。为了保证整个网络的可靠性,需选用支持相关冗余功能的管理型交换机。网络冗余涉及到相关的以太网冗余协议,包括快速生成树(RSTP)和快速环路检测,MRP以及HSR等。采用RSTP和快速环路检测协议,可以构建多个环,从而保证存在多个冗余路径,增加了系统的可用性。当某个传输路径出现故障时,数据传输会自动切换到备用路径,切换时间为100~500ms;其缺点是切换时间不固定。PROFINET冗余网络使用环型结构来实现,通常采用MRP协议(IEC 62439/2),切换时间确定。MRP只允许一个环路。MRP基本机制包括:基于环型拓扑,阻塞和转发报文,维护MAC地址表。其主站称为Media Redundancy Master(MRM),所有其他的交换机(从站)称为Media Redundancy Clients(MRC)。环路最大允许50台交换机,MRP环路切换时间小于200ms。 IEC 62439-3 Clause 5定义的HSR协议,支持双环拓扑和并行配置,提供了没有任何切换损失的无冲突冗余。在设备故障时,HSR提供了零时间的故障切换,因此适用于非常高的可靠性和极短响应时间的应用。HSR作为面向未来的网络冗余通信协议得到了特别的关注。 HSR节点可组成一个环网,由于每个节点都能够从端口到端口转发帧,因此可无需专用交换机来工作。HSR的结构中,节点组成了一个环,每个节点有两个相同的接口,端口A和端口B。对于每个要发送的帧(C-frame),源节点通过端口A和端口B发送两个拷贝。每个节点将接收到的帧从端口A中继到端口B,反之亦然。目标节点采纳接收到的这一对帧的第一个帧(D-frame)并丢弃副本。如果环路中断,帧仍然可以通过另一个完好的路径到达目标节点,对应用没有任何影响。如果路径丢失,因为副本无法到达,所以很容易被检测到。HSR将多播报文的可用网络带宽减半。HSR限制在第2层广播域,需要一个硬件实现(ASIC 或者 FPGA)来满足时间约束。基于IEEE 1588的时钟同步可能需要每个节点(clock A和clock B)重新同步。
4. SCADA冗余人机界面(HMI)软件与PLC的数据交换采用OPC通信方式,OPC是以OLE/COM/DCOM机制作为应用程序的通讯标准。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。菲尼克斯电气的OPC服务器AX-OPC-Server用于分布式INTERBUS网络或PROFINET网络和应用程序之间的数据交换。采用OPC技术,INTERBUS/PROFINET技术提供了自动化标准数据接口,控制软件与应用之间不需要专用的软件实现连接。OPC服务器为PC应用程序(如SCADA/MES系统)的读写访问提供控制系统的过程数据和中间变量。增强版的AX-OPC-Server将支持冗余PLC,这意味着应用程序的数据点以透明的方式呈现,而无需关注数据来自于哪台PLC。因此,对于SCADA系统而言,不需要专用的冗余驱动,不需要在客户端进行附加的配置。在OPC Configurator中,只需配置PrimaryPLC的IP地址,OPC Server将自动推算出BackupPLC的IP地址。OPC Server内部将使用两个资源,每个资源将从其对应的PLC获取所需的数据。OPC Server通过推算两台PLC的状态信息,来识别哪台PLC处于Primary状态,该PLC的数据将提供给上位的SCADA软件。写数据只对PrimaryPLC有效,并通过数据同步的方式传给BackupPLC。为了取得快速的切换时间,两个资源的数据都同时在OPC Server中进行缓存。来自于PrimaryPLC的数据传送给OPC Client,而来自BackupPLC的数据则被丢弃。当切换发生时,OPC Server根据PLC的状态信息立即切换到备用资源,该备用资源也变为主资源。OPC Client无需再重新连接到OPC数据点,切换时间只是取决于所定义的数据更新时间和客户端当前使用的数据量。
随着工业以太网的逐渐普及,基于工业以太网的冗余解决方案的需求将会越来越多。本文提出的冗余方案基于PROFINET通信网络,可实现控制器冗余、I/O冗余、网络冗余以及SCADA冗余等功能。与传统的CPU冗余或者现场总线冗余系统相比,具有技术先进、结构灵活、配置简单及功能完善等优点。随着IT技术在工业自动化系统的进一步集成应用,工业以太网和PROFINET技术的不断发展,基于PROFINET的冗余解决方案还会有比较大的改进和发展空间,并将得到广泛的应用。