刚入行的时候,我Zui喜欢的就是置位与复位这两个指令,可以说没有之一。不管是气缸控制,还是灯的控制,使用置位和复位两个指令就可以轻松搞定。但是随着编程时间越长,慢慢发现了它们的一些弊端,所以我越来越不喜欢用置位与复位指令编程了。这是为什么呢?一条条讲给你听。
1.执行效率不高
我们以Zui典型的电机启停控制程序进行举例,置位复位方式编程如图所示:
为什么说这个程序执行效率不高,因为这个程序如果条件满足时,一个扫描周期内会对Q0.0进行二次写入操作,一次是置1操作,一次是置0操作。
2.编程容易遗漏
置位与复位指令,通常是成对使用的,在编程的时候,如果遗漏了,则可能让程序处于一个状态。如果遗漏掉了置位指令,则会导致处于0的状态;如果遗漏掉了复位指令,则会导致处于1的状态。
3.设备未全扫描
置位复位指令,本质上是一种条件判断。在一个扫描周期内,如果启动和停止按钮都没有按下的状态,则会跳过对Q0.0的写入操作,即不写入0,也不写入1。如果处于这种状态,可能会导致不可预知的情况发生。
4.程序逻辑不严密
当置位操作与复位操作之间,存在多条程序时,会占用一定的扫描时间。如果这个时间存在时间足够长,可能存在一个极短的过渡阶段。当两个条件都满足时,可能在一个扫描周期内,电机先启动了,又停止了。
Zui后简单总结一下。虽然置位复位指令非常的简单,但是由于存在一些问题,所以对于逻辑控制的程序,不采用这种方法编程。那么采用什么方法实现呢?可以采用程序自锁的方式来进行逻辑控制。如图所示:
如果你有不同的意见和看法,欢迎联系我们进行交流。
在实际的一些项目中,会使用几十上百个模拟量输入信号,这些模拟量输入信号可能是电压、电流或者热电阻信号等等,如果每个都单独处理的话,非常耗费时间。我们就想着能不能使用一个程序,简单配置一下,就能处理所有的模拟量输入信号呢?当然是可以实现,这也是我们这篇文章要解答的问题,请接着往下看。
西门子S7-1200/1500 PLC中模拟量模块的类型包括电压/电流、电阻/热电阻、热电偶,如图所示:
这三类模拟量模块的信号,又可以概括为四种情况:
a.单极性信号
不过零的模拟量信号变化为单极性信号,比如0~5V、4~20mA、0~300Ω。
单极性模拟量信号的额定测量范围为0~27648,其转化公式为:
以一个检测距离0~200mm,模拟量信号为0~10V的传感器,当In等于13824时,带入公式的Out的物理量实际值等于100mm。
b.双极性信号
过零的模拟量信号变化为双极性信号,比如±10V、±80mV。
双极性模拟量信号的额定测量范围为±27648,其转化公式为:
以一个检测角度±90°,模拟量信号为±10V的倾角传感器,当In等于-27648时,带入公式的Out的物理量实际值等于-90°。
c.标准型温度测量
将Pt100这类温度传感器的阻值转化成温度的类型。
其转化公式为: