NETWORK
    NAME Main
    // 定义数据块
    DATA_BLOCK DB1
        // 定义元件
        // 水泵
        BOOL Pump_On; // 水泵手动开关
        BOOL Pump_Auto; // 水泵自动控制开关
        INT Pump_Count; // 水泵计数器
        // 雾化器
        BOOL Atomizer_On; // 雾化器手动开关
        BOOL Atomizer_Auto; // 雾化器自动控制开关
        INT Atomizer_Count; // 雾化器计数器
        // 杀菌灯
        BOOL Sterilization_On; // 杀菌灯手动开关
        BOOL Sterilization_Auto; // 杀菌灯自动控制开关
        INT Sterilization_Count; // 杀菌灯计数器
        // 增氧泵
        BOOL Aeration_On; // 增氧泵手动开关
        BOOL Aeration_Auto; // 增氧泵自动控制开关
        INT Aeration_Count; // 增氧泵计数器
    END_DATA_BLOCK
    
    // 定时器
    TIMER T1(PT1S); // 1秒定时器
    
    // 定义常量
    INT Pump_Delay := 120; // 水泵启动延迟2分钟
    INT Atomizer_Delay := 540; // 雾化器启动延迟9分钟
    INT Sterilization_Delay := 360; // 杀菌灯启动延迟6分钟
    INT Aeration_Delay := 240; // 增氧泵启动延迟4分钟
    INT Pump_Work_Time := 1800; // 水泵工作时间30分钟
    INT Atomizer_Work_Time := 1200; // 雾化器工作时间20分钟
    INT Sterilization_Work_Time := 1800; // 杀菌灯工作时间30分钟
    INT Aeration_Work_Time := 1800; // 增氧泵工作时间30分钟
    
    // 定义步骤
    ST_STEP Step1 // 启动延迟
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Pump_Auto := TRUE; // 自动控制开启
        ST_OUT Atomizer_Auto := TRUE; // 自动控制开启
        ST_OUT Sterilization_Auto := TRUE; // 自动控制开启
        ST_OUT Aeration_Auto := TRUE; // 自动控制开启
        ST_OUT Pump_Count := 0; // 计数器清零
        ST_OUT Atomizer_Count := 0; // 计数器清零
        ST_OUT Sterilization_Count := 0; // 计数器清零
        ST_OUT Aeration_Count := 0; // 计数器清零
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step2 // 水泵启动
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Pump_On := TRUE; // 手动控制开启
        ST_OUT Pump_Auto := FALSE; // 自动控制关闭
        ST_OUT Pump_Count := Pump_Count + 1; // 计数器加1
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step3 // 水泵停止
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Pump_On := FALSE; // 手动控制关闭
        ST_OUT Pump_Auto := TRUE; // 自动控制开启
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step4 // 雾化器启动
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Atomizer_On := TRUE; // 手动控制开启
        ST_OUT Atomizer_Auto := FALSE; // 自动控制关闭
        ST_OUT Atomizer_Count := Atomizer_Count + 1; // 计数器加1
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step5 // 雾化器停止
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Atomizer_On := FALSE; // 手动控制关闭
        ST_OUT Atomizer_Auto := TRUE; // 自动控制开启
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step6 // 杀菌灯启动
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Sterilization_On := TRUE; // 手动控制开启
        ST_OUT Sterilization_Auto := FALSE; // 自动控制关闭
        ST_OUT Sterilization_Count := Sterilization_Count + 1; // 计数器加1
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step7 // 杀菌灯停止
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Sterilization_On := FALSE; // 手动控制关闭
        ST_OUT Sterilization_Auto := TRUE; // 自动控制开启
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step8 // 增氧泵启动
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Aeration_On := TRUE; // 手动控制开启
        ST_OUT Aeration_Auto := FALSE; // 自动控制关闭
        ST_OUT Aeration_Count := Aeration_Count + 1; // 计数器加1
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step9 // 增氧泵停止
        ST_OUT T1; // 启动1秒定时器
        ST_OUT Aeration_On := FALSE; // 手动控制关闭
        ST_OUT Aeration_Auto := TRUE; // 自动控制开启
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step10 // 水泵计时
        ST_OUT T1; // 启动1秒定时器
        IF Pump_Count * Pump_Delay >= 3600 THEN // 计数器达到1小时
            ST_OUT Pump_Count := 0; // 计数器清零
            ST_JUMP Step2; // 跳转到水泵启动步骤
        END_IF
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step11 // 雾化器计时
        ST_OUT T1; // 启动1秒定时器
        IF Atomizer_Count * Atomizer_Delay >= 32400 THEN // 计数器达到9小时
            ST_OUT Atomizer_Count := 0; // 计数器清零
            ST_JUMP Step4; // 跳转到雾化器启动步骤
        END_IF
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step12 // 杀菌灯计时
        ST_OUT T1; // 启动1秒定时器
        IF Sterilization_Count * Sterilization_Delay >= 21600 THEN // 计数器达到6小时
            ST_OUT Sterilization_Count := 0; // 计数器清零
            ST_JUMP Step6; // 跳转到杀菌灯启动步骤
        END_IF
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    ST_STEP Step13 // 增氧泵计时
        ST_OUT T1; // 启动1秒定时器
        IF Aeration_Count * Aeration_Delay >= 14400 THEN // 计数器达到4小时
            ST_OUT Aeration_Count := 0; // 计数器清零
            ST_JUMP Step8; // 跳转到增氧泵启动步骤
        END_IF
        ST_NEXT; // 跳转到下一个步骤
    END_STEP
    
    // 启动步骤
    ST_STEP Start
        ST_JUMP Step1; // 跳转到启动延迟步骤
    END_STEP
END_NETWORK
``
三菱FX1N控制一个水泵一个雾化器一个杀菌灯一个增氧泵。PLC上电后四个设备间隔2分钟依次启动启动完成后各自按设备指定的循环工作水泵每隔1小时启动30分钟;雾化器每隔9小时启动20分钟;杀菌灯每隔6小时启动30分钟;增氧泵每隔4小时启动30分钟。每个设备都可以手动控制启动和停止。按上文的描述用GX WORKS2写一个STL程序。

原文地址: https://www.cveoy.top/t/topic/cgxt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录