工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例

news2024/11/15 17:16:08

工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例

文章目录

  • 工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例
    • 一、前言
    • 二、树莓派虚拟机编译安装测试
      • 1、树莓派desktop下载及虚拟机安装
      • 2、下载编译安装p-net及运行demo程序
    • 三、p-net缺陷与接下来的测试
      • 1、p-net特征
      • 2、p-net局限性
      • 3、接下来

一、前言

之前已经对Profinet做了一些基础的了解,接下来进行简单的Profinet组网,并利用开源库p-net的示例程序和plc基于profinet网络进行交互,以此抓包分析整个profinet协议交互过程,便于我们进一步开发基于profinet协议的应用。

二、树莓派虚拟机编译安装测试

1、树莓派desktop下载及虚拟机安装

树莓派desktop:https://www.raspberrypi.com/software/raspberry-pi-desktop/
下载树莓派:https://downloads.raspberrypi.org/rpd_x86/images/
文档:https://www.raspberrypi.com/documentation/
Windows和MacOS的PC机都可以通过虚拟机安装该DeskTop,对于学习树莓派很有帮助,还有一些对应的文档资料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后的设置一下硬件配置进入安装界面选择图形界面安装后步骤基本上就是常规的安装虚拟机的步骤,没有特殊要求则使用默认的选项一路向下即可,这里不再细说,安装成功并安装vm tools后如下:
在这里插入图片描述

2、下载编译安装p-net及运行demo程序

按照教程 的中流程进行下载安装即可,注意使用pi用户去执行即可(注意:安装源也最好先不要换到国内源,我更换之后出了一堆问题,好在是虚拟机可以重装,否则设备板子刷系统还是 挺浪费时间的):

sudo apt update
sudo apt install snapd
sudo snap install cmake --classic
sudo reboot

cmake --version

sudo apt install git
mkdir /home/pi/profinet/
cd /home/pi/profinet/
git clone --recurse-submodules https://github.com/rtlabs-com/p-net.git
#可能耗时较长,可以增加一下内存
cmake -B build -S p-net
cmake --build build --target install

运行测试(虚拟机可以直接设置桥接模式,就不需要再单独修改网卡地址了):

sudo ./pn_dev -v

会需要root权限去读取eth0网卡的网络信息:
在这里插入图片描述

三、p-net缺陷与接下来的测试

根据这里的描述:https://zhuanlan.zhihu.com/p/181332329
Profinet IO设备基本分为三类:Device(从站)、Controller(主站)与Supervisor(监视器),结合p-net的GitHub描述,p-net可以用于实现Device也就是Profinet从站IO设备,主要的动能就是读写IO数据(可以用于开发:远程IO、伺服驱动器、变频器等现场设备)。更详细一些的profinet IO系统的说明可以看这里:https://www.founderchip.com/?id=354
如下是机翻的,有一些不太理解,但是大致的意思能看明白,缺陷和特征都是比较明显的。

1、p-net特征

● 多个以太网端口配置(目前仅适用于 Linux)
● TCP/IP协议支持
● LLDP协议支持
● SNMP协议支持
● RT(实时)支持
● 地址解析支持
● 参数化支持
● 处理IO数据交换支持
● 报警处理支持
● 可配置的模块和子模块数量
● 裸机或操作系统支持
● 提供移植层
● 支持 I&M0 - I&M4。设备支持 I&M 数据,但单个模块不支持。
● 共享设备(支持连接多个控制器)

2、p-net局限性

● 这是一个Device(从站)堆栈,这意味着不支持 IO 控制器/主站/PLC 端。
● 无介质冗余(无 MRP 支持)
● 传统启动模式未完全实现
● 不支持 RT_CLASS_UDP
● 不支持 DHCP
● 没有快速启动
● 无 MC 组播设备到设备
● 不支持共享输入
● 仅支持完整连接,不支持有限的“DeviceAccess”连接类型。
● 不支持 iPar(参数服务器)
● 不支持时间同步
● 报警时无 UDP 帧(仅实现默认报警机制)
● 没有 ProfiDrive 或 ProfiSafe 配置文件。
PROFINET主从站间使用应用关系(Application Relation,AR)描述它们之间的通信关系(Communication Relation,CR);而CR又可分为3种:记录数据CR、IO数据CR、警报CR;3种CR标识了主站与从站之间的数据传输类型,并分别标识了其传输的以太网通道类型,如下图所示:
在这里插入图片描述

3、接下来

根据上面的进一步了解,我们可以确认利用p-net开源堆栈可以开发的应用只能作为从站开发三类CR数据和控制器进行交互,因此,我们接下来利用codesys软PLC作为主站和该从站交互进一步分析下对应的交互过程,再做进一步的打算。

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

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

相关文章

【Javascript保姆级教程】if判断语句的三种形式

文章目录 前言一、if语句1.1 怎么使用1.2 示例代码1.3 示例代码2 二、if...else语句2.1 怎么使用2.2 示例代码2.3 示例代码 三、if...else if...语句3.1 怎么使用3.2 示例代码3.3 示例代码 总结 前言 嗨,欢迎来到Javascript保姆级教程!在编写代码时&…

学习笔记1——SSM的基础知识

SSM的基础知识 cs架构:多个客户端可以访问一台服务器 请求:协议://主机[: 端口][/路径][?查询参数] http就是一种协议,https是一种带加密的协议更加安全一点主机:localhost端口号:因为tomcat和mysql都是…

Babylonjs学习笔记(二)——创建基本材质

