fc中temp(局部数据)的用法存疑

fc中temp(局部数据)的用法存疑

ID:21494162

大小:25.00 KB

页数:4页

时间:2018-10-22

fc中temp(局部数据)的用法存疑_第1页
fc中temp(局部数据)的用法存疑_第2页
fc中temp(局部数据)的用法存疑_第3页
fc中temp(局部数据)的用法存疑_第4页
资源描述:

《fc中temp(局部数据)的用法存疑》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、fc中temp(局部数据)的用法存疑  初涉step7编程,针对相同的启动条件的电机,想用fc做一个模板,在ob1或者另外的fc中多次调用,实现用不同的输入输出接口启动同启停条件的不同电机。  但是在做的过程引用了temp局部变量,有bool也有int,突然想到,如果在同一ob块或者fc中反复调用,此局部变量会不会碍事?因为是同一个fc块的局部变量,可能第一次调用,有起动条件接通了,或者赋值了,然后再第二次调用的时候,没有起动条件接通此变量,可是此局部变量因为第一次调用接通,始终在接通,或者参数对此变量赋值

2、,可是因为此局部变量在第一次调用时已经赋过值,所以此时有不该有的值.  会出现这样的情况么?  如果会出现这样的情况,是不是必须把局部变量全部做到in_out里去,一一赋予不同的实参?  问题补充:  不能做上,下沿和自保回路么?  我在一fc种编绘如下图程序,顺控同编号1,2,3,4  不光用了上,下沿自保回路,还需要根据ob1的信号接入刷新in_out与out  ob1中调用2次,这样能执行顺利么?    图片说明:1,22,13,44,3    最佳答案  fc和fb快中的temp变量为临时局部数据存

3、储区,在cpu内部由cpu根据所执行的程序快的情况临时分配。一旦程序执行完毕,该区域被收回(临时变量数据丢失),在下一个扫描周期中,执行到该程序时再重新分配temp存储区,而fn和fp指令是要必须把前一扫描周期的信号状态保存在边沿标志地址(一般为位地址)中,在当前的程序扫描周期,把rlo位的信号状态都将与前一周期获得的结果进行比较,看信号状态是否有变化。而fb、fc中的temp变量中数据在上一周期调用结束已经被清除,因此是无法用fc、fb中的temp临时变量作为检测rlo状态的;  局部变量  在程序的开始

4、必须有对该存贮区地址的赋值操作(即初始化),否则可能会出现错误的执行结果。  局部变量在所在块结束时被清零,局部变量是分配给每个子程序的临时存贮区。局部存储区是应该用于临时的,存放中间过程的。.call子程序时,in会把数值先送给分配好的局部变量,然后运行子程序。结束时,系统自动把分配好的局部变量传输给out。  局部变量是公共区间,所有程序中的局部变量都会使用这片区域。它保存的值不会程序调用的结束而自动清零,因此所有程序使用局部变量之前应该遵守先赋值,再使用的原则。同样的,应该警惕子程序返回cret指令对

5、局部变量out的影响,先赋值,再退出。  对于计数,建议用保持寄存器v区间。  当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。  局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。  由于局部变量区的数据不能带到下一扫描周期,因此只能用于存迪程序运算中的中间值,可以减少对全局变量区的占用。  由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,

6、所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。  尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。  为了较可简便地监视与检查程序,建议应用m存储区。  局部变量教程:  http://www.ad.siemens.com.cn/service/elearning/cn/coursev2.aspx?courseid=533

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。