[三菱] 3开关与1照明灯控制案例

[复制链接]
查看147 | 回复0 | 2024-5-28 13:33:53 | 显示全部楼层 |阅读模式
控制要求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  利用程序扫描周期



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则