一、功能要求: 某停车场最多可同时容纳车辆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. |
|