你现在位置:首页>技术论文>数据通讯>正文
PLC及PC与RFID识别读写器串行通讯的实现
日期:2009-2-12 23:15:20 来源:本站整理  
点击: 作者:
点击【】放大字体.
RFID的全称是Radio Frequency Identification,即射频识别,它利用无线电射频实现可编程控制器(PLC)或微机(PC)与标识间的数据传输, 从而实现非接触式目标识别与跟踪。
WWW_P※LCJS_CO※M-PLC-技-.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

W1WW_P4LCJS_COM-PLC-技.术_网

  一个典型的RFID射频识别系统包括四部分:标识、天线、控制器和主机(PLC或PC)。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

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

WWW_PLCJS@_COM%-PLC-技.术_网

  天线的作用是通过无线电磁波从标识中读数据或写数据到标识中。天线形状大小各异,大的可以做成货仓出口的门或通道,小的可以小到1mm。
WWW_P※LCJS_CO※M-PLC-技-.术_网

P.L.C.技.术.网——可编程控制器技术门户

  控制器用于控制天线与PLC或PC间的数据通信,有的控制器还带有数字量输入输出,可以直接用于控制。控制器与天线合称读写器。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

——可——编——程——控-制-器-技——术——门——户

  本文即以具有代表性的美国EMS(Escort Memory Systems)公司的13.56MHz无源RFID射频识别读写器LRP830为例,介绍了PLC及PC与RFID读写器进行串行通讯,从而获取标识数据,用于控制或数据处理的具体实现方法。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

plcjs.技.术_网

  2 RFID射频识别读写器的命令集及串行通讯协议
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

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

WWW_P※LCJS_COM-PLC-)技.术_网

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

WWW_PL※CJS_COM-PLC-技.术_网

  LRP830可以与所有EMS的FastTrackTM系列无源标识结合使用,每个标识中可以存储48个字节的数据,另外还有8个字节用于存储只读的唯一的序列号(出厂前由厂方设定)。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 每种命令可以有三种通讯协议:ABxS 、ABxF 、ABx ASCII。表2 是ABxS通讯协议持续读单标识命令的一个例子,其它命令与此类似。
WWW_P※LCJS_COM-PLC-)技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

  表2 ABxS协议持续读单标识命令举例
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_P※LCJS_CO※M-PLC-技-.术_网

  3 RFID读写器与PLC串行通讯
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  以EMS RFID读写器LRP830 与GE Fanuc VersaMax PLC的串行通讯为例。VersaMax PLC的RS232串口与LRP830的COM1接线对应关系见表3。
——可——编——程——控-制-器-技——术——门——户

WW.W_PLCJS_COM-PLC-技.术_网

  表3 VersaMax与LRP830读写器的串口接线对应关系
——可——编——程——控-制-器-技——术——门——户

WWW_PL※CJS_COM-PLC-技.术_网

  通过PLC控制RFID读写器读写标识数据的实现流程如图2所示。
WWcW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS_COM-PLC-技.术_网

  图2 PLC读写RFID标识数据的程序结构框图
——可——编——程——控-制-器-技——术——门——户

WWW.PLCJS.COM——可编程控制器技术门户

  以下是具体实现时要注意的技术细节:
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

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

P.L.C.技.术.网——可编程控制器技术门户

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

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

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

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

WWW_PLC※JS_COM-PmLC-技.术_网

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

WWW_PLCJS_COM-PLC-技.术_网

  4 RFID读写器与PC串行通讯
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  仍以EMS RFID读写器LRP830为例。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

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

 RFID
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

  在具体实现上述思路时,要注意以下技术细节:
WWW_PLCJS@_COM%-PLC-技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

  1) 根据RFID读写器通讯协议的特点,读写器每执行一个主机发来的指令,无论是读标识还是写标识,都会返回一定字节的响应数据,用以确认命令已执行或返回标识中存储的数据。因此,主机读或写标识数据都需要先写(串口命令)后读(返回的串口数据)。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

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

WWW_P※LCJS_CO※M-PLC-技-.术_网

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

WWW_PLCJS@_COM%-PLC-技.术_网

  ……
WWW_PL※CJS_COM-PLC-技.术_网

plcjs.技.术_网

  hcom := CreateFile(pchar(Whichcom), GENERIC_WRITEorGENERIC_READ,
WWW_PLCJS_COM-PLC-技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

  0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); //产生串口事件
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PLCJS_COM-PLC-技.术_网

  setupcomm(hcom,TOTALBYTES,TOTALBYTES); //设置缓冲区
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

plcjs.技.术_网

  getcommstate(hcom,lpdcb);
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  lpdcb.BaudRate:=BAUDRATE; //波特率
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_PLCJS_COM-PLC-技.术_网

  lpdcb.StopBits := STOPBIT; //停止位
WWcW_PLCJS_COM-PLC-技.术_网

P.L.C.技.术.网——可编程控制器技术门户

  lpdcb.ByteSize := BYTESIZE; //每字节有几位
WWW_PL※CJS_COM-PLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

  lpdcb.Parity :=PARITY; //奇偶校验
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_P※LCJS_COM-PLC-)技.术_网

  setcommstate(hcom,lpdcb); //设置串口
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

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

本新闻共2页,当前在第11 2  
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行