(北京機(jī)械工業(yè)自動(dòng)化研究所有限公司,北京 100120)
RFID(Radio Frequency Identification的縮寫),又稱射頻識(shí)別器,可通過(guò)無(wú)線射頻信號(hào)自動(dòng)識(shí)別物體上的電子標(biāo)簽。標(biāo)簽中包含該物料的具體信息,相對(duì)于條形碼,電子標(biāo)簽可嵌入在物體中,無(wú)需裸露在外面,使用更為方便。在日常生產(chǎn)生活中,有著很多應(yīng)用,如制造生產(chǎn)、物流倉(cāng)儲(chǔ)、高速收費(fèi)管理,停車場(chǎng)管理,小區(qū)門禁等。相信未來(lái)在智能制造,工業(yè)4.0的大背景下,RFID射頻識(shí)別會(huì)取得更為廣泛的應(yīng)用。
本方案依托某10kV中壓開關(guān)生產(chǎn)線項(xiàng)目。采用Sick公司射頻讀寫器RFH620,在產(chǎn)品上線工位通過(guò)西門子Smart PLC ST60將產(chǎn)品信息寫入射頻芯片中,生產(chǎn)線后續(xù)工位利用讀寫器讀出芯片中的產(chǎn)品信息,從而識(shí)別出產(chǎn)品規(guī)格型號(hào),自動(dòng)調(diào)整設(shè)備相關(guān)的參數(shù)以適應(yīng)產(chǎn)品,進(jìn)行相應(yīng)的加工、裝配或檢測(cè)。
RFH620是Sick射頻讀寫器的讀寫模塊,為與PLC相連,還需要對(duì)應(yīng)的連接模塊CBD620。將RFH620通過(guò)自帶電纜與CBD620相連,接通CBD620的電源,這里采用以太網(wǎng)版本讀寫器,將讀寫器與PC的以太網(wǎng)口相連即可。連接完成后,打開產(chǎn)品配套軟件SOPAS-ET可對(duì)其參數(shù)進(jìn)行設(shè)置,在軟件中,點(diǎn)擊scan按鈕還可直接查看當(dāng)前芯片中的數(shù)據(jù)。這里采用的芯片最多可用28個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包含4個(gè)字節(jié)的數(shù)據(jù),即每個(gè)芯片最多可存儲(chǔ)112個(gè)字節(jié)。
為與PLC進(jìn)行串行通訊,先在SOPAS-ET軟件中設(shè)置讀寫器的串口通訊協(xié)議。如圖1所示,采用RS232的方式,波特率9600bit/s,停止位為1,數(shù)據(jù)位8位,無(wú)奇偶校驗(yàn)。PLC串口設(shè)置自由口通訊方法如圖1所示。
圖1 串口通訊協(xié)議設(shè)置
在軟件中,對(duì)讀寫器數(shù)據(jù)輸出格式進(jìn)行設(shè)置。如圖2所示,設(shè)置傳感器1為觸發(fā)信號(hào),傳感器1有信號(hào)時(shí)讀取芯片數(shù)據(jù)。起始字節(jié)STX為02,結(jié)尾字節(jié)ETX為03,如果讀取良好,返回讀取值。
圖2 輸出格式設(shè)置
讀寫模塊RFH620提供了多種指令集。常用多組數(shù)據(jù)塊的寫指令為:
[STX]為起始字節(jié)16#02,[ETX]為結(jié)尾字節(jié)16#03。<uid>為芯片的ID,占用8個(gè)字節(jié),若無(wú)需指定特定芯片可全部設(shè)置為16#00,<bn>是起始?jí)K編號(hào)(從0到27,須帶“+”),<nb>是從啟示塊開始向后寫入數(shù)據(jù)塊的數(shù)量,即要寫入數(shù)據(jù)塊的總數(shù)目減1,<lbc>為寫入數(shù)據(jù)塊包含的總字節(jié)數(shù),<bc>為數(shù)據(jù)塊內(nèi)容,每個(gè)字節(jié)(ASCII碼形式)代表一位字符,字節(jié)間以空格進(jìn)行分隔。
如寫入4位字符,“1 2 3 4”,每個(gè)字符在芯片中對(duì)應(yīng)一個(gè)字節(jié),4個(gè)字符,在芯片中剛好占用一個(gè)數(shù)據(jù)塊,其ASCII碼格式為31 32 33 34,字節(jié)之間以空格隔開。特別需要注意的是,指令發(fā)送時(shí),指令的每一位字符都會(huì)按照ASCII碼的格式進(jìn)行發(fā)送,如31,發(fā)送時(shí)會(huì)將3和1分開再次轉(zhuǎn)換成ASCII碼形式?!? 2 3 4”最終發(fā)送格式為33 31 20 33 32 20 33 33 20 33 34,其中20為空格的ASCII碼。
本文采用西門子Smart系列PLC ST60與RFH620進(jìn)行通訊。ST60含一個(gè)串口,RFH620對(duì)應(yīng)的連接模塊CBD620含兩個(gè)串口,串口主接口和輔助接口,我們這里用串口主接口進(jìn)行通訊,同時(shí)采用232與485轉(zhuǎn)換芯片進(jìn)行信號(hào)轉(zhuǎn)換,與PLC接線圖如圖3所示。
圖3 硬件接線圖
西門子PLC ST60中,SMB30用于選擇串口COM0的通訊模式,將COM0設(shè)成自由口模式,對(duì)應(yīng)RFID軟件中的設(shè)置,波特率9600bps,數(shù)據(jù)位8位,無(wú)奇偶校驗(yàn)。具體每一位的詳細(xì)定義可參考西門子S7-200 Smart系統(tǒng)手冊(cè)。
PLC連接RFID讀碼器讀取數(shù)據(jù)與連接條碼掃描器讀取數(shù)據(jù)的編程方法相同,均采用串口自由口方式通訊,設(shè)置中斷,將收到每一位可識(shí)別字符依次添加到接收緩沖區(qū),收到回車、換行等結(jié)束字符后,將緩沖區(qū)接收到的字符串整體發(fā)送給條碼區(qū)并初始化緩沖區(qū),詳細(xì)內(nèi)容可參考文獻(xiàn)[3]。本文將重點(diǎn)介紹PLC連接RFID寫入數(shù)據(jù)的實(shí)現(xiàn)方法。
3.3.1 指令區(qū)內(nèi)容
寫入RFID讀碼器的內(nèi)容可由指令區(qū)和數(shù)據(jù)區(qū)組成。本項(xiàng)目所需產(chǎn)品數(shù)據(jù)為28位(16#1C),4位一個(gè)數(shù)據(jù)塊,從0開始,向后延續(xù)6個(gè)數(shù)據(jù)塊。因此依據(jù)格式,指令區(qū)內(nèi)容為:[STX]sMN WrtMltBlck 0 0 0 0 0 0 0 0 +0 6 1C。轉(zhuǎn)換為ASCII碼格式:02 73 4D 4E 20 57 72 74 4D 6C 74 42 6C 63 6B 20 30 20 30 20 30 20 30 20 30 20 30 20 30 20 30 20 2B 30 20 36 20 31 43。其中,[STX]為16#02,將上述指令行數(shù)據(jù)存入VB1251開始的39個(gè)字節(jié)中。
3.3.2 數(shù)據(jù)區(qū)內(nèi)容
數(shù)據(jù)發(fā)送時(shí),由于需將指令中所有字符再轉(zhuǎn)換為ASCII碼進(jìn)行傳輸,如要寫入字符“1”,ASCII碼值為31,發(fā)送時(shí),需要將“3”和“1”分別再轉(zhuǎn)換為ASCII碼33和31。本項(xiàng)目中待寫入的數(shù)據(jù)均為數(shù)字形式,所以只需在原ASCII碼前,加入16#33即可。同時(shí)由于傳輸時(shí),字符之間應(yīng)添加空格,16#20,所以對(duì)于每一位字符“X”,最終格式應(yīng)為16#20,16#33,16#3X。待寫入字符有28個(gè),故共有84個(gè)字節(jié)數(shù)據(jù),這里采用循環(huán)的方式進(jìn)行賦值,對(duì)應(yīng)流程圖如圖4所示。
圖4 數(shù)據(jù)區(qū)指令處理流程圖
1)初始化
表1 指令信息匯總
待發(fā)送指令從VB1251開始,指令行數(shù)據(jù)占用了39個(gè)字節(jié),故數(shù)據(jù)塊指令從VB1290開始。初始化時(shí),VD6000指向VB1290(數(shù)據(jù)區(qū)的第一個(gè)字節(jié))的地址,VD6010指向VB4101(存儲(chǔ)產(chǎn)品字符的字節(jié)),累加計(jì)數(shù)字VW6004為28。
2)賦值循環(huán)
對(duì)于每個(gè)循環(huán),將空格16#20寫入VD6000指向地址;VD6000自加,寫入16#33;VD6000再次自加,寫入當(dāng)前字符信息,VD6000、VD6010自加,VW6004自減1,判斷VW6004是否大于1,若大于1繼續(xù)循環(huán);若小于1,循環(huán)結(jié)束,28個(gè)字節(jié)數(shù)據(jù)轉(zhuǎn)換完成。
3.3.3 打包發(fā)送
如前所述,通訊數(shù)據(jù)幀結(jié)束字節(jié)[ETX]為16#03,待發(fā)送字節(jié)數(shù)為39+84+1個(gè),總計(jì)為124個(gè),經(jīng)由串口COM0,在寫入步1:V237.0觸發(fā)時(shí)進(jìn)行發(fā)送。發(fā)送指令匯總信息如表1所示。
本文給出了西門子PLC與Sick RFH620射頻讀寫器的串口通訊,向芯片中寫入字符的完整實(shí)現(xiàn)方法:硬件接線、參數(shù)設(shè)定、編程實(shí)現(xiàn)等。本文所述方法,簡(jiǎn)單可靠,方便移植,對(duì)其他品牌RFID與PLC的串口通訊也有很好的參考價(jià)值。