劉 蘇,王學(xué)華,李安翼,張紅霞,王 燦,劉 鑫,申凱赟
武漢工程大學(xué)材料科學(xué)與工程學(xué)院,湖北 武漢 430205
制造執(zhí)行系統(tǒng)(manufacturing execution system,MES)是面向車(chē)間的信息管理系統(tǒng),向上銜接企業(yè)資源計(jì)劃(enterprise resource planning,ERP)系統(tǒng),向下連接生產(chǎn)線設(shè)備,是實(shí)現(xiàn)管理者和生產(chǎn)車(chē)間信息傳遞的重要載體[1]。MES系統(tǒng)包含從原材料采購(gòu)到成品入庫(kù)的生產(chǎn)過(guò)程進(jìn)行實(shí)時(shí)數(shù)據(jù)采集、控制和監(jiān)控的全過(guò)程,實(shí)現(xiàn)對(duì)生產(chǎn)控制、產(chǎn)品追蹤追溯、生產(chǎn)實(shí)時(shí)數(shù)據(jù)傳輸與處理等功能[2]。自動(dòng)化生產(chǎn)線中與生產(chǎn)有關(guān)的工藝數(shù)據(jù)及設(shè)備狀態(tài)數(shù)據(jù)大多存儲(chǔ)在可編程邏輯控制器(programmable logic controller,PLC)及其關(guān)聯(lián)的上位機(jī)中,要將這些與產(chǎn)品信息相關(guān)的數(shù)據(jù)獲取并集中存入MES系統(tǒng)中,就需要將MES系統(tǒng)數(shù)據(jù)庫(kù)與生產(chǎn)設(shè)備聯(lián)網(wǎng),實(shí)現(xiàn)生產(chǎn)數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)和更新[3]。本文基于以太網(wǎng)開(kāi)發(fā)了C/S結(jié)構(gòu)的MES系統(tǒng)中上位機(jī)與多種PLC的通訊及用于過(guò)程控制的對(duì)象連接和嵌入技術(shù)[object linking and embedding(OLE)for process contrd,OPC]服務(wù)技術(shù),滿足了多協(xié)議條件下生產(chǎn)設(shè)備與MES系統(tǒng)的集成,實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)的采集與存儲(chǔ)。
由于該汽車(chē)零部件裝配車(chē)間的數(shù)據(jù)采集和控制為集散式控制結(jié)構(gòu),每個(gè)工位單獨(dú)配備的PLC類(lèi)型不同,給遠(yuǎn)程數(shù)據(jù)采集帶來(lái)一定的困難。因此需要以遠(yuǎn)程主控PC為上位機(jī),通過(guò)以太網(wǎng)對(duì)所有分散的下位PLC進(jìn)行統(tǒng)一控制和調(diào)度[4]。通過(guò)物理接口(RS232、RS485、Ethernet接口)將上位機(jī)和設(shè)備中的PLC組成以太網(wǎng)。整個(gè)數(shù)據(jù)采集系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖1所示。

圖1 數(shù)據(jù)采集系統(tǒng)拓?fù)鋱DFig.1 Topology diagram of data acquisition system
系統(tǒng)中的生產(chǎn)單元為汽車(chē)零部件的組裝件。在生產(chǎn)時(shí),第一個(gè)工序?yàn)榧す獯驑?biāo),為每個(gè)零部件附加一個(gè)唯一的二維碼。該二維碼可以被每個(gè)工位配備的掃碼槍識(shí)別并把識(shí)別結(jié)果存入數(shù)據(jù)庫(kù)服務(wù)器。在后續(xù)的工序中,每個(gè)部件的裝配工藝及檢測(cè)結(jié)果均與這個(gè)唯一的二維碼對(duì)應(yīng),保證產(chǎn)品數(shù)據(jù)的唯一性。生產(chǎn)設(shè)備中大部分工藝數(shù)據(jù)和檢測(cè)數(shù)據(jù)及設(shè)備狀態(tài)均存儲(chǔ)在設(shè)備的PLC中,MES系統(tǒng)的生產(chǎn)數(shù)據(jù)及設(shè)備狀態(tài)需要從PLC中實(shí)時(shí)去獲取,當(dāng)生產(chǎn)出現(xiàn)故障或者產(chǎn)品檢驗(yàn)不合格時(shí),MES系統(tǒng)會(huì)遠(yuǎn)程鎖定當(dāng)前故障設(shè)備或工序。
采用上位機(jī)采集歐姆龍PLC的數(shù)據(jù)需要遵循歐姆龍公司開(kāi)發(fā)的工廠接口網(wǎng)絡(luò)服務(wù)(factory interface network service,F(xiàn)INS)通信協(xié)議,使用FINS指令作為通訊的核心支持Ethernet、Control?ler Link或串口連接。FINS指令包括報(bào)文頭、命令幀和響應(yīng)幀[5],指令格式如圖2所示。

