news 2026/6/11 19:01:58

什么是PROFINET

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是PROFINET

文章目录

    • 为什么需要PROFINET
    • PROFINET IO系统有哪些组成
    • PROFINET是如何工作的



PROFINET采用TCP/IP协议作为基础,并在其应用层上增加了实时机制和通讯协议,因此具有和标准以太网相同的一些特性如全双工、多种拓扑结构等,其速率可达千兆。另外它也有自己的独特之处,如:能实现实时的数据交换,是一种实时以太网等,是新一代基于工业以太网技术的自动化总线标准,其为自动化通信领域提供了一个完整的网络解决方案,囊括了诸如实时以太网、运动控制等。本文从为什么需要PROFINET,PROFINET IO系统组成部分,如何工作这几个方面展开介绍。


为什么需要PROFINET

近些年来,随着网络技术的发展,工业自动化、过程控制、机器人控制、智能制造等领域也在快速发展,它们对数据传输速度、网络的互联性和可扩展性提出了更高的要求,传统的工业以太网技术已经无法满足用户的需求。

工业通信是这个联网世界的“神经系统”,随着工业领域各行业创新和产品生命周期的日益缩短,快速的响应时间和流程优化对确保长期竞争力至关重要。PROFINET将工业以太网技术与互联网技术进行结合,在标准以太网技术的基础上进行优化和扩展,因此具有和标准以太网相同的一些特性如全双工、多种拓扑结构等,其速率可达千兆。另外它也有自己的独特之处,如:能实现实时的数据交换,是一种实时以太网等,能够支持多种网络拓扑结构,以实现更高开放性、灵活性、高效率、高性能,满足现代工业领域对于低延迟、高可靠、高灵活、高实时性的要求。

PROFINET的OSI参考模型下图所示。

PROFINET的OSI参考模型

PROFINET使用了物理层、链路层、网络层、传输层与应用层协议,其中物理层规定了千兆的传输速率,网络层与传输层则沿用TCP/IP协议族的标准,而独到之处在于数据链路层与应用层的规范。

PROFINET链路层参考了IEEE 802.3、IEEE 802.1Q、IEC 61784-2等标准,分别保证了全双工、优先级标签、实施扩展的能力,从而能够实现RT(实时通信,提供了优化的、基于以太网第二层的实时通道,响应时间在5~10ms。)等通信形式。

PROFINET应用层有多种应用层的协议标准,如IEC 61784、IEC 61158确保了PROFINET IO服务等。

当前的工业自动化系统中存在着不同制造商节点,为了能够保证这些不同的制造商节点能够无差错的进行数据交换,需要系统中所有的设备都能够支持PROFINET功能,因此使得支持PROFINET成为当前的必要条件。

PROFINET IO系统有哪些组成

支持PROFINET功能的设备之间的通讯是借由PROFINET IO系统来实现,PROFINET IO系统是一种分布式的控制系统,该系统中包含IO控制器(IO Controller)、IO设备(IO Device)和IO监视器(IO Supervisor)三部分,一个PROFINET IO系统至少由一个IO控制器和一个IO设备组成,IO监视器通常作为临时角色进行调试或诊断。如下图所示。

PROFINET IO系统模型

IO控制器:PROFINET IO系统的主站,一般来说是PLC的CPU模块(支持PROFINET功能的PLC)。IO控制器执行各种控制任务,包括执行用户程序、与IO设备进行数据交换、处理各种通信请求等。

IO设备:PROFINET IO系统的从站,一般是现场设备(可以是支持PROFINET的机械臂、交换机等),受IO控制器的控制及监控,由分布于现场的、用于获取数据的IO模块组成。

IO监视器:IO监视器用来组态、编程,并将相关的数据下载到IO控制器中,还可以对系统进行诊断和监控。最常见的IO监视器是用户的编程电脑。

