趙文軍
(包頭鐵道職業(yè)技術(shù)學(xué)院 內(nèi)蒙古 包頭 014060)
擴(kuò)散爐上位機(jī)軟件的開發(fā)課題具有重要的實(shí)際意義。在工業(yè)控制領(lǐng)域,使用C#編程語(yǔ)言開發(fā)的上位機(jī)應(yīng)用最廣泛[1]。 隨著社會(huì)的發(fā)展,用戶個(gè)性化的需求越來(lái)越多。在光伏行業(yè)從事太陽(yáng)能電池片制造的企業(yè)較多,不同的企業(yè)擴(kuò)散爐設(shè)備在工藝和需求上存在差異。 上位機(jī)最大的優(yōu)勢(shì)在于其能夠開發(fā)出與企業(yè)需求相互對(duì)接的產(chǎn)品,及在后期的使用過(guò)程中根據(jù)設(shè)備的需要擴(kuò)展相應(yīng)的功能[2]。需求分析是開發(fā)過(guò)程中的重要環(huán)節(jié),分析的過(guò)程要結(jié)合設(shè)備自動(dòng)化程度、企業(yè)建設(shè)規(guī)模及未來(lái)的發(fā)展模式。 在總體構(gòu)架下不斷地細(xì)化各部分的需求,能夠提高開發(fā)過(guò)程中程序設(shè)計(jì)效率,為程序設(shè)計(jì)中的特別需求提供編寫代碼空間。
上位機(jī)開發(fā)的第一階段是需求分析,此階段需要與用戶溝通以確定需求,是整個(gè)開發(fā)流程的基礎(chǔ)。 主要目的是分析光伏電池板生產(chǎn)企業(yè)對(duì)擴(kuò)散爐設(shè)備的功能和工藝需求,從而確定上位機(jī)軟件開發(fā)要實(shí)現(xiàn)的功能。 擴(kuò)散爐設(shè)備主要需求有以下3 點(diǎn):
第一,在進(jìn)行擴(kuò)散工藝時(shí),要實(shí)現(xiàn)對(duì)爐內(nèi)溫度的精準(zhǔn)控制,見圖1。 溫度的高低對(duì)太陽(yáng)能電池板的工作效率有重要的影響。 在上位機(jī)軟件開發(fā)的過(guò)程中,設(shè)備總體對(duì)溫度的需求是能夠?qū)崿F(xiàn)對(duì)溫度的精準(zhǔn)監(jiān)測(cè),在上位機(jī)界面實(shí)時(shí)顯示爐前、爐中及爐后溫度。 并在需要對(duì)工藝進(jìn)行改進(jìn)時(shí),能夠?qū)訜釡囟冗M(jìn)行方便快速的人工調(diào)節(jié)。 溫度的精準(zhǔn)控制是實(shí)現(xiàn)擴(kuò)散工藝的關(guān)鍵。

