Discrete/Sequential Control Concepts and Hardware Systems

Basic Functional Structure of a Programmable Controller System

User’s Control Objectives and Application Requirements

Selecting a PLC System

Software, Programs, and Programming Languages

9.1 서론(Introduction)

Discrete and Sequencing Control

디지털 및 시퀀스 제어

이산 제어(Discrete Control)는 온/오프 밸브(On/Off Valves), 펌프(Pumps) 및 매니폴드(Manifolds)와 같은 유한한 수의 안정된 상태와 관련이 있습니다. 사용자의 관심은 한 상태에서 다른 상태로의 질서 있는 전환, 그리고 상황이 정상인지 비정상인지에 있습니다.

일반적인 산업 공정에서 이와 관련된 제어 측면은 순차 제어(Sequential Control)라고 알려져 있습니다. 순차 제어에서 공정은 일련의 개별적인 상태들을 거쳐 진행되며, 이는 일반적으로 이산 제어 기능에 의해 수행되지만, 때로는 공정 출력(Process Outputs)을 조작하고 공정 입력(Process Inputs)을 모니터링함으로써 이루어지기도 합니다.

이 섹션을 읽는 엔지니어를 위해 ISA의 자동화, 시스템 및 계측 사전(Automation, Systems, and Instrumentation Dictionary, 2003)에서 발췌한 기본 정의를 아래에 소개합니다.

  • 이산 제어(Discrete control) – 온/오프 제어(On/Off control). 두 개의 출력 값 중 하나가 0과 같습니다.
  • 순차 제어(Sequential control) – 제어 시스템의 목표가 일련의 이산적인 상태를 통해 공정 장치(Process Units)의 순서를 정하는 산업 공정 제어 기능의 한 종류입니다(연속 제어(Continuous Control)와 구별됨).

9.2 이산/순차 제어 개념 및 하드웨어 시스템

산업에서 이산 및 순차 제어 방법론을 달성하거나 실행하는 주요 수단 중 하나는 프로그래머블 (로직) 컨트롤러(PLC, Programmable Logic Controller)입니다.

이 기술은 국제전기기술위원회(IEC, International Electrotechnical Committee)가 PLC에 대한 표준을 설명, 정의 및 응용 지침을 제공하는 7개 부분으로 구성된 IEC 61131 표준을 제정하고 유지할 정도로 중요해졌습니다.

이 표준에서 PLC는 다음과 같이 정의됩니다.

“논리(Logic), 순차(Sequencing), 타이밍(Timing), 카운팅(Counting) 및 연산(Arithmetic)과 같은 특정 기능을 구현하기 위한 사용자 지향 명령어의 내부 저장을 위해 프로그래머블 메모리(Programmable Memory)를 사용하는, 산업 환경에서 사용하도록 설계된 디지털 작동 전자 시스템(Digitally Operating Electronic System)으로, 디지털 또는 아날로그 입출력(Inputs and Outputs)을 통해 다양한 유형의 기계 또는 공정을 제어합니다. PLC와 그 관련 주변 장치(Peripherals)는 산업 제어 시스템에 쉽게 통합되고 의도된 모든 기능에서 쉽게 사용될 수 있도록 설계되었습니다.”

ISA의 자동화, 시스템 및 계측 사전(Automation, Systems, and Instrumentation Dictionary, 2003)에서 발췌한 기본 정의는 다음과 같습니다.

  • PLC – 프로그래머블 로직 컨트롤러(Programmable Logic Controller) – 1. 일반적으로 여러 개의 입출력을 가지며, 변경 가능한 프로그램(Alterable Program)을 포함하는 컨트롤러(ANSI/ISA-5.1-1984[R1992]).

9.2.1 프로그래머블 로직 컨트롤러(Programmable Logic Controllers)

프로그래머블 로직 컨트롤러(PLC)는 고속 제어 컴퓨터입니다. PLC의 일반적인 특징은 다음과 같습니다.

  • 고속 중앙 처리 장치(CPU)
  • 모션 제어(Motion Control)를 위한 특수 카드(Card)가 포함된 유연한 입출력(I/O) 시스템
  • 별도의 휴먼 머신 인터페이스(Human Machine Interface)

