사다리 논리

Ladder logic

래더 로직은 원래 제조 및 프로세스 [1]제어에 사용되는 릴레이 랙의 설계와 구조를 문서화하기 위해 작성된 방식입니다.릴레이 랙 내의 각 디바이스는 사다리 다이어그램에 기호가 표시되어 있으며 이들 디바이스 간의 접속이 표시되어 있습니다.또한 펌프, 히터 등 릴레이 랙 외부 품목도 사다리 다이어그램에 표시됩니다.

래더 로직은 릴레이 로직 하드웨어회로도에 기초한 그래픽 다이어그램에 의해 프로그램을 나타내는 프로그래밍 언어로 진화했습니다.래더 로직은 산업 제어 애플리케이션에서 사용되는 Programmable Logic Controller(PLC; 프로그래머블 로직 컨트롤러)용 소프트웨어를 개발하기 위해 사용됩니다.이 이름은 이 언어의 프로그램이 사다리와 비슷하며, 두 개의 수직 레일이 있고 그 사이에 일련의 수평 릉이 있다는 관찰에 바탕을 두고 있습니다.래더 다이어그램은 한때 프로그래밍 가능한 컨트롤러 프로그램을 기록하는 데 사용할 수 있는 유일한 표기법이었지만, 오늘날 다른 형식은 IEC 61131-3에 표준화되어 있다(예를 들어, 그래픽 래더 로직 형식의 대안으로서 IEC 61131-3 표준 내에 구조화 텍스트라고 불리는 C와 더 유사한 언어도 있다).

개요

접점 및 코일을 포함한 래더 다이어그램의 일부, 비교, 타이머일체형 멀티 바이브레이터

래더 로직은 프로세스 또는 제조 작업의 순차적 제어가 필요한 PLC를 프로그래밍하는 데 널리 사용됩니다.래더 로직은 단순하지만 중요한 제어 시스템 또는 오래된 유선 연결 릴레이 회로를 재작업하는 데 유용합니다.프로그래밍 가능한 로직 컨트롤러가 더욱 정교해짐에 따라 매우 복잡한 자동화 시스템에도 사용되고 있습니다.종종 래더 로직 프로그램은 컴퓨터 워크스테이션에서 작동하는 HMI 프로그램과 함께 사용됩니다.

래더 다이어그램에 순차 제어 로직을 표현하는 동기는 공장 엔지니어 및 기술자가 FORTRAN이나 기타 범용 컴퓨터 언어를 학습하기 위한 추가 교육 없이 소프트웨어를 개발할 수 있도록 하기 위함입니다.익숙한 릴레이 하드웨어 [2]시스템과 유사하기 때문에 개발 및 유지보수가 간소화되었습니다.래더 로직의 실장은 하드웨어에 대한 유추를 다소 부정확하게 만드는 순차 실행 및 제어 흐름 기능의 지원 등의 특성을 가질 수 있습니다.

래더 로직은 절차적 언어가 아니라 규칙 기반의 언어라고 생각할 수 있습니다.사다리의 "rung"은 규칙을 나타냅니다.릴레이 및 기타 전자기기와 함께 구현될 경우 다양한 규칙이 동시에 즉시 실행됩니다.프로그래머블 로직 컨트롤러에 실장되어 있는 경우, 통상은 연속 루프(스캔)의 소프트웨어에 의해서 룰이 차례차례 실행됩니다.루프를 충분히 빠르게(통상 초당 여러 번) 실행함으로써 동시적이고 즉각적인 실행 효과를 얻을 수 있다.프로그래밍 가능한 컨트롤러를 올바르게 사용하려면 릉 실행 순서의 제한을 이해해야 합니다.

구문 및 예시

