西门子PLC模块总代理
西门子PLC模块总代理
西门子PLC模块总代理
为什么不要频繁使用置位和复位指令编程?
刚入行的时候,我*喜欢的就是置位与复位这两个指令,可以说没有之一。不管是气缸控制,还是灯的控制,使用置位和复位两个指令就可以轻松搞定。随着编程时间越长,慢慢发现了它们的一些弊端,我越来越不喜欢用置位与复位指令编程了。这是为什么呢?一条条讲给你听。
1. 执行效率不高。
我们以*典型的电机启停控制程序进行举例,置位复位方式编程如图所示:
为什么说这个程序执行效率不高,因为这个程序如果条件满足时,一个扫描周期内会对Q0.0进行二次写入操作,一次是置1操作,一次是置0操作。
2. 编程容易遗漏
置位与复位指令,通常是成对使用的,在编程的时候,如果遗漏了,则可能让程序处于一个状态。如果遗漏掉了置位指令,则会导致处于0的状态;如果遗漏掉了复位指令,则会导致处于1的状态。
3. 设备未全扫描
置位复位指令,本质上是一种条件判断。在一个扫描周期内,如果启动和停止按钮都没有按下的状态,则会跳过对Q0.0的写入操作,即不写入0,也不写入1。如果处于这种状态,可能会导致不可预知的情况发生。
4. 程序逻辑不严密
当置位操作与复位操作之间,存在多条程序时,会占用一定的扫描时间。如果这个时间存在时间足够长,可能存在一个极短的过渡阶段。当两个条件都满足时,可能在一个扫描周期内,电机先启动了,又停止了。
*后简单一下。置位复位指令非常的简单,由于存在一些问题,对于逻辑控制的程序,不采用这种方法编程。那么采用什么方法实现呢?可以采用程序自锁的方式来进行逻辑控制。如图所示:
TIA博途中如何设置不需要初始化DB块,也可以进行下载?
在博途中进行编程时,经常会见到这种情况:修改了DB数据块之后,需要重新初始化之后才能进行下载。如图所示:
我们知道这种情况下载程序,在DB块中所有的参数都会初始化,即数据清空了。如果说这个DB块保存了一些伺服、变频器的速度或者位置数据,那么全部都要重新设置一遍,非常的耗时耗力。那么有没有办法,不重新初始化,也能进行下载呢?当然是可以的。下面我们来介绍它的设置方法。
这里我们使用1200PLC V4.4版本在博图V16中进行演示。
添加一个DB数据块,如图所示:
在这里需要注意的是,该DB块的访问属性为“可优化访问的块”,如果是标准访问的块则不能使用该功能。
假设我们在DB块中已经使用了一些数据,如图所示:
如果此时,我们需要在DB中添加一个“轴1#设置位置3”的参数,如果直接添加,那么只有重新初始化之后才能下载。现在的处理方法是,先选择“保持实际值”选项,如图所示:
重新下载程序,此时则不会要求重新初始化下载,如图所示:
之后,可以在该DB块中,添加数据块,可不重新初始化下载,如图所示:
在这个地方需要大家注意的是,该方式默认可添加100字节的数据,超过了则会报错。如果想修改该值,可在DB块属性中设置,如图所示:
同样需要注意的是,如果在DB块中需要添加可保持存储区,则需要勾选“启用下载,但不重新初始化保持性变量”,这个只有在选择“保持设置值”之前勾选才有效。
如果我们不重新初始化设置,也想保持当前的数据,那么可以使用DB块中的另一个功能“快照”。顾名思义,快照是一个快速照片的功能,可以保存当前的实际值。这里还是以刚才的DB数据进行演示,目前的参数如图所示:
使用快照功能,可以保存当前的监视值,如图所示:
在这里可以看到,创建了一个快照,它是将监视值,快速复制到了快照值。如果此时修改了DB块,那么重新下载后,数据则会丢失,如图所示:
为了快速设置之前所用到的参数,可以将快照值下载到监视值中,如图所示: