Attention

IronPLC can only run very simple programs. The steps described are accurate but many language features are not yet supported.

CASE

The CASE statement selects one of several statement groups based on the value of an integer expression.

IEC 61131-3

Section 3.3.2.3

Support

Supported

Syntax

CASE expression OF
    case_value { ',' case_value } ':' statement_list
    { case_value { ',' case_value } ':' statement_list }
[ ELSE
    statement_list ]
END_CASE ;

Each case_value is an integer literal or a subrange (low .. high). Multiple values can be listed separated by commas.

Description

The CASE statement evaluates the expression and compares it against each case value in order. When a match is found, the corresponding statement list executes and control passes to the statement after END_CASE. If no match is found and an ELSE clause is present, its statement list executes.

Unlike C-style switch statements, there is no fall-through between cases.

Example

PROGRAM main
    VAR
        command : INT := 2;
        motor_on : BOOL;
        alarm : BOOL;
    END_VAR

    CASE command OF
        0:
            motor_on := FALSE;
            alarm := FALSE;
        1:
            motor_on := TRUE;
        2, 3:
            motor_on := TRUE;
            alarm := TRUE;
    ELSE
        alarm := TRUE;
    END_CASE;
END_PROGRAM

See Also

  • IF — conditional branching