劉征宇,曹路圓,梅 茜
(北京機械工業自動化研究所,北京 100120)
隨著國內“兩化”改革的不斷加深,生產企業對MES(Manufacturing Execution System,制造執行系統)的要求也進一步提高,雖然國外有很多成熟的MES產品,與進口生產設備配套很好,但由于成本、適用性、保密性等要求,以致近年來自主研發MES在占有的比重增加。目前國內的MES系統雖然在設計上靠近ISA-95標準(Instrumentation, Systems, and Automation Society,儀器、系統與自動化協會),但該標準只從生產業務需求的角度進行了描述,沒有具體的技術實現,導致各家在技術層面區別較大。而現場數據采集模塊處于MES系統軟硬件相接的位置,負責將生產數據穩定、有效的傳輸到軟件系統中,屬于不可或缺的重點模塊。但是從手工組裝到全自動生產線,采集方式和數據量千差萬別,糟糕的設計會使MES產品適用性大打折扣。筆者從事MES系統開發實施多年,總結了一種在以太網結構下,能夠適應大多數生產節拍的彈性采集接口,在此共享給各位,希望能拋磚引玉,促進自動化行業的發展。
要實現一個彈性的數據采集接口,就必須在大多數生產企業中找到數據采集的共性,同時為了各企業的個性化需求,還應該留出擴展余地。因此我們需要對目前的各種數據采集手段進行分類和總結。這方面已有很多著作進行過論述,限于篇幅,不作詳細說明,只使用一些結論性的知識:
1)數據采集按采集方式來區分,有手動、半自動、全自動三種方式;其中手動指人工錄入,半自動指使用專用設備但是需要人工發起傳輸,全自動指通過OPC(OLE for Process Control,一種工業控制系統數據傳輸標準)或者公開、私有協議進行傳輸。
2)按照生產方式、節拍、數據量來區分,可以分為異步采集和同步采集,對于節拍迅速的企業,可能要求具有更高的實時性。
3)按照采集數據的目的不同,可以分為實時分析與數據儲備兩類。一般情況下,實時分析主要用作生產實時反饋,所需要的數據并不完全進入歷史數據庫。而數據儲備的實時性要求不強,主要用于企業后期進行追溯、報表及產能分析。
在設計數據采集接口的時候,要綜合考慮上述各種情況,結合現代計算機技術,合理構造,才能達到性能穩定、擴展性高的設計目標。
為了適應不同的采集方式,數據采集接口內部采用分層設計(采集層+轉發層)的思路,兩層之間使用UDP(User Datagram Protocol,用戶數據報協議)網絡協議進行數據傳遞(極端情況可采用內存數據共享提升速度)。采集層面向輸入端,提供人機、OPC、各類協議的采集接口,同時使用統一的內部傳輸規則向轉發層進行數據發送;轉發層接收到采集層傳來的數據,直接放入數據緩存隊列,然后再根據不同的邏輯對緩存的數據隊列進行計算、轉發和存儲。這里有兩個技術要點:
1)層之間使用UDP協議:提供更快速的傳輸和響應,要求采集層收集的數據需要帶有時間戳記,以克服UDP傳輸可能帶來的數據順序錯位。
2)轉發層的數據緩存:根據不同場合的數據量及實時性要求,建立不同大小的數據緩存隊列,一方面在高速數據傳輸過程中不會丟失數據,另一方面便于計算機對批量數據進行分析處理,降低磁盤I/O。
圖1是模塊的結構示意圖。

圖1 模塊結構示意圖
需要說明的兩個部分:
1)如果要實現數據實時分析,那么數據隊列建議設計成環形數組,數組大小需要根據實際情況進行設計,既保證實時分析的時間片能夠覆蓋到足夠的數據,又保證分析時間內不會產生數據覆蓋。
2)UDP在采集層與轉發層之間的數據協議盡量簡單,保證一個數據包即可傳送完成。在作者開發的MES系統中,使用了“ID+時間戳+數據”的簡單格式,保證傳輸速度和解析速度。
數據采集接口設計之初,即充分考慮了其擴展性,圖A中標有圓圈數字的部分,就是可以加以擴展的地方,這里針對部分典型情況給出思路:
1)協議擴展:數據采集接口的采集層應具備擴展性,以支持除現有協議之外的數據采集。因此我們在圖1①的地方留出了擴展余地,使采集層能夠集成多種協議,統一進行數據傳送。
2)加密傳輸:軍工和高技術企業對保密性要求較高。數據采集過程中的失密,主要發生在傳輸階段。大多數MES用明文在局域網中傳輸數據,很容易被抓包、存儲和分析,因此可以在圖1②的地方,使用公私密鑰等加密技術,確保數據不被破解。
3)高速數據采集:雖然很少遇到,但有些企業實時分析要求較高。在本文所設計的接口中,可以采用共享內存的方式替代UDP進行數據傳輸,也就是用圖1③的部分替換掉UDP傳輸,把傳輸和數據緩存集成到了一起,建立在同一臺服務器上,延遲可進一步降低至幾毫秒。
4)專業數據方案支持:目前,有很多支持高速度、大容量、分布式的緩存和數據庫產品。如果企業有這方面需求,可以擴展前面圖1④的部分;如果要用的數據緩存產品替代本方案中的數據隊列,可以擴展前面圖1⑤的部分。
為了適應更多狀況,具體實施過程中,即使是數據采集接口內部,也建議按照模塊化、接口化來規劃各功能,增加系統彈性,以更大的靈活性應對車間技術升級或者流程改造。
文中所提數據采集接口已在本單位自主研發的MES系統中實現并應用到不同客戶群體,既包括低節拍離散型裝配車間,也包括高速連續制造企業,即可以采集工序、質量、設備、物料等數據,也可以采集變化頻繁的設備信號,且效果良好,運行穩定,擴展簡單。這種思路不僅限于MES,也可以用到其他SCADA(Supervisory Control And Data Acquisition,監控和數據采集)采集場合。篇幅所限,未提供硬件部署和偽代碼,也沒有論述高并發和分布式的相關內容。有興趣可聯系作者,希望得到同行指正。
[1]ISA-95國際標準[S].http://www.isa-95.com/subpages/technology/isa-95.php.
[2]顧榮慶,等.分布式數據緩存技術研究[J].計算機應用與軟件,2011(06).