子程序有子程序调用和子程序返回两大类指令,子程序返回又分为条件返回和无条件返回。子程序调用指令(SBR)用在主程序或其他调用子程序的程序中,子程序的无条件返回指令在子程序的最后程序段。子程序结束时,程序执行应返回原调用指令(CALL)的下一条指令处。
建立子程序的方法是:在编程软件的程序窗口的上方有主程序(MAIN)、子程序(SBR_0)、中断服务程序(INT_0)的标签,单击子程序标签即可进入SBR_0子程序显示区。添加一个子程序时,可以选择菜单栏中的“编辑”→“对象”→“子程序”命令增加一个子程序,子程序编号n从0开始自动向上生成。建立子程序最简单的方法是在程序编辑器中的空白处单击鼠标右键,再选择“插入”→“子程序”命令即可,如图4-99所示。
通常将具有特定功能并且将能多次使用的程序段作为子程序。子程序可以多次被调用,也可以嵌套(最多8层)。子程序的调用和返回指令的格式见表4-45。调用和返回指令示例如图4-100所示,当首次扫描时,调用子程序,若条件满足(M0.0=1)则返回,否则执行FILL指令。
图4-99 插入“子程序”命令
表4-45 跳转、循环、子程序调用指令格式
图4-100 子程序的调用和返回指令程序示例
a)主程序 b)子程序(www.daowen.com)
【例4-50】设计V存储区连续的若干个字的累加和的子程序,在OB1中调用它,在I0.0的上升沿,求VW100开始的10个数据字的和,并将运算结果存放在VD0。
【解】变量表如图4-100所示,主程序如图4-102所示,子程序如图4-103所示。当I0.0的上升沿时,计算VW100~VW118中10个字的和。调用指定的POINT的值“&VB100”是源地址指针的初始值,即数据从VW100开始存放,数据字个数NUM为常数10,求和的结果存放在VD0中。
图4-101 变量表
图4-102 主程序
图4-103 子程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。