标签芯片 | 读写器 | 天线 | 中间件 | 智能卡 | 生物识别 | 条码 | 制造设备 | 物流 | 零售 | 防伪 | 交通 | 停车 | 资产管理 | 动物 | 身份识别 | 军事 | 航空 | 门禁 | 一卡通
供求商机 资讯中心 产品中心 企业资料 人才招聘
 
 首页 >> 技术中心>> 正文
PLC及PC与RFID射频识别读写器串行通讯的实现
来源:RFID射频快报   2008-9-3 16:37:34
关键词: RFID技术  可编程控制器  微机  串行通讯  RFID天线  RFID读写器    


提要本文介绍了可编程控制器及微机与RFID射频识别读写器进行串行通讯,从而获取标识中的数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过Windows多线程技术与RFID读写器实现串行通讯。

1 RFID射频识别系统简介

RFID的全称是Radio Frequency Identification,即射频使被,它利用无线电射频实现可编辑控制器(PLC)或微机(PC)与标识间的数据传输, 从而实现非接触式目标识别与跟踪。

一个典型的RFID射频识别系统包括四部分:标识、天线、控制器和主机(PLC或PC),系统结构图见图1。



图1 RFID射频识别
系统结构图

标识一般固定在跟踪识别对象上,如托盘、货架、小车、集装箱,在标识中可以存储一定字节的数据,用于记录识别对象的重要信息。当标识随识别对象移动时,标识就成为一个移动的数据载体。以RFID在计算机组装线上的应用为例,标识中可以记录机箱的类型(立式还是卧式)、所需配件及型号(主板、硬盘、CD-ROM等)、需要完成的工序等。又如在邮包的自动分拣和跟踪应用中,可以在标识中存储邮包的始发地、目的地、路由等信息。

天线的作用是通过无线电磁波从标识中读数据或写数据到标识中。天线形状大小各异,大的可以做成货仓出口的门或通道,小的可以小到1mm。

控制器用于控制天线与PLC或PC间的数据通信,有的控制器还带有数字量输入输出,可以直接用于控制。控制器与天线合称读写器。

PLC或PC根据读写器捕捉到的标识中的数据完成相应的过程控制,或进行数据分析、显示和存储。

本文即以具有代表性的美国EMS(Escort Memory Systems)公司的13.56MHz无源RFID读写器LRP830为例,介绍了PLC及PC与RFID读写器进行串行通讯,从而获取标识数据,用于控制或数据处理的具体实现方法。

2 RFID射频识别读写器的命令集及串行通讯协议

以LRP830读写器为例,LRP830是EMS 13.56MHz无源系列射频读写器中的一种,它的标识和天线可以在水下或高温腐蚀环境中正常工作,可以一次读写99个标识,最大读写距离63.5cm。它带有两个串口,一个DeviceNet接口,4个DI隔离输入,4个DI隔离输出,保护等级IP66,NEMA4封装,非常适合于在工业自动化中应用。

LRP830读写器上的串口是合在一起的,通过专用电缆可以分接出COM1和COM2两个串口,两个串口作用不同,COM1用作通讯口,从PLC或PC接收命令并返回响应数据, 可以配置为RS232、RS422或DeviceNet接口。COM2用于配置系统参数(如读写模式、波特率等)或下载系统升级程序。

LRP830可以与所有EMS的FastTrackTM系列无源标识结合使用,每个标识中可以存储48个字节的数据,另外还有8个字节用于存储只读的唯一的序列号(出厂前由厂方设定)。

LRP830提供了单标识读写命令集(见表1),多标识读写命令与此类似。  

表1 单标识命令集

每种命令可以有三种通讯协议:ABxS 、ABxF 、ABx ASCII。表2 是ABxS通讯协议持续读单标识命令的一个例子,其它命令与此类似。

  表2 ABxS协议持续读单标识命令举例

3 RFID读写器与PLC串行通讯

以EMS RFID读写器LRP830 与GE Fanuc VersaMax PLC的串行通讯为例。VersaMax PLC的RS232串口与LRP830的COM1接线对应关系见表3。

  表3 VersaMax与LRP830读写器的串口接线对应关系

  通过PLC控制RFID读写器读写标识数据的实现流程如图2所示。



图2 PLC读写RFID
标识数据的程序结构框图

