调用子程序时要注意什么

时间:2025-01-23 01:56:04 热门攻略

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

自动返回与跳转语句

子程序在执行到末尾时会自动返回,不需要加返回指令。

子程序不能使用跳转语句跳入或跳出。

参数传递

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

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

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

中断程序子程序调用

中断服务程序不能由用户程序调用,而只能由特定的事件触发执行。

中断是随机发生的,且必须立即响应。

指令或子程序的使能(EN)管脚

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

子程序命名与调用

通过指定子程序的名称和任何实参,调用子程序,这与调用独立存储过程或函数的方式相同。

可以使用一个或多个限定符来调用子程序,也可以不使用限定符来调用子程序,这些限定符是父级子程序的名称或带标记的匿名块。

子程序声明与定义

子程序的声明和定义必须匹配,否则会产生编译错误。

子程序的参数列表必须与声明相匹配。

子程序可以返回一个值,也可以不返回。

子程序可以在不同的源文件中定义和调用。

子程序的可读性与维护性

子程序要取一个有意义的名字,能够从字面上看出这个子程序的功能。

有必要给子程序书写一定的文档。

子程序中代码的布局不应该过于随意,要使用同一种布局风格。

不应该对子程序中的形参值作任何修改,最好用final进行标识。

子程序可以跟全局变量进行通信,但是在一般情况下,应该直接地和其他子程序通信,而不是读写全局变量。

一个子程序最好是有着单一的目的,即明确的目的。

子程序中用变量时(特别是整形)注意防范错误数据。

子程序中的形参意义明确,不要说有些形参都还没用,在函数调用时,这也是压栈和弹栈的,不要浪费时间和空间。

子程序的形参个数一般上限为7个,最好不要超过这个数。

对每个形参最好是加以注释。

子程序调用次数与返回值

如果子程序调用次数为1次,可以省略不写调用次数。

如果使用次数大于1,则必须注明调用次数。

子程序结尾必须是M99结束。

中断服务子程序

用户在调用子程序时是主动的,一般都是在已经处理好了进位等标志后才会去调用子程序。

即使子程序调用时标志位不自动进栈保护,也不会影响主程序。

子程序与全局变量的通信

通常建议直接与其他子程序通信,而不是读写全局变量,以减少潜在的错误和维护难度。

以上是子程序调用需要注意的各个方面,希望对你有所帮助。