劉文光 張銘銘
(1.濟(jì)南職業(yè)學(xué)院,山東濟(jì)南250103;2.青島市中心醫(yī)院,山東青島266042)
OPC UA是一個(gè)開(kāi)放的跨平臺(tái)架構(gòu),由全世界30多家知名制造企業(yè)聯(lián)合開(kāi)發(fā),具有較高的安全性和可靠性,為自動(dòng)化生產(chǎn)系統(tǒng)提供了新的信息模型和抽象體系結(jié)構(gòu),將復(fù)雜的數(shù)據(jù)類型嵌入到服務(wù)器地址空間中,支持大量的通用服務(wù),已成為工業(yè)4.0階段的通信標(biāo)準(zhǔn)[1]。
本測(cè)試?yán)肙PC UA通信實(shí)現(xiàn)如下功能:將ABB工業(yè)機(jī)器人的IRC5控制器設(shè)為OPC UA服務(wù)器,利用UaExpert作為OPC UA客戶端,在RobotStudio仿真環(huán)境下實(shí)現(xiàn)ABB工業(yè)機(jī)器人系統(tǒng)和客戶端的通信,同時(shí)還可實(shí)現(xiàn)在客戶端控制工業(yè)機(jī)器人啟停,讀取工業(yè)機(jī)器人運(yùn)行狀態(tài)信息。
在RobotStudio中創(chuàng)建ABB工業(yè)機(jī)器人系統(tǒng),選擇系統(tǒng)選項(xiàng)“616-1 PC interface”和“623-1 Multitasking”。
新建RAPID例行程序控制TCP的運(yùn)動(dòng)軌跡,利用clock型程序數(shù)據(jù)clock1記錄TCP每個(gè)周期的運(yùn)動(dòng)時(shí)間。添加num型可變量nCycleTime,利用功能ClkRead()將clock1中記錄的周期時(shí)間值賦給nCycleTime。
添加虛擬輸入輸出vdi_start、vdi_stop、vdo_motoron、vdo_start和vdo_stop,其中vdo_start和vdo_stop的Access Level 設(shè)置為All,使得所有本地客戶端和遠(yuǎn)程客戶端都擁有對(duì)vdo_start和vdo_stop的寫(xiě)入權(quán)限。添加2個(gè)Cross Connection:start1和stop1,如圖1、圖2 所示。添加兩個(gè)System Input:vdi_start_Start和vdi_stop_Stop,將虛擬輸入vdi_start與系統(tǒng)輸入Start關(guān)聯(lián),將虛擬輸入vdi_stop與系統(tǒng)輸入Stop關(guān)聯(lián)。添加1個(gè)System Output:vdo_motoron_MotorOn,將虛擬輸出vdo_motoron與系統(tǒng)輸出Motors On關(guān)聯(lián)。
圖1 Cross Connection:start1
新建bool型可變量flag1。新建例行程序set_flag1()和reset_flag1()。在set_flag1()中 將flag1 賦 值 為T(mén)RUE,在reset_flag1()中將flag1賦值為FALSE。添加4個(gè)Event Routine:START_set_flag1 、RESTART_set_flag1 、STOP_reset_flag1 和QSTOP_reset_flag1。START_set_flag1和RESTART_set_flag1分別用于啟動(dòng)和重啟時(shí)將flag1賦值為T(mén)RUE,STOP_reset_flag1和QSTOP_reset_flag1分別用于停止和急停時(shí)將flag1賦值為FALSE。
圖2 Cross Connection:stop1
添加Task t2,在Task t2中編寫(xiě)程序?qū)崿F(xiàn)啟??刂?,程序調(diào)試無(wú)誤后將其Type設(shè)為Semistatic。
打開(kāi)IRC5 OPC UA Server Config Tool,單擊,單擊Add New Alias,單擊。勾選System Name,單擊,單擊。單擊,在彈出的OPC Server restart窗口中單擊。單擊,輸入獲取OPC Server數(shù)據(jù)讀寫(xiě)權(quán)限的用戶名和密碼,在Username對(duì)話框中輸入Default User,在Password對(duì)話框中輸入robotics。單擊,記錄下IRC5的URL。
如需開(kāi)發(fā)OPC UA客戶端,可從UaExpert中查看節(jié)點(diǎn)的通用屬性,NodeId用于在地址空間中唯一確定和定位一個(gè)節(jié)點(diǎn);NodeClass定義節(jié)點(diǎn)類別;BrowseName用于瀏覽地址空間時(shí)標(biāo)識(shí)節(jié)點(diǎn);DisplayName表示節(jié)點(diǎn)名稱;Description表示節(jié)點(diǎn)的本地化描述;WriteMask 定義節(jié)點(diǎn)屬性是否可被修改;UserWriteMask定義當(dāng)前用戶是否可修改節(jié)點(diǎn)屬性[2]。
本測(cè)試實(shí)現(xiàn)了作為OPC UA服務(wù)器的ABB工業(yè)機(jī)器人IRC5控制器與作為OPC UA客戶端的UaExpert之間的通信,可以在OPC UA客戶端遠(yuǎn)程監(jiān)控ABB工業(yè)機(jī)器人。下一步的工作,可探索實(shí)現(xiàn)不同廠家的工業(yè)機(jī)器人、PLC、各種嵌入式設(shè)備之間數(shù)據(jù)通信的統(tǒng)一操作。