劉征宇,曹路圓,梅 茜
(北京機械工業(yè)自動化研究所,北京 100120)
隨著國內“兩化”改革的不斷加深,生產(chǎn)企業(yè)對MES(Manufacturing Execution System,制造執(zhí)行系統(tǒng))的要求也進一步提高,雖然國外有很多成熟的MES產(chǎn)品,與進口生產(chǎn)設備配套很好,但由于成本、適用性、保密性等要求,以致近年來自主研發(fā)MES在占有的比重增加。目前國內的MES系統(tǒng)雖然在設計上靠近ISA-95標準(Instrumentation, Systems, and Automation Society,儀器、系統(tǒng)與自動化協(xié)會),但該標準只從生產(chǎn)業(yè)務需求的角度進行了描述,沒有具體的技術實現(xiàn),導致各家在技術層面區(qū)別較大。而現(xiàn)場數(shù)據(jù)采集模塊處于MES系統(tǒng)軟硬件相接的位置,負責將生產(chǎn)數(shù)據(jù)穩(wěn)定、有效的傳輸?shù)杰浖到y(tǒng)中,屬于不可或缺的重點模塊。但是從手工組裝到全自動生產(chǎn)線,采集方式和數(shù)據(jù)量千差萬別,糟糕的設計會使MES產(chǎn)品適用性大打折扣。筆者從事MES系統(tǒng)開發(fā)實施多年,總結了一種在以太網(wǎng)結構下,能夠適應大多數(shù)生產(chǎn)節(jié)拍的彈性采集接口,在此共享給各位,希望能拋磚引玉,促進自動化行業(yè)的發(fā)展。
要實現(xiàn)一個彈性的數(shù)據(jù)采集接口,就必須在大多數(shù)生產(chǎn)企業(yè)中找到數(shù)據(jù)采集的共性,同時為了各企業(yè)的個性化需求,還應該留出擴展余地。因此我們需要對目前的各種數(shù)據(jù)采集手段進行分類和總結。這方面已有很多著作進行過論述,限于篇幅,不作詳細說明,只使用一些結論性的知識:
1)數(shù)據(jù)采集按采集方式來區(qū)分,有手動、半自動、全自動三種方式;其中手動指人工錄入,半自動指使用專用設備但是需要人工發(fā)起傳輸,全自動指通過OPC(OLE for Process Control,一種工業(yè)控制系統(tǒng)數(shù)據(jù)傳輸標準)或者公開、私有協(xié)議進行傳輸。
2)按照生產(chǎn)方式、節(jié)拍、數(shù)據(jù)量來區(qū)分,可以分為異步采集和同步采集,對于節(jié)拍迅速的企業(yè),可能要求具有更高的實時性。
3)按照采集數(shù)據(jù)的目的不同,可以分為實時分析與數(shù)據(jù)儲備兩類。一般情況下,實時分析主要用作生產(chǎn)實時反饋,所需要的數(shù)據(jù)并不完全進入歷史數(shù)據(jù)庫。而數(shù)據(jù)儲備的實時性要求不強,主要用于企業(yè)后期進行追溯、報表及產(chǎn)能分析。
在設計數(shù)據(jù)采集接口的時候,要綜合考慮上述各種情況,結合現(xiàn)代計算機技術,合理構造,才能達到性能穩(wěn)定、擴展性高的設計目標。
為了適應不同的采集方式,數(shù)據(jù)采集接口內部采用分層設計(采集層+轉發(fā)層)的思路,兩層之間使用UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)網(wǎng)絡協(xié)議進行數(shù)據(jù)傳遞(極端情況可采用內存數(shù)據(jù)共享提升速度)。采集層面向輸入端,提供人機、OPC、各類協(xié)議的采集接口,同時使用統(tǒng)一的內部傳輸規(guī)則向轉發(fā)層進行數(shù)據(jù)發(fā)送;轉發(fā)層接收到采集層傳來的數(shù)據(jù),直接放入數(shù)據(jù)緩存隊列,然后再根據(jù)不同的邏輯對緩存的數(shù)據(jù)隊列進行計算、轉發(fā)和存儲。這里有兩個技術要點:
1)層之間使用UDP協(xié)議:提供更快速的傳輸和響應,要求采集層收集的數(shù)據(jù)需要帶有時間戳記,以克服UDP傳輸可能帶來的數(shù)據(jù)順序錯位。
2)轉發(fā)層的數(shù)據(jù)緩存:根據(jù)不同場合的數(shù)據(jù)量及實時性要求,建立不同大小的數(shù)據(jù)緩存隊列,一方面在高速數(shù)據(jù)傳輸過程中不會丟失數(shù)據(jù),另一方面便于計算機對批量數(shù)據(jù)進行分析處理,降低磁盤I/O。
圖1是模塊的結構示意圖。
圖1 模塊結構示意圖
需要說明的兩個部分:
1)如果要實現(xiàn)數(shù)據(jù)實時分析,那么數(shù)據(jù)隊列建議設計成環(huán)形數(shù)組,數(shù)組大小需要根據(jù)實際情況進行設計,既保證實時分析的時間片能夠覆蓋到足夠的數(shù)據(jù),又保證分析時間內不會產(chǎn)生數(shù)據(jù)覆蓋。
2)UDP在采集層與轉發(fā)層之間的數(shù)據(jù)協(xié)議盡量簡單,保證一個數(shù)據(jù)包即可傳送完成。在作者開發(fā)的MES系統(tǒng)中,使用了“ID+時間戳+數(shù)據(jù)”的簡單格式,保證傳輸速度和解析速度。
數(shù)據(jù)采集接口設計之初,即充分考慮了其擴展性,圖A中標有圓圈數(shù)字的部分,就是可以加以擴展的地方,這里針對部分典型情況給出思路:
1)協(xié)議擴展:數(shù)據(jù)采集接口的采集層應具備擴展性,以支持除現(xiàn)有協(xié)議之外的數(shù)據(jù)采集。因此我們在圖1①的地方留出了擴展余地,使采集層能夠集成多種協(xié)議,統(tǒng)一進行數(shù)據(jù)傳送。
2)加密傳輸:軍工和高技術企業(yè)對保密性要求較高。數(shù)據(jù)采集過程中的失密,主要發(fā)生在傳輸階段。大多數(shù)MES用明文在局域網(wǎng)中傳輸數(shù)據(jù),很容易被抓包、存儲和分析,因此可以在圖1②的地方,使用公私密鑰等加密技術,確保數(shù)據(jù)不被破解。
3)高速數(shù)據(jù)采集:雖然很少遇到,但有些企業(yè)實時分析要求較高。在本文所設計的接口中,可以采用共享內存的方式替代UDP進行數(shù)據(jù)傳輸,也就是用圖1③的部分替換掉UDP傳輸,把傳輸和數(shù)據(jù)緩存集成到了一起,建立在同一臺服務器上,延遲可進一步降低至幾毫秒。
4)專業(yè)數(shù)據(jù)方案支持:目前,有很多支持高速度、大容量、分布式的緩存和數(shù)據(jù)庫產(chǎn)品。如果企業(yè)有這方面需求,可以擴展前面圖1④的部分;如果要用的數(shù)據(jù)緩存產(chǎn)品替代本方案中的數(shù)據(jù)隊列,可以擴展前面圖1⑤的部分。
為了適應更多狀況,具體實施過程中,即使是數(shù)據(jù)采集接口內部,也建議按照模塊化、接口化來規(guī)劃各功能,增加系統(tǒng)彈性,以更大的靈活性應對車間技術升級或者流程改造。
文中所提數(shù)據(jù)采集接口已在本單位自主研發(fā)的MES系統(tǒng)中實現(xiàn)并應用到不同客戶群體,既包括低節(jié)拍離散型裝配車間,也包括高速連續(xù)制造企業(yè),即可以采集工序、質量、設備、物料等數(shù)據(jù),也可以采集變化頻繁的設備信號,且效果良好,運行穩(wěn)定,擴展簡單。這種思路不僅限于MES,也可以用到其他SCADA(Supervisory Control And Data Acquisition,監(jiān)控和數(shù)據(jù)采集)采集場合。篇幅所限,未提供硬件部署和偽代碼,也沒有論述高并發(fā)和分布式的相關內容。有興趣可聯(lián)系作者,希望得到同行指正。
[1]ISA-95國際標準[S].http://www.isa-95.com/subpages/technology/isa-95.php.
[2]顧榮慶,等.分布式數(shù)據(jù)緩存技術研究[J].計算機應用與軟件,2011(06).