PLC는 전통적으로 릴레이 래더 로직(Relay Ladder Logic)을 사용하여 프로그래밍되었습니다. 래더 로직은 전기 모터 제어를 처리하기 위한 강력한 언어이지만, 기존의 하드 와이어드(Hardwired) 제어를 대체함에도 불구하고 저수준 프로그래밍 언어(Low-level Programming Language)로 간주될 수 있습니다. 전통적인 래더 로직에 더 고급 요소를 추가하면 프로그래머가 복잡한 제어 응용 프로그램을 설계할 수 있는 기능을 제공할 수 있습니다.

PLC는 매우 유연한 프로그래밍 환경을 제공합니다. 그러나 태그(Tag)를 통해 공정 정보(Process Information)를 공유하고 데이터 품질을 추적하는 측면에서 분산 제어 시스템(DCS, Distributed Control System)이 제공하는 모든 내장 기능(Built-in Functionality)을 제공하지는 않습니다. PLC는 대부분의 중요 부품(전원 공급 장치, CPU, I/O)에 대해 이중화(Redundancy) 기능을 제공합니다. 그러나 이러한 기능을 활용하려면 일반적으로 DCS보다 프로그래머의 노력이 더 많이 필요합니다. PLC는 이제 아날로그 공정 변수(Analog Process Variables)에 대한 중대형 제어에 사용됩니다.

9.3 프로그래머블 컨트롤러 시스템의 기본 기능적 구조

프로그래머블 컨트롤러 시스템의 주요 기능적 구성 요소를 갖춘 일반적인 구조는 그림 9-1, 9-2, 9-3에 나와 있습니다. 이러한 기능들은 서로, 그리고 제어될 기계/공정의 신호와 통신합니다.

대부분의 PLC 작동은 4가지 주요 단계의 반복적인 주기로 구성됩니다.

    1. 적절한 인터페이스로부터의 모든 입력이 스캔되어, 제어 입력 데이터의 일관된 “이미지(Image)”를 제공합니다. 이는 스위치, 근접 센서, 온도 센서, 다른 PLC로부터의 데이터 등과 같은 현장 센서(Field Sensor)를 나타냅니다.
    2. 사용자 제어 프로그램의 단일 “스캔(Scan)”이 이루어져, 제어 출력 데이터의 새로운 “이미지”를 계산하거나 도출합니다. 동시에 모든 프로그램 변수(Program Variables), 타이머(Timers), 카운터(Counters) 등이 업데이트됩니다.
    3. 제어 출력 데이터의 새로운 “이미지”는 대상 제어 장치로 전송하기 위해 적절한 인터페이스로 전달됩니다. 이는 릴레이, 모터 구동 명령, 디스플레이, 다른 PLC로의 데이터 등과 같은 현장 액추에이터(Field Actuator)를 나타냅니다.
    4. 마지막으로, 사용 가능한 시간에 “정리(Housekeeping)” 작업이 수행됩니다. 여기에는 조작자 스테이션(Operator Station)과의 통신, 일부 감독(Supervisory) 통신, 진단 루틴(Diagnostics Routine) 등이 포함될 수 있습니다.

“정리”가 완료된 후 주기는 반복됩니다. 이 방법에는 몇 가지 변형이 있지만, 일반적으로 이것이 전체 공정을 대표합니다.

별도의 입출력(I/O) 및/또는 통신 프로세서(Communications Processor)를 갖춘 일부 프로그래머블 컨트롤러(Programmable Controller) 시스템은 사용자 프로그램 스캔(Scan)과 입력 스캔(1단계), 출력 스캔(3단계) 및 통신 기능(4단계)을 중첩시킬 수 있습니다. 이러한 경우, 프로그램과 입출력 스캔, 그리고 프로그램과 통신 처리 간에 동시성(Concurrency) 및 동기화(Synchronization)를 달성하기 위해 특별한 프로그래밍 메커니즘이 필요할 수 있습니다.

