您现在的位置是:首页 > PLC技术 > PLC技术

PROFINET网络用户程序中的诊断

来源:艾特贸易2017-11-22

简介(1) 诊断数据和组态数据记录 I/O 设备在检测到故障(例如 I/O 模块断路)时会将诊断中断输出到 I/O 控制器。此中断在用户程序中调用相应的组织块(诊断中断 OB82 ),以对故障生成已定

    (1)诊断数据和组态数据记录

   I/O设备在检测到故障(例如I/O模块断路)时会将诊断中断输出到I/O控制器。此中断在用户程序中调用相应的组织块(诊断中断OB82),以对故障生成已定义的(已编程的)响应,并传递诊断数据记录。

   PROFINET I/O中有两种不同类型的诊断数据记录:

   1)通道诊断数据记录:如果通道处于错误状态和/或触发了中断,就会生成通道诊断数据记录。如果无故障,则返回长度为0的诊断数据记录。

   2)针对特定供应商的诊断数据记录:供应商特定的诊断数据记录的结构和大小取决于供应商的设置。

    可以通过以下寻址级别评估诊断数据和组态数据:

   1)设备级别。

   2) AR(应用关联)。

   3) API(应用程序进程标识符)。

   4)插槽。

   5)子插槽。

    每个寻址级别都有一组可用的诊断数据记录和组态数据记录(例外:设备级别始终是0xF80c)。在十六进制表示法中,通过数据记录编号的首字母来区别各数据记录组,如图7-44所示。

诊断数据记录的寻址级别

    7-44    诊断数据记录的寻址级别

    每个I/O设备(寻址级别AR)、模块(寻址级别插槽)或子模块(寻址级别子插槽)的信息总是传送到各个诊断数据记录或组态数据记录中。根据寻址级别,数据记录将返回一个或多个子插槽、插槽和API的诊断数据或组态数据。

   (2)在用户程序中评估诊断

    对于PROFINETI/O,诊断信息采用了跨供应商的数据记录结构。仅为已发生故障的通道生成诊断信息。使用PROFINET获取诊断信息的基本方法有两种:

   1)评估诊断状态:使用指令“DeviceStates”和“ModuleStates”读出PROFINET I/O系统的诊断,以定位这些站/模块或PROFINET I/O系统内因错误而要求维护/需要维护的站/模块。然后,使用指令“RDREC”(读数据记录)直接从相关模块中读出各种诊断数据记录,从而获取有关错误的详细信息,如图7-45所示。

   2)评估中断:在调用错误OB (OB 82)时,该OB的启动信息中提供了有关错误原因和位置的信息。可以使用指令“RALRM”(读取更多中断信息)在错误OB中获取有关错误事件的详细信息,如图7-46所示。

使用指令“RDREC”评估诊断数据记录

    7-45    使用指令“RDREC”评估诊断数据记录

   1-将所有单独的错误收集到接口模块上的一个数据记录中

   2-指令“RDREC”在用户程序中直接从I/O设备异步读取整个站的状态

通过OB 82和指令“RALRM”进行诊断

    7-46    通过OB 82和指令“RALRM”进行诊断

   1-每个错误均将作为通道诊断信息以中断形式单独发送给I/O控制器

   2-I/O控制器中,将自动更新模块状态数据,并启动错误OB(OB 82)

   3-在用户程序中,错误OB (OB 82)中的指令“RALRM”将从I/O控制器中同步读取错误,而不对I/O设备进行寻址

(部分原创文章应编辑稿费需求,每篇需要收取2元的稿费,如需查看全文请联系客服索取,谢谢理解!在线客服:艾特贸易网客服为您服务