IO控制器既可以作为数据的生产者,向IO设备输出数据,也可以作为数据的消费者,接受IO设备提供的数据,对于IO设备也类似,它消费IO控制器的输出数据,也作为生产者,向IO控制器提供数据。

PROFINET基本组网如下图所示,组网中的所有终端设备都支持PROFINET协议。

PROFINET基本组网图

在工业场景中,用户经常利用PLC向设备传输PROFINET报文,当DeviceA、DeviceB、DeviceC都支持PROFINET时,DeviceA、DeviceB、DeviceC利用IP网络向终端4、终端5、终端6转发PROFINET报文,从而实现PLC对终端4、终端5、终端6的控制。

当组网中有设备不支持PROFINET时,例如DeviceA不支持PROFINET、DeviceB支持PROFINET的时候,PLC发送的PROFINET报文,DeviceA只能进行转发,DeviceA与DeviceB之间无法进行实时的数据交换,PLC与DeviceA之间也无法进行实时的数据交换,导致DeviceB、PLC都无法获取DeviceA设备信息。

PROFINET是如何工作的

PROFINET使用DCP发现设备后,它们会建立AR和CR,建立连接并交换设备参数信息后,实现PROFINET IO系统内数据的转发。

DCP

DCP(Discovery and basic Configuration Protocol)为“发现和基本配置协议”是一种数据链路层协议,它为PROFINET提供多种服务,例如用于PROFINET网络中的发现识别设备,配置设备名称、配置IP地址等。

为实现这些服务DCP提供了“Identify All”、“Identify”、“Set”、“Set-Flash”、“Set-Reset to Factory”、“Get”作为主要功能。PROFINET工程工具、控制器和设备中都集成了DCP服务,但他们所侧重的功能不同,如在IO设备上要能对控制器所发布的命令做出响应,要能主动利用Hello功能向控制器发送消息,而IO控制器要能利用Identify功能来查找具体设备。主要功能具体描述如下。

  • Identify All:识别全部设备。以广播的方式向整个网络发送消息,所有设备收到消息都要做出响应。工程工具中利用此功能可以获得所有设备信息列表来确定网络中是否存如下问题:(1)设备有无连接;(2)设备名称是否设置;(3)设备中有无重复的IP地址或重复的设备名称;(4)设备名称和IP地址设置是否合规;(5)设备类型或供应商是否正确,利用Identify All功能工程工具可以轻松实现网络管理。
  • Identify:查找具体设备和检查设备参数设置。系统启动前,IO控制器会用它来识别设备,通过设备名称来进行查找,具有该设备名称的设备进行响应,但如果查找的设备名称长度为零则所有未分配名称的设备都要做出响应。
  • Get:获取设备信息。比如获取设备名称、IP地址和制造商信息等,可以在一个帧中依次请求多个条件,用来找到相匹配的设备。
  • Set:向设备写入参数。将设备名称、IP地址和恢复出厂配置写入寻址到的设备中。
  • Set-Flash:让指定IO设备的LED灯闪烁,当同一网络中有多个同类设备时,可以通过闪烁LED的方式来确定要操作的对象。

AR/CR

应用关系(Application Relation,AR):控制器/监视器和设备之间是通过精确定义的通信通道进行数据传输的,控制器通过接收到的组态信息建立通信通道,它必须在数据交换之前建立完成。每个数据交换被嵌入在“应用关系(AR)”中。一个设备只能和一个控制器对接,它们之间可以建立AR。

通信关系(Communication Relation,CR):CR规定了消费者和生产者之间明确的通信通道标识,CR必须建立在AR内,这样才能进行数据交换。在一个AR中可以建立多个不同的CR。

数据转发

PROFINET的数据转发流程如下图所示。