일부 PLC의 또 다른 특징은 멀티태스킹 운영 체제(Multi-tasking Operating System)가 통합되어 있다는 점입니다. 일반 컴퓨팅에서와 마찬가지로 PLC 운영 체제(Operating System)는 PLC의 수많은 하드웨어 및 소프트웨어 자원과 기능을 조정하는 역할을 합니다. 멀티태스킹 운영 체제의 통합은 PLC가 위에서 설명한 기본 작동 주기의 단일 인스턴스(Instance)가 아닌 여러 인스턴스를 동시에 실행할 수 있도록 합니다. 이는 단일 태스킹(Single-tasking) 운영 체제 PLC에 비해 훨씬 향상된 유연성과 기능을 제공합니다.

멀티태스킹 운영 체제를 통합하는 PLC에서는 기본 작동 주기의 여러 인스턴스 간에 적절한 수준의 작업 조정 및 동기화를 달성하기 위한 메커니즘이 필요할 수 있습니다. 예를 들어, 한 작업의 결과가 다른 작업의 결정에 영향을 미칠 수 있습니다. 특히 입출력(I/O)과 관련하여 그렇습니다.

9.4 사용자의 제어 목표 및 적용 요건

명확한 목표와 적용 요건을 염두에 두면 제어기(Controller) 공급업체와의 논의가 훨씬 수월해집니다. 이러한 설계 정보는 필수적이며 제어할 공정 또는 장비에 대한 일반적인 설명이 포함되어야 합니다. 이는 사용자와 공급업체 또는 제조업체가 전반적인 장비 요건 및 고려사항을 설정하는 데 도움이 됩니다.

주요 고려사항은 다음과 같습니다.

  • 제어할 공정
  • 사용자의 제어 목표
  • 일반적인 제어 및 작동 요건
  • 공장 및 인원 보호 고려사항
  • 일반적인 설치 및 환경 고려사항
  • 확장 및 통합 요건
  • 하드웨어 구성 및 규정
  • 시스템 가용성(Availability) 요건
  • 장비 고장 시 영향
  • 예비 부품(Spare Parts) 요건
  • 이중화(Redundancy)
  • 적용 가능한 현지/국가/국제 표준 및 규정
  • 성능 요건
  • 다른 시스템과의 인터페이스(Interface)
  • 유지보수
  • 케이블 배선, 경로 지정 및 단자 처리
  • 회사 규정
  • 문서: 내용, 형식
  • 규제/인증/승인 요건
  • 납품 및 장비 설치 일정
  • 엔지니어링 책임: 하드웨어, 소프트웨어, 문서, 보호 조치, 시험, 시운전(Commissioning)
  • 기타 필요한 고려사항

9.4.1 사용자 시스템 설명

이 하위 조항은 그림 9-4의 점선으로 표시된 바와 같이, 사용자가 공급업체에 제공할 정보에 대해 설명합니다.

사용자는 현재 제3자 엔지니어에 대한 정보를 포함하여 기존 시스템 엔지니어링에 대한 정보를 공급업체에 제공해야 합니다. 공급업체는 생산 엔지니어링과 유지보수 엔지니어링 모두에 대해 공장 엔지니어링에 대해서도 알아야 합니다.

이 시스템 설명은 사용자의 목표를 간결하게 정의하고, 공급업체에게 모든 하드웨어 및 소프트웨어의 작동, 모니터링, 구성에 대한 명확하고 관련성 있는 정보를 제공해야 합니다. 또한, 다이어그램, 도면, 신호(I/O) 순서 및 타이밍 요건과 같은 관련 문서가 지원 자료로 사용되어야 합니다.

9.4.2 사용자 시스템 특성

