陸雪影
摘 要:文章主要從軟件和硬件兩個部分對基于PLC的工業機器人控制系統關鍵技術進行研究,硬件部分詳細介紹了工業機器人與多個伺服驅動器通信的SERCOS高速傳輸總線,及其與外圍I/O設備通信的CanOpen總線協議;軟件部分在CoDeSys產品基礎上,重點對G代碼解碼程序,以及進行工業機器人運動軌跡控制的插補程序結構進行研究。通過軟硬件的結合,工業機器人控制程序可讀取G代碼存儲的機器人運動控制程序,以及工業機器人硬件部分的準確、快速通信,滿足工業機器人的應用需求。
關鍵詞:工業機器人;控制系統;SERCOS;CanOpen;CoDeSys
中圖分類號:TD40 文獻標志碼: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
工業機器人是一種機電一體化的高技術產品,在眾多生產領域廣泛應用,對于提高勞動生產力,改善工人作業條件,提高產品質量,提高經濟效益等方面都起著不可替代的作用。運動控制是工業機器人最重要的構成部分,本文主要對基于PLC的工業機器人運動控制系統進行研究。
1 控制系統總體結構
工業機器人控制系統的主要包括硬件和軟件兩個部分。其中,硬件部分主要通過SERCOS總線驅動工業機器人電機,以及為總線傳遞控制信號,實現與外圍I/O通信;軟件部分主要通過PLC實現機器人控制程序的讀取、語言的轉換、邏輯和運動控制。控制系統的工作原理與流程如下:控制系統上電時加載機器人控制程序,通過語言解釋程序,并通過PLC和CanOpen等現場總線接口,將CNC文件中的邏輯指令發送給I/O設備;同時,機器人語言解釋程序將運動控制指令轉換為標準G代碼,并通過插補程序計算各電機的控制目標數據;最后,通過SERCOS高速運動控制總線,實現與各軸控制器之間的通信,控制工業機器人的各軸運動,實現工業機器人的精準控制。
2 控制系統硬件結構
2.1 SERCOS總線
與其他總線相比,SERCOS總線的數據傳輸速率高,具有極高的數據傳輸效率,和可設置控制參數以確保系統同步和精度等特點,這在實時性要求較高的工業機器人控制系統中具有非常大的優勢。為此,本文所設計的工業機器人控制系統采用SERCOS總線。工業機器人控制系統的硬件系統利用SERCOS主卡作為主站與機器人運動執行部件之間的接口,為軟件系統提供了一個通用化、開放性的控制平臺,有助于實現控制系統主控功能的軟件化。
2.2 CanOpen協議
CAN總線鏈路層采用CSMA/CD方式,在總線傳輸發生沖突時,采用“非破壞總線優先逐位仲裁”技術,以保證優先級高的信息能夠優先通過總線傳輸,以保證工業機器人控制實時性。CanOpen基于CAL子協議,具有很好的模塊性特性,具備很強的適應性,得到了廣泛的應用。在CanOpen協議的應用層,設備之間通過交換通信對象實現通信,借助CanOpen良好的面向對象和分層設計思想,構建了一個清晰的通信模型。CanOpen應用層的所有對象(COB)可通過一個16位索引和一個8位子索引進行檢索,由于CanOpen的性能穩定、功能強大、價格低廉和通用性好等原因,本文所研究的工業機器人控制系統采用CanOpen協議實現控制系統與外圍I/O接口的通信。
3 控制系統軟件結構
軟件是工業機器人控制系統的核心內容之一,也是本文研究的重點內容。本文所研究的工業機器人控制系統使用基于IEC61131-3標準的CoDeSys系統進行PLC程序編寫。CoDeSys包含了力矩控制模塊、速度控制模塊、電機位置控制模塊、插補模塊等幾乎所有基本模塊,同時也支持用戶根據實際情況編寫新的控制模塊,其功能非常強大,應用也非常人性化。在集成Windows操作系統的工控機上安裝CoDeSys軟件,并通過工控機上的SERCOS主卡和CAN總線卡,實現PLC與其它接口之間的通信。首先使用AML和AUTOPASS等具有動作級編程語言全部動作功能的高級語言,開發機器人控制程序,然后通過代碼解碼,將高級語言編寫的機器人控制程序,轉換為可以直接進行伺服電機控制的數控程序(G代碼);最后,通過插補,確定最終的伺服電機運動控制軌跡。
3.1 代碼編譯
代碼編譯是將使用高級機器人語言編寫的機器人控制程序,轉換為數控程序(G代碼)的過程。其主要任務就是將用戶所編寫的機器人控制程序準確無誤地轉換成相應的G代碼指令。其實現包括兩個步驟的內容:第一步,通過一個數組,將機器人控制程序的指令、變量及其值分別保存起來;第二步,將每一跳機器人運動控制程序轉換為G代碼,并保存到數據存儲器上。在CoDeSys中,使用ST實現代碼編譯過程,分別使用strComm、StrChar和fValue三個變量來存儲指令名、變量名和變量值三個部分的內容。其數據結構定義如下所示。
typedef struct ROBOT_PARAM{
String strComm;
String strChar;
String fVvalue;
} ROBOT_PARAM;
機器人的語言指令設計如表1所示。
3.2 代碼解碼
機器人控制程序在加載前以G代碼的形式保存在存儲器上,機器人的插補程序無法直接讀取文本形式的G代碼,因此需要借助解碼程序讀取文本總的G代碼,將之轉換為插補程序能識別的數據流,并傳給插補程序。該模塊的詳細介紹如表2所示。
3.3 插補程序
插補程序的主要功能為機器人運動軌跡控制,機器人根據控制系統所給出的機器人行動軌跡目標位置,結合當前位置信息,實現機器人運動軌跡插補。在解碼完成后,控制系統將完成解碼的控制數據發送給插補程序,并根據從解碼數據中獲得的機器人運行位置信息,進而得到機器人運行到目標位置,各電機所需要轉動的角度,進而將這些角度值和運行順序發送給機器人電機,通過驅動電機的轉動,來實現機器人的運行控制。機器人運行軌跡的插補,相當于逆向運動學分析。機器人運動插補程序的實現采用CoDeSys中的Interpolator模塊,在使能端被激活后,Interpolator模塊從g_CNCpoqPath中獲取機器人的目標位置,進行插補計算,通過piSetPosition函數將初步結果從輸出端口中輸送出去。
參考文獻:
[1]張倩,單忠德.基于PLC和PMC的經軸紗機器人控制系統研究與設計[J].制造業自動化,2017,12(25).
[2]宮小飛,陳富林,馮帥.基于ARM嵌入式機器人控制系統的研究與設計[J].機械與電子,2017,12(24).
[3]吳曉帆.基于PLC的焊接機器人自動控制系統設計[J].現代信息科技,2017,1(2).
[4]紀利琴,葛新生,蘇巧平.基于PLC的雙臂焊接機器人控制系統的設計[J].新鄉學院學報,2017,9(11).