作者:秦立华 Author: LiHua Qin
单位:深圳市汉东玻璃机械有限公司 ShenZhen HanDong Glass Machinery Co.,Ltd
职业:工程师 Metier:Engineer
普通浮法玻璃在经过钢化处理后,硬度可以比没有钢化前提高4-5倍,而且在玻璃破碎时都呈颗粒状,如果用钢化过的玻璃做夹层玻璃,就成为安全玻璃,即在玻璃破碎后颗粒全部粘在PVB胶片上,普遍应用在汽车的前挡玻璃、高层建筑、政府工程、防弹玻璃…….。
但是经过钢化的玻璃有存在自爆的隐患,在无外力作用时仍会发生自爆,这是钢化玻璃自身的特性所决定。钢化玻璃自爆源于硫化镍(Nis),在钢化处理的加热阶段,硫化镍是高温态的(α-Nis)
在快速冷却时,高温态的(α-Nis)来不及向低温态的(β-Nis)进行转变。这种晶型转变从热处理后的几分钟到安装后的几十年一直存在,(α-Nis)转变为(β-Nis)会导致体积膨胀,破坏玻璃内部的应力平衡,最终导致玻璃自爆。
目前钢化玻璃的自爆隐患没有有效的补救方法,国内和国外都普遍采用均质(也称引爆、热浸)的方法将玻璃装进炉内,然后匀速加温到290℃后恒温2-8小时不等,将存在"自爆"隐患的玻璃提前引爆,从而减小钢化玻璃安装后再次发生"自爆"的机率。
因为均质的产能低,耗电量大(5T炉)总功率已经超出400KW,加上玻璃自爆后的直接经济损失,所以均质测试成本居高不下,目前国内会经均质测试的主要是部分政府工程和大型公共设施如,机场……等。
均质炉的基本工作原理及要求:
1、 炉的升温时间可以在范围内设置(30-150min)
2、 恒温时间可以在范围内设置(10-480min)
3、 恒温温度可以在范围内设置(80--300℃)
4、 降温可以曲线降温、自由降温选择。
5、 正常运行时恒温度在290℃±10℃
6、 在运行中实时保存数据,当过程结束后以便打印报告,做为此批玻璃已经做过均质测试的依据,打印的报告中必须包含玻璃、客户信息...当时的温度曲线等。
7、 在查询历史时,未避免产单过多查找费时,必须有信息过滤功能。
8、 为保证均质质量,分6区独立控制温度,还有2路活动点温度探头,可以自由的插入到玻璃的任何缝隙中。也就是总共有8路温度。
9、 可以选择一条曲线打印,也可以选择多条曲线同时打印。
均质炉的温度是由普通加热管加热空气后,通过6个循环风机吹入炉内,再从炉体顶部抽回进加热仓,如此循环,它和普通的加热箱有着本质的区别。
均质炉的工作原理看似简单,但目前国内做的比较好的公司相当少。一台合格的均质炉不但控制程序要求高,而且炉体结构相当重要,在炉子运行时必须保证炉体内的温度均匀,这就关系着这台炉子的整体结构,如:加热功率,风机功率,空气对流状况。如果炉内温度不均匀会导致均质后的玻璃仍然自爆率很高。
有些均质炉设备为求运行时的曲线美观,普遍采用的方法有:1、拉长温度采集时间,这样可以减少曲线的波浪。2、将热电偶放在风道内,这样看起来温度曲线很理想,但炉内的温度和风道内的温度相差特别大。这也是玻璃均质测试后仍然会自爆的原因之一。有资料显示:国外最好的均质炉,炉内的温差也有将近30℃。
均质炉的结构示意图:
在本方案中有六台加热循环风机,一台降温用的冷风机,六个区的加热。
电气控制采用如下配置:
1、力控监控组态软件1套 (控制策略版)
2、研华工业电脑1台 (IPC-610)
3、研华采集卡 PCI-1723 1套 (此板卡有8D/A 16DIO)
4、研华温度模块4520 & 4018 各1
5、惠普打印机1台
6、台湾登敏电力调节器6台 (用于调节6个加热区的输出功率)
说明:
因为要使用到关系数据库来保存机器运行中的温度数据和产品信息,本人也比较熟悉力控组态软件,因此使用了子图里面的内部控件之"ODBC历史曲线",用于作为历史查询的用途,在运行时用内部控件"温控曲线"作实时监测,同时力控的控制策略版具有PID的功能。全面的I/O支持,力控支持研华的全系列板卡。研华的温度模块4018。
此项目的所有控制都在力控的动作脚本里完成。
系统图:
程序运行基本工作原理:
1、 输入正确的升温时间,恒温时间,恒温温度,结束温度。
2、 输入正确的玻璃规格、数量、产地、客户信息…..
3、 启动均质炉后,程序运行启动循环风机,根据设置的恒温温度,系统开始控制加热输出功率,按照设置的升温斜率在规定的时间内使炉内达到恒温温度,这其间可能会有个别区域的温度存在时间上的先后才达到恒温温度,程序必须等到6个区域的温度都达到设定值后,开始进入恒温度程序,同时开始计时,计时结束后,就是恒温时间到达后,停止恒温,进入降温阶段,根据选择有"曲线降温"、"自由降温",曲线降温由PID完成根据降温时间和结束温度计算降温斜率,"自由降温"由程序完成,在降温度时开启天窗让热空气自由排出。
4、 自动保存,自动运行其间,温度模块的采集周期是100ms,每间隔180s程序就自动写一次温度数据进数据库。
5、 打印报告,关系数据库Access,由ODBC历史曲线控件调出数据,绘制成曲线。
力控开发环境
主窗口开发:
此画面用于监视温度曲线,主要的控件有"温控曲线","温控曲线"控件的使用比较简单,这里不再介绍其的组态方法了。
工作参数开发
此画面用于输入工作时的有关信息,在自动运行启动后,本画面的输入必须被禁止。
历史查询的开发:
本画面相当重要,它将输出在本机器上所做的均质测试的数据,因为最终客户要的是打印的报告。
本画面中主要有Windows控件中的表格,ODBC历史曲线。
其它的辅助选项功能:
PID参数修改画面
程序的运行之主窗口:
程序运行之历史查询:
当一个订单结束后,在此画面中调出数据并打印报告交于客户。
程序主要分三个阶段进行:
第一个阶段是:升温度阶段:
第二个阶段是:恒温度阶段:
第三个阶段是:降温度阶段:
前面我们已经做了一个"工作参数"页面,在画面下有一个"启动/停止"按钮用来启动自动工作程序,同时还必须判断填写的信息是否正确:
在"左键动作/释放鼠标"内填写如下动作脚本:
if work_mode==1 then
if (StrLen(advancebooking_unmber)<=0 ) then
msgbox(" 请填写<订单号>! ");
else
if (StrLen(yield_number)<=0 ) then
msgbox(" 请填写<生产单号>! ");
else
if (StrLen(client _name)<=0 ) then
msgbox(" 请填写<客户名称>! ");
else
if (StrLen(yieldly)<=0 ) then
msgbox( " 请填写<产地>! ");
else
if (StrLen(glass_type_1)<=0) then
msgbox(" 请填写<玻璃规格(1)> ");
else
if (StrLen(glass_size_1)<=0) then
msgbox(" 请填写<玻璃尺寸(1)> ");
else
if glass_qty_1<=0 then
msgbox(" 请正确填写<玻璃数量(1)> ");
else
if up_temp_time< 60 || up_temp_time>300 then
msgbox(" <升温时间>设置错误! ");
else
if keep_temp_time<10 || keep_temp_time>1440 then
msgbox(" <恒温时间>设置错误! ");
else
if down_temp_time<180 || down_temp_time>480 then
msgbox(" <降温时间>设置错误! ");
else
if keep_temp<80 || keep_temp >330 then
msgbox(" <恒温温度>设置错误! ");
else
if end_temp<100 || end_temp>300 then
msgbox(" <结束(降)温度>设置错误! ");
else
if msgbox("真的要启动自动工作? " ) then
auto_start=1;//自动工作启动
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
在"一般性动作"中填写动作脚本如下:
if auto_start==1 then
auto_work=1;
1_zone_up_end=0:
…………………..
6_zone_up_end=0:
up_temp_up=0;
//start_temp_1=averagely.PV;
auto_start_time=StrLeft($Date,10)+" "+StrLeft($Time,8);
//status_operator=$UserName;
start_temp=(temp_1_1.PV+temp_1_2.PV+temp_1_3.PV+temp_1_4.PV+temp_1_5.PV+temp_1_6.PV)/6:;
number _3_1=cc+1;
date_3_1=StrLeft($Date,4)+"-"+StrMid($Date,5,2)+"-"+StrMid($Date,8,2)+" "+StrLeft($Time,8);
yield_number _3_1= yield _number;
client_name_3_1= client_name;
yieldly_3_1= yieldly;
note_3_1=note_1;
………………
note_3_15=note_15;
glass_type_3_1=glass_type_1;
…………..
glass_type_3_15=glass_type_15;
…………………..
glass_size_3_15=glass_size_15;
glass_qty_3_1=glass_qty_1;
……………………
glass_qty_3_15=glass_qty_15;
up_temp_time_3_1=up_temp_time;
keep_temp_time_3_1=keep_temp_time;
down_temp_time_3_1=down_temp_time;
keep_temp_3_1=keep_temp;
end_temp_3_1=end_temp:
operator_3_1=$UserName;
dade_time="Start_qinlihua";
temp1=666666;
………………
temp9=666666;
SQLInsert(ConnectID,"data", "temp");
Delay(1000);
dade_time=StrLeft($Date,4)+"-"+StrMid($Date,5,2)+"-"+StrMid($Date,8,2)+" "+StrLeft($Time,8);
temp1=temp_1_1.PV;
………………….
temp7=temp_1_7.PV;
temp8=averagely.PV;
temp9=sel_temp.PV;
SQLInsert(ConnectID,"data", "temp");
display("主窗口"):
display_1=1;
auto_start=0;
endif
当按下按钮后,如果输入的信息不符合要求,则会弹出一对话框给予提示,否则启动机器自动运行,并将数据先写入绑定的数据表中,同时自动把画面切换到主窗口。
在"历史查询"的画面中建立一Windows表格控件,命名"table",用于显示历史的产单信息。
调出数据库中的数据进绑定的表格:
建一按钮属性"调出数据",双击,在"左键动作/释放鼠标"输入动作脚本;
SQLSelect(ConnectID,"message"," ");
SQLDisplayToGrid("table");
SQLLastError(err_msg);
将表格中选中的行读到另一个数据表绑定的表格中
这一步的操作主要是将选中的行读出到另一个数据表绑定的表格,用于在画面中显示出来。
建一按钮属性"读取记录",双击"左键动作/释放鼠标"输入动作脚本:
SQLMoveTo(row_number);
SQLGet("data_table"):
SQLLastError(err_msg);
订单号查询
建立一文本编辑框控件,命名"search_1",另在其右边建立一按钮,属性"查询",双击,在"左键动作/释放鼠标"输入动作脚本;
SQLSelect(ConnectID,"message","订单号='"+#search_1.text+"'"):
SQLDisplayToGrid("table ");
SQLLastError(err_msg);
内部控件"温控曲线"组态时提供了一个"设定变量",原则上可以用它来做升温引导(斜率),但实际应用中这个控件的X轴(时间坐标),是按照时间来走的,问题在于如果我们的炉内温度无法在规定时间内升到设定值,问题就出现了,它会导致最后我们的恒温时间缩短或还没有进入恒温,就已经开始降温了,比如说:设置升温时间60min恒温时间60min恒温度290℃,降温度:100℃,降温时间:60min,炉内的玻璃装载过多,当温度升到260℃是已经用了120min,而此时"温控曲线"控件已经开始走降温曲线了,于是加热会马上停止。所以升温斜率可以使用"温控曲线"的"设定温度"但恒温温度和降温度就必须自己在条件动作脚本里做了。限于动作脚本代码太长,不便全部列出。