사용자 시스템 특성은 다음과 같은 사항들을 포함합니다.

  • 연속 또는 배치 공정(Batch Processing)
  • 루프(PID) 제어
  • 분산 제어
  • 공정 변경(레시피 지원)
  • 다운로드(Downloading)
  • 국소 스테이션의 자율성 (Autonomy of Local Stations)
  • 시스템 가용성 요건 (System Availability Requirements)
  • 총 시스템 응답 시간 (Total System Response Time)
  • 이중화 (Redundancy)
  • 멀티태스킹 (Multitasking)
  • 경보 처리 (Alarm Handling)
  • 추세 (Trending)
  • 조작자 인터페이스 (Operator Interface)
  • 조작자 프롬프트 (Operator Prompt)
  • 원격 감시 (Remote Supervision)
  • 수동 조작 (Manual Over-ride)
  • 보호/안전 고려사항 (Protection/Safety Considerations)
  • 인터록 (Interlocks)
  • 동적 특성 (Dynamic Characteristics)
  • 비선형성 (Non-linearities)
  • 인증 (Authorization)
  • 정상 종료 (Normal Shutdown)
  • 자동 재시작 (Automatic Restart)
  • 데이터 통신 (Data Communication)
  • 주변 장치 (Peripherals)
  • 네트워크 (근거리 통신망(LAN), 광역 통신망(WAN))

9.4.3 제어 시스템 매개변수(Control System Parameters)

공정 제어(Process Control)가 필요한 경우, 제어 시스템의 중요한 요소들이 정의되어야 합니다. 이는 플랜트 및 장비의 특정 작동, 허용 가능한 특정 공정 변수(Process Variables) 및 값, 동작 및 반응에 대한 한계 등을 포함할 수 있습니다.

또한 고려해야 할 다른 주제는 다음과 같습니다.

  • 입출력(I/O) 목록
  • 센서: 유형, 신호 레벨(Signal Level), 전원 요건
  • 신호 조절(Signal Conditioning)
  • 제어 출력: 유형, 전원 요건
  • 데이터 전송/접근
  • 현장/원격 표시(Local/Remote Display)
  • 로깅 및 아카이빙(Logging and Archiving)
  • 전기적 간섭 제거 기준(Electrical Interference Rejection Criteria)
  • 시스템 가용성(System Availability)
  • 입출력(I/O) 이중화: 단일 또는 투표 방식(예: 3개 중 2개)

9.4.4 경보(Alarms)

사용자의 시스템 설명에는 경보 요건이 포함되어야 합니다. 조직 개념(Organization Concept), 우선순위(Priority), 경보 작동 및 표시(Display)가 정의되어야 합니다.

고려해야 할 다른 주요 주제는 다음과 같습니다.

  • 경보 감지 방법
  • 최초 고장 식별(First Fault Identification)
  • 고장 식별(Fault Discrimination)
  • 전용 경보 표시
  • 휴먼 머신 인터페이스(Man-machine Interface)에서의 경보
  • 경보 확인(Alarm Acknowledgment)
  • 경보 로깅(Alarm Logging)

9.4.5 휴먼 머신 인터페이스(Human-Machine Interface)

휴먼 머신 인터페이스(HMI) 요건에는 조작자 개입(Operator Intervention), 접근 제어(Access Control) 및 보안 조치(Security Arrangements)에 대한 고려사항이 포함됩니다.

기타 주요 주제는 다음과 같습니다.

  • 다중 스테이션 표시(Multistation Display)
  • 전용 표시 영역(Dedicated Display Areas)
  • 동적 그래픽(Dynamic Graphics)
  • 접근 제어, 인증(Authorization) 및 비밀번호
  • 키 잠금(Key Locks)
  • 소프트웨어 잠금
  • 키보드, 트랙볼, 마우스, 터치스크린 등
  • 인간 공학(Ergonomics)

9.4.6 인터록(Interlocks), 시퀀싱(Sequencing)

인터록은 기계나 장치의 제어를 상호 의존적으로 배열하여 올바르게 조정되도록 보장하는 데 사용됩니다(ISA-RP55.1-1975 [R1983]).

