水压机试验监控及信息存储分析系统的研制
2021-12-15陈亮
陈 亮
(中石化石油机械股份有限公司沙市钢管分公司,湖北 荆州 434001)
随着工业控制技术的发展和信息化系统的建设,某公司钢管生产线水压机试验及信息存储分析系统逐渐暴露出以下问题[1-15]:
(1)原系统硬件采集卡为研华ISA插拔式采集卡,目前市场上所有品牌工控机均取消了ISA插槽,且研华公司已经停产了ISA插槽式采集卡。此情况的发生导致原水压试验系统的采集卡无法作为备件使用。
(2)原试验系统缺乏管号输入错误修正功能,导致操作人员压完的某根钢管,该管已经转运至后续岗位,过一段时间发现管号输错时,缺乏一键式将数据库中原错误管号刷新为正确管号的功能。由此增加了向客户驻厂监理解释答疑的工作。
(3)MES(Manufacturing Execution System)制造企业生产过程执行管理系统现场生产执行层软件均在WIN 7 64位系统、微软Visual Studio 2013 C#(缩写VS2013 C#)框架下开发,原水压试验系统在XP系统下Visual Basic Script平台开发运行,二者同时安装在同一台工控机上运行时,频繁出现不兼容冲突。使得水压岗位采用2台电脑,2套键盘鼠标供操作人员交互使用,压管效率跟不上生产节奏。
(4)原系统不具备压管数据往MES系统转存的功能,压管信息不能形成双备份。
为解决以上问题,中国石化石油机械股份有限公司沙市钢管分公司(简称沙市钢管)自主攻关研发了一套基于C#及Prodave IP协议的水压机打压试验及信息存储分析系统。
1 系统软硬件架构
水压机试验及信息存储分析系统的软硬件架构如图1所示。
图1 系统软硬件架构示意
工作原理:工控机显示屏中输入管号、材质、保压时间、试压值等信息,水压/油压传感器获取水压/油压信号传输给PLC 300模拟量AI模块,PLC CPU程序进行模数转换后,油压/水压信息通过Prodave 6.2协议转换之后经过网卡1被工控机主机中自行开发的VS2013 C#程序实时读取,读取后可通过C# MSchart控件动态展示水压实时曲线供操作工参考,该C#程序可实现调型参数下载设备功能,可实现试验数据抛存本地数据库功能、管号修正功能,且可通过软件菜单式操作后自动分析本地数据,形成质量曲线报表,还可将工控机本地压管数据库通过网卡2定时自动上传至服务器Oracle数据库中。
2 Prodave 6.2的适应性及通信处理
Prodave接口协议是西门子公司推出的动态链接库,是供Windows系统使用的高级语言接口函数,使高级语言通过以太网能对PLC存储区的数据进行读写,Prodave 6.2版本支持操作系统 有Windows XP Professional、Windows Vista 32以 及Windows 7(32和64位),该接口协议软件安装过程中,自动识别操作系统,在安装过程中实现函数封装,对于使用者来说,在不同版本Windows系统上采用同一种高级语言编程,功能函数的调用方法是一致的。
自行开发的该软件系统中,工控机VS2013 C#编程平台使用Prodave 6.2接口与PLC通信时候,必须首先点击“通信连接”按钮,按钮对应的程序需要首先加载PLC CPU的IP地址,IP通信类型(西门子PLC支持IPMPIDP通信类型)、PLC CPU在硬件组态中的插槽号、CPU所在机架号;之后通过调用接口函数库中通信连接函数Prodave6.LoadConnection_ex6(),该函数会接收PLC反馈回来的通信成功与否标志位,当为0时,表示通信成功,代表工控机已经通过Prodave 6.2接口库连接上PLC,并且会给出绿色提示性语句“通信成功”;当为1时,表示通信失败,代表工控机通过Prodave 6.2接口库连接上PLC失败,程序给出红色提示性语句“通信失败,请检查通信”。当出现通信失败的警示后,需要工程师去现场处理通信链路的硬件故障或PLC端软件设置。通信连接处理流程如图2所示。
图2 通信连接处理流程示意
通信连接程序如下。
//注意在Prodave连接库中有类Program.cs,该类中定义了一个全局变量RetValue
通信异常时,硬件上排查主要查看网线的两端水晶头、工控机的网卡是否正常,软件设置上主要排查PLC的编程组态软件中的相关通信设置是否正确。
3 水压机钢管试验数据采集功能
水压机钢管试验数据采集主要包括水压值、油压值、管径、保压值、保压时间、材质、壁厚、操作员工号和管号。其中管径、保压值、保压时间、材质、壁厚和操作员工号是一次性输入,每换一根钢管自动绑定。只有水压值、油压值、管号3个数据是每根钢管不一样的,管号信息会在后面叙述。水压值、油压值采集及实时显示程序逻辑如图3所示。
图3 水压机钢管数据采集功能块C#程序流程
4 调型参数下载功能
此部分功能属于沙市钢管自动化方面首次尝试使用微软底层C#语言直接对西门子PLC进行调型参数写入下载操作,在各车间西门子上位机升级及将来可能的数字化车间建设等方面有广阔的应用场景。调型参数下载实现流程如图4所示。
图4 调型参数下载功能实现流程
5 水压实时曲线显示功能
VS2013 C#平台进行曲线实时显示采用的是Chart曲线图表控件,对该控件菜单中相关功能项进行设置后,通过程序进行水压变量数组输入,描点连线,形成实时曲线。水压实时曲线显示程序实现逻辑如图5所示。
图5 水压实时曲线显示程序实现逻辑示意
6 水压机钢管数据抛存本地数据库功能
压管数据存储数据库采用微软Access2013,支持ODBC(Open Database Connectivity)开放数据库互联技术,可与其他数据库互联。压管数据抛存Access2013的实现逻辑如图6所示。
图6 压管数据抛存本地数据库功能实现逻辑示意
7 管号输错修正功能模块
该模块的功能是:当操作人员水压试验一根钢管,输入管号时候,由于手误,将管号输错后,运行通过该功能进行修正。管号修正功能实现逻辑如图7所示。
图7 管号修正功能实现逻辑示意
8 历史曲线质量分析报表功能
此功能块是为驻厂监理检验水压试验钢管质量提供记录,或者为后期相关标准审核时提供数据支撑。此部分由于对实时性要求不高,采取微软事件驱动机制来进行开发。主要分为两部分,一部分为历史压力曲线绘制,另一部分为试验报告。
8.1 历史压力曲线绘制
根据驻厂监理的要求,需要提供按历史管号查询该钢管保压期间水压压力变化曲线,方便直观地抽查该根钢管保压期间压力值变化情况。
VS2013 C#平台绘制历史曲线采用chart控件,首先在开发平台上设置chart控件要展示的曲线类型为曲线型(SPLINE型),之后通过C#语句设置Chart控件的横坐标与纵坐标格数,输入管号后,通过数据库查询函数Query(GH),查询本文第5节提到某根钢管历史数据库中的系列水压值与时间值作为坐标,通过Chart控件自带的函数chart1.Series[0].Points.DataBindXY(iXAxis,yValue)获取对应坐标进行曲线绘制。
具体历史曲线绘制的程序如下:
8.2 试验报告功能实现
此部分主要是通过数据库查询函数将查询到的某个钢管的管号、管径、壁厚、材质、试压值、最低值、最高值、保压完毕时间、结论、日期和操作员等信息予以展示,具体C#程序实现流程如图8所示。
图8 试验报告功能实现流程示意
由图8可知,关于计算保压过程中的水压最高值与最低值极为重要,因为这2个值是判定合格与否的标准,当水压最高值大于工艺要求的试压值上限认为不合格,当水压最低值小于工艺要求的试压值认为不合格。最高值与最低值的寻找这里采用数据结构算法中的冒泡法实现。具体程序如下:
水压历史曲线质量报表查询界面如图9所示。
图9 水压历史曲线质量报表界面
9 本地自动抛存MES oracle数据库功能
过去水压机的压管信息由于只在现场工控机本地数据库中存储,出现过现场工控机硬盘损坏后,压管信息报表便无法读取,检查前,需要大规模人工补交记录。针对此情况,此次研发特别强化了压管信息双备份功能,开发了本地Access2013的压管数据信息往MES Oracle自动抛存功能,实现本地电脑和服务器各存一份。
本地数据库自动抛存MES Oracle数据库功能实现逻辑,如图10所示。
图10 数据抛存MES逻辑流程示意
10 结 语
综上所述,新开发的水压机试验及信息存储分析系统可满足:
(1)采集数据通过网线以网络形式获取,无需采集卡做备件。
(2)该系统除了基本的供操作人员进行打压试验的参考判别功能外,特别增加了管号修正功能。
(3)该系统采用与沙市钢管MES统一的开发平台(VS2013 C#平台),使二者在同一电脑上运行具有较好的兼容性,提高了生产节奏。
(4)新系统具备自动往MES系统转存数据的功能,形成信息和安全的双备份。
该焊管水压机试验及信息存储分析系统已得到很好的应用,水压设备压管数据全自动采集及保存且实现双备份,能为钢管水压质量的可追溯性提供数据支撑。