0. 引言
在大型生產(chǎn)線上,為了實(shí)現(xiàn)流水線自動(dòng)化,,PLC與RFID技術(shù)結(jié)合的應(yīng)用不斷增加,。PLC作為一種高可靠性的控制裝置,,與RFID進(jìn)行數(shù)據(jù)通信,不但可以實(shí)現(xiàn)對(duì)每一個(gè)生產(chǎn)過程的控制與管理,,而且可以提高自動(dòng)化生產(chǎn)流水線的生產(chǎn)效率,。
歐姆龍公司的CPM2A/2C、CQM1H,、C200Hα,、CP1、CJ1及CS1等系列PLC都可以支持無協(xié)議通信功能,。利用TXD和RXD等指令,,通過串行通信端口,PLC與計(jì)算機(jī)之間,、PLC與PLC之間,、PLC與各種通信設(shè)備之間(如變頻器、條形碼讀入器和串行打印機(jī)等)可以進(jìn)行數(shù)據(jù)交換,,實(shí)現(xiàn)通信[1],。本文選用歐姆龍CP1H型PLC,實(shí)現(xiàn)與與歐姆龍的V600系列RFID控制器的無協(xié)議通信,。PLC作為上位機(jī),,RFID控制器作為下位機(jī)。
1. 系統(tǒng)結(jié)構(gòu)
上位PLC與下位RFID控制器之間有1:1和1:N兩種鏈接模式,,1臺(tái)PLC(上位機(jī))只能連接32臺(tái)RFID(下位機(jī)),,本文介紹1:1鏈接模式。系統(tǒng)中PLC與RFID控制器之間通過RS-422總線連接,。上位機(jī)與RFID控制器通信時(shí),,使用專用的SYSWAY通信協(xié)議,上位機(jī)優(yōu)先發(fā)送通信指令,,RFID控制器接收后,,首先分析來自主機(jī)的命令,然后對(duì)RFID標(biāo)簽進(jìn)行讀寫,。通信結(jié)束后,,RFID 控制器返回一個(gè)響應(yīng)代碼到主機(jī)。SYSWAY通信協(xié)議支持1:1和1:N通信,。當(dāng)主機(jī)與RFID控制器是1對(duì)1連接時(shí),,采用1:1方式通信;當(dāng)連接主機(jī)的RFID控制器超過一個(gè)時(shí),采用1:N方式通信,。在1:N通信模式下,,可以通過對(duì)RFID控制器設(shè)置來實(shí)現(xiàn)主機(jī)與RFID控制器的1:1通信。
主機(jī)CP1H作為上位機(jī),,由于PLC與RFID控制器之間選用RS-422方式進(jìn)行通信,,所以CP1H端口1選用插件CP1W-CIF11,,為RS-422/485型。RFID(由V600-CA5D02 RFID控制器,、V600-H07天線及V600-D23P66N無源標(biāo)簽三部分組成)作為下位機(jī),,V600-CA5D02 RFID控制器的機(jī)體上分別帶有一個(gè)RS-232C與RS-422/485串行通信口,都支持與計(jì)算機(jī),、PLC等主機(jī)設(shè)備之間的通信,。PLC與RFID控制器的接線如圖1所示。
CP1W-CIF11有一組DIP開關(guān),,共有8個(gè),,SW1表示是否使用終端電阻;SW2、SW3表示通信的連接方式:422或485;SW4為空;SW5,、SW6表示通信時(shí)有無RS控制,。在使用其之前,根據(jù)通信的要求對(duì)DIP開關(guān)進(jìn)行設(shè)定:SW1為ON,,使用終端電阻;SW2,、SW3為OFF,使用422連接方式;SW5,、SW6為任意,。
2. 無協(xié)議通信及其指令
無協(xié)議通信,,即不使用重試處理,、不經(jīng)過數(shù)據(jù)格式的轉(zhuǎn)換處理及具有對(duì)應(yīng)接收的數(shù)據(jù)進(jìn)行處理分支等的順序通信協(xié)議。在無協(xié)議且無轉(zhuǎn)換的條件下,,通過通信端口的輸入輸出指令(TXD,,RXD)發(fā)送和接收數(shù)據(jù)。無協(xié)議通信過程十分簡單,,只需在PLC系統(tǒng)設(shè)定中將串行端口的串行通信模式設(shè)定為無協(xié)議通信,。根據(jù)無協(xié)議通信,PLC就可以與帶有RS-232端口或者RS-422/485端口的外部設(shè)備,,按照TXD和RXD指令進(jìn)行單方的發(fā)送(數(shù)據(jù)流從PLC到通用外部設(shè)備)和接收數(shù)據(jù)(數(shù)據(jù)流從通用外部設(shè)備到PLC)[2],。無協(xié)議通信的實(shí)現(xiàn)步驟如圖2所示。
使用無協(xié)議通信發(fā)送和接收消息時(shí),,開始代碼及結(jié)束代碼之間的數(shù)據(jù)用TXD指令來發(fā)送,,或者是將要插入開始代碼及結(jié)束代碼之間的數(shù)據(jù)用RXD指令來接收。使用TXD指令發(fā)送數(shù)據(jù)時(shí),,應(yīng)先將數(shù)據(jù)從I/O存儲(chǔ)器讀取后發(fā)送,,使用RXD指令接收數(shù)據(jù)時(shí),順序恰恰相反,。TXD/RXD一次發(fā)送和接收的最大數(shù)據(jù)量為256個(gè)字節(jié),。無協(xié)議通信時(shí),,發(fā)送和接收的數(shù)據(jù)的開始代碼和結(jié)束代碼由用戶在PLC系統(tǒng)設(shè)定中指定。圖3為歐姆龍CP1H型PLC無協(xié)議通信的指令結(jié)構(gòu),。
Fig.3 commands of No-Protocol Communication
TXD指令根據(jù)由S指定的發(fā)送數(shù)據(jù)開頭CH編號(hào),,對(duì)由N指定的發(fā)送字節(jié)長度的數(shù)據(jù)進(jìn)行無變換操作。隨著PLC系統(tǒng)設(shè)定為無順序模式時(shí)的開始代碼/結(jié)束代碼的指定,,由C的位8~11輸出到指定的串行通信選裝件版的串行端口(無順序模式),。但是只能在發(fā)送準(zhǔn)備標(biāo)志(串行端口1:A392.13、串行端口2:A392.05)為ON時(shí)才能發(fā)送,。能發(fā)送字節(jié)數(shù)最大為259字節(jié)(數(shù)據(jù)部最大256字節(jié),,包括開始代碼、結(jié)束代碼),。
RXD指令在串行通信選裝件板的串行端口(無順序模式)中,,從由D指定的接收數(shù)據(jù)保存開頭CH編號(hào)開始,輸出由N指定的相當(dāng)于保存字節(jié)長度的接收結(jié)束數(shù)據(jù),。當(dāng)接收結(jié)束數(shù)據(jù)不滿由N所指定的保存字節(jié)長度時(shí),,輸出實(shí)際存在的接收結(jié)束數(shù)據(jù)。但是當(dāng)接收結(jié)束標(biāo)志(串行端口1:A392.14,、串行端口2:A392.06)為ON時(shí),,執(zhí)行本指令來接收(來自接收緩沖器的)數(shù)據(jù)。接收可能字節(jié)數(shù)最大為259字節(jié)(數(shù)據(jù)部最大256字節(jié),,包括開始代碼,、結(jié)束代碼)。
3. RFID控制器及其命令集和數(shù)據(jù)傳輸協(xié)議
V600系列RFID控制器擁有豐富的指令系統(tǒng),,共23條,,可以非常靈活的應(yīng)用于各種場合,其中包括通信命令,、一般的通信子命令,、主機(jī)命令等[3]。通信命令多用于執(zhí)行與RFID標(biāo)簽的通信,,例如,,對(duì)靜止或者是移動(dòng)的RFID標(biāo)簽進(jìn)行讀寫等。通信子命令一般用于取消某個(gè)命令的執(zhí)行,,而主機(jī)命令則用于主機(jī)設(shè)備控制 RFID控制器,。在上位機(jī)與RFID 控制器通信過程中用到最多的是通信命令,常用通信命令的代碼及其功能如表1,。
在1:1的通信模式下,,通信過程中不計(jì)算校驗(yàn)碼,因此,只能通過響應(yīng)代碼來判斷通信結(jié)果的正確性,。圖4給出了上位機(jī)與RFID控制器之間傳輸數(shù)據(jù)的格式,。從上位機(jī)發(fā)送到RFID控制器的數(shù)據(jù)塊為命令幀,反過來,,從RFID控制器發(fā)送到上位機(jī)的數(shù)據(jù)塊為響應(yīng)幀,。每個(gè)幀以指令代碼開始,以結(jié)束符結(jié)束,,響應(yīng)幀中還包括反應(yīng)執(zhí)行結(jié)果的響應(yīng)碼,。上位機(jī)與RFID 控制器之間可以傳送十六進(jìn)制或ASCII形式的數(shù)據(jù),每一幀最大允許傳送數(shù)據(jù)為271個(gè)字符,。
如果傳送的數(shù)據(jù)大于271個(gè)字符,,可以將數(shù)據(jù)分成起始幀、若干中間幀,、結(jié)束幀進(jìn)行傳送,。起始幀必須包含命令碼,讀/寫頭號(hào),,開始地址等,,否則通信的過程中將會(huì)有錯(cuò)誤發(fā)生。上位機(jī)每發(fā)送完一幀時(shí),,在收到RFID 控制器返回的分界符(即“↙”)后再發(fā)送下一幀,,只有當(dāng)結(jié)束幀數(shù)據(jù)發(fā)送完畢時(shí)才返回響應(yīng)代碼。
4. PLC與RFID控制器無協(xié)議通信的實(shí)現(xiàn)
4.1 CP1H通信端口設(shè)置
PLC與RFID控制器之間使用RS-422方式進(jìn)行通信,。根據(jù)RFID控制器通信規(guī)格要求,,使用歐姆龍編程軟件CX-Programmer7.1將CP1H串口1模式設(shè)置為“RS-232C”,通信波特率設(shè)置9600,,數(shù)據(jù)格式為7,、2、E,,如圖5所示。
RFID控制器通信參數(shù)設(shè)置應(yīng)與PLC通信端口參數(shù)一致:波特率9600,,偶校驗(yàn)方式,,7位數(shù)據(jù)位,2位停止位,。DIP開關(guān)SW6為ON,,表示使用終端電阻。
4.3 通信舉例
通過PLC與RFID控制器之間的通信,,編程實(shí)現(xiàn)從RFID標(biāo)簽地址0100H開始的通道內(nèi)讀取四個(gè)數(shù)據(jù),,讀取的數(shù)據(jù)存儲(chǔ)到PLC的DM區(qū)內(nèi)。根據(jù)通信數(shù)據(jù)傳輸格式,要發(fā)送的數(shù)據(jù)為RDA1001004*,。將要發(fā)送的數(shù)據(jù)轉(zhuǎn)化為16進(jìn)制數(shù)“524441313030313030342A0D” ,,存放到DM0開始的6個(gè)通道內(nèi)。這6個(gè)通道對(duì)應(yīng)值分別為:DM0:5244;DM1:4131;DM2:3030;DM3:3130;DM4:3034;DM5:2A0D,。

無協(xié)議通信是一種簡便易行的通信方式,,歐姆龍的CPM2A和CP系列等小型機(jī)都可以實(shí)現(xiàn)[4],。這種通信方式編程靈活,通信可靠性高,,是一種比較理想的低成本通信方式,。