虹科教程 | Linux网络命名空间与虹科PROFINET协议栈的GOAL中间件结合使用

news2024/11/26 0:39:44

前言

PROFINET是由PI推出的开放式工业以太网标准,它使用TCP/IP等IT标准,并由IEC 61158和IEC 61784 标准化,具有实时功能,并能够无缝集成到现场总线系统中。凭借其技术的开放性、灵活性和性能优势,PROFINET可应用于过程/工厂自动化、运动控制等领域。通过PROFINET,可实现确定性响应、微秒级硬实时能力和集成诊断功能,是工业4.0通信的理想基础。

虹科PROFINET协议栈与GOAL中间件

虹科PROFINET协议栈可用于从站设备开发,符合一致性Class A与Class B并满足实时等级Class 1,拥有低资源消耗、可用和不用操作系统、高度可移植性等优势,能够为符合PROFINET IO的通信提供所有必需的服务。

虹科PROFINET协议栈可以在单核或者双核中运行,且内核都具有开放抽象层(GOAL)。GOAL中间件提供了一个统一的平台,用于快速轻松地集成工业以太网协议,例如带有MRP的PROFINET、包括DLR的EtherNet/IP、EtherCAT等协议,以及未来的PROFINET CC-D TSN和CC-Link IE TSN。GOAL还提供了一个OPC UA扩展,可标准化对工业环境中机器、设备和其他系统的访问。
在这里插入图片描述
当在Linux设备上使用虹科PROFINET协议栈和GOAL时,运行应用程序的以太网接口的IP设置将在启动时重置,这将导致在 Linux 设备上运行的任何其他基于 IP 的服务(如 Web 服务器或 SSH 控制台)无法访问。该问题产生的原因是PROFINET设备的定义行为,本文将介绍如何使用Linux网络命名空间来解决此问题,因此,一个简单的Web服务器将在PROFINET堆栈使用的物理接口之上命名的虚拟以太网接口上运行。

如何设置Linux网络命名空间

Linux具有丰富的虚拟网络功能,可用作托管VM和容器以及云环境的基础。Linux网络命名空间允许在物理设备上运行多个虚拟以太网接口。此技术被虚拟机和容器等虚拟化技术广泛使用。

设置Linux网络命名空间,首先需要创建一个新的虚拟以太网接口,并在物理设备和虚拟以太网接口之间建立连接。

注:请注意,以下命令需要使用相应的管理员权限运行。

这可以使用 IP 工具实现:

ip link add <virtualif> link <physicalif> type macvlan mode bridge

因此,如果我们想把虚拟接口webserv0连接到物理接口eth0,那么命令就是:

ip link add webserv0 link eth0 type macvlan mode bridge

下一步,我们创建一个新的命名空间,该命名空间将位于:webserv0

ip netns add <namespace>

在此示例中,我们将命名新的命名空间:webserver

ip netns add webserver

现在我们需要向属于新命名空间的 Linux 内核发出信号:webserv0

ip link set <virtualif> netns <namespace>

对于我们的示例,这将产生以下行:

ip link set webserv0 netns webserver

此时需要为虚拟接口设置 IP 地址并启动它。由于虚拟接口现在仅在新命名空间中可见,因此我们必须使用以下命令:ip netns exec

ip netns exec <namespace> ip addr add <ip>/<netlength> dev <virtualif> 
ip netns exec <namespace> ip link set up <virtualif>

使用此示例的值,命令为:

ip netns exec webserver ip addr add 192.168.11.223/24 dev webserv0
ip netns exec webserver ip link set up webserv0

为简单起见,我们使用 Python 3.4 及更高版本提供的简单 HTTP 服务器。现在可以使用以下命令启动此服务器:

ip netns exec webserver python3 -m http.server 8082 --bind 192.168.11.223

网络服务器可以通过 http://192.168.11.223:8082 访问,独立于底层物理接口eth0的IP设置。

PROFINET应用程序现在可以像往常一样在物理接口上启动,例如:eth0

./goal_linux_x64.bin -i eth0

完整的脚本如下所示:

#!/bin/bash
ip link add webserv0 link eth0 type macvlan mode bridge
ip netns add webserver
ip link set webserv0 netns webserver
ip netns exec webserver ip addr add 192.168.11.223/24 dev webserv0
ip netns exec webserver ip link set up webserv0
ip netns exec webserver python3 -m http.server 8082 –bind 192.168.11.223

总结

