https://www.bilibili.com/video/BV123411A7g4
profinet实现方案整理_profinet协议栈-CSDN博客
一、协议介绍
Profinet 是 PI 推出用于自动化的、开放的工业以太网标准。Profinet 使用 TCP/IP 和 IT
标准,是一种实时以太网,既支持标准的 TCP/IP,又提供标准以太网不能实现的时间确
定性。
PROFINET=PROFIbus+etherNET,把Profibus的主从结构移植到以太网上,所以profinet会有Controller和Device,他们的关系可以简单的对应于profibus的Master和Slave。
另外由于profinet是基于以太网的,所以可以有以太网的星型、树形、总线型等拓扑结构,而profibus只有总线型。所以profinet就是把profibus的主从结构和ethernet的拓扑结构相结合的产物。
支持模式
根据响应时间的不同,PROFINET支持下列三种通讯方式。
- TCP/IP标准通讯:PROFINET基于工业以太网技术,使用TCP/IP和IT标准。TCP/IP 是IT 领域关于通信协议方面事实上的标准,尽管其响应时间大概在100 ms的量级,不过,对于工厂控制级的应用来说,这个响应时间就足够了。
- 实时(RT)通讯:对于传感器和执行器设备之间的数据交换,系统对响应时间的要求更为严格,大概需要5-10ms的响应时间。目前,可以使用现场总线技术达到这个响应时间,如PROFIBUS DP。对于基于TCP/IP的工业以太网技术来说,使用标准通信栈来处理过程数据包,需要很可观的时间,因此,PROFINET提供了一个优化的、基于以太网第二层(Layer 2)的实时通讯通道,通过该实时通道,极大地减少了数据在通讯栈中的处理时间,因此,PROFINET获得了等同、甚至超过传统现场总线系统的实时性能。
- 同步实时(IRT)通讯:在现场级通讯中,对通讯实时性要求最高的是运动控制(Motion Control),PROFINET的同步实时(Isochronous Real-Time, IRT)技术可以满足运动控制的高速通讯需求,在100个节点下,其响应时间要小于1ms,抖动误差要小于1μs,以此来保证及时的、确定的响应。
报文分析


注意事项
Profinet使用注意事项
1.Profinet的数据传输带宽是100MBps
2.设备之间的总线长度为100m(超过100m需要设备进行中继,路由器 profinetio 都可以)
3.数据传输方式为全双工,没有终端电阻
4.一致性数据最大为254bytes
5.对于上位计算机可以使用标准以太网卡,不需要专用适配器
6.对于profinet诊断可以使用it工具
7.使用IP地址和设备名称区分,在组态时都要设置,否则无法成功组态。
8.对于IRT应用,必须要使用支持IRT的专用交换机。
二、模块使用
修改IP
使用Profinet Tools都可以实现设备扫描和IP修改。
Profinet Tools 下载:https://cloud.tsinghua.edu.cn/f/46863f7f03d84a6483c2/?dl=1
艾莫迅修改IP专用工具下载:https://oss.amsamotion.com/uploads/20250519_173924_.rar


远程请求
三、协议开发

- Profinet从站通信流程详细解释
3.1 初始化流程
系统启动: 硬件和底层驱动准备就绪。
初始化以太网驱动:
设置PHY工作模式(如全双工、100 Mbps)。
启用MAC驱动并配置回调函数。
初始化Profinet协议栈:
注册协议解析模块。
配置数据输入输出缓冲区。
3.2 连接建立
主站发送连接请求,从站通过以太网接收并解析Profinet连接请求报文。
从站反馈连接确认报文,完成连接建立。
3.3 数据交互
报文解析: 检查Profinet协议头部标识符,提取实时数据。
数据处理: 根据主站下发的指令,处理输入数据并生成对应的输出数据。
发送响应: 打包处理后的数据,返回给主站。
3.4 状态管理
维护连接状态,包括RUNNING和IDLE状态切换。
检测并响应主站发送的Keep-Alive信号。 - 核心功能模块
4.1 Profinet数据报文结构
CRC校验 4 验证数据完整性
4.2 数据解析逻辑
帧头: 检查MAC地址是否匹配。
帧ID: 根据帧ID确定报文类型(如连接请求、实时数据)。
数据区: 提取具体的输入输出数据。
4.3 状态管理
定期检查主站的Keep-Alive信号,若超时则断开连接。
根据主站下发的命令切换状态(IDLE ↔ RUNNING)。

.Profinet IRT(同步通信)的支持
Profinet IRT(Isochronous Real-Time)是一种严格同步的通信方式,能够保证报文传输的实时性和低延迟,适用于高精度同步控制场景。为支持IRT,需实现以下功能:
精确时间同步:通过PTP(精确时间协议)实现主站与从站之间的时钟同步。
报文优先级调度:确保实时报文优先传输。
实时数据处理:在规定的时间窗口内完成数据采集、处理和发送。

流程详细说明
接收以太网帧:
使用以太网MAC接收硬件进行帧捕获。
检查是否为Profinet报文。
识别报文类型:
判断报文是否为IRT类型。
若非IRT,则根据类型进行其他处理(如RT或普通以太网报文)。
时间同步:
提取IRT报文中的PTP时间戳。
调整本地时钟,确保与主站时间同步。
数据处理:
提取输入数据,并根据业务逻辑生成输出数据。
时间窗口控制:
检查当前时钟是否在允许的时间窗口内。
若在时间串口内,则发送响应报文
若在时间串口外,则丢弃对应报文