在STEP 7右边的任务卡的“扩展指令”窗口的文件夹“程序控制”中,可以找到扩展指令。
1.RE_TRIGR指令
监控定时器在每次扫描循环它都被自动复位一次,正常工作时最大扫描循环时间小于监控定时器的时间设定值,它不会起作用。以下几种情况扫描循环时间可能大于监控定时器的设定时间,监控定时器将会起作用:
1)用户程序很长。
2)一个扫描循环内执行中断程序的时间很长。
3)循环指令执行的时间太长。
指令RE_TRIGR(重新触发循环时间监视)可以在程序中的任意位置使用,来复位监控定时器,如图4-70所示。
图4-70 RE_TRIGR与STP指令
该指令仅在优先级为1的程序循环OB和它调用的块中起作用;该指令在OB80中将被忽略。如果在优先级较高的块中(例如硬件中断、诊断中断和循环中断OB)调用该指令,使能输出ENO被置为0,不执行该指令。在组态CPU时,可以用参数“循环时间”设置最大扫描循环时间,默认值为150ms。
2.STP指令
STP指令的EN输入为1状态时,使PLC进入STOP模式。STP指令使CPU集成的输出、信号板和信号模块的数字量输出或模拟量输出进入组态时设置的安全状态。可以使输出冻结在最后的状态,或用替代值设置为安全状态。默认的数字量输出状态为FALSE,默认的模拟量输出值为0。
3.GET_ERROR与GET_ERR_ID指令
GET_ERROR指令用来提供有关程序块执行错误的信息,用输出参数ERROR(错误)显示发生的程序块执行错误(见图4-71),并且将详细的错误信息填入预定义的ErrorStruct(错误结构)数据类型(见表4-9)。可以用程序来分析错误信息,并做出适当的响应。第一个错误消失时,指令输出下一个错误的信息。
(www.xing528.com)
图4-71 读取错误信息的指令
在块的界面区定义一个名为ERROR1的变量(见图4-72)来作参数ERROR的实参,用下拉式列表设置其数据类型为ErrorStruct。也可以在数据块中定义ERROR的实参。GET_ERR_ID指令用来报告错误的ID(标识符)。
如果块执行时出现错误,且指令的EN输入为1状态,出现的第一个错误的标识符保存在指令的输出参数“ID”中,ID的数据类型为Word。第一个错误消失时,指令输出下一个错误的ID。作为默认的设置,PLC对程序块执行出现错误的响应方式是将错误记录在诊断缓冲区,并使CPU切换到STOP模式。
图4-72 定义ErrorStruct数据
如果在代码块中调用GET_ERROR与GET_ERR_ID指令,出现错误时PLC不再做出上述的响应,详细的错误信息将由GET_ERROR指令的输出参数ERROR来提供,错误的标识符(ID)在GET_ERR_ID指令的输出参数ID指定的地址中。通常第一条错误是最重要的,后面的错误由第一条错误引起。
如果GET_ERROR或GET_ERR_ID指令的ENO为1状态,表示出现了代码块执行错误,有错误数据可用。如果ENO为0状态,表示没有代码块执行错误。可以用GET_ER-ROR和GET_ERR_ID的ENO来连接处理错误的程序。GET_ERROR和GET_ERR_ID可以用于从当前执行的块(被调用的块)发送错误信息给调用它的块。将它们放在被调用块的最后一个程序段,以报告被调用块的最后执行状态。
4.ErrorStruct数据类型的结构
ErrorStruct数据类型的结构见表4-9。
表4-9 ErrorStruct数据类型的结构
(续)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。