李 嫄
(廣東松山職業技術學院 機械工程學院,廣東 韶關 512126)
伴隨著第四次工業革命的到來,制造業正向智能化、信息化轉型升級[1],為實現設備自動化、生產精益化、管理信息化的先進制造場景,以自動化、數字化、網絡化、智能化的管理與控制為主要內容的智能制造應運而生?!爸悄苤圃臁背蔀榱酥圃鞓I發展的主要方向[2-3],PLC和工業機器人在智能制造中起到了重要的底層支撐作用。PLC作為智能制造單元生產與管控的中央控制器,發送命令給工業機器人,工業機器人接收來自PLC的命令,執行相應的動作,并將執行狀態返回給PLC,PLC根據功能要求處理數據,以實現系統流程的穩定運行。兩者之間的高效、穩定數據傳輸是智能控制的基本要求。
本文研究Modbus TCP協議通信的設置及控制方法。實現兩者之間的高效、穩定數據傳輸,從而達到PLC對工業機器人的控制。
本文以全國智能制造應用技術技能大賽平臺為研究對象,該賽項聚焦智能制造技術應用實際,使用智能制造單元平臺,運用智能制造基礎關鍵技術(數控加工技術、工業機器人技術、工業工程技術、物聯網技術、云計算、智能制造系統技術以及數字化設計制造技術等),進行產品的智能加工和生產管控,實現“設備自動化+生產精益化+管理信息化”的先進制造場景;以展現智能制造自動化、數字化、網絡化、智能化的管理與控制為主要內容,進行賽項設計,旨在促進智能制造領域高素質復合型技能人才的培養,助推工業企業的數字化轉型升級。
在該競賽平臺中,PLC作為總控制器發送命令給工業機器人,因此又稱為總控PLC。本文旨在研究該競賽平臺中總控PLC與工業機器人的通信及控制問題。
1)工業機器人發送給總控PLC的信息。
該系統中工業機器人負責完成機床上下料及料倉取放料的工作,機床有車床和銑床之分,因此需要與總控PLC交互的信號送給總控PLC;因RFID讀寫器安裝在工業機器人末端,需要讀取RFID位置,因此還需發送RFID位置給總控PLC;同時還需要發送節拍,如機床卡盤狀態、機床放料完成、料倉放料完成、機床啟動、機床報警、RFID讀寫完成等信息給總控PLC。工業機器人發送給總控PLC的信息見表1。

表1 工業機器人發送給總控PLC的數據信息
2)總控PLC發送給工業機器人的信息。
總控PLC需要控制工業機器人取放料,因此要發送取料位、放料位、設備號及料倉中放料完成信號給工業機器人;RFID開始讀寫及讀寫完成后需要告知工業機器人,因此需要發送RFID開始讀寫和RFID讀寫完成信號給工業機器人;機床安全門打開后工業機器人才能工作,同時工業機器人需要知道機床卡盤狀態,因此總控PLC需要發送車床安全門狀態、加工中心安全門狀態、車床卡盤信號、加工中心卡盤信號給工業機器人;如果由觸摸屏控制工業機器人,同時要告知工業機器人此時由觸摸屏控制,因此需要發送觸摸屏命令信號給工業機器人;除此以外,還有外部模式控制信號需要發送給工業機器人,如加載、開始運行、暫停、恢復、自動模式下暫停、暫停、恢復等。總控PLC發送給工業機器人的信息見表2。

表2 總控PLC發送給工業機器人的數據信息
通信方式選擇以太網上的Modbus TCP通信[4]。Modbus TCP協議是一個典型的工業控制網絡通信協議,是工業生產制造過程中控制器和其他基礎設備之間信息交互的載體[5-7],用于在通過網絡連接的客戶機與服務器之間的通信[8-9]。本項目中總控PLC與工業機器人進行通信時,選擇總控PLC作為客戶端,工業機器人作為服務器。
本項目中選用的總控PLC為西門子S7-1200系列CPU1215C,總控PLC作為客戶端,因此編程時需要選擇MB_CLIENT指令。MB_CLIENT指令是Modbus TCP客戶端通過S7-1200CPU的Profinet連接完成通信,不需要其他的硬件模塊,可以實現客戶端與服務器之間的連接,完成數據信息的發送與接收。
MB_CLIENT指令中EN使能端無條件接通;REQ為與Modbus TCP服務端請求通信;DISCONNECT可以控制與Modbus TCP服務端建立或終止連接,0為建立通信連接,1為斷開通信連接;CONNECT_ID是用來確定連接的唯一ID;IP_OCTET_1到IP_OCTET_4是用來指定所通信的服務端在以太網中的地址;MB_MODE是通信模式的選擇,0表示PLC讀服務端信息,1表示PLC寫入信息到服務端;MB_DATA_ADDR是指所訪問地址的起始地址;DATA_LEN指所訪問地址從MB_DATA_ADDR所指定的地址開始的數據長度;MB_DATA_PTR是指向Modbus數據寄存器的指針??偪豍LC讀取工業機器人的數據通信塊如圖1所示,總控PLC寫入工業機器人的數據通信塊如圖2所示,兩者數據背景塊名稱應相同。為實現數據交互,應建立一個數據塊用于存儲從工業機器人接收的數據和發送到工業機器人的數據。此例中數據塊命名為DB3,因該塊需要絕對尋址,數據塊要為非優化的數據塊,所以該數據塊屬性中不勾選“優化的塊訪問”(見圖3),支持絕對尋址。圖4所示為總控PLC與工業機器人之間數據傳遞的信息。