인터록은 다음과 같을 수 있습니다.

  • 어떤 조건이나 일련의 조건이 충족될 때까지 작동이 시작되거나 기능이 변경되는 것을 방지하는 물리적 장치, 장비 또는 소프트웨어 루틴(Software Routine)입니다.
  • 위험이 존재할 때 장비가 작동하는 것을 방지하는 스위치(Switch)와 같은 장치입니다.
  • 필요한 조건의 물리적 상태를 증명하고, 그 증명을 주 제어 회로(Primary Control Circuit)에 제공하는 데 사용되는 장치입니다.
  • 한계 또는 한계 초과 상태(Off-limit Condition)나 부적절한 일련의 이벤트(Improper Sequence of Events)를 감지하도록 배열된 장치 또는 장치 그룹(하드웨어 또는 소프트웨어)입니다. 바람직하지 않은 상태를 피하기 위해, 이들은 문제가 되는 또는 관련 장비를 셧다운(Shut Down)시키거나 부적절한 순서로 진행되는 것을 방지합니다(ANSI/ISA-77.44.01 &.02-1995).

유사한 방식으로, 시퀀싱(Sequencing)은 전체 공정 이벤트(Process Events)의 순서를 정하는 것으로, 한 제어 공정이 전체 이벤트 경로(Event Path)의 다음 작업 공정으로 제어 권한을 넘기기 전에 할당된 작업을 올바르게 완료하도록 하는 것입니다.

인터록과 시퀀싱에 대한 주요 고려사항은 다음과 같습니다.

  • 인터록의 물리적 요건
  • 인터록 대상 시스템의 유형
  • 시스템 및 시스템 통신
  • 데이터 네트워크(Data Network) 요건

9.4.7 시스템 정전(System Outage)

시스템 정전과 관련된 주제는 다음과 같습니다.

  • 전원 공급 장치 구성
  • 시스템 백업
  • 진단
  • 고장 모드(Failure Mode)
  • 고장 표시 수준: 시스템, 모듈, 또는 카드
  • 재시작: 콜드(Cold), 핫(Hot), 또는 웜(Warm)
  • 인원 및 장비 보호

9.5 PLC 시스템 선정

9.5.1 주 처리 장치(Main Processing Unit)

사용자는 관련 세부 사항에 대해 IEC 61131-1IEC 61131-2를 참고하고, 선정 고려사항 목록은 표 9-1을 참고해야 합니다.

9.5.2 휴먼 머신 인터페이스(Human-Machine Interface)

휴먼 머신 인터페이스(HMI)는 조작자가 플랜트 제어 시스템을 볼 수 있는 창(Window)이 될 것이므로 신중하게 사양을 정하고 선택해야 합니다. 또한 PC 시스템의 프로그래밍 및 고장 진단(Fault Diagnosis)을 위한 접근 시설이 될 수도 있습니다. HMI의 선정 기준은 표 9-2에 나열되어 있습니다.

9.6 소프트웨어, 프로그램 및 프로그래밍 언어

소프트웨어(Software)는 특정 작업을 수행하도록 설계된 일련의 컴퓨터 프로그램(Computer Programs)을 총칭하는 일반 용어입니다.

프로그램은 컴퓨터가 특정 결과를 달성하기 위해 수행하는 일련의 동작입니다. “위치 파악”, “읽기”, “해석”, “명령어 실행”과 같은 활동은 프로그램 전체에 걸쳐 각 명령어에 대해 순차적으로 반복됩니다.

프로그래밍 언어(Programming Language)는 컴퓨터에 정보와 명령을 전달하는 데 사용되는 일련의 표현, 규칙 및 규약입니다. 컴퓨터 내부의 디지털 전자 회로 언어는 인간이 컴퓨터에 명령을 내리는 데 사용하는 숫자, 문자, 기호 및 명령을 나타내는 이진 코드(Binary Codes)로 구성됩니다. 인간 사용자가 사용하는 언어는 기계가 이해하는 디지털 코드로 변환되어야 합니다. 이 디지털 코드를 기계어(Machine Language)라고 합니다.

인간과 기계 간의 소통을 원활하게 하기 위해 고급 언어(High-level Language)가 필요합니다. 이는 C/C++, Java, FORTRAN, BASIC, Pascal 및 ADA와 같은 범용 프로그래밍 언어입니다. 이러한 고급 언어는 인간이 문제를 해결하는 방식과 직접적으로 관련되도록 구성됩니다. 어셈블리어(Assembly Language)라는 중간 언어도 프로그램 컴파일러(Program Compiler)에서 고급 언어와 기계어를 연결하는 데 사용되지만, 오늘날에는 사용자에게 투명합니다.

