工业RFID应用之技术篇三巧用TCPIP自定义协议提高RFID读卡器通讯效率.docx
《工业RFID应用之技术篇三巧用TCPIP自定义协议提高RFID读卡器通讯效率.docx》由会员分享,可在线阅读,更多相关《工业RFID应用之技术篇三巧用TCPIP自定义协议提高RFID读卡器通讯效率.docx(9页珍藏版)》请在冰豆网上搜索。
工业RFID应用之技术篇三巧用TCPIP自定义协议提高RFID读卡器通讯效率
工业RFID应用之技术篇(三):
巧用TCP/IP自定义协议提高RFID读卡器通讯效率
如今的工业生产已经向着智能化、自动化发展,因此对设备之间的通信质量要求也越来越高,像是Modbus、Profinet、Canopen、Ethernet都是常用的通信协议。
而除了这些常用的通讯协议之外,我们还可以根据工程项目的需求来自定义协议(FreeProcotol),为什么放着现成的不用而要去自定义呢?
开发过程中晨控系列高频RFID读卡器具备同时支持ModbusTCP和TCP/IP自定义协议的功能,使用ModbusTCP协议的好处是:
大部分品牌的PLC都集成了该协议,用户不需要关心底层数据结构,只需要直接调用相关的指令块就能得到相应寄存器的数据,易连接,易调试,易维护。
但是对于一些使用PC开发上位机软件、对自由度要求更高的用户来说,当使用到的RFID数量不大,数据内容又比较固定的情况下,使用TCP/IP自定义协议就能编程更简单,通讯效率更好,保密性更优秀。
用HTTP举个简单的例子,但是由于HTTP本身结构的设定,你必须将“请求方法”、“HTTP版本”,“状态码”以及“header信息”等等一起发送出去。
这样子整个消息加起来可能有几十个字节,但实际对你有用的只有“0x11”这一个字节而已,使用FreeProcotol就能尽可能的精简从而节省带宽,从而提高数据传输质量。
OSI是国际标准化组织ISO为了更好地促进互联网络的研究和发展,制定网络互连的七层框架的一个理论参考模型,称为开放系统互连参考模型,简称OSI。
目前还没有完全合乎OSI的通信协议问世,而TCP/IP则是我们实际应用最广泛的一种网络的模型。
TCP/IP网络模型对应OSI参考模型
自定义协议工作于TCP/IP模型的应用层,基于TCP协议开发,因为省略了很多不必要的数据结构,比起其它应用层通信协议更加简洁,高效,更加满足RFID高频读写器通讯要求。
OSI和TCP/IP的模型具体细节暂且不表,我们先从实际应用来了解自定义协议
设备:
晨控CK-FR08-E00高频读写器
PC系统Windows10
CK自由协议测试工具V1.1
CK-FR08-E00使用M12标准电缆插头,通过以太网连接到PC或PLC,通讯协议集成了ModbusTCP和自由协议(FreeProcotol)。
CK高频读写器E00系列在生产中已经写入了我司编写的自由协议,用户在使用时只需对上位机组态即可与RFID高频读写器通讯。
为测试方便,现在我们在PC机上运行“自由协议测试工具V1.1”测试自由协议是否能够配合读写器正常读写数据。
CK-FR08-E00对自由协议命令的支持如下:
0x00---心跳包
0x01---获取设备信息
0x02---获取电子标签UID
0x03---读电子标签的数据区
0x04---写电子标签的数据区
电子标签数据总线是16位,每次操作必须是2个字节并且地址是双字节偏移如:
0、2、4等,标签的UID码地址(只读):
0x00、0x02、0x04、0x06,用户数据区(可读写):
0x08、0x0A、0x0C、0x0E等。
协议结构:
定义
帧头1
帧头2
消息帧序列ID
消息类型ID
数据长度(16位)
数据内容
描述
0X81
0XC0
每次发送加1
(0001020304)
0x00心跳包:
若是发送:
“81C00200010005”则可更改心跳定时器时间,“05”表示5秒收不到心跳包(3次收不到)则断开连接。
上电连接后心跳包默认关闭,连接后上位机可发送心跳包打开心跳或调整心跳包定时器时间。
心跳包是上位机和读卡器之间确定在线的方式,读卡器每隔一段时间向上位机发送一个心跳包,同时启动一个定时器,定时器结束前收到上位机的数据回复则删除定时器,否则就断开与上位机的连接。
0x01获取读卡器信息:
TX数据中:
读取读卡器信息。
RX数据中:
“436B2D465230382D4530300000000000”为产品名字,“56322E3000000000”为读写器软件版本。
0x02读取标签UID码:
TX数据中:
读取UID码。
RX数据中:
长度为“0800”个字节的UID码是“0A20A45F500104E0”。
0x03读电子标签的数据区:
TX数据中:
读取标签起始地址为0x00,长度为0x10=16个字节的数据区。
RX数据中:
读取到的16个字节为“0A20A45F500104E01122334455660044”
0x04写电子标签的数据区:
第一行的TX数据中:
将“112233445566”写入标签起始地址0x08,长度6个字节的数据区。
第二行的RX数据中:
读卡器返回数据“0000”表示写入成功。
第三行的TX数据中:
读取标签起始地址0x08开始的6个字节。
第四行的RX数据中:
从标签数据区读取到的6个字节为“112233445566”,数据写入正确。
如果要使用PLC来完成自由协议的命令发送,例如西门子可以使用TCON连接上位机进行组态,使用TSEND来发送数据,TRCV接收数据。
通过TCON指令连接设备
TCON指令块“Properties(属性)”>“Configuration(组态)”>“Connectionparameter(连接参数)”中设置连接的Partner地址,TSEND“DATA”用以储存发送的数据,TRCV“DATA”储存从Partner处收到的数据。
通过TSEND通信连接发送数据
通过TRCV通信连接接受数据
支持自定义协议的RFID高频读写器优势:
1、适用性强,扩展性好:
用户可根据现场项目需求编写自定义协议,针对性完善,调试方便,语义明确,如果以后需要修改协议,和老的客户端兼容性比较好
2、提高通信质量,提升生产效率:
我们使用自定义的通讯协议可以减少不必要的数据产生,数据比较小,速度快,可以减轻通讯的负担,性能会比使用复杂的通讯协议更好。
3、安全性好,保密性强:
非知名协议,数据通信更安全,黑客如果要分析协议的漏洞就必须先破译你的通讯协议,有效保护客户数据信息。