基于ControlLogix的数据自备份及恢复的实现

2015-12-15 10:47江劼
电气自动化 2015年4期
关键词:控制站离线备份

江劼

(上海电气自动化设计研究所有限公司,上海 200023)

0 引言

随着自动化技术的发展,目前集散控制系统广泛应用于现代化生产过程控制中。集中管理、分散控制具其主要特点,它将整个系统的功能分成若干台不同的计算机去完成,各个计算机之间通过网络实现相互之间的协调和系统的集成[1]。这样全部信息通过通信网络由上位管理计算机监控,实现了最优化的控制,不仅克服了人机联系差及单计算机控制系统安全性和稳定性差的缺点,而且节约了大量劳动成本,使得相关工作人员的工作效率大大提高。

本文结合ControlLogix系列PLC的特点,通过编程使重要数据可以根据实际情况自动进行备份或还原操作,避免了因设备出现故障或人为误操作而造成的数据丢失,保证实际应用中数据的安全性及完整性。

1 ControlLogix系列PLC的数据结构

传统PLC的数据分配是基于内存地址进行的分配,以西门子400系列PLC为例,控制器的内存地址对用户开放,用户可以根据实际需要自由分配内存地址,并定义相应的标签;若用户分配的内存地址冲突,则会影响存储于该内存地址的数据的准确性,造成数据错误;在下载时可以选择只下载逻辑程序,而不下载离线的数据。

ControlLogix系列PLC采用的数据结构不同于西门子PLC等传统PLC。对于ControlLogix系列PLC的控制器来说,数据的表达形式称为数据标签,用来描述控制对象。数据库的标签是基于文字表达的指向数据存放位置的标记,它将占用控制器的内存空间;标签是分配内存的基本机制,存放于逻辑执行有关的数据,并被直接监视[2]。用户可以根据实际需要建立标签,控制器根据标签的数据类型自动分配内存地址,这样,用户无需担心内存地址冲突,避免了由于分配内存冲突造成的数据错误。但在下载时程序逻辑和离线数据同时下载至控制器中,对于某些重要的在线数据(例如累计量),会造成在线数据被离线数据覆盖,可能产生严重的后果。

2 常用的数据备份及恢复方法

ControlLogix系列PLC具有在线编辑的功能,可以在线对程序逻辑和数据进行修改。对于程序逻辑的大量修改,在线编辑的效率反而没有离线编辑在线下载高,且在线编辑不能对数据类型和结构进行更改。对于在下载时离线数据覆盖在线数据这种情况,通常有以下三种数据备份及还原的方法。

2.1 手动备份恢复

这种方法是在下载之前,将需要备份的数据手动记录下来;在下载完成之后,再将备份的数据手动写入在线标签中。这种方法只适用于少量数据的备份恢复。若需要备份的数据很多,势必要耗费大量的时间和精力,效率不高且容易产生人为错误。

2.2 系统上电恢复

这种方法通过编程将在线数据即时备份至远程PLC中,在程序首个扫描周期时利用S:FS将备份的数据恢复至本地PLC中。S:FS的状态取决于顺序功能图(sequential function chart,以下简称SFC)的状态。如果S:FS用于SFC中,则该步执行时,S:FS置位并保持一个扫描周期。如果用于SFC调用事例,则在每次调用激活时置位并保持一个扫描周期。如果SFC没有调用事例,则S:FS会在任务第一次扫描时置位[3]。这种方法可以解决手动备份恢复大量数据时效率低下的问题,但若在线编辑时误修改了数据,那么错误的数据会立刻备份至远程PLC中。此方法虽然优于手动备份操作,但在某些情况下依然不能避免人为的操作失误。

2.3 利用自带软件恢复

ControlLogix编程软件自带工具Data Preserved download tool。该工具执行以下操作:

(1)检查和读取程序文件中所有定义的标签,但不包括MOTION_GROUP、ALARM_ANALOG、ALARM_DIGITAL、MESSAGE等部分类型的标签。

