사용자 도구

사이트 도구

English

codesysmanual:datatypee

문서의 이전 판입니다!


4. 변수형

기존 PLC 시스템에서는 전역변수만 사용되고, M1002 와 같이 고정주소를 가지고 있습니다. 사용자가 실수로 같은 주소를 전혀 다른 용도로 사용할 경우 심각한 오류를 일으키기 때문에 프로그램을 작성하는 내내 주소충돌여부를 신경써주어야만 했습니다.

IEC61131-3은 모든 변수를 선언해주어야 하고 주소할당은 컴파일러가 알아서 합니다. 따라서 주소충돌문제를 유저가 고민할 필요가 없습니다. 특별한 문구를 사용하지 않았다면 모든 변수는 지역변수로 선언됩니다. 개별 POU 내에서 선언되었다면 그 변수는 POU 내에서만 액세스 할 수 있습니다. 그러면 다른 POU에 선언 된 변수와 충돌하지 않습니다. (심지어 동일한 변수명을 가지고 있더라도 말이죠.)

IEC 61131-3에서는 변수가 선언 될 때 변수형을 명시적으로 선언합니다. 같은 변수형끼리 데이터를 주고 받을 수 있습니다. 만약에 서로 다른 변수형끼리 충돌이 발생하면 컴파일러는 구문오류로 간주하여 에러를 발생시킵니다.

예를 들어 INT형 변수에 REAL(실수)형 상수를 대입하면, 에러가 발생됩니다.

4.1 숫자 변수형

포맷 변수형 비트수 범위 초기값
부호있는 정수 SINT 8 −128 to + 127 0
INT 16 −32,768 ~ +32,767 0
DINT 32 −231 ~ +231‐1 0
LINT 64 −263 ~ + 263‐1 0
부호없는 정수 USINT 8 0 ~ 255 0
UINT 16 0 ~ 65535 0
UDINT 32 0 to 232‐1 0
ULINT 64 0 to 264‐1 0
실수 REAL 32 ± 10±38 0.0
LREAL 64 ± 10±308 0.0

4.2 비트집합 변수형

포맷 변수형 비트수 초기값
부울값 BOOL 1 0/FALSE
비트집합 BYTE 8 16#00
WORD 16 16#0000
DWORD 32 16#0000_0000
LWORD 64 16#0000_0000_0000_0000

4.3 시간 및 기간 변수형

변수형 설명 초기값 추가설명
TIME 경과시간 T#0s 32비트
LTIME 경과시간 LTIME#0s 64 비트 정수입니다. 해상도는 나노초 단위입니다.
변수형 리터럴
DATE DATE 또는 D # 년도-월-일
TIME_OF_DAY(TOD) TIME_OF_DAY 또는 TOD # 시간 : 분 : 초
DATE_AND_TIME(DT) DATE_AND_TIME 또는 DT # DATE리터럴 - TOD리터럴

4.4 캐릭터 및 문자열 변수형

CHAR 및 STRING은 ASCII 형식의 텍스트이고 WCHAR 및 WSTRING은 유니 코드 형식의 텍스트입니다.

문자열 리터럴 입력시, CHAR 및 STRING 은 ‘’로 둘러쌓아야 하고, WCHAR 및 WSTRING 은 쌍따옴표로 둘러쌓아야 합니다.

aString := ‘This enters a STRING’
aWString := “This enters a WSTRING”
codesysmanual/datatypee.1606989013.txt.gz · 마지막으로 수정됨: 2020/12/03 18:50 저자 Comfile Technology