6ES7231-7PB22-0XA8技术介绍
本文以EMS(EscortMemorySystems)的RFID射频识别读写器LRP830为例,分别介绍了可编程控制器及微机与RFID射频识别读写器进行串行通讯,从而读取标识数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过bbbbbbs多线程技术与RFID读写器实现串行通讯。文中给出了实例。RFID射频识别在我国的应用才刚刚开始,前景非常广阔。本文所述方法具有一定代表性,对于推动RFID射频识别技术在工业自动化等领域的应用,具有一定的积极意义。
RFID射频识别系统简介
RFID的全称是RadioFrequencyIdentification,即射频识别,它利用无线电射频实现可编程控制器(PLC)或微机(PC)与标识间的数据传输,从而实现非接触式目标识别与跟踪。
一个典型的RFID射频识别系统包括四部分:标识、天线、控制器和主机(PLC或PC),系统结构图见图1。
图1RFID射频识别系统结构图
标识一般固定在跟踪识别对象上,如托盘、货架、小车、集装箱,在标识中可以存储一定字节的数据,用于记录识别对象的重要信息。当标识随识别对象移动时,标识就成为一个移动的数据载体。以RFID在计算机组装线上的应用为例,标识中可以记录机箱的类型(立式还是卧式)、所需配件及型号(主板、硬盘、CD-ROM等)、需要完成的工序等。又如在邮包的自动分拣和跟踪应用中,可以在标识中存储邮包的始发地、目的地、路由等信息。
天线的作用是通过无线电磁波从标识中读数据或写数据到标识中。天线形状大小各异,大的可以做成货仓出口的门或通道,小的可以小到1mm。
控制器用于控制天线与PLC或PC间的数据通信,有的控制器还带有数字量输入输出,可以直接用于控制。控制器与天线合称读写器。
PLC或PC根据读写器捕捉到的标识中的数据完成相应的过程控制,或进行数据分析、显示和存储。
本文即以具有代表性的美国EMS(EscortMemorySystems)公司的13.56MHz无源RFID射频识别读写器LRP830为例,介绍了PLC及PC与RFID读写器进行串行通讯,从而获取标识数据,用于控制或数据处理的具体实现方法。
RFID射频识别读写器的命令集及串行通讯协议
以LRP830读写器为例,LRP830是EMS13.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、ABxASCII。表2是ABxS通讯协议持续读单标识命令的一个例子,其它命令与此类似。
表2ABxS协议持续读单标识命令举例
RFID读写器与PLC串行通讯
以EMSRFID读写器LRP830与GEFanucVersaMaxPLC的串行通讯为例。VersaMaxPLC的RS232串口与LRP830的COM1接线对应关系见表3。
表3VersaMax与LRP830读写器的串口接线对应关系
通过PLC控制RFID读写器读写标识数据的实现流程如图2所示。
图2PLC读写RFID标识数据的程序结构框图
以下是具体实现时要注意的技术细节:
1)LRP830与VersaMaxPLC的串口相连时,信号线要错线,即VersaMaxRS232口的TXD/RXD要接LRP830的COM1的RXD/TXD,LRP830与PC连接时则是直通的。
2)PLC使用串行I/O通讯协议与RFID读写器通讯。串口初始化、设置缓冲区、清除缓冲区、写串口、读串口状态等操作都是先通过一组BLKMOVWORD指令给COMMREQ的数据块赋值,然后执行COMMREQ指令完成的。例如,以下语句(见图3)通过RFID读写器写10个FF(46H)到标识中,从个字节写起。
图3PLC与RFID读写器串行通讯例程
3)要注意PLC写标识数据只需要执行写串口命令就可以了,而PLC读标识数据的过程则包含两步:一是PLC执行写串口命令,即写读标识命令到RFID读写器;二是PLC执行读串口命令,捕捉RFID读写器返回的数据。这是由于RFID读写器在接到读标识命令后,会返回读命令的响应信息到串口缓冲区,其中包含了读到的标识数据。
4)使用ABxS协议时,要注意命令字的MSB和LSB的顺序问题。RFID读写器与PLC通讯时,要将读写器指令的MSB和LSB颠倒一下,即LSB在前,MSB在后。例如图3中,第二个BLKMOVWORD指令的第三个输入IN3应为16#4AA,而非16#AA04。
5)利用读写器指示灯的变化辅助PLC程序调试。LRP830读写器的面板上有两排LED指示灯,其中,当“ANT”亮时,表示天线在执行读写操作;“COM1”亮时,表示串口1执行了写命令,“RF”亮时,表示有标识被读写且仍在读写范围内。
RFID读写器与PC串行通讯
仍以EMSRFID读写器LRP830为例。与PC机相连时,LRP830的COM1/COM2与PC机的9针串口
COM1/COM2的连接对应关系见表4。
表4LRP830的串口与PC串口连接对应关系
在PC机上开发串口通讯程序,可以使用现有的通讯控件(如VB的Mscomm),也可以使用编程语言结合bbbbbbsAPI实现。本文用Delphi6在bbbbbbs2000环境中,应用多线程技术实现了PC与RFID读写器间的串行通信。使用Delphi的优点是,Delphi对许多bbbbbbs底层API函数作了封装,简化了程序代码。使用多线程的优点是,程序编写比较灵活,而且串口监听线程不影响主线程其它任务的执行。程序结构框图见图4。
图4PC与RFID读写器串行通信程序框图
在具体实现上述思路时,要注意以下技术细节:
1)根据RFID读写器通讯协议的特点,读写器每执行一个主机发来的指令,无论是读标识还是写标识,都会返回一定字节的响应数据,用以确认命令已执行或返回标识中存储的数据。因此,主机读或写标识数据都需要先写(串口命令)后读(返回的串口数据)。
2)为了使程序体现模块化的设计思想,易于调试和维护,可以把各种RFID命令预先存入命令数组中,而把主机对RFID串口的命令和捕捉RFID读写器命令响应编制成单独的子程序,在调用它之前,先调用命令字赋值子程序。
3)对主线程的说明:在主线程中用CreateFile函数建立串口事件,设置缓冲区和通信参数,创建串口监听线程。用WriteFile写串口函数完成通过RFID读写器写数据到标识中。部分程序如下:
hcom:=CreateFile(pchar(Whichcom),GENERIC_WRITEOrGENERIC_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提供的一种安全调用线程的方法,它把线程的调用权交给了主线程,从而避免了线程间的冲突,这是一种简单的线程间同步的方法,可以省去用其它语言编程时需要调用的多个bbbbbbsAPI函数,例如createEvent(创建同步事件),Waitforsinglebbbbbb(等待同步事件置位),resetevent(同步事件复位),PostMessage(向主线程发送消息)等。用Delphi编写多线程通讯程序的优点是显而易见的。例如以下语句即可实现串口监听线程:
While(notTerminated)do//如果终止属性不为真
Begin
dwEvtMask:=0;
Wait:=WaitCommEvent(hcom,dwevtmask,lpol);//等待串口事件
ifWaitThen
begin
Synchronize(DataProcessing);//同步串口事件
end;
end;
上述程序一旦检测到串口事件,就调用DataProcessing方法读串口数据,并写入数组,供程序其它部分调用,另外还要检测何时退出线程,程序如下:
procedureTmainbbbb.DataProcessing
begin
bbbbb:=bbbbbCOMMERROR(hcom,lperrors,@comms);//清除串口错误
ifbbbbbThen
Begin//处理接收数据
ReadFile(hcom,ReadBuffer,Comms.cbInQue,LPReadNumber,0);
ReceBytes[I+ArrayOffset]:=ReadBuffer;
//读串口缓冲区数据并写入数组
gameover:=(ReceBytes[I+ArrayOffset-1]=Byte($FF))
and(ReceBytes[I+ArrayOffset]=Byte($FF));//终止条件
ifgameoverthenterminate;//退出线程
……
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窗口中可以看到,前4个字节AAODFFFF就是LRP830读写器对持续读命令的确认信息,然后是数据报文头AAOD和标识中48个字节的数据(每字节数据前加00),后是数据报文尾FFFF。
结束语
本文介绍了可编程控制器及微机与RFID射频识别读写器进行串行通讯,从而获取标识中的数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过bbbbbbs多线程技术与RFID读写器实现串行通讯。本文所述方法具有通用性,对于其它厂家的PLC和RFID系统也有一定的参考价值。RFID射频识别技术在我国工业自动化等领域的应用才刚刚开始,前景非常广阔。本文对于促进该技术的推广应用具有一定的积极意义。
引言
物料包装输送系统的工作环境通常比较恶劣,设备所处环境一般粉尘较大,空气相对湿度高,操作分散,所以对输送包装控制系统工作的安全性、可靠性、维护简便性要求较高。以前,电器控制系统中大多使用分立的继电器,接触器等电器元件作为控制元件,其控制系统复杂,操作难度大,并且安装接线工作量大、修改控制策略难,维护量大,严重影响了正常生产。因此,物料输送控制系统成了制约生产的瓶颈。而采用可靠性较高的PLC及其WINCC监控软件[1]组成的控制系统作为数据采集、控制回路、自动顺序操作和运算的主要设备。实现包装系统的皮带过程控制和输送工艺流程的实时监测、自动控制和系统运行诊断,满足了系统可靠性、稳定性和实时性的要求。
2 系统介绍
包装输送控制系统分为散库和包装库两组。散库主要存储不需要包装的散料,包装库进行成品包装。主要包括:1#~8#线、A线(9#、15#、16#)、B线(10#、19#、20#)、C线(11#、17#)、D线(12#、
18#)、E线(13#、21#)、F线(14#、22#)。各线工艺流程如图1所示。在该工艺流程中,除了要考虑各皮带内部按顺序启动停止以及皮带的打滑、跑偏等问题外,还必须考虑相关配套设备。系统主要包括数字量输入67路,模拟量输入16路,数字量输出52路;需要控制的过程有各皮带的启动、停车和安全运行,各料槽的选择和设备故障时的处
2 PLC控制系统的硬件设计
2.1硬件配置
根据设备及工艺要求,包装输送系统采用上位机和下位机组成,上位机使用两台PC机:一台作为操作站实现整个系统的监控和数据检测;另一台作为工程师站完成组态软件的设计与开发、PLC程序的开发以及将软件通过PROFIBUS[2]总线传送至PLC的CPU单元。下位机采用功能强大、可靠性高、维护方便且抗干扰能力强的可编程控制器西门子S7-300系列PLC完成对设备的控制功能,且下位机 分为两个机架分别放置于包装库和散库。散库机架与包装室机架的S7-300构成PROFIBUS-DP网络结构。系统硬件结构配置如图2所示,其具体组成如下。
(1) 中央控制单元
中央控制单元选用 CPU315-2DP[3]作为PLC的核心部件,进行逻辑和数字运算,协调整个控制系统各部分的工作。
(2) 电源单元
电源单元采用1:1隔离变压器进行对PLC的220V交流开关量输入卡件进行供电,采用SITOP电源对PLC的24V开关量输出卡件供电。自带的PS-307/5A直流电源对CPU和部分卡件进行供电。
(3) 输入输出单元
系统采用两块8点的模拟量输入单元AI8×12Bit、两块32点输出单元DO32×DC24V/0.5A、一块
16点输出单元DO16×DC24V/0.5A、五块16点数字量输入单元DI16×AC120/230V
(4)通迅模块
为了确保包装库操作站与散库操作站通信正常(距离约300米),在本系统选用了CP 342-5通迅模块。
通过PROFIBUS 进行配置和编程。
2.2 变量分配
控制对象的PLC变量分配情况表1所示。
3 包装输送控制程序设计思想
3.1 系统控制方式
包装输送控制系统的控制方式分为自动控制、单机控制和现场手动控制三种。单机启动方式是指在上位机的连锁图中, 设有启动及停车按钮, 在未进入联锁状态时,皮带可以独立启动/停止。
3.2控制程序设计
该皮带输送系统共有二十二条皮带,根据皮带输送工艺可以将其为两大部分:1#~8#线与A~F线。根据包装室和散库控制室及现场皮带运行情况,得出该输送系统的控制策略:(1)选择控制方式:远程自动控制、现场手动控制或远程手动控制方式。 (2)根据包装与否控制包装流水线和散库流水线运行,并按要求顺序停止。(3)根据料槽料位控制A~F线启动、停止。
本系统中STEP7用户程序分为组织块(OB)、功能块(FC)和数据块(DB)。功能块根据控制任务用于建立用户程序。将整个控制过程按工艺分为模拟量信号处理、A~F线起/停、3~8#线皮带起停、
总料位计算、模拟量变换、料槽料位运算、报警处理、1~6#皮带速度处理、1~2#皮带起停和分料器选择等程序块。针对工艺流程的具体情况,用语句表(LAD)形式编程。图4给出了3#~6#皮带控制流程图。数据块用来存放皮带速度和料槽料位的数据。
3.3控制设计思想
(1) 回路启动顺序由下游向上游(来料方向为上游) , 按一定延时, 逐个启动, 若回路启动过程中无故障, 则为正常启动; 若有故障则为异常启动, 程序启动遇到故障时, 就不再继续往下启动。
(2) 回路停止顺序由上游向下游, 它包括正常停止和事故停止。正常停止为顺序停止,即正常操作时程序按一定时间延时由上游向下游逐个停止设备。事故停止是在启动或正常运行过程中回路中某一设备发生故障时, 上游的设备立即停止,下游设备可运行。
(3) 在逻辑梯形图中, 凡是带有分支的联锁回路都有记忆功能。因为前一台设备可以根据需要启动下面的各个分支回路的设备, 回路梯形逻辑的记忆功能, 可保证有故障回路的设备能正确停车。
(4) 上位机能显示出整个皮带运行状态。 亦能显示单条回路运行的设备。
4 WINCC组态软件结构设计
工业控制组态软件是可以从可编程控制器、各种数据采集卡等设备中实时采集数据,发出控制命令并监控系统运行是否正常的软件。组态软件能充分利用bbbbbbs强大的图形编辑功能,以动画方式显示监控设备的运行状态,方便的构成监控画面和实现控制功能,并可以生成报表[4]、历史趋势等,为工业监控软件开发提供了便利的软件开发平台,从整体上提高了工控软件的质量。西门子公司开发的WINCC是运行在bbbbbbs2000上的一种组态软件。它的功能是建立动态显示窗口,通过提供的工具箱可方便建立实时曲线图、历史曲线图和报警记录显示。在画面窗口中,通过对多种图形对象的组态设置,建立相应的动画连接,用清晰生动的画面反映工业控制过程。根据包装控制系统的要求,图5是监控软件的结构。WINCC与S7-PLC同属西门子产品,属于无缝集成且自带通讯协议连接。该控制系统和上位机组态软件实现了物料输送测控系统的要求。简洁且形象的模拟了整个系统的工艺流程,操作人员能在控制室的计算机屏幕上观察到输送的全部情况,包括各种报警。取得权限的操作人员能在控制室对任何一条皮带单独操作或连锁操作,并进行手动与自动切换。
5 监控系统主要实现的功能
(1) 显示功能:工艺流程、测量值、设备运行状态、操作模式、报警等显示、画面调用等功能;
(2) 报警处理和报表生成功能:纪录报警发生时间、故障内容等信息,并对报警信息进行管理,系统报表有时报、日报、月报等;
(3)历史趋势功能:对现场的皮带速度、料槽料位以曲线图形显示。每个趋势曲线显示的画面主要包括画面名称、时间、趋势等;
(4) 画面系统对系统料位参数进行修改,实现对系统自动/手动的切换;
(5) 管理权限:实现不同级别的系统管理权限,系统操作员可以选择操作模式,查看趋势曲线及报表等;系统工程师可以对监控软件和下位机软件进行修改。
(6) 操作控制功能:根据界面上的按钮可以对各条皮带进行操作,比如:启动、停止;对料位按工艺要求进行设定并对其进行选择。
6 结束语
本文所述物料运输自动控制系统在工业现场已经正常运行一年。由于整个物料传送工艺均在一个完整的控制系统控制下,各个分工艺之间的协调及互锁设计严密。另外,在PLC控制程序和上位人机界面中对每一个参控变量均设置了报警信息提示,使操作员可以快速的查找故障点,及时处理故障。并且对于每一个关键操作命令都设有相应确认提示,消除误操作的可能性。该控制方法提高了现有系统的自动化水平,降低了工人的劳动强度。