焦化厂炼焦过程执行分析系统的设计与实现

2012-06-08 09:58范桂龄龚尚福
电子设计工程 2012年20期
关键词:装煤结焦单元格

范桂龄,龚尚福

(西安科技大学 计算机科学与技术学院,陕西 西安 710054)

目前,国内大部分焦化厂的炼焦生产计划与操作执行记录都是以纸制的表格为主,根据班次、炉号来填写其执行参数,参数包括推焦计划时间、结焦计划时间、装煤时间、实际推焦时间、实际结焦时间作为每1炉焦炭生产的操作记录;每个班次下班前还要通过计算器得出本班次的平均结焦计划时间、平均实际结焦时间、K1(规定指标)、K2(计划指标)、K3(指标乘积)等关键指标。手工填写虽然较为简单,但用计算器计算的过程较为繁琐,容易出错。因此将这些数据作为一个需求进行分析与开发,让计划的填写、记录的生成、指标的生成、炼焦过程查询/打印等工作都由计算机软件来完成,将大大提高焦炭冶炼生产过程的信息自动化水平、生产效率和安全保障。

1 系统需求分析与数据结构设计

首先,需要确定软件系统体系结构,采用成熟的工业组态软件作为开发平台,支持专家报表、曲线分析、设备驱动采集、面向对象脚本运算及关系数据库链接等主要功能[2-3]。既可将PLC(逻辑可编程控制器)类设备的数据采集至自身的实时数据库,也可满足操作执行的记录分析系统开发条件,将实时数据按条件转存至关系数据库(Access)中,再根据查询方式通过报表与曲线体现出来。

其次,对软件系统进行整体规划,先建立关系数据库表tab,组态软件中也有相对应的数据绑定表dat与之做数据交换,表结构如表1所示。表1组态软件数据绑定表的数据结构。

表1 数据结构Tab.1 Data structure

在组态软件中建立专家报表,共2页,一页为运行表,一页为查询表,格式如表2所示,表2为组态软件专家报表结构。

表2 报表结构Tab.2 Report structure

2 过程执行系统的设计与实现

2.1 运行表计划过程

运行表炉数与炉号为固化的序列,共54行记录,3个班次在执行计划填写时,推焦计划时间是必须要填写的,以12小时(8:00-20:00或20:00-次日8:00)工作周期,按时间顺序填写“推焦计划时间”列,并以填写某炉号的“推焦计划时间”与该炉号上一次 “装煤时间”(需要通过SQL数据查询得到)相减得出本次“结焦计划时间”。依次类推,整个表的推焦与结焦的计划时间就得出了,再将填写与计算的内容按炉号与当前日期向关系数据表tab中各插入记录,本过程的3个关键步骤如下:

1)计算结焦计划

在画面中设计按钮button1,标签内容为“结焦计划”。当填写完推焦计划后,由该按钮左键动作来完成计算过程,脚本需要先链接(SQLCONECT)数据库表tab,建立循环FOR语句,每一次循环都要执行SQLSELECT函数查询符合昨天或前天 (结焦时间为小于48小时的范围)1个炉号的 “装煤时间”,经过数据类型的转换与报表中所填写的计划时间进行相减得出该炉号结焦的计划时间,并利用报表的脚本函数将此值写至专家报表的结焦计划时间里,执行完毕后断开(SQLDISCONECT)关系库的链接。本过程关键公式如下:

结焦计划时间=推焦计划时间-上次装煤时间

2)执行计划过程

在画面中设计按钮button2,标签内容为“执行计划”。检查第1步无误后,由该按钮左键动作来完成录入数据表tab记录的过程,脚本也是需要先链接关系库表tab,建立FOR语句,每一次循环需要判断该炉号所填写的推焦时间不为null,然后执行SQLINSERT语句向数据库表tab中插入一个炉号的 “炉号”、“当前日期”、“推焦计划时间”、“结焦计划时间”,共产生本班次所填写的推焦计划时间不为null的记录数量,这样就先在数据库表中存储了推焦与结焦的计划,执行完脚本后断天数据库链接。

3)清除计划

