王华强 高孝涛
(合肥工业大学电气与自动化工程学院,合肥 230009)
现代企业生产已趋向广域化和分布式,随着互联网的进一步普及和使用,Internet将是实现分布式生产的基础[1]。基于国内目前的网络基础设施和工业应用程度,越来越多的生产企业都将Web技术应用到网络监控中以提高生产管理效率。
笔者以安利公司的聚氨酯树脂生产过程为背景,将其核心数据(报表信息和趋势曲线)发布到Web,实现远程网络监控,使生产过程更加透明可控。
安利公司的聚氨酯生产是在反应釜中进行的,一个系统包含了5个反应釜,有16种原料在反应釜中按照不同的比例配置,搅拌生产得到所需产品,反应釜生产控制系统结构如图1所示。原料阀的开关由控制室工作人员通过控制装有组态王软件的工控机(IPC),配合一台S7-300PLC完成[2]。
图1 反应釜生产控制系统结构
建立Web系统的目的是对反应釜中的温度、电机电流及物料的下料重量等信号的趋势曲线和报表信息进行监控。笔者选择组态王软件进行二次开发,设计趋势曲线和报表,并实现发布,工程技术人员可以通过访问Internet网了解实时生产状况,掌握机器的运转状况(图2)。当生产出现故障时,工程技术人员也可以通过Internet反馈的数据,初步排查故障原因,为快速进行抢修赢取宝贵时间。
图2 远程监控系统结构
组态王提供了3种形式的历史趋势曲线解决方案。其中历史趋势曲线控件是以Active X控件形式提供的,是绘制历史曲线和开放数据库互连(ODBC)数据库曲线的功能性控件[3]。由于其功能强大,可以在系统运行时动态添加、删除或隐藏曲线,实现组态王历史数据的绘制与打印,还可以实现ODBC数据库中数据记录的曲线绘制,是组态王Web发布所支持的控件。为此选择通过添加历史趋势曲线控件来实现组态王趋势曲线的设计,控件命名为HT。
历史趋势曲线设计过程中遇到的难点:保证曲线画面随信号的进入而更新;通过控件属性设置时间轴长度为3h,当放大或缩小所选区域时,曲线时间轴长度会相应缩短或变长,要想恢复3h长度需一步步放缩回来,使用较麻烦;由于信号随着每次采集而实时刷新,在未找到所需时段的历史曲线时,画面就已被新的曲线画面覆盖,以至于很难找到真正所需的历史曲线。针对这些难点,笔者的设计步骤如下:
a. 在数据词典中,将所需记录变量(电机电流信号和温度信号)的记录与安全区的记录模式设定为“每次采集记录”,将变量添加到历史趋势曲线控件的历史数据库。这样设置之后就实现了组态王对信号的采集。
b. 在画面属性的命令语言中添加程序,用来实现曲线有条件的实时更新。
c. 添加曲线暂停与曲线开始的按钮。按下曲线暂停按钮则关闭曲线实时更新的条件,按下曲线开始按钮时又能快速恢复3h时间轴长和数据的实时刷新。
其中步骤b中在画面属性的命令语言中添加的程序如下:
if(cursuspend==0)
{HT.HTUpdateToCurrentTime();}
步骤c中,曲线开始的程序段如下:
cursuspend=0;(cursuspend为数据词典中定义的内部变量)
long t=0;
t=HTConvertTime(\本站点S|年,\本站点S|月,\本站点S|日,\本站点S|时,\本站点S|分,本站点S|秒);
t=t-10800;
HT.SetTimeParam(t,0,3,2);
曲线暂停的语句如下:
Cursuspend=1;
报表的设计即数据的归档设计,包括两大块:一是建立报表窗口,主要针对当天的生产数据进行归档;二是建立数据库,存储大量归档信息,针对历史归档信息的查询,可通过条件查找,方便找到所需信息。
创建报表窗口命名为Report0。当组态王接收到物料关阀信号时(物料下料结束),即对数据进行顺序归档写入到报表窗口的表格中。脚本程序如下:
ReportSetCellString("Report0",row,1,\本站点S|日期);
ReportSetCellString("Report0",row,2,\本站点S|时间);
ReportSetCellString("Report0",row,3,物料归档名称);
ReportSetCellValue("Report0",row,4,本次重量);
ReportSetCellValue("Report0",row,5,反应釜温度);
利用Microsoft Office Access新建一个Access文件[4],将此Access文件设置为组态王工程的数据源,命名为PU4。建立表格模板(PU4MB)和记录体(JL1),即建立时间、日期、物料、本次重量和反应釜温度这5个记录及其对应的变量。
程序启动时,给数据库产生链接号,再以表格模板(PU4MB)的格式在Access数据库中建立名为KingTable的表格。程序启动时的脚本程序为:
SQLConnect(DeviceID,"dsn=PU4;uid=;pwd=");
SQLCreateTable(DeviceID,"KingTable","PU4MB");
其中DeviceID为数据库产生的链接号。
关阀信号到来时,再以记录体(JL1)的格式写入到KingTable数据库中,语句如下:
SQLInsert(DeviceID,"KingTable","JL1");
数据库的查询方法是通过添加KVADODBGrid Class控件显示查询数据,命名为Retable。添加Microsoft Date and Time Picker Control 6.0控件查询指定日期的数据信息,命名为RetableSelect。查询按钮脚本程序如下:
Retable.RemoveAllData();
long a;
long b;
string str1;
string str2;
x=RetableSelect.Month;
y=RetableSelect.Day;
if(x<10)
str1="-0"+StrFromInt(x,10);
else
str1="-"+StrFromInt(x,10);
if(y<10)
str2="-0"+StrFromInt(y,10);
else
str2="-"+StrFromInt(y,10);
\本站点条件句=StrFromInt(RetableSelect.Year,10)+str1+str2;
Retable.Where="日期={d’"+条件句+"’}";
Retable.FetchData();
Retable.FetchEnd();
组态王的Web发布系统基于Active X技术,可以在网页客户端绘制出逼真的监控画面。Web发布的组成包括:数据服务端、Web服务器和IE浏览客户端。通常情况下这3部分各在一台计算机中,笔者仅使用一台计算机同时作为组态王数据服务器与Web服务器。
在数据服务器的工程网络配置中,将本机设为联网模式,在节点类型配置为客户端所需要的所有服务器。在Web服务器的工程网络配置中建立数据服务器的远程站点,完成客户配置。这样就建立了数据服务端与Web服务器的链接,Web服务端就能共享数据服务端的信号了。
将需要发布的曲线画面(图3)和报表画面(图4)在Web发布组配置中选定为发布画面。
图3 企业局域网中IE客户端参数曲线
图4 企业局域网中IE客户端报表界面
组态王作为Web发布服务器,需申请一个固定IP,将此IP地址后缀KingViewWeb写入Web发布工具的URL。Web发布工具将工程发布后,IE客户端与Web服务器将保持高效的数据同步。此时在IE浏览器上输入URL进入IE浏览客户端,登录工程即能实现对工程的远程监控[5]。
基于组态王的Web信息发布系统以组态王软件作为设计和控制核心,在保障系统安全、稳定、可靠运行的基础上,实现了对生产的远程网络监控,且提升了系统的自动化水平。该系统扩展性强,易于升级扩充和维护,同时分工明确,避免了操作人员与工程技术人员的重复操作。
[1] 曹辉,王暄.组态软件技术及应用[M].北京:电子工业出版社,2012:1~9.
[2] 王华强,张彪.软启动器在聚氨酯树脂反应釜控制系统的研究与应用[J].化工自动化及仪表,2014,41(11):1250~1253.
[3] 王善斌.组态软件应用指南:组态王KingVIEW和西门子WinCC[M].北京:化学工业出版社,2011:95~118.
[4] 马立阁.基于组态王的Excel工业报表系统[J].工业控制计算机,2008,21(3):7~8.
[5] 贺威, 张连山,吴忻生.基于Internet的远程过程控制实验系统[J].控制工程,2007,14(z1):115~117.