一、功能要求:
某停车场最多可同时容纳车辆99个,用2位数码管显示空车位的数量。用出入感测器检测进出的车辆,进入1辆车,车位加1,出去一辆车,车位减1.
场内空车位的数量大于5时,入口处红灯亮,允许入场;等于和小于5时,绿灯闪烁,提醒车位车位即将满场;等于0时,红灯亮,禁止后续车辆入内。
二、接线图
三、程式讲解
3.1 程式总览
3.2 程式解读
第一段:这里用到特殊软元件M8002.MOV指令
a、什么特殊软元件:从PLC执行的角度,预先准备的内建功能动作的软元件。
这里用到的是初始脉冲(M8002,M8003):在PLC开始执行以后,仅瞬间(第一个扫描周期)为ON(M8002)或OFF(M8003),这个脉冲可以作为程式初始化或写入规定值等程式中的初始设定讯号使用。
b、动作时序
c、MOV指令:将软元件的内容传动(复制)到其他软元件中的指令。
动作说明:MOV是16位运算,
当指令输入为ON,在传送源S.的内容传送给目标D.。最多传送16个(4的倍数)位软元件。简单举例如下:
结合本例:当PLC初次启动,将常数99送到D0中。
第二、三段程式解读:
X0为入口车辆检测,X1位出口车辆检测,当X0检测上升沿,则将D0中的数减1,X1检测上升沿则D0数加1.
指令讲解:
a、INC:指定软元件资料中加1指令。为16位运算。
b、DEC:指定软元件资料中减1指令。为16位运算。
第4段程式解读:
a、RUN监控(M8000,M8001):
动作时序:
b、BCD转换指令:将BIN(2进位制)转换成BCD(10进位制)后传送的指令。在PLC中的运算按照BIN资料进行处理,在带BCD译码的7段显示器中显示数制时可使用本指令。16位运算。
本例中时2位数,所以是BCD K2M0,就是M0~M7。
c、SEGD七段码译码:资料译码后,点亮7段数码管(1位数)指令。译码表如下图所示:
本例中,将M0~M4点亮数码管个位,M4~M7点亮数码管十位。
第五段解读:
比较指令:当D0中的数制大于5则Y20为1,
当D0中的数值小于等于5大于0,同时呼叫内部1s时钟8013,来实现Y20闪烁。
第六段解读:
比较当D0中数值小于等于0,则Y21为1.