언어 자체는 논리 체커(접점)와 액추에이터(코일) 사이의 연결로 볼 수 있습니다.단조(참 또는 "폐쇄") 접점을 통해 단조(true 또는 "closed")의 좌측과 출력 사이의 경로를 추적할 수 있는 경우 단조(true)는 참이고 출력 코일 저장 비트는 단조(1) 또는 참입니다.경로를 추적할 수 없는 경우 출력은 거짓(0)이며 전기기계식 릴레이와 유사한 "코일"은 "전력 차단"으로 간주됩니다.논리적인 제안과 릴레이 컨택 상태 간의 유사성은 Claude Shannon에 기인합니다.

래더 로직에는 코일을 제어하기 위해 회로를 만들거나 차단하는 접점이 있습니다.각 코일 또는 접점은 프로그래밍 가능한 컨트롤러의 메모리에 있는 단일 비트의 상태에 해당합니다.전기기계식 릴레이와 달리 래더 프로그램은 무한히 많은 접점을 가진 릴레이에 해당하는 단일 비트의 상태를 여러 번 참조할 수 있습니다.

이른바 "접점"은 통합 입력 모듈 또는 외부 입력 모듈을 통해 푸시 버튼 및 제한 스위치와 같은 물리적 장치에서 프로그래밍 가능한 컨트롤러에 대한 물리적("하드") 입력을 의미하거나 프로그램 내 다른 곳에서 생성될 수 있는 내부 스토리지 비트의 상태를 나타낼 수 있습니다.

사다리 언어의 각 줄에는 일반적으로 오른쪽 끝에 코일이 하나씩 있습니다.제조원에 따라서는, 1개의 링에 복수의 출력 코일을 허가하는 경우가 있습니다.

Rung 입력
체커(연락처)
  • —[ ]—통상 개방 접점이며, 해당 코일 또는 코일 제어 입력이 통전될 때마다 닫힙니다.(정지 상태에서 개방 접점)
  • —[\]—통상적으로 닫힌("비" 접점), 대응하는 코일 또는 코일 또는 코일 제어 입력에 전원이 공급되지 않을 때마다 닫힌 접점(정지 상태에서의 닫힌 접점)
Rung 출력
액추에이터(코일)
  • —( )—일반적으로 비활성 코일이며, 릉이 닫힐 때마다 전원이 공급됩니다.(정지 상태에서는 비활성화)
  • —(\)—통상 액티브('비') 코일로, 링이 열릴 때마다 전원이 공급됩니다(정지 상태에서는 액티브).

코일(rung의 출력)은 프로그램 가능한 컨트롤러에 연결된 일부 장치를 작동하는 물리적 출력을 나타내거나 프로그램의 다른 곳에서 사용하기 위한 내부 스토리지 비트를 나타낼 수 있습니다.

이를 기억하는 방법은 체크커(접점)를 푸시 버튼 입력으로, 액추에이터(코일)를 전구 출력으로 상상하는 것이다.체커 또는 액튜에이터 내에 슬래시가 있으면 장치의 기본 정지 상태를 나타냅니다.

논리 AND

-------------------------------------------------------------( ) 키 스위치1 키 스위치2 도어 모터

위의 기능은 다음과 같습니다.도어 모터 = 키 스위치 1 및 키 스위치 2

이 회로는 경비원이 은행 금고 도어의 전기 모터를 작동시키는 데 사용할 수 있는 두 개의 주요 스위치를 보여줍니다.두 스위치의 정상 개방 접점이 닫히면 모터로 전류가 흐르며 도어가 열립니다.

논리적이고 그렇지 않은 경우

----------------------------------------------------------------------------------------------------------------------------( )

위의 기능은 다음과 같습니다.도어 모터 = 도어닫고 닫지 않음(방해물).

이 회로는 문을 닫는 누름 버튼과 닫히는 문에 방해가 되는 것이 있는지 감지하는 장애물 감지기를 보여줍니다.정상적으로 열린 푸시 버튼 접점이 닫히고 정상적으로 닫힌 장애물 감지기가 닫히면(장애물이 감지되지 않음), 도어를 닫는 모터로 전류가 흐를 수 있습니다.

논리 OR

--+-------------------------------------------------------------------------------------------------------------------+ 내부 잠금 해제

위의 기능은 다음과 같습니다.잠금 해제 = 내부 잠금 해제 또는 외부 잠금 해제

