IEC 61131-3

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

IEC 61131의 파트 3은 PLC 내 제어 프로그램의 기본 소프트웨어 아키텍처 및 프로그래밍 언어를 다룬다. 세 가지 그래픽 언어 표준과 두 가지 텍스트 프로그래밍 언어 표준을 정의한다.

자료형

기본 자료형

  • 비트 문자열 – 켜짐/꺼짐 값 그룹
    • 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

구성

프로그램 구성 단위 (POU)

구성, 리소스, 작업

객체 지향 프로그래밍 (OOP)

각주

  1. ↑ Stevic, Tom (2017년 5월 5일). “A very short history of PLC programming platforms”. Control Design. 2021년 9월 11일에 확인함.
  2. ↑ “IEC 61131-3:2013”. International Electrotechnical Commission (IEC). 2021년 9월 11일에 확인함.
  3. ↑ “Time Duration Literals (IEC 61131-3)”.

외부 링크