PLC與RFID控制器的無協(xié)議通訊
0. 引言
在大型生產(chǎn)線上,為了實現(xiàn)流水線自動化,PLC與RFID技術結合的應用不斷增加。PLC作為一種高可靠性的控制裝置,與RFID進行數(shù)據(jù)通訊,不但可以實現(xiàn)對每一個生產(chǎn)過程的控制與治理,而且可以進步自動化生產(chǎn)流水線的生產(chǎn)效率。
歐姆龍公司的CPM2A/2C、CQM1H、C200Hα、CP1、CJ1及CS1等系列PLC都可以支持無協(xié)議通訊功能。利用TXD和RXD等指令,通過串行通訊端口,PLC與計算機之間、PLC與PLC之間、PLC與各種通訊設備之間(如變頻器、條形碼讀進器和串行打印機等)可以進行數(shù)據(jù)交換,實現(xiàn)通訊[1]。本文選用歐姆龍CP1H型PLC,實現(xiàn)與與歐姆龍的V600系列RFID控制器的無協(xié)議通訊。PLC作為上位機,RFID控制器作為下位機。
1. 系統(tǒng)結構
上位PLC與下位RFID控制器之間有1:1和1:N兩種鏈接模式,1臺PLC (上位機)只能連接32臺RFID(下位機),本文先容1:1鏈接模式。系統(tǒng)中PLC與RFID控制器之間通過RS-422總線連接。上位機與RFID控制器通訊時,使用專用的SYSWAY通訊協(xié)議,上位機優(yōu)先發(fā)送通訊指令,RFID控制器接收后,首先分析來自主機的命令,然后對RFID標簽進行讀寫。通訊結束后,RFID 控制器返回一個響應代碼到主機。SYSWAY通訊協(xié)議支持1:1和1:N通訊。當主機與RFID控制器是1對1連接時,采用1:1方式通訊;當連接主機的RFID控制器超過一個時,采用1:N方式通訊。在1:N通訊模式下,可以通過對RFID控制器設置來實現(xiàn)主機與RFID控制器的1:1通訊。
主機CP1H作為上位機,由于PLC與RFID控制器之間選用RS-422方式進行通訊,所以CP1H端口1選用插件CP1W-CIF11,為RS-422/485型。RFID(由V600-CA5D02 RFID控制器、V600-H07天線及V600-D23P66N無源標簽三部分組成)作為下位機,V600-CA5D02 RFID控制器的機體上分別帶有一個RS-232C與RS-422/485串行通訊口,都支持與計算機、PLC等主機設備之間的通訊。PLC與RFID控制器的接線如圖1所示。

圖1 PLC與RFID控制器接線
Fig.1 the connection of PLC and RFID controller
CP1W-CIF11有一組DIP開關,共有8個,SW1表示是否使用終端電阻;SW2、SW3表示通訊的連接方式:422或485;SW4為空;SW5、SW6表示通訊時有無RS控制。在使用其之前,根據(jù)通訊的要求對DIP開關進行設定:SW1為ON,使用終端電阻;SW2、SW3為OFF,使用422連接方式;SW5、SW6為任意。
2. 無協(xié)議通訊及其指令
無協(xié)議通訊,即不使用重試處理、不經(jīng)過數(shù)據(jù)格式的轉換處理及具有對應接收的數(shù)據(jù)進行處理分支等的順序通訊協(xié)議。在無協(xié)議且無轉換的條件下,通過通訊端口的輸進輸出指令(TXD,RXD)發(fā)送和接收數(shù)據(jù)。無協(xié)議通訊過程十分簡單,只需在PLC系統(tǒng)設定中將串行端口的串行通訊模式設定為無協(xié)議通訊。根據(jù)無協(xié)議通訊,PLC就可以與帶有RS-232端口或者RS-422/485端口的外部設備,按照TXD和RXD指令進行單方的發(fā)送(數(shù)據(jù)流從PLC到通用外部設備)和接收數(shù)據(jù)(數(shù)據(jù)流從通用外部設備到PLC)[2]。無協(xié)議通訊的實現(xiàn)步驟如圖2所示。

