欢迎来到天天文库
浏览记录
ID:38161899
大小:155.25 KB
页数:5页
时间:2019-06-01
《西门子 _子程序_》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、子程序调用指令本标题讨论下列主题:使用子程序如何建立子程序如何终止子程序如何调用子程序嵌套和递归使用子程序(返回顶端)子程序帮助您对程序进行分块。主程序中使用的指令决定具体子程序的执行状况。当主程序调用子程序并执行时,子程序执行全部指令直至结束。然后,系统将控制返回至调用子程序网络中的主程序。子程序用于为程序分段和分块,使其成为较小的、更易管理的块。在程序中调试和维护时,您可以利用这项优势。通过使用较小的程序块,对这些区域和整个程序简单地进行调试和排除故障。只在需要时才调用程序块,可以更有效地使用PLC,因为所有的程序块可能无须执行每次扫描。最后,如果
2、子程序仅引用参数和局部内存,则可移动子程序。为了移动子程序,应避免使用任何全局变量/符号(I、Q、M、SM、AI、AQ、V、T、C、S、AC内存中的绝对地址)。如果子程序无调用参数(IN、OUT或IN_OUT)或仅在L内存中使用局部变量,您就可以导出子程序并将其导入另一个项目。欲在程序中使用子程序,必须执行下列三项任务:·建立子程序·在子程序局部变量表中定义参数(如果有)·从适当的POU(从主程序或另一个子程序)调用子程序当子程序被调用时,整个逻辑堆栈被保存,堆栈顶端被设为一,所有其他堆栈位置被设为零,控制被传送至调用子程序。当该子程序完成时,堆栈恢复
3、为在调用点时保留的数值,控制返回调用例行程序。子程序和调用例行程序共用累加器。由于子程序的使用,对累加器不执行保存或恢复操作。用参数调用子程序子程序可能包含交接的参数。参数在子程序的局部变量表中定义。参数必须有一个符号名(最多为23个字符)、一个变量类型和一个数据类型。可向子程序交接16个参数或从子程序交接16个参数。局部变量表中的变量类型域定义参数是否交接至子程序(IN)、交接至或交接出子程序(IN_OUT)或交接出子程序(OUT)。下表说明子程序的参数类型。欲增加参数条目,将光标放在您希望增加的类型的变量类型域上(IN、IN_OUT或OUT)。单极
4、鼠标右键,获得选项菜单。选择"插入"选项,然后选择"下一行"选项。在当前条目的下方会显示所选类型的另一个参数条目。调用参数类型说明IN参数被交接至子程序。如果参数是直接地址(例如VB10),在指定位置的数值被交接至子程序。如果参数是间接地址,(例如*AC1),位于指向位置的数值被交接至子程序。如果参数是数据常数(16#1234)或地址(&VB100),常数或地址数值被交接至子程序。IN_OUT位于指定参数位置的数值被交接至子程序,来自子程序的结果数值被返回至相同的位置。输入/输出参数不允许使用常数(例如16#1234)和地址(例如&VB100)。OUT
5、来自子程序的结果数值被返回至指定的参数位置。常数(例如16#1234)和地址(例如&VB100)不允许用作输出。TEMP未用作交接参数的任何本地内存不得用于子程序中的临时存储。局部变量表中的数据类型域定义参数的大小和格式。下表列出了参数类型。参数数据类型说明布尔该数据类型用于单位输入和输出。下例中的IN3是布尔输入。字节、字、双字这些数据类型分别识别1、2或4个字节不带符号的输入或输出参数。整数、双整数这些数据类型分别识别2或4个字节带符号的输入或输出参数。实数该数据类型识别单精度(4个字节)IEEE浮点数值。字符串此数据类型被用作字符串的四字节指针使
6、能位布尔使能位只可用于位(布尔)位。此说明告诉STEP7-Micro/WIN,这个输入参数是基于某位逻辑指令组合的使能位结果。布尔使能位输入必须在局部变量表中最先出现,早于任何其他类型的输入。唯有输入参数可以此方式使用。下例中的启用输入(EN)输入和IN1输入使用了布尔逻辑。子程序调用举例用于SBR_0的局部变量表LAD主程序FBD主程序用Micro/WIN从LAD/FBD图形建立的STL代码在LAD、FBD或STL视图中启用显示。注释:Micro/WIN保留L内存(LB60-LB63)的四个上方字节,将其用于调用参数数据。NETWORK1//L内存被
7、用于保存布尔输入参数状态,//该参数在LAD和FBD中显示为使能位输入。这样可允许//本网络在LAD、FBD和STL编辑器中显示。LDI0.0=L60.0LDI0.1=L63.7LDL60.0CALLSBR_0L63.7VB10I1.0&VB100*AC1VD200在STL编辑器中输入与以上显示相同的子程序调用的仅限STL的范例注释:STL程序员可使用该简化的调用程序NETWORK1//该网络只能在STL编辑器中显示,//因为被用作使能位输入的布尔参数//未保存至L内存。LDI0.0CALLSBR_0I0.1VB10I1.0&VB100*AC1VD20
8、0用于LAD和FBD建立子程序和定义调用参数后,STEP7-Micro/WIN自动生成子程序调
此文档下载收益归作者所有