CODESYS PROFINET PROFINET (Process Field Network)是一种工业以太网标准,广泛应用于制造和过程自动化领域。它由用户组织 PI(PROFIBUS&PROFINET International)管理,被认为是 PROFIBUS 的继承者(参见 https://www.profibus.com/ )。 有关现场总线支持的更多一般信息,请参见 CODESYS
PROFINET 协议 PROFINET 使用基于 IEEE 802.3(以太网)的 PROFINET 用于循环实时 I/O 通信的 RT 协议和通过 UDP/IP 的 RPC(远程过程调用)用于非循环服务。任何种类或数量的网络拓扑都是可能的。该网络可以与其他协议(例如 TCP/IP)并行使用。 DCP(发现和基本配置协议)是 PROFINET RT 用于设备扫描和设置站名或 IP 配置。通讯方式
功能性 一个 PROFINET 控制器为每个人打开一个单独的连接(AR = 应用程序关系) PROFINET 用于数据交换、参数化和诊断的设备。 这些设备由 PROFINET 站名。一个 PROFINET 设备由按插槽/子插槽寻址的子模块构成。因此,例如具有以太网接口的通信模块为模块0,每个以太网端口包含接口子模块和多个端口子模块。插槽/模块是子模块的容器,实际 IO 数据和参数(数据记录,通过索
建立连接 通过几个步骤建立连接 通过 DCP 识别请求,控制器扫描网络以查找 PROFINET 具有已定义站名的设备。 控制器使用 DCP set 命令设置所需的 IP 地址 PROFINET 设备。 控制器向设备发送连接请求(RPC 协议)。该请求包含控制器想要与之交换数据的子模块列表。 这 PROFINET 设备将预期子模块列表与实际可用子模块进行比较。在出现偏差的情况下,连接响应包含带有不匹
PROFINET 诊断 本章描述了诊断机制如何从 PROFINET 可用于 CODESYS . 系统相关故障(例如,由防火墙引起)的检测和纠正在 故障排除 章节。 为了防止工厂运行期间的停机,诊断旨在允许快速检测甚至预防故障。去做这个, PROFINET 提供广泛的诊断机制,提供有关故障来源和位置的信息。因此,可以将设备或模块甚至特定的 I/O 通道识别为故障的触发器。诊断提供有关错误严重性的附加
诊断数据库 发生的每一个错误 PROFINET 设备(例如,“断线”或“电涌”类型)存储在本地诊断数据库中 PROFINET 设备。当错误原因得到纠正时,错误也会从那里再次删除。该诊断存储器中的条目可随时通过非循环服务读取。这可以通过两个来完成 PROFINET 控制器和不与控制器交换数据的“主管”工具 PROFINET 设备。 诊断信息存在两种不同的变体,因此 USI 格式应仅在特殊情况下使用。
警报 在更改诊断数据库条目的情况下, PROFINET 设备发送警报到 PROFINET 控制器。这会立即发出故障发生或发生的信号。报警包含源(槽、子槽、通道)以及诊断信息。 除诊断报警外,还有与诊断条目无关的“PULL”/“PLUG”报警(如拔出或插入模块时触发PLUG报警)。 本节内容如下 :
I/O 数据的有效性 对于传入和传出数据, PROFINET 设备(控制器和设备)以子模块粒度形式发送状态字节,将 I/O 数据标记为有效或无效。从应用程序的角度来看,这个提供者/消费者状态最终指定了子模块的数据是否有效。消费者状态被理解为确认发送的数据已经被接收者接收。 IO PS/CS“BAD”的原因可能如下: 不与设备进行数据交换 模块缺失或出现故障 本节内容如下 :
模块/子模块状态 这 SubmoduleState 是一个状态字,指示每个单独的子模块是否存在诊断条目或其他故障,例如配置损坏。 这样,当与设备建立连接时,控制器还会发送它将用于数据交换的模块和子模块的列表。如果设备的现有模块与控制器投射的模块之间的指定/实际状态不同或存在诊断,则相应地在状态中设置标志。 本节内容如下 :
PNIO 状态(错误代码) 这 PNIOStatus 是一个 8 位十六进制代码,它不属于 PROFINET 真正意义上的诊断。这 PNIOStatus 是失败服务的错误/中止代码,例如在日志错误或连接尝试失败的情况下发出。用户通常只在非循环读/写服务( RDREC / WRREC ) 或与设备建立连接。 该值被解释为具有以下元素的 4 字节数组: ErrorCode 0x40 编码系统 CODE