子程序调用应注意什么

时间:2025-01-22 14:59:31 热门攻略

调用子程序时需要注意以下几点:

自动返回:

子程序在执行到末尾时会自动返回,不需要加返回指令。子程序不能使用跳转语句跳入或跳出。

参数传递:

子程序可以带参数调用,需要在子程序的局部变量表中设置参数的类型。

中断程序:

中断服务程序不能由用户程序调用,而只能由特定的事件触发执行。中断是随机发生的,且必须立即响应。

使能条件:

指令或子程序的使能(EN)管脚前没有任何条件时,会有编译错误。

多次调用:

在同一周期内多次调用子程序时,不应使用上升沿、下降沿、定时器和计数器指令,因为它们都属于全局变量或全局使用。

输出结果:

选用OUT时,无论下一个程序执行与否,上一个子程序运行的OUT结果会保留到下一个程序。当输出结果是BOOL量时,结果是自锁的,或者置位,或者在程序里还要再次用到时,用IN_OUT。当输出结果是数值时,一定要用IN_OUT。做功能子程序时,尽量不要用OUT;如果某子程序只调用一次,可以使用OUT,如果多次调用就用IN_OUT。对于没有初始值的OUT和TEMP变量,需要先赋初始值。

返回地址:

在汇编语言中,调用子程序使用CALL指令,返回使用RET指令。这些操作通过堆栈操作完成,以简化程序设计过程和提高程序的可读性。

模块化编程:

在使用子程序时,应注意模块化编程,避免不必要的调用,并在停止调用时对子程序里所操作的地址进行相关设置,以免输出不受控。

子程序编号:

在三菱数控系统中,子程序调用次数如果为1次,可以省略不写,如果使用次数大于1,则不可以省略。调用子程序时,需要在子程序结尾使用M99指令。

中断与子程序:

子程序调用和执行中断服务子程序是不一样的。子程序调用是用户主动的,事先知道,而中断服务程序是随机发生的,不受用户控制。因此,中断服务子程序必须要有程序状态字(标志位)的自动进栈保护。

通过遵循以上注意事项,可以确保子程序的正确调用和执行,从而提高程序的稳定性和可维护性。