资讯 > 正文

平台水处理DCS系统报警限值在线管理实现

发布时间:2009-09-24 来源:www.cechina.cn

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

返回工控参数报警下限对应的Tag名称


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

用于存储各工控参数报警上下限用Tag的当前值及相关属性


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

创建报警上下限在线管理用窗体frmAlertingV
窗体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 AlertingCriticalValue
        g.在RSView32项目管理器的System\startup功能模块中,设置系统运行的起始(startup)宏文件为StartUp,使得DCS系统运行的同时,执行AlertingCriticalValue过程,从AlertingValue数据库中获取工控参数的报警限值,为系统安全运行提供可靠数据。
        3 结束语
        在海洋平台水处理DCS系统中,利用RSView32组态软件的内嵌式语言——VBA,以及网络技术和数据库管理技术,实现了在上位机监控系统正常运行的情况下对平台水处理DCS系统工控参数报警限值的在线管理,在不增加任何软硬件成本的前提下, 增强了系统在数据管理方面的功能,提高了系统功能的可扩展性和可靠性,消除了海上石油生产因工艺改进和设备更新所可能造成的安全隐患,为平台石油生产的安全运行提供了可靠保障,也为企业计算机控制系统的建设提供了很好的借鉴作用。
        参考文献
        1.Rockwell Automation .RSView32 User’ Guides
        2.[美] E.Winemiller, J.Roff, B.Heyman, R.Groom. Visual Basic 6.0数据库开发. 清华大学出版社. 1999.9
        3.[美] David Jung, Pierre Boutquin, John D.Conley III. Visual Basic 6开发人员参考手册. 机械工业出版社. 2000.1
        4.[美]Michael Otey, Paul Conte. SQL Server2000开发指南. 清华大学出版社. 2002.1
        5.刘昌玉,张兆云,刘伟. RSView32和C++ Builder应用软件的实时信息交换.计算机工程与应用.2001.7 103~106
        6.陈增强,赵天航,刘忠信等.基于Windows NT环境下的工业锅炉监控系统设计.计算机工程与应用.2000.8 163~165
        7.邹彤.Wincc组态软件的编程技巧.化工自动化及仪表. 2001.28(2):63-64
        8.王素珍等.Rockwell RSView32 在海洋平台注水工艺流程监控系统中的应用.电气自动化.2002年第24卷第6期
        9.邵山等.自动化报警系统的开发与应用.电力系统自动化. 2001.1第25卷第2期

标签:DCS系统,测控,采油

相关文章