可以參考,能監(jiān)控當前運行風機編號,狀態(tài),以及加了停止動作
VAR  
    TimerRun : TON;         // 運行計時器  
    TimerStop : TON;        // 停止計時器  
    FanState : ARRAY[1..4] OF BOOL; // 風機狀態(tài)數(shù)組(TRUE-運行,F(xiàn)ALSE-停止)  
    CurrentFan : INT;       // 當前運行的風機編號(1-A,2-B,3-C,4-D)  
    FanOrder : ARRAY[1..4] OF INT := [1, 2, 3, 4]; // 風機排序數(shù)組,可以修改排序  
    EmergencyStop : BOOL;   // 緊急停止按鈕狀態(tài)  
    SafetyInterlock : BOOL; // 安全聯(lián)鎖狀態(tài)  
END_VAR  
  
//初始化  
IF NOT TimerRun.Q AND NOT TimerStop.Q AND NOT EmergencyStop AND SafetyInterlock THEN  
    FOR i := 1 TO 4 DO  
        FanState := FALSE; // 所有風機初始狀態(tài)為停止  
    END_FOR;  
    CurrentFan := FanOrder[1]; // 根據(jù)風機排序數(shù)組確定起始風機  
    TimerRun(IN:=TRUE, PT:=T#10s); // 設置運行計時器為10秒  
END_IF  
  
// 風機運行邏輯  
IF NOT EmergencyStop AND SafetyInterlock THEN  
    IF TimerRun.Q THEN  
        // 當前風機正在運行或即將運行  
        IF NOT FanState[CurrentFan] THEN  
            // 啟動當前風機  
            FanState[CurrentFan] := TRUE;  
            // 這里加入控制當前風機啟動的代碼  
        END_IF  
    ELSE  
        // 運行時間到,停止當前風機  
        FanState[CurrentFan] := FALSE;  
        // 這里加入控制當前風機停止的代碼  
        TimerStop(IN:=TRUE, PT:=T#5s); // 設置停止計時器為5秒  
    END_IF  
      
    IF TimerStop.Q THEN  
        // 停止時間到,切換到下一個風機  
        CurrentFan := FanOrder[(CurrentFan MOD 4) + 1]; // 根據(jù)風機排序數(shù)組循環(huán)風機編號  
        TimerRun(IN:=TRUE, PT:=T#10s); // 重置運行計時器為10秒  
    END_IF  
ELSE  
    // 緊急停止或安全聯(lián)鎖斷開,停止所有風機  
    FOR i := 1 TO 4 DO  
        FanState := FALSE;  
    END_FOR;  
    TimerRun(IN:=FALSE); // 停止運行計時器  
    TimerStop(IN:=FALSE); // 停止停止計時器  
END_IF