任 帅 王海燕 陈 旭 赵丽君 韩利平 张佐伊
(1. 内蒙古西部天然气股份有限公司,内蒙古 鄂尔多斯 017000;2. 内蒙古西部天然气管道运行有限责任公司,内蒙古 呼和浩特 010000;3. 辽宁石油化工大学石油天然气工程学院, 辽宁 抚顺 113001)
腐蚀是石化行业中设备失效的重要原因之一。大多数石化工厂操作涉及大量设备和管道,以及各种工艺介质,其中包括易燃烃类,剧毒的气体,强酸或腐蚀剂等。一旦设备故障发生,如工艺介质泄漏,设备爆炸等,往往会给企业和社会带来巨大的损失[1]。如2005年3月21日,山东平阴鲁西化工第三化肥厂有限公司尿素合成塔爆炸,事故是由于应力腐蚀开裂导致,最终造成4人死亡,32人受伤;2010年1月7日,兰州石化公司316#罐区发生爆炸,其原因是由于罐区底部一出口管线弯头因腐蚀失效导致爆炸,造成6人死亡,6人受伤。纵观世界各国,这种腐蚀事故频繁发生,造成的生命和财产损失已经到了相当严重的程度[2],由此可见石化行业的防腐工作十分重要。
在石油化工领域,有大量关于腐蚀防护措施和建议的报告,以及对各种材料防腐技术的分析,但这些信息在时间上和空间上都是独立的、分散的,查阅这些资料需要消耗大量时间,因此把其合理的整合到一起,并且提供便捷的查询方式,这样就能提高防腐工作的效率[3]。数据库技术为整合这些信息提供了可能,随着计算机网络技术的发展,建设先进的基于计算机网络技术平台的腐蚀网络数据库已日渐成熟,这样就可以容易地实现授权的数据网上传送、数据修改和管理、数据异地共享[4]。近十年我国建立了许多腐蚀数据库[5-13],但由于这些数据库运行环境各异,数据库编制软件也不相同,这导致腐蚀信息不能被高效利用。本工作建立的腐蚀案例库正是基于以上思想开发完成,案例库收集了大量石化设备腐蚀案例,并通过Internet实现案例信息的在线共享。
石化设备腐蚀案例库采用的是SQL Server+ASP.NET技术。ASP.NET是目前主流网络开发技术之一,本系统所用的ASP.NET为4.0版本,其具有运行性能好、简易性、灵活性、可管理性等优点,使网络程序开发更倾向于智能化,运行起来与windows下的应用程序一样流畅[14]。案例库数据管理采用的是SQL Server2005数据库,它可以在网络环境下运行,支持B/S的结构体系,用来对存储的数据进行组织、管理和检索。本系统的设计流程如图1所示。
图1 系统设计流程图
通过Visual Studio2010的ASP.NET技术实现系统前台网站建立,系统设计语言采用C#,利用SQL Server 2005建立后台数据库。系统结构采用浏览器/服务器模式(B/S),与客户机/服务器(C/S)结构相比,它大大降低了系统维护和更新成本。B/S模式主要由三部分组成:web浏览器,web服务器,数据库服务器。浏览器是用来登录系统,数据库服务器用于处理数据,Web服务器起到了连接web浏览器和数据库服务器的作用。ASP.NET完成浏览器网页的设计,石化设备腐蚀案例库作为数据库服务器。操作人员可以通过前台发出相关指令,从而对后台数据库中案例进行管理、查询等相关操作。
在许多情况下,腐蚀事故都没有得到妥善记录,因此,在建立案例库之前应对收集到的腐蚀案例进行分析归纳。先描述腐蚀案例的基本信息,包括案例概况和发生腐蚀的设备名称等,并对腐蚀案例发生的工作环境进行阐述,然后对案例中的设备进行宏观检查,再根据实际情况找出腐蚀介质及腐蚀产物,接着根据分析的数据信息进行综合分析,总结设备腐蚀失效发生的原因,最后得出结论并且提出防止同类腐蚀失效事件发生的建议。因此,本系统把腐蚀案例分为案例基本信息、宏观检查、腐蚀介质、腐蚀产物、综合分析、结论和建议和参考文献7个部分。这7个部分分别又包括若干个小项,具体分类如表1所示。除此之外,我们为每个案例添加了相应的图片,从而辅助案例说明,帮助访问者更好的理解案例。
表1 腐蚀案例分析分类表
系统利用网站发出指令通过web服务器对案例库进行管理和询查,从而实现案例信息网络共享的目的。为了提高系统安全性,本系统采用的安全策略是:把用户分为普通用户和管理员用户,其中管理员用户必须通过账号和密码验证才能对系统进行管理,为了避免SQL注入式攻击,管理员用户密码采用了MD5加密算法;SQL Server2005数据库采用Windows身份验证登录。本系统功能整体框架如图2所示。
图2 系统功能框架
本系统利用ASP.NET技术中的Web Form框架来开发网站,其优点是提供了丰富的服务器控件,从而减少了大量代码的编写,并且支持视图状态,实现显示逻辑和处理逻辑的分离(asp代码和html代码分离)。在开发本系统时,应用到以下几个关键 技术:
(1)为了提高网站维护效率,在开发本网站时,使用了代码封装技术,将功能代码封装到公共类中,公共类包含的方法分别为:GetConnection、MessageBox、ExecSQL、GetDataSet、checkLogin和RandomNum这6个方法,以避免相同代码的重复编写;
(2)本系统实现的搜索功能,主要是应用SQL语句中的Like运算符进行模糊查询;
(3)使用FrameSet框架设计后台管理模块,用于分割视窗,不同框架之间可以交换信息和资料;
(4)使用DataList控件绑定数据并实现分页,转化GridView控件中绑定数据的格式。
图3是系统的主界面(网站主页)。普通用户无需登录验证,可以直接访问系统查询案例。管理员用户必须通过账号和密码才能登录管理系统维护案例库。为了存储管理员登录信息,在数据库中建立一张管理员表如图4所示。
图3 系统主界面
图4 管理员信息表
登录案例库管理系统后,先通过对某一案例的查询得出结果,不仅可以查看搜索到的案例,还可以点击对应案例尾部的编辑和删除按钮,这样就可以对该案例进行编辑和删除操作,同时,在管理系统中也可以对管理员信息进行添加、修改和删除操作,如图5所示。
图5 管理系统界面
点击主页的案例查询进入案例查询界面,如图6所示。查询方式分为两种:基本查询和高级查询。基本查询可以先选择装置名称,然后输入案例名称关键字查询;高级查询主要以设备名称、材料类型、失效模式和腐蚀介质作为查询条件来查询。
图6 案例查询界面
本系统对数据库的操作是通过ADO.NET实现的。ADO.NET主要包括Connection、Command、DataReader、DataSet和DataAdapter对象。其中SqlConnection对象用于连接后台SQL Server数据库,在这之前需在Web.config文件中配置与数据库连接的字符串,这样可以避免系统转移带来的困难。Command对象用于对案例的查询、添加、删除和修改,这些操作的实现方式都使用SQL语句。具体实现过程如下:
(1)查询案例:调用公共类中的GetDataSet方法,首先将查询的关键语句存储到Session变量中,然后在search.aspx页中执行SQL语句,最后将查询结果绑定到GridView控件,在浏览器中显示出来;
(2)添加、删除和修改案例:调用公共类中ExecSQL方法,首先利用SqlConnection对连接到数据库,发然后使用Command对象的ExecuteNonQuery方法实现相关操作。
石化设备腐蚀共享案例库共享系统利用ASP.NET+SQL Server模式建立,在Windows操作环境下运行,其结构采用B/S模式。共享系统分为数据查询和数据管理两个部分,为防腐工作提供了一个高效的操作平台。
系统采用的代码分装、逻辑和表示代码分离、ADO.NET等技术,不仅提高了代码使用效率,还使整个系统结构层次分明,为今后案例库的扩展提供了方便。
SQL Server+ASP.NET模式提供了简易、高效的系统开发途径,而且SQL Server+ASP.NET与Windows操作系统有很高的兼容性,又由于Windows系统为当下主流操作系统,所以这种模式可以应用到更多的领域,为更多领域的数据共享提供便利。