圖2 無協(xié)議通訊的實現(xiàn)步驟
使用無協(xié)議通訊發(fā)送和接收消息時,開始代碼及結束代碼之間的數(shù)據(jù)用TXD指令來發(fā)送,或者是將要插進開始代碼及結束代碼之間的數(shù)據(jù)用RXD指令來接收。使用TXD指令發(fā)送數(shù)據(jù)時,應先將數(shù)據(jù)從I/O存儲器讀取后發(fā)送,使用RXD指令接收數(shù)據(jù)時,順序恰恰相反。TXD/RXD一次發(fā)送和接收的最大數(shù)據(jù)量為256個字節(jié)。無協(xié)議通訊時,發(fā)送和接收的數(shù)據(jù)的開始代碼和結束代碼由用戶在PLC系統(tǒng)設定中指定。圖3為歐姆龍CP1H型PLC無協(xié)議通訊的指令結構。

圖3 無協(xié)議通訊指令
TXD指令根據(jù)由S指定的發(fā)送數(shù)據(jù)開頭CH編號,對由N指定的發(fā)送字節(jié)長度的數(shù)據(jù)進行無變換操縱。隨著PLC系統(tǒng)設定為無順序模式時的開始代碼/結束代碼的指定,由C的位8~11輸出到指定的串行通訊選裝件版的串行端口(無順序模式)。但是只能在發(fā)送預備標志(串行端口1:A392.13、串行端口2:A392.05)為ON時才能發(fā)送。能發(fā)送字節(jié)數(shù)最大為259字節(jié)(數(shù)據(jù)部最大256字節(jié),包括開始代碼、結束代碼)。
RXD指令在串行通訊選裝件板的串行端口(無順序模式)中,從由D指定的接收數(shù)據(jù)保存開頭CH編號開始,輸出由N指定的相當于保存字節(jié)長度的接收結束數(shù)據(jù)。當接收結束數(shù)據(jù)不滿由N所指定的保存字節(jié)長度時,輸出實際存在的接收結束數(shù)據(jù)。但是當接收結束標志(串行端口1:A392.14、串行端口2:A392.06)為ON時,執(zhí)行本指令來接收(來自接收緩沖器的)數(shù)據(jù)。接收可能字節(jié)數(shù)最大為259字節(jié)(數(shù)據(jù)部最大256字節(jié),包括開始代碼、結束代碼)。
3. RFID控制器及其命令集和數(shù)據(jù)傳輸協(xié)議
V600系列RFID控制器擁有豐富的指令系統(tǒng),共23條,可以非常靈活的應用于各種場合,其中包括通訊命令、一般的通訊子命令、主機命令等[3]。通訊命令多用于執(zhí)行與RFID標簽的通訊,例如,對靜止或者是移動的RFID標簽進行讀寫等。通訊子命令一般用于取消某個命令的執(zhí)行,而主機命令則用于主機設備控制 RFID控制器。在上位機與RFID 控制器通訊過程中用到最多的是通訊命令,常用通訊命令的代碼及其功能如表1。
表1 RFID常用通訊命令表

在1:1的通訊模式下,通訊過程中不計算校驗碼,因此,只能通過響應代碼來判定通訊結果的正確性。圖4給出了上位機與RFID控制器之間傳輸數(shù)據(jù)的格式。從上位機發(fā)送到RFID控制器的數(shù)據(jù)塊為命令幀,反過來,從RFID控制器發(fā)送到上位機的數(shù)據(jù)塊為響應幀。每個幀以指令代碼開始,以結束符結束,響應幀中還包括反應執(zhí)行結果的響應碼。上位機與RFID 控制器之間可以傳送十六進制或ASCII形式的數(shù)據(jù),每一幀最大答應傳送數(shù)據(jù)為271個字符。
假如傳送的數(shù)據(jù)大于271個字符,可以將數(shù)據(jù)分成起始幀、若干中間幀、結束幀進行傳送。起始幀必須包含命令碼,讀/寫頭號,開始地址等,否則通訊的過程中將會有錯誤發(fā)生。上位機每發(fā)送完一幀時,在收到RFID 控制器返回的分界符(即“↙”)后再發(fā)送下一幀,只有當結束幀數(shù)據(jù)發(fā)送完畢時才返回響應代碼。

