技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 西门子PLC > 【S7-300使用指南】22.先赋值后使用

【S7-300使用指南】22.先赋值后使用

唐琳 发布于2015-12-30 11:28 38 0 标签:程序编写, 软件,

1 TEMP区的问题

在《本地数据TEMP》这篇文章中我们用一个简单的加法程序向大家演示了TEMP区的使用,但是我们在主程序OB1中只调用了1次,当我们多次调用这个程序的时候大家就会发现一个问题,无论我们调用几次,做几次加法运算都只能算出一个结果,如图 1-1所示我们在主程序中调用了三次FC1,虽然只是在次的调用中激活了加法运算,但是可以发现程序段2和程序段3虽然并没有进行计算但是却得出了和程序段1相同的结果。

1-1
那么问题出在哪里呢,其实问题的关键就出在了本地数据TEMP区,让我们一起来回顾一下FC1的程序吧。

接口

1-2

接口数据类型
接口
数据类型
add1
INT
add2
INT
add3
INT
add3_3
INT
start
BOOL
1

FC1

1-3
在这个程序中我们可以看到,加法的运算结果是先存放到本地数据add3中然后再由add3传送到输出接口add3_3

1-4
这里我们可以看到本地数据add3的起始地址是0.0由于是Int数据类型,因此add3占用的是FC1的本地数据LW0这个存储空间,由FC1程序可以看出只要add3被赋值,那么FC1就一定会将add3中的内容进行输出,因此当我们在主程序OB1中激活了段的加法,第二第三段在没有激活的情况下就跟着将段的结果一起输出了。

2 先赋值后使用

那么该如何避免这种情况的发生呢?这里我们就一定要用到先赋值后使用的方法,来避免这种情况的发生。那么怎么使用才算是先赋值后使用呢?其实非常简单,就是一定要保证建立好的本地数据时时刻刻都被占用,这个方法让我总结就是一个萝卜一个坑,先来先占,后到的萝卜PLC会自动给他分配别的本地数据区的位置,这样就不会出现上面那种相互干扰的情况出现了。那么TEMP区的本地数据怎么才算被时时刻刻都被占用呢?下面我们还是用这个加法的程序给大家举例。我们要做的只是把图 1-3中的常开触点start和接口start一并删除即可,删除后如图 2-1所示。

2-1
那么为什么我们只需要将段加法指令前面的常开触点删除就可以达到先赋值后使用的效果呢?其实大家可以仔细想一想,当加法指令前有常开触点的时候,如果当这个常开触点是断开的时候我们这个加法指令是不进行计算的,当不进行计算的时候本地数据add3就不处于被占用的状态,达不到时时刻刻都被占用的效果,而当我们把这个常开触点删除后add3就不存在不被占用的情况了,换句话说就是现在add3已经达到了被时时刻刻占用的效果了,这就是先赋值后使用,由图 2-2可见使用了先赋值后使用以后就不会再出现输出结果相互干扰的情况了。

2-2

作者:技成培训网(马乐)

【本文为原创作品。未经同意,盗取必究!】

推荐相关学习视频:

西门子S7-300 PLC初级

西门子S7-300使用指南


若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

程序编写 软件

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签