圖1 總控PLC讀取工業機器人信息程序塊

圖2 總控PLC寫入工業機器人信息程序塊

圖3 總控PLC與工業機器人之間數據傳遞的數據塊屬性

圖4 總控PLC與工業機器人之間數據傳遞的信息
表1中的數據為DB3數據塊中“讀”的數據,可根據實際需求定義讀[1]到讀[14]的用途;表2中的數據為DB3數據塊中“寫”的數據,可根據實際需求定義寫[1]到寫[16]的內容。圖1中的MB_DATA_PTR數據代表從DB3數據塊中DBX0.0開始的連續16個字,偏移量從0.0到30.0,共16個字。圖2中的MB_DATA_PTR數據代表從DB3數據塊中DBX32.0開始的連續16個字,偏移量從32.0到62.0,共16個字。
工業機器人(以華中數控工業機器人為例)將Modbus顯示中的輸入寄存器IN_REG的值發送給總控PLC,因此在工業機器人的通信程序中將“寫”的信息存儲在輸入寄存器IN_REG中,例如7個軸的坐標值、原點的位置及工業機器人運行中需要反饋給總控PLC的值,即表1中的內容寫入到輸入寄存器IN_REG中??偪豍LC通過Modbus TCP通信從輸入寄存器IN_REG中讀取信息。
總控PLC通過Modbus TCP通信,將總控PLC發送給工業機器人的信息存放在Modbus顯示中的保持寄存器HOLD_REG中,即表2中的內容通過Modbus TCP通信存放在保持寄存器HOLD_REG中。工業機器人從保持寄存器HOLD_REG中讀取信息并存放在IR寄存器中。機器人通信部分程序如下:
'工業機器人寫部分
IN_REG[1]=A1.PFB '7個軸的坐標值
IN_REG[2]=A2.PFB
IN_REG[3]=A3.PFB
IN_REG[4]=A4.PFB
IN_REG[5]=A5.PFB
IN_REG[6]=A6.PFB
IN_REG[7]=A7.PFB
IN_REG[9]=OIN_REF[1] 安全位參考點
IN_REG[11]=IR[90] '工業機器人運行中
IN_REG[12]=IR[11]
IN_REG[13]=IR[12]
IN_REG[14]=IR[13]
IN_REG[15]=IR[14]
IN_REG[16]=IR[24] '反饋
'工業機器人讀部分
IR[15]=HOLD_REG[1]
IR[16]=HOLD_REG[2]
IR[17]=HOLD_REG[3]
IR[18]=HOLD_REG[4]
IR[19]=HOLD_REG[5]
IR[20]=HOLD_REG[6]
IR[21]=HOLD_REG[7]
IR[23]=HOLD_REG[9]
IR[25]=HOLD_REG[10]
IR[26]=HOLD_REG[11]
IR[27]=HOLD_REG[12]
IR[28]=HOLD_REG[13]
IR[29]=HOLD_REG[14]
IR[31]=HOLD_REG[15]
在全國智能制造應用技術技能大賽平臺中,PLC作為智能制造單元生產與管控的中央控制器,發送命令給工業機器人,工業機器人接收來自總控PLC的命令,執行相應的動作,并將執行狀態返回給總控PLC,總控PLC根據功能要求處理數據,以實現系統流程的穩定運行。本文研究的Modbus TCP協議通信設置及控制方法實現了兩者之間高效、穩定的數據傳輸,從而達到總控PLC對工業機器人的控制。