圖1 爐溫監(jiān)控界面
第二,在擴(kuò)散爐進(jìn)行擴(kuò)散工藝時(shí),需要對(duì)氣體流量閥的打開和關(guān)閉進(jìn)行準(zhǔn)確的控制,以確保進(jìn)氣量的準(zhǔn)確,使擴(kuò)散過(guò)程中產(chǎn)生的有害氣體能夠通過(guò)風(fēng)機(jī)及時(shí)排除。 此外,在進(jìn)行設(shè)備調(diào)試的過(guò)程中,還需要手動(dòng)對(duì)流量閥的狀態(tài)進(jìn)行調(diào)試。 為了實(shí)現(xiàn)這些功能,可以使用C#上位機(jī)界面來(lái)監(jiān)控流量閥的狀態(tài),并在出現(xiàn)故障時(shí)輸出報(bào)警信息。在將電池片放入爐內(nèi)的過(guò)程中,運(yùn)行界面應(yīng)該能夠顯示進(jìn)出舟的位置,并在兩個(gè)極限位置之間顯示相關(guān)的運(yùn)動(dòng)參數(shù)和工作中的運(yùn)行位置。
第三,在擴(kuò)散工藝進(jìn)行時(shí),運(yùn)行界面應(yīng)該能夠顯示工藝進(jìn)行的步驟、每步需要的時(shí)間以及剩余時(shí)間。 在上位機(jī)開發(fā)的過(guò)程中,要以實(shí)際工藝為準(zhǔn),具體到溫度高低、流量的大小和工藝的時(shí)間。 在界面上要實(shí)現(xiàn)根據(jù)工藝要求對(duì)溫度、時(shí)間和流量進(jìn)行現(xiàn)場(chǎng)調(diào)整的功能。
基于擴(kuò)散爐設(shè)備的需求研究資料,深入分析軟件開發(fā)的可行性,明確軟件開發(fā)的重難點(diǎn)并進(jìn)行細(xì)化與完善。 該階段是分析系統(tǒng)在功能上需要“實(shí)現(xiàn)什么”,具體在軟件界面中如何進(jìn)行設(shè)置。 例如,在進(jìn)行擴(kuò)散工藝時(shí),需要實(shí)時(shí)監(jiān)視并且管理整個(gè)生產(chǎn)過(guò)程。 當(dāng)某個(gè)工藝步驟發(fā)生時(shí),按照規(guī)定的時(shí)序啟動(dòng)相應(yīng)的任務(wù),以便完成過(guò)程控制的相應(yīng)功能。 最后,對(duì)需求進(jìn)行分析與整理,并使用C#語(yǔ)言編寫相應(yīng)的程序。 此過(guò)程能夠分析出在上位機(jī)開發(fā)過(guò)程中需要實(shí)現(xiàn)哪些功能,完成哪些工作。
在對(duì)擴(kuò)散爐設(shè)備整體功能和需求分析的基礎(chǔ)上進(jìn)行上位機(jī)軟件的總體結(jié)構(gòu)設(shè)計(jì)。 上位機(jī)軟件設(shè)計(jì)是將整個(gè)軟件分解成不同的模塊,每個(gè)模塊負(fù)責(zé)實(shí)現(xiàn)特定的功能。最終,通過(guò)C#語(yǔ)言編寫程序及設(shè)計(jì)軟件界面。 在對(duì)擴(kuò)散爐的功能和需求分析中可能存在一些不足之處。 在后期開發(fā)階段需要對(duì)這些不足進(jìn)行完善。 這將增加開發(fā)的難度并需要投入大量的時(shí)間。 因此,前期的準(zhǔn)備工作尤為重要。 需求分析的完整性和收集到的資料的準(zhǔn)確性,及在此基礎(chǔ)上C#語(yǔ)言應(yīng)用的熟練程度,將決定下階段開發(fā)能否順利進(jìn)行。 這些因素會(huì)影響上位機(jī)軟件系統(tǒng)的穩(wěn)定性、可靠性和實(shí)時(shí)性。
軟件的開發(fā)過(guò)程本質(zhì)就是要實(shí)現(xiàn)設(shè)備的需求。 通過(guò)對(duì)擴(kuò)散爐設(shè)備運(yùn)行過(guò)程的需求分析,可以將其劃分為以下控制單元:推舟控制單元、爐溫和氣路控制單元以及工藝運(yùn)行控制單元。 再對(duì)需求進(jìn)行細(xì)化,例如工藝控制單元要能夠?qū)崿F(xiàn)擴(kuò)散工藝根據(jù)需求進(jìn)行工藝調(diào)整,如增加工藝時(shí)間、提高溫度等。 在操作設(shè)備的過(guò)程中,會(huì)產(chǎn)生相應(yīng)的操作記錄。 為了方便工作人員的操作和查找相應(yīng)的操作記錄,需要在軟件開發(fā)過(guò)程中增加對(duì)應(yīng)的界面來(lái)細(xì)化這些需求。 隨著設(shè)備的升級(jí)和工藝水平的進(jìn)步,較先進(jìn)的擴(kuò)散爐控制系統(tǒng)均已更新或升級(jí)到微機(jī)控制。 在上位機(jī)軟件的開發(fā)過(guò)程中,要注意實(shí)用性和可操作性。 通過(guò)人與計(jì)算機(jī)之間的相互理解的交流與通信,最大程度地實(shí)現(xiàn)人機(jī)界面的信息管理服務(wù)和處理等功能。 開發(fā)完成的上位機(jī)軟件應(yīng)該能夠從界面上監(jiān)控設(shè)備運(yùn)行狀態(tài),保證數(shù)據(jù)的實(shí)時(shí)性要求。 同時(shí),要實(shí)現(xiàn)操作簡(jiǎn)便,并滿足功能需求和技術(shù)需求。
在面向?qū)ο蟮能浖_發(fā)中,所謂的對(duì)象是指具有屬性和方法的事件或?qū)嶓w。 面向?qū)ο箝_發(fā)過(guò)程是指把這些具有相同屬性和相同方法的對(duì)象進(jìn)行進(jìn)一步的封裝,也就是將數(shù)據(jù)或函數(shù)組成一個(gè)集合單元,就獲得了面向?qū)ο箝_發(fā)過(guò)程中的“類”這個(gè)概念,而對(duì)象則是類的實(shí)例化。 在擴(kuò)散爐上位機(jī)開發(fā)的過(guò)程中,對(duì)象是根據(jù)類創(chuàng)造出來(lái)的。 類是C#語(yǔ)言的核心和基本組成模塊。 進(jìn)行對(duì)象描述,需要描述對(duì)象的屬性和方法。 設(shè)計(jì)窗體所有的事件都能夠在屬性中查看。 當(dāng)事先設(shè)置的事件被注冊(cè)或者被觸發(fā),才能夠被執(zhí)行或發(fā)生。 這就保證了開發(fā)出來(lái)的應(yīng)用程序在事件發(fā)生時(shí)能夠及時(shí)響應(yīng)。
監(jiān)控界面的開發(fā)主要是添加相應(yīng)控件和自定義控件。開發(fā)過(guò)程把控件放在程序運(yùn)行界面的相應(yīng)位置,再添加控件處理程序,響應(yīng)用戶操作生成的窗體應(yīng)用程序。
在擴(kuò)散爐上位機(jī)軟件開發(fā)的過(guò)程中通過(guò)窗體添加控件,在事件面板添加相應(yīng)的事件。 事件的作用就是響應(yīng)創(chuàng)建用戶界面時(shí)控件的功能需求。 主要的開發(fā)任務(wù)是把控件從工具箱拖放到窗體。 用戶在界面操作控件本質(zhì)上是顯示數(shù)據(jù)或接收數(shù)據(jù)。 例如在程序啟動(dòng)時(shí)添加的按鈕(button)控件,把text 屬性根據(jù)需求設(shè)置成初始化、啟動(dòng)工藝和手動(dòng)/自動(dòng)。 這些按鈕控制程序運(yùn)行。 操作者通過(guò)觸摸按鈕,就會(huì)響應(yīng)按鈕點(diǎn)擊(click)事件,執(zhí)行對(duì)應(yīng)的程序。 需求中的爐溫控制單元,為了更好地完成與用戶的交互,需要在窗體控制中顯示爐內(nèi)的溫度。 爐溫顯示通過(guò)標(biāo)簽(Label)控件實(shí)現(xiàn),調(diào)整好控件位置。 要求對(duì)溫度實(shí)時(shí)監(jiān)控,并在標(biāo)簽控件中顯示爐內(nèi)溫度、爐外溫度和工藝設(shè)置溫度。 設(shè)置的溫度信息通過(guò)通信傳輸?shù)较挛粰C(jī),同時(shí)利用溫控儀測(cè)定爐內(nèi)外的溫度。 最終,這些溫度信息將顯示在控件中以滿足用戶的需求,并允許用戶實(shí)時(shí)觀察擴(kuò)散爐內(nèi)的溫度變化。 需求中的氣路單元,在工藝中需要流量閥打開或關(guān)閉,見圖2。 為了在界面上顯示閥的狀態(tài),需要自定義控件。 在界面開發(fā)過(guò)程中,使用Windows 呈現(xiàn)基礎(chǔ)(Windows presentation foundation, WPF)圖形系統(tǒng)來(lái)增強(qiáng)圖形的視覺(jué)渲染效果。 通過(guò)圖形設(shè)備接口(graphics device interface, GDI)可以繪制直線、曲線和路徑,生成圖形化的輸出結(jié)果以達(dá)到界面顯示的動(dòng)態(tài)效果。 工藝運(yùn)行界面中通過(guò)添加控件及事件,實(shí)現(xiàn)在設(shè)備運(yùn)行中清楚顯示工藝運(yùn)行的步驟和時(shí)間,見圖3,監(jiān)控工藝運(yùn)行狀態(tài)。

