王浩
(中交紫光科技有限公司,北京,100088)
隨著時代不斷發(fā)展,科學技術不斷進步,促使我國的工業(yè)機器人開始突顯出智能化特征,需要注意的是,這是基于PLC控制技術而產(chǎn)生的。本文認為基于PLC控制技術下的工業(yè)機器人控制系統(tǒng)在未來社會中的發(fā)展過程中需要重視以下幾方面內(nèi)容:
(1)在實際操作過程中,提高PLC控制技術的仿真模擬、設計分析,提高仿真模擬的精準度,對工業(yè)機器人控制系統(tǒng)進行優(yōu)化,提高控制系統(tǒng)的整體性能,提高機器人的產(chǎn)能。
(2)隨著PLC控制技術不斷發(fā)展,其自身的應用范圍也在不斷擴寬,同時,PLC控制技術自身的控制性能不斷提升,促使工業(yè)機器人系統(tǒng)趨向于復雜化。
(3)借助PLC控制技術進一步完善網(wǎng)絡通信功能,促使工業(yè)機器人能夠與其他機器人之間實現(xiàn)遠程通信,循序漸進,將PLC控制技術發(fā)展成為全球工業(yè)機器人統(tǒng)一標準。
工業(yè)機器人系統(tǒng)的運行質(zhì)量主要由系統(tǒng)結構、應用技術所決定,在規(guī)劃設計過程中,需結合工業(yè)機器人控制系統(tǒng)的運行模式和實際作業(yè)的需求,確定控制系統(tǒng)的屬性,并將其作為規(guī)劃設計的依據(jù)。
(1)以實際運行環(huán)境而言。工業(yè)機器人的運行模式是根據(jù)系統(tǒng)所發(fā)出的指令進行確定,終端接收單元在獲取指令信號以后完成相應的操作。鑒于此,工業(yè)機器人內(nèi)部需預留一定的內(nèi)部空間,合理分布內(nèi)部空間結構,降低內(nèi)部空間的占有率,從而達到降低制造成本的目的。
(2)以運行負載層面而言。工業(yè)機器人加工制造以PLC控制技術作為核心研發(fā)出來,可以有效降低操作人員的工作壓力,進行批量化的生產(chǎn)活動,提高企業(yè)的整體運行效能。運行負載是指工業(yè)機器人結構在運行時,受到外部壓力而形成的一種荷載能力。因此,設計過程中需要明確劃分不同運行狀況的具體邊界,確定工作極限值,提高組裝系統(tǒng)的運行效率。
(3)在工作精度方面。組裝系統(tǒng)可以根據(jù)發(fā)出的指令信號完成相應的操作,同時對運行過程中的精準度造成一定的影響。機器人在完成某個指令的過程中,需結合終端單元對空間位置進行定位,待定位信息發(fā)送至控制系統(tǒng)后,方可調(diào)整操作參數(shù),設置下一步工序,提高系統(tǒng)運行過程中的精準度。設計運行精度時根據(jù)終端設置的空間定位進行確定,在最大程度上消除空間位置的偏差,促使指令發(fā)出后可以與終端單元實現(xiàn)連接。
工業(yè)機器人的結構組成比較簡單,主要由電纜、PC機(Personal Computer,個人計算機)、控制器、設備、I/O模塊(I/O module)、伺服電機等硬件裝置構成[1]。設計人員通過結構劃分,將工業(yè)機器人控制系統(tǒng)細分為三個關鍵性構成部位,具體情況可以參照下圖1。
圖1 工業(yè)機器人系統(tǒng)框架圖
終端用戶層是指機器人裝置PC設備、示教器,二者之間使用TCP/IP協(xié)議實現(xiàn)通信。操作人員可以利用示教器控制工業(yè)機器人完成相應的動作,上位機PC部位是設計人員根據(jù)實際作業(yè)的需求對功能模塊進行開發(fā)設計。
控制器層是工業(yè)機器人控制系統(tǒng)內(nèi)的關鍵構成部分,主要用來控制系統(tǒng)的運行狀態(tài),系統(tǒng)運行過程中控制器層與軟件、示教器之間相互交互。此外,該層負責解釋系統(tǒng)運行過程中的程序文件、機器人運行、過程控制等內(nèi)容。
硬件設備層主要負責硬件設備的控制,確保機器人接收到特定指令以后控制相應的硬件完成指令任務。
結合圖2來看,控制系統(tǒng)中軟件系統(tǒng)的設計大致可以細分為三個結構層??傆嬓枰撠熕膫€控制系統(tǒng)的進程:管理進程、RC(Remote Control,遙控、遠程控制)子系統(tǒng)進程、設備接口進程、PLC子系統(tǒng)進程。不同的進程所負責的任務不同,結合實際情況將運行任務細分為實時性任務、非實時性任務。
圖2 工業(yè)機器人控制器軟件系統(tǒng)架構圖
(1)運行管理層。該層主要負責控制系統(tǒng)的監(jiān)控與任務管理活動,具體涉及:機器人初始化配置、控制系統(tǒng)初始化、系統(tǒng)運行過程中的控制、任務管理、設備運行狀態(tài)監(jiān)管、機器人結構組件故障報警等。
(2)設備接口層。該層主要負責控制系統(tǒng)的外部接口進程,使用總線通訊的方式完成I/O模塊、伺服模塊之間的信息交互。本文采用EtherCat總線接口,利用EtherCat協(xié)議實現(xiàn)不同構件之間的數(shù)據(jù)交互。設備接口層其實是一個外部驅動接口,這種接口的兼容性較強大,可以適用于多種不同類型的接口,高效滿足控制系統(tǒng)通用性要求。
(3)核心業(yè)務層。該層主要負責兩個系統(tǒng)進程:RC及PLC。其中,RC進程主要用來控制機器人運行,PLC進程則負責管理系統(tǒng)的邏輯功能,二者之間存在緊密的關聯(lián)。進一步而言,PLC系統(tǒng)是整個業(yè)務層中的核心部分,通過PLC系統(tǒng)與RC系統(tǒng)進行交互,促使數(shù)據(jù)信息在控制系統(tǒng)不同子系統(tǒng)中相互傳遞,實現(xiàn)實時信息數(shù)據(jù)共享。
(4)本文著重對軟PLC系統(tǒng)展開調(diào)研,控制系統(tǒng)會將開發(fā)人員所設計的PLC程序傳輸至編輯器內(nèi),編輯器接收到程序后開始編譯,并對程序信息進行處理,然后將處理后的信息加載至控制系統(tǒng)內(nèi),再破解分析目標對象并執(zhí)行相應的操作。整個過程中,需要完成軟PLC系統(tǒng)初始化任務與虛擬機的兩個子任務。軟PLC系統(tǒng)進程的主線程其實是為了完成系統(tǒng)的初始化任務,完整讀取計算機自帶Windows系統(tǒng)中的目標文件,該文件存儲在PLC程序中,在這個過程中還會對PLC程序進行內(nèi)存映像,啟動PLC虛擬機,從而保證系統(tǒng)的線程進入堵塞狀態(tài),當程序的主線程任務完成后自動退出程序。不難發(fā)現(xiàn),PLC控制系統(tǒng)的關鍵性任務其實是軟PLC虛擬機的任務,在程序內(nèi)的主線程內(nèi)開啟一個或多個虛擬機子任務,讀取、解析、執(zhí)行目標對象的程序文件,從而實現(xiàn)邏輯、過程控制。
在對PLC控制技術進行研究分析、設計的過程中,設計人員需加大對機器人控制系統(tǒng)的功能需求關注度,明確指出PLC控制技術的實際需求。PLC控制器作為一種先進且性能強大的控制器,其具備諸多種輔助功能,控制器的核心構件是微處理器。PLC結合機器人運行的實際數(shù)據(jù)對其進行監(jiān)控,并結合監(jiān)控數(shù)據(jù)發(fā)出合理的指令,可以有效避免機器人發(fā)生故障。結合實際情況來看,工業(yè)機器人在實踐過程中,PLC控制技術發(fā)揮出巨大的效能。首先,該技術具備極強的控制能力,可以保證指令信息的時效性;其次,PLC控制技術具備一定的可靠性,其能夠對復雜的編碼進行加密處理,強化控制器的抗干擾能力,保證機器人運行過程中的穩(wěn)定性;最后,PLC控制技術具備適用性特點,可以被廣泛運用在諸多生產(chǎn)活動中。
設計人員在設計工業(yè)機器人的過程中,需要著重分析機器人抓取目標、搬運目標、裝配作業(yè)等相關功能,基于PLC控制技術,利用氣缸的驅動作用實現(xiàn)以上功能。依靠電磁閥構件來控制氣缸以實現(xiàn)各種不同功能,利用電磁閥構件驅動機器人執(zhí)行相應的動作,由此可以論證出工業(yè)機器人控制系統(tǒng)中運用PLC控制技術,系統(tǒng)必須內(nèi)置電磁閥與控制開關,并保證二者相互協(xié)調(diào),不會產(chǎn)生沖突,其屬于一種比較特殊的控制方法。一個完整的工業(yè)機器人需要配置兩個作業(yè)臺,在工業(yè)機器人進行控制的過程中,利用特定的構件將機器人移動至1#作業(yè)臺,然后將工件從2#作業(yè)臺移動至1#作業(yè)臺,再開始對下一個工件進行操作。工業(yè)機器人的作業(yè)流程可以參照圖3。
結合圖3可以了解到,工業(yè)機器人會根據(jù)事先編制好的作業(yè)流程執(zhí)行特定的動作。機器人在初始化部位開始向下移動,操作手指將1#作業(yè)臺上放置的工件夾住,移動至指定部位。在一定距離以后,機器人的機械臂會沿著既定方向進行移動,直至機器人將工件傳輸至2#作業(yè)臺部位。然后按照以上流程依次將所有工件全部放置在2#作業(yè)臺上,由此完成整個工作周期。工業(yè)機器人自動化控制系統(tǒng)能夠同時以連續(xù)性、手動型操作方式進行操控。設計過程中的關鍵點是保證PLC控制技術可以實現(xiàn),工件到達輸入點或輸出點完成分配任務。對工業(yè)機器人動作的變化進行了解,借助限位器來控制系統(tǒng)的位置檢測信號,促使機器人的機械臂動作變化的精準性。機器人的啟動與關閉可以通過控制按鈕來掌控。
圖3 機器人裝置工作流程示意圖
在設計工業(yè)機器人軟件的過程中,以機器人的操作流程作為依據(jù)。機器人是基于PLC控制技術開發(fā)出來的,控制系統(tǒng)提供有兩種控制模式:手動操控模式與自動操作模式。在對軟件部分進行設計時,需全面了解機器人控制系統(tǒng)的具體作業(yè)流程,確保流程的全面性,并對每一步作業(yè)流程進行檢驗。結合實際情況而言,在設計機器人控制系統(tǒng)的軟件部位時,應該嚴格按照以下流程進行:
(1)對機器人軟件程序進行初始化管理。初始化管理保證機器人處于充電狀態(tài)下,這樣規(guī)定是為了確保機器人可以有效展開后續(xù)的動作,保證控制系統(tǒng)不會因直接輸入信號而導致機器人表現(xiàn)出錯誤的動作。在編制控制程序時,應合理選擇PLC初始化狀態(tài)指令,從而達到簡化編程的目的。
(2)對機器人控制系統(tǒng)的手動模式進行優(yōu)化設計。在實際設計過程中,設置手動控制按鈕,確??刂葡到y(tǒng)設計的合理性,手動操控模式主要是為了應對機器人后期的檢修。先設計手動控制按鈕,將其與機器人的機械臂進行連接,適當降低機械臂,然后按照標準程序完成機器人手臂、手指、手腕的動作。為了進一步提高系統(tǒng)的安全性,可以設置保護程序進行保護。
(3)在全面掌握機器人常規(guī)性作業(yè)流程的前提下,對機器人自動化控制系統(tǒng)進行優(yōu)化設計,保證機器人每一個動作相互之間不會產(chǎn)生沖突。一般情況下,當機器人處于初始化狀態(tài)時,其應該對自身的結構組件進行自檢。
3.2.1 軟PLC虛擬機內(nèi)部數(shù)據(jù)表示
IEC61131-3標準僅定義了軟PLC編程語言層面的數(shù)據(jù)類型規(guī)范,未定義軟PLC運行時的數(shù)據(jù)表示方法。因此設計軟PLC虛擬機內(nèi)部數(shù)據(jù)表示時,一方面要能夠正確表達IEC6I I31-3標準數(shù)據(jù)類型,另一方面設計要盡量簡潔,以降低軟PLC虛擬機實現(xiàn)復雜度。因此本文采用帶類型標簽的數(shù)據(jù)共用體來表示虛擬機內(nèi)部數(shù)據(jù)。這種結構可表示整型、無符整型、浮點型和字符串型4種不同類型的數(shù)據(jù),每個數(shù)據(jù)均由類型標簽和值兩部分組成。
3.2.2 用戶級POU調(diào)用指令
IEC61131-3標準定義了3種形式的程序組織單元POU:函數(shù) FUN、功能塊FB和程序PROG。一個軟PLC任務由一個或多個POU組成,至少包含一個頂層POU,作為軟PLC任務的入口程序。每個POU都是一個獨立的軟件模塊,通過相互調(diào)用來實現(xiàn)完整的軟PLC功能。
這3種形式的POU有各自的異同點。為簡化虛擬機設計,本文采用統(tǒng)一的POU調(diào)用過程設計。為實現(xiàn)POU的調(diào)用過程,必須通過調(diào)用棧來維護調(diào)用狀態(tài),這樣才能在調(diào)用結束后保證正常返回。本文設計的調(diào)用棧結構包含棧容量、棧頂索引和??臻g基址。棧容量固定不變,是由軟PLC編譯器通過計算當前軟PLC任務的最大POU調(diào)用深度而給定的,并保存在軟PLC目標文件任務描述符中;棧頂索引始終指向下一個可用的空閑棧幀;調(diào)用棧空間是一個棧幀數(shù)組,在目標文件加載過程中根據(jù)棧容量動態(tài)分配而來。
PLC任務中每次調(diào)用一個POU時,虛擬機會創(chuàng)建這個POU(即當前活動的POU)棧幀結構,并壓入調(diào)用棧中;每次從一個POU中返回時,虛擬機便會從調(diào)用棧中彈出并銷毀這個POU棧幀結構。因此每個棧幀對應一個POU,棧底存放的棧幀便是頂層POU,即最外層或入口POU,棧頂存放的棧幀則是當前活動中的POU。
當前活動POU棧幀維護著該POU相關的接口信息以及返回地址信息,以保證調(diào)用時傳參過程和返回過程的正確性。本文設計的棧幀結構包含當前活動POU描述符索引、返回地址、寄存器組基址。當前活動POU描述符索引用于索引到當前活動POU描述符;返回地址實為軟PLC任務模型代碼段中虛擬機指令索引,指向調(diào)用當前活動POU指令的下一條虛擬機指令。
本文設計的虛擬機在運行時,不能直接對軟PLC任務模型中的各類數(shù)據(jù)段(即常量段、全局變量段、保持數(shù)據(jù)段)中的數(shù)據(jù)進行計算或操作,必須先從這些數(shù)據(jù)段中加載數(shù)據(jù)到寄存器中,然后對寄存器數(shù)據(jù)進行計算或操作。每個“寄存器”結構實際為一個內(nèi)部數(shù)據(jù)結構IValue,這種設計犧牲了一定的運行效率,換取了軟PLC編譯器和虛擬機實現(xiàn)復雜度的降低。寄存器組是在創(chuàng)建棧幀過程中動態(tài)分配而來的,其數(shù)目從當前活動POU描述符信息中獲取,即輸入變量個數(shù)p、輸入-輸出變量個數(shù)q、輸出變量個數(shù)r和局部變量個數(shù)s之和。在所有虛擬機指令中,均使用8bit的操作數(shù)來索引寄存器,因此寄存器組最多可包含256個寄存器。
具體執(zhí)行步驟如下所述:
(1)解碼ucall指令。ucall指令的編碼類型為ABx。其中A用于索引調(diào)用者寄存器組中傳入?yún)?shù)的起始位置,Bx用于索引被調(diào)用POU描述符。
(2)創(chuàng)建被調(diào)用者棧幀。將Bx保存在被調(diào)用者棧幀pou字段中,以便在被調(diào)用POU返回時使用;從軟PLC任務模型中取得當前程序計數(shù)器PC的值,并將PC+1保存到返回地址ret字段中,以便能正確返回到ucall指令的下一條指令;根據(jù)被調(diào)用POU描述符信息,動態(tài)分配n(n=p+q+r+s)個寄存器空間。
(3)傳入?yún)?shù)。從調(diào)用者寄存器組復制入?yún)⒌奖徽{(diào)用者寄存器組,傳入?yún)?shù)的個數(shù)為P+q,包括被調(diào)用you輸入變量和輸入-輸出變量。入?yún)⒃谡{(diào)用者寄存器組中起始位置由A索引,在被調(diào)用者寄存器組中起始位置為O。
(4)棧幀入棧。壓入被調(diào)用者棧幀到調(diào)用棧中,調(diào)用棧會自動維護棧頂索引,使其指向下一個空閑棧幀的位置。
(5)入口跳轉。從被調(diào)用POU描述符中取得入口地址i賦給程序計數(shù)器PC,至此ucall指令執(zhí)行完畢,虛擬機在下一個“取指-譯碼-執(zhí)行”周期,便進入被調(diào)用POU代碼內(nèi)執(zhí)行。
3.2.3 軟PLC系統(tǒng)運行庫
系統(tǒng)級POU調(diào)用過程具體步驟如下所述:
(1)解碼scull指令。scull指令的編碼類型為ABx,其中A用于索引寄存器組中參數(shù)列表的起始位置,Bx用于索引系統(tǒng)級POU描述符。
(2)執(zhí)行系統(tǒng)級POU本體。根據(jù)描述符的入口地址字段得到該系統(tǒng)級POU程序本體,將A索引的寄存器地址傳入后執(zhí)行。此時系統(tǒng)級POU內(nèi)部將直接對寄存器組的數(shù)據(jù)進行操作。
(3)程序計數(shù)器PC自增1,以便執(zhí)行下一條虛擬機指令,至此scan執(zhí)行完畢。
綜上所述,隨著工業(yè)生產(chǎn)活動規(guī)模不斷擴大,傳統(tǒng)的工業(yè)機器人控制系統(tǒng)無法有效滿足實際作業(yè)的需求,需要對工業(yè)機器人的自動化控制系統(tǒng)進行優(yōu)化升級。本文以PLC控制技術作為前提基礎,對自動化控制系統(tǒng)進行優(yōu)化設計,提高工業(yè)機器人自動化控制的整體性能,進而帶動整個工業(yè)產(chǎn)業(yè)進一步發(fā)展。