点击"PLC发烧友"关注我们吧!
控制要求
3个开关控制一盏照明灯(切换开关),任何一个开关都能控制照明灯的亮与灭。(此案例可以应用与家庭电路的控制,比如走廊有一个开关,入门处有一个开关,房间内部也有一个开关,多个开关都能控制这个照明灯)
I/O分配
表1-5-1 I/O分配
输入点 | 注释 | 输出点 | 注释 |
X0 | 开关1 | Y0 | 照明灯 |
X1 | 开关2 | ||
X2 | 开关3 |
程序编写及思路
1.普通的触点和线圈去编写
1)我们可以列出3个开关的所有情况,打开用1表示,关闭用0表示,最后看各种情况的Y0的状况
X0 | X1 | X2 | Y0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 |
图1-5-1 3真值表
图1-5-3 完整程序
2)从上面表格可以看出,只有4种情况,Y0有输出,这4种情况X0、X1、X2的状态分别是:(1、0、0)(0、1、0)(0、0、1)(1、1、1),根据这个写出来4行能控制Y0输出的程序去控制Y0输出,完整程序如图1-5-3
2.使用ALT指令去写
这种写法的思维就是,每个按钮,无论打开或者关闭操作,都会把Y0当前的状态进行切换,这时我们可以使用3个按钮的所有上升沿与下降沿。
图1-5-4 使用ALT指令
3.利用程序扫描周期知识
这个写法的优点是,开关多了(不超过32个)都可以一步程序直接搞定,需要学习程序扫描周期相关知识点(本书第3章有更多应用案例)。
程序扫描是从第一行开始的,一开始的D0状态为0,当我们按下或者松开X0到X3之间的任一按钮时K1X0的值就会改变(由于上一个扫描周期时,程序最后一行把K1X0的值传送给了D0了)因此会导致K1X0和D0的值不相等,这时触发ALT指令把Y0的状态改变。
最后程序执行第二行,把K1X0的值传送给D0,,这样两个的数据就相等了,下一个周期第一行程序就无法执行了,除非重新触发某个按钮,状态发送了改变,有开始执行什么描述的控制过程
图1-5-5 利用程序扫描周期
来源:PLC发烧友,作者:技成培训网-陈育鑫,转载请注明出处!评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。回复:5000,可以领取5000张CAD工程图纸