Profinet工业以太网超高频RFID读写器|读卡器CK-UR12-E02,追随全球工控自动化和智能制造领域的技术,为国内智能制造、工业4.0、工业互联网、工业物联网、IIoT、云制造、工业机器人、自动化控制领域的RFID数据采集提供了设备上的保证与供应,避免国外产品的卡脖子或货期无法保证的尴尬。
为了让自动化工控人能更快上手此设备,本文将重点介绍此设备的RFID标签地址分配与操作流程。
1. RFID标签地址分配
标签的地址分配如表:
表 RFID标签数据地址分配表
RFU存储区地址 | Addr=0x0000(杀死密码高16位) | Addr=0x0001(杀死密码低16位) | 读写 |
Addr=0x0002(访问密码高16位) | Addr=0x0003(访问密码高16位) | ||
EPC存储区地址 | Addr=0x0100(CRC-16) | 只读 | |
Addr=0x0101(PC) | 读写 | ||
Addr=0x0102(EPC) | Addr=0x0103(EPC) | ||
Addr=0x0104(EPC) | … | ||
TID存储区地址 | Addr=0x0200 | Addr=0x0201 | 只读 |
Addr=0x0202 | … | ||
USER存储区地址 | Addr=0x0300 | Addr=0x0301 | 读写 |
Addr=0x0302 | … |
注:
●地址0x0300开始为USER存储区,实际大小与标签空间大小有关,用户可对该区域进行读写操作。
2. 操作流程
2.1、寻卡
CK-UR12-E02上电后的工作流程:
图 上电自动寻卡操作
2.2 读卡操作 0x03
例:如扫描到的标签EPC为:E2 00 30 98 06 18 00 51 11 90 A1 98,本例中对标签用户区地址0(0x0300)开始的四个寄存器(4个半字/8个字节)进行数据读取操作。
需要操作的寄存器如下:
表 操作指令0x03
操作指令:0x03 | |||
输入区(0x0000开始) | 输出区(0x8000开始) | ||
地址 | 含义 | 地址 | 含义 |
0x0000 | 操作控制 | 0x8000 | 系统信息 |
0x0001 | 操作命令 | 0x8001 | IO状态 |
0x0002 | 操作地址 | 0x8002 | EPC扫描数 |
0x0003 | 操作数量 | 0x8003 | 当前EPC(6 Word) |
0x0004 | 指定EPC(6 Word) | 0x8004 | 当前EPC(6 Word) |
0x0005 | 指定EPC(6 Word) | 0x8005 | 当前EPC(6 Word) |
0x0006 | 指定EPC(6 Word) | 0x8006 | 当前EPC(6 Word) |
0x0007 | 指定EPC(6 Word) | 0x8007 | 当前EPC(6 Word) |
0x0008 | 指定EPC(6 Word) | 0x8008 | 当前EPC(6 Word) |
0x0009 | 指定EPC(6 Word) | 0x8009 | 操作完成标志 |
0x000A | 输入数据区 | 0x800A | 操作状态 |
0x000B | 输入数据区 | 0x800B | 输出数据区 |
0x000C | … | 0x800C | … |
需要操作的寄存器如上表内的显示的寄存器,按例子往对应寄存器内填入数据,如下:
表 读卡操作
操作的寄存器 | 示例(HEX) |
操作命令 | 00 03 |
操作地址 | 03 00 |
操作数量 | 00 04 |
指定EPC | E2 00 30 98 06 18 00 51 11 90 A1 98 |
操作结束后,通过判断操作完成标志是否为1以及操作状态来判断操作的结果,成功则在输出数据区读取标签数据
CK-UR12-E02读卡流程如下:
图 CK-UR12-E02读卡操作流程
2.3 写卡操作 0x06
例:如扫描到的标签EPC为:E2 00 30 98 06 18 00 51 11 90 A1 98,本例中对标签用户区地址0(0x0300)开始的四个寄存器(4个半字/8个字节)进行数据写入操作,写入的数据为:01 02 03 04 05 06 07 08。
表 写卡指令0x06
写卡指令:0x06 | |||
输入区(0x0000开始) | 输出区(0x8000开始) | ||
地址 | 含义 | 地址 | 含义 |
0x0000 | 操作控制 | 0x8000 | 系统信息 |
0x0001 | 操作命令 | 0x8001 | IO状态 |
0x0002 | 操作地址 | 0x8002 | EPC扫描数 |
0x0003 | 操作数量 | 0x8003 | 当前EPC(6 Word) |
0x0004 | 指定EPC(6 Word) | 0x8004 | 当前EPC(6 Word) |
0x0005 | 指定EPC(6 Word) | 0x8005 | 当前EPC(6 Word) |
0x0006 | 指定EPC(6 Word) | 0x8006 | 当前EPC(6 Word) |
0x0007 | 指定EPC(6 Word) | 0x8007 | 当前EPC(6 Word) |
0x0008 | 指定EPC(6 Word) | 0x8008 | 当前EPC(6 Word) |
0x0009 | 指定EPC(6 Word) | 0x8009 | 操作完成标志 |
0x000A | 输入数据区 | 0x800A | 操作状态 |
0x000B | 输入数据区 | 0x800B | 输出数据区 |
0x000C | … | 0x800C | … |
需要操作的寄存器如上表内的显示的寄存器,按例子往对应寄存器内填入数据,如下:
表 写卡操作
操作的寄存器 | 示例(HEX) |
操作命令 | 00 06 |
操作地址 | 03 00 |
操作数量 | 00 04 |
指定EPC | E2 00 30 98 06 18 00 51 11 90 A1 98 |
输入数据区 | 01 02 03 04 05 06 07 08 |
CK-UR12-E02的写卡流程如下:
图 CK-UR12-E02写卡操作流程
2.4 获取所有标签 0x22
往操作命令中输入0x0022后,设备将会把该次扫描到的标签显示到输出数据区。操作结束后,操作完成标志位为0x2201,由于输出数据区容量有限,如果扫描的的标签过多,则50ms刷新一次输出数据区,操作状态位数据为“扫描标签总数(高字节)+当前显示数量(低字节)”,输出数据区数据则为“标签参数(序列(高字节)+EPC字节长度(低字节))+标签EPC数据”方式排列。
表 操作完成标志
操作完成标志 | |
高字节 | 低字节 |
操作指令0x22 | 完成为1,否则为0 |
表 操作状态
操作状态 | |
高字节 | 低字节 |
扫描标签总数 | 当前显示标签EPC数量 |
示例如下:
表 获取标签操作
序列 | 输入区(0x0000开始) | 输出区(0x8000开始) |
1 | IO输出控制 | 系统信息 |
2 | 22 | IO状态 |
3 | 操作地址 | EPC扫描数 |
4 | 操作数量 | 当前EPC(6 Word) |
5 | … | 当前EPC(6 Word) |
6 | … | 当前EPC(6 Word) |
7 | … | 当前EPC(6 Word) |
8 | … | 当前EPC(6 Word) |
9 | … | 当前EPC(6 Word) |
10 | … | 2201 |
11 | … | 0202 |
12 | … | 0112 |
13 | … | E000 |
14 | … | 1215 |
15 | … | 2D56 |
16 | … | 5646 |
17 | … | 4DE4 |
19 | … | 0212 |
20 | … | E201 |
21 | … | 354D |
22 | … | A125 |
23 | … | 0203 |
24 | … | 0D0F |
25 | … | 6A5F |
需要再次执行该指令时先把指令设为空闲命令,再设为该指令即可