news 2026/4/18 14:42:15

什么是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/4/9 18:03:02

ΔΣ(Delta-Sigma)ADC 的原理---从“为什么要有 ΔΣ ADC → 它到底在干什么 → 每一块电路在物理层干了什么 → 为什么电表/计量芯片都爱用它”这个顺序,完整、工程化地讲清楚

一、先说结论(抓住本质)ΔΣ ADC 低分辨率量化器 过采样 噪声整形 数字滤波它的核心思想不是“一次采得很准”,而是:我一次采得很粗,但我采得非常快,而且把误差“挤”到高频,再用数字滤波丢…

作者头像 李华
网站建设 2026/4/18 7:15:07

密度敏感哈希(DSH)学习算法详解

密度敏感哈希(Density Sensitive Hashing,简称DSH)是一种无监督哈希学习方法,其独特之处在于考虑数据的密度分布,通过自适应选择分割超平面来生成二进制码。这种方法在高密度区域分配更多比特位,从而提升哈希码的区分能力,特别适合非均匀分布的数据集,如图像特征或文本…

作者头像 李华
网站建设 2026/4/15 4:40:03

Spring Boot动态数据源实战,让数据库连接“随用随取”

数据源切换方法 Springboot提供了AbstractRoutingDataSource抽象类,类名意思是数据源路由,让用户可以选择根据需要切换当前数据源 该类提供了一个抽象方法determineCurrentLookupKey(), 切换数据源时springboot会调用这个方法,所以只需要实现该方法,在该方法中返回需要切换…

作者头像 李华
网站建设 2026/4/18 1:35:45

51单片机控制LCD1602显示:超详细版入门指南

51单片机驱动LCD1602实战指南:从点亮第一行文字到构建人机界面你有没有遇到过这样的场景?电路板已经焊好,程序也烧录进去了,但设备“黑屏”一片,毫无反应。没有提示、没有状态、甚至连个“Hello World”都没有——调试…

作者头像 李华
网站建设 2026/4/18 0:06:46

基于STM32的工业touch驱动开发操作指南

手把手教你打造工业级STM32触摸驱动:从硬件到算法的全链路实战你有没有遇到过这样的场景?设备刚上电,操作员在屏幕上点了好几下,界面却迟迟没反应;或者冬天戴着手套一碰就误触发,夏天又完全没感应——这些看…

作者头像 李华
网站建设 2026/4/18 13:42:40

STLink驱动安装超详细版:从下载到配置全流程

从零搞定STLink驱动:一次讲清安装、配置与避坑全流程 你有没有遇到过这样的场景? 新买了一块STM32 Nucleo开发板,兴冲冲插上电脑准备烧录程序,结果打开设备管理器一看——“其他设备”下面躺着个带黄色感叹号的“未知USB设备”。…

作者头像 李华