在TIA STEP7 V16版本中,可以通过相应的诊断指令去实现对S7-1200CPU(固件版本V4.4)和扩展模块的诊断操作。
读取LED状态的操作。(LED)
读取诊断信息的操作。(GET_DIAG)
读取数据记录的操作。(RDREC)
接收中断的操作。 (RALRM)
生成用户诊断报警的操作。 (Gen_UsrMsg)
常见问题
本文将详细介绍上述各个指令的使用。
读取LED状态
1. 读取LED状态指令的调用,如图1所示。
图1. 读取LED状态指令
2. 读取LED状态指令的使用。
说明:可以使用“LED”指令,读取CPU上面LED的状态。
通过LADDR参数,可以寻址CPU。
通过LED参数,可以选择要通过该指令读取当前状态的模块LED指示灯。
调用该指令时,RET_VAL参数将输出所选LED的状态。根据所选的LED,将仅显示指定的状态信息。如表1所示:
表1 "LED"指令的参数
参数 | 声明 | 数据类型 | 说明 |
---|---|---|---|
LED | Input | UINT | LED 的标识号:
|
RET_VAL | Return | INT | LED 的状态:
|
示例:下面的示例中,显示了如何读取CPU上面的LED状态。
在全局DB中创建两个变量,用来保存数据,如图2所示:
图2. 在全局DB中创建变量
在OB1中调用"LED"指令,并连接参数,其中参数LADDR指向CPU的硬件标识符(在"PLC变量->系统常量"中,名称为"Local~Common"),如图3所示:
图3. 在OB1中调用"LED"指令
通过参数LED("LED")指向待监视CPU的LED。示例一中参数LED("LED"=1)表示查询CPU的LED(STOP/RUN)状态。如果CPU的操作模式从STOP转入RUN,则在输出参数RET_VAL("ReturnValue")中的值为"6"(绿色和橙色交替闪烁)。如图4所示:
图4. "LED"指令执行结果(示例一)
通过参数LED("LED")指向待监视CPU的LED。示例二中参数LED("LED"=2)表示查询CPU的LED(ERROR)状态。如果CPU中发生错误,则在输出参数RET_VAL("ReturnValue")中的值为"4"(红色闪烁)。如图5所示:
图5. "LED"指令执行结果(示例二)
读取诊断信息
1. 读取诊断信息指令的调用,如图6所示。
图6. 读取诊断信息指令
2.读取诊断信息指令的使用。
说明:GET_DIAG指令可以用来读取硬件组件的诊断信息。例如:读取S7-1200 CPU的诊断信息。
通过LADDR参数,来选择硬件组件。
通过MODE参数,可以选择要读取的诊断信息。
通过DIAG参数,根据不同的MODE参数,输出不同的诊断信息。如表2所示:
表2 GET_DIAG指令的MODE参数和DIAG参数对应关系
MODE | 说明 | DIAG | CNT_DIAG |
---|---|---|---|
0 | 以 DWORD 格式输出硬件组件所有支持的诊断信息,其中位 X=1 表示支持模式 X。 | DWORD 数据类型的位:
MODE=0 时,S7-1200 CPU 将忽略参数 LADDR。 | 0 |
1 | 输出所寻址硬件组件的诊断状态。 | 结构 DIS:
| 0 |
2 | 输出所寻址硬件对象中所有从属组件的状态。 | 结构 DNN:
| 0 |
当参数MODE=1时,参数DIAG以结构 DIS输出诊断信息。此时,在变量声明中输入系统数据类型“DIS”作为数据类型。结构DIS的内容如表3所示: