6ES71346JD000CA1现货西门子代理
6ES71346JD000CA1现货西门子代理
6ES71346JD000CA1现货西门子代理
控制要求
3个开关控制一盏照明灯(切换开关),任何一个开关都能控制照明灯的亮与灭。(此案例可以应用与家庭电路的控制,比如走廊有一个开关,入门处有一个开关,房间内部也有一个开关,多个开关都能控制这个照明灯)
I/O分配
表1-5-1 I/O分配
程序编写及思路
1.普通的触点和线圈去编写
1)我们可以列出3个开关的所有情况,打开用1表示,关闭用0表示,后看各种情况的Y0的状况
图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 利用程序扫描周期