李 嫄
(廣東松山職業(yè)技術(shù)學院 機械工程學院,廣東 韶關(guān) 512126)
伴隨著第四次工業(yè)革命的到來,制造業(yè)正向智能化、信息化轉(zhuǎn)型升級[1],為實現(xiàn)設備自動化、生產(chǎn)精益化、管理信息化的先進制造場景,以自動化、數(shù)字化、網(wǎng)絡化、智能化的管理與控制為主要內(nèi)容的智能制造應運而生。“智能制造”成為了制造業(yè)發(fā)展的主要方向[2-3],PLC和工業(yè)機器人在智能制造中起到了重要的底層支撐作用。PLC作為智能制造單元生產(chǎn)與管控的中央控制器,發(fā)送命令給工業(yè)機器人,工業(yè)機器人接收來自PLC的命令,執(zhí)行相應的動作,并將執(zhí)行狀態(tài)返回給PLC,PLC根據(jù)功能要求處理數(shù)據(jù),以實現(xiàn)系統(tǒng)流程的穩(wěn)定運行。兩者之間的高效、穩(wěn)定數(shù)據(jù)傳輸是智能控制的基本要求。
本文研究Modbus TCP協(xié)議通信的設置及控制方法。實現(xiàn)兩者之間的高效、穩(wěn)定數(shù)據(jù)傳輸,從而達到PLC對工業(yè)機器人的控制。
本文以全國智能制造應用技術(shù)技能大賽平臺為研究對象,該賽項聚焦智能制造技術(shù)應用實際,使用智能制造單元平臺,運用智能制造基礎關(guān)鍵技術(shù)(數(shù)控加工技術(shù)、工業(yè)機器人技術(shù)、工業(yè)工程技術(shù)、物聯(lián)網(wǎng)技術(shù)、云計算、智能制造系統(tǒng)技術(shù)以及數(shù)字化設計制造技術(shù)等),進行產(chǎn)品的智能加工和生產(chǎn)管控,實現(xiàn)“設備自動化+生產(chǎn)精益化+管理信息化”的先進制造場景;以展現(xiàn)智能制造自動化、數(shù)字化、網(wǎng)絡化、智能化的管理與控制為主要內(nèi)容,進行賽項設計,旨在促進智能制造領域高素質(zhì)復合型技能人才的培養(yǎng),助推工業(yè)企業(yè)的數(shù)字化轉(zhuǎn)型升級。
在該競賽平臺中,PLC作為總控制器發(fā)送命令給工業(yè)機器人,因此又稱為總控PLC。本文旨在研究該競賽平臺中總控PLC與工業(yè)機器人的通信及控制問題。
1)工業(yè)機器人發(fā)送給總控PLC的信息。
該系統(tǒng)中工業(yè)機器人負責完成機床上下料及料倉取放料的工作,機床有車床和銑床之分,因此需要與總控PLC交互的信號送給總控PLC;因RFID讀寫器安裝在工業(yè)機器人末端,需要讀取RFID位置,因此還需發(fā)送RFID位置給總控PLC;同時還需要發(fā)送節(jié)拍,如機床卡盤狀態(tài)、機床放料完成、料倉放料完成、機床啟動、機床報警、RFID讀寫完成等信息給總控PLC。工業(yè)機器人發(fā)送給總控PLC的信息見表1。
表1 工業(yè)機器人發(fā)送給總控PLC的數(shù)據(jù)信息
2)總控PLC發(fā)送給工業(yè)機器人的信息。
總控PLC需要控制工業(yè)機器人取放料,因此要發(fā)送取料位、放料位、設備號及料倉中放料完成信號給工業(yè)機器人;RFID開始讀寫及讀寫完成后需要告知工業(yè)機器人,因此需要發(fā)送RFID開始讀寫和RFID讀寫完成信號給工業(yè)機器人;機床安全門打開后工業(yè)機器人才能工作,同時工業(yè)機器人需要知道機床卡盤狀態(tài),因此總控PLC需要發(fā)送車床安全門狀態(tài)、加工中心安全門狀態(tài)、車床卡盤信號、加工中心卡盤信號給工業(yè)機器人;如果由觸摸屏控制工業(yè)機器人,同時要告知工業(yè)機器人此時由觸摸屏控制,因此需要發(fā)送觸摸屏命令信號給工業(yè)機器人;除此以外,還有外部模式控制信號需要發(fā)送給工業(yè)機器人,如加載、開始運行、暫停、恢復、自動模式下暫停、暫停、恢復等??偪豍LC發(fā)送給工業(yè)機器人的信息見表2。
表2 總控PLC發(fā)送給工業(yè)機器人的數(shù)據(jù)信息
通信方式選擇以太網(wǎng)上的Modbus TCP通信[4]。Modbus TCP協(xié)議是一個典型的工業(yè)控制網(wǎng)絡通信協(xié)議,是工業(yè)生產(chǎn)制造過程中控制器和其他基礎設備之間信息交互的載體[5-7],用于在通過網(wǎng)絡連接的客戶機與服務器之間的通信[8-9]。本項目中總控PLC與工業(yè)機器人進行通信時,選擇總控PLC作為客戶端,工業(yè)機器人作為服務器。
本項目中選用的總控PLC為西門子S7-1200系列CPU1215C,總控PLC作為客戶端,因此編程時需要選擇MB_CLIENT指令。MB_CLIENT指令是Modbus TCP客戶端通過S7-1200CPU的Profinet連接完成通信,不需要其他的硬件模塊,可以實現(xiàn)客戶端與服務器之間的連接,完成數(shù)據(jù)信息的發(fā)送與接收。
MB_CLIENT指令中EN使能端無條件接通;REQ為與Modbus TCP服務端請求通信;DISCONNECT可以控制與Modbus TCP服務端建立或終止連接,0為建立通信連接,1為斷開通信連接;CONNECT_ID是用來確定連接的唯一ID;IP_OCTET_1到IP_OCTET_4是用來指定所通信的服務端在以太網(wǎng)中的地址;MB_MODE是通信模式的選擇,0表示PLC讀服務端信息,1表示PLC寫入信息到服務端;MB_DATA_ADDR是指所訪問地址的起始地址;DATA_LEN指所訪問地址從MB_DATA_ADDR所指定的地址開始的數(shù)據(jù)長度;MB_DATA_PTR是指向Modbus數(shù)據(jù)寄存器的指針??偪豍LC讀取工業(yè)機器人的數(shù)據(jù)通信塊如圖1所示,總控PLC寫入工業(yè)機器人的數(shù)據(jù)通信塊如圖2所示,兩者數(shù)據(jù)背景塊名稱應相同。為實現(xiàn)數(shù)據(jù)交互,應建立一個數(shù)據(jù)塊用于存儲從工業(yè)機器人接收的數(shù)據(jù)和發(fā)送到工業(yè)機器人的數(shù)據(jù)。此例中數(shù)據(jù)塊命名為DB3,因該塊需要絕對尋址,數(shù)據(jù)塊要為非優(yōu)化的數(shù)據(jù)塊,所以該數(shù)據(jù)塊屬性中不勾選“優(yōu)化的塊訪問”(見圖3),支持絕對尋址。圖4所示為總控PLC與工業(yè)機器人之間數(shù)據(jù)傳遞的信息。
圖1 總控PLC讀取工業(yè)機器人信息程序塊
圖2 總控PLC寫入工業(yè)機器人信息程序塊
圖3 總控PLC與工業(yè)機器人之間數(shù)據(jù)傳遞的數(shù)據(jù)塊屬性
圖4 總控PLC與工業(yè)機器人之間數(shù)據(jù)傳遞的信息
表1中的數(shù)據(jù)為DB3數(shù)據(jù)塊中“讀”的數(shù)據(jù),可根據(jù)實際需求定義讀[1]到讀[14]的用途;表2中的數(shù)據(jù)為DB3數(shù)據(jù)塊中“寫”的數(shù)據(jù),可根據(jù)實際需求定義寫[1]到寫[16]的內(nèi)容。圖1中的MB_DATA_PTR數(shù)據(jù)代表從DB3數(shù)據(jù)塊中DBX0.0開始的連續(xù)16個字,偏移量從0.0到30.0,共16個字。圖2中的MB_DATA_PTR數(shù)據(jù)代表從DB3數(shù)據(jù)塊中DBX32.0開始的連續(xù)16個字,偏移量從32.0到62.0,共16個字。
工業(yè)機器人(以華中數(shù)控工業(yè)機器人為例)將Modbus顯示中的輸入寄存器IN_REG的值發(fā)送給總控PLC,因此在工業(yè)機器人的通信程序中將“寫”的信息存儲在輸入寄存器IN_REG中,例如7個軸的坐標值、原點的位置及工業(yè)機器人運行中需要反饋給總控PLC的值,即表1中的內(nèi)容寫入到輸入寄存器IN_REG中??偪豍LC通過Modbus TCP通信從輸入寄存器IN_REG中讀取信息。
總控PLC通過Modbus TCP通信,將總控PLC發(fā)送給工業(yè)機器人的信息存放在Modbus顯示中的保持寄存器HOLD_REG中,即表2中的內(nèi)容通過Modbus TCP通信存放在保持寄存器HOLD_REG中。工業(yè)機器人從保持寄存器HOLD_REG中讀取信息并存放在IR寄存器中。機器人通信部分程序如下:
'工業(yè)機器人寫部分
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] '工業(yè)機器人運行中
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] '反饋
'工業(yè)機器人讀部分
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]
在全國智能制造應用技術(shù)技能大賽平臺中,PLC作為智能制造單元生產(chǎn)與管控的中央控制器,發(fā)送命令給工業(yè)機器人,工業(yè)機器人接收來自總控PLC的命令,執(zhí)行相應的動作,并將執(zhí)行狀態(tài)返回給總控PLC,總控PLC根據(jù)功能要求處理數(shù)據(jù),以實現(xiàn)系統(tǒng)流程的穩(wěn)定運行。本文研究的Modbus TCP協(xié)議通信設置及控制方法實現(xiàn)了兩者之間高效、穩(wěn)定的數(shù)據(jù)傳輸,從而達到總控PLC對工業(yè)機器人的控制。