(2)将这些标签的结构和数据存储到工具路径下的文件(Taginfo.csv)中。

(3)将离线程序下载到PLC控制器。

(4)将Taginfo.csv文件中存放的标签数据恢复至PLC控制器对应的标签。

该工具不支持多点及桥接,不保留上次下载至PLC控制器的强制信号。

有此可见在下载时利用自带工具Data Preserved download tool进行数据恢复非常方便,但该工具在实际应用中具有局限性,且依然无法避免人为修改数据的操作失误。

3 数据自备份及恢复原理

3.1 数据自备份及恢复的网络

ControlLogix系列PLC在下载时会把离线程序和数据下载至本地PLC控制器中,因此自备份及恢复需要利用同一局域网内的其它PLC控制站来完成,只要局域网内的PLC控制站之间能够进行正常通讯即可。图1是一种基本的自备份及恢复网络原理图。

图1 自备份及恢复网络原理图

图1 中PLC1控制站将数据备份至 PLC2站,需要恢复时从PLC2控制站把备份的数据恢复至PLC1控制站;PLC2控制站将数据备份至 PLC3站,需要恢复时从PLC3控制站把备份的数据恢复至PLC2控制站;PLC3控制站、PLC4控制站同理。这样每一个PLC控制站都只有1个PLC控制站备份的数据。如果将所有数据都备份至网络上的同一个PLC控制站中,当该PLC控制站故障时,整个网络的数据备份都将受到影响。采用这种轮序备份恢复的方式时,当某个PLC控制站故障,只会暂时影响到相邻的2个PLC控制站,其它PLC控制站的数据自备份恢复不受到影响,因此网络中的PLC控制站越多,影响的范围比率越小。

3.2 数据自备份及恢复的数据类型

需要进行自备份及还原的数据通常为非布尔型内部数据,例如设备的累计运行时间和累计停止时间,通过对运行时间和停止时间进行累计可以合理调度设备的运行,防止设备过度使用,使设备的损耗大致相同。通过总线传输的数据及IO数据会在PLC每次进行输入输出寄存器扫描时进行更新,完全由外部信号所决定,因此无需进行自备份及还原。

3.3 数据自备份及恢复的逻辑

ControlLogix系列的非布尔型数据类型常用的为整型,双整型和浮点型。对于需要自备份及恢复的非布尔型内部数据,类似于设备的累计运行时间和累计停止时间,一般都是持续增大的,不会出现减小的情况。由于以上非布尔型数据有取值范围,一旦超出该范围则会造成数据溢出产生显示错误,一般会设置一个清零信号,在该类型的数据即将超出取值范围时对其进行清零操作。只有在这种情况下,数据才会由大变小。因此,在数据变小的时候,只需判断是否由用户的清零操作造成,如果不是则进行恢复操作,其余时间则进行备份操作。因此,还需要对用户的清零次数进行统计并同时进行自备份。数据自备份及恢复的逻辑流程图如图2。

图2 数据自备份及恢复逻辑流程图

其中Cnt为本地清零次数,Cntb为备份的清零次数,Data为本地数据,Datab为备份的数据。根据清零次数可以分为三种情况。

(1)本地清零次数小于备份的清零次数。若在下载之前已经进行过清零操作,本地清零次数会即时备份至备份的清零次数。这样备份的清零次数大于下载之后的本地清零次数,相应的备份的数据是正确的数据,因此在下载了程序之后需要先进行数据恢复操作。在线编辑时人为误改小清零次数也会产生备份的清零次数大于本地清零次数的情况。此时通过自动进行的数据恢复操作,人为误修改的清零次数被恢复为正确的清零次数,避免了人为误修改数据。

(2)本地清零次数等于备份的清零次数。若在下载之前未进行清零操作,会出现这种情况。在这种情况下,在线的本地数据和备份的数据一致,均不小于离线数据。若小于的话只要先自动进行数据恢复操作,就可以保证数据的正确性。