在本篇文章中,我们介绍了Linux网络命名空间的设置,并解释了如何使用该方法提供独立于底层物理接口工作的虚拟以太网接口。这允许在与基于IP的服务(如Web服务器或SSH控制台)相同的物理设备上运行PROFINET设备等应用程序。

对于资源有限的设备,虹科PROFINET协议栈的高度可扩展性优势十分明显。对于使用Linux设备的用户来说,使用虹科PROFINET协议栈方案可放宽对MCU的要求,国产方案也可以使用。
虹科PROFINET协议栈目前已支持以下平台:

  • Generic Linux
  • Generic Linux with port Switch Interface
  • ST NUCLEO-144 STM32F4
  • Raspberry PI & CM4 Linux
  • Renesas RIN32M3 HWRTOS
  • 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协议栈(CC-A / RT1)已通过以下工业控制器的成功测试:

  • 博世力士乐IndraControl L65
  • 西门子S7-1500
  • 西门子S7-300 Molex E- F2控制器卡
  • TwinCat
    KW-软件控制器
    Phoenix RFC 470S

虹科在工业总线通讯行业深耕多年,是链条最全、方案最丰富、且兼备技术服务落地的通信技术资源整合商。除PROFINET协议栈之外,虹科还提供可用于二次开发的SoM模块、PROFINET 板卡、PROFINET网关、PROFINET IO模块等多种工业通讯解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git上传文件到Gitee报错“error: failed to push some refs to ‘https://gitee.com/xxxx”

文章目录 前言一、创建项目仓库二、创建工作区三、配置 LFS四、上传镜像文件 前言 我要将一个 4.27 GB 的文件上传到 Gitee 上&#xff0c;但是出现了下面这样的报错 error: failed to push some refs to https://gitee.com/xxxx/centos.git 因此记录一下解决报错的方法。 一、…

eBPF内核技术在滴滴云原生的落地实践

将滴滴技术设为“星标⭐️” 第一时间收到文章更新 导读 eBPF是Linux内核革命性技术&#xff0c;能够安全高效地扩展内核能力&#xff0c;应用广泛&#xff0c;尤其是在云原生可观测性领域的应用已经成为行业热点。在滴滴云原生环境中&#xff0c;eBPF技术进行了业务实践和内源…

23西安电子科技大学电子工程学院821考研录取情况

01、电子工程学院各个方向 02、23电子工程学院一志愿考研录取情况总览、平均分 PS&#xff1a;电院23年院线相对于22年院线上涨10-15分&#xff0c;个别专业下降5分&#xff0c;这是因为22年西电电院报名人数较少&#xff0c;导致23年增加了一部分人数。 PS&#xff1a;1、电院…

前端 | windows安装nvm管理node.js

文章目录 01 nvm介绍02 安装03 设置镜像04 安装与版本管理05 基础使用 01 nvm介绍 nvm&#xff0c;即node version manager&#xff0c;是一个方便切换和管理node.js版本的工具。 安装nvm前的注意事项&#xff1a; 卸载掉现有的node.js所有安装目录避免出现空格和中文选用管理…

PaoPao泡泡清新文艺的微社区系统源码

泡泡是一个真正意义上高性能的微社区&#xff0c;虽然规模不大却拥有完备的功能。 该系统采用了GoZinc架构&#xff0c;前端使用Vue3进行构建&#xff0c;采用清新简洁的设计风格&#xff0c;布局类似Twitter的三栏设计。 后端服务使用Go编写&#xff0c;仅占用8MB的内存&…

Meta将生成人工智能功能应用于其产品能否提升吸引力?

随着技术的不断进步&#xff0c;人工智能在各个领域发挥着越来越重要的作用。最近&#xff0c;Meta公司宣布将在旗下产品中加入生成人工智能功能&#xff0c;以提升其吸引力。这一举措引起了广泛关注&#xff0c;人们开始思考&#xff0c;Meta将生成人工智能功能应用于其产品是…

可以提升效率的时间管理APP,上班族的好帮手

在时间少&#xff0c;但是待办事项多的快节奏社会中&#xff0c;时间管理成为了很多人都需要面临的重要问题。特别是对于繁忙的上班族来说&#xff0c;高效地利用时间是提升工作效率的关键。有不少上班族都在为如何高效管理时间而烦恼&#xff0c;于是一些时间管理工具应运而生…

【聊聊开发中十分重要的“必抓!”算法】

目录 一&#xff1a;前言 二&#xff1a;常见算法介绍 三&#xff1a; 典型算法详述 1.冒泡排序 2.递归排序 3.哈希算法 四&#xff1a;算法的应用场景 五 总结 一&#xff1a;前言 算法在计算机科学和软件开发中具有重要的地位&#xff0c;它们是解决问题和优化过程的…

