0 引言
制造執(zhí)行管理系統(tǒng)(Manufacturing Execution System, MES)是企業(yè)信息系統(tǒng)中重要的一部分,它是上層的計(jì)劃管理系統(tǒng)與底層的工業(yè)控制系統(tǒng)之間信息交互的紐帶。在指導(dǎo)工廠的生產(chǎn)運(yùn)作工程中,MES的人機(jī)交互程序負(fù)責(zé)將系統(tǒng)收集到的信息實(shí)時(shí)反饋給現(xiàn)場(chǎng)操作人員。目前企業(yè)中部署MES人機(jī)交互程序時(shí)采用的部署方式,普遍存在程序可恢復(fù)性和安全性不強(qiáng)、維護(hù)時(shí)需要大量人力等困難。特別是中小型制造企業(yè)普遍存在制造實(shí)力弱、資金不足、管理制度不完善、基礎(chǔ)落后、技術(shù)不強(qiáng)等不足。因此,企業(yè)迫切需要一個(gè)更簡(jiǎn)單安全的MES方案來(lái)提高企業(yè)的信息化程度和綜合競(jìng)爭(zhēng)力。為此,本文根據(jù)某企業(yè)的流水線裝配流程的實(shí)際需求,在基于.NET中的ClickOnce技術(shù)的理論基礎(chǔ)上,提出了一種安全可靠的MES部署方案,給出了基于ClickOnce的MES人機(jī)交互程序?qū)崿F(xiàn)的系統(tǒng)配置、程序設(shè)計(jì)等關(guān)鍵技術(shù)的設(shè)計(jì)思路。
1 MES人機(jī)交互程序
作為企業(yè)上層計(jì)劃決策系統(tǒng)和底層過(guò)程控制系統(tǒng)之間的橋梁,制造執(zhí)行系統(tǒng)(MES)在車間生產(chǎn)的計(jì)劃調(diào)度、過(guò)程管理等方面起到了越來(lái)越重要的作用。人機(jī)交互程序作為MES中的一部分,肩負(fù)著向每個(gè)工位上的操作工顯示生產(chǎn)信息、控制工位流程、人員登陸等功能。
MES在裝配線上的人機(jī)交互程序具有如下特點(diǎn):
1)數(shù)量眾多。在MES中需要部署大量的人機(jī)交互程序。每一個(gè)工位都配有一個(gè)操作屏供裝配工操作。
2)部署環(huán)境相同。裝配線上操作屏使用工廠內(nèi)部局域網(wǎng),采用統(tǒng)一的操作系統(tǒng),程序運(yùn)行環(huán)境一致。
3)基本功能一致。每個(gè)線上人機(jī)交互程序都具有相同的基本功能,與PLC交互邏輯相同。
與此同時(shí)在程序開發(fā)中的需要面對(duì)許多挑戰(zhàn),包括:
1) 需求更改頻繁。MES實(shí)施時(shí)存在定制作量大、成本高、周期長(zhǎng)的問(wèn)題。在實(shí)際開發(fā)中程序迭代速度快次數(shù)多,一個(gè)版本使用一段時(shí)間后需要更改功能。
2) 各工位具體功能不同。雖然界面的基本功能一致,但在諸如上線工位、條碼打印工位具有不同的附加功能。這些功能會(huì)增大程序的復(fù)雜性。
3) 功能間松散耦合。功能間采用緊耦合設(shè)計(jì)時(shí),僵硬脆弱的架構(gòu)往往固化了系統(tǒng)的大部分功能,只余小部分可以進(jìn)行參數(shù)的配置,難以保證企業(yè)的敏捷性,無(wú)法支持企業(yè)快速適應(yīng)市場(chǎng)和生產(chǎn)環(huán)境的變化。
傳統(tǒng)的部署方式大多是采用Windows Installer部署,既開發(fā)完成后生成一個(gè)安裝程序,由實(shí)施人員在每臺(tái)線上計(jì)算機(jī)上安裝。這種方式不但需要大量的人員負(fù)責(zé)安裝配置程序,而且當(dāng)程序頻繁迭代更新時(shí)也容易造成版本混亂的問(wèn)題。
2 C lickOnce自動(dòng)部署功能
2.1 功能介紹
ClickOnce 是微軟開發(fā)工具Visual Studio中的一種部署技術(shù),使用ClickOnce可在Windows中創(chuàng)建能夠自行更新的應(yīng)用程序,用戶像運(yùn)行IOS上的APP一樣,通過(guò)運(yùn)行安裝文件即可安裝程序,在程序每次運(yùn)行前都會(huì)檢查是否需要更新。在ClickOnce 部署技術(shù)出現(xiàn)之前,傳統(tǒng)部署技術(shù)一直存在著三個(gè)主要的問(wèn)題:
1) 應(yīng)用程序更新困難。傳統(tǒng)部署技術(shù)一般是指利用Windows Installer在計(jì)算機(jī)中安裝部署應(yīng)用程序。每當(dāng)用戶需要更新應(yīng)用程序時(shí),用戶都必須在計(jì)算機(jī)中將原程序卸載并重新安裝整個(gè)應(yīng)用程序。而在ClickOnce部署技術(shù)中,每次程序啟動(dòng)時(shí)都會(huì)自動(dòng)檢查是否有更新程序。當(dāng)檢查到需要進(jìn)行程序更新時(shí),只會(huì)從共享文件夾中下載更改過(guò)的部分應(yīng)用程序,然后在計(jì)算機(jī)中建立一個(gè)新的文件夾重新安裝應(yīng)用程序。
2)更新后影響用戶的其它程序。使用傳統(tǒng)方式部署應(yīng)用程序時(shí),原始程序的共享組件通常會(huì)被更新后的應(yīng)用程序繼續(xù)使用,開發(fā)部署人員稍有不慎便有可能發(fā)生程序間的版本沖突。而使用ClickOnce部署時(shí),由于每個(gè)版本的應(yīng)用程序都會(huì)分開保存在不同的文件夾中,這樣不會(huì)影響其他應(yīng)用程序。
3)更新時(shí)要求管理員安全權(quán)限。使用傳統(tǒng)方式部署應(yīng)用程序時(shí),要求必須具有管理員權(quán)限用戶才能進(jìn)行部署,并且安裝升級(jí)程序也需要被授權(quán)的用戶,這給安裝部署帶來(lái)了很多困難;而ClickOnce部署時(shí),可以很方便的使用普通用戶權(quán)限安裝應(yīng)用程序,但系統(tǒng)保證訪問(wèn)應(yīng)用程序的過(guò)程是安全的。
使用傳統(tǒng)的部署技術(shù),開發(fā)人員為了解決以上問(wèn)題嘗嘗會(huì)選擇使用Web上的應(yīng)用程序而不是桌面應(yīng)用程序。使用WEB應(yīng)用部署和安裝都方便,但WEB應(yīng)用在響應(yīng)速度和用戶界面豐富性上卻比不上桌面窗體。而通過(guò)使用ClickOnce技術(shù)部署的桌面應(yīng)用程序,在克服了這三個(gè)主要問(wèn)題的同時(shí)可以繼續(xù)享受桌面窗體的優(yōu)點(diǎn)。
2.2 C lickOnce部署的原理
ClickOnce部署的核心是兩個(gè)在發(fā)布時(shí)生成的XML文件:應(yīng)用程序清單和部署清單。這兩個(gè)文件一般在開發(fā)時(shí)通過(guò)Visual Studio中的發(fā)布向?qū)ё詣?dòng)生成,發(fā)布者也可以利用Microsoft WindowsSDK Tools中的清單生成和編輯工具(Mage.exe)來(lái)手動(dòng)生成需要發(fā)布的應(yīng)用程序清單和部署清單。
應(yīng)用程序清單中記錄的應(yīng)用程序本身的信息,包括程序集信息、應(yīng)用程序安裝時(shí)需要的文件、安裝程序時(shí)需要的windows用戶賬戶級(jí)別以及清單更新在什么位置保存。
部署清單中主要記錄應(yīng)用程序的采用何種方式部署,其中包括程序當(dāng)前的版本號(hào)、通過(guò)何種方式獲取應(yīng)用程序清單。
部署清單在創(chuàng)建后會(huì)被復(fù)制到設(shè)定好的部署位置。該位置可以是Web服務(wù)器、局域網(wǎng)中的共享文件夾或媒體(如 CD)。應(yīng)用程序清單和應(yīng)用程序文件也會(huì)被復(fù)制到在部署清單中的制定部署位置。
在利用ClickOnce部署程序時(shí),用戶可以在網(wǎng)頁(yè)上或保存部署的共享文件夾中打開部署清單文件,之后程序會(huì)自動(dòng)將應(yīng)用程序下載和安裝到計(jì)算機(jī)上的一個(gè)獨(dú)立的文件夾中。安裝時(shí)程序會(huì)彈出一個(gè)對(duì)話框讓用戶確認(rèn)安裝信息,之后程序便會(huì)自動(dòng)安裝,安裝結(jié)束后應(yīng)用程序會(huì)被啟動(dòng)。
因?yàn)镃lickOnce應(yīng)用程序被單獨(dú)存放在一個(gè)文件夾內(nèi),每個(gè)程序都是完全獨(dú)立于原有程序的,應(yīng)用程序的每一個(gè)版本都安裝到一個(gè)安全的獨(dú)立的緩存中,并從該緩存運(yùn)行。所以安裝或運(yùn)行利用ClickOnce不熟的應(yīng)用程序不會(huì)影響到現(xiàn)有的其他應(yīng)用程序。默認(rèn)情況下,ClickOnce應(yīng)用程序需要具有網(wǎng)絡(luò)域安全權(quán)限的用戶在windows中運(yùn)行。通過(guò)設(shè)置應(yīng)用程序清單,可以提升安裝程序所需要的的安全權(quán)限。
應(yīng)用程序在安裝后會(huì)在用戶的“開始”菜單和 “添加/刪除程序”組中添加應(yīng)用程序安裝信息。與傳統(tǒng)部署技術(shù)不同的是,使用ClickOnce技術(shù)部署的應(yīng)用程序不會(huì)向計(jì)算機(jī)中的注冊(cè)表或C盤中的“Program Files”文件夾添加任何內(nèi)容,且用戶在安裝時(shí)僅需要有限的權(quán)限。ClickOnce應(yīng)用程序在運(yùn)行時(shí)可以自動(dòng)檢測(cè)是否有更新的版本;應(yīng)用程序在啟動(dòng)時(shí)會(huì)比對(duì)自身部署清單中的版本號(hào)和部署位置中部署清單中的版本號(hào),當(dāng)發(fā)現(xiàn)更高的版本后程序會(huì)提示用戶進(jìn)行更新。在程序發(fā)布時(shí),開發(fā)人員可以設(shè)置發(fā)布軟件的版本號(hào)。在程序運(yùn)行中,網(wǎng)絡(luò)管理員也可以通過(guò)對(duì)共享文件夾中的程序進(jìn)行更改來(lái)控制更新策略。在程序部署到計(jì)算機(jī)后,最終用戶在發(fā)現(xiàn)更新時(shí)還可以選擇本機(jī)是否要進(jìn)行程序更新。
2.3 C lickOnce部署的優(yōu)點(diǎn)
圖1 部署方式對(duì)比
在安裝方式上,兩種部署方式也有差別。使用 ClickOnce作為部署方式時(shí)需要先將應(yīng)用程序發(fā)布到共享文件夾、光盤等指定位置。用戶在安裝時(shí)從該位置運(yùn)行安裝程序。 使用 Windows Installer作為部署方式時(shí),則需要先創(chuàng)建一個(gè)應(yīng)用程序安裝程序文件并在待安裝的系統(tǒng)上分發(fā)安裝文件。用戶運(yùn)行安裝文件以安裝應(yīng)用程序。
由于 ClickOnce部署的應(yīng)用程序可自行更新,因此 ClickOnce對(duì)于要求經(jīng)常更新的應(yīng)用程序而言是最好的選擇。盡管 ClickOnce應(yīng)用程序最初可以通過(guò)使用 CD-ROM 安裝,但在局域網(wǎng)使用時(shí)用戶才能利用 ClickOnce更新功能。
2.4 小結(jié)
MES在裝配線上的人機(jī)交互程序的在開發(fā)過(guò)程中,ClickOnce技術(shù)相對(duì)傳統(tǒng)的安裝程序部署方案具有明顯的優(yōu)勢(shì)。安裝程序時(shí)操作簡(jiǎn)單,無(wú)需額外設(shè)置步驟。程序只需在服務(wù)器更新后,操作屏上就可以自動(dòng)更新。由于在局域網(wǎng)上運(yùn)行,網(wǎng)絡(luò)環(huán)境穩(wěn)定快速,無(wú)需考慮更新下載失敗等因素干擾。每臺(tái)觸摸屏可以采用相同的ClickOnce安裝源文件,在程序中對(duì)完成工位功能需要的組件進(jìn)行設(shè)置。同時(shí)使用ClickOnce技術(shù)部署程序時(shí)基于證書、代碼訪問(wèn)安全性策略和 ClickOnce信任提示,使得程序的安裝與更新更為安全。
3 基于ClickOnce的信息系統(tǒng)總體設(shè)計(jì)實(shí)現(xiàn)方案
在上述研究的基礎(chǔ)上,設(shè)計(jì)并開發(fā)了MES在裝配線上的人機(jī)交互程序。其中心思想是把不同功能從需求中提取出來(lái)并進(jìn)行分類。依照功能特性的不同分類處理。同時(shí)在設(shè)計(jì)時(shí)將這些功能與工位解耦合,降低調(diào)試和后期維護(hù)時(shí)的難度。
系統(tǒng)包括用于運(yùn)行數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)服務(wù)器。用于提供OPC接口與PLC交互數(shù)據(jù)的OPC服務(wù)器。用于人機(jī)交互程序發(fā)布和管理的ClickOnce發(fā)布服務(wù)器,線上操作屏。由于ClickOnce發(fā)布服務(wù)器功能簡(jiǎn)單,所以將服務(wù)器運(yùn)行于虛擬機(jī)上即可滿足性能要求。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖
在設(shè)計(jì)本項(xiàng)目的人機(jī)交互程序時(shí),針對(duì)不同的功能需求如過(guò)程數(shù)據(jù)讀取、工序提示查看、工位控制、總成上線等關(guān)鍵功能,進(jìn)行分類做不同的設(shè)計(jì)。
工序提示查看功能。是在界面上顯示操作工需要在本工位上進(jìn)行的操作及安全提示。這些提示信息依工位保存在數(shù)據(jù)庫(kù)中,且對(duì)于單一工位來(lái)說(shuō)在系統(tǒng)運(yùn)行時(shí)工序提示是不會(huì)改變的。在實(shí)現(xiàn)這類功能時(shí),在程序啟動(dòng)前先運(yùn)行一個(gè)準(zhǔn)備程序,準(zhǔn)備程序負(fù)責(zé)從數(shù)據(jù)庫(kù)中讀取本工位的信息到本地的XML文檔中,之后程序啟動(dòng)時(shí)只對(duì)本地的XML文檔進(jìn)行讀取操作。這樣設(shè)計(jì)可以減少運(yùn)行時(shí)查詢數(shù)據(jù)庫(kù)給數(shù)據(jù)庫(kù)增加的負(fù)擔(dān),同時(shí)這樣將程序與數(shù)據(jù)庫(kù)解耦合的做法也有利于調(diào)試和測(cè)試工作。
在線信息提示功能。是指管理員可以將重要信息顯示在人機(jī)交互界面上,通知線上操作工。在實(shí)現(xiàn)這類需要頻繁讀取數(shù)據(jù)庫(kù)信息的功能時(shí),可以將信息放置在數(shù)據(jù)庫(kù)中單一的一個(gè)表中,每個(gè)界面程序定時(shí)掃描這個(gè)表,以提高讀取速度。
過(guò)程數(shù)據(jù)讀取功能。是指在工人操作工位時(shí),交互程序的界面上會(huì)顯示工位操作中得到的的各項(xiàng)測(cè)量數(shù)據(jù)。這些數(shù)據(jù)是由PLC采集到的,存儲(chǔ)在PLC的DB塊中。MES通過(guò)OPC接口讀取數(shù)據(jù)后,存儲(chǔ)在數(shù)據(jù)庫(kù)中。交互程序周期性的掃瞄數(shù)據(jù)庫(kù)所在工位的數(shù)據(jù),并將數(shù)據(jù)顯示在界面上。
每個(gè)工位需要采集的數(shù)據(jù)數(shù)量不同,但基本格式可以統(tǒng)一。在實(shí)現(xiàn)這部分功能時(shí),將數(shù)據(jù)收集和顯示分開,在服務(wù)器上實(shí)現(xiàn)數(shù)據(jù)收集,界面上只顯示數(shù)據(jù)。這樣在服務(wù)器上以統(tǒng)一格式收集數(shù)據(jù),并存儲(chǔ)到數(shù)據(jù)表中。而在界面上的僅需要定時(shí)掃描數(shù)據(jù)表上本工位的數(shù)據(jù),并顯示在界面上。
工位控制功能。操作工通過(guò)界面按鈕控制工位放行。界面程序通過(guò)OPC服務(wù)器,將工位控制命令寫入PLC中的DB塊,并通過(guò)與控制系統(tǒng)定義好的接口與控制程序交互。設(shè)計(jì)時(shí)需要將不同工位上與控制系統(tǒng)交互的流程統(tǒng)一,使得每個(gè)工位的接口都是一致的。
總裝上線功能。在上線工位記錄總裝信息。只在上線工位及幾個(gè)特殊工位運(yùn)行。在設(shè)計(jì)時(shí)將這樣的功能提取出來(lái)單獨(dú)開發(fā),并在程序啟動(dòng)時(shí)加入判定,只在指定工位啟動(dòng)程序。
將功能分為以上幾類后,人機(jī)交互界面上的功能可以進(jìn)一步劃分為所有工位均具有、與工位相關(guān)。同時(shí)以觸摸屏的IP作為工位判斷的標(biāo)識(shí),既將工位號(hào)與IP一一相關(guān)存儲(chǔ)在數(shù)據(jù)庫(kù)中,在界面的準(zhǔn)備程序中判斷觸摸屏屬于哪個(gè)工位。這樣所有觸摸屏上要部署的程序就可以用一套代碼生成,從而滿足了ClickOnce部署的條件。
4 結(jié)束語(yǔ)
基于ClickOnce自動(dòng)部署方式設(shè)計(jì)的MES,利用Visual Studio中的部署技術(shù),與OPC技術(shù)和SQLServer數(shù)據(jù)庫(kù)緊密結(jié)合。可以自動(dòng)、靈活、高效的部署MES人機(jī)交互界面。解決了企業(yè)部署實(shí)施MES人機(jī)交互程序時(shí)面臨的程序可恢復(fù)性和安全性不強(qiáng)、維護(hù)時(shí)需要大量人力等問(wèn)題。整套系統(tǒng)經(jīng)過(guò)生產(chǎn)階段的測(cè)試后,系統(tǒng)性能穩(wěn)定,操作簡(jiǎn)單,可擴(kuò)展性好,可配置性強(qiáng),節(jié)約大量的維護(hù)部署人力,可以更好地推動(dòng)企業(yè)的制造信息化發(fā)展,提高企業(yè)自身的競(jìng)爭(zhēng)力。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于ClickOnce技術(shù)的MES人機(jī)交互程序的設(shè)計(jì)與實(shí)現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10820511413.html