사용자 도구

사이트 도구

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 경과시간 (밀리초단위)
LTIME 경과시간 (나노초단위)
날짜 DATE 년-월-일
실시간 TIME_OF_DAY(TOD) 시간 : 분 : 초
날짜와 실시간 DATE_AND_TIME(DT) 년월일 과 시분초

4.4 캐릭터 및 문자열 변수형

설명 변수형 캐릭터 하나당 바이트수 초기값
하나의 캐릭터 CHAR 8 ‘$00’
WCHAR 16 “$0000”
(가변)문자열 STRING 8 ’’
WSTRING 16 “”

CODESYS

codesysmanual/datatypee.txt · 마지막으로 수정됨: 2020/12/09 03:03 저자 Comfile Technology