【摘要】基于面向服務(wù)架構(gòu)(SOA),支持OPC、FTP、Web Service等主流接口標(biāo)準(zhǔn),自主開發(fā)設(shè)計(jì)介于發(fā)動(dòng)機(jī)制造執(zhí)行系統(tǒng)(PTMES)和車間工業(yè)自動(dòng)化設(shè)備(PLC/工控機(jī))之間的柔性化接口中間層,上位IT系統(tǒng)與下位自動(dòng)化設(shè)備實(shí)現(xiàn)輕量化、可配置、松耦合的數(shù)據(jù)實(shí)時(shí)交互,可適應(yīng)大型整車企業(yè)多基地、多產(chǎn)線擴(kuò)張時(shí),發(fā)動(dòng)機(jī)制造執(zhí)行系統(tǒng)的快速集成部署。
【關(guān)鍵詞】制造執(zhí)行系統(tǒng);接口中間層;SOA;OPC
引言
NSE是上汽集團(tuán)自主研發(fā),擁有自主知識(shí)產(chǎn)權(quán)的新一代小排量、高性能系列發(fā)動(dòng)機(jī)。NSE生產(chǎn)線大量應(yīng)用了自動(dòng)加工設(shè)備。企業(yè)自主開發(fā)的發(fā)動(dòng)機(jī)制造執(zhí)行系統(tǒng)實(shí)現(xiàn)了計(jì)劃管理、加工控制、生產(chǎn)監(jiān)控、質(zhì)量保證、物料拉動(dòng)等主要功能。隨著上汽集團(tuán)自主開發(fā)的NLE、SGE等型號(hào)的發(fā)動(dòng)機(jī)將陸續(xù)投產(chǎn),面對(duì)不同設(shè)備廠商提供的各型PLC和組態(tài)軟件,MES系統(tǒng)必須重新設(shè)計(jì)開發(fā)接口與之匹配,大大增加了信息系統(tǒng)的部署成本和周期。為了解決上述問題,企業(yè)必須在規(guī)范數(shù)據(jù)采集標(biāo)準(zhǔn)的基礎(chǔ)上,設(shè)計(jì)一套現(xiàn)場(chǎng)自動(dòng)化設(shè)備與上位IT系統(tǒng)之間數(shù)據(jù)交互的接口中間層,支持主流開放接口標(biāo)準(zhǔn),應(yīng)對(duì)信息系統(tǒng)快速部署帶來的挑戰(zhàn)。
1、發(fā)動(dòng)機(jī)制造執(zhí)行系統(tǒng)定位
信息技術(shù)與自動(dòng)化制造技術(shù)已在汽車制造業(yè)行業(yè)大規(guī)模應(yīng)用,MES制造執(zhí)行系統(tǒng)在計(jì)劃管理層與底層控制之間架起了一座橋梁。一方面,MES可以對(duì)來自ERP系統(tǒng)的生產(chǎn)管理信息進(jìn)行細(xì)化、分解,將來自計(jì)劃層操作指令傳遞給底層控制層;另一方面,MES可以采集設(shè)備、儀表及數(shù)控機(jī)床的狀態(tài)數(shù)據(jù),實(shí)時(shí)監(jiān)控底層設(shè)備的運(yùn)行狀態(tài),再經(jīng)過分析、計(jì)算與處理,方便可靠地將控制系統(tǒng)與信息系統(tǒng)整合在一起,并將生產(chǎn)狀況及時(shí)反饋給計(jì)劃層。
1.1制造執(zhí)行層
制造執(zhí)行系統(tǒng)的建設(shè)目標(biāo)是建設(shè)一套動(dòng)力總成生產(chǎn)制造和現(xiàn)場(chǎng)質(zhì)量管理的信息平臺(tái)。系統(tǒng)需要覆蓋生產(chǎn)計(jì)劃,質(zhì)量追溯,生產(chǎn)監(jiān)控分析和物料管理等業(yè)務(wù),并可以根據(jù)各廠的不同需求,對(duì)各主要功能模塊采用模塊化的設(shè)計(jì),滿足差異化部署。制造系統(tǒng)需要極高的可靠性和穩(wěn)定性,同時(shí)為了滿足各工廠不同投資成本的需要,系統(tǒng)設(shè)計(jì)必須考慮軟硬件的可伸縮性,以盡量減少系統(tǒng)部署和維護(hù)成本。
1.2設(shè)備控制層
發(fā)動(dòng)機(jī)制造設(shè)備的自動(dòng)化程度很高,大多由可編程控制器(PLC)進(jìn)行自動(dòng)化控制,這為采集設(shè)備、儀表及數(shù)控機(jī)床的狀態(tài)數(shù)據(jù)提供了基石。上汽集團(tuán)通過制定發(fā)動(dòng)機(jī)廠PLC Memory Map規(guī)范,要求各家設(shè)備廠商按照規(guī)范,將PTMES系統(tǒng)需要交互的數(shù)據(jù)放入在PLC DB塊(內(nèi)存塊)中,以實(shí)時(shí)監(jiān)控底層設(shè)備的運(yùn)行狀態(tài)。再經(jīng)過分析、計(jì)算與處理,方便、可靠地將控制系統(tǒng)與信息系統(tǒng)整合在一起,將生產(chǎn)狀況及時(shí)反饋給計(jì)劃層。
1.3接口中間層
接口中間層介于PTMES和SCADA之間,支持OPC、FTP等主要接口標(biāo)準(zhǔn),可以實(shí)現(xiàn)生產(chǎn)管理、設(shè)備監(jiān)控、質(zhì)量追溯等現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)采集和交互。OPC是應(yīng)用于工業(yè)領(lǐng)域的開放通信技術(shù)標(biāo)準(zhǔn),在上汽集團(tuán)已廣泛應(yīng)用。OPC技術(shù)本質(zhì)是采用了Microsoft的COM/DCOM(組件對(duì)象模型/分布式組件對(duì)象模型)技術(shù),COM主要是為了實(shí)現(xiàn)軟件復(fù)用和互操作,并且為基于WINDOWS的程序提供了統(tǒng)一的、可擴(kuò)充的、面向?qū)ο蟮耐ㄓ崊f(xié)議,DCOM是COM技術(shù)在分布式計(jì)算領(lǐng)域的擴(kuò)展,使COM可以支持在局域網(wǎng)、廣域網(wǎng)甚至Internet上不同計(jì)算機(jī)上的對(duì)象之間的通訊[1]。OPC接口具有適用廣泛、高度柔性化,使上位IT系統(tǒng)和下位設(shè)備之間的數(shù)據(jù)交換更加簡(jiǎn)便和靈活。
2、MES接口中間層設(shè)計(jì)
2.1系統(tǒng)架構(gòu)設(shè)計(jì)
我們?cè)诓渴鹦翹LE發(fā)動(dòng)機(jī)生產(chǎn)線時(shí),引入了接口中間層設(shè)計(jì)以屏蔽不同工廠和生產(chǎn)線下位自動(dòng)化設(shè)備層的差異,實(shí)現(xiàn)上位PTMES系統(tǒng)和業(yè)務(wù)流程在不同工廠的無差異部署,遠(yuǎn)期還可實(shí)現(xiàn)集中化云端部署。如圖1,接口中間層分為4層,自下而上分別是:平臺(tái)層(Platform Layout)、工作配給層(Work Dispatch Layout)、工作調(diào)度層(Work Layout)和配置層(Config Layout)。
其中,平臺(tái)層用來實(shí)現(xiàn)接口中間層的輸入輸出,它兼容OPC、FTP和Web Service三種協(xié)議;工作配給層目前實(shí)現(xiàn)了八大業(yè)務(wù)模塊,它們擁有統(tǒng)一的接口,未來新增業(yè)務(wù)模塊擴(kuò)展,只需要按接口協(xié)議搭建,就可以通過配置反射無縫的融入到組件中,無需修改源碼;工作層可以實(shí)現(xiàn)進(jìn)程調(diào)度、線程啟停、工控監(jiān)控及web通訊,是接口中間層的核心;配置層通過主數(shù)據(jù)設(shè)置實(shí)現(xiàn)接口功能的可配置,每層的聯(lián)系都由配置層的工具類去提供具體配置。
2.2主要技術(shù)實(shí)現(xiàn)方法
接口中間層的內(nèi)部設(shè)計(jì)通過若干的配置及工廠方法、數(shù)據(jù)結(jié)構(gòu)模型及接口的定義,完全做到了松散的層級(jí)關(guān)系、緊密的層內(nèi)聚、高度的可配置,核心調(diào)配代碼復(fù)雜度不會(huì)隨著模塊的增加而增長(zhǎng),可維護(hù)性強(qiáng);而系統(tǒng)間集成則基于OPC、FTP和Web Service等主流協(xié)議標(biāo)準(zhǔn),通過接口配置可實(shí)現(xiàn)上位系統(tǒng)和下位設(shè)備的無關(guān)性,屬于輕量化、松耦合架構(gòu)設(shè)計(jì),便于低成本快速部署,可擴(kuò)展性強(qiáng)。
2.2.1模塊化的內(nèi)部設(shè)計(jì)
在面向?qū)ο笙到y(tǒng)中,接口是基本的組成部分。設(shè)計(jì)模式通過確定接口的主要組成成分及經(jīng)接口發(fā)送的數(shù)據(jù)類型,來幫助你定義接口[2]。接口中間層設(shè)計(jì)大量采用Factory模式、Builder模式和面向接口編程的好處是架構(gòu)穩(wěn)定。接口中間層的主要功能由采集線程和數(shù)據(jù)轉(zhuǎn)換線程來完成,所有的接口功能均通過配置模塊化,分別在采集線程和數(shù)據(jù)轉(zhuǎn)換線程中根據(jù)配置文件,調(diào)用不同的模塊接口,通過Factory模式、Builder模式返回接口組件,動(dòng)態(tài)的插入主流程中,做到了搭積木式的模塊化設(shè)計(jì)初衷,當(dāng)業(yè)務(wù)場(chǎng)景變化時(shí)(如新增的下位設(shè)備)可以直接搭入而無需修改程序代碼。
2.2.2松耦合的系統(tǒng)集成
松耦合系統(tǒng)的好處是顯而易見的,當(dāng)某一個(gè)業(yè)務(wù)模塊需要替換時(shí),只要從總線上“拔下來”,換上新的模塊就可以;需要增加新的業(yè)務(wù)室,只需將新業(yè)務(wù)模塊“插”到總線上即可[3]。松耦合的軟件架構(gòu)對(duì)開發(fā)設(shè)計(jì)人員提出了更高的要求,松耦合的系統(tǒng)具有更好的重用性、維護(hù)性和擴(kuò)展性,可以更高效地完成系統(tǒng)維護(hù)開發(fā),支持業(yè)務(wù)持續(xù)發(fā)展。
接口中間層通過數(shù)據(jù)采集線程(Function)和數(shù)據(jù)協(xié)議轉(zhuǎn)換線程(Transfer)兩大工作鏈,巧妙的解耦了這種上下位系統(tǒng)間耦合,屏蔽下位設(shè)備對(duì)MES系統(tǒng)的直接影響。對(duì)上位MES而言,僅通過Transfer鏈路組織數(shù)據(jù)轉(zhuǎn)換,而無關(guān)采集,可提升MES系統(tǒng)運(yùn)行性能;對(duì)下位設(shè)備而言,只是通過Function鏈路實(shí)時(shí)采集離散數(shù)據(jù),而無需按照MES要求計(jì)算組織數(shù)據(jù)并調(diào)用指定接口。
2.2.3輕量化的數(shù)據(jù)交換
眾所周知,SOA多采用SOAP(基于XML的簡(jiǎn)單對(duì)象訪問協(xié)議)去通訊,它的設(shè)計(jì)理念是通用,與語言、平臺(tái)無關(guān),這些優(yōu)點(diǎn)導(dǎo)致了它使用了大量的XML描述,定義了類似變量類型語法的XML元素。然而,相對(duì)于JSON而言,XML可以算是重量級(jí)的數(shù)據(jù)格式,這主要體現(xiàn)在解析上[4]。作為生產(chǎn)控制相關(guān)的系統(tǒng),SOAP在大并發(fā)場(chǎng)景下會(huì)產(chǎn)生大量的通訊數(shù)據(jù)外字節(jié)流,不符合精益理念。
如表1,通過比較分析,我們?cè)谠O(shè)計(jì)接口中間層的WEB通訊時(shí),引入了JSON輕量化數(shù)據(jù)交換格式(如圖2),它是基于JavaScript標(biāo)準(zhǔn)的子集,完全獨(dú)立于語言外的純文本,使用數(shù)據(jù)名稱鍵值對(duì)來傳輸數(shù)據(jù)。JSON易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,具有高效輕量的優(yōu)點(diǎn)。因此,我們?cè)赪EB通訊中采用了JSON輕量化格式。
3、結(jié)論
與整車廠相比,發(fā)動(dòng)機(jī)廠的生產(chǎn)設(shè)備自動(dòng)化程度更高,系統(tǒng)采集數(shù)據(jù)所涉及的信息量更大。因此設(shè)計(jì)一種滿足SOA架構(gòu)的企業(yè)級(jí)接口中間件,能夠提供給企業(yè)更好的靈活性來構(gòu)建信息系統(tǒng)和業(yè)務(wù)流程,以適應(yīng)多工廠、多產(chǎn)線快速擴(kuò)張對(duì)IT帶來的挑戰(zhàn)。本文介紹的柔性化MES接口中間層,已在上汽集團(tuán)自主品牌發(fā)動(dòng)機(jī)廠投入使用,這對(duì)改善發(fā)動(dòng)機(jī)制造執(zhí)行系統(tǒng)運(yùn)行效率,降低系統(tǒng)部署成本,規(guī)范企業(yè)數(shù)據(jù)采集標(biāo)準(zhǔn),都是一種有益的實(shí)踐和嘗試。