在画面中设计按钮button3,标签为“清除计划”。由于第一次填写计划时或有错误的装煤时间记录时,整个“结焦计划时间”列是需要人工纠正的,因此当填写错误或计算错误时需要对单元格进行手工录入处理,脚本中就必须将“结焦计划时间”报表列单元格的值设置为null。

2.2 运行表执行过程记录

以上为操作工人的计划填写、执行、清除的过程,那么最终的重点是执行实际操作情况内容,因此在计划的执行过程中又需要3个记录过程,即记录实际推焦/结焦时间、推焦电流、装煤时间。

1)实际推焦/结焦时间的记录

本过程由组态软件的“条件动作1”触发实现,条件是由下位机PLC(逻辑可编程控制器)程序判断产生当前炉号值与推焦信号,上位机通过实时数据库变量与之链接,由实时数据库变量判断条件成立后执行一次脚本动作。此时,实际已经由条件触发获得了“推焦实际时间”为当前时间,根据工艺设计的“结焦实际时间”也由此而产生,链接关系库表tab,先要用SQLSELECT函数查询到当前炉号的上一次 “装煤时间”(昨天或前天),然后由“推焦实际时间”减去上一次“装煤时间”就得出“结焦实际时间”,运算至此再将实际推焦与结焦时间用SQLUPDATE函数更新至符合条件 (以当前炉号与当前日期为关键字)的记录中去,同时将该值写入至运行表的单元格中,执行完脚本断开关系库。本过程关键公式如下:

结焦实际时间=推焦实际时间-上次装煤时间

2)推焦电流的记录

推焦电流的采集也是一个触发的信号,由PLC程序判断保持一定时间后产生稳定的电流值,并同时触发一个电流采集的开关信号,上位机通过实时数据库变量获取到该信号时,通过“条件动作2”将电流值用SQLUPDATE语句更新至符合条件的记录中,同时将该值也写入至运行表的单元格中,。

3)装煤时间的记录

本过程也是由组态软件的“条件动作3”触发实现,条件是由下位机PLC程序判断产生当前炉号值与装煤信号,也由实时数据库变量的条件成立执行一次脚本动作。通过SQLUPDATE语句更新至符合条件的记录中,同时将该值也写入至运行表的单元格中。

2.3 运行表的结果计算

“计划出炉数”D59单元格由操作工人录入。

“实际出炉数”由电流不为0的炉号数量统计,需要对报表中所有炉号的电流值进行判断后统计,报表统计列单元格(隐藏)脚本 Q5=VALUE(if(H5>0,"1","0")),针对每一炉都进行统计,然后得出总和单元格D60=sum(Q5:Q58).

“结焦时间”为“结焦实际时间”的平均数,先将所有的“结焦实际时间”单元格通过隐藏的统计列单元格转换为分钟值 I5=value(LEFT(G5,2))*60+value(RIGHT(G5,2)),然后求和运算再除以“实际出炉数”J59=sum(I5:I58)/D60/60,即可得出 “小时.分钟” 值, 单元格 D61=left(J59,2)+":"+left(STRING(VALUE(RIGHT(J59,2))/100*60),2)经过 字 符串转换后得出“小时:分钟”的格式。

“结焦最长与最短时间”利用J60=MAX (I5:I58)/60与J61=Min(I5:I58)/60 得出“小时.分钟”值,与平均结焦时间运算方式一样,将单元格D62、D63通过对J60与J61转换为“小时:分钟”的格式。

“推焦电流”为电流值的平均数D64=SUM(I5:I58)/D60,G64=最大值 MAX(H5:H58)。

“平均操作时间”是按“推焦计划时间”与“推焦实际时间”的绝对值差的平均时间值,每列统计值为N5=ABS(L5-M5),平均操作时间 G59=TIMESTR(sum(N5:N58)/D60,2)。

“规定炉数”为生产调度部分所规定要执行的生产炉数量,G60通过录入可变,用途主要为规定结焦时间做运算依据,规定结焦时间 =(104*24)/90,104为总炉数,24为 24小时,90为“规定炉数”。

“系数K1”=计划结焦时间小于规定结焦时间±10分钟的炉数/计划推焦炉数,报表中先要得出 “规定结焦时间”J62=104*24/G60*60,然后通过所有统计列(隐藏)与之比较,R5=VALUE(if(abs(F5-J62)<10,"1","0")),最后通过求和得出计划结焦时间小于规定结焦时间±10分钟的炉数,K1单元格G61=SUM(R5:R57)/D59。

