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

RT-Thread全球技術(shù)大會(huì):螢石研發(fā)團(tuán)隊(duì)使用RT-Thread的技術(shù)挑戰(zhàn)

2022 RT-Thread全球技術(shù)大會(huì):螢石EZIOT SDK對(duì)RT-Thread的支持

RT-Thread全球技術(shù)大會(huì):RT-Thread Smart更好的兼容Linux生態(tài)

RT-Thread全球技術(shù)大會(huì):RT-Thread構(gòu)建配置系統(tǒng)

RT-Thread全球技術(shù)大會(huì):Kconfig在RT-Thread中的工作機(jī)制

RT-Thread全球技術(shù)大會(huì):在RT-Thread上編寫(xiě)測(cè)試用例

RT-Thread全球技術(shù)大會(huì):RT-Thread測(cè)試用例集合案例

RT-Thread全球技術(shù)大會(huì):RT-Thread對(duì)POSIX的實(shí)現(xiàn)情況介紹

RT-Thread Studio如何測(cè)試Ethernet連網(wǎng)

新書(shū)發(fā)布——《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實(shí)踐》

2024 RT-Thread 全球技術(shù)大會(huì)演講議程發(fā)布!

評(píng)論