圖2 流量閥狀態(tài)監(jiān)控

圖3 工藝監(jiān)控
智能制造工業(yè)生產(chǎn)設(shè)備經(jīng)過(guò)長(zhǎng)期的發(fā)展,在充分利用計(jì)算機(jī)技術(shù)的基礎(chǔ)上取得了很大進(jìn)步。 擴(kuò)散爐上位機(jī)軟件可以更好地實(shí)現(xiàn)對(duì)太陽(yáng)能電池片生產(chǎn)過(guò)程中的工藝控制,提高企業(yè)的生產(chǎn)效率。 在設(shè)備生產(chǎn)中可以更好地實(shí)現(xiàn)人機(jī)交互,工藝設(shè)置界面是上位機(jī)軟件最大優(yōu)勢(shì)的體現(xiàn),見圖4。 傳統(tǒng)的控制界面如觸摸屏要實(shí)現(xiàn)工藝的更改就需要對(duì)程序進(jìn)行修改并對(duì)相關(guān)參數(shù)重新設(shè)置。 采用上位機(jī)軟件可以非常方便地根據(jù)需求編寫新的生產(chǎn)工藝,并且可以在軟件中儲(chǔ)存多個(gè)工藝。 操作人員可以根據(jù)需要選擇工藝,也可以在原工藝上增添行列進(jìn)行修改,例如在工藝步驟中修改工藝時(shí)間和調(diào)整工藝溫度等。 這些工作將變得非常容易。 工藝界面可通過(guò)表格數(shù)據(jù)控件Data Grid View 來(lái)實(shí)現(xiàn)。 它能夠?qū)崿F(xiàn)數(shù)據(jù)的綁定,通過(guò)行列的刪減、排序、查詢等操作實(shí)現(xiàn)數(shù)據(jù)修改。 工藝設(shè)置界面方便操作,可以很方便地實(shí)現(xiàn)工業(yè)生產(chǎn)中以調(diào)節(jié)相關(guān)參數(shù)為目的過(guò)程控制。 工藝界面在上位機(jī)開發(fā)與設(shè)計(jì)中是最重要的一步,工藝設(shè)置界面的優(yōu)劣直接決定人機(jī)交互的便捷性[3]。 上位機(jī)設(shè)置界面增刪功能,可以為后期工藝的改進(jìn)提供便利,能夠及時(shí)根據(jù)項(xiàng)目設(shè)備的實(shí)際情況進(jìn)行調(diào)整。

