曾红波
摘 要:介绍了ControlLogix冗余系统的组成和工作原理。针对故障现象,通过对系统软件的深入研究和不断试验、实践,提出了合理的改进措施并取得了良好的效果,提高了系统的可靠性、排除了因不确定性故障所导致的系统安全。
关键词:ControlLogix冗余系统;故障;原因分析;改进措施和处理方案
中图分类号:TP182 文献标识码:A 文章编号:1672-3198(2009)03-0273-02
1 冗余系统应用简介
以深圳地铁一期工程为例:典型车站分为A、B两端,在A端设置两套冗余的控制器(PLC),一套作为整个车站的主控制器兼作与上位机的通讯接口,接车站交换机,另外一套负责A端的设备监控;在B端设置一套冗余的从控制器,负责B端的设备监控;在车站的其它地方设置远程I/O设备。控制器及各远程I/O设备通过冗余的ControlNet现场总线相连。(系统配置如图1)
2 冗余系统的设置和工作原理
ControlLogix冗余系统硬件结构由两个完全一样的控制器框架组成,每个ControlLogix冗余系统框架中控制器模块、通信模块和SRM模块。两个框架尺寸完全相同,模块一模一样,插放位置也一模一样,控制器中的程序也一模一样。两个控制器框架之间,完全靠系统冗余模块SRM来完成同步和数据的交换。进入同步状态的主机控制器,自动地传送备份数据到辅机控制器,这些数据无须用户挑选和编程,只要在主机控制器中被程序运行时刷新过的数据,都会通过交叉装载传送到辅机控制器,传送的数据量可以非常大。控制器通过与SRM的连接,得知自己是主机控制器还是辅机控制器,从而决定是传送数据还是接收数据。这些完全不需要用户的介入,系统自动获取、自动判断、自动传送。两个控制器的同步运行和大量数据的复制,使得输出得到无扰切换。
在成对的冗余框架中,首先上电的框架成为主机框架,后上电的框架作为辅机框架,并建立与主机控制器的同步。当出现主机控制器所在框架掉电、拔插主机框架上的任何模块、控制器程序发生主要故障、断开CNBR模块上的ControlNet分接器或电缆、断开ENBT模块的EtherNet/IP电缆等情况,或者收到来自主机控制器中用MSG发送的命令、来自Rslinx中SRM模块组态页面操作的命令都会发生冗余切换。
3 系统冗余故障显示及查找
冗余系统不能正常工作,常常表现在辅机不能同步。辅机不能同步的原因有很多,查找的办法也很多,一般说来,冗余框架中的CNBR模块都有清楚的提示,SRM模块的组态界面也存放了详尽的信息。冗余框架插放的CNBR模块的面板将显示系统的状态,面板是字符式显示,一般是缩写的大小字母,它们所表达的意思见表1。
最重要一点的是,所有成对的模块必须是相同的产品编号、系列号和版本号,并且插放在相同槽内。如果辅机框架的CNBR的Keeper与成对冗余的主机框架CNBR的数字签名不匹配的话,辅机框架是不能同步的。需要在RSNetworx组态软件中,选择Keeper Status,检查辅机是否为Valid Keeper。如果不是,操作Update Keeper使之恢复正常。出现这种情况的原因可能是ControlNet网络组态时,辅机CNBR模块是关闭的或者在别的网络中组态过。
根据提示检查硬件的情况,是比较直观和容易的。但是实际使用过程中,大多数故障不是硬件引起的,而是由于参数设置不合理、通信和连接规划不好,导致控制器出现主要或者次要故障。在深圳地铁一期工程的建设过程中,由于承包商是首次使用ControlLogix系列产品,在参数设置方面没有仔细研究和推敲。为了追求最短的响应时间,将所有参数都设置为最小值。这样就存在控制器没有足够的时间去完成非预定性的通信、内存分配比例不合理、连续任务Watchdog时间太短、周期性任务执行时间大于周期时间、高优先权程序执行时间超过最低优先权程序周期时间、冗余框架中CNBR模块CPU运用效率远远超过75%等一系列隐性故障。
4 改进措施和处理方案
4.1 保证非预定性通信的执行时间
一般说来,非预定性通信是除了控制器I/O组态和控制器之间的Produced/Consumed之外的所有的通信——编程设备的在线、HMI的访问、执行MSG指令、响应其他控制器的MSG、同步冗余系统的辅机框架、建立或监视I/O的连接(热拔插模块)、从控制器的串口通过背板访问其他设备等。所有的都是在任务逻辑程序执行以外的时间进行。如果控制器组态了一个连续任务,由控制器中的System Overhead Time Slice设定值决定非预定性通信的时间;如果控制器没有设定连续任务,则在所有周期性任务执行完毕的剩余时间内完成。
深圳地铁一期工程所有控制器内逻辑程序均为一个连续任务,多个周期性任务的配置。所以,应该适当增大System Overhead Time Slice设定值,保证控制器有足够的时间完成非预定性通信的执行。具体方法是:通过Logix5000在线连接控制器,在控制器的属性/高级属性中设置System Overhead Time Slice。(图2)
4.2 合理设置周期性任务的时间参数
对于周期性任务,必须确定最高优先权任务的执行时间是否远远小于它的周期时间,所有任务执行时间的总和是否远远小于最低优先权任务的周期时间;Watchdog时间通常为本任务运行时间的10倍左右。周期时间、Watchdog时间可以通过Logix5000在线连接控制器,在任务的属性/组态中修改(图3);任务执行时间可以通过Logix5000在线连接控制器,在任务的属性/监听中查看。(图4)
4.3 降低冗余框架CNBR模块的CPU运用效率
冗余系统中的CNBR模块需要足够的时间去处理冗余的操作,冗余同步操作将占用CNBR模块CPU运用效率的8个百分点左右,如果超过75%,可能会妨碍冗余切换后的辅机同步。深圳地铁一期工程冗余系统CNBR的CPU运用效率达90%以上,部分甚至高达95%,很容易出现冗余切换后CPU满负荷运行,导致同步失败。所以必须想办法把CNBR模块的CPU运用效率降下来。
要降低CNBR模块的CPU运用效率,可以从以下几个方面着手:增大ControlNet网络的NUT(网络刷新时间)、增大I/O模块连接的RPI(请求数据包间隔)、减少通过CNBR连接的数量、减少MSG的数量和增加CNBR模块来分流信息。由于深圳地铁一期工程的设备已经定型,增加CNBR模块涉及到更换机架成本太高,也没有可以减少的MSG指令和通过CNBR的连接,所以只能从增大ControlNet网络的NUT和I/O模块的RPI两个方面入手。
深圳地铁一期工程冗余系统的NUT和RPI均设置为系统组态时的默认值,分别为5ms和20ms。也就是说,系统每5ms刷新网络一次,每20ms更新一次I/O模块数据。由于系统的监控对象是风机、风阀、温湿度传感器、冷水流量传感器、水系统二通阀执行器等设备,所有的设备均不会发生状态的高频变化,也不用控制设备高频度开关,所以系统默认的NUT和RPI远远超过实际应用的需要。这样就过多的耗用网络资源,占用ControlNet预定性数据的带宽。而RPI值一般设为实际需要时间的50%即可,即在一个周期内采样两次。在系统没有高频动作设备,保证系统实时性的前提下,经过多次测试将RPI由20ms改为80ms,将NUT由5ms改为20ms(RPI=NUT*2n),成功的将冗余系统CNBR的CPU运用效率降到了75%以下。
RPI设定可以通过Logix5000在线连接控制器,在I/O Configuration展开所有已经组态的模块,右键点击适配器选择Properties/Connection修改Requested Paket Interval为80ms。(图5)
NUT设定可以通过运行RSNetWorx for ControlNet,在线upload网络配置、编辑使能后通过菜单Network /Properties/Network Paramerters中修改Network Update Time为20ms。(图6)
参考文献
[1]@邓李.ControlLogix系统实用手册[M].北京:机械工业出版社出版