以下是具体实现时要注意的技术细节:

  1) LRP830与VersaMax PLC的串口相连时,信号线要错线,即VersaMax RS232口的TXD/RXD要接LRP830 的COM1的RXD/TXD,LRP830与PC连接时则是直通的。

  2) PLC使用串行I/O通讯协议与RFID读写器通讯。串口初始化、设置缓冲区、清除缓冲区、写串口、读串口状态等操作都是先通过一组BLKMOV WORD指令给COMMREQ的数据块赋值,然后执行COMMREQ指令完成的。例如,以下语句(见图3)通过RFID读写器写10个FF(46H)到标识中,从第一个字节写起。


图3 PLC与RFID
读写器串行通讯例程

  3) 要注意PLC写标识数据只需要执行写串口命令就可以了,而PLC读标识数据的过程则包含两步:一是PLC执行写串口命令, 即写读标识命令到RFID读写器;二是PLC执行读串口命令,捕捉RFID读写器返回的数据。这是由于RFID读写器在接到读标识命令后,会返回读命令的响应信息到串口缓冲区,其中包含了读到的标识数据。

  4) 使用ABxS协议时,要注意命令字的MSB和LSB的顺序问题。RFID读写器与PLC通讯时,要将读写器指令的MSB和LSB颠倒一下,即LSB在前,MSB在后。例如图3中,第二个BLKMOV WORD指令的第三个输入IN3应为16#4AA,而非16#AA04。

  5) 利用读写器指示灯的变化辅助PLC程序调试。LRP830读写器的面板上有两排LED指示灯,其中,当“ANT”亮时,表示天线在执行读写操作;“COM1”亮时,表示串口1执行了写命令,“RF”亮时,表示有标识被读写且仍在读写范围内。

4 RFID读写器与PC串行通讯

仍以EMS RFID读写器LRP830为例。与PC机相连时,LRP830的COM1/COM2与PC机的9针串口COM1/COM2的连接对应关系见表4。

  表4 LRP830的串口与PC串口连接对应关系

在PC机上开发串口通讯程序,可以使用现有的通讯控件(如VB的Mscomm),也可以使用高级编程语言结合Windows API实现。本文用Delphi 6在Windows2000环境中,应用多线程技术实现了PC与RFID读写器间的串行通信。使用Delphi的优点是,Delphi对许多Windows底层API函数作了封装,简化了程序代码。使用多线程的优点是,程序编写比较灵活,而且串口监听线程不影响主线程其它任务的执行。程序结构框图见图4。



图4 PC与RFID
读写器串行通信程序框图

在具体实现上述思路时,要注意以下技术细节:

  1) 根据RFID读写器通讯协议的特点,读写器每执行一个主机发来的指令,无论是读标识还是写标识,都会返回一定字节的响应数据,用以确认命令已执行或返回标识中存储的数据。因此,主机读或写标识数据都需要先写(串口命令)后读(返回的串口数据)。

  2) 为了使程序体现模块化的设计思想,易于调试和维护,可以把各种RFID">RFID命令预先存入命令数组中,而把主机对RFID">RFID串口的命令和捕捉RFID读写器命令响应编制成单独的子程序,在调用它之前,先调用命令字赋值子程序。

  3) 对主线程的说明:在主线程中用CreateFile函数建立串口事件,设置缓冲区和通信参数,创建串口监听线程。用WriteFile写串口函数完成通过RFID读写器写数据到标识中。部分程序如下:

  ……

  hcom := CreateFile(pchar(Whichcom), GENERIC_WRITE Or GENERIC_READ,

  0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); //产生串口事件

  setupcomm(hcom,TOTALBYTES,TOTALBYTES); //设置缓冲区

  getcommstate(hcom,lpdcb);

  lpdcb.BaudRate:=BAUDRATE; //波特率

  lpdcb.StopBits := STOPBIT; //停止位

  lpdcb.ByteSize := BYTESIZE; //每字节有几位

  lpdcb.Parity :=PARITY; //奇偶校验

  setcommstate(hcom,lpdcb); //设置串口

  Mycomm := Tcomm2.Create(False); //创建串口监听线程

  WriteFile(hcom, WriteBuffer,sizeof(WriteBuffer),lpBytesSent, 0);//写标识命令

  ……

  4) 对串口监听线程的说明:

  程序中用到的方法主要有Synchronize和Terminate。Synchronize是Delphi提供的一种安全调用线程的方法,它把线程的调用权交给了主线程,从而避免了线程间的冲突,这是一种最简单的线程间同步的方法,可以省去用其它语言编程时需要调用的多个Windows API 函数,例如createEvent(创建同步事件),Waitforsingleobject(等待同步事件置位),resetevent(同步事件复位),PostMessage(向主线程发送消息)等。用Delphi编写多线程通讯程序的优点是显而易见的。例如以下语句即可实现串口监听线程:

  ……

  While (not Terminated) do //如果终止属性不为真

  Begin

  dwEvtMask:=0;

  Wait := WaitCommEvent(hcom,dwevtmask,lpol); //等待串口事件

  if Wait Then

  begin

  Synchronize(DataProcessing); //同步串口事件

  end;

  end;

