海上平台DCS系统对工控参数报警限值的在线管理
发布时间:2009-08-12 来源:www.cechina.cn
随着测控技术的迅速发展,分布式计算机控制系统(DCS)得到了越来越广泛的应用,海上平台石油生产采用计算机监控系统实现综合自动化生产也日趋广泛。由于海上生产环境恶劣,设备易腐蚀、易老化,故障发生率高,因此,DCS系统必须具有强大的故障自诊断与安全保护等功能。当生产中出现不可预见的干扰和故障时,系统能及时做出反应并发出报警信息,而系统所采集的各工控数据是诊断与解决故障的基础。因此,DCS系统内设的与各工控参数相对应的报警限值对整个石油生产的安全性、可靠性均有着极其重要的作用。此外,科技的发展必然会促进平台石油生产工艺的不断改进以及生产设备的不断更新,所以各工控参数的报警限值也必须根据新工艺、新设备以及新的工艺要求作适当修改。因此,DCS系统必须对工控参数报警限值实现有效的管理。
目前,DCS系统的开发,多采用可靠性高、组态灵活且易于生成应用程序的组态软件来具体实现。在多数情况下,系统开发人员根据系统开发时生产过程的运作情况为各工控参数设置具体的报警上下限值。当系统中某工控参数的报警限值需要作修改时,开发人员通常将DCS系统退回到系统开发用组态软件的编辑状态,然后再对该工控参数的报警限值做修改。这样会使得监控系统在某工控参数报警限值被修改的时间段内不能对工控过程进行实时监控,若此时工控过程出现异常情况,将会对生产造成一定程度的影响。因此,实现工控参数报警限值的在线管理对海洋平台石油生产的安全运行有着十分重要的意义。
1、平台水处理DCS系统构成
平台水处理DCS系统下位机采用两套A-B公司的SLC500型PLC,一套用作对海水细滤反冲洗子流程的过程控制,另一套用于对其它子流程中压力、温度、流量、液位、海水含氧量以及海水浊度的数据采集和控制阀的开度调节(如图1所示)。

图1 DCS系统结构图
上位监控计算机负责对水处理工艺的过程监控,实现对PLC采集数据的实时显示、趋势描绘以及对整个流程的动态模拟。数据管理计算机主要负责对工作人员、设备以及工控数据信息的管理,并同时实现报表打印和数据查询功能,且具有与监控计算机相同的对工控过程的监控功能。上位监控计算机与PLC之间的通讯利用DH+工业局域网来实现,监控计算机与数据管理计算机之间的通讯通过Ethernet以太网来实现。系统上位计算机监控系统采用Rockell RSView32组态软件开发而成,数据管理服务器采用Microsoft SQL Server2000,数据管理系统采用Microsoft Visual Basic6开发实现。
2、报警限值在线管理的具体实现
RSView32组态编程中,Tag是其编程核心,且有两种数据源类型,即Device(设备)和Memory(内存)。其数据源类型为Device的Tag,可被视为一个来自外部设备的数据,与下位机PLC的一个内存地址单元同步更新,因此,上位机与下位机的数据通讯是通过Device类型的Tag来实现,且每一个被检测工控参数都对应一个Device类型的Tag。此外,其数据源类型为Memory的Tag,可被理解为一个来自计算机内部的数据,可称之为变量,而工控参数报警上下限在线修改就是通过对Memory类型的Tag操作来实现的。
2.1 基本思想
(1)在RSView32项目管理器的Tag Database中,将各被检测工控参数的报警限值设置为Tag(变量)而不是具体的数值,其Tag类型为Analog (模拟量),其Data Source(数据源)类型为Memory,其Initial(初始值)设置为当前工艺所要求的限位数值。
公共变量(Tags)创建如表1所示。PublicTag—返回报警限值需作修改的工控参数Tag名称;UpperLimit—返回工控参数报警上限对应的Tag名称;LowerLimit—返回工控参数报警下限对应的Tag名称。
表1 公共变量(Tags)的创建

(2)利用Microsoft SQL Server2000数据库管理器创建报警限值数据库AlertingValue,并在操作系统控制面板的ODBC Administrator中配置一个指向AlertingValue数据库的DSN。在数据库AlertingValue中创建一张名为AlertingTagValue的自由表,用于存储各工控参数报警上下限用Tag的当前值及相关属性,如表2所示。
表2 AlertingTagValue自由表的字段设置