圖2 FINS協(xié)議指令格式Fig.2 Instruction format of FINS protocol
FINS指令主要包括:數(shù)據(jù)區(qū)讀/寫(xiě);參數(shù)區(qū)讀/寫(xiě);程序區(qū)讀/寫(xiě);強(qiáng)制置位/復(fù)位;運(yùn)行停止控制;時(shí)鐘讀/寫(xiě)和文件讀/寫(xiě)[6]。指令的報(bào)文格式為:SB=ICF+RSV+GCT+DNA+DA1+DA2+SNA+SA1+SA2+SID+MRC+SRC+數(shù)據(jù)類(lèi)型+數(shù)據(jù)地址+通道號(hào)。當(dāng)發(fā)送符合FINS格式的指令給PLC后,就可以實(shí)現(xiàn)與PLC的正常讀寫(xiě)操作。
讀取點(diǎn)位的值時(shí),要首先了解點(diǎn)位的數(shù)據(jù)區(qū)域(CIO,DM,WR等),數(shù)據(jù)類(lèi)型(BIT,WORD等),通道數(shù)(歐姆龍PLC一個(gè)通道表示16位長(zhǎng)的數(shù)據(jù))。不同的數(shù)據(jù)區(qū)域和不同的數(shù)據(jù)類(lèi)型會(huì)對(duì)應(yīng)不同的指令代碼。值的寫(xiě)入和讀取類(lèi)似,在發(fā)送報(bào)文的內(nèi)容中加入要寫(xiě)入的值即可。程序設(shè)計(jì)流程如圖3所示。

圖3 PLC通訊軟件流程圖Fig.3 Flowchart of PLC communication software
三菱Q系列PLC采用MESLSEC通訊協(xié)議,與歐姆龍F(tuán)INS協(xié)議相比,MESLSEC通訊協(xié)議中減少了握手的交互,更簡(jiǎn)潔高效。該協(xié)議具有兩種報(bào)文類(lèi)型,分為二進(jìn)制和ASCII兩種格式[7]。本文主要采用ASCII格式,報(bào)文形式如圖4所示。

圖4 MC協(xié)議指令形式Fig.4 Instruction format of MC protocol
在與上位機(jī)進(jìn)行通訊時(shí),通訊報(bào)文中頭部、副頭部、網(wǎng)絡(luò)編號(hào)/可編程控制器編號(hào)、請(qǐng)求目標(biāo)模塊I/O編號(hào)及請(qǐng)求目標(biāo)站號(hào)均為默認(rèn)值。需要考慮的是請(qǐng)求數(shù)據(jù)長(zhǎng)度、指令/子指令和請(qǐng)求數(shù)據(jù)的內(nèi)容(包括軟元件代碼,起始地址,個(gè)數(shù)等)[8]。其中讀取元件值的子指令為“0401”;寫(xiě)元件值的子指令為“1401”,在報(bào)文尾部增加寫(xiě)入的數(shù)據(jù)部分即可[9]。
西門(mén)子S7-300/400系列PLC主要使用MPI協(xié)議和Profibus協(xié)議,但是協(xié)議內(nèi)容不公開(kāi)。可以利用OPC技術(shù)實(shí)現(xiàn)與PLC的通訊[10-11]。OPC技術(shù)無(wú)需關(guān)注具體的協(xié)議內(nèi)容,硬件廠家會(huì)提供相應(yīng)的OPC Server,這里只需開(kāi)發(fā)實(shí)現(xiàn)OPC接口標(biāo)準(zhǔn)的客戶(hù)端即可。OPC的接口原理如圖5所示。