上述程序一旦检测到串口事件,就调用DataProcessing方法读串口数据,并写入数组,供程序其它部分调用,另外还要检测何时退出线程,程序如下:

  procedure Tmainform.DataProcessing

  begin

  clear := CLEARCOMMERROR(hcom,lperrors,@comms); //清除串口错误

  if Clear Then

  Begin //处理接收数据

  ReadFile(hcom,ReadBuffer,Comms.cbInQue,LPReadNumber,0);

  ReceBytes[I+ArrayOffset] := ReadBuffer[I];

  //读串口缓冲区数据并写入数组

  gameover := (ReceBytes[I+ArrayOffset-1]=Byte($FF))

  and (ReceBytes[I+ArrayOffset]=Byte($FF)); //终止条件

  if gameover then terminate; //退出线程

  ……

  End;

  End;

其中,Terminate将线程的Terminated属性设置为True。线程一旦检测到Terminated属性为True,就会结束线程,去执行Onterminate事件,在Onterminate事件中对采集到的RFID标识数据进行处理。由于RFID读写器的ABxS协议的命令响应的最后两个字节都是FF,所以可以将收到连续的两个FF作为终止线程的条件之一。

程序应用举例:

以持续读标识中所有48字节数据命令为例,在程序中用WriteBuffer数组保存该命令,对WriteBuffer数组的各个元素赋值如下:

WriteBuffer[0] := Byte($AA); WriteBuffer[1] := Byte($0D); //连续读标识命令字头

WriteBuffer[2] := Byte($00); WriteBuffer[3] := Byte($00); //从第一个字节开始读

WriteBuffer[4] := Byte($00); WriteBuffer[5] := Byte($30); //读48个字节数据

WriteBuffer[6] := Byte($00); WriteBuffer[7] := Byte($02); //延时2秒

WriteBuffer[8] := Byte($ff); WriteBuffer[9] := Byte($ff); //连续读标识命令字

执行持续读标识命令后,程序以WriteBuffer数组写串口,RFID">RFID读写器执行此命令,并返回响应数据(见图5)。



图5 持续读标识命令执行结果

从图5窗口中可以看到,前4个字节AA OD FF FF就是LRP830读写器对持续读命令的确认信息,然后是数据报文头AA OD和标识中48个字节的数据(每字节数据前加00),最后是数据报文尾FF FF。

5 结束语

本文介绍了可编辑控制器及微机RFID射频识别读写器进行串行通讯,从而获取标识中的数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过Windows多线程技术与RFID读写器实现串行通讯。本文所述方法具有通用性,对于其它厂家的PLC和RFID系统也有一定的参考价值。RFID射频识别技术在我国工业自动化等领域的应用才刚刚开始,前景非常广阔。本文对于促进该技术的推广应用具有一定的积极意义。

参考文献

  [1] ESCORT MEMORY SYSTEMS, LRP830-Series Long-Range Passive Reader/Writers Operator’s Manual, July,2000

  [2] Marco Cantù, Mastering Delphi 6, SYBEX Inc.(USA), 2001

  [3] Steve Teixeira and Xavier Pacheco,Borland Delphi? 6 Developer’s Guide, Sams Publishing(USA),2002

作者:中国传动网 王宏


      
推荐 】【 打印 】【 发表评论 】【 加入收藏

 相关文章
· 台湾输注液准备RFID技术之验证测试
· RFID技术在高校固定资产管理应用
· 基于CAN总线和RFID技术的矿井定位系统设计
· 基于rfid技术和RDN软件的纺织、服装、时尚产
· 浅析RFID技术对供应链管理的影响
· 浅谈无线射频识别技术在路桥收费系统的应用
· 基于RFID技术的博物馆人员及文物管理系统的
· 基于RFID的船体结构散件安装完整性自动检测
· RFID读写器防冲突问题的混沌神经网络建模与
· 基于RFID电子标签技术的电力监测系统
 最新供求
