对于所有的程序块类型,输入参数的最大数量都比输出参数的最大数量少1个。因为程序块的使能输入不算做–个参数。这个输入被LD语言用来确定是否调用这个程序块,但是即使这个块被调用,使能也不作为–个参数进入这个模块。只要有足够的执行站空间,CPU就允许进行嵌套调用。如果没有足够的站空间支持程序块调用,会产生一个”堆栈溢出”故障。这种情况下,CPU不能执行这个程序块。CPU会将这个模块的所有二进制输出设为FAL SE,并且继续执行程序块调用指令之后的程序。
注意:由两种方式可以在没有足够堆栈空间时停掉CPU。最好的方法是增加程序逻辑来测试自诊断位%SA38,以检测用户程序是否发生故障。检测到故障后,可以用SVC_REQ13停掉CPU.另一个方式是增加逻辑检测模块没有正确执行的信号,然后调用SVC_ _REQ 13停掉CPU.
除了调用的模块有特别多参数的情况,一般能支持8层以上的调用。能进行多少层调用受几个因素的影响,包括程序块数据流量(非布尔型),程序块调用的特殊功能以及这个块中所定义的参数的类型和数量。如果程序块没有最大限度的使用堆栈资源,就有可能支持多于8层的嵌套调用。嵌套调用以MAIN块为第1层
Giddings & Lewis Centurion DSM100 Servo Drive 401-34402
One-day shipping available
G&L Giddings & Lewis 800 502-03274-00 CMOS Memory BD.
GIDDINGS & LEWIS 1-20641-02 USPP 12064102