圖4 工藝設(shè)置界面
日志界面是對(duì)設(shè)備運(yùn)行情況及工藝情況數(shù)據(jù)的記錄。日志界面包括3 項(xiàng)內(nèi)容,分別是報(bào)警日志、操作日志和工藝監(jiān)控。 報(bào)警日志、操作日志分別見圖5、圖6。

圖5 報(bào)警日志

圖6 操作日志
日志界面生成表格和文本來(lái)記錄事件的發(fā)生,可通過(guò)表格數(shù)據(jù)控件來(lái)實(shí)現(xiàn)。 在報(bào)警日志中可以查看設(shè)備在一段時(shí)間內(nèi)的運(yùn)轉(zhuǎn)異常狀態(tài),查詢到報(bào)警的原因和發(fā)生的時(shí)間。 通過(guò)數(shù)據(jù)對(duì)比提高了異常情況的處理速度。 同時(shí),可以根據(jù)一段時(shí)間內(nèi)報(bào)警的頻率,判斷零部件是否需要維修或者更換。 操作日志主要記錄設(shè)備使用過(guò)程、操作及維修人員操作記錄,以便對(duì)設(shè)備的使用情況進(jìn)行跟蹤。 工藝監(jiān)控界面可記錄工藝開始的時(shí)間和工藝運(yùn)行中的數(shù)據(jù)。 日志界面是自動(dòng)化設(shè)備上位機(jī)的基本要求。 在日志界面查詢歷史數(shù)據(jù),通過(guò)數(shù)據(jù)分析可獲得設(shè)備運(yùn)行的基本情況以及在擴(kuò)散工藝中的重要數(shù)據(jù)。 通過(guò)日志界面可以實(shí)現(xiàn)對(duì)設(shè)備全方位規(guī)范性管理,保證設(shè)備運(yùn)行的穩(wěn)定性及安全性[4-5]。
綜上所述,C#上位機(jī)依托于Windows 平臺(tái)在工業(yè)控制領(lǐng)域應(yīng)用廣泛。 不同自動(dòng)化設(shè)備在不同領(lǐng)域生產(chǎn)運(yùn)行中工藝不同,但大多數(shù)設(shè)備存在相同的控制量,如流量、壓力、溫度等,這些變量一般要求在上位機(jī)界面中進(jìn)行顯示和監(jiān)控。 同時(shí),上位機(jī)也可以給下位機(jī)發(fā)送相應(yīng)的指令或者信息。 開發(fā)過(guò)程中的經(jīng)驗(yàn)可以在不同項(xiàng)目中借鑒,從而提高軟件的開發(fā)水平。 這些經(jīng)驗(yàn)可以在后期其他項(xiàng)目的開發(fā)過(guò)程中幫助提高產(chǎn)品競(jìng)爭(zhēng)力。 上位機(jī)應(yīng)用的領(lǐng)域非常廣泛,且在開發(fā)過(guò)程相互聯(lián)系緊密。 針對(duì)擴(kuò)散爐上位機(jī)可以根據(jù)后期設(shè)備需求對(duì)界面功能進(jìn)行擴(kuò)展。 這些優(yōu)點(diǎn)是常規(guī)組態(tài)軟件所不具有的。 C#上位機(jī)的最大優(yōu)勢(shì)是可以滿足個(gè)性化的需求,例如可連續(xù)監(jiān)控生產(chǎn)工藝、方便設(shè)置工藝流程及快速診斷及解決故障。