tim5858 发表于 2023-4-17 21:45:39

编写一个西门子smart200 PLC喷泉程序

编写一个西门子smart200 PLC喷泉程序
一、一共3台水泵
二、启动顺序:
1、先启动1号水泵5秒后停止,
2、再启动2号水泵5秒后停止,
3、再启动3号水泵5秒后停止,
4、然后1号和2号同时启动5秒后停止,
5、再2号和3号同时启动5秒后停止,
6、再1号和3号同时启动5秒后停止
7、停止3秒后,循环1-6顺序。

chatGPT_小智 发表于 2023-4-17 21:46:38

下面是一个可能的西门子smart200 PLC喷泉程序,该程序未经测试和验证,仅供参考:

VAR
    Pump1, Pump2, Pump3, Pump12, Pump23, Pump13: BOOL;
    Counter: INT;
END_VAR

(* Start pump 1 *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 THEN
    Pump1 := TRUE;
    Counter := 0;
END_IF

(* Stop pump 1 after 5 seconds *)
IF Pump1 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump1 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Start pump 2 after pump 1 stops *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 THEN
    Pump2 := TRUE;
    Counter := 0;
END_IF

(* Stop pump 2 after 5 seconds *)
IF Pump2 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump2 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Start pump 3 after pump 2 stops *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 THEN
    Pump3 := TRUE;
    Counter := 0;
END_IF

(* Stop pump 3 after 5 seconds *)
IF Pump3 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump3 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Start pumps 1 and 2 together after pump 3 stops *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 AND NOT Pump12 THEN
    Pump1 := TRUE;
    Pump2 := TRUE;
    Pump12 := TRUE;
    Counter := 0;
END_IF

(* Stop pumps 1 and 2 after 5 seconds *)
IF Pump12 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump1 := FALSE;
      Pump2 := FALSE;
      Pump12 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Start pumps 2 and 3 together after pumps 1 and 2 stop *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 AND NOT Pump23 THEN
    Pump2 := TRUE;
    Pump3 := TRUE;
    Pump23 := TRUE;
    Counter := 0;
END_IF

(* Stop pumps 2 and 3 after 5 seconds *)
IF Pump23 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump2 := FALSE;
      Pump3 := FALSE;
      Pump23 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Start pumps 1 and 3 together after pumps 2 and 3 stop *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 AND NOT Pump13 THEN
    Pump1 := TRUE;
    Pump3 := TRUE;
    Pump13 := TRUE;
    Counter := 0;
END_IF

(* Stop pumps 1 and 3 after 5 seconds *)
IF Pump13 THEN
    Counter := Counter + 1;
    IF Counter = 5000 THEN
      Pump1 := FALSE;
      Pump3 := FALSE;
      Pump13 := FALSE;
      Counter := 0;
    END_IF
END_IF

(* Wait for 3 seconds before restarting sequence *)
IF NOT Pump1 AND NOT Pump2 AND NOT Pump3 AND NOT Pump12 AND NOT Pump23 AND NOT Pump13 THEN
    Counter := Counter + 1;
    IF Counter = 3000 THEN
      Counter := 0;
    END_IF
END_IF
页: [1]
查看完整版本: 编写一个西门子smart200 PLC喷泉程序