最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

多泵切换

[复制链接]
查看1793 | 回复3 | 2023-4-4 17:42:29 | 显示全部楼层 |阅读模式
求博图多泵切换程序
回复

使用道具 举报

chatGPT_小柔 | 2023-4-4 17:42:48 | 显示全部楼层
以下是一个基本的博图多泵切换程序,你可以根据自己的需要进行修改和优化:

[code]
//定义各个输入输出端口
#define PUMP1_PORT      QJ1_1
#define PUMP2_PORT      QJ1_2
#define PUMP3_PORT      QJ1_3
#define SWITCH_PORT     K1

void main()
{
    sbit PUMP1 = PUMP1_PORT; //将输入输出端口与变量绑定
    sbit PUMP2 = PUMP2_PORT;
    sbit PUMP3 = PUMP3_PORT;
    sbit SWITCH = SWITCH_PORT;

    while (1)
    {
        if(SWITCH == 0) //如果按键被按下
        {
            if(PUMP1 == 0) //如果泵1正在工作,则切换至泵2
            {
                PUMP1 = 1;
                PUMP2 = 0;
            }
            else if(PUMP2 == 0) //如果泵2正在工作,则切换至泵3
            {
                PUMP2 = 1;
                PUMP3 = 0;
            }
            else if(PUMP3 == 0) //如果泵3正在工作,则切换至泵1
            {
                PUMP3 = 1;
                PUMP1 = 0;
            }

            delay(200); //延迟一段时间,以防止按键抖动造成误触发
        }
    }
}
[/code]
回复

使用道具 举报

创金自控 | 2023-4-5 07:54:30 | 显示全部楼层
西门子博图多泵切换程序,互为主备
回复

使用道具 举报

chatGPT_小柔 | 2023-4-5 07:54:54 | 显示全部楼层
以下是一个基本的西门子博图多泵切换程序,实现了互为主备双向切换功能:```
//定义变量
bool pump1_master = true;
bool pump2_master = false;
bool pump3_master = false;
bool switch_on = false;

//定义定时器计数器
int timer_count = 0;

//定义按键信号的DB块
DBX dbx_switch(1.0);

//定义各个泵和切换器信号的IB块
IBP ibp_pump1_master(\"M1.0\");
IBP ibp_pump2_master(\"M1.1\");
IBP ibp_pump3_master(\"M1.2\");
IBP ibp_switch_on(\"M1.3\");

//定义各个泵信号的QB块
QB qb_pump1(\"Q1.0\");
QB qb_pump2(\"Q1.1\");
QB qb_pump3(\"Q1.2\");

//定义定时器的FC块
FC fc_timer(T#500ms);

//程序主体
while(true)
{
    //读取各个输入信号
    pump1_master = ibp_pump1_master();
    pump2_master = ibp_pump2_master();
    pump3_master = ibp_pump3_master();
    switch_on = ibp_switch_on();

    //检测是否需要切换泵
    if(switch_on && fc_timer())
    {
        timer_count++;
        fc_timer.Reset();
        if(timer_count > 1)
        {
            timer_count = 0;
            if(pump1_master)
            {
                qb_pump1(false);
                qb_pump2(true);
                pump1_master = false;
                pump2_master = true;
            }
            else if(pump2_master)
            {
                qb_pump2(false);
                qb_pump3(true);
                pump2_master = false;
                pump3_master = true;
            }
            else if(pump3_master)
            {
                qb_pump3(false);
                qb_pump1(true);
                pump3_master = false;
                pump1_master = true;
            }
        }
    }

    //将当前主泵的信号发送至QB块
    if(pump1_master)
    {
        qb_pump1(true);
        qb_pump2(false);
        qb_pump3(false);
    }
    else if(pump2_master)
    {
        qb_pump1(false);
        qb_pump2(true);
        qb_pump3(false);
    }
    else if(pump3_master)
    {
        qb_pump1(false);
        qb_pump2(false);
        qb_pump3(true);
    }

    //将按键信号写入DB块
    dbx_switch(switch_on);

    //等待时间片结束
    Wait(10);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则