許丹
(上海交通大學(xué) 軟件學(xué)院,上海 200240)
隨著計算機集成制造系統(tǒng)技術(shù)的逐步發(fā)展和工廠運作自動化的趨勢,自動化立體倉庫和柔性制造系統(tǒng)的廣泛應(yīng)用,AGV作為調(diào)節(jié)和聯(lián)系離散型物流系統(tǒng),使其作業(yè)連續(xù)化的必要的自動化裝卸搬運手段,其應(yīng)用范圍和技術(shù)水平得到迅猛發(fā)展[1]。AGV物流機器人的使用也漸漸普及,應(yīng)用遍及各行各業(yè),如:傳統(tǒng)生產(chǎn)物料運輸、柔性裝配線、加工線等。
Automated Guided Vehicle,簡稱AGV,是指裝有電磁或光學(xué)等自動導(dǎo)引裝置,能夠沿規(guī)定路徑行駛,且具有安全保護以及各種移動裝載功能的運輸車[2]。AGV在工業(yè)應(yīng)用中不需駕駛員,以可反復(fù)充電的蓄電池作為動力來源,一般可以通過電腦來控制其行進路線以及行為,或利用電磁軌道來設(shè)定其行進路線,電磁軌道粘貼于地板上,依靠電磁軌道及埋入其中的RFID卡來控制其行動。
目前,對于AGV的應(yīng)用雖然較為廣泛,但大部分都只是采用了單機或單任務(wù)運作的方式,缺少與上層軟件及控制系統(tǒng)的配合調(diào)度,使AGV應(yīng)用的發(fā)展受到了一定的限制。為此,研發(fā)一套可以適用于實際工廠生產(chǎn)制造使用的多站點、多AGV協(xié)同調(diào)度系統(tǒng)就顯得非常重要,而不同設(shè)備間的通訊協(xié)議又成了控制系統(tǒng)的中樞神經(jīng)。
如圖1所示,上位機、AGV小車、歐姆龍PLC以及工廠MES系統(tǒng)服務(wù)器通過工業(yè)局域網(wǎng)連接。其中,上位機、歐姆龍PLC通過有線網(wǎng)絡(luò)連接到MOXA工業(yè)交換機,AGV小車通過工業(yè)WIFI無線網(wǎng)絡(luò)連接到MOXA無線AP,MOXA工業(yè)交換機與無線AP之間通過有線網(wǎng)絡(luò)連接組成整個局域網(wǎng)。工廠現(xiàn)場的操作按鈕盒與警示燈則通過電氣接線連接到歐姆龍PLC。
系統(tǒng)作業(yè)時,計算機通過無線電通訊系統(tǒng)自動將任務(wù)分配給離任務(wù)作業(yè)點最近的(由路徑規(guī)劃中段上小車行走時間確定)AGV小車[3]。AGV小車根據(jù)作業(yè)指令完成相應(yīng)的啟動、停止或急停操作,上位機軟件畫面見圖2。
上位機與AGV小車之間通過AGV專用協(xié)議進行通訊。上位機每秒向所有AGV發(fā)送一次查詢指令,AGV收到查詢指令后將自己的編號、當(dāng)前地標(biāo)號、地標(biāo)功能、狀態(tài)、報警信息及路線信息反饋給上位機。
上位機與PLC之間的通訊協(xié)議分為網(wǎng)絡(luò)傳輸協(xié)議與控制協(xié)議網(wǎng)絡(luò)傳輸協(xié)議即采用歐姆龍PLC的FINS協(xié)議進行網(wǎng)絡(luò)通訊。上位機根據(jù)FINS協(xié)議的規(guī)定將消息報文以固定的格式與PLC之間進行數(shù)據(jù)交互。
控制協(xié)議是在軟件開發(fā)過程中自定義的協(xié)議,其作用是將AGV專用協(xié)議轉(zhuǎn)換成PLC控制程序可以識別的協(xié)議。
圖1 系統(tǒng)架構(gòu)圖
圖2 上位機軟件畫面
AGV專用協(xié)議是由AGV廠商提供的出廠協(xié)議,用于實現(xiàn)AGV與上位機的信息交互。它包含了查詢與控制兩種協(xié)議。
協(xié)議格式如表1所示。
FINS通信協(xié)議是歐姆龍公司開發(fā)的用于工業(yè)自動化控制網(wǎng)絡(luò)的指令相應(yīng)系統(tǒng)。使用FINS指令可實現(xiàn)各種網(wǎng)絡(luò)之間的無縫通信,包括Ethernet網(wǎng)、Controller Link網(wǎng)等。FINS指令是歐姆龍網(wǎng)絡(luò)通信協(xié)議的核心。Ethernet網(wǎng)、Controller Link網(wǎng)或串口都可以通過FINS指令實現(xiàn)通信[4]。使用FINS協(xié)議,歐姆龍可編程控制器作為TCP服務(wù)器,用戶需開發(fā)TCP客戶端程序[5]。
表1 AGV專用協(xié)議格式
3.3.1 協(xié)議結(jié)構(gòu)
FINS指令包含F(xiàn)INS報文頭及命令幀或響應(yīng)幀,F(xiàn)INS協(xié)議的命令幀與響應(yīng)幀框架結(jié)構(gòu)如表2~表4所示。
表2 命令幀格式
表3 響應(yīng)幀格式
表4 ICF:信息控制域,用于標(biāo)明指令和響應(yīng)
Bit0:“0”表示需要響應(yīng),“1”表示不需要響應(yīng)。
Bit6:“0”表示該條命令為指令,“1”表示該條命令為響應(yīng)。
Bit7:“0”表示不使用網(wǎng)關(guān),“1”表示使用網(wǎng)關(guān)。一般總是置1
RSV:默認(rèn)為00
GCT:網(wǎng)關(guān)允許數(shù),默認(rèn)為02
DNA:目標(biāo)網(wǎng)絡(luò)地址
“00”表示本地網(wǎng)絡(luò)
“01-7F”表示遠(yuǎn)程網(wǎng)絡(luò)地址(1-127)
DA1:目的節(jié)點號,計算機IP地址(十六進制)
DA2:目的單元號,“00”表示CPU單元
SNA:源網(wǎng)絡(luò)地址:“00”表示本地網(wǎng)絡(luò)
SA1:源節(jié)點號,PLC設(shè)定的IP地址(十六進制)
SA2:源單元地址,“00”表示CPU單元(PLC)
SID:服務(wù)標(biāo)識:識別服務(wù)來自何處
CMD:命令碼
“0101”表示讀取
“0102”表示寫入
RSD:響應(yīng)碼
TXT:正文
3.3.2 建立通訊
使用FINS協(xié)議進行網(wǎng)絡(luò)通信,首先要進行握手建立通訊:
采用socket tool測試工具,從計算機向PLC發(fā)送數(shù)據(jù)
“46494E530000000C000000000000000000000064”
PLC收到數(shù)據(jù)包后返回應(yīng)答數(shù)據(jù)
“46494E530000000C00000000000000000000006400000001”
這樣即表示通過握手建立了通訊。
3.3.3 數(shù)據(jù)交互
計算機使用FINS協(xié)議向PLC的D0寄存器寫入數(shù)據(jù):
“46494E53000000240000000200000000800002000100006400 00010282000000000512345678901234567890”
自定義協(xié)議是在控制程序編寫過程中根據(jù)實際數(shù)據(jù)通訊需求而自行定義的部分通訊協(xié)議。這部分協(xié)議主要用于處理AGV小車的狀態(tài)信息及各工位的控制按鈕信息,簡化上位機與PLC之間的控制流程。當(dāng)前使用的自定義協(xié)議包括小車受控信息協(xié)議及工位按鈕信息協(xié)議。
3.4.1 小車受控信息協(xié)議
小車受控信息協(xié)議包含了小車運行狀態(tài)及所屬控制工位兩種信息。上位機通過輪詢命令獲取各個小車的運行狀態(tài)(運行或停止)及當(dāng)前所屬的地標(biāo)號并加以處理,并根據(jù)小車受控信息協(xié)議將信息實時更新到PLC。
小車受控信息協(xié)議內(nèi)容如表5所示。
(1)為每輛AGV小車分配一個固定的數(shù)據(jù)寄存器:D500-D514對應(yīng)1號-15號AGV小車。
(2)每個數(shù)據(jù)寄存器D的協(xié)議格式
表5 受控信息寄存器協(xié)議格式
3.4.2 工位按鈕信息協(xié)議
工位按鈕信息協(xié)議用于將工位按鈕發(fā)出的控制信息經(jīng)PLC處理后發(fā)送給上位機,并控制相應(yīng)的AGV小車。該協(xié)議信息中包含了發(fā)出控制信息的按鈕所在的工位號、按鈕需要實現(xiàn)的功能以及控制對應(yīng)AGV小車的編號(見表6)。
工位號:由1個數(shù)據(jù)字組成,Bit0-Bit12分別對應(yīng)工位1-工位13
按鈕功能分為4種,啟動:0001;放行:0002;拍停:0003;急停:0004;復(fù)位:0005
小車號:由1個數(shù)據(jù)字組成,Bit0-Bit14分別對應(yīng)1號AGV小車-15號AGV小車
表6 工位按鈕信息協(xié)議格式
通過以上兩個自定義協(xié)議,就在AGV小車、上位機及PLC之間建立起了溝通的橋梁,使整個通訊、控制流程變得容易和可能。
根據(jù)之前的協(xié)議定義,現(xiàn)以1號小車及4號工位為例實現(xiàn)控制:假設(shè)1號AGV為停止?fàn)顟B(tài),當(dāng)前地標(biāo)位為4號工位,現(xiàn)在操作人員需要通過按下4號工位的啟動按鈕控制1號AGV運行(見圖3)。
(1)上位機由輪詢獲取到1號AGV的狀態(tài),通過信息處理,將1號AGV“停止?fàn)顟B(tài)”、“4號工位”信息更新到PLC的內(nèi)部寄存器D500。上位機根據(jù)FINS協(xié)議格式,向PLC發(fā)送數(shù)據(jù):“94E530000001C0000000200000 0008000020001000064000001028201F 400010008”完成該功能。
(2)PLC收到該信號后,即得到了1號AGV的狀態(tài):1號AGV目前停止在4號工位上。此時PLC收到來自4號工位的啟動按鈕信號,經(jīng)PLC內(nèi)部邏輯判斷后確定由1號AGV響應(yīng)該按鈕的控制要求,PLC即向上位機發(fā)送數(shù)據(jù)“46494E5300000024000000020000 0000800002006400000100010102 82000A000005201800080002000105CD”即通知上位機4號工位的啟動按鈕發(fā)出信號并要求放行1號AGV。
圖3 上位機軟件控制框圖
(3)上位機收到PLC指令后,將該指令信息記錄在案,并立即根據(jù)AGV專用協(xié)議向1號AGV發(fā)送數(shù)據(jù)“20170101000000003 705”通知1號AGV啟動。
(4)1號AGV收到上位機指令后立即啟動并同時回復(fù)上位機“20270108004001014E05”表示自己已收到命令并已啟動。至此,一套完整的控制流程完成。
隨著科學(xué)技術(shù)的發(fā)展以及信息化的普及,通訊問題已經(jīng)在控制領(lǐng)域中越來越突出地體現(xiàn)出來。無論是單體元器件本身的通訊亦或是各個不同廠商、不同型號的控制元器件之間的通訊,都是系統(tǒng)集成過程中需要解決的最主要的問題之一。而解決通訊問題的關(guān)鍵還是需要對各元器件本身的通訊方式及通訊協(xié)議深入地理解,并采用一套行之有效的方法將各種協(xié)議糅合在一起或互相轉(zhuǎn)換。若在必要時采用計算機進行輔助信息處理,會使控制變得更高效、更穩(wěn)定。
[1]張國亞.自動導(dǎo)引小車的設(shè)計與實現(xiàn)[D].武漢:武漢科技大學(xué),2008.
[2]陳超,葉慶泰.基于圖像引導(dǎo)的自動小車系統(tǒng)設(shè)計[J].機械設(shè)計與研究,2004,20(1):65-67.
[3]劉書婷,夏利霞.自動引導(dǎo)AGV小車在汽車生產(chǎn)線上的應(yīng)用[J].大科技(科技天地),2011,2(5):167-168.
[4]FINS Commands Reference Manual[K].日本:OMRON,2001.
[5]劉保杰,呂衛(wèi)星,張立鋒,等.基于FINS協(xié)議和協(xié)議宏的控制網(wǎng)絡(luò)通信的實現(xiàn)[J].中國原子能科學(xué)研究院年報,2011,34:164-165.
[6]狄敬國,李秀美,王鳳杰.基于FINS協(xié)議的計算機與PLC的通信[J].中國農(nóng)機化學(xué)報,2012,29(5):153-156.