이 회로는 자동차의 파워 도어 잠금을 트리거할 수 있는 두 가지를 보여줍니다.리모트 리시버에는 항상 전원이 들어가 있습니다.잠금 해제 솔레노이드는 접점 중 하나가 닫히면 전원이 공급됩니다.

산업용 STOP/START

일반적인 산업용 래치 시작/중지 로직에는 모터 컨택터를 켜기 위한 "시작" 버튼과 컨택터를 끄기 위한 "정지" 버튼이 있습니다.

"Start" 버튼을 누르면 "Stop" 버튼 NC 접점을 통해 입력이 참이 됩니다."실행" 입력이 참이 되면 "시작" NO 접점과 병렬로 연결된 "실행" NO 접점이 닫히며 입력 로직이 참(래칭 또는 밀폐)으로 유지됩니다.회로가 래치된 후 "Stop" 버튼을 누르면 NC 접점이 열리고 결과적으로 입력이 잘못될 수 있습니다.그런 다음 "실행" NO 접점이 열리고 회로 로직이 비활성 상태로 돌아갑니다.

--+-------------------------------------------------------------------------------------------------------------------+
------------------------------------------------------------------------

위의 기능은 다음과 같습니다.= 실행(시작 또는 실행) (정지하지 않음)

래치 설정은 래더 로직의 일반적인 관용어입니다.씰인 로직이라고도 합니다.래치를 이해하는 열쇠는 "Start" 스위치가 일시적인 스위치임을 인식하는 것입니다(사용자가 버튼을 놓으면 스위치가 다시 열립니다)."실행" 솔레노이드가 결합되는 즉시 "실행" NO 접점이 닫히고 솔레노이드가 잠깁니다.Start(시작) 스위치가 열려도 아무런 효과가 없습니다.

참고: 이 예에서 "Run"은 PLC의 비트 상태를 나타내며, "Motor"는 모터의 실제 회로를 닫는 실제 릴레이에 대한 실제 출력을 나타냅니다.

안전상의 이유로 비상정지("ES")는 "시작" 스위치와 직렬로 유선 연결될 수 있으며, 릴레이 로직은 이를 반영해야 합니다.

--[\]----[\]-------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------

위의 기능은 다음과 같습니다.=(ES 아님) 및 (정지 안 함) (시작 또는 실행) 실행

복소논리

다음은 사다리 논리 프로그램의 두 단이 어떻게 보이는지 보여주는 예입니다.실제 응용 프로그램에서는 수백 또는 수천 개의 릉이 있을 수 있습니다.

일반적으로 복잡한 래더 로직은 왼쪽에서 오른쪽으로, 위에서 아래로 "읽기"됩니다.각 라인(또는 릉)을 평가할 때, 릉의 출력 코일은 입력으로서 래더의 다음 스테이지에 공급될 수 있다.복잡한 시스템에서는 사다리 위에 평가 순서대로 번호가 매겨진 많은 "rungs"가 있습니다.

  1. A/C = 스위치 AND(HiTemp 또는 습기) 기능을 실현합니다.
    ----[ ]-----------+-------------------------------------------------------------------------------------------------------------------------------------
  2. 기능 실현:냉각 = A/C 및 (이 아님).
    -----------------------------------------------------------------------------------------------------------------

이것은 ring 2에 대해 조금 더 복잡한 시스템을 나타냅니다.첫 번째 라인이 평가된 후 출력 코일 "A/C"를 릉 2에 공급하고, 이를 평가한 후 출력 코일 "냉각"을 출력 장치 "압축기" 또는 래더의 릉 3에 공급합니다.이 시스템은 매우 복잡한 논리 설계를 분해하고 평가할 수 있도록 합니다.

추가 기능

특수 블록으로서 PLC 제조원에 의한 래더 로직 실장에 추가 기능을 추가할 수 있습니다.특수 블록에 전원이 공급되면 미리 결정된 인수에 대해 코드가 실행됩니다.이러한 인수는 특수 블록 내에 표시될 수 있습니다.