오래전에는 프로그래머가 니모닉(Mnemonics)이라고 불리는 명령어 약어를 사용하여 프로그램을 작성하기 위해 어셈블리어를 사용했을 수 있습니다. 그런 다음 프로그램은 어셈블러(Assembler)를 사용하여 기계어 프로그램으로 변환되었습니다. 시설에서 디지털 제어 시스템을 구매할 때, 컴퓨터는 일반적으로 고급 언어로 통신하도록 미리 프로그래밍되어 있습니다. 일부 시스템은 특정 적용 분야를 위해 미리 작성된 구성 가능한 프로그램(Configurable Prewritten Programs)을 갖추고 있습니다. 이러한 시스템을 구성 가능한 디지털 시스템(Configurable Digital System)이라고 합니다. 이 시스템은 전문적인 컴퓨터 배경 지식이 없는 엔지니어도 쉽게 구성할 수 있습니다.

이러한 구성 가능한 디지털 시스템의 전반적인 기능은 모든 기존 제어 시스템 기능에 더해, 아날로그 하드웨어(Analog Hardware)를 사용하여 쉽게 구현할 수 없었던 피드포워드(Feed-forward), 데드 타임 보상(Dead-time Compensation), 다변수 제어(Multi-variable Control)를 포함한 많은 기능을 포함합니다.

전통적으로 제어 시스템은 어셈블리어부터 BASIC, FORTRAN, C와 같은 범용 언어에 이르기까지 다양한 언어를 사용하여 구현되었습니다. 그 후 몇 년 동안 제어 엔지니어의 경험과 효율성을 단순화하고 향상시키기 위한 노력으로, 산업 공정 제어 적용 분야의 요구에 특화된 프로그래밍 언어가 개발되었습니다.

이러한 언어는 다음과 같습니다.

  • 릴레이 래더 로직(Relay Ladder Logic): 이 프로그래밍 언어는 원래 전기 기계식 릴레이를 사용하여 구현된 하드 와이어드 논리 제어(Hardwired Logic Control)를 소프트웨어로 재현한 것입니다. 이 언어의 뿌리는 이산 기계 제어(Discrete Machine Control)에 있습니다. 래더 로직은 그 기원으로부터 광범위하게 발전하여 수학적 표현(정수 및 실수), 컨트롤러(PID), 테이블 조작(Table Manipulation)을 포함한 많은 정교한 제어 요소를 통합했습니다. 릴레이 래더 로직 언어는 전통적으로 프로그래머블 로직 컨트롤러(PLC)에서 사용됩니다.
  • 함수 블록(Function Block): 이 언어는 기본 아날로그 공정 제어 요소의 소프트웨어 표현입니다. 함수 블록 구성 요소에는 스케일링(Scaling), 경보(Alarming), PID 등이 포함됩니다. 함수 블록 언어는 단일 루프 컨트롤러(Single-loop Controller) 및 분산 제어 시스템(DCS)에서 사용됩니다.

플랜트 전체 통합(Complete Plant Integration)에 대한 요구가 증가하고 산업 운영에 필요한 높은 수준의 자동화로 인해 기존의 릴레이 래더 및 함수 블록 언어의 많은 결함이 드러났습니다. 이러한 단점은 다음과 같이 요약할 수 있습니다.

  • 언어 구현이 시스템마다 다릅니다.
  • 표준 소프트웨어 요소를 재사용하기 어렵습니다(객체 지향 없음).
  • 기호 변수명(Symbolic Variable Names) 대신 실제 주소(Real Address)를 사용하여 복잡한 데이터 주소 지정이 필요합니다.
  • 시퀀스(Sequence) 작동 프로그래밍이 어렵습니다.

9.6.1 IEC 61131 특징 및 프로그래밍 언어

기존 프로그래밍 언어가 공정 제어에 제기하는 어려움 때문에, 국제전기기술위원회(IEC, International Electrotechnical Commission)는 제어 시스템 프로그래밍을 표준화하기 위해 IEC 61131의 파트 3(일반적으로 IEC 61131이라고 함) 표준을 제정했습니다. 이 표준은 제어 시스템 프로그래밍의 모든 중요한 측면을 다룹니다.

