PLC及PC与RFID识别读写器串行通讯的实现 (2)

2008-09-03 16:22:13   作者:王宏   来源:中国传动网   

关键字:RFID 读写器 射频识别系统 通讯口 PLC控制 串口 识别对象 PC 串行通讯 主线程

识命令

  ……

  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读写器执行此命令,并返回响应数据(见图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

 

[1] [2]
相关阅读
Albis主动式RFID门禁系统可读任何标识 2011-08-17
基于RFID技术的身份码发射器的硬件设计 2011-04-24
京津地区菠菜检出放射物 RFID筑食品防线 2011-04-09
物联网前途现技术之争 二维码博弈RFID 2011-03-09
聚焦2011年两会 民生提案安防看点多 2011-03-09
RFID:中国半导体产业的下一个重大应用 2010-12-23
意法半导体推出创新高容量RFID存储器,可简化并加快专业设备的保养与维修 2010-12-15
一种基于RFID的移动目标监控系统的设计 2010-10-14
基于RFID的涉密载体及人员门禁管理设计 2010-10-11
首个产业化RFID“中国芯”即将诞生 2010-08-23
慧眼安防:看门禁识小区的智能化之路 2010-08-18
编辑:孙树宾
本文引用地址: http://www.eeworld.com.cn/afdz/2008/0903/article_1086.html
[发表评论]
[加入收藏]
[告诉好友]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]

小广播

最热点击

专栏

向农,EEWORLD副总编。被英特尔董事长贝瑞特称为“中国可与之对话的两名记者之一”

【详细】

总编随笔
汤宏琳,人皆称为“汤汤”,电子工程世界高级编辑。随着EEWORLD一起成长。

【详细】

汤汤手记
今年,是中国集成电路产业丰收的一年,相比较往年都有大幅提升。

【详细】

凯哥博客

论坛精华

精选博文