三菱FX1N PLC 控制水泵、雾化器、杀菌灯和增氧泵程序

本程序使用三菱FX1N PLC控制一个水泵、一个雾化器、一个杀菌灯和一个增氧泵,实现以下功能:

  1. PLC 上电后,四个设备间隔 2 分钟依次启动。
  2. 启动完成后,每个设备按指定的循环工作时间工作。
    • 水泵每隔 1 小时启动 30 分钟;
    • 雾化器每隔 9 小时启动 20 分钟;
    • 杀菌灯每隔 6 小时启动 30 分钟;
    • 增氧泵每隔 4 小时启动 30 分钟。
  3. 每个设备都可以手动控制启动和停止。

STL 程序

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

说明:

  • 程序使用 STL 语言编写,适用于三菱 FX1N 系列 PLC。
  • 数据块 DB1 中定义了每个设备的开关状态和计数器。
  • 程序使用定时器 T1,每隔 1 秒执行一次循环。
  • 每个设备的启动延迟时间和工作时间用常量定义。
  • 程序使用步骤结构,每个步骤对应一个功能。
  • 手动控制开关分别对应 Pump_On、Atomizer_On、Sterilization_On 和 Aeration_On,自动控制开关分别对应 Pump_Auto、Atomizer_Auto、Sterilization_Auto 和 Aeration_Auto。
  • 每个设备的计数器用于记录设备运行时间,达到指定时间后会自动启动。

使用说明:

  1. 将程序下载到三菱 FX1N PLC 中。
  2. 通过 PLC 的输入输出端口连接水泵、雾化器、杀菌灯和增氧泵。
  3. 通过手动开关控制每个设备的启动和停止。
  4. 程序运行后,每个设备会按照设定时间自动启动和停止。

注意:

  • 本程序仅供参考,请根据实际情况进行修改和调试。
  • 程序中的常量值可根据实际需求进行调整。
  • 请确保 PLC 的输入输出端口连接正确,避免设备损坏。
  • 在使用 PLC 控制设备时,请注意安全操作。

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

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