사용자 도구

사이트 도구

English

codesysmanual:declarationvariable

7. 변수 선언

프로그램에서 사용되는 변수는 사전에 VAR 과 END_VAR사이에 선언해주어야 합니다.

다음은 변수 선언 예입니다.

VAR
  Start : BOOL := TRUE;
  Alarm : BOOL;
  MV : REAL := 48.5;
  Temp_ref : INT := 70;
  Denomination : STRING := ‘Degrees’;
  Light : Color := Yellow;
  Time1 : TOD;
  Time2 : TIME := time#70m_30s;
  Date1 : DATE := DATE#2007‐06‐18;
END_VAR

여러개 변수를 한번에 선언할 수 있습니다.

VAR
  Value_1, Value_2, Value_3 : INT;
END_VAR

7.1 상수 선언

프로그램에서 변경되지 않는 수를 상수라고 합니다. 상수는 다음과 같이 선언합니다.

VAR CONSTANT
  Setpoint : INT := 75;
END_VAR

7.2 RETAIN 선언

또 다른 중요한 한정자는 RETAIN입니다. RETAIN변수는 웜부팅시 그 값을 유지합니다.

VAR RETAIN
  Stored_value : WORD;
END_VAR

7.3 전역 변수

IEC 61131-3에서 가장 주목할 만한 기능은 변수를 선언 할 수 있다는 것입니다. 이렇게 선언된 변수는 해당 POU 내에서만 사용할 수 있습니다. 다른 POU에 같은 이름의 변수가 있어도, 서로 다른 영역에 저장되므로 충돌 위험이 없습니다.

그런데 때로는 모든 POU에서 하나의 변수에 접근하고 싶은 경우도 있습니다. 이럴때는 전역변수를 선언하고 사용하면 됩니다.

VAR_GLOBAL
  ItemCount : UINT;
  AlarmLight : BOOL;
END_VAR

CODESYS에서 전역 변수는 POU 내부가 아닌 별도의 정해진 공간에 선언해야 합니다.

7.4 INPUT 또는 OUTPUT 변수

입력용 변수는 VAR_INPUT, 출력용 변수는 VAR_OUTPUT으로 선언할 수 있습니다. VAR_IN_OUT은 입출력 겸용 변수입니다.

FUNCTIONBLOCK CTU
VAR_INPUT (* 입력 변수 선언 *)
  CU : BOOL; 
  RESET : BOOL;
  PV : WORD; 
END_VAR

VAR_OUTPUT (* 출력 변수 선언 *)
  Q : BOOL; 
  CV : WORD; 
END_VAR

VAR (* 로컬 변수 선언 *)
  M : BOOL;
END_VAR
:
: (* 프로그램 코드 *)
:
END_FUNCTION_BLOCK

위 코드를 블록도로 표현하면 다음과 같습니다.

7.5 한정자

변수에 넣을 수 있는 값을 한정짓게 하는 표현입니다.

TYPE
  HoleNumber : INT (−800..200);
END_TYPE

열거형 한정자도 사용할 수 있습니다.

TYPE
  Color : (Green, Yellow, Red);
END_TYPE

이렇게 선언하면 "Green"값에는 값 0이 자동으로 할당됩니다. "Yellow"는 정수 1을 사용하고 "Red"는 정수 2를 사용합니다.

TYPE
  Color : (Green := 11, Yellow:= 31, Red:= 51);
END_TYPE

이런식으로 서로 다른 값을 리턴하도록 할 수 있습니다.

7.6 배열

다음과 같은 형식으로 베열을 선언합니다.

TYPE
  배열명1 : ARRAY [하한..상한] OF 변수형;
  배열명2 : ARRAY [하한1..상한1, 하한2..상한2] OF 변수형;
END_TYPE

하한과 상한은 반드시 정수로 써주어야 합니다.

아래와 같이 선언하면 세가지 데이터 유형이 선언됩니다.

TYPE One_dim: ARRAY [0..9] OF USINT; END_TYPE
TYPE Two_dim: ARRAY [1..2, 1..5] OF INT; END_TYPE
TYPE Three_dim: ARRAY [0..3, 0..3, 0..3] OF REAL; END_TYPE
  • 1 차원 배열 10 개 요소
  • 2 * 5 = 10 개 요소가있는 2 차원 배열
  • 3 차원 4 * 4 * 4 = 64 요소가있는 배열

CODESYS 와 ComfilePi

codesysmanual/declarationvariable.txt · 마지막으로 수정됨: 2020/12/14 21:43 저자 Comfile Technology