圖5 OPC接口原理圖Fig.5 Schematic diagram of OPC interface
西門(mén)子公司為S7300/S7400系列PLC提供的OPC Server接口集成在SIMATIC NET軟件包中。安裝好該軟件后使用PC Station進(jìn)行組態(tài),建立OPC Server和CPU(PLC)的連接。將PLC中的程序下載,設(shè)置好訪問(wèn)點(diǎn)、屬性、IP等連接參數(shù)后便可被客戶(hù)端訪問(wèn)。OPC Server的數(shù)據(jù)結(jié)構(gòu)從上到下依次為Server、Group、Items、Item。使用時(shí)首先要獲取上位機(jī)運(yùn)行的OPC Server,并連接Server,再添加要監(jiān)控的Item,即可實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀寫(xiě)操作[12]。
對(duì)Item項(xiàng)的監(jiān)控采用異步監(jiān)控方式[13],每一個(gè)Item在本地客戶(hù)端和Server中都會(huì)有一個(gè)句柄用以標(biāo)識(shí),當(dāng)PLC中對(duì)應(yīng)的Item的值發(fā)生變化時(shí),Server服務(wù)器就會(huì)將變化的各種數(shù)據(jù)參數(shù)傳遞給OPC Client,客戶(hù)端會(huì)自動(dòng)觸發(fā)訂閱該事件的方法函數(shù)進(jìn)行傳遞[14],通過(guò)對(duì)參數(shù)的解析便可獲得Item項(xiàng)的數(shù)據(jù)。OPC客戶(hù)端的軟件流程如圖6所示。

圖6 OPC客戶(hù)端軟件流程圖Fig.6 Flowchart of PLC communication
雖然生產(chǎn)線現(xiàn)場(chǎng)PLC種類(lèi)繁多,通訊的方式也各不相同,但主要使用的功能均包括連接PLC和OPC Sever、讀取數(shù)據(jù)、修改數(shù)據(jù)和關(guān)閉連接。因此可以通過(guò)定義一個(gè)公共接口,將各種通訊方式的具體實(shí)現(xiàn)方法封裝為接口類(lèi),把這些功能都繼承于該接口[15]。在具體使用時(shí),根據(jù)條件實(shí)例化不同的接口,即可實(shí)現(xiàn)通訊的要求,通訊接口類(lèi)的關(guān)系結(jié)構(gòu)如圖7所示。

圖7 通訊接口類(lèi)的關(guān)系圖Fig.7 Diagram of communication interface class
歐姆龍F(tuán)INS、三菱MC以及西門(mén)子OPC技術(shù)的具體實(shí)現(xiàn)方法都封裝與一個(gè)具體的類(lèi),每個(gè)類(lèi)都繼承于ICommunication接口,該接口具有Con?nect,Close,Read,Write四種方法。當(dāng)要進(jìn)行數(shù)據(jù)操作時(shí),在PLCManager類(lèi)中首先根據(jù)參數(shù)ID實(shí)例具體的接口,即可以實(shí)現(xiàn)數(shù)據(jù)操作。
在某汽車(chē)零部件裝配車(chē)間,數(shù)據(jù)采集的第一步由掃碼器掃描各個(gè)部件的二維碼,上位機(jī)獲取該二維碼信息,并緩存。后續(xù)各工序的生產(chǎn)狀態(tài)和檢測(cè)結(jié)果由本文所開(kāi)發(fā)的數(shù)據(jù)采集服務(wù)在后臺(tái)完成,同時(shí)將采集到的數(shù)據(jù)與該二維碼關(guān)聯(lián)形成產(chǎn)品信息,最終存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫(kù)中。后臺(tái)服務(wù)的數(shù)據(jù)采集界面如圖8所示。

