西门子
编写一个西门子1500PLC启动后三个灯泡依次亮两秒,顺序为黄灯亮两秒,绿灯亮两秒,红灯亮两秒然后循环,信息如下:1.编程软件版本为博图V18
2.用scl语言编程,程序时写在FB功能块中
3.要符合西门子博图编程规则
以下是符合西门子博图编程规则的SCL语言程序,用于S7-1500 PLC,实现三个灯泡依次亮两秒的循环效果:
FUNCTION_BLOCK LampControl
VAR_INPUT
enable : BOOL;
END_VAR
VAR_OUTPUT
yellowLamp : BOOL;
greenLamp : BOOL;
redLamp : BOOL;
END_VAR
VAR
timer : TON := T#2S; // 定时器,2秒
step : BYTE;
END_VAR
CASE step OF
0:
IF enable THEN
timer(IN:=TRUE);
IF timer.Q THEN
step := 1;
yellowLamp := TRUE;
greenLamp := FALSE;
redLamp := FALSE;
timer(IN:=FALSE);
END_IF;
ELSE
yellowLamp := FALSE;
greenLamp := FALSE;
redLamp := FALSE;
timer(IN:=FALSE);
END_IF;
1:
IF enable THEN
timer(IN:=TRUE);
IF timer.Q THEN
step := 2;
yellowLamp := FALSE;
greenLamp := TRUE;
redLamp := FALSE;
timer(IN:=FALSE);
END_IF;
ELSE
yellowLamp := FALSE;
greenLamp := FALSE;
redLamp := FALSE;
timer(IN:=FALSE);
END_IF;
2:
IF enable THEN
timer(IN:=TRUE);
IF timer.Q THEN
step := 0;
yellowLamp := FALSE;
greenLamp := FALSE;
redLamp := TRUE;
timer(IN:=FALSE);
END_IF;
ELSE
yellowLamp := FALSE;
greenLamp := FALSE;
redLamp := FALSE;
timer(IN:=FALSE);
END_IF;
END_CASE
END_FUNCTION_BLOCK
在博图V18编程软件中,新建一个函数块,将上述代码复制粘贴到该函数块中。在主程序中调用这个函数块,并利用enable信号来控制函数块的启停,yellowLamp、greenLamp、redLamp分别连接到对应的输出点位。
在运行时,当enable为TRUE时,三个灯泡会按照要求依次亮两秒的循环效果。
页:
[1]