B&R VC4 Ex 4.1.1 : Adding program logic and variables

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • B&R VC4 Ex 4.1.1 : Adding program logic and variables
    We add the program and the logic:
    PROGRAM _INIT
    END_PROGRAM
    PROGRAM _CYCLIC
    CASE State OF
    STATE_IDLE:
    IF VisuCtrl.WaterTemperature "b" 20 THEN
    VisuCtrl.internal.Timer.IN := NOT VisuCtrl.internal.Timer.Q;
    VisuCtrl.internal.Timer.PT := T#2s;
    VisuCtrl.internal.Timer;
    VisuCtrl.WaterTemperature := VisuCtrl.WaterTemperature - VisuCtrl.internal.Timer.Q;
    END_IF;
    IF VisuCtrl.btnWaterBoiler = TRUE
    AND VisuCtrl.WaterTemperature "s" VisuCtrl.SetTemp THEN
    VisuCtrl.internal.Timer.IN := FALSE;
    VisuCtrl.internal.Timer;
    State := STATE_TEMP_INCREASING;
    ELSE
    VisuCtrl.btnWaterBoiler := FALSE;
    END_IF;
    STATE_TEMP_INCREASING:
    VisuCtrl.internal.Timer.IN := NOT VisuCtrl.internal.Timer.Q;
    VisuCtrl.internal.Timer.PT := T#200ms;
    VisuCtrl.internal.Timer;
    VisuCtrl.WaterTemperature := VisuCtrl.WaterTemperature + VisuCtrl.internal.Timer.Q;
    IF VisuCtrl.WaterTemperature = 100
    OR VisuCtrl.WaterTemperature = VisuCtrl.SetTemp
    OR VisuCtrl.btnWaterBoiler = FALSE THEN
    VisuCtrl.btnWaterBoiler := FALSE;
    State := STATE_IDLE;
    END_IF;
    END_CASE;
    IF VisuCtrl.WaterTemperature = 100 THEN
    VisuCtrl.LEDcolor := 45;//Red color
    ELSIF VisuCtrl.btnWaterBoiler = TRUE THEN
    VisuCtrl.LEDcolor := 10;//Green color
    ELSIF VisuCtrl.btnWaterBoiler = FALSE THEN
    VisuCtrl.LEDcolor := 252;//Grey color
    END_IF;
    IF VisuCtrl.WaterTemperature = 100 THEN
    VisuCtrl.AlarmStatusDataPoint := 0;//SHOW
    ELSE
    VisuCtrl.AlarmStatusDataPoint := 1;//HIDE
    END_IF;
    END_PROGRAM
    PROGRAM _EXIT
    END_PROGRAM
    TYPE
    STATE_ENUM :
    (
    STATE_IDLE,
    STATE_TEMP_INCREASING,
    STATE_TEMP_BOILED,
    STATE_TEMP_DECREASING
    );
    VisuCtrl_typ : STRUCT
    btnWaterBoiler : BOOL;
    SetTemp : USINT;
    LEDcolor : USINT;
    AlarmStatusDataPoint : USINT;
    WaterTemperature : USINT := 20;
    internal : VisuCtrlinternal_typ;
    END_STRUCT;
    VisuCtrlinternal_typ : STRUCT
    Timer : TON;
    END_STRUCT;
    END_TYPE
    VAR
    State : STATE_ENUM;
    VisuCtrl : VisuCtrl_typ;
    END_VAR
    Disclaimer:
    This is just a hobby video.
    For proper assistance, kindly contact your local B&R professionals.

ความคิดเห็น • 1