【控制要求】
4个开关控制一盏照明灯(切换开关),其中两个开关闭合时照明灯亮,其他情况不亮。【I/O分配】
I/O分配如表1-8-1,有4个输入点,1个输出点。表1-8-1 I/O分配 输入点 | 注释 | 输出点 | 注释 | X0 | 开关1 | Y0 | 照明灯 | X1 | 开关2 | | | X2 | 开关3 | | | X3 | 开关4 | | |
【程序编写及思路】
1.使用真值表 如表1-8-2,其中Y0输出为1的有6种情况,这6种情况的X3到X0的状态(寄存器是从高位排向低位的)分别是:0011、0101、0110、1001、1010、1100。表1-8-2真值表 X3 | X2 | X1 | X0 | Y0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 可以把6种Y0有输出的的6种情况都列出来去控制Y0,1对应常开,0对应常闭,程序如图1-8-1。
图1-8-1 使用触点控制程序 我们需要把这6种情况的真值的二进制数转换成10进制数,如下一一对应: 0011 = K3、0101 = K5、0110 = K6、1001 = K9、1010 = K10、1100 = K12 通过等于指令,判断等于这6种情况时,输出Y0,如图1-8-2 
图1-8-2 使用比较指令 2.使用功能指令- 如图1-8-3,使用SUM指令,该指令能把寄存器内为1的个数计算出来-
图1-8-3 SUM指令 我们只需判别出K1X0这个元件为1的个数,再判断这个个数为2个时做输出控制就可以了,程序如图1-8-4(M8000时特殊中间继电器,PLC通电就会自动导通)
图1-8-4 使用 SUM指令判别 具体的说明我们也录制了视频课程,扫描下方二维码可以观看(第9节)。
|