【Siemens技术篇】在TIA Portal中如何使用 GET_DIAG 指令读出硬件诊断数据
描述
GET_DIAG 指令可以用于 LAD/STL/FBD 语言编辑器中,也可用于 SCL 语言中。GET_DIAG 指令位于“指令”选项卡下的“高级指令>诊断”中。
拖拽“GET_DIAG” 指令至程序编辑器中,并编辑输入,输出,输入/输出的参数。以下示例显示了如何读出 S7-1500 硬件诊断信息。
使用 GET_DIAG (SFC117) 指令可以评估 CPU 中接收到的所有系统消息。与此有关的详细信息在 STEP 7 (TIA Portal) 在线帮助中可以获得:
-
查看“GET_DIAG:读出诊断信息”
-
点击 GET_DIAG 指令并按下“F1” 按键
图 01 显示了如何在 LAD 编程语言下使用和参数化 GET_DIAG 指令。当参数 MODE 为“1”时, 可以输出所寻址硬件对象的诊断数据。 此时,需要定义诊断状态 DIAG 为 DIS 数据结构。
图 01
图 02 显示了如何在 SCL 编程语言下使用和参数化 GET_DIAG 指令。当参数 MODE 为“2” 时,可以输出所寻址硬件对象的所有的下一级 模块的状态。此时,定义诊断状态为 DNN 和 Diagnostic Details 数据结构。
图 02
为了设定 GET_DIAG 指令的 "DIAG" 和 "DETAIL" 数的数据结构,必须定义一个数据块变量。这些变量的数据类型为 "DIS","DNN" 和 "Diagnostic Details"。可以使用 "Variant" 数据类型参数化这些结构化 DB 变量。图 03 显示了如何在 "Diag_DB" 数据块中建立这些 DB 变量。
图 03
DB 变量名称 | 数据类型结构 | "Variant" 数据类型参数化 |
Ai_Dis | DIS | "Diag_DB".Ai_Dis |
Ai_Dnn | DNN | "Diag_DB".Ai_Dnn |
Ai_Diagdetail | DiagnosticDetail | "Diag_DB".Ai__Diagdetail |
"LADDR" 参数需输入硬件标识符。这个硬件标识符由一个完整的序列号组成,其由系统生成并允许错误模块或局部功能部件用于诊断报警。可以在“设备组态”标签下的“属 性”下找到硬件标识符(HW ID)。在导航区选择“HW identifier”条目(如图 04 所示)。
图 04
保存之后,编译和下载项目至 CPU,在监控表中即可读出诊断数据。在监控表中输入 DB 变量,如图 05 所示。点击监控后,就可以看到 DB 变量 Diag_DB".AI_Dis (DIS 结构) 的数值。
图 05
依据 STEP 7 (TIA Portal) 的在线帮助中 DIS 数据结构表,可以获得以下诊断信息:
-
至少一个通道或组件错误
-
PNIO 模块,隔离的
-
模块的维护信息:错误
注意
不要手动创建数据结构,应该在 "数据类 型" 一列输入数据结构的名称。否则下载后可能出现以下错误信息:"8081: 选中的模式不支持 DIAG 参 数的类型"。如果在数据块中输入的变量是需要的数据类型(例 如,DIS),系统会自动创建数据结构。数据类型本身并不在选择窗口中。