+-------+ -----[ ]-------+ A 리모트 잠금 해제 +---+ 리모트카운터
+-----+ -----[ ]-------+ B +--- 내부 잠금 해제 +---+ 내부 카운터
+---------------------------------------------------------------------------------------------------------------------------------------------------

이 예에서는 시스템이 내부 및 원격 잠금 해제 버튼을 누른 횟수를 카운트합니다.이 정보는 메모리 위치 A와 B에 저장됩니다.메모리 위치 C에는 도어가 전자적으로 잠금 해제된 총 횟수가 저장됩니다.

PLC에는 많은 유형의 특수 블록이 있습니다.여기에는 타이머, 산술 연산자 및 비교, 테이블 룩업, 텍스트 처리, PID 제어 및 필터링 기능이 포함됩니다.보다 강력한 PLC는, 예를 들면, 물리적인 시퀀셜 드럼 컨트롤러나 유한 상태 머신을 시뮬레이트 하기 위해서, 내부 메모리 로케이션의 그룹상에서 동작해, 주소의 범위내에서 동작을 실행할 수 있습니다.경우에 따라 사용자는 서브루틴 또는 매크로에 해당하는 자체 특수 블록을 정의할 수 있습니다.고속 실행과 함께 특수 블록의 큰 라이브러리는 매우 복잡한 자동화 시스템을 구현하기 위해 PLC를 사용할 수 있게 했습니다.

제한사항 및 후속 언어

래더 표기법은 바이너리 변수만 필요하고 바이너리 인터락과 시퀀싱이 주요 제어 문제인 문제를 제어하는 데 가장 적합합니다.모든 병렬 프로그래밍 언어와 마찬가지로 순차적인 연산 순서가 정의되지 않거나 불분명할 수 있습니다.논리 레이스 조건은 예기치 않은 결과를 초래할 수 있습니다.복잡한 릉은 이 문제를 피하기 위해 몇 가지 간단한 단계로 분할하는 것이 좋습니다.일부 제조업체는 명시적으로 완전히 실행 순서를 정의함으로써 이 문제를 회피하지만, 프로그래머는 여전히 결과적인 복잡한 의미론을 완전히 이해하는 데 문제가 있을 수 있습니다.

아날로그 수량과 산술 연산은 사다리 로직으로 표현하기가 서툴러 제조사마다 이러한 문제에 대한 표기법을 확장하는 방법이 다릅니다.일반적으로 어레이와 루프의 지원은 제한되어 있으며, 다른 언어로 인덱스 변수를 사용해야 하는 경우를 나타내는 코드가 중복되는 경우가 많습니다.

마이크로프로세서가 더욱 강력해짐에 따라 일부 제한된 애플리케이션에서는 순차 함수 차트 및 함수 블록 다이어그램과 같은 표기가 사다리 로직을 대체할 수 있습니다.일부 새로운 PLC는 BASIC, C 또는 실시간 애플리케이션 환경에 적합한 바인딩을 가진 다른 프로그래밍 언어와 유사한 방언으로 실행되는 프로그래밍의 전부 또는 일부를 가질 수 있습니다.

인기

IEEE Spectrum은 2019년 래더 로직을 인기 프로그래밍 [3]언어 목록에서 52개 중 50개로 평가했다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ http://ecmweb.com/archive/basics-ladder-logic "라더 로직은 스위치 또는 릴레이 접점을 사용하여 부울식을 구현합니다.과거 몇 년 동안 사다리 논리는 이산 릴레이로 가능했고 때로는 "릴레이 논리"라고 불렸다.
  2. ^ Edward W. Kamen Industrial Controls and Manufacturing, (아카데미 프레스, 1999) ISBN0123948509, 제8장 래더 논리도 및 PLC 구현
  3. ^ "Interactive: The Top Programming Languages". IEEE Spectrum. Retrieved 2019-10-18."Interactive: The Top Programming Languages". IEEE Spectrum.

추가 정보

외부 링크