圖8 數(shù)據(jù)采集后臺(tái)服務(wù)界面Fig.8 Interface of data acquisition service
后臺(tái)服務(wù)中同時(shí)也設(shè)計(jì)了PLC報(bào)警的邏輯點(diǎn)位和數(shù)據(jù)合格性判斷條件,可以自動(dòng)或者手動(dòng)根據(jù)報(bào)警位置及產(chǎn)品是否合格實(shí)現(xiàn)設(shè)備的鎖定和解鎖,達(dá)到防止不合格品在生產(chǎn)線上流動(dòng)的目的。
基于某汽車(chē)零部件廠家MES系統(tǒng)開(kāi)發(fā),本文開(kāi)發(fā)了基于以太網(wǎng)的C/S結(jié)構(gòu)后臺(tái)數(shù)據(jù)采集服務(wù)功能模塊。該系統(tǒng)在某汽車(chē)零部件裝配車(chē)間實(shí)際使用,以峰值800 Kbps的速度同時(shí)采集10臺(tái)自動(dòng)化設(shè)備的PLC寄存器緩存數(shù)據(jù),運(yùn)行一個(gè)月?tīng)顟B(tài)穩(wěn)定,無(wú)故障。表明該系統(tǒng)滿足了生產(chǎn)線對(duì)生產(chǎn)數(shù)據(jù)實(shí)時(shí)采集、存儲(chǔ)的需要,同時(shí)也實(shí)現(xiàn)了對(duì)生產(chǎn)線設(shè)備狀態(tài)的監(jiān)控。
參考文獻(xiàn):
[1]段亦波,涂海寧,陸遠(yuǎn).CNC系統(tǒng)生產(chǎn)車(chē)間MES系統(tǒng)的研究與開(kāi)發(fā)[J].制造技術(shù)與機(jī)床,2016(2):130-134.
[2]程浩,袁紅兵.基于智慧工廠實(shí)驗(yàn)平臺(tái)的制造執(zhí)行系統(tǒng)(MES)軟件系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2017,39(7):142-146.
[3]XIA P.History of MES in China[J].American Oil Chemists'Society,2006(3):14-16.
[4]許丹.基于FINS協(xié)議的AGV無(wú)線控制的實(shí)現(xiàn)[J].電氣自動(dòng)化,2015,37(6):78-81.
[5]盧偉,孟婥,孫以澤,等.基于Modbus/TCP及FINS/TCP協(xié)議的數(shù)據(jù)采集與通訊系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2017(1):88-91.
[6]許樹(shù)業(yè),沈林勇.基于HostLink(FINS)協(xié)議的計(jì)算機(jī)與CP1H串行通信實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2016,29(2):13-14.
[7]喬元峰,陳寶昌,劉愛(ài)軍,等.三菱PLC與三菱變頻器之間的CC-Link通訊技術(shù)[J].裝備制造技術(shù),2012(2):82-84.
[8]于永茂,高德欣,杜厚朋.基于MX組件的三菱PLC監(jiān)控系統(tǒng)設(shè)計(jì)及應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2013,32(3):49-52.
[9]王堅(jiān),段振剛.三菱PLC網(wǎng)絡(luò)監(jiān)控系統(tǒng)中的通訊[J].微計(jì)算機(jī)信息,2012,28(8):37-38,13.
[10]王大鵬,蘇孝國(guó),王濤.基于C#語(yǔ)言的工業(yè)計(jì)算機(jī)與S7-1200的OPC通訊[J].自動(dòng)化與儀器儀表,2014(11):147-150,154.
[11]王達(dá),趙千川,馬喜春.基于OPC的PLC程序自動(dòng)化測(cè)試[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(10):100-104,108.
[12]石靈丹,華斌,朱歆州,等.基于OPC技術(shù)的PC與西門(mén)子 PLC 的實(shí)時(shí)通訊[J].船電技術(shù),2011,31(1):9-12.
[13]李博,鄭偉麗.基于C#的OPC自動(dòng)化接口異步訪問(wèn)技術(shù)[J]. 信息技術(shù) ,2014(8):140-142,146.
[14]張俊彪,王鴻輝,何長(zhǎng)安.基于OPC Server的PC與S7-300/400的通信[J].電力自動(dòng)化設(shè)備,2007(4):83-86.
[15]路小俊,冬大龍,宋斌.基于OPC技術(shù)的風(fēng)電廠數(shù)據(jù)采集與監(jiān)控系統(tǒng)方案[J].電力系統(tǒng)自動(dòng)化,2008,32(23):90-94.