3.6 结构化程序指令
3.6.1 FOR到NEXT循环指令
该指令的表达方式如图3-99所示。
图3-99 FOR、NEXT指令的表示
图中,n指FOR到NEXT循环的重复次数(1~32767)(16位)。
该指令的功能:
1)当FOR到NEXT循环中的处理无条件执行了n次时,将执行跟着NEXT指令之后的步。
2)n的值为1~32767。如果为-32768~0之间的一个值,则当做n=1执行。
3)如果不想执行在FOR到NEXT循环内调用的处理,则使用CJ或SCJ指令跳过去。
4)FOR指令可最大嵌套16级。
指令示意图如图3-100所示。
图3-100 FOR、NEXT指令示意图
举例说明:
图3-101中,当X8为OFF时,下面程序指定FOR到NEXT循环,当X8为ON时,不执行。
图3-101 FOR,NEXT指令的应用
3.6.2 子程序调用指令
子程序调用指令CALL(P)的表达方式如图3-102所示。
图3-102 CALL(P)指令的表示
图中:Pn表示子程序的起始指针号(软元件名称)。
(S1)~(S5)作为变量传送到子程序的软元件号(位、BIN 16位、BIN 32位)。
该指令的功能为
1)当执行该指令时,执行右Pn指定程序的子程序。
注意:CALL(P)指令可执行由同一个程序文件中的一个指针指定的子程序和由一个公共指针指定的子程序,如图3-103所示。
图3-103 CALL(P)指令说明
2)当功能软元件(FX、FY、FD)被一个子程序使用时(见图3-104),用与功能软元件对应的(S1)~(S5)指定软元件。由(S1)~(S5)指定的软元件的内容简要说明如下。
①在子程序执行之前,将位数据传送到FX,将字数据传送到FD。
②在子程序执行之后,将FY和FD的内容传送到相应的软元件。
图3-104 CALL(P)指令的应用
③用于功能软元件的处理单元如下:
FX、FY:位;FD:4字单元。
举例说明:
图3-105中是将D0指定到子程序的FD0中,且在子程序中使用D4时的动作。
图3-105 CALL(P)指令的应用及说明
①存储子程序的执行结果。
②被功能软元件的值替换。
3.6.3 从子程序返回指令
从子程序返回指令RET功能:
1)子程序结束;
2)当执行RET指令时,返回到调用子程序指令之后的步,如图3-106所示。
图3-106 RET指令说明