IEC 61131-3

IEC 61131-3은 프로그래머블 로직 컨트롤러를 위한 국제 표준 IEC 61131의 세 번째 부분(총 10개 중)이다. 1993년 12월 IEC에서 처음 발행되었으며 현재 (네 번째) 버전은 2025년 5월에 발행되었다.

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 바이트)

 기본 자료형 (날짜 및 시간) 
+ 기간 리터럴 단위 설명 d 일 h 시 m 분 s 초 ms 밀리초 us 마이크로초 ns 나노초
 기간
 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 이후 나노초)

 기본 자료형 (문자 / 문자열) 

+ 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를 구현하는 방법을 설명한다.

 각주 

 외부 링크 
 PLCopen
  IEC 61131-3:2025 프로그래머블 컨트롤러 – 파트 3: 프로그래밍 언어
 CODESYS – 장치 제조업체와 독립적인 구현, 객체 지향 프로그래밍 (OOP)을 옵션으로 포함
 :de:STEP 7 지멘스 장치용 구현,만

분류:전자 설계 자동화