本文使用SCL语言进行程序编写,一个简单的霓虹灯控制程序,文末附程序截图与仿真视频,不足之处还望海涵,烦请多多指教。
干货★★★★★资料
使用SCL语言IF(条件语句)、CASE...OF(选择语句)控制霓虹灯,实现以下功能:
1、当按下启动按钮后,16盏彩灯依次以1S的时间间隔进行点亮;
2、当16盏灯全部点亮后,16盏灯以0.5Hz的频率闪烁10S;
3、10S完成后,16盏灯依次以1S的时间间隔进行熄灭;
4、当16盏灯全部熄灭后,16盏灯偶数灯全部点亮并且以0.5Hz频率进行闪烁,闪烁3S;
5、完成后16盏灯奇数灯全部点亮并且以0.5Hz的频率进行闪烁,闪烁3S;
6、偶数灯奇数灯交替闪烁6S,程序执行完毕,循环控制。
-----------------------------------------------------------------------------------------------------------------
SCL控制程序编程语句:
(*启动控制*)
IF ("03_启动" OR "03_中继1") AND NOT "03_停止" THEN
//典型的起保停电路
"03_中继1" := TRUE; //按下启动按钮,中继得电
ELSE
"03_中继1" := FALSE; //按下停止按钮,中继失电
END_IF;
(*控制复位*)
IF "03_启动" OR "03_停止" OR "03_中继2"THEN
//按下启动或停止按钮,进行灯和累加器复位
"霓虹灯控制定时".CV := 0; //复位累加器当前值
"03_霓虹灯_1" := FALSE; //复位霓虹灯状态
"03_霓虹灯_2" := FALSE;
"03_霓虹灯_3" := FALSE;
"03_霓虹灯_4" := FALSE;
"03_霓虹灯_5" := FALSE;
"03_霓虹灯_6" := FALSE;
"03_霓虹灯_7" := FALSE;
"03_霓虹灯_8" := FALSE;
"03_霓虹灯_9" := FALSE;
"03_霓虹灯_10" := FALSE;
"03_霓虹灯_11" := FALSE;
"03_霓虹灯_12" := FALSE;
"03_霓虹灯_13" := FALSE;
"03_霓虹灯_14" := FALSE;
"03_霓虹灯_15" := FALSE;
"03_霓虹灯_16" := FALSE;
END_IF;
(*使用加计数器设计成定时器*)
IF "03_中继1" THEN //启动后累加器开始运行
"霓虹灯控制定时".CTU(CU:="Clock_1Hz",
//使用1200PLC自带的1秒脉冲进行累加计时
R:="03_中继2" OR "03_停止" OR "03_启动", //累加器复位条件
PV:=56, //累加器复位条件
Q=>"03_中继2", //累加器输出
CV=>"03_计数器当前值"); //累加器当前计数值
END_IF;
(*控制程序*)
CASE "03_计数器当前值" OF
//16盏彩灯依次以1S的时间间隔进行点亮
1:
"03_霓虹灯_1" := TRUE;
2:
"03_霓虹灯_2" := TRUE;
3:
"03_霓虹灯_3" := TRUE;
4:
"03_霓虹灯_4" := TRUE;
5:
"03_霓虹灯_5" := TRUE;
6:
"03_霓虹灯_6" := TRUE;
7:
"03_霓虹灯_7" := TRUE;
8:
"03_霓虹灯_8" := TRUE;
9:
"03_霓虹灯_9" := TRUE;
10:
"03_霓虹灯_10" := TRUE;
11:
"03_霓虹灯_11" := TRUE;
12:
"03_霓虹灯_12" := TRUE;
13:
"03_霓虹灯_13" := TRUE;
14:
"03_霓虹灯_14" := TRUE;
15:
"03_霓虹灯_15" := TRUE;
16:
"03_霓虹灯_16" := TRUE;
//16盏灯以0.5Hz的频率闪烁10S;
17..27:
"03_霓虹灯_1" := "Clock_0.5Hz";
"03_霓虹灯_2" := "Clock_0.5Hz";
"03_霓虹灯_3" := "Clock_0.5Hz";
"03_霓虹灯_4" := "Clock_0.5Hz";
"03_霓虹灯_5" := "Clock_0.5Hz";
"03_霓虹灯_6" := "Clock_0.5Hz";
"03_霓虹灯_7" := "Clock_0.5Hz";
"03_霓虹灯_8" := "Clock_0.5Hz";
"03_霓虹灯_9" := "Clock_0.5Hz";
"03_霓虹灯_10" := "Clock_0.5Hz";
"03_霓虹灯_11" := "Clock_0.5Hz";
"03_霓虹灯_12" := "Clock_0.5Hz";
"03_霓虹灯_13" := "Clock_0.5Hz";
"03_霓虹灯_14" := "Clock_0.5Hz";
"03_霓虹灯_15" := "Clock_0.5Hz";
"03_霓虹灯_16" := "Clock_0.5Hz";
//16盏灯以0.5Hz的频率闪烁10S
28:
"03_霓虹灯_16" := FALSE;
"03_霓虹灯_2" := TRUE;
"03_霓虹灯_4" := TRUE;
"03_霓虹灯_6" := TRUE;
"03_霓虹灯_8" := TRUE;
"03_霓虹灯_10" := TRUE;
"03_霓虹灯_12" := TRUE;
"03_霓虹灯_14" := TRUE;
"03_霓虹灯_1" := TRUE;
"03_霓虹灯_3" := TRUE;
"03_霓虹灯_5" := TRUE;
"03_霓虹灯_7" := TRUE;
"03_霓虹灯_9" := TRUE;
"03_霓虹灯_11" := TRUE;
"03_霓虹灯_13" := TRUE;
"03_霓虹灯_15" := TRUE;
29:
"03_霓虹灯_15" := FALSE;
30:
"03_霓虹灯_14" := FALSE;
31:
"03_霓虹灯_13" := FALSE;
32:
"03_霓虹灯_12" := FALSE;
33:
"03_霓虹灯_11" := FALSE;
34:
"03_霓虹灯_10" := FALSE;
35:
"03_霓虹灯_9" := FALSE;
36:
"03_霓虹灯_8" := FALSE;
37:
"03_霓虹灯_7" := FALSE;
38:
"03_霓虹灯_6" := FALSE;
PLC内存数据; 5)PLC设置数据。 2.编写一个梯形图程序 下面以一个交通灯次序控制为例说明,该交通灯次序是一个标准的英国交通灯次序,顺序如下:只有红灯→红灯和和黄灯同时→只有...

