魏曉晴,吳旭光,白曉娟,郝 方,張 偉
(1. 西北工業(yè)大學(xué) 航海學(xué)院,西安 710072;2. 中航工業(yè)沈陽飛機(jī)工業(yè)(集團(tuán))有限公司,沈陽 110032)
工業(yè)注塑機(jī)[1]逐漸向著特大型,精密儀器的方向發(fā)展,因而對(duì)控制系統(tǒng)的要求越來越高,如今基于嵌入式的專用計(jì)算機(jī)控制系統(tǒng)已經(jīng)占據(jù)了主導(dǎo)地位[2],這類控制系統(tǒng)能夠滿足特定的注塑需求,實(shí)現(xiàn)高精度的控制功能,存儲(chǔ)大量的模具資料。
更可靠,更直觀的控制界面是控制系統(tǒng)發(fā)展的要求。本文的界面就是為注塑機(jī)的一種嵌入式控制系統(tǒng)設(shè)計(jì)的,與傳統(tǒng)的控制界面相比,具有以下優(yōu)勢(shì):多種控制功能、良好的通信功能、實(shí)時(shí)性強(qiáng)、圖形動(dòng)畫界面。提高了界面的易用性、可靠性和美觀性。
本文設(shè)計(jì)的工作界面基于一種嵌入式控制系統(tǒng)[3],該控制系統(tǒng)采用上位機(jī)+下位機(jī)的結(jié)構(gòu)[4],如圖1所示。
上位機(jī)完成人機(jī)接口、控制算法、系統(tǒng)管理等功能,硬件上選用PC104總線結(jié)構(gòu)的VDX-6354,功能強(qiáng)大。其外圍接口包括:普通鍵盤和鼠標(biāo)、任意尺寸的VGA或者TFT液晶顯示屏和觸摸屏、CF卡、以太網(wǎng)口、串口、USB口及音頻接口等。軟件上選用Windows XPe操作系統(tǒng),可支持多種通用語言,如C++,可靠性高,處理速度快,人機(jī)界面友好。
下位機(jī)負(fù)責(zé)數(shù)據(jù)采集、開關(guān)量I/O、數(shù)據(jù)預(yù)處理、D/A轉(zhuǎn)換等任務(wù),根據(jù)需要選擇了16位低功耗高性能的MSP430F149芯片。
上、下位機(jī)之間通過RS-485實(shí)現(xiàn)串行通信,傳輸速度快,距離遠(yuǎn),并且能夠組網(wǎng),使系統(tǒng)具有良好的可擴(kuò)展性。
本系統(tǒng)上位機(jī)操作系統(tǒng)是Windows,因而用C++來進(jìn)行界面開發(fā)就十分方便,并且界面實(shí)時(shí)性好,友好易用。因此本文運(yùn)用VC++的MFC,編寫基于對(duì)話框的工作界面,并且選用上位機(jī)串口進(jìn)行通信。
該界面可對(duì)注塑機(jī)運(yùn)作情況進(jìn)行監(jiān)控,并可通過調(diào)整參數(shù)等而改變注塑機(jī)的工作,根據(jù)需求,主要可劃分為監(jiān)控界面和設(shè)置界面。
界面操作流程如圖2所示:系統(tǒng)啟動(dòng),自檢完成后進(jìn)入主畫面,從該界面可進(jìn)入六種操作模式,任何一個(gè)操作模式在運(yùn)行前都應(yīng)該通過串口向下位機(jī)申請(qǐng)信號(hào)量,沒有取得該信號(hào)量的時(shí)候不被允許進(jìn)入該項(xiàng)操作。
監(jiān)控部分:生產(chǎn)狀況及各主要參數(shù)之監(jiān)察頁面是整個(gè)界面系統(tǒng)的重點(diǎn),承載了主要的控制工作。因?yàn)橛腥N控制工作方式[5],監(jiān)控部分可劃分為三個(gè)子界面,分別是:手動(dòng)控制模式,半自動(dòng)控制模式和全自動(dòng)控制模式。手動(dòng)模式時(shí)上位機(jī)發(fā)出一個(gè)命令,下位機(jī)控制注塑機(jī)完成一個(gè)生產(chǎn)動(dòng)作;半自動(dòng)模式時(shí)上位機(jī)發(fā)出一個(gè)命令,下位機(jī)控制注塑機(jī)完成一個(gè)生產(chǎn)周期;全自動(dòng)模式時(shí)下位機(jī)控制注塑機(jī)自動(dòng)完成上位機(jī)設(shè)定的N個(gè)生產(chǎn)周期。
設(shè)置部分:各動(dòng)作與狀態(tài)參數(shù)之設(shè)置頁面。可分為系統(tǒng)參數(shù)設(shè)置模式,手動(dòng)調(diào)模模式和系統(tǒng)調(diào)試模式三個(gè)子界面。
下面以監(jiān)控工作模式的半自動(dòng)控制界面為例,分析界面的具體設(shè)計(jì)與實(shí)現(xiàn)。
2.2.1 界面的設(shè)計(jì)
整個(gè)界面可分為標(biāo)題欄、菜單欄和工作區(qū)三大部分。標(biāo)題欄顯示軟件圖標(biāo),以及當(dāng)前工作頁面名稱。菜單欄可實(shí)現(xiàn)控制功能以及頁面跳轉(zhuǎn)。主工作區(qū)對(duì)生產(chǎn)狀況及各主要參數(shù)進(jìn)行監(jiān)察。
主工作區(qū)又可分為三個(gè)部分:工作環(huán)境監(jiān)控,工藝流程監(jiān)控,工作情況監(jiān)控與警報(bào),如圖3所示。
工作環(huán)境監(jiān)控:如時(shí)間顯示、環(huán)境溫度顯示等等。
工藝流程監(jiān)控:將一個(gè)塑模的整個(gè)工藝周期分為9個(gè)工作段,并且以動(dòng)畫形式表現(xiàn)在界面上,更直觀方便的實(shí)現(xiàn)了對(duì)注塑機(jī)工作的實(shí)時(shí)監(jiān)控。
工作情況監(jiān)控與警報(bào):顯示警報(bào)監(jiān)控下的壓力值、溫度比、運(yùn)行動(dòng)作、螺桿轉(zhuǎn)速、動(dòng)作完成情況等等。
2.2.2 半自動(dòng)控制模式的實(shí)現(xiàn)
該模式實(shí)現(xiàn)的控制功能為:上位機(jī)界面向下位機(jī)系統(tǒng)發(fā)出一個(gè)命令,下位機(jī)控制注塑機(jī)完成一個(gè)工作周期。
算法實(shí)現(xiàn)如下:設(shè)定一個(gè)BULL型控制變量m_w,默認(rèn)為FALSE,如果菜單項(xiàng)命令“開始/下一?!北稽c(diǎn)擊,該變量變?yōu)門RUE,并且向下位機(jī)發(fā)送開始信號(hào),下位機(jī)收到信號(hào)后按順序調(diào)用完成一個(gè)塑模的9個(gè)工作段的全部代碼,控制機(jī)器完成一周期工作,并且向上位機(jī)發(fā)送停止信號(hào),上位機(jī)收到信號(hào)后將m_w變?yōu)镕ALSE,界面同時(shí)停止監(jiān)控。部分代碼示例如下:
1)菜單項(xiàng)命令“開始/下一模”被點(diǎn)擊時(shí),m_w的狀態(tài)設(shè)定:
2)完成一模后,收到下位機(jī)停止信號(hào),m_w=FALSE,系統(tǒng)停止,并且各變量清零:
m_w=FALSE; m_3_8=_T("未運(yùn)行");m_3_43=_T("停止監(jiān)控");//監(jiān)控停止
l=0;k=0;n=0;r=0;s=0;v=0;z=0;a=0;……//界 面各變量清零
為了在實(shí)現(xiàn)多種控制功能的基礎(chǔ)上,滿足人機(jī)的友好交互,這里將高實(shí)時(shí)性且易實(shí)現(xiàn)的C++“異或擦除”動(dòng)畫技術(shù)運(yùn)用于界面的開發(fā),將注塑機(jī)的實(shí)時(shí)工作情況以動(dòng)畫形式表現(xiàn)在界面上,更直觀方便的實(shí)現(xiàn)了監(jiān)控,如圖3所示。
該動(dòng)畫原理是:在圖像所在原位置反色畫出圖像,二者相消,相當(dāng)于擦除原圖像;并在新位置繪出新圖像。如果反復(fù)不斷地擦除和重新繪畫,圖像看起來就會(huì)像是在屏幕上穿越移動(dòng)。它占用內(nèi)存資源少且執(zhí)行速度快,而諸如利用動(dòng)態(tài)開辟圖視口方法、利用顯示頁和編輯頁交替變化、利用畫面存儲(chǔ)再重放的方法等程序比較復(fù)雜,且要對(duì)圖像不斷進(jìn)行存取操作,這需要耗費(fèi)大量內(nèi)存資源,降低系統(tǒng)實(shí)時(shí)性,而異或擦除法動(dòng)畫則可以很好解決上述問題。
該動(dòng)畫的實(shí)現(xiàn)過程如下:根據(jù)工藝流程獨(dú)立編寫各個(gè)工作段顯示代碼,下位機(jī)運(yùn)行到哪個(gè)工作段,上位機(jī)獲得相應(yīng)信號(hào),調(diào)用相應(yīng)圖像顯示代碼,以顯示當(dāng)前工作畫面。
部分代碼示例(如開模工作段)如下:
本界面提供了與下位機(jī)通信的接口,從而形成了一個(gè)功能比較完整的系統(tǒng)。通信串口選用RS-485[6],異步,半雙工傳輸,默認(rèn)通訊協(xié)議方式采用ASCII方式。它數(shù)據(jù)最高傳輸速率高,抗共模噪聲干擾性好,傳輸距離遠(yuǎn),并且能夠組網(wǎng),使系統(tǒng)具有良好的可擴(kuò)展性。
安裝驅(qū)動(dòng)后,將RS485串口模擬為上位機(jī)的COM口,就可以利用VC的通信控件MSComm編程串口通信,進(jìn)行串口初始化,捕捉并處理各種通信事件,完成接收數(shù)據(jù)、發(fā)送數(shù)據(jù)等通信管理。該控件采用事件驅(qū)動(dòng)的接收方式。
向下位機(jī)發(fā)送數(shù)據(jù)的部分實(shí)現(xiàn)代碼如下:
本文構(gòu)建了基于嵌入式控制系統(tǒng)的注塑機(jī)圖形工作界面,在完成多種控制功能和通信任務(wù)的基礎(chǔ)上,將“異或擦除”動(dòng)畫技術(shù)運(yùn)用于嵌入式工作界面開發(fā),實(shí)現(xiàn)了圖形化的工作監(jiān)控。測試證明,該界面能夠準(zhǔn)確穩(wěn)定地完成實(shí)時(shí)監(jiān)控、通信、顯示功能,達(dá)到了預(yù)期的良好效果。
本文創(chuàng)新點(diǎn):充分利用硬件資源,實(shí)現(xiàn)了多種上位機(jī)控制模式算法,并且把“異或擦除”動(dòng)畫技術(shù)應(yīng)用于工業(yè)控制(此方法也同樣適應(yīng)用于其他微控制器的人機(jī)工作界面),選用RS485通信增強(qiáng)了系統(tǒng)的可擴(kuò)展性。
[1] 鐘漢如. 注塑機(jī)控制系統(tǒng)[M]. 北京: 化學(xué)工業(yè)出版社,2004.
[2] 吳建華. 嵌入式網(wǎng)絡(luò)注塑機(jī)人機(jī)界面設(shè)計(jì)[D]. 浙江大學(xué),2005.
[3] 肖鼎新, 吳旭光, 馮歡歡, 侯京鋒. 基于PC/104的工業(yè)注塑機(jī)控制器設(shè)計(jì)[J]. 制造業(yè)自動(dòng)化, 2010, 32(10): 70-73.
[4] 高云迪, 吳旭光, 史建華 , 胡超凡. 基于嵌入式Linux的工業(yè)注塑機(jī)控制器設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制, 2009,17(1): 69-71.
[5] 方慶華, 康存鋒, 馬春敏. 基于軟PLC的全電子注塑機(jī)控制系統(tǒng)設(shè)計(jì)[J]. 工程塑料應(yīng)用, 2006, 34(4): 58-60.
[6] 李現(xiàn)勇. Visual C++串口通信技術(shù)與工程實(shí)踐[M]. 北京:人民郵電出版社, 2004.