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

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

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

圖1 總控PLC讀取工業(yè)機(jī)器人信息程序塊

圖2 總控PLC寫入工業(yè)機(jī)器人信息程序塊

圖3 總控PLC與工業(yè)機(jī)器人之間數(shù)據(jù)傳遞的數(shù)據(jù)塊屬性

圖4 總控PLC與工業(yè)機(jī)器人之間數(shù)據(jù)傳遞的信息
表1中的數(shù)據(jù)為DB3數(shù)據(jù)塊中“讀”的數(shù)據(jù),可根據(jù)實(shí)際需求定義讀[1]到讀[14]的用途;表2中的數(shù)據(jù)為DB3數(shù)據(jù)塊中“寫”的數(shù)據(jù),可根據(jù)實(shí)際需求定義寫[1]到寫[16]的內(nèi)容。圖1中的MB_DATA_PTR數(shù)據(jù)代表從DB3數(shù)據(jù)塊中DBX0.0開始的連續(xù)16個(gè)字,偏移量從0.0到30.0,共16個(gè)字。圖2中的MB_DATA_PTR數(shù)據(jù)代表從DB3數(shù)據(jù)塊中DBX32.0開始的連續(xù)16個(gè)字,偏移量從32.0到62.0,共16個(gè)字。
工業(yè)機(jī)器人(以華中數(shù)控工業(yè)機(jī)器人為例)將Modbus顯示中的輸入寄存器IN_REG的值發(fā)送給總控PLC,因此在工業(yè)機(jī)器人的通信程序中將“寫”的信息存儲(chǔ)在輸入寄存器IN_REG中,例如7個(gè)軸的坐標(biāo)值、原點(diǎn)的位置及工業(yè)機(jī)器人運(yùn)行中需要反饋給總控PLC的值,即表1中的內(nèi)容寫入到輸入寄存器IN_REG中??偪豍LC通過(guò)Modbus TCP通信從輸入寄存器IN_REG中讀取信息。
總控PLC通過(guò)Modbus TCP通信,將總控PLC發(fā)送給工業(yè)機(jī)器人的信息存放在Modbus顯示中的保持寄存器HOLD_REG中,即表2中的內(nèi)容通過(guò)Modbus TCP通信存放在保持寄存器HOLD_REG中。工業(yè)機(jī)器人從保持寄存器HOLD_REG中讀取信息并存放在IR寄存器中。機(jī)器人通信部分程序如下:
'工業(yè)機(jī)器人寫部分
IN_REG[1]=A1.PFB '7個(gè)軸的坐標(biāo)值
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] 安全位參考點(diǎn)
IN_REG[11]=IR[90] '工業(yè)機(jī)器人運(yùn)行中
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è)機(jī)器人讀部分
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]
在全國(guó)智能制造應(yīng)用技術(shù)技能大賽平臺(tái)中,PLC作為智能制造單元生產(chǎn)與管控的中央控制器,發(fā)送命令給工業(yè)機(jī)器人,工業(yè)機(jī)器人接收來(lái)自總控PLC的命令,執(zhí)行相應(yīng)的動(dòng)作,并將執(zhí)行狀態(tài)返回給總控PLC,總控PLC根據(jù)功能要求處理數(shù)據(jù),以實(shí)現(xiàn)系統(tǒng)流程的穩(wěn)定運(yùn)行。本文研究的Modbus TCP協(xié)議通信設(shè)置及控制方法實(shí)現(xiàn)了兩者之間高效、穩(wěn)定的數(shù)據(jù)傳輸,從而達(dá)到總控PLC對(duì)工業(yè)機(jī)器人的控制。