“系数K2”=实际结焦时间小于计划结焦时间±10分钟的炉数/实际推焦炉数,报表中通过所有统计列(隐藏)进行统计,公式为 P5=VALUE(if(abs(F5-G5)<10,"1","0")),对整列进行求和得出实际结焦时间小于计划结焦时间±10分钟的炉数“系数 K2”的单元格 G62=SUM(P5:P58)/D60。

“系数K3”=系数K1*系数K2,本指标重点为 K1与K2指标的乘积,值为越接近1时,生产计划的执行效果最佳,由此可得出生产过程中计划与实际生产的执行过程分析的关键指标结果。

运行表的打印与输出,当运行表按照班次的工作时间完成后即可直接打印或输出,打印与输出按钮脚本分别为PrintSheet(-1,1)、ExportExcelFile(-1,1,"")。

2.4 查询表的处理

查询表的格式是以运行表做为基础模板的,画面中建立Datetime日期控件及“查询”按钮,先选择日期控件后触发“查询”按钮表格内才会有原始数据,数据都是根据日期与炉号为条件在关系库表tab中查询到这一天所有生产记录信息,通过数据绑定表dat将数据提取至一组数据库变量中,然后通过对报表单元格进行逐一写操作实现查询的目的,与运行表共用导出、打印功能。

2.5 数据库整理

随着软件系统运行时间的增长,数据库的容量也随之增大,因此必须考虑数据库整理事件[4],需要在组态软件中建立“条件动作4”,以每天的23:59:55为触发条件,删除小于180天以前的数据记录,这样就可做到数据库的记录整理功能,避免由于长期运行而造成访问效率的降低。

最后,系统运行后根据每1张运行表即可得出当前班组的生产运行执行情况,根据查询表即可随时得出某一天的生产运行执行情况,对整个焦煤生产操作过程做到了记录分析的过程。

3 结束语

系统的设计来自于焦化厂生产管理过程的需求,上述内容以系统实现过程为重点。在系统运行后的不同阶段必定还有更详细的需求,如计划快速导入、数据补传、错误数据纠正、时钟同步、用户管理等针对性能与功能的更多需求也会逐步完善,最终实现人性化需求[5-8]。使工人用的更方便更快捷,使监管层对工人的绩效考核提供原始依据,做到方便、可靠、稳定、高效的系统特性。

[1]王晓琴.炼焦工艺[M].北京:化学工业出版社,2010.

[2]邵裕森,巴筱云.过程控制系统及仪表[M].北京:机械工业出版社,2005.

[3]马国华.监控组态软件应用-从基础到实践[M].北京:中国电力出版社,2011.

[4]仝新顺.生产与运作管理[M].南京:南京大学出版社,2007.

[5]Kurina Asuti L D,Howe L C.Fieldbus network control of industrial process[D]. Singapore:Nanyang Technological University,2001.

[6]Dierks H.PLC-automata:a new class of implementable realtime automate[M].Theotetical computer science,2001.

[7]Johnson D G.Programmable controllers for factory automation[M].New York and Basel:Marcel Dekker Inc,1987.

[8]Saygin C,Kahraman F.A web-based programmable logic controller laboratory for manufacturing engineering education[J].The International Journal of Advanced Manufacturing Technology,2004,24(7):590-598.

[9]王继峰,秦亚军,牛彦锋.供电企业农电安全生产管理的实践与探讨[J].陕西电力,2010(8):53-56.WANG Ji-feng,QIN Ya-jun,NIU Yan-feng.Probe into rural power safe production& management in power supply rnterprise[J].Shaanxi Electric Power,2010(8):53-56.

猜你喜欢
装煤结焦单元格
流水账分类统计巧实现
极薄煤层采煤机装煤效果的数学模型与数值模拟
玩转方格
玩转方格
大连重工研制出世界最大6.78 m捣固装煤推焦高端一体机
SGZ-630/264刮板输送机装煤装置的推广应用
浅谈Excel中常见统计个数函数的用法
超临界压力RP-3壁面结焦对流阻的影响
600MW机组配风改造降低锅炉NOx生成及结焦的原因分析
新型装煤底板