(3)利用RSView32的内嵌式语言——VBA和远程数据访问技术ADO对报警限值数据库操作,实现对报警限值的查询、修改以及存储等管理操作,实现对报警数据的有效管理。
2.2 技术实现与程序设计
(1)在RSView32项目管理器的Visual Basic Edit中,创建报警上下限在线管理用窗体frmAlertingV,如图2所示。表3为窗体frmAlertingV中相关控件的属性。

图2 报警上下限在线修改用窗体frmAlertingV
表3 frmAlertingV窗体内的对象及其属性

(2)在RSView32内为每个设有报警限值的工控参数设置Touch动作,用于返回工控参数及其报警限值所对应的Tags名称:以缓蚀1#加药罐的“液位显示” 为例,为其添加“Touch”动作如下:& Set PublicTag“LT-2C2101”;& Set UpperLimit“H_LT-2C2101”;& Set LowerLimit“H_LT-2C2101”;VbaExec frmAlertingV.Show
(3)程序设计
a.定义公共变量
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public Upper As String
Public Lower As String
b.创建与SQL Server数据库AlertingValue的联结
cn.ConnectionString=“DSN=AlertingValue” _
“;UID=sa;PWD=sa”
cn.Properties(“Prompt”)=adPromptComplete
rs.Open“select TagName from AlertingTagValue”,_
cn,adOpenKeyset,adLockOptimistic,adCmdText
c.获取并显示待操作被监控参数当前报警限值
If gTagDb(PublicTag).Value=“LT-2C2101”then
FrmAlertingV.Caption=“缓蚀1#加药罐液位”+_
“报警上下限在线修改”
Upper=gTagDb(“UpperLimit”).Value
Lower=gTagDb(“LowerLimit”).Value
frmAlertingV.TextBox1.Text=gTagDb(Upper).Value
frmAlertingV.TextBox2.Text=gTagDb(Lower).Value
Else
… …
End if
d.修改报警上下限值并将其存入AlertingValue数据库
Upper=gTagDb(“UpperLimit”).Value
Lower=gTagDb(“LowerLimit”).Value
gTagDb(Upper).Value=Val(TextBox3.Text)
TextBox1.Text=gTagDb(Upper).Value
gTagDb(Lower).Value=Val(TextBox4.Text)
TextBox2.Text=gTagDb(Lower).Value
Do While Not rs.EOF
If rs!TagName=Upper then
rs!TagValue=Val(TextBox3.Text)
End if
If rs!TagName=Lower then
Rs!TagName=Val(TextBox4.Text)
End if
rs.Update
rs.MoveNext
Loop
e.各工控参数报警上下限所对应的Tag均为Memory类型,而Memory类型的Tag被修改后的数据不能在DCS系统中作永久性存储。因此,为保证DCS系统重启动的情况下工控参数报警上下限最近一次修改的数值仍然保持有效,则必须在DCS系统重新启动的同时,使DCS系统再次从AlertingValue数据库中获取各工控参数报警上下限的数值。为实现该项功能,程序编写如下:
Dim cnDcs As New ADODB.Connection
Dim rsDcs As New ADODB.Recordset
cnDcs.ConnectionString=“DSN=AlertingValue”_
“;UID=sa;PWD=sa”
cnDcs.Properties(“Prompt”)=adPromptComplete
rsDcs.Open“select TagName from AlertingTagValue”,_ cn,adOpenKeyset,adLockOptimistic,adCmdText
Do While Not rsDcs.EOF
gTagDb(rsDcs!TagName).Value=rsDcs!TagValue
rsDcs.Update
rsDcs.MoveNext
Loop
cnDcs.Close
f.在RSView32项目管理器的Macro功能模块中,创建名为StartUp的宏文件,并在该文件中编写代码:VbaExec AlertingCriticalValueg.在RSView32项目管理器的System\startup功能模块中,设置系统运行的起始(startup)宏文件为StartUp,使得DCS系统运行的同时,执行AlertingCriticalValue过程,从AlertingValue数据库中获取工控参数的报警限值,为系统安全运行提供可靠数据。
3、结束语
在海洋平台水处理DCS系统中,利用RSView32组态软件的内嵌式语言——VBA,以及网络技术和数据库管理技术,实现了在上位机监控系统正常运行的情况下对平台水处理DCS系统工控参数报警限值的在线管理,在不增加任何软硬件成本的前提下, 增强了系统在数据管理方面的功能,提高了系统功能的可扩展性和可靠性,消除了海上石油生产因工艺改进和设备更新所可能造成的安全隐患,为平台石油生产的安全运行提供了可靠保障,也为企业计算机控制系统的建设提供了很好的借鉴作用。