圖4 RFID控制器1:1數(shù)據(jù)傳輸格式
4. PLC與RFID控制器無協(xié)議通訊的實現(xiàn)
4.1 CP1H通訊端口設置
PLC與RFID控制器之間使用RS-422方式進行通訊。根據(jù)RFID控制器通訊規(guī)格要求,使用歐姆龍編程軟件CX-Programmer7.1將CP1H串口1模式設置為“RS-232C”,通訊波特率設置9600,數(shù)據(jù)格式為7、2、E。
Fig.5 the communication port setting of CP1H
4.2 RFID控制器參數(shù)設置
RFID控制器通訊參數(shù)設置應與PLC通訊端口參數(shù)一致:波特率9600,偶校驗方式,7位數(shù)據(jù)位,2位停止位。DIP開關SW6為ON,表示使用終端電阻。
4.3 通訊舉例
通過PLC與RFID控制器之間的通訊,編程實現(xiàn)從RFID標簽地址0100H開始的通道內讀取四個數(shù)據(jù),讀取的數(shù)據(jù)存儲到PLC的DM區(qū)內。根據(jù)通訊數(shù)據(jù)傳輸格式,要發(fā)送的數(shù)據(jù)為RDA1001004*。將要發(fā)送的數(shù)據(jù)轉化為16進制數(shù)“524441313030313030342A0D” ,存放到DM0開始的6個通道內。這6個通道對應值分別為:DM0:5244;DM1:4131;DM2:3030;DM3:3130;DM4:3034;DM5:2A0D。
PLC與RFID控制器無協(xié)議通訊程序如圖6所示。A392.13為發(fā)送答應標志位,當PLC的串口1預備好時,A392.13自動為ON,發(fā)送數(shù)據(jù)指示100.00變亮,則PLC可以通過此端口發(fā)送數(shù)據(jù)。當0.00為ON時,將DM0開始的6個通道的數(shù)據(jù)發(fā)送出往,RFID控制器接收到指令后做出響應。A392.14為接收答應標志位。串口預備好后,A392.14自動為ON,接收數(shù)據(jù)指示100.07變亮。PLC開始自動接收RFID控制器返回的響應數(shù)據(jù),并自動存儲到DM100開始的5個通道內。執(zhí)行程序后查看從DM100開始的5個通道的內容,分別為:DM100:5244;DM101:3030;DM102:3131;DM103:3131;DM104:2A0D。所以接收的數(shù)據(jù)為:RD001111*,根據(jù)數(shù)據(jù)傳輸響應幀數(shù)據(jù)格式,可知從RFID標簽讀出的四個數(shù)為:1111。

圖6 PLC與RFID控制器通訊程序
5. 結束語
無協(xié)議通訊是一種簡便易行的通訊方式,歐姆龍的CPM2A和CP系列等小型機都可以實現(xiàn)[4]。這種通訊方式編程靈活,通訊可靠性高,是一種比較理想的低本錢通訊方式。
參考文獻:
[1] 徐世許.可編程序控制器應用指南—編程·通訊·聯(lián)網(wǎng)[M].北京:電子產(chǎn)業(yè)出版社,2007: 278-285
[2] OMRON. CP1H/CP1L CPU UNIT PROGRAMMING MANUAL[K]. Shanghai: OMRON, 2007
[3] OMRON. RFID System V600 Series OPERATION MANUAL[K]. Shanghai: OMRON, 2003
[4] 王鳳杰,洪云.歐姆龍PLC無協(xié)議通訊功能研究[J].產(chǎn)業(yè)控制計算機,2008,21(5): 45-47