基恩士PLC ST语言编写流水灯程序
时间: 2023-10-27 22:06:48 浏览: 51
以下是基恩士PLC ST语言编写流水灯程序的示例代码:
```
PROGRAM Main
VAR
iCount: INT := 0;
bFlag: BOOL := TRUE;
bLight1: BOOL := FALSE;
bLight2: BOOL := FALSE;
bLight3: BOOL := FALSE;
bLight4: BOOL := FALSE;
bLight5: BOOL := FALSE;
END_VAR
WHILE TRUE DO
iCount := iCount + 1;
IF iCount = 1 THEN
bLight1 := bFlag;
bLight2 := NOT bFlag;
bLight3 := NOT bFlag;
bLight4 := NOT bFlag;
bLight5 := NOT bFlag;
ELSIF iCount = 2 THEN
bLight1 := NOT bFlag;
bLight2 := bFlag;
bLight3 := NOT bFlag;
bLight4 := NOT bFlag;
bLight5 := NOT bFlag;
ELSIF iCount = 3 THEN
bLight1 := NOT bFlag;
bLight2 := NOT bFlag;
bLight3 := bFlag;
bLight4 := NOT bFlag;
bLight5 := NOT bFlag;
ELSIF iCount = 4 THEN
bLight1 := NOT bFlag;
bLight2 := NOT bFlag;
bLight3 := NOT bFlag;
bLight4 := bFlag;
bLight5 := NOT bFlag;
ELSIF iCount = 5 THEN
bLight1 := NOT bFlag;
bLight2 := NOT bFlag;
bLight3 := NOT bFlag;
bLight4 := NOT bFlag;
bLight5 := bFlag;
iCount := 0;
bFlag := NOT bFlag;
END_IF
// 输出信号控制流水灯
Out1 := bLight1;
Out2 := bLight2;
Out3 := bLight3;
Out4 := bLight4;
Out5 := bLight5;
// 程序延时,控制流水灯的速度
DELAY_MS(500);
END_WHILE
END_PROGRAM
```
其中,变量`iCount`用于计数,变量`bFlag`用于控制流水灯方向,变量`bLight1`~`bLight5`用于控制每个灯的亮灭状态。程序在循环中依次控制每个灯的状态,从而形成流水灯效果。DELAY_MS函数用于延时,控制流水灯的速度。