【摘要】:主程序中使用的指令决定具体子程序的执行状况。然后,系统将控制返回至调用子程序网络中的主程序。子程序用于为程序分段和分块,使其成为较小的、更易管理的块。最后,如果子程序仅引用参数和局部内存,则可移动子程序。由于子程序的使用,对累加器不执行保存或恢复操作。
1.子程序的定义
子程序可以帮助用户对程序进行分块。主程序中使用的指令决定具体子程序的执行状况。当主程序调用子程序并执行时,子程序执行全部指令直至结束。然后,系统将控制返回至调用子程序网络中的主程序。
子程序用于为程序分段和分块,使其成为较小的、更易管理的块。在程序中调试和维护时,用户可以利用这项优势。通过使用较小的程序块,对这些区域和整个程序简单地进行调试和排除故障。只在需要时才调用程序块,可以更有效地使用PLC,因为所有的程序块可能无须执行每次扫描。
最后,如果子程序仅引用参数和局部内存,则可移动子程序。为了移动子程序,应避免使用任何全局变量/符号(I、Q、M、SM、AI、AQ、V、T、C、S、AC内存中的绝对地址)。如果子程序无调用参数(IN、OUT或IN_OUT)或仅在L内存中使用局部变量,用户就可以导出子程序并将其导入另一个项目。
2.子程序的建立
欲在程序中使用子程序,必须执行下列三项任务:(www.daowen.com)
1)建立子程序;
2)在子程序局部变量表中定义参数(如果有);
3)从适当的POU(从主程序或另一个子程序)调用子程序。
当子程序被调用时,整个逻辑堆栈被保存,堆栈顶端被设为一,所有其他堆栈位置被设为零,控制被传送至调用子程序。当该子程序完成时,堆栈恢复为在调用点时保留的数值,控制返回调用子程序。
子程序和调用子程序共用累加器。由于子程序的使用,对累加器不执行保存或恢复操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关西门子S7 PLC应用简明教程的文章