陸雪影
摘 要:文章主要從軟件和硬件兩個部分對基于PLC的工業(yè)機器人控制系統(tǒng)關(guān)鍵技術(shù)進(jìn)行研究,硬件部分詳細(xì)介紹了工業(yè)機器人與多個伺服驅(qū)動器通信的SERCOS高速傳輸總線,及其與外圍I/O設(shè)備通信的CanOpen總線協(xié)議;軟件部分在CoDeSys產(chǎn)品基礎(chǔ)上,重點對G代碼解碼程序,以及進(jìn)行工業(yè)機器人運動軌跡控制的插補程序結(jié)構(gòu)進(jìn)行研究。通過軟硬件的結(jié)合,工業(yè)機器人控制程序可讀取G代碼存儲的機器人運動控制程序,以及工業(yè)機器人硬件部分的準(zhǔn)確、快速通信,滿足工業(yè)機器人的應(yīng)用需求。
關(guān)鍵詞:工業(yè)機器人;控制系統(tǒng);SERCOS;CanOpen;CoDeSys
中圖分類號:TD40 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-2945(2018)12-0148-02
Abstract: In this paper, the key technology of industrial robot control system based on PLC is studied from two parts: software and hardware. In hardware part, the SERCOS high-speed transmission bus which communicates between industrial robot and several servo drivers is introduced in detail. The CanOpen bus protocol which communicates with the peripheral I/O equipment, the software part based on the CoDeSys product, with focus on the G code decoding program, as well as the interpolation program structure of the industrial robot motion trajectory control. Through the combination of software and hardware, the control program of industrial robot can read the motion control program stored in G code, and the hardware part of the industrial robot can communicate accurately and quickly, which can meet the application needs of industrial robot.
Keywords: industrial robot; control system; SERCOS; CanOpen; CoDeSys
工業(yè)機器人是一種機電一體化的高技術(shù)產(chǎn)品,在眾多生產(chǎn)領(lǐng)域廣泛應(yīng)用,對于提高勞動生產(chǎn)力,改善工人作業(yè)條件,提高產(chǎn)品質(zhì)量,提高經(jīng)濟效益等方面都起著不可替代的作用。運動控制是工業(yè)機器人最重要的構(gòu)成部分,本文主要對基于PLC的工業(yè)機器人運動控制系統(tǒng)進(jìn)行研究。
1 控制系統(tǒng)總體結(jié)構(gòu)
工業(yè)機器人控制系統(tǒng)的主要包括硬件和軟件兩個部分。其中,硬件部分主要通過SERCOS總線驅(qū)動工業(yè)機器人電機,以及為總線傳遞控制信號,實現(xiàn)與外圍I/O通信;軟件部分主要通過PLC實現(xiàn)機器人控制程序的讀取、語言的轉(zhuǎn)換、邏輯和運動控制??刂葡到y(tǒng)的工作原理與流程如下:控制系統(tǒng)上電時加載機器人控制程序,通過語言解釋程序,并通過PLC和CanOpen等現(xiàn)場總線接口,將CNC文件中的邏輯指令發(fā)送給I/O設(shè)備;同時,機器人語言解釋程序?qū)⑦\動控制指令轉(zhuǎn)換為標(biāo)準(zhǔn)G代碼,并通過插補程序計算各電機的控制目標(biāo)數(shù)據(jù);最后,通過SERCOS高速運動控制總線,實現(xiàn)與各軸控制器之間的通信,控制工業(yè)機器人的各軸運動,實現(xiàn)工業(yè)機器人的精準(zhǔn)控制。
2 控制系統(tǒng)硬件結(jié)構(gòu)
2.1 SERCOS總線
與其他總線相比,SERCOS總線的數(shù)據(jù)傳輸速率高,具有極高的數(shù)據(jù)傳輸效率,和可設(shè)置控制參數(shù)以確保系統(tǒng)同步和精度等特點,這在實時性要求較高的工業(yè)機器人控制系統(tǒng)中具有非常大的優(yōu)勢。為此,本文所設(shè)計的工業(yè)機器人控制系統(tǒng)采用SERCOS總線。工業(yè)機器人控制系統(tǒng)的硬件系統(tǒng)利用SERCOS主卡作為主站與機器人運動執(zhí)行部件之間的接口,為軟件系統(tǒng)提供了一個通用化、開放性的控制平臺,有助于實現(xiàn)控制系統(tǒng)主控功能的軟件化。
2.2 CanOpen協(xié)議
CAN總線鏈路層采用CSMA/CD方式,在總線傳輸發(fā)生沖突時,采用“非破壞總線優(yōu)先逐位仲裁”技術(shù),以保證優(yōu)先級高的信息能夠優(yōu)先通過總線傳輸,以保證工業(yè)機器人控制實時性。CanOpen基于CAL子協(xié)議,具有很好的模塊性特性,具備很強的適應(yīng)性,得到了廣泛的應(yīng)用。在CanOpen協(xié)議的應(yīng)用層,設(shè)備之間通過交換通信對象實現(xiàn)通信,借助CanOpen良好的面向?qū)ο蠛头謱釉O(shè)計思想,構(gòu)建了一個清晰的通信模型。CanOpen應(yīng)用層的所有對象(COB)可通過一個16位索引和一個8位子索引進(jìn)行檢索,由于CanOpen的性能穩(wěn)定、功能強大、價格低廉和通用性好等原因,本文所研究的工業(yè)機器人控制系統(tǒng)采用CanOpen協(xié)議實現(xiàn)控制系統(tǒng)與外圍I/O接口的通信。
3 控制系統(tǒng)軟件結(jié)構(gòu)
軟件是工業(yè)機器人控制系統(tǒng)的核心內(nèi)容之一,也是本文研究的重點內(nèi)容。本文所研究的工業(yè)機器人控制系統(tǒng)使用基于IEC61131-3標(biāo)準(zhǔn)的CoDeSys系統(tǒng)進(jìn)行PLC程序編寫。CoDeSys包含了力矩控制模塊、速度控制模塊、電機位置控制模塊、插補模塊等幾乎所有基本模塊,同時也支持用戶根據(jù)實際情況編寫新的控制模塊,其功能非常強大,應(yīng)用也非常人性化。在集成Windows操作系統(tǒng)的工控機上安裝CoDeSys軟件,并通過工控機上的SERCOS主卡和CAN總線卡,實現(xiàn)PLC與其它接口之間的通信。首先使用AML和AUTOPASS等具有動作級編程語言全部動作功能的高級語言,開發(fā)機器人控制程序,然后通過代碼解碼,將高級語言編寫的機器人控制程序,轉(zhuǎn)換為可以直接進(jìn)行伺服電機控制的數(shù)控程序(G代碼);最后,通過插補,確定最終的伺服電機運動控制軌跡。
3.1 代碼編譯
代碼編譯是將使用高級機器人語言編寫的機器人控制程序,轉(zhuǎn)換為數(shù)控程序(G代碼)的過程。其主要任務(wù)就是將用戶所編寫的機器人控制程序準(zhǔn)確無誤地轉(zhuǎn)換成相應(yīng)的G代碼指令。其實現(xiàn)包括兩個步驟的內(nèi)容:第一步,通過一個數(shù)組,將機器人控制程序的指令、變量及其值分別保存起來;第二步,將每一跳機器人運動控制程序轉(zhuǎn)換為G代碼,并保存到數(shù)據(jù)存儲器上。在CoDeSys中,使用ST實現(xiàn)代碼編譯過程,分別使用strComm、StrChar和fValue三個變量來存儲指令名、變量名和變量值三個部分的內(nèi)容。其數(shù)據(jù)結(jié)構(gòu)定義如下所示。
typedef struct ROBOT_PARAM{
String strComm;
String strChar;
String fVvalue;
} ROBOT_PARAM;
機器人的語言指令設(shè)計如表1所示。
3.2 代碼解碼
機器人控制程序在加載前以G代碼的形式保存在存儲器上,機器人的插補程序無法直接讀取文本形式的G代碼,因此需要借助解碼程序讀取文本總的G代碼,將之轉(zhuǎn)換為插補程序能識別的數(shù)據(jù)流,并傳給插補程序。該模塊的詳細(xì)介紹如表2所示。
3.3 插補程序
插補程序的主要功能為機器人運動軌跡控制,機器人根據(jù)控制系統(tǒng)所給出的機器人行動軌跡目標(biāo)位置,結(jié)合當(dāng)前位置信息,實現(xiàn)機器人運動軌跡插補。在解碼完成后,控制系統(tǒng)將完成解碼的控制數(shù)據(jù)發(fā)送給插補程序,并根據(jù)從解碼數(shù)據(jù)中獲得的機器人運行位置信息,進(jìn)而得到機器人運行到目標(biāo)位置,各電機所需要轉(zhuǎn)動的角度,進(jìn)而將這些角度值和運行順序發(fā)送給機器人電機,通過驅(qū)動電機的轉(zhuǎn)動,來實現(xiàn)機器人的運行控制。機器人運行軌跡的插補,相當(dāng)于逆向運動學(xué)分析。機器人運動插補程序的實現(xiàn)采用CoDeSys中的Interpolator模塊,在使能端被激活后,Interpolator模塊從g_CNCpoqPath中獲取機器人的目標(biāo)位置,進(jìn)行插補計算,通過piSetPosition函數(shù)將初步結(jié)果從輸出端口中輸送出去。
參考文獻(xiàn):
[1]張倩,單忠德.基于PLC和PMC的經(jīng)軸紗機器人控制系統(tǒng)研究與設(shè)計[J].制造業(yè)自動化,2017,12(25).
[2]宮小飛,陳富林,馮帥.基于ARM嵌入式機器人控制系統(tǒng)的研究與設(shè)計[J].機械與電子,2017,12(24).
[3]吳曉帆.基于PLC的焊接機器人自動控制系統(tǒng)設(shè)計[J].現(xiàn)代信息科技,2017,1(2).
[4]紀(jì)利琴,葛新生,蘇巧平.基于PLC的雙臂焊接機器人控制系統(tǒng)的設(shè)計[J].新鄉(xiāng)學(xué)院學(xué)報,2017,9(11).