PROFINET是由PI推出的開放式工業(yè)以太網(wǎng)標準,它使用TCP/IP等IT標準,并由IEC 61158和IEC 61784 標準化,具有實時功能,并能夠無縫集成到現(xiàn)場總線系統(tǒng)中。憑借其技術的開放性、靈活性和性能優(yōu)勢,PROFINET可應用于過程/工廠自動化、運動控制等領域。通過PROFINET,可實現(xiàn)確定性響應、微秒級硬實時能力和集成診斷功能,是工業(yè)4.0通信的理想基礎。
01/
虹科PROFINET協(xié)議棧與GOAL中間件
虹科PROFINET協(xié)議棧可用于從站設備開發(fā),符合一致性Class A與Class B并滿足實時等級Class 1,擁有低資源消耗、可用和不用操作系統(tǒng)、高度可移植性等優(yōu)勢,能夠為符合PROFINETIO的通信提供所有必需的服務。
虹科PROFINET協(xié)議棧可以在單核或者雙核中運行,且內核都具有開放抽象層(GOAL)。GOAL中間件提供了一個統(tǒng)一的平臺,用于快速輕松地集成工業(yè)以太網(wǎng)協(xié)議,例如帶有MRP的PROFINET、包括DLR的EtherNet/IP、EtherCAT等協(xié)議,以及未來的PROFINET CC-D TSN和CC-Link IE TSN。GOAL還提供了一個OPC UA擴展,可標準化對工業(yè)環(huán)境中機器、設備和其他系統(tǒng)的訪問。
當在Linux設備上使用虹科PROFINET協(xié)議棧和GOAL時,運行應用程序的以太網(wǎng)接口的IP設置將在啟動時重置,這將導致在 Linux 設備上運行的任何其他基于 IP 的服務(如 Web 服務器或SSH 控制臺)無法訪問。該問題產(chǎn)生的原因是PROFINET設備的定義行為,本文將介紹如何使用Linux網(wǎng)絡命名空間來解決此問題,因此,一個簡單的Web服務器將在虹科PROFINET協(xié)議棧使用的物理接口之上命名的虛擬以太網(wǎng)接口上運行。
02/
如何設置Linux網(wǎng)絡命名空間
Linux具有豐富的虛擬網(wǎng)絡功能,可用作托管VM和容器以及云環(huán)境的基礎。Linux網(wǎng)絡命名空間允許在物理設備上運行多個虛擬以太網(wǎng)接口。此技術被虛擬機和容器等虛擬化技術廣泛使用。
設置Linux網(wǎng)絡命名空間,首先需要創(chuàng)建一個新的虛擬以太網(wǎng)接口,并在物理設備和虛擬以太網(wǎng)接口之間建立連接。
請注意,以下命令需要使用相應的管理員權限運行。
這可以使用 IP 工具實現(xiàn):
ip link add link type macvlan mode bridge
因此,如果我們想把虛擬接口webserv0連接到物理接口eth0,那么命令就是:
ip link add webserv0 link eth0 type macvlan mode bridge
下一步,我們創(chuàng)建一個新的命名空間,該命名空間將位于:webserv0
ip netns add
在此示例中,我們將命名新的命名空間:webserver
ip netns add webserver
現(xiàn)在我們需要向屬于新命名空間的 Linux 內核發(fā)出信號:webserv0
ip link set netns
對于我們的示例,這將產(chǎn)生以下行:
ip link set webserv0 netns webserver
此時需要為虛擬接口設置 IP 地址并啟動它。由于虛擬接口現(xiàn)在僅在新命名空間中可見,因此我們必須使用以下命令:ip netns exec
ip netns exec
使用此示例的值,命令為:
ip netns exec webserver ip addr add 192.168.11.223/24 dev webserv0ipnetnsexecwebserveriplinksetupwebserv0
為簡單起見,我們使用 Python 3.4 及更高版本提供的簡單 HTTP 服務器。現(xiàn)在可以使用以下命令啟動此服務器:
ip netns exec webserver python3 -m http.server 8082 --bind 192.168.11.223
網(wǎng)絡服務器可以通過 http://192.168.11.223:8082 訪問,獨立于底層物理接口eth0的IP設置。
PROFINET應用程序現(xiàn)在可以像往常一樣在物理接口上啟動,例如:eth0
./goal_linux_x64.bin -i eth0
完整的腳本如下所示:
#!/bin/baship link add webserv0 link eth0 type macvlan mode bridgeip netns add webserverip link set webserv0 netns webserverip netns exec webserver ip addr add 192.168.11.223/24 dev webserv0ip netns exec webserver ip link set up webserv0ipnetnsexecwebserverpython3-mhttp.server8082–bind192.168.11.223
總結
在本篇文章中,我們介紹了Linux網(wǎng)絡命名空間的設置,并解釋了如何使用該方法提供獨立于底層物理接口工作的虛擬以太網(wǎng)接口。這允許在與基于IP的服務(如Web服務器或SSH控制臺)相同的物理設備上運行PROFINET設備等應用程序。
對于資源有限的設備,虹科PROFINET協(xié)議棧的高度可擴展性優(yōu)勢十分明顯。對于使用Linux設備的用戶來說,使用虹科PROFINET協(xié)議棧方案可放寬對MCU的要求,國產(chǎn)方案也可以使用。
目前已支持以下平臺:
虹科PROFINET協(xié)議棧
? Generic Linux
?Generic Linux with port Switch Interface
?ST NUCLEO-144 STM32F4
?Raspberry PI & CM4 Linux
?Renesas RZN1D (on RZN1-CM3 with interface to A7)
?Renesas RZN1L
?Renesas RZN1S (on RZN1-CM3 with interface to A7)
?Renesas RZT1 (on RZN1-CM3 with interface to R4F)
?ST STM32 using Cube Libraries (F4 and above)
?ST STM32 using Cube Libraries (F4 and above) with switch interface
?Renesas SYNERGY S7G2SK ThreadX
?TI TIVA TM4C129
?RENESAS RZ/T2
?RENESAS RZ/N2
目前已通過以下控制器的測試:
虹科PROFINET協(xié)議棧(CC-A/RT1)
? 博世力士樂IndraControl L65
?西門子S7-1500
?西門子S7-300
?Molex E- F2控制器卡
?TwinCat
?KW-軟件控制器
?Phoenix RFC 470S
虹科在工業(yè)總線通訊行業(yè)深耕多年,是鏈條最全、方案最豐富、且兼?zhèn)浼夹g服務落地的通信技術資源整合商。除PROFINET協(xié)議棧之外,虹科還提供可用于二次開發(fā)的SoM模塊、PROFINET 板卡、PROFINET網(wǎng)關、PROFINET IO模塊等多種工業(yè)通訊解決方案,歡迎聯(lián)系虹科獲取更多詳細信息!
-
Linux
+關注
關注
87文章
11232瀏覽量
208950 -
網(wǎng)絡
+關注
關注
14文章
7523瀏覽量
88652
發(fā)布評論請先 登錄
相關推薦
評論