劉文光 張銘銘
(1.濟南職業學院,山東濟南250103;2.青島市中心醫院,山東青島266042)
OPC UA是一個開放的跨平臺架構,由全世界30多家知名制造企業聯合開發,具有較高的安全性和可靠性,為自動化生產系統提供了新的信息模型和抽象體系結構,將復雜的數據類型嵌入到服務器地址空間中,支持大量的通用服務,已成為工業4.0階段的通信標準[1]。
本測試利用OPC UA通信實現如下功能:將ABB工業機器人的IRC5控制器設為OPC UA服務器,利用UaExpert作為OPC UA客戶端,在RobotStudio仿真環境下實現ABB工業機器人系統和客戶端的通信,同時還可實現在客戶端控制工業機器人啟停,讀取工業機器人運行狀態信息。
在RobotStudio中創建ABB工業機器人系統,選擇系統選項“616-1 PC interface”和“623-1 Multitasking”。
新建RAPID例行程序控制TCP的運動軌跡,利用clock型程序數據clock1記錄TCP每個周期的運動時間。添加num型可變量nCycleTime,利用功能ClkRead()將clock1中記錄的周期時間值賦給nCycleTime。
添加虛擬輸入輸出vdi_start、vdi_stop、vdo_motoron、vdo_start和vdo_stop,其中vdo_start和vdo_stop的Access Level 設置為All,使得所有本地客戶端和遠程客戶端都擁有對vdo_start和vdo_stop的寫入權限。添加2個Cross Connection:start1和stop1,如圖1、圖2 所示。添加兩個System Input:vdi_start_Start和vdi_stop_Stop,將虛擬輸入vdi_start與系統輸入Start關聯,將虛擬輸入vdi_stop與系統輸入Stop關聯。添加1個System Output:vdo_motoron_MotorOn,將虛擬輸出vdo_motoron與系統輸出Motors On關聯。

圖1 Cross Connection:start1
新建bool型可變量flag1。新建例行程序set_flag1()和reset_flag1()。在set_flag1()中 將flag1 賦 值 為TRUE,在reset_flag1()中將flag1賦值為FALSE。添加4個Event Routine:START_set_flag1 、RESTART_set_flag1 、STOP_reset_flag1 和QSTOP_reset_flag1。START_set_flag1和RESTART_set_flag1分別用于啟動和重啟時將flag1賦值為TRUE,STOP_reset_flag1和QSTOP_reset_flag1分別用于停止和急停時將flag1賦值為FALSE。

圖2 Cross Connection:stop1
添加Task t2,在Task t2中編寫程序實現啟停控制,程序調試無誤后將其Type設為Semistatic。
打開IRC5 OPC UA Server Config Tool,單擊,單擊Add New Alias,單擊。勾選System Name,單擊,單擊。單擊,在彈出的OPC Server restart窗口中單擊。單擊,輸入獲取OPC Server數據讀寫權限的用戶名和密碼,在Username對話框中輸入Default User,在Password對話框中輸入robotics。單擊,記錄下IRC5的URL。
如需開發OPC UA客戶端,可從UaExpert中查看節點的通用屬性,NodeId用于在地址空間中唯一確定和定位一個節點;NodeClass定義節點類別;BrowseName用于瀏覽地址空間時標識節點;DisplayName表示節點名稱;Description表示節點的本地化描述;WriteMask 定義節點屬性是否可被修改;UserWriteMask定義當前用戶是否可修改節點屬性[2]。
本測試實現了作為OPC UA服務器的ABB工業機器人IRC5控制器與作為OPC UA客戶端的UaExpert之間的通信,可以在OPC UA客戶端遠程監控ABB工業機器人。下一步的工作,可探索實現不同廠家的工業機器人、PLC、各種嵌入式設備之間數據通信的統一操作。