200smart程序中first scan on参数赋值怎么使用

如题所述

第1个回答  2022-04-02
局部变量(Local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在PLC中局部变量应用不是很多,西门子PLC则引入局部变量,成为PLC中独具特色的功能。
局部变量是分配给每个子程序的临时存贮区。当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。

局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。由于局部变量区的数据不能带到下一扫描周期,因此只能用于存储程序运算中的中间值,可以减少对全局变量区的占用。

由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。

每个子程序调用的输入/输出参数的最大限制是16,如果您尝试下载的程序超过此一限制,IN和out加起来共16个超过16个就会出错。使用过程中应注意以下几点:

1、子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样的,中断程序也不能访问分配给主程序或子程序的局部存储器。

2、S7-200 SMART有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。

3、IN、OUT、IN_OUT变量都会与外部进行数据交换,所以不需要数据交换时应使用TEMP变量。

下面讲述西门子S7-200SMART中局部变量的类型以及使用方法。

S7-200 SMART提供了四种类型的局部变量,用L表示。

IN:输入变量。将外部指定位置的参数传入子程序。

OUT:输出变量。将子程序的运算结果传出到外部指定参数位置。

IN_OUT:输入输出变量。将指定位置的外部参数传导子程序,再由子程序修改后再将结果返回到同样的地址。

TEMP:临时保存在局部数据堆栈中的临时变量。一旦POU完全执行,临时变量数值

则无法再用。在两次POU执行之间,临时变量不保持其数值。

创建方法为:打开每个子程序都会弹出对应的变量表,如下图:

在变量表中选择要创建的变量类型,输入符号(英文/中文都行),再选择正确的数据类型,系统将自动分配对应的变量,局部变量地址是系统根据前面的地址及数据类型自动分配,不可自行修改。尽量把所有变量创建好后再开始根据分配的变量地址进行编程。万一在编程过程中需要再添加变量,一定要把显示方式切换成:“仅符号”否则插入变量后地址全部变化,程序中原本使用的地址将报错。

编写好的子程序不仅可以被当前项目的调用,还可以建成库供其它项目调用。在以后的编程中经常会出现一些经典的应用,或者经常处理的类似程序,我们就可以建立成“库”,碰到类似的用法只需要直接调用库进行编程即可。
相似回答