6.2 诊断与报警实验
首先确认固件为 App1_STANDARD, 将宏定义改为:
#define EXAMPL_DEV_CONFIG_VERSION 1
参照第6节的内容,编译和调试固件,并在TIA Portal 中建立RT项目。启动固件后,TIA Portal 切换到在线,可以看到PLC与设备正常工作:
在串口终端输入‘?’可以看到指令列表:
输入‘B’可以发送通道诊断报警‘line break’在槽1-子槽1。在串口终端输入‘B’,
可以看到PLC的故障灯(红色)已经开始闪烁,在TIA 可以看到PLC出现故障提示。
打开诊断缓冲区,可以看到诊断事件“断路”和详细信息。可以看到这是一个诊断事件到达报警。
输入’b’,可以看到PLC恢复正常工作状态,并且从诊断缓冲区看到诊断事件离去报警
如果要自定义通道报警错误类型ErrorType,最好使用0x100-0x7FFF之间的错误类型号,并且在GSDML文件中指定错误类型号对应的提示信息。举例来说,如果我们定义一个错误类型号为257(0x101),则需要在GDSML中添加如下内容。
接下来我们试验一下PLC对于报警事件的处理。首先定义三个变量
在PLC中添加OB82
并在OB82中添加如下指令
在串口输入’B’,可以看到:
输入’b’,可以看到:
因此可知,每次PLC接收到通道报警,均会执行OB82。
同样,添加OB40
同理,在OB40中添加如下指令
在slot1 “64byte 输入”上使能硬件中断,并将硬件中断分配给OB40。编译PLC并下载、运行。
在串口终端输入’a’ (send process alarm on slot1, subslot1),可以看到:
因此可知,每次PLC接收到过程报警,均会执行OB40中断
同样,添加OB55
在OB55中添加如下指令
在串口终端输入 'h' (send status alarm on slot1, subslot1),可以看到
因此可知,每次PLC接收到状态报警,均会执行OB55