0基础学习VR全景平台篇 第57篇:高级功能-多语言

功能位置示意 一、本功能将用在哪里&#xff1f; 多语言功能&#xff0c;可一键设置作品界面语言为中/英文&#xff0c;或跟随系统自动切换中/英文&#xff0c;各位可以用户可以轻松制作英文版VR全景作品&#xff0c;满足国外用户访问的需求。 此外蛙色VR平台&#xff0c;可通…

android车载开发,如何模拟器上实现多屏

三个点&#xff0c;Display-addSecondary display 方案一 通过Presentation来实现&#xff0c;他是一个Dialog&#xff08;context&#xff0c;display&#xff09; val displayService getSystemService(DISPLAY_SERVICE) as DisplayManager val displays displayService.…

9、架构:CLI 设计

通常大部分的程序员会更加习惯使用 CLI&#xff08;Command-Line Interface 命令行界面&#xff09;来辅助开发业务&#xff0c;包括初始化、更新、构建、发布等功能&#xff0c;可以获得沉浸式一站的开发体验。 在之前有一篇企业级 CLI 开发实战介绍过如何开发一款适用团队的…

了解k8s容器组pods

一&#xff1a;Pods概述 在 部署第一个应用程序 中创建 Deployment 后&#xff0c;k8s创建了一个 Pod&#xff08;容器组&#xff09; 来放置应用程序实例&#xff08;container 容器&#xff09; Pod 容器组 是一个k8s中一个抽象的概念&#xff0c;用于存放一组 container&a…

yolov5增加AFPN-全新特征融合模块AFPN,效果完胜PAFPN

论文学习&#xff1a;AFPN: Asymptotic Feature Pyramid Network for Object Detection-全新特征融合模块AFPN&#xff0c;完胜PAFPN_athrunsunny的博客-CSDN博客 先上配置文件yolov5s-AFPN.yaml # YOLOv5 &#x1f680; by Ultralytics, AGPL-3.0 license# Parameters nc: 80…

Nginx安装与介绍

Nginx概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好&#xff0c;中国大陆使用 Nginx 网站用户有&#xff1a;百度、京东、新浪…

Windows11最新版官网制作系统盘

在百度里搜索"windows11官网下载"&#xff0c;然后选择微软官网的链接&#xff1a; 下載 Windows 11https://www.microsoft.com/zh-tw/software-download/windows11 然后就可以制作U盘windows11官网系统的安装U盘了。

进行APP广告变现之前,媒体需要关注哪些APP运营的信息指标

在进行广告变现之前&#xff0c;媒体商务或运营人员首先要知道自家 APP 的一些基本体量信息及基本用户使用情况信息。唯有充分而全面的掌握并罗列出这些基础 APP 运营指标&#xff0c;才能便于媒体通过自家真实流量规模、实力等来预估广告位价值&#xff0c;或更好的像广告需求…

设计模式--------创建型模式

创建型模式 用于描述“怎样创建对象”&#xff0c;它的主要特点是“将对象的创建与使用分离”。GoF&#xff08;四人组&#xff09;书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 1.单例设计模式 单例模式&#xff08;Singleton Pattern&#xff09…

如何截取视频中的一段视频?简单的截取方法分享

如果我们只需要处理视频中的某一部分&#xff0c;就可以将这一部分的内容截取下来&#xff0c;可以省去处理整个视频文件的时间和精力。此外&#xff0c;截取视频也可以让更加方便地分享和保存视频内容。此外&#xff0c;如果我们只需要分享视频中的一部分给他人观看&#xff0…

二、MongoDB 安装集

一、MongoDB—Docker mongoNoSQL Manager for MongoDB&#xff1a; L1、L2 1. 创建容器 docker search mongo docker pull mongodocker run -d --namemongo_1 -p 27017:27017 \-v /root/mongo/configdb:/data/configdb/ \-v /root/mongo/db/:/data/db/ \[镜像ID] --auth2. 登…

【软件测试】盘一盘工作中遇到的 Redis 异常测试

目录 前言&#xff1a; 一、更新 Key 异常 二、Key的删除和丢失 三、KEY 过期策略不当造成内存泄漏 四、查询Redis异常时处理 五、redis 穿透、击穿、雪崩 六、Redis死锁 七、Redis持久化 八、缓存与数据库双写时的数据一致性 前言&#xff1a; 在软件测试过程中&…