如何用EtherNet/IP網關實現Superisys RFID與施耐德PLC的無縫通訊?
日期:2025-10-20 17:07:57
摘要:EtherNet/IP作為工業自動化領域的“通用語言”,近年來在Profinet、EtherCAT的夾擊下為何能逆勢增長?本文將以Superisys RFID與施耐德M241 PLC的通訊為例,拆解其協議優勢與落地實踐。
1、EtherNet/IP的“上位史”
背景:由ODVA與ControlNet國際聯合開發,基于CIP協議,美國的工控設備制造商Rockwell/Allen-Bradley已經圍繞EtherNet/IP進行了標準化,其他廠商如日系Omron也在其設備上支持了EtherNet/IP,EtherNet/IP已經變得越來越受歡迎。
優勢:兼容標準以太網硬件,支持實時I/O和數據交換,比傳統現場總線更開放。
2、Superisys網關的硬核實力
雙M12總線接口+4路RFID讀寫頭,支持Profinet/EtherCAT/EtherNet/IP三協議自由切換,堪稱工業界的“多面手”。
IP67防護+3000W浪涌保護,在汽車廠噴涂車間的實測中抗住了油污和高壓水槍沖洗。
3、與施耐德M241 PLC的配置要點
步驟:通過Studio 5000添加EDS文件,設置CIP連接路徑,標簽映射避免數據沖突。
避坑:注意RFID讀寫頭的響應時間需匹配PLC掃描周期,否則可能丟包。
01? 組態網關設備?
1.1 總線網關EDS文件安裝
打開施耐德Somachine軟件,打開例程程序,在“工具”欄下方選擇“設備庫”選項,一次選擇“現場總線”下的“Ethernet/IP從設備”,點擊右邊“安裝”按鈕,選擇EDS文件的相應文件夾,選中所需安裝的EDS文件,如下圖所示:

點擊“打開”,即可完成EDS文件的安裝。
1.2 總線網關設備組態
★ 在右邊設備樹下選擇“Ethernet_1”下的“工業以太網管理器”,右鍵選擇“添加設備,在彈出的對話框中選擇“IACM-P4-EIP”設備,雙擊該設備或點擊對話框下方欄的“添加設備”即可成功添加總線網關設備,如下圖所示:

★ 雙擊“IACM-P4-EIP”設備,分別配置總線網關設備的通訊參數,如下圖所示,分別配置設備的IP地址、連接通道參數、IO映射等。
IP地址參數配置:

連接通道參數配置:

IO映射參數配置:

設置完成,編譯好點擊“保存”即可。
1.3 EIP總線網關IP地址設置
★ 使用總線網關助手軟件,點擊“工具”欄下的“網關搜索器”,點擊搜索(“IACM-P4-EIP”設備),雙擊搜索出來的網關設備,修改IP地址(192.168.1.10),點擊設置,重啟后生效,完成EtherNet/IP從站設備(網關)的IP設置,如下圖所示:

02?功能塊介紹及使用?
打開“EIPGateway_Demo_128V1.1”例程程序。
2.1 網關RFID通道的變量映射
參照3.1.2中的IO映射配置,在“GVL”全局變量下關聯總線網關的IO映射,如下圖所示:

2.2 RFID讀寫程序介紹
提供的程序:
調用程序:“POU”—— RFID功能程序調用;
功能塊:RFIDIODATA_MOVE——總線網關各RFID端口IO地址映射處理
功能塊:“RFID_RW”—— RFID讀寫功能處理;
2.3 RFID功能塊引腳說明
一個“RFIDIODATA_MOVE”功能塊實例調用對應一個總線網關(4個RFID通道),功能塊圖形如下:

★ 功能塊引腳說明
每個功能塊實例對應一個總線網關,功能塊引腳定義及功能如下:
輸入引腳定義解析:

輸出引腳定義解析:

一個“RFID_RW”功能塊實例調用對應一個端口通道的讀寫頭,功能塊圖形如下:

★ 功能塊引腳說明
每個功能塊實例對應一個總線網關,功能塊引腳定義及功能如下:
輸入引腳定義解析:

輸出引腳定義解析:

xRead,xWrite兩個信號互斥,同一時間只能有一個信號為高電平,功能塊只會執行第一個檢測到的有效信號。
03?讀寫頭讀/寫功能示例?
3.1命令執行時序
★ 載碼體ID讀取
調用RFID讀寫功能塊后,默認保持RFID使能。當讀寫頭感應到載碼體的在位信號(xTP)的上升沿是,自動上傳載碼體ID數據,當載碼體離開讀寫頭感應區域時,載碼體ID數據自動清空,具體的時序如下圖所示:

★ 命令執行
在執行讀寫載碼體內存數據命令時,需要先填寫好讀寫的參數(讀寫載碼體內存的起始地址,字節長度,寫入的數據填充區數據內容等),然后再觸發讀寫命令,具體的命令執行時序如下圖所示:

在xRead/Write執行過程中,在未收到(xRead/WriteDone、xRead/WriteError)信號時,請不要手動復位xRead/Write信號,也建議用xTP信號去替代xRead信號進行自動讀取觸發。
3.2讀UID數據區
a) 載碼體靠近讀寫頭,讀寫頭自動感應載碼體,載碼體到位信號“xTP”變為“TRUE”;
b) arrUIDData[0] – arrUIDData[7] 自動獲取所靠近載碼體的UID數據,固定長度8個字節;
備注:UID數據出廠時設定,可讀不可寫,數據序列是唯一的;
3.3 寫USER數據區
寫入數據至載碼體
當載碼體靜止在讀取范圍時,通過寫入功能可以向一個載碼體指定的地址寫入特定長度的數據。命令的執行以”xWrite”高電平開始,在命令執行前,需要填寫以下參數:

寫入操作步驟如下:
a)載碼體靠近到位,載碼體到位信號xTP信號的值為“1”;
b)在arrwriteData數組中填充數據要寫入的數據;
c)載碼體到位,載碼體到位信號xTP信號的值為“TRUE”;
d)修改數據長度iWriteLength的值8,單位為字節;
e)修改起始地址wWriteAddress的值為16#0000;
f)在arrWriteData數組中填充要寫入的數據”
g)修改寫入命令xWrite 為 “1”;
h)查看功能塊反饋回來的完成信號xWriteDone和錯誤信號xWriteError。
3.4讀USER區
從載碼體讀取數據
當載碼體在讀取范圍時,通過讀取功能可從載碼體指定起始地址讀取特定長度的數據。命令的執行以”xRead”高電平開始,在命令執行前,需要先填充部分引腳參數:

讀取操作步驟如下:
a)載碼體到位,載碼體到位信號xTP信號的值為“TRUE”;
b)修改數據長度iReadLength的值為8,單位為字節;
c)修改起始地址wReadAddress的值為16#0000;
d)修改寫入命令xRead 為 “1”(必須先復位xWrite信號);
e)查看功能塊反饋回來的完成信號xReadDone和錯誤信號xReadError;
f)xReadDone信號置位后可在arrReadData數組中查看讀取的數據內容。
04?錯誤碼?
4.1 錯誤碼詳細定義
讀寫頭自定義錯誤碼(命令執行錯誤時):

功能塊自定義錯誤碼:

討論 :
- 你認為EtherNet/IP未來會被TSN(時間敏感網絡)取代嗎?
- 實際項目中遇到過哪些協議兼容性問題?