西门子与三菱编程PLC指令有哪些不同
内存数据; 5)PLC设置数据。 2.编写一个梯形图程序 下面以一个交通灯次序控制为例说明,该交通灯次序是一个标准的英国交通灯次序,顺序如下:只有红灯→红灯和和黄灯同时→只有绿灯→只有黄灯。 编写一个梯形图程序...

西门子控制系统plc编程之接线图
表、PLC接线图、梯形图程序等。 电动机顺序启动、顺序停止控制 (I/O分配表、PLC接线图、梯形图程序) 2 电动机的顺序启动、同时停止 (I/O分配表、PLC接线图、梯形图程序) 3...

PLC梯形图的运行方式 PLC梯形图的特点
们能够与控制系统交互。 PLC梯形图的执行采用扫描式程序,即按照从上至下、从左至右的顺序扫描PLC梯形图程序。PLC扫描周期分为输入、程序执行和输出三个阶段。在输入阶段,PLC采集外部输入信号作为程序...

PLC梯形图的执行顺序和编程规则
用于控制工业自动化系统中的可编程逻辑控制器(PLC)。梯形图由电气工程师和编程人员使用,用于编写PLC程序,该程序在设备和机器上执行不同的逻辑流程控制。 PLC梯形图的执行顺序一般按照以下步骤: 1. 读取输入信号:在开...

PLC的控制线路和梯形图介绍
和停止控制能使用驱动指令(OUT),也能够使用置位指令(SET、RST)来实现。 1、采用线圈驱动指令实现起动、自锁和停止控制 线路与梯形图说明: 点击起动按钮SB1时,PLC内部梯形图程序...

PLC编程基本知识:梯形图与控制线路
、自锁和停止控制能使用驱动指令(OUT),也能够使用置位指令(SET、RST)来实现。 1、采用线圈驱动指令实现起动、自锁和停止控制 线路与梯形图说明: 点击起动按钮SB1时,PLC内部梯形图程序...


PLC程序:十字路口的交通指挥信号灯布置
)PLC 接线 (五)定义符号地址 (六)梯形图程序 自动售货机的 PLC 控制 如下图所示的自动售货机示意图,其工作要求如下: 1.此售货机可投入 1 元、5 元或 10 元硬币。 2.当投...

PLC梯形图编程的基本环节和规则
进行控制时,需要进行维护和修改,保证系统稳定可靠。 这几个基本环节和规则是PLC梯形图编程不可或缺的基础,掌握好这些基本环节和规则,就能够编写出稳定可靠的梯形图程序。 ...