PLC与RFID控制器无协议通信研究

出处:杨艳 徐世许 王伟 发布于:2011-08-31 14:11:54

  0. 引言

  欧姆龙公司的CPM2A/2C、CQMlH、C200He、CPlH、CJl及CSl等系列PLC都可以支持无协议通信功能。利用TxD和RXD等指令,通过串行通信端口,PLC与计算机之间、PLC与PLc之间(包括OMRON公司与其他公司的PLC)、PLC与各种串行通信设备之间(比如变频器、条形码读入器和串行打印机等)可以进行数据交换,实现通信。本文以欧姆龙公司的小型机CPM2A为例,给出了PLC与计算机之间、PLC与PLC之间、PLC与RFID控制器之间的通信程序。

  1. 系统结构

  下面以欧姆龙公司的V600系列RFID为例,介绍在PLC与RFID控制器之间通信的方法。上位机与欧姆龙V600系列RFID控制器有1:1和1:N两种链接模式。系统由1台PLC和1台RFID设备组成。RFID设备由RFID控制器V600一CA5D02、天线V600-H07及无源电子标签V600一D23P66N三部分组成。PLc与RFID控制器通过RS232C口进行通信,完成对电子标签的读/写操作。

  PLC与RFID控制器进行通信时双方的通信参数设置(如波特率、校验方式、数据位等)应该一致。RFID控制器通信参数认设置为:波特率9600,偶校验方式,7位数据位,2位停止位。PLC与RFID控制器通信时,使用RFID控制器专用的SYSWAY通信协议,PLC发送通信指令,RFID控制器接收后,首先分析来自PLC的命令,然后对电子标签进行读写。通信结束后。RFID控制器返回响应数据到PLC。 PLC与计算机之间进行无协议通信,必须在PLC与计算机两个方面分别进行编程。与HOST—LINK通信模式相比,在无协议通信模式下,PLC也可以主动发起通信。这样,当PLC的内部数据变化时,可以及时地向上位计算机传输数据,保证通信的实时性。

  PLC与计算机之间不使用统一的传输协议,因此,PLc与计算机之间的串行通信接口必须使用全握手方式进行连接(或称为硬件握手方式)。使用硬件握手进行通信时,双方端口必须使用实际线路进行连接。PLC与RFID控制器的接线如图1所示。

  CP1W-CIF11有一组DIP开关,共有8个,SW1表示是否使用终端电阻;SW2、SW3表示通信的连接方式:422或485;SW4为空;SW5、SW6表示通信时有无RS控制。在使用其之前,根据通信的要求对DIP开关进行设定:SW1为ON,使用终端电阻;SW2、SW3为OFF,使用422连接方式;SW5、SW6为任意。

  2. 无协议通信及其指令

  无协议通信,即不使用重试处理、不经过数据格式的转换处理及具有对应接收的数据进行处理分支等的顺序通信协议。在无协议且无转换的条件下,通过通信端口的输入输出指令(TXD,RXD)发送和接收数据。无协议通信过程十分简单,只需在PLC系统设定中将串行端口的串行通信模式设定为无协议通信。根据无协议通信,PLC就可以与带有RS-232端口或者RS-422/485端口的外部设备,按照TXD和RXD指令进行单方的发送(数据流从PLC到通用外部设备)和接收数据(数据流从通用外部设备到PLC)[2]。无协议通信的实现步骤如图2所示。

  使用无协议通信发送和接收消息时,开始代码及结束代码之间的数据用TXD指令来发送,或者是将要插入开始代码及结束代码之间的数据用RXD指令来接收。使用TXD指令发送数据时,应先将数据从I/O存储器读取后发送,使用RXD指令接收数据时,顺序恰恰相反。TXD/RXD发送和接收的数据量为256个字节。无协议通信时,发送和接收的数据的开始代码和结束代码由用户在PLC系统设定中指定。图3为欧姆龙CP1H型PLC无协议通信的指令结构。

  TXD指令根据由S指定的发送数据开头CH编号,对由N指定的发送字节长度的数据进行无变换操作。随着PLC系统设定为无顺序模式时的开始代码/结束代码的指定,由C的位8~11输出到指定的串行通信选装件版的串行端口(无顺序模式)。但是只能在发送准备标志(串行端口1:A392.13、串行端口2:A392.05)为ON时才能发送。能发送字节数为259字节(数据部256字节,包括开始代码、结束代码)。

  RXD指令在串行通信选装件板的串行端口(无顺序模式)中,从由D指定的接收数据保存开头CH编号开始,输出由N指定的相当于保存字节长度的接收结束数据。当接收结束数据不满由N所指定的保存字节长度时,输出实际存在的接收结束数据。但是当接收结束标志(串行端口1:A392.14、串行端口2:A392.06)为ON时,执行本指令来接收(来自接收缓冲器的)数据。接收可能字节数为259字节(数据部256字节,包括开始代码、结束代码)。

  3. RFID控制器及其命令集和数据传输协议

  V600系列RFID控制器拥有丰富的指令系统,共23条,可以非常灵活的应用于各种场合,其中包括通信命令、一般的通信子命令、主机命令等[3]。通信命令多用于执行与RFID标签的通信,例如,对静止或者是移动的RFID标签进行读写等。通信子命令一般用于取消某个命令的执行,而主机命令则用于主机设备控制 RFID控制器。在上位机与RFID 控制器通信过程中用到多的是通信命令,常用通信命令的代码及其功能如表1。

  在1:1的通信模式下,通信过程中不计算校验码,因此,只能通过响应代码来判断通信结果的正确性。图4给出了上位机与RFID控制器之间传输数据的格式。从上位机发送到RFID控制器的数据块为命令帧,反过来,从RFID控制器发送到上位机的数据块为响应帧。每个帧以指令代码开始,以结束符结束,响应帧中还包括反应执行结果的响应码。上位机与RFID 控制器之间可以传送十六进制或ASCII形式的数据,每一帧允许传送数据为271个字符。


  如果传送的数据大于271个字符,可以将数据分成起始帧、若干中间帧、结束帧进行传送。起始帧必须包含命令码,读/写头号,开始地址等,否则通信的过程中将会有错误发生。上位机每发送完一帧时,在收到RFID 控制器返回的分界符(即“↙”)后再发送下一帧,只有当结束帧数据发送完毕时才返回响应代码。

  4. PLC与RFID控制器无协议通信的实现

  4.1 CP1H通信端口设置

  PLC与RFID控制器之间使用RS-422方式进行通信。根据RFID控制器通信规格要求,使用欧姆龙编程软件CX-Programmer7.1将CP1H串口1模式设置为“RS-232C”,通信波特率设置9600,数据格式为7、2、E,如图5所示。

  4.2 RFID控制器参数设置

  RFID控制器通信参数设置应与PLC通信端口参数一致:波特率9600,偶校验方式,7位数据位,2位停止位。DIP开关SW6为ON,表示使用终端电阻。

  4.3 通信举例

  通过PLC与RFID控制器之间的通信,编程实现从RFID标签地址0100H开始的通道内读取四个数据,读取的数据存储到PLC的DM区内。根据通信数据传输格式,要发送的数据为RDA1001004*。将要发送的数据转化为16进制数“524441313030313030342A0D” ,存放到DM0开始的6个通道内。这6个通道对应值分别为:DM0:5244;DM1:4131;DM2:3030;DM3:3130;DM4:3034;DM5:2A0D。


  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!