最新提现记录

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

用博图SCL语言编写程序

[复制链接]
查看1903 | 回复1 | 2023-4-27 15:40:35 | 显示全部楼层 |阅读模式
[align=left][align=left]1、控制要求[/align][align=left](1)总体程序控制[/align][align=left]序号        名称        功能要求        说明[/align][align=left]1        电源控制        电源开关按键控制循环开关机。        默认模式:[/align][align=left]洗涤选择:标准[/align][align=left]洗衣时间:6[/align][align=left]清洗选择:一清[/align][align=left]脱水时间:3[/align][align=left]2        洗涤模式设定        打开电源在默认模式状态,在非洗涤状态下可进行模式设定。        [/align][align=left]3        洗涤控制        启动暂停按键控制洗衣机按照洗涤模式执行洗涤程序,暂停后保留现场运行参数。洗涤过程中,不能执行模式设定。        [/align][align=left]4        洗衣机开门控制        打开洗衣机门电机停止运行,保留现场运行参数。        [/align][align=left](2)洗涤程序选择[/align][align=left]序号        名称        功能要求        说明[/align][align=left]1        牛仔        电机正转20秒,反转20秒,[/align][align=left]高水位时启动。        洗涤选择按键循环选择,对应指示灯亮,洗涤时对应指示灯亮。[/align][align=left]2        标准        电机正转15秒,反转15秒。[/align][align=left]高水位时启动。        [/align][align=left]3        轻柔        电机正转10秒,反转10秒。[/align][align=left]高水位时启动。        [/align][align=left]4        羊毛        电机正转5秒,反转5秒。[/align][align=left]高水位时启动。        [/align][align=left](3)洗涤时间选择[/align][align=left]序号        名称        功能要求        说明[/align][align=left]1        12        电机持续运转时间6分钟。        洗涤时间选择按键循环选择,对应指示灯亮,洗涤时对应指示灯亮。[/align][align=left]2        9        电机持续运转时间5分钟。        [/align][align=left]3        6        电机持续运转时间4分钟。        [/align][align=left]4        3        电机持续运转时间3分钟。        [/align][align=left](4)清洗选择[/align][align=left]序号        名称        功能要求        说明[/align][align=left]1        溢注        洗涤后排水        清洗选择按键循环选择,对应指示灯亮,清洗时对应指示灯亮。[/align][align=left]2        一清        洗涤后排水,再进水,执行1次清洗,清洗时间1分钟,正反转安洗涤选择程序执行,清洗完成后排水。        [/align][align=left]3        二清        洗涤后排水,再进水,执行1次清洗,清洗时间1分钟,正反转按洗涤选择程序执行,清洗完成后排水,再重复执行一遍清洗程序。        [/align][align=left](5)脱水时间[/align][align=left]序号        名称        功能要求        说明[/align][align=left]1        5        电机持续运转时间5分钟,脱水时排水,时间到报警结束。        脱水时间选择按键循环选择,对应指示灯亮,洗涤时对应指示灯亮。[/align][align=left]2        3        电机持续运转时间3分钟,脱水时排水,时间到报警结束。        [/align][align=left]3        1        电机持续运转时间1分钟,脱水时排水,时间到报警结束。        [/align][align=left](6)数码管控制[/align][align=left]序号        名称        显示要求        说明[/align][align=left]1        虚拟数码管        显示选定的脱水时间,单位分。        脱水完成时为0。[/align][align=left]2、I/O分配[/align][align=left](1)开关量输入[/align][align=left]序号        名称        点号        对应端口[/align][align=left]1        洗衣机开门信号        I0.0        Q1[/align][align=left]2        高水位信号        I0.1        Q2[/align][align=left]3        低水位信号        I0.2        Q3[/align][align=left]4        电源开关        I8.6        K6[/align][align=left]5        启动/暂停        I8.7        K7[/align][align=left]6        洗涤选择        I8.2        K0[/align][align=left]7        洗衣时间        I8.3        K1[/align][align=left]8        清洗选择        I8.4        K2[/align][align=left]5        脱水选择        I8.5        K3[/align][align=left](2)开关量输出[/align][align=left]序号        名称        点号        对应端口[/align][align=left]1        编码信号:[/align][align=left]1)洗涤选择:牛仔0000、标准0001、轻柔0010、羊毛0011[/align][align=left]2)洗衣时间:3分钟0100、6分钟0101、9分钟0110、12分钟0111[/align][align=left]3)清洗选择:溢注1000、一清1001、二清1010[/align][align=left]4)脱水时间:1分钟1011、3分钟1100、5分钟1101        Q0.0        I1[/align][align=left]2                Q0.1        I2[/align][align=left]3                Q0.2        I3[/align][align=left]4                Q0.3        I4[/align][align=left]5        洗衣机内景显示        Q0.4        I5[/align][align=left]6        进水阀        Q0.5        I7[/align][align=left]7        出水阀        Q0.6        I8[/align][align=left]8        正转        Q0.7        I9[/align][align=left]9        反转        Q1.0        I10[/align][align=left]10        脱水        Q1.1        I11[/align][align=left]11        数码管个位:根据8421码,控制数码管显示0-9,IN13-IN10分别对应8、4、2、1。        Q8.0        I12[/align][align=left]12                Q8.1        I13[/align][align=left]13                Q8.2        I14[/align][align=left]14                Q8.3        I15[/align][align=left]15        数码管十位:根据8421码,控制数码管显示0-9,IN17-IN14分别对应8、4、2、1。        Q8.4        I16[/align][align=left]16                Q8.5        I17[/align][align=left]17                Q8.6        I18[/align][align=left]18                Q8.7        I19[/align]

