王曉峰
(蘭州職業技術學院,甘肅 蘭州 730070)
工業機器人的普及是實現自動化生產,提高社會生產效率,推動企業和社會生產力發展的有效手段[1]。在工農業生產中,系統可以通過PLC連接,需要確定相關的接口并進行定義,同時需要通過示教器完成編程,最后再通過調試測試是否通過。在這個過程中需要明確PLC的I/O變量,RFID的接口以及使用的方法,PLC的I/O變量可以在前期進行確定,填充到對應的表格里方便查閱。
要確定程序數據類型,類似于clock、rotate等數據類型,RFID的程序數據類型就是rfid,一個數據類型對應了兩個變量,分別是rfidcon和rfidstate。下面就這兩個變量進行討論。rfidcon在其中起到的作用是控制命令,負責將機器人的命令傳送到PLC里面,在PLC里面要寫入對應的子程序來處理機器人傳送的信號;rfidstate負責進行狀態操作,也就是將處理的結果由PLC反饋給機器人。通過以上描述可以發現,通過rfidcon和rfidstate兩個變量可以將RFID操作形成一個完整的閉環控制。所以這兩個變量在需要進行RFID控制時要出現在對應的控制程序里。每一個變量也有其對應的數據結構,通過檢索每一個數據結構,可以更清晰的了解到內部的構件。在機器人應用過程中,如果已有一個程序模版,則可以直接將該模塊加載至機器人系統中[2]。
每一個變量由6個部分構成。RFID擁有自己的接口,每個接口擁有Command、stepno、state、name、date、time這6個變量。其中Command可以實現命令與響應的功能;stepno可以實現工序;state實現工件的狀態,即工件的類型;name是操作者標識;date是系統生成的日期,不需要操作者再進行定義;time是系統生成的時間,也不需要額外的操作。
對于Command控制字,有三種對應的指令和與之相匹配的功能,在控制字中出現的指令代號分別是10、20、30,與之對應的功能是完成數據的寫操作、完成數據的讀操作,最后是可以實現復位,這是控制字所實現的功能;除了控制字來定義Command,還有狀態字來完成定義,狀態字的指令集較多,可以豐富它的接口功能;在指令集中11實現寫這個功能的完成,10為數據在寫入中,12為數據寫入錯誤,21為數據讀取完成,20為數據讀取中,22為數據讀取錯誤,31為復位狀態完成,30為數據正在復位中,32顯示為復位錯誤,100顯示為正在待機,101顯示有芯片正在工作區。接口、控制字、狀態字分別完成對應的功能。
開始先要進行復位操作,前一次的操作會在存儲區留下信號,需要進行復位,以防對下一次使用造成誤操作。既然要使用復位操作,就要使用對應的程序數據類型,程序數據類型中要使用能完成RFID操作的代碼。其中已聲明程序數據有CON和STATE兩種。接口代碼要選Command狀態字來實現寫入的功能,Command狀態字里找到可以完成相關復位的功能指令,其中指令30、31、32都和復位功能有關,系統要實現的是復位功能,所以32指令代表的復位錯誤不在使用之列。
通過以上的分析,得出程序,RFIDCON.Command:=30,此條命令就是實現復位操作,下一步要得到復位是否在進行,復位操作的結果是什么,是否完成了任務,所以要等待復位完成。這里要使用已聲明程序數據里的STATE,同時在Command狀態字里調用剛才提到的復位功能指令,30表示復位中,下一個是要確定復位的結果,要用31表達復位完成,實現復位的功能。所以表示完成要這樣寫,waituntil.RFIDSTATE.Command:=31,輸入這條指令,等待復位完成。復位工作結束后,需要將指令清空,方便后面寫入其他的指令代碼。此時需要寫一條將之前進行復位操作的狀態字清空的指令狀態字,這里使用的Command狀態字為0,其他的寫的方法和第一條一致,清除即可,RFIDCON.Command:=0。以上過程即為復位程序的相關實例,可以在復位操作時使用。
通過以上操作,大致發現RFID設置的方法,結合以上的狀態字、命令字、字符指令來設置需要的功能,以其特有的格式完成字符的排列,RFID數據復位后就可以進行數據的準備階段。
開始先編輯一個文件的名稱,在進行文件命名時以本次要實現功能的拼音來命名這個文件,即通俗易懂又方便日后查找,通過將本次任務的名字功能拼音化,對于以后看見文件名字就知道本條程序的功能內容有很大幫助。在本次要實現RFID的射頻識別功能,所以命名時就讓名字里出現RFID,這里可以設定姓名的拼音或者是一段編號,控制在8個字符。在這里name這個接口用到的數據類型是string,也就是字符串類型。
在數據準備階段需要用到stepno和state兩個接口,其中stepno完成步驟/工序,state實現狀態/工件類型。同時要用到程序數據類型為RFID,使用前面已聲明的數據RFIDCON,其后面有6個間隔開的數據,這六個就是前面提到的數據結構中的六個接口,在進行數據準備時可以將前三個值設置為0,數據類型為自己定義的變量、數值數據,后兩個都為字節。后三個中第一個為name,字符串類型控制在8個字符以內,后兩個日期和時間可以不用設置,采用系統默認,但是數據類型還是字符串。這樣就把RFID的六個接口設置完畢了。下面還是使用RFIDCON,這一次使用stepno,設置為1,同時另起一行還有RFIDCON,后面用state,設置數值為1。
數據準備完成后可以正式寫入程序。首先是控制字的設置,即Command控制字的取值大小,通過前面的案例可以發現在Command控制字數值不同的時候可以表達不同的含義,其控制字有3個不同的值表達不同的功能。程序中要使用Command狀態字,在接口中,狀態字有11個不同的指令來完成與之相匹配的功能,要將數據寫入程序,就要使用狀態字里的指令10,表示寫入中,也就是RFIDCON.Command:=10,此條程序就是將數據正在寫入寄存器里,從這里可以發現程序在書寫時的相關規則,RFIDCON在程序里會固定出現,同時Command狀態字在其后面表達不同的功能。作為已聲明的數據結構類型,RFIDCON和rfidstate會交替出現,作為兩個關鍵的數據結構再和不同數值的Command狀態字組合,可以完成多種的任務程序。下一步是完成寫入程序,根據上面的操作方法,關鍵是確定狀態字的指令功能代碼,同時使用rfidstate表達寫入完成。在rfidstate的前面還要使用waituntil,寫出來也就是waituntil.RFIDSTATE.Command:=11,在Command狀態字中11表示寫入功能完成。后面的程序就是RFIDCON.Command:=0,可以看出來和之前的程序是一樣的,不管執行什么樣的操作,都需要書寫指令清除。
通過以上可以將RFID的信號反饋給PLC,其實RFID的信號可以理解為PLC的模擬量信號,通過前端RFID變相的作為傳感器來傳輸信號,通過PLC的程序執行控制機械軸運動。比如RFID在經過復位后開始寫入程序,相當于傳輸進來了一個開關量,這個開關量可以設置成與以下幾個量相關,也就是激活相應的功能,當然作為這個開關量本體可以設置為字節輸入,也可以是一位輸入。要滿足以下幾個量,有對應的輸出反饋到關節軸,帶動機器人運動,在運動中出現的幾個點要用示教器進行定位作為創建點命名存儲在程序中,同時要做好另一個程序,也就是如果沒有RFID,沒有相關的輸入或者是識別失敗,要在示教器中確定幾個點,將無法識別的物品放回原處,同時抓取下一個物品進行下一輪的識別。將數字輸入信號與系統的控制信號關聯起來,就可以對系統進行控制[3]。如果本次運動已實現,但未識別到物體,也就是輸入1信號沒有給到PLC,可以設置一個定時器,在一定時間內如果沒有開關量的1信號傳入PLC的輸入端,定時器就觸發另一輸出點來讓機械手完成返回動作,即前面示教的幾個返回點,將無法識別的物體放回原處,等待將物品的識別故障處理后,再進行下一次的抓取和確認。在處理重物的場合,用機器人支撐重量,由人進行仔細定位[4]。以上只是簡單的反饋了一下信號有效和信號無法識別的處理方法,輸入用I的相應位或字節即可完成,輸出用Q的兩個位就可以完成對物體的識別,下一步將可識別物品放入前一個工件內,如不能識別,物體會停頓一段時間后按原來的路徑返回原處。兩種結果兩個位就可以完成相應的功能。
通過以上的描述,系統實現了RFID的幾個常見程序設置,其他的功能也可以通過以上的操作方法類推,同時就PLC在運動過程中如何設置輸入輸出以及一些其他附帶的功能也有相應的解決辦法。同時結合示教器完成最后的收尾及幾個固定點的設置也在里面進行了說明。RFID在后續的使用中會開發出更多的功能,在除了機器人領域之外也可以有更多的使用空間。大家也可以在基礎之上進行新的算法探索。