葉運先
廣東省海洋工程職業技術學校,廣東 廣州 510320
要想利用控制工業活動所使用的軟件達到通信目的,只有通過研發自定義接口的方法。直至OPC這項技術的問世,并將這一技術使用到工業控制中后,研發人員只需提供統一的接口程序,同時根據OPC技術的有關數據通信協議,就可以實現數據通信這一目標。
本文選取三臺ER20-C10型號的六軸工業機器人作為研究對象,每臺機器人具備的負重能力是20kg,其使用的控制系統是Austria公司研發的KEBA控制系統,以及PLC產品使用的硬件設備,它們分屬于存在差異的不同生產廠家,兩個機器人之間以及機器人和PLC200之間全部無法直接進行通信聯系。使用OPC技術,在Windows XP Professional SP2工作環境中,利用Microsoft Visual C++2006這一電腦開發工具,對客戶端位置的程序進行編寫,隨后在開展研究工作的對象機器人以及PLC200當中,對其內部數據進行獲取以及傳輸,實現兩個機器人之間進行聯動控制以及機器人和PLC200之間進行即時通信的目標[1]。
OPC對數據進行儲存以及讀取的標準屬于OPC標準中的一個核心部分,主要是對工作現場設備獲得的在線數據實施儲存以及讀取。標準內提到:一個OPC的客戶端程序能夠與一個甚至多個不同的OPC服務器商家進行連接,另外,多個不同的OPC客戶端程序同樣能夠與單一的OPC服務器進行連接,見圖1。

圖1 OPC的客戶端和服務器之間存在的關聯
客戶端程序和OPC服務器二者進行的連接以及通信工作,經過兩種類型的接口最終完成。第一種是專項定制的接口,第二種是自動化形式的接口。專項定制的接口主要用到使用C++這一計算機語言當中的應用開發程序,是要求相關的服務商一定要提供的內容;而自動化形式的接口主要用到使用VB、C#、Delphi等編程過程中使用的語言,它們在實際應用的開發程序中可以進行選擇,見圖2。

圖2 經典的OPC架構示意圖
OPC數據存儲服務器中主要涵蓋了OPC Server(服務器當中的對象)、OPC Group(組對象)以及OPC Item(項對象)三個部分。其中,OPC Server對于服務器中的相關信息內容進行維護,同時擔任OPC Group的包容器,能夠以動態的形式對OPC Group進行建立以及釋放;OPC Group僅對自身的有關信息進行維護,提供包容以及邏輯組織的OPC機制。將其劃分成兩個組別,分別是公共組以及私有組,其中公共組使用到對大量不同的客戶程序端進行共享,而私有組則只是用到單一的客戶程序端。OPC項代表與OPC服務器內部的數據進行連接,客戶端程序經過OPC Group,完成對OPC項開展的訪問工作,以實現獲取信號變量的數值(Value)、數據的具體類型(Type)以及達到的品質(Quality)等信息[2]。
3.1.1 對PC站進行配置
對機器人所有區域開展的硬件連接工作結束以后,將Station Configurator Editor打開,在進行配置工作的界面一號槽中加入OPC Server,在三號槽中加入CP5611卡,同時在它的屬性對話框內將FROFIBUS參數輸入進去,站點地址是3,協議的類型是DP,輸送速度設置成1.5Mbps。上述提到的配置工作全部結束之后,將PC站中的Station Name命名成“PC”。
3.1.2 STEP7中的組態PC站
建立一個全新的Simatic PC Station,將一個PC站插入其中,其命名是最初對PC站進行配置操作的Station Name“PC”。在硬件區域的目錄窗口中,組態和進行安裝操作的硬件要和SIMATIC NET軟件版本相同,插槽結構和Station Configurator Editor內部的配置相同。把CP5611設置成DP的主要站點,根據順序加入西門子生產的EM277模塊以及本文研究對象——三臺工業機器人中的通信模塊FM265/A,將其當作DP的從站,對與之對應的參數進行設置,同時實施編譯以及存儲操作。將NetPro打開,對PROFIBUS-DP網絡進行組態,設立與之對應的站點地址以及傳輸率等參數,同時開展編譯以及存儲工作。
3.1.3 控制面板
打開控制面板,將“Set PG/PC Interface”窗口打開,選取“CP5611(PROFIBUS)<Active>”,確認開展的編譯存儲工作未出現漏洞以后,把最后的額正確組態信息下載到PC站內,完成OPC中的服務器涉及的組態工作。
客戶端程序開展的工作是在OPC服務器中,讀取連接展臺前方位置的按鈕狀態數據源的項的對象數值,以此實現對機器人所處狀態的判斷。隨后經過對OPC服務器實施編寫操作,把開啟這一命令數值傳輸至與之對應的對象,對文中所述對象機器人以及數控回轉臺的開啟工作進行控制,之后工業智能化機器人就能夠跟著音樂,完成一系列活動流程。如圖3所示。