(3)本地清零次数大于备份的清零次数。此时本地数据为正确的数据,因此只需进行通常的自动备份操作即可。即使人为修改增大本地清零次数,也只会同步增大备份的清零次数,并不会对数据产生影响。

4 ControlLogix系列PLC数据自备份及恢复的编程实现

数据自备份及恢复功能通过创建用户自定义指令Add-On Instruction来实现。设备的相关数据可以通过调用自定义指令完成自备份及恢复。图3为用户自定义指令的参数设置界面。

图3 用户自定义指令参数设置图

图中分别定义了形参清零次数、清零次数备份、数据、数据备份及设备的运行小时和运行分钟。Usage为运用目的而建立的数据结构。定义的形参全部选择为InOut类型,即外部可读写参数,其指向控制器或程序区域的标签;Req决定带入或带出的参数是否可选择,指向了程序或控制器中的外部标签;指向外部标签时,将自动与内部数据互相复制;Vis决定参数是否显示在指令上;如果单独选择此项而没有选择Req,则在指令上表现为只读数据;External Acess选择 Read/Write,即可读写;若选择 Read Only则只能进行读取而不能写入,None则不能进行读写[4-5]。

用户自定义指令设置完成并根据逻辑流程图编写完程序后,在本地与远程目标PLC站中建立同样大小的标签数组用以存放数据。在本地PLC站中先用MSG读取远程备份的数据,经过用户自定义指令进行自备份或恢复操作之后,再将更新之后的数据写入远程目标PLC站即完成了一次自备份恢复,程序段如图4所示。

5 数据自备份及恢复功能的优势

与常规的备份恢复相比较,远程自备份恢复的优势在于以下几点:

(1)当网络通讯中断或者单PLC站故障时,自备份恢复功能只会暂时影响相邻2个PLC站备份恢复。一旦故障消除,自备份恢复功能会自动恢复,无需人工干预。

(2)在下载程序时无需考虑数据的备份与恢复,该功能可以即时修正错误数据,节省了维护时间,提高了维护的效率。

(3)在线修改时可以自动修正误修改的数据,保证了数据的正确安全可靠。

图4 自备份恢复调用程序示意图

6 结束语

在日常的设计及维护中经常碰到文中提到的情况,因此专门研究设计了该功能。该功能已应用于南京桥北污水处理厂的自控系统。通过最初的调试与长时间的观察,该功能运行良好,达到了预期的目的。但由于环境资源所限,还未能将其设计成一个通用的自定义指令,需要根据实际情况进行些许修改才能满足各种条件下的实际使用需要。今后还需要在实践中对其进行进一步的完善。

[1]刘翠玲,黄建兵.集散控制系统[M].北京:北京大学出版社,2006.

[2]邓李.ControlLogix系统实用手册[M].北京:机械工业出版社,2008.

[3]Logix5000 Controllers Controller Information and Status Programming Manual[DB/OL].(2014-10)[2015-02-22]http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756 -pm015_-en-p.pdf?_ga=1.44091500.972293070.1373436821.

[4]Logix5000 Controllers Add-on Instructions Programming Manual[DB/OL]. (2014 -10)[2015 -02 -22]http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756 -pm010_-en-p.pdf.

[5]Logix5000 Controllers I/O and Tag Data Programming Manual[DB/OL].(2014-10)[2015-02-22]http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm004_-en-p.pdf.

猜你喜欢
控制站离线备份
“备份”25年:邓清明圆梦
VSAT卫星通信备份技术研究
异步电机离线参数辨识方法
浅谈ATC离线基础数据的准备
创建vSphere 备份任务
DCS系统在机井控制中的应用
法国水师兵营旧址 曾作为法国在长江上游的控制站
ECS-100系统控制站硬件配置及使用
FTGS轨道电路离线测试平台开发
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素