AGV机器人RFID传感器CK-G06A与西门子1200PLC应用手册
时间:2022-11-18 03:30:00
AGV机器人RFID传感器CK-G06A基于射频识别技术的低频RFID标签传感器工作频率为125KHZ,同时支持对EMID,FDX-B读取两个格式标签。射频部分通信协议集成在传感器内,用户只需通过RS在不了解复杂射频通信协议的情况下,232通信接口接收数据可以完成标签的读取操作,CK-G06A型号的为RS485通讯接口。
传感器自带Auto-turning在不同的环境下工作时,自动调整电路参数,使外部环境对读卡距离的影响最小化,进一步提高自身的抗干扰能力, 具有接收灵敏度高、性能稳定、可靠性强等特点。
可广泛应用于物流、仓储管理、过程控制等领域,AGV现场控制等领域的机器人。
本文将重点介绍AGV机器人RFID传感器CK-G06A与西门子1200 PLC应用与调试!
一、CK-G06A通信连接
1、接线说明
CK-G06A接线说明:
VCC -- 读卡器24V电源
GND -- 读卡器0V
A -- RS485通信口A线
B -- RS485通信口B线
2、通信格式
通信接口:RS485
起始位:1个
数据位:8个
奇偶校准位置:没有
停止位:1个
波特率:9600
输出编码格式:ASCII码
3、数据格式
同时支持传感器EMID和FDX-B信号输出数据格式如下:
【起始码】 【标签类型码】 【十进制卡号】 【RCC校验】 【结束码】
【起始码】 :一个字节,字符$’
标签类型码:一个字节,E’为EMID,’F’为FDX-B
【十进制卡号】:15字节,前3字节为国家代码,后12字节为卡号(高位在前)
【RCC校验】 :两个字节,高位在前,低位在后,是前16个字节的异或值(不包括起始符 $’)
【结束码】 :一个字节,字符##
备注:EMID为10位数据编码格式,FDX-B为15位数据编码格式。
1、 传感器输出 $E07300123456789070#”, ’E是标签类型码,其中 073是国家代码, 00是补零数据, 1234567890”为EMID格式编码数据,70是异或值
2、 传感器输出传感器输出$F91800001234678972#”,’F是标签类型码, 以9180001234789为标签编码数据, 七二是异或值;
二、编程
1、硬件选型
PLC:西门子1211C AC/DC/RLY(6ES7211-1BE40-0XB0)
通信模块:西门子CB 1241 RS485 (6ES7241-1CH30-1XB0)
读卡器:CK-G06A
2、软件选型
编程组态软件:TIA Portal V14 SP1
PLC固件版本:V4.2
通信模块固件版:V1.0
3、组态
3.1、 PLC选型
3.2.选择通信模块
4、参数配置
4.1、通信格式设置
选择设备视图CB1241通信板 右键选择属性 点击常规选项IO-Link 将其内部属性调整到和和CK-G06A属性一致即可
4.2.接收开始帧
展开组态收到的消息 点击消息开始 从任何字符开始 以特殊条件开始 选择从单个字符识别消息开始 24填写新闻开始字符(16进制) (16进制24ASCII代表字符的是$号)
4.3、接收结束帧
在消息结束的选项框中 选中消息超时识别消息结束 然后在下面的消息超时框中填写50(该值可根据自己的实际情况进行调整)
然后移动到下面的5字符消息结束序列 首先通过字符序列检查上面的识别信息 然后检查字符1 填23(16进制23)ASCII码内为#号)
5、程序编写
先加一个FB和DB块重命名它
在项目树中选择新建的DB块 右键选择属性 选择弹出窗口中的属性 将优化的块访问取消勾选 点击确定
本例程中主要使用的功能指令 通信→通信处理器→点到点 和 扩展指令→字符串 字符
先放一个PORT_CFG功能块,该功能块主要是初始通信模块的参数,具体含义可选F1查看。
写完初始化功能块后,可以读取操作,放入一个RCV_PTP功能块。
我们主要关注这里BUFFER这里不能使用参数String数据类型。
P#DB3.DBX34.0 BYTE 32代表的是 从DB3程序块内第34个Byte的第0位开始的32BYTE
这里指向的是ReadHex里的32Byte用做接收BUFFER的缓存
程序段3是将数据拷贝到出去准备进行异或校验,并去除掉帧头$帧尾#。
ReadNdr为1时代表成功读取到数据
程序段4是获取数据帧中最后那两位RCC校验的值
先从16进制的ASCII码转换成String字符串,再从字符串型转换成16进制,这样就由0X31,0X37转成了0X17
接收完成标志位=TRUE的时候
给RccCheck清零
再FOR 循环15次
RccCheck异或ReadRCC数组进行计算
最后再把ReadOK给复位
最后得出来的RccCheck值就是最后的的RCC校验值
将计算出来的RCC值与帧内的RCC值进行对比,一致的话说明传输过程中没有错数据。
再判断帧内FDX与EMID格式,将标志位置为不同的状态,再用上面用过的方法将ASCII码转成16进制进行输出,高位转换出来的时候由于只有7位所以要右移一下。
例:从1230_0450变为0123_0045
注:在该程序中EMID格式的中间两位00对应用没有造成影响,故不去除。各位可根据自己的实际情况将两位补偿的00给剔除掉。
在主函数内将其如图所示使用
REQ :使能端
ID :硬件标识符
EmidOrFdx :卡片格式判断 SET: EMID格式 RESET: FDX-B格式
OutDataL :卡片数据低位
OutDataH :卡片数据高位