圖3 程序的具體工作流程示意圖
3.2.1 兩個工業機器人之間開展聯動控制
文中所述對象機器人能夠最終運行,其中開展編程工作的是機器人自身安裝的示教盒,這一部件最終讓機器人實現了示范教學。為了確保在工作過程中不會出現相互干擾的問題,實現聯動控制這一目的,應將所有工業機器人供給的輸入進去的3個字節以及輸出的最后變量(4個字節),添加成OPC服務器當中的OPC Item。
3.2.2 機器人和數控回轉臺二者之間實現聯動控制
若是機器人運行到某一部分操作期間,需要與數控回轉臺進行聯合運行,這時機器人會輸出相應的一些變量數值,傳輸到OPC服務器中對應的OPC Item,等到客戶端程序將這一數值讀取以后,將OPC服務器內部的PLC200相應的OPC Item填寫到命令數值上,對應的PLC程序實現調用,對數控回轉臺進行控制,讓其在-45°~+45°這一區間中進行旋轉運行。通過將OPC技術應用到機器人和數控回轉臺中,最終讓這二者之間開展的聯動控制操作得以實現。
HRESULT rl;//使用到對返回函數得出的結果進行調用
Rl=CoInitialize(NULL)
Rl=CISIDFromProgID(L“IPC.SimaticNET”,&clsid);
Rl=CoCreateInstance(clsid,NULL,CLSC TX_LOCAL_SERVER,IID_IOPCS-erver,(void**)&m_pIOPCServer);//建立OPCserver的實例對象,獲取IOPCServer這一接口的指針m_ pIOPCServer
上述工作完成之后,接著是加入名稱為“grp1”的OPC Group。按照項目提出的相關要求,將27個OPC Item加入進去。注意SLAVE008內部的OPC項屬于組態PLC200當中的變量,這部分變量是獨立對組態PLC200進行PLC程序的編寫工作。另外,SLAVE004、SLAVE005以及SLAVE006這第三個部分的OPC項,分別是對機器人的頭部、右手以及左手部位的變量進行供給[2]。把27個OPC項添加到組態當中,為OPCGroup的OPC Group定義同步開展讀寫操作的接口。
讀取數據之后,將其保存在pItemValue制定的保存空間之中,同時同步寫入到values數據中。
首先是對數據項進行移除操作,其次是對組進行移除操作,最后是對服務器進行釋放操作等。
經過上述整個流程工作的開展,將客戶端程序經過OPC服務器和文中所述工業機器人,以及數控回轉臺三者之間實施的通訊工作設置成功。按照該項目實際開展的情況展開邏輯控制,完成了對智能化的工業機器人實施控制的這一功能。目前經過OPC技術進行改造的這一機器人已經進行過展示,并且其系統的實際運行情況較優。
現在國內工業機器人領域的發展速度飛快,使用的范圍不斷擴大。本文以OPC技術為基礎,不僅完成對三個工業機器人之間開展的聯動控制工作,同時還實現了工業機器人和PLC200二者之間的實時通信功能。借助于OPC技術實現了這一類型機器人使用方式的擴展,同時對這類工業機器人在其他行業的使用提供了參考。