工業RFID應用之技術篇(一):RFID讀寫器如何通過Modbus RTU與西門子PLC S7-1200進行通信
廣州晨控智能技術有限公司
如今的工業生產已經向著智能化、自動化發展,因此對設備之間的通信質量要求也越來越高,像是Modbus、Profinet、Canopen、Ethernet都是常用的通信協議。
而除了這些常用的通訊協議之外,我們還可以根據工程項目的需求來自定義協議(Free Procotol),為什么放著現成的不用而要去自定義呢?
開發過程中晨控系列高頻RFID讀卡器具備同時支持Modbus TCP和TCP/IP自定義協議的功能,使用Modbus TCP協議的好處是:大部分品牌的PLC都集成了該協議,用戶不需要關心底層數據結構,只需要直接調用相關的指令塊就能得到相應寄存器的數據,易連接,易調試,易維護。
但是對于一些使用PC開發上位機軟件、對自由度要求更高的用戶來說,當使用到的RFID數量不大,數據內容又比較固定的情況下,使用TCP/IP自定義協議就能編程更簡單,通訊效率更好,保密性更優秀。
用HTTP舉個簡單的例子,但是由于HTTP本身結構的設定,你必須將“請求方法"、“HTTP版本",“狀態碼"以及“header信息"等等一起發送出去。
這樣子整個消息加起來可能有幾十個字節,但實際對你有用的只有“0x11"這一個字節而已,使用Free Procotol就能盡可能的精簡從而節省帶寬,從而提高數據傳輸質量。
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,通訊協議集成了Modbus TCP和自由協議(Free Procotol)。
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 | (00 01 02 03 04) |
0x00心跳包:
若是發送:“81 C0 02 00 01 00 05"則可更改心跳定時器時間,“05"表示5秒收不到心跳包(3次收不到)則斷開連接。
上電連接后心跳包默認關閉,連接后上位機可發送心跳包打開心跳或調整心跳包定時器時間。
心跳包是上位機和讀卡器之間確定在線的方式,讀卡器每隔一段時間向上位機發送一個心跳包,同時啟動一個定時器,定時器結束前收到上位機的數據回復則刪除定時器,否則就斷開與上位機的連接。
0x01獲取讀卡器信息:
TX數據中:讀取讀卡器信息。
RX數據中:“43 6B 2D 46 52 30 38 2D 45 30 30 00 00 00 00 00"為產品名字,“56 32 2E 30 00 00 00 00 "為讀寫器軟件版本。
0x02讀取標簽UID碼:
TX數據中:讀取UID碼。
RX數據中:長度為“08 00"個字節的UID碼是“ 0A 20 A4 5F 50 01 04 E0"。
0x03讀電子標簽的數據區:
TX數據中:讀取標簽起始地址為0x00,長度為0x10=16個字節的數據區。
RX數據中:讀取到的16個字節為“0A 20 A4 5F 50 01 04 E0 11 22 33 44 55 66 00 44 "
0x04寫電子標簽的數據區:
行的TX數據中:將“11 22 33 44 55 66"寫入標簽起始地址0x08,長度6個字節的數據區。
第二行的RX數據中:讀卡器返回數據“00 00"表示寫入成功。
第三行的TX數據中:讀取標簽起始地址0x08開始的6個字節。
第四行的RX數據中:從標簽數據區讀取到的6個字節為“11 22 33 44 55 66",數據寫入正確。
如果要使用PLC來完成自由協議的命令發送,例如西門子可以使用TCON連接上位機進行組態,使用TSEND來發送數據,TRCV接收數據。
通過TCON指令連接設備
TCON指令塊“Properties(屬性)"> “Configuration(組態)">“Connection parameter(連接參數)"中設置連接的Partner地址,TSEND“DATA"用以儲存發送的數據,TRCV“DATA"儲存從Partner處收到的數據。
通過TSEND通信連接發送數據
通過TRCV通信連接接受數據
支持自定義協議的RFID高頻讀寫器優勢:
1、適用性強,擴展性好:用戶可根據現場項目需求編寫自定義協議,針對性完善,調試方便,語義明確,如果以后需要修改協議,和老的客戶端兼容性比較好
2、提高通信質量,提升生產效率:我們使用自定義的通訊協議可以減少不必要的數據產生,數據比較小,速度快,可以減輕通訊的負擔,性能會比使用復雜的通訊協議更好。
3、安全性好,保密性強:非協議,數據通信更安全,如果要分析協議的漏洞就必須先破譯你的通訊協議,有效保護客戶數據信息。
更多關于TCP/IP通訊的技術和RFID高頻讀寫器的應用與問題解決方案請關注微信公眾號或者登陸晨控查詢,晨控智能期待您的咨詢與合作。