IEC 61131-3

**IEC 61131-3**은 프로그래머블 로직 컨트롤러를 위한 국제 표준 IEC 61131의 세 번째 부분(총 10개 중)이다. 1993년 12월 IEC에서 처음 발행되었으며accessdate=11 September 2021 현재 (네 번째) 버전은 2025년 5월에 발행되었다.accessdate=11 September 2021 IEC 61131의 파트 3은 PLC 내 제어 프로그램의 기본 소프트웨어 아키텍처 및 프로그래밍 언어를 다룬다. 세 가지 그래픽 언어 표준과 두 가지 텍스트 프로그래밍 언어 표준을 정의한다. * 래더 다이어그램 (LD), 그래픽 * 함수 블록 다이어그램 (FBD), 그래픽 * 구조화된 텍스트 (ST), 텍스트 * 지시 목록 (IL), 텍스트 구식. IEC 61131-3-2025, 7.2장 지시 목록(IL)은 에디션 4에 더 이상 포함되지 않는다. 따라서 IL(AWL)은 더 이상 IEC 61131-3의 일부가 아니다. * 순차 함수 차트 (SFC), 순차 및 병렬 제어 처리를 위한 프로그램 구성을 위한 요소를 포함, 그래픽.
# 자료형

## 기본 자료형
* 비트 문자열 – 켜짐/꺼짐 값 그룹 ** BOOL - 1 비트 (0,1) ** BYTE – 8 비트 (1 바이트) ** WORD – 16 비트 (2 바이트) ** DWORD – 32 비트 (4 바이트) ** LWORD – 64 비트 (8 바이트) * 정수 – 정수 (바이트 크기 8 비트 기준) ** SINT – 부호 있는 짧은 정수 (1 바이트) ** INT – 부호 있는 정수 (2 바이트) ** DINT – 부호 있는 이중 정수 (4 바이트) ** LINT – 부호 있는 긴 정수 (8 바이트) ** USINT – 부호 없는 짧은 정수 (1 바이트) ** UINT – 부호 없는 정수 (2 바이트) ** UDINT – 부호 없는 이중 정수 (4 바이트) ** ULINT – 부호 없는 긴 정수 (8 바이트) * 실수 – 부동 소수점 IEC 60559 (IEEE 754-2008과 동일) ** REAL – (4 바이트) ** LREAL – (8 바이트)
## 기본 자료형 (날짜 및 시간)
{| class="wikitable floatright" |+ **기간 리터럴** |- ! 단위 ! 설명 |- | d | 일 |- | h | 시 |- | m | 분 |- | s | 초 |- | ms | 밀리초 |- | us | 마이크로초 |- | ns | 나노초 |} * 기간 title = Time Duration Literals (IEC 61131-3) ** TIME – (구현자 특정). T#5m90s15ms 형식의 리터럴 ** LTIME – (8 바이트). T#5m90s15ms542us15ns 형식으로 나노초까지 확장되는 리터럴 * 날짜 ** DATE – 달력 날짜 (구현자 특정) ** LDATE – 달력 날짜 (8 바이트, 1970-01-01 이후 나노초, 1일의 배수로 제한) * 시각 ** TIME_OF_DAY / TOD – 시각 (구현자 특정) ** LTIME_OF_DAY / LTOD – 시각 (8 바이트) * 날짜 및 시각 ** DATE_AND_TIME / DT – 시간 및 날짜 (구현자 특정) ** LDATE_AND_TIME / LDT – 시간 및 날짜 (8 바이트, 1970-01-01 이후 나노초)
## 기본 자료형 (문자 / 문자열)
{| class="wikitable floatright" |+ **STRING 이스케이프 시퀀스** |- ! 이스케이프 시퀀스 ! 결과 |- | $$ | $ |- | $' | ' |- | $L | 줄 바꿈 (linefeed) |- | $N | 새 줄 (newline) |- | $P | 페이지 (form feed) |- | $R | 캐리지 리턴 (return) |- | $T | 탭 (tab) |- | $xx | 16진수 값 |} * 기존 ** CHAR – 단일 바이트 문자 (1 바이트, ISO/IEC 10646의 문자 0 ~ 255로 제한) ** WCHAR – 이중 바이트 문자 (2 바이트, ISO/IEC 10646의 문자 0 ~ 65535로 제한) ** STRING – 가변 길이 단일 바이트 문자열. 작은따옴표로 지정된 리터럴, 'This is a STRING Literal' ** WSTRING – 가변 길이 이중 바이트 문자열. 큰따옴표로 지정된 리터럴, "This is a WSTRING Literal" * 표준 버전 4의 새로운 기능 ** UCHAR – UTF-8로 인코딩된 단일 문자 ** USTRING - 각 문자가 UTF-8로 인코딩된 가변 길이 문자열
## 일반 자료형
시스템 정의 프로그램 구성 단위(POUs, 아래 참조)의 입력/출력/입출력 변수에만 사용 가능 * ANY * ANY_DERIVED * ANY_ELEMENTARY ** ANY_MAGNITUDE *** ANY_NUM **** ANY_REAL: LREAL, REAL **** ANY_INT ***** ANY_UNSIGNED: ULINT, UDINT, UINT, USINT ***** ANY_SIGNED: LINT, DINT, INT, SINT *** ANY_DURATION: TIME, LTIME ** ANY_BIT: LWORD, DWORD, WORD, BYTE, BOOL ** ANY_CHARS *** ANY_STRING: STRING, WSTRING *** ANY_CHAR: CHAR, WCHAR ** ANY_DATE: DATE_AND_TIME (DT), DATE_AND_TIME(LDT), DATE, TIME_OF_DAY (TOD), LTIME_OF_DAY(LTOD)
## 사용자 정의 자료형
* 열거형 자료형 * 이름 있는 값을 가진 열거형 자료형 * 서브레인지 자료형 – 값에 제한을 둠, 예: 전류용 INT(4 .. 20) * 배열 자료형 – 동일한 변수에 여러 값 저장. * 구조화된 자료형 – 여러 변수 및 유형의 복합체. * 직접 파생된 자료형 – 위 유형 중 하나에서 파생되어 새로운 이름과 초기 값을 유형으로 부여하는 유형. * 참조 – 강력한 형식의 포인터. 이 유형 값의 산술 연산은 금지된다.
# 변수
변수 속성: RETAIN, CONSTANT, AT * 전역 * 직접 (지역) * I/O 매핑 – 입력, 출력, I/O * 외부 * 임시
# 구성
* 리소스 – CPU와 유사 * 작업 – CPU당 여러 개 가능. * 프로그램 – 한 번, 타이머로, 이벤트 발생 시 실행 가능.
# 프로그램 구성 단위 (POU)
* 함수 ** 표준: ADD, SQRT, SIN, COS, GT, MIN, MAX, AND, OR 등. ** 사용자 정의 * 함수 블록 ** 표준: ** 사용자 정의 – 공급업체 또는 제3자가 기능 라이브러리를 제공할 수 있다. * 프로그램
# 구성, 리소스, 작업
* 구성 – 처리 리소스, IO용 메모리, 실행 속도, 작업 수.
# 객체 지향 프로그래밍 (OOP)
* 표준의 3차 개정판은 응용 프로그래밍 내에서 OOP를 구현하는 방법을 설명한다.