PLC 래더 다이어그램
PLC 2026년 04월 22일

plc 래더 다이어그램이란? 래더도 래더표 래더 프로그램

PLC 래더 다이어그램

산업 현장에서 널리 활용되는 PLC(Programmable Logic Controller) 프로그래밍 언어 중 하나인 ‘plc 래더 다이어그램(Ladder Diagram)’에 대해 설명합니다. 래더 다이어그램의 기본 개념부터 주요 기능, 그리고 실제 프로그래밍 환경에서의 활용까지 심층적으로 다루어, 자동화 시스템 개발에 대한 이해를 돕고자 합니다.


1. plc 래더 다이어그램의 기원과 특징

래더 다이어그램은 1960년대 후반, 복잡한 유선 릴레이 로직 프로그래밍을 소프트웨어로 대체하기 위해 개발된 이미지 기반 프로그래밍 언어입니다. 그 명칭은 시각적으로 사다리 모양을 닮은 형태에서 유래하였으며, PLC(Programmable Logic Controller)의 핵심 언어로서 국제 표준 IEC 61131-3에 포함되어 있습니다.

주요 특징은 다음과 같습니다.

  • 직관적인 시각화: 전기 회로도가 90° 회전된 형태와 유사하여, 프로그램의 동작 흐름을 한눈에 파악하기 용이합니다.
  • 자기 설명적 특성: 회로의 각 요소와 연결이 명확하게 표현되어, 코드 자체로 기능과 로직을 설명하는 ‘자기 설명적(self-documenting)’ 특징을 가집니다.
  • 용이한 진단: 현장에서 문제가 발생했을 때, 시각적인 흐름을 통해 원인 파악 및 진단이 효율적입니다.

2. plc 래더 다이어그램의 기본 구성 요소: 접점과 코일

plc 래더 다이어그램은 ‘접점(Contact)’‘코일(Coil)’이라는 두 가지 기본 요소로 구성됩니다. 이 요소들은 왼쪽의 ‘파워 레일(Power Rail)’과 오른쪽의 ‘명령 라인(Command Line)’ 사이에 연결되어 전기 회로와 유사한 논리 흐름을 구현합니다.

2.1. 접점(Contact)의 종류

  • a 접점 (Normally Open): 평소에는 개방(Open) 상태로 전류를 통과시키지 않다가, 조건이 만족되어 작동(actuated)될 때 닫혀 전류를 전도합니다. 일반적인 초인종 버튼과 같이 누를 때만 작동하는 방식과 유사합니다.
  • b 접점 (Normally Closed): 평소에는 폐쇄(Closed) 상태로 전류를 전도하다가, 조건이 만족되어 작동(actuated)될 때 개방되어 전류를 차단합니다. 작동되지 않는 한 전류를 전도하는 초인종 버튼과 같은 맥락으로 이해할 수 있습니다.
  • Positive transition contact: 신호가 ‘Off’에서 ‘On’으로 전환되는 순간(Rising Edge)을 감지하여 한 스캔 주기 동안만 작동합니다.
  • Negative transition contact: 신호가 ‘On’에서 ‘Off’로 전환되는 순간(Falling Edge)을 감지하여 한 스캔 주기 동안만 작동합니다.

2.2. 코일(Coil)의 종류

코일은 plc 래더 다이어그램의 ‘출력’을 담당하며, 접점 조건이 만족되면 연결된 장치(모터, 램프 등)를 작동시킵니다.

  • Standard coil: 입력 조건이 TRUE일 때 출력을 켜고, FALSE일 때 끕니다.
  • Negated coil: 입력 조건이 TRUE일 때 출력을 끄고, FALSE일 때 켭니다. 논리적으로 NOT 연산과 같습니다.
  • Set coil: 입력 조건이 TRUE가 되면 출력을 켜고, 이후 입력 조건이 FALSE가 되더라도 출력을 켠 상태로 유지합니다.
  • Reset coil: Set coil에 의해 켜진 출력을 강제로 끕니다.
  • Positive transition coil: 입력 조건이 FALSE에서 TRUE로 전환되는 순간(Rising Edge)에만 출력을 한 스캔 주기 동안 켭니다.
  • Negative transition coil: 입력 조건이 TRUE에서 FALSE로 전환되는 순간(Falling Edge)에만 출력을 한 스캔 주기 동안 켭니다.
  • Both edges coil: 입력 조건의 상태 변화(FALSE->TRUE 또는 TRUE->FALSE)가 발생하는 양쪽 엣지에서 출력을 한 스캔 주기 동안 켭니다.

3. 논리 회로 구현: AND, OR, XOR 연결

plc 래더 다이어그램은 접점과 코일의 배치 및 연결을 통해 다양한 논리 연산을 시각적으로 구현합니다.

  • AND 연결: 두 개 이상의 접점을 ‘직렬’로 연결하면 모든 조건이 TRUE일 때만 출력이 활성화되는 AND 논리가 구현됩니다.
  • OR 연결: 두 개 이상의 접점을 ‘병렬’로 연결하면 하나 이상의 조건이 TRUE일 때 출력이 활성화되는 OR 논리가 구현됩니다.
  • XOR 연결: 두 입력 중 오직 하나만 TRUE일 때 출력이 TRUE가 되는 배타적 논리합입니다.