이 표준을 통해 설비(Facilities)는 구조화된 기능 블록(Structured Functional Blocks), 재사용 가능한 소프트웨어 요소의 정의, 기호 변수명(Symbolic Variable Names)과 같은 최신 소프트웨어 아키텍처(Software Architectures)를 구현할 수 있습니다.

IEC 61131의 이 부분은 PLC(Programmable Logic Controller)를 위한 통합된 프로그래밍 언어 제품군(Unified Suite)의 구문(Syntax) 및 의미론(Semantics)을 명시합니다. 이 언어들은 두 가지 텍스트 기반 언어와 두 가지 그래픽 기반 언어로 구성됩니다.

  • 텍스트 기반 언어(Textual Languages)
  • 명령어 목록(IL, Instruction List)
  • 구조화된 텍스트(ST, Structured Text)
  • 그래픽 기반 언어(Graphical Languages)
  • 래더 다이어그램(LD, Ladder Diagram)
  • 기능 블록 다이어그램(FBD, Function Block Diagram)

순차 함수 차트(SFC, Sequential Function Chart) 요소는 프로그래머블 컨트롤러(Programmable Controller) 프로그램 및 기능 블록(Function Blocks)의 내부 구성을 구조화하기 위해 정의됩니다. 또한, 프로그래머블 컨트롤러 시스템에 프로그래머블 컨트롤러 프로그램을 설치하는 것을 지원하는 구성 요소도 정의됩니다. 소프트웨어와 하드웨어의 선택은 상호 보완적인 절차이며 시스템 선정 절차 중에 동시에 평가되어야 합니다. IEC 61131-3에 정의된 이러한 PLC 프로그래밍 언어는 일반적으로 PLC 하드웨어에서 사용할 수 있습니다.

9.6.2 순차 함수 차트(SFCs)

순차 함수 차트는 제어 시스템의 순차적 동작을 묘사하기 위한 그래픽 언어입니다(그림 9-5 참고). 이는 시간 및 이벤트 기반으로 제어 순서를 정의하는 데 사용됩니다. SFC는 제어 프로그램의 높은 수준의 순차적 부분과 낮은 수준의 시퀀스(예: 장치에 대한 인터페이스 프로그래밍)를 모두 표현하는 데 매우 효과적인 그래픽 언어입니다.

Figure 9-5: Sequential Function Chart

9.6.2 순차 함수 차트(SFCs)

SFC(Sequential Function Chart) 요소는 일련의 단계(Steps)와 방향성 링크(Directed Links)로 연결된 전환(Transitions)을 분할하기 위해 순차 제어 기능(Sequential Control Functions)을 수행하도록 내부 구성을 구조화하는 데 사용됩니다. 기능 블록(Function Blocks) 및 프로그램(Programs)만이 SFC를 사용하여 구조화될 수 있습니다.

전환은 제어가 해당 방향성 링크를 따라 한 단계에서 다른 단계로 넘어가는 조건입니다. 각 전환 단계에는 단일 불 대수식(Boolean Expression)의 평가 결과인 관련 전환 조건(Transition Condition)이 있습니다. 각 단계에는 0개 이상의 동작(Actions)이 연관되어 있습니다.

추가 정보 및 최상의 목표 적용 분야(사용자 지침), 그리고 주요 특징/기능에 대한 자세한 내용은 참고문헌 IEC 61131-3, 2.6을 참조하십시오.

9.6.4 구조화된 텍스트(Structured Text, ST)

구조화된 텍스트(ST)는 구조적 프로그래밍(Structured Programming)을 장려하는 고급 텍스트 언어입니다. 이 언어는 파스칼(Pascal)과 매우 유사한 언어 구조(구문, Syntax)를 가지고 있으며, 광범위한 표준 함수(Standard Functions) 및 연산자(Operators)를 지원합니다. IEC 61131-3 표준은 ST의 공식 구문을 정의합니다(그림 9-7 참고). 구조화된 텍스트는 전통적인 소프트웨어 프로그래밍 언어의 모양과 느낌을 기반으로 합니다.

