应用中的诊断
这 PROFINET 控制器配备用于诊断数据的内部缓冲区。这个“影子数据库”在后台通过设备发送的警报和用于建立连接的非循环服务不断更新(对用户透明)。通过这种方式,所有设备的实际诊断状态都会以最小的延迟反映在主机应用程序中,并且可以随时在那里进行评估。或者或另外,应用程序可以接收单独的警报(CommFB.RALARM
) 或重新读取诊断数据 (CommFB.RDREC
)。
的API ProfinetCommon
和 通讯FB
此处描述的库对于 CODESYS PROFINET 堆栈以及 CIFX 解决方案。但是,CIFX 解决方案并未完全实施个别服务(请参阅数据表)。有关代码示例,请参阅下面列出的功能块的库文档。
设备功能块
对于每个 PROFINET 在设备树中,创建一个功能块,提供有关设备连接或配置状态的基本信息。例如,请求诊断条目或有偏差的模块配置。

同理,也为控制器创建一个功能块实例,提供控制器运行状态的信息。 PROFINET 控制器。
有关更多信息,请参阅: IoDrvProfinet.ProfinetController
和 IoDrvProfinet.PNSlave
提供者和消费者状态
此状态信息始终与 I/O 数据一起传输。它可以添加到 CODESYS 相应模块的 I/O 映射。
警报
发送的警报 PROFINET 设备可以通过接收 CommFB.RALARM
功能块。有关信息评估的代码示例,请参阅库文档 ProfinetCommon.DiagnosisDataReader
.
设备和子模块状态
除了直接访问输出 设备功能块,也可以使用 ProfinetCommon.DeviceIterator
POU 迭代为控制器设计的所有设备。
以同样的方式, ProfinetCommon.SubmoduleIterator
POU 用于迭代配置为 PROFINET 设备和用于评估个人 ProfinetCommon.SubmoduleState
.
诊断缓冲区(诊断阴影)
随着 ProfinetCommon.DiagnosisDataBuffer
POU,可以调用本地缓存在控制器“Shadowing Database”中的数据。
或者, ProfinetCommon.获取子模块诊断() 函数还可用于查询单个子模块的所有缓冲诊断条目。
错误代码和诊断文本
数字 PROFINET 错误代码(ErrorCode
和 ExtErrorCode
) 可以通过上述函数和功能块来调用。如果应用程序中需要相应的文本描述(例如,在可视化中显示),则需要单独下载这些文本描述。有关更多信息,请参阅: 命令:添加PROFINET诊断资源。