[align=left]根据上述要求用博图的SCL语言编写详细程序[/align][/align]
回复

使用道具 举报

chatGPT_小智 | 2023-4-27 15:42:14 | 显示全部楼层
程序如下:

//声明变量
VAR
    //用于保存洗涤选择、洗衣时间、清洗选择、脱水时间的编码
    washMode:BYTE:=0;
    washTime:BYTE:=4; //默认为12分钟
    washClean:BYTE:=0;
    spinTime:BYTE:=0;
    //用于保存当前是否为洗涤状态和是否为暂停状态的标志
    isWashing:BOOL:=FALSE;
    isPaused:BOOL:=FALSE;
END_VAR

//主程序
IF NOT isPaused THEN //如果不是暂停状态
    IF NOT isWashing THEN //如果不是洗涤状态
        //更新洗涤模式、时间、清洗、脱水时间以及相应编码的指示灯
        washMode:=I8.2 + I8.3 * 2#10 + I8.4 *2#100 + I8.5 * 2#1000;
        IF I8.3 THEN //如果按下洗衣时间按钮
            CASE washTime OF //根据现有的洗衣时间进行循环选择
                1:washTime:=4;
                4:washTime:=3;
                3:washTime:=2;
                2:washTime:=1;
            END_CASE
        END_IF
        washClean:=I8.4 + I8.5 * 2#10;
        spinTime:=I8.5 + I8.6 * 2#10 + I8.7 * 2#100;

        //更新数码管显示
        IF spinTime > 0 THEN //如果在脱水状态
            DINT_TO_INT(spinTime,IN_OUT := ((I8.1 * 2#1000) + (I8.0 * 2#100) + (I13 * 2#10) + I10),MIN_VAL := 0,MAX_VAL := 99);
        ELSE //不在脱水状态下,则更新洗衣时间的数码管显示
            DINT_TO_INT(washTime * 3,IN_OUT := ((I8.1 * 2#1000) + (I8.0 * 2#100) + (I13 * 2#10) + I10),MIN_VAL := 0,MAX_VAL := 99);
        END_IF

        //控制进水和排水阀门
        IF isWashing AND (I0.1 = FALSE) THEN //如果正在洗涤,并且水位已经达到高位,就要开始排水
            Q0.6:=TRUE;
            Q0.5:=FALSE;
        ELSEIF (NOT isWashing) AND (I0.1 = TRUE) THEN //如果不在洗涤状态,但是水位仍然在高位,说明正在排水
            Q0.5:=TRUE;
            Q0.6:=FALSE;
        ELSE //否则就要继续进水
            Q0.5:=TRUE;
            Q0.6:=FALSE;
        END_IF

        //控制电机正转、反转和停转
        IF (isWashing OR spinTime > 0) AND (spinTime < 255) THEN //如果在洗涤或脱水状态下
            CASE washMode OF //根据洗涤模式进行控制
                0: //默认情况下,不执行任何洗涤动作
                    Q1.0:=FALSE;
                    Q1.1:=FALSE;
                1: //牛仔模式
                    IF I0.1 THEN //如果水位到了高位
                        Q1.0:=TRUE;
                        Q1.1:=FALSE;
                        spinTime:=20;
                    END_IF
                2: //标准模式
                    IF I0.1 THEN //如果水位到了高位
                        Q1.0:=TRUE;
                        Q1.1:=FALSE;
                        spinTime:=15;
                    END_IF
                3: //轻柔模式
                    IF I0.1 THEN //如果水位到了高位
                        Q1.0:=TRUE;
                        Q1.1:=FALSE;
                        spinTime:=10;
                    END_IF
                4: //羊毛模式
                    IF I0.1 THEN //如果水位到了高位
                        Q1.0:=TRUE;
                        Q1.1:=FALSE;
                        spinTime:=5;
                    END_IF
            END_CASE
        ELSE //不在洗涤或脱水状态下
            Q1.0:=FALSE;
            Q1.1:=FALSE;
        END_IF

    END_IF

    //控制洗衣机门电机
    IF NOT Q1.0 AND NOT Q1.1 THEN //如果电机没有运行
        IF I0.0 THEN //如果开门按钮被按下,则停止电机的运行,并且将isPaused标志设置为TRUE
            Q0.4:=FALSE;
            isPaused:=TRUE;
        END_IF
    ELSE //电机正在运行
        IF I0.0 THEN //如果开门键被按下,则停止电机的运行,并且将isWashing标志设置为FALSE
            Q1.0:=FALSE;
            Q1.1:=FALSE;
            isWashing:=FALSE;
            Q0.4:=FALSE;
        END_IF
    END_IF

    //控制启动/暂停的按钮
    IF NOT isWashing AND NOT isPaused THEN //如果不在洗涤状态也不在暂停状态下,可以按启动键开始洗涤程序
        IF I8.7 THEN //如果启动键被按下,就开始洗涤程序,并将isWashing标志设置为TRUE
            isWashing:=TRUE;
            Q0.4:=TRUE;
        END_IF
    ELSEIF isWashing AND NOT isPaused THEN //如果正在洗涤,可以按暂停键暂停
        IF I8.7 THEN //如果暂停键被按下,就暂停洗涤程序,并将isPaused标志设置为TRUE
            isPaused:=TRUE;
            Q0.4:=FALSE;
        END_IF
    ELSEIF NOT isWashing AND isPaused THEN //如果处于暂停状态,可以按启动键继续洗涤程序
        IF I8.7 THEN //如果启动键被按下,就继续洗涤程序,并将isPaused标志设置为FALSE
            isPaused:=FALSE;
            Q0.4:=TRUE;
        END_IF
    END_IF
END_IF

//控制清洗选择的指示灯
CASE washClean OF //根据当前清洗选择进行控制
    0:Q0.1:=FALSE;Q0.2:=FALSE;
    1:Q0.1:=TRUE;Q0.2:=FALSE;
    2:Q0.1:=FALSE;Q0.2:=TRUE;
END_CASE

//控制洗衣时间的指示灯
CASE washTime OF //根据当前洗衣时间进行控制
    1:Q0.3:=TRUE;Q0.4:=FALSE;Q0.5:=FALSE;Q0.6:=FALSE;
    2:Q0.3:=FALSE;Q0.4:=TRUE;Q0.5:=FALSE;Q0.6:=FALSE;
    3:Q0.3:=FALSE;Q0.4:=FALSE;Q0.5:=TRUE;Q0.6:=FALSE;
    4:Q0.3:=FALSE;Q0.4:=FALSE;Q0.5:=FALSE;Q0.6:=TRUE;
END_CASE

//控制洗涤模式的指示灯
CASE washMode OF //根据当前洗涤模式进行控制
    1:Q0.7:=TRUE;Q0.0:=FALSE;Q0.1:=FALSE;Q0.2:=FALSE;
    2:Q0.7:=FALSE;Q0.0:=TRUE;Q0.1:=FALSE;Q0.2:=FALSE;
    3:Q0.7:=TRUE;Q0.0:=TRUE;Q0.1:=FALSE;Q0.2:=FALSE;
    4:Q0.7:=FALSE;Q0.0:=FALSE;Q0.1:=TRUE;Q0.2:=FALSE;
END_CASE

//控制脱水时间的指示灯
CASE spinTime OF //根据当前脱水时间进行控制
    1:Q8.0:=TRUE;Q8.1:=FALSE;Q8.2:=FALSE;
    3:Q8.0:=FALSE;Q8.1:=TRUE;Q8.2:=FALSE;
    5:Q8.0:=FALSE;Q8.1:=FALSE;Q8.2:=TRUE;
ELSE //如果不在脱水状态下
回复

使用道具 举报

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

本版积分规则