书接上回,这里讨论给网格添加材质!!! 准备好材质 1、创建材质球 /*** 创建网格材质* param scene 场景对象* returns 材质对象*/ const createGroundMaterial(scene:Scene):StandardMaterial>{const texArray:Texture[] []// …

计网----数据包在传输中的变化过程,单播组播和广播,APR协议,APR代理,免费ARP,DNS协议,路由数据转发过程

计网----数据包在传输中的变化过程,单播组播和广播,APR协议,APR代理,免费ARP,DNS协议,路由数据转发过程 一.数据包在传输中的变化过程(在同一个路由器下) 1.传输数据时&#xff0c…

《SQLi-Labs》04. Less 23~28a

title: 《SQLi-Labs》04. Less 23~28a date: 2023-10-19 19:37:40 updated: 2023-10-19 19:38:40 categories: WriteUp:Security-Lab excerpt: 联合注入,注释符过滤绕过之构造闭合,%00 截断、二次注入、报错注入,空格过滤绕过&…

蓝牙助听模块场景分析之一

蓝牙助听模块场景分析之一 使用经典蓝牙助听,低成本,cVc降噪,支持蓝牙音频。 利用高通cVc算法,本地麦克风(支持单麦和双麦)声音输入到高通QCC芯片,然后QCC芯片DSP(cVc算法&#xf…

第十五章总结

一.输入/输出流 1.输入流 InputStrema类是字节输入流的抽象类,它是所有字节输入流的父类。 该类中所有方法遇到错误都会引发IOException异常。 read()方法:从输入流中读取数据的下一个字节。返回0~255的int字节值。如果因为已经到达流末尾而没…

开源智能体来啦!港大团队发布OpenAgents,可以搞数据分析、聊天、支持200+插件

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 港大的研究团队最近发布了一个新的开源 Agent 框架,名为 OpenAgents. 它可以用于实际用户场景,特别是在使用自然语言执行复杂任务的情况下。先前的语言智能体框架主要关注概念验证或者供开发人员使用&…

6个无版权、免费、高清图片素材库

找免费无版权图片素材,就上这6个网站,超高质量,可商用,赶紧收藏! 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要为新手设计师提供免费素材,这些素材的质量都很高,类别也…

如何让你的Node.js应用程序处理数百万的API请求

目录 一、了解 Node.JS 和 API 请求 二、优化 NodeJS 以实现高性能 1.使用异步操作 2.实现缓存 3.优化数据库查询 4.负载平衡 5.水平扩展 三、测试和监控性能 1.负载测试 2.应用程序性能监控(APM) 四、结论 一、了解 Node.JS 和 API 请求 在我们深入研究这些技术之…

【C语言基础】结构体中内嵌联合体|联合体中内嵌结构体

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

【算法|动态规划No.22】leetcode115. 不同的子序列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

jmeter接口自动化测试

前面我们复习了jmeter 的非图形化界面运行我们的测试接口。 大家可以翻看往期jmeter的文章。 具体来说就是:jmeter -n -t ****.jmx -l ****.jtl -e -o **** (*号代表路径) 生成了测试报告。 但是这个非图形化运行有个缺点,就是只能运…

Pygame中实现图片的移动

在《Pygame中将鼠标形状设置为图片2-1》和《Pygame中将鼠标形状设置为图片2-2》中提到将鼠标设置为指定图片。接下来在该文章涉及到的代码基础之上,实现图片的移动,效果如图1所示。 图1 图片移动效果 从图1中可以看出,导入一个大猩猩的图片&…

DailyPractice.2023.10.19

文章目录 1. 24. 两两交换链表中的节点2. 23. 合并 K 个升序链表3.148. 排序链表4.236. 二叉树的最近公共祖先5.78. 子集6.138. 随机链表的复制7.25. K 个一组翻转链表 1. 24. 两两交换链表中的节点 24. 两两交换链表中的节点 /*** Definition for singly-linked list.* stru…

扫描全能王文档矫正逆向记录

背景 扫描全能王有个功能是将弯曲的文本拉直成平直的文本。在扫描全能王的app上,这个功能的入口在拍书籍的tab。同时在图片编辑页面,也有个按钮可以触发这个功能。它的效果大概如下。 这篇文章主要介绍如何逆向这个算法 初步定位 对扫描王apk初步逆向…

【软考-中级】系统集成项目管理工程师 【15 信息 (文档) 和配置管理】

持续更新。。。。。。。。。。。。。。。 【第十五章】信息(文档)和配置管理 知识精讲考点 1:软件文档一般分为三类:开发文档、产品文档、管理文档。考点 2:文档的质量可以分为四级:考点 3:配置管考点 4:考点 5:考点6:考点 7:配置项版本号:考点 8:考点9…

[BUUCTF newstar week2] crypto/pwn/reverse

难度上来了,而且比赛加多了,newStar/0xGame/SHCTF,moe也结束了,周末还有TCP1P,来不及写东西了。抓时间先一个个来吧。 crypto 滴啤 就是dp的意思,也就是泄露dp求分解 from Crypto.Util.number import *…

汽车标定的ASAM MCD-1 POD

1.导语 ​做汽车标定slave基础软件以及做参数标定的同学,对ASAM MCD-2-MC(ASAP2,人话A2L文件)、ASAM MCD-1-XCP(人话xcp协议)一定非常熟悉。 常见的标定套件也是由很熟悉的供应商提供,例如ETAS的INCAES500系列产品、…

Hadoop3教程(二十三):Yarn的三大调度器

文章目录 (129)FIFO调度器(130)容量调度器特点资源分配算法 (131)公平调度器特点缺额的定义队列资源分配方式基于FIFO策略基于Fair策略资源分配算法 DRF策略 参考文献 (129)FIFO调度…