최상의 목표 적용 분야(사용자 지침), 주요 특징 및 기능에 대한 추가 정보와 세부 내용은 참고문헌 IEC 61131-3, 3.3을 참조하십시오.

9.6.5 래더 다이어그램(Ladder Diagram, LD)

래더 다이어그램(LD)은 전통적인 릴레이 래더 다이어그램(Relay Ladder Diagram)을 기반으로 한 그래픽 언어입니다. 다이어그램은 전력 흐름(Power Flow)을 나타냅니다. 이 언어는 전통적인 PLC를 프로그래밍하는 데 처음으로 일반적으로 사용된 언어입니다(그림 9-8 참고). 그러나 IEC 래더 다이어그램 언어는 또한 사용자 정의 기능 블록(User-defined Function Blocks)과 함수(Functions)를 상호 연결하여 계층적 설계(Hierarchical Design)에 사용할 수 있도록 합니다.

Figure 9-8: Ladder Diagram

최상의 목표 적용 분야(사용자 지침), 그리고 주요 특징 및 기능에 대한 추가 정보와 자세한 내용은 참고문헌 IEC 61131-3, 4.2를 참조하십시오.

9.6.6 기능 블록 다이어그램(Function Block Diagram, FBD)

기능 블록 다이어그램(FBD)은 재사용 가능한 소프트웨어 요소(Reusable Software Elements)인 기능 블록을 통한 신호 및 데이터 흐름을 묘사하기 위한 그래픽 언어입니다(그림 9-9 참고). FBD는 제어 시스템 알고리즘과 로직의 상호 연결을 표현하는 데 매우 유용합니다. 이는 전통적인 로직 다이어그램(Logic Diagram)의 모양과 느낌을 기반으로 합니다. 이 다이어그램에서는 데이터 흐름을 나타냅니다. 기능 블록 다이어그램은 노드(Node)가 기능 블록 인스턴스(Function Block Instances), 그래픽으로 표현된 함수(Functions, Procedures), 변수(Variables), 리터럴(Literals) 및 레이블(Labels)인 네트워크입니다.

최상의 목표 적용 분야(사용자 지침), 그리고 주요 특징 및 기능에 대한 추가 정보와 자세한 내용은 참고문헌 IEC 61131-3, 4.3.1을 참조하십시오.

9.6.7 61131 언어의 호환성

IEC 61131-3은 북미, 유럽 및 일본의 프로그래머블 컨트롤러(Programmable Controllers)의 다양한 발전 과정과 현대 산업에서 프로그래머블 컨트롤러의 광범위한 적용 분야를 고려합니다.

아래 그림 9-10, 9-11, 9-12는 간단한 명령 실행 및 모니터링 기능(Monitoring Function)을 구현하기 위한 LD, ST 및 FBD 언어의 적용을 보여줍니다. 일반적으로, 원하는 기능은 IEC 언어 중 어느 것으로든 프로그래밍될 수 있습니다. 따라서, 각 특정 적용 분야에 대한 적합성에 따라 언어를 선택할 수 있습니다. 그리고 이는 언어들의 상호 호환성(Mutual Compatibility)을 보여줍니다.

연속 제어 기능(Continuous Control Functionality)을 위한 이산 제어 장치(Discrete Control Devices) 프로그래밍은 이 책의 이전 주제에서 다루고 있습니다.

Figure 9-9: Function Block Diagram

Figure 9-10: Application Using Ladder Diagram Language

Figure 9-12: Application Using Function Block Diagram Language

9.6.8 시스템 소프트웨어(System Software)

고려해야 할 주요 주제는 다음과 같습니다.

  • 프로그래밍 구조/프로그래밍 언어
  • PADT(Programming and Development Tool)
  • 제어 프로그램 접근: 접근 방법, 인증(Authorization)
  • 문서
  • 컴퓨터 지원 엔지니어링 도구(Computer Aided Engineering Tools)
  • 온라인/오프라인 구성(On-line/Off-line Configuration)