PROFINET的数据转发流程

  1. 设备启动:设备上电之后进行系统初始化,利用邻居探测协议(LLDP)让IO-Supervisor发现。
  2. 系统组态:系统工程师首先需要使用博图软件在IO-Supervisor导入IO-Device的GSDML文件(通用站描述),该文件由设备制造商提供,GSDML文件中描述了设备的属性,包含设备标识信息(设备ID、厂商ID和名称、产品系列、端口数)、可插拔模块的数量和类型、诊断信息的定义、I/O设备的通信参数(包括minimum cycle time, the reduction ratio)、I/O设备模块的配置数据(包括速度、双工、VLAN、端口安全信息),在获取这些信息之后给IO-Device分配相应的IO-Controller。
  3. 设置站名:IO-Supervisor在发现IO-Device之后,给其设置一个站名和IP,该名称能够标明设备在系统中的功能或安装位置,并通过DCP协议告知到IO-Device。
  4. 信息下载:IO-Supervisor将完成的系统组态信息下载到IO-Controller。
  5. 设备发现:IO-Controller根据获取的系统组态信息,通过DCP进行设备发现,并给IO-Device分配IP地址。
  6. 建立AR/CR连接:IO-Controller在启动/重启后,总是根据组态数据来开始系统启动,在系统启动期间,IO-Controller与IO-Device之间建立AR和通信关系CR,并参数化相关对象。
  7. 数据交换:系统启动成功完成后,IO-Controller与IO-Device交换过程数据(RT)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 20:02:30

STM32CubeMX配置I2S音频接口新手教程

用STM32CubeMX搞定I2S音频:从协议原理到实战调音的全链路指南你有没有遇到过这样的场景?项目需要在STM32上播放一段语音提示,结果声音断断续续、夹杂着“咔哒”噪声;或者录音时采样率不稳,语音识别模块频频误判。这些问…

作者头像 李华
网站建设 2026/6/10 18:35:05

STM32CubeMX使用教程:STM32F4串口通信配置操作指南

STM32F4串口通信配置实战:从CubeMX到HAL库的完整流程你有没有遇到过这样的场景?项目进度紧张,却卡在串口收发乱码上——查了又查GPIO配置、时钟使能、波特率计算,折腾半天才发现PA9被误设成了普通输出。这类低级但致命的问题&…

作者头像 李华
网站建设 2026/6/6 17:50:55

HTTP性能测试工具-wrk

1、前言 性能测试对软件测试的重要性在于它可以评估软件在特定负载条件下的性能表现,包括响应时间、吞吐量、并发用户数、资源利用率等。通过性能测试,可以识别并解决可能存在的性能问题,提高软件的可靠性、稳定性和可伸缩性。性能测试还可以…

作者头像 李华
网站建设 2026/6/4 23:59:06

TensorLPP:张量局部保持投影算法详解与实现

在机器学习和计算机视觉领域,降维技术是处理高维数据的重要手段之一。传统的降维方法如PCA(主成分分析)关注全局方差最大化,而LPP(Locality Preserving Projections,局部保持投影)则更注重保留数据的局部邻域结构,这使得它在流形学习任务中表现出色。 然而,当数据本身…

作者头像 李华
网站建设 2026/6/3 15:49:31

MATLAB多列图例函数columnlegend详解与实现

引言 在MATLAB绘图中,当曲线或图例项数量较多时,默认的legend函数只会生成单列图例,导致图例框过长,甚至遮挡图形内容或超出图形区域。这时,我们希望能将图例排列成多列形式,既美观又节省空间。然而,MATLAB原生legend并不直接支持多列布局。 columnlegend 就是一个非常…

作者头像 李华
网站建设 2026/6/10 16:38:07

Keil uVision5嵌入式C开发:新手教程(从零配置环境)

从零开始搭建 Keil uVision5 嵌入式开发环境:新手也能看懂的实战指南 你是不是也曾经面对一块 STM32 开发板,手握资料却无从下手?打开 Keil 看着一堆弹窗和选项,心里直打鼓:“这玩意儿到底怎么用?”别急—…

作者头像 李华