더 복잡한 논리는 ‘분기(Branch)’ 및 ‘병합(Merge)’ 기능을 통해 유연하게 구현할 수 있습니다.

4. 고급 제어를 위한 래더 기능: 펑션, 펑션 블록, 액션

plc 래더 다이어그램은 단순한 접점/코일 조합을 넘어, 복잡하고 체계적인 제어를 위한 고급 프로그래밍 기능들을 제공합니다.

4.1. 펑션(Function)과 펑션 블록(Function Block)

펑션과 펑션 블록은 특정 동작을 수행하는 재사용 가능한 코드 블록으로, 프로그래밍의 효율성과 유지보수성을 높입니다. 그러나 두 가지는 중요한 차이점을 가집니다.

  • 펑션 (Function): 입력 변수를 받아 하나의 리턴 값을 생성하며, 내부에 인스턴스(instance) 변수를 가지지 않습니다. 따라서 호출될 때마다 항상 동일한 결과를 반환합니다. (예: 사인, 코사인, 절대값 계산 등)
  • 펑션 블록 (Function Block): 여러 개의 입력/출력 변수와 더불어 내부에 인스턴스 변수를 가질 수 있습니다. 이는 이전 호출 상태를 기억하거나, 여러 개의 리턴 값을 가질 수 있게 하여 복잡한 상태 기반 로직(예: 타이머, 카운터) 구현에 적합합니다. 각 인스턴스는 고유한 상태를 유지합니다.

4.2. 액션(Action)

액션은 펑션 블록 내에서 특정 기능을 수행하는 하위 프로그램 단위입니다. 펑션 블록의 다양한 동작을 모듈화하고, 특정 조건에 따라 선택적으로 실행될 수 있도록 하여 프로그램의 구조를 더욱 유연하게 만듭니다.

4.3. Compute Block 및 Compare Block

복잡한 수치 연산 및 논리 비교를 위해 plc 래더 다이어그램은 Compute Block과 Compare Block을 제공합니다.

  • Compute Block: 사칙연산, 논리 연산 등 다양한 계산을 수행할 수 있도록 지원하여, 아날로그 값 처리나 복잡한 알고리즘 구현에 활용됩니다.
  • Compare Block: 두 개 이상의 값을 비교하여, 크기(>, <, =), 범위(BETWEEN, NOT BETWEEN) 등 조건에 따른 논리 판단을 수행합니다.

4.4. EN/ENO 블록

펑션 또는 펑션 블록의 실행을 제어하기 위해 EN(Enable) 및 ENO(Enable Out) 블록이 사용됩니다. EN 입력이 TRUE일 때만 블록이 실행되며, 실행이 성공적으로 완료되면 ENO 출력이 TRUE가 됩니다. 이는 오류 처리 및 프로그램 흐름 제어에 유용합니다.

5. plc 래더 다이어그램 프로그래밍 환경 및 진단 도구

효율적인 plc 래더 다이어그램 개발 및 유지보수를 위해 다양한 프로그래밍 환경 기능과 진단 도구가 제공됩니다.

  • plc 래더 다이어그램 편집기 (Ladder Diagram Editor): 그래픽 인터페이스를 통해 접점, 코일, 펑션 블록 등 래더 요소를 직관적으로 배치하고 연결하여 프로그램을 작성합니다.
  • 네트워크(Network): 래더 프로그램은 하나 이상의 ‘네트워크’로 구성됩니다. 각 네트워크는 독립적인 논리 단위를 형성하며, 위에서 아래로 순차적으로 실행됩니다.
  • 변수 할당 (Variable Assignment): 모든 입력, 출력, 내부 메모리 및 펑션 블록의 인스턴스에는 고유한 변수 이름이 할당되어 프로그램 내에서 참조되고 제어됩니다.
  • 진단 도구:
    • Powerflow: 런타임 시 plc 래더 다이어그램의 전류 흐름을 시각적으로 표시하여, 프로그램의 현재 상태 및 논리 흐름을 실시간으로 파악하고 오류를 진단하는 데 도움을 줍니다.
    • Variable watch: 프로그램 내의 특정 변수 값을 실시간으로 모니터링하고 수정할 수 있는 기능을 제공하여, 디버깅 및 시스템 튜닝에 필수적입니다.

6. 결론: plc 래더 다이어그램, 산업 자동화의 핵심

plc 래더 다이어그램은 유선 릴레이 로직을 대체하며 발전해 온 시각적이고 직관적인 프로그래밍 언어입니다. 그 시각적인 특성자기 설명적 구조는 복잡한 자동화 시스템의 논리 흐름을 명확하게 표현하고, 현장 진단을 용이하게 하여 유지보수 효율성을 극대화합니다.

기본 접점 및 코일부터 펑션, 펑션 블록, 액션과 같은 고급 기능, 그리고 Compute/Compare 블록에 이르기까지, plc 래더 다이어그램은 다양한 자동화 과제를 효과적으로 해결할 수 있는 강력한 도구입니다. 이러한 장점들은 plc 래더 다이어그램이 현대 산업 자동화 분야에서 여전히 핵심적인 프로그래밍 언어로 자리매김하는 이유를 설명합니다.