>RALRM 的编程示例 简介 在以下示例中,将通过输入模块生成断路诊断并接收包含相关信息的中断。本示例适用于 PROFINET IO 和/或 S7-1500 CPU。 说明 本示例的存储 本示例必须保存在将生成中断(断路)的输入模块的设置中。 |
要求 创建一个输入模块,并在该输入模块的属性中读取硬件标识符。并通过输入参数 F_ID(“alarmCheckID”)存储该硬件标识符。
为了产生一个中断,该输入通道需选择“线路”(Wire break) 选项。该选项位于“模块参数 > 通道模板 > 输入”(Module parameters > Channel template > Inputs) 中。
在全局数据块中,创建 7 个变量和结构“TI_Diagnostic_Interrupt”和“Additional_Diag”进行数据存储。创建数据类型为“TI_DiagnosticInterrupt”的结构“TI_Diagnostic_Interrupt”。
互连参数 在一个诊断中断 OB (OB82) 中,调用指令“RALRM”。互连该指令的参数,如下所示: RALRM 的结果
说明 触发断路 要触发断路,可拔除该输入模块输入端的电源电缆,然后再重新连接该电缆。或者,拔除该输入模块的电位桥后再重新连接。 |
发生断路故障时,输入模块将生成一个中断。之后,将调用诊断中断 OB,并启动指令“RALRM”。 “RALRM”指令将通过输入参数 F_ID(“alarmCheckID”)调用该输入模块。指令“RALRM”将根据输入参数 MODE(“alarmMode”)的值“2”,检查中断是否由该输入模块产生。如果中断来自该输入模块(“alarmCheckID”和“alarmFromID”相同),则输出参数 NEW(“alarmReceived”)将置位为“TRUE”,并通过参数 TINFO(“TI_Diagnostivc_Interrupt”)和 AINFO(“Additional_Diag”)保存该中断信息。生成该中断的模块硬件标识符将显示在输出参数 ID(“alarmFromID”)处。 已接收到的中断信息长度将记录在输出参数 LEN(“alarmLength”)中。根据输入参数 MLEN(“alarmMaxLength”)的值,值为“0”时,待读取 AINFO (“Additional_Diag”)的信息将不受限制。 并在输出参数 STATUS(“alarmStatus”)处,显示该块的状态。该过程成功执行且无任何错误。 在以下章节中,将详细介绍对 TINFO 和 AINFO 的评估。 有关 TINFO(“TI_Diagnostivc_Interrupt”) 参数的详细信息 该 OB 的启动信息和管理信息均存储在参数 TINFO(“TI_Diagnostivc_Interrupt”)中。 生成的中断包含以下信息: 有关 AINFO(“Additional_Diag”)参数的详细信息 有关中断的标头信息和附加信息,均存储在参数 AINFO(“Additional_Diag”)中。
生成的中断包含以下信息: 所用 OB 是一个诊断中断 OB(“InterruptType”,值为“1”)。 系统报告模块在插槽“2”(“SlotNumber”处和通道 8 到 15 处发生中断(BYTE 1,“SubSlotNumber”)。 对于子模块(“InterruptSpecifier”,值为“16#2000”),通道诊断和/或状态信息中,至少有一项可用。 在本示例中,使用通道诊断的结构(“FormatIdentifier”,值为“16#8000”)。 触发该中断的组件通道编号将分配给该子模块(“ChannelNumber”,值为“16#0008”)。 诊断输入通道的一个到达错误(“ChannelErrorType”,值为“16#28”)。 所用的数据格式为一个位(“DataFormat”,值为“16#01”)。 诊断一个断路故障(“ErrorCode”,值为“16#0006”)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |