Ethernet/IP(以太網工業協議)是一種基于標準以太網架構的工業通信協議,廣泛應用于自動化和控制系統中。它結合了TCP/IP協議和CIP(通用工業協議)標準,提供高速、可靠的數據傳輸,支持各種工業設備之間的實時通信。由于Ethernet/IP兼容現有的以太網硬件和網絡,企業能夠在不需要專用硬件的情況下,實現工業設備間的互聯互通,提升生產效率和系統可靠性。
OpENer 是用于 I/O 適配器設備的 EtherNet/IP 堆棧;支持多個 I/O 和顯式連接;包括用于制作符合以太網/IP 規范中定義并由 ODVA 發布的 EtherNet/IP 兼容產品的對象和服務。
在本示例中將使用已經適配的OpENer軟件包來實現Ethernet/IP通訊。
前期準備
軟件環境:
CODESYS(Ethernet/IP通信模擬)
CODESYS
CODESYS Gateway(網關設備)
CODESYS Control Win SysTray(軟PLC設備)
Npcap(該軟件是運行CODESYS必須的,需要提前安裝好?。?/p>
硬件環境:
EtherKit開發板
FSP配置
打開工程配置文件configuration.xml,新增r_gamc Stack:
點擊g_ether0 Ethernet,配置中斷回調函數為user_ether0_callback:
下面配置phy信息,選擇g_ether_phy0,Common配置為User Own Target;修改PHY LSI地址為1(根據原理圖查詢具體地址);設置phy初始化回調函數為
ether_phy_targets_initialize_rtl8211_rgmii();同時設置MDIO為GMAC。
配置g_ether_selector0,選擇以太網模式為交換機模式,PHY link設置為默認active-low,PHY接口模式設置為RGMII。
網卡引腳參數配置,選擇操作模式為RGMII:
ETHER_GMAC配置:
RT-Thread Settings 配置
雙擊打開 RT-Thread Settings,在搜索欄檢索OpENer軟件包并使能,下面是相關用戶配置信息說明;
下面我們還需要配置禁用dhcp功能并使用靜態IP,點擊組件->使能lwip堆棧,選擇禁用DHCP;
完成上述配置后,將程序編譯下載至開發板。
網絡配置
我們使用一根網線連接開發板與PC,同時在PC端配置靜態IP:
軟PLC啟動
CODESYS簡介:CODESYS是德國3S公司開發的PLC軟件,集成了PLC邏輯、運動控制、組態顯示等功能。CODESYS,全稱為“Controller Development System”,是一種基于 IEC 61131-3 標準的工業自動化編程工具。它不僅支持多種編程語言(如梯形圖、結構化文本、功能塊圖等),還提供了豐富的庫和功能模塊,幫助工程師快速開發和調試 PLC(可編程邏輯控制器)和工業控制系統。CODESYS 的靈活性和強大功能使其成為工業自動化領域廣泛使用的開發平臺。
CODESYS創建標準工程
請確保已安裝CODESYS軟件,安裝之后下面這三個是我們需要用到的軟件:
CODESYS V3.5 SP20 Patch 3:Ethernet/IP通信模擬
CODESYS Gateway V3:網關設備
CODESYS Control Win V3 -x64 SysTray:軟PLC設備
首先打開 CODESYS V3.5 SP20 Patch 3,依次選擇 -> 新建工程 -> Projects -> Standard project ,配置工程名稱及位置后點擊確定:
彈出下面這個彈窗后保持默認配置(CODESYS Control Win V3 (CODESYS) / x64 (CODESYS))點擊確定:
注意:如果您購買了CODESYS Control RTE SL,可選擇設備:CODESYS Control RTE V3 (CODESYS) / x64 (CODESYS),正常評估用途可選擇不安裝此擴展包,選擇 CODESYS Control Win V3 (CODESYS) / x64 (CODESYS) 設備創建即可。
創建成功后就可以看到主界面了:
Gateway 及 軟PLC 啟動
依次打開下面兩個軟件:
CODESYS Gateway V3(右鍵 Start Gateway)
CODESYS Control Win V3 -x64 SysTray(右鍵 Start PLC)
回到 CODESYS 主站軟件,雙擊 Device(CODESYS Control Win V3 x64) -> 通信設置 -> 掃描網絡:
彈出設備用戶登錄窗口后,配置用戶名和密碼(用戶自定義):
檢查網關設備及軟PLC設備是否在線:
Ethernet/IP EDS文件添加
它包含了有關設備的詳細信息,包括設備類型、支持的服務、輸入輸出的定義、參數設置、設備的狀態和配置選項等。
本項目的EDS文件位于如下路徑:
..\packages\OpENer_port-latest\eds_file
選擇設備存儲庫安裝描述文件,選擇上述路徑下的 opener_sample_app.eds 文件。
安裝成功后可以看到 OpENer PC 從站描述文件:
設備添加
Ethernet添加:左側導航欄點擊Device并右鍵添加設備,選擇以太網適配器;
EtherNet/IP掃描器添加:右鍵左側導航欄中的Ethernet,選擇EtherNet/IP Scanner
EtherNet/IP總線設備添加:右鍵左側導航欄中的 EtherNet/IP Scanner,選擇 OpENer PC
任務響應
保持默認配置即可。
網絡配置
Ethernet 配置:雙擊左側導航欄中的Ethernet(Ethernet) -> 通用,修改網絡接口為連接到開發板的以太網端口;
EtherNet/IP總線設備網絡配置:雙擊左側導航欄 OpENer_PC(OpENer PC) -> 通用->地址設置, 修改IP參數為開發板IP。
EtherNet/IP線程應用啟動
開發板端上電后,一旦檢測到網卡 link up,則會自動啟動 OpENer線程:
工程編譯并啟動調試
step1:工程上方導航欄選擇 編譯-> 生成代碼
step2:選擇 在線 -> 登錄
step3:點擊 調試 -> 啟動
此時就可以看到 EtherNet/IP Scanner已經正常運行了:
PLC編程及CIP IO控制
首先我們點擊左側面板的Device->PLC邏輯->Application->PLC_PRG(PRG),使用ST語言編程,編寫變量及程序代碼:
變量定義:下面這段變量中包含兩個關鍵變量:Board_SW_Input(按Bit位標識控制器板載按鍵陣列)和Board_LED_Output(按Bit位標識控制器板載LED)。
程序定義:這段代碼的功能是:根據Board_SW_Input的每一位的狀態,設置Board_LED_Output的相應位。具體來說:
如果Board_SW_Input的某一位為1,則對應的Board_LED_Output的該位為1。
如果Board_SW_Input的某一位為0,則對應的Board_LED_Output的該位為0。
通過循環遍歷所有8個位,實現了將輸入的每一位狀態映射到輸出的每一位。
工程中的配置位置如下圖所示:
由于加載eds文件后默認只會顯示一個連接配置(Board LED Exclusive Owner),我們還需要將eds內置的另外一個配置加載出來,點擊左側菜單欄選擇OpENer_PC(OpENer PC)->連接,點擊添加連接…,并選擇Board SW Input Only。
接下來點擊Ethernet/IPI/O映射,這里我們需要把前面定義的ST變量映射到此處的變量中,將Board_LED_Output映射到通道:Board LED Output Data;Board_SW_Input映射到通道:Board SE Input Data。
接著我們點擊上方導航欄的編譯->生成代碼,然后選擇在線->登錄,此時便可動態觀察程序運行狀態,例如我們按住etherkit開發板上的KEY1,可以發現板載LED0(紅燈)處于滅燈狀態,當我們松開KEY1,LED0保持常亮;按住開發板的KEY2,板載LED2(綠燈)處于滅燈狀態,松開KEY2,LED2保持常亮。
同時在OpENer_PC(OpENer PC)->EtherNet/IPI/O映射也可以觀察Bit位的當前值,當對應按鍵的Bit位為TRUE時,即代表按鍵按下,同時對應的Bit位LED亮起,并顯示當前值為TRUE:
-
Ethernet IP
+關注
關注
0文章
40瀏覽量
5597 -
工業通信
+關注
關注
0文章
151瀏覽量
15784 -
RT-Thread
+關注
關注
32文章
1372瀏覽量
41565
發布評論請先 登錄
國民技術攜手RT-Thread共同推進MCU與RT-Thread操作系統廣泛適配
國民技術與睿賽德科技(RT-Thread)簽署會員合作協議
RT-Thread全球技術大會:RT-Thread開源重塑軟件發展新生態

RT-Thread全球技術大會:RT-Thread Smart更好的兼容Linux生態

RT-Thread全球技術大會:RT-Thread構建配置系統

RT-Thread全球技術大會:Kconfig在RT-Thread中的工作機制

RT-Thread Studio如何測試Ethernet連網

新書發布——《實時操作系統應用技術:RT-Thread與ARM編程實踐》

2024 RT-Thread 全球技術大會演講議程發布!

評論