·射频检测器
·求枪支离位报警项目合作
·求购类似马来西亚身份证卡
·求购远距离读写器(固定与手持两种)及配套标
·求医院用13.56特殊标签和读写器
·求车辆管理系统方案和报价
·buy 2.5 Million RFID Tag for library use
·大量采购2.45G有源电子标签和读写器
·求购915MHz电子标签(量大)
·求购PA薄膜
 相关关键词搜索
·资讯中心RFID技术  可编程控制器  微机  串行通讯  RFID天线  RFID读写器    
·技术中心RFID技术  可编程控制器  微机  串行通讯  RFID天线  RFID读写器    
 
 
 
业界资讯 纵深报道 技术学院
国际资讯 | 国内资讯 | 国内企业 | 国外企业 | Global News
  重点专题
· 自动识别协会射频工作组 · RFID圈内企业动态
· RFID行业高层访谈 · 智能卡与一卡通
· RFID与食品安全 · Scan China展会专题
· 远望谷IPO之路 · RFID与医疗卫生
· NFC手机与支付 · RFID联盟产业园建设介绍
· RFID与智能交通 · 各国RFID频段标准与政策
· 出租车停运以及解决办法 · 863计划RFID专项
  相关产品

MSP430单片机无线模块学习板
nRF24Z1无线模块
低成本的电子车牌标签
2.4G无线音响模块
SATO CX400条形码打印机
FN HFM0218读写器
带串口的nRF905无线模块
Alien-9900读写器
激光条码扫描器
  推荐文章
· 新西兰航空公司利用RFID技术简化登机手续
· 1GHz以下全球免许可频段短距离无线系统的设
· 德国租赁公司使用RFID技术管理物品
· 美包伯·琼斯大学使用RFID系统加强校园安全
· 美国社区居民利用RFID技术回收垃圾
· 美国港口运用RFID技术减少空气污染
· 拉美零售巨头使用RFID改善服装库存管理
· 沙特珠宝商利用RFID改善库存管理
· 基于RFID技术的运输车辆及汽车衡称重防作弊
· 加拿大宠物用品公司采用RFID系统快速满足沃
  相关案例和方案
· 新西兰航空公司利用RFID技术简化登机手续
· 潍柴动力仓库条码管理系统---泛越技术
· 纺织、服装、时尚产品企业供应链管理
· 采用RFID技术的大中城市出租车识别系统
· 德国租赁公司使用RFID技术管理物品
· 美包伯·琼斯大学使用RFID系统加强校园安全
  相关资讯文章
· 百余名央企CIO参观中兴总部 高度评价自主创
· 远望谷:核心技术保障收入稳定增长
· 应对出租车罢运 RFID技术挡“黑车”
· IBM公司提供信息技术资产追踪的解决方法
· RFID在汽车制造工业中的应用
· 英飞凌推动RFID进军医疗领域
快 报 论 坛
· 金属环境中屏蔽抗干扰材料资料,用于NFC/RFI
· 昆明联联国际门禁系统|考勤机
· 昆明防盗报警|红外报警器-昆明联联国际
· 昆明联联国际红外|昆明报警|红外报警
· 昆明监控报警系统 |防盗系统-昆明联联国际
· 昆明监控安防|监控|监控报警|监控报警系统|
快 报 问 吧
· 是否可以通过中继的方式,提高识别距离
· 标签读取的时候能读远读不了近?
· 请教门禁卡有哪几部分组成?
· private string RFID_CM的意思是什么?
· 解析服务、目录服务及信息发布技术研究
· 资产管理一般用什么频率的?
快 报 博 客
· 突发奇想,如果许三多成了酬勤的员工?
· 手掌静脉--告诉你到底是谁?
· 看了一遍我哭了,希望珍惜眼前人。。!!!!!(结
· 如何把条码引入固定资产管理系统?
· 如何利用条码来防伪防窜货管理系统?
· 喷码机(旗舰型)

关于我们 | 广告服务 | 帮助中心 | 联系我们 | 友情链接 | 版权申明
客服电话:0531-82679069   编辑部电话:0531-82679328   节假日电话:0531-89180705   客服QQ:651127860 QQ群:41109672  47658979  MSN:RFIDinfo@126.com
版权所有©2003-2008  RFID射频快报 鲁ICP备05021498号 增值电信业务经营许可证鲁B2-20050166号