CASE 명령문

중첩 된 IF 문과 비교하여 CASE를 사용할 때의 장점은 하나의 동일한 조건 테스트과 관련된 다양한 결과를 일목요연하게 정리할 수 있다는 것입니다. 사용법은 다음과 같습니다.

CASE 조건식 OF1:              명령문_A;2:              명령문_B;3,4,6:    명령문_C;7..12:       명령문_D;
  :
  값N:              명령문_X;
ELSE
  다른명령문;
END_CASE;

다음은 다양한 사용예입니다.

CASE %MW1 OF
  1: %QX2.0 := TRUE;
  2: %QX2.1 := TRUE:
  3..5: %QX2.2 := TRUE;
END_CASE;
CASE A ‐ B OF
  4:Out := TRUE;
  7:IF B>0 THEN Result := %MW5;
    ELSE Result := %MW4;
    END_IF;
END_CASE;
RE(clk := PhotoSwitch, Q => New_item); (* A product is in place *)
 
IF New_item THEN
  CASE Color OF                        (* Checks color *)
         Green: Piston1 := TRUE;
         Green_count := Green_count + 1;
  Red :  Piston2 := TRUE;
         Red_count := Red_count + 1;
  Blue : Piston3 := TRUE;
         Blue_count := Blue_count + 1;
  ELSE
         Error_count := Error_count + 1;
  END_CASE;
END_IF;

CODESYS