• PLC의 개요
  • PLC(programmable logic controller)는 제어장치의 일종으로 프로그램 제어에 가장 많이 이용되고 있는 장비이다. 자동화를 위하여 종전에는 제어시스템의 회로도에 따라 릴레이, 접점, 타이머, 카운터 등을 직접 접속하여 사용하였으나, 이는 다품종 소량생산 체제에 따른 제어 시스템의 변경에 많은 시간과 비용이 요구되었다. 이 문제를 해결하기 위하여 70년대초 미국에서 프로그램이 가능한 제어시스템이 개발되었으며, 그것이 PLC이다. PLC(과거에는 PC라고 불리기도 했다.)는 컴퓨터와 같은 원리로 동작하며 산업 현장의 공정제어장치를 비롯한 여러 분야에서 널리 이용되어져 왔다.

  • 특징
  • 디지털 또는 아날로그 입출력 모듈과 릴레이, 타이머, 카운터, 연산기능 등의 수행기능을 이용하여 제어내용을 작성하고 기억시킬 수 있는 메모리를 사용하는 디지털 조작형 전자 장치로, 프로그램에 의하여 각종 기계와 공정을 제어하도록 되어 있는 제어장치를 PLC라 할 수 있다.

    표 Ⅱ-1 릴레이 제어반과 PLC의 비교

     

    Relay 제어반

    P . L . C

    제 어 방 식

    Hard logic

    Soft Logic

    제 어 기 능

    Relay (직렬, 병렬접점)
    Timer
    Counter
    (기능은 한정적이고, 규모에 따라 대형화)

    Relay(AND, OR, NOT)
    Up-down Counter
    Shift Register
    간단한 가감산
    (고기능, 대규모의 제어를 소형으로 실현)

    제 어 요 소

    유접점
    (한정된 수명, 저속제어)

    무접점
    (고신뢰성, 장수명, 고속제어)

    제어내용의 변경

    기구간의 배선 변경

    프로그램 변경만으로 가능

    공사기간

    사양 결정 후 제어반 제작.
    검사, 시운전 기간의 장기화.

    사양 결정과 Hard의 취합이 병렬 진행 가능
    검사, 시운전 기간의 단축

    시스템의 특징

    독립된 제어 장치

    시스템의 확장이 용이.
    컴퓨터와의 연결 가능.

    보전성

    보수, 수리 공사가 오래 걸린다.

    고신뢰성, 장수명으로 유지 보수비용이 적다

    부 피

    소형화가 곤란

    소형화가 가능

    즉, 각종기계나 공정 등의 제어를 위하여 종래에 사용하던 릴레이, 타이머 등의 기능이 반도체 소자와 소프트웨어로 구성되어 있어, 타이머, 카운터는 물론 연산 기능을 내장하고 있으며, 프로그램을 작성할 수 있는 메모리를 갖고 있는 전기 제어장치를 말한다.

  • PLC와 릴레이 제어반의 비교
  • 릴레이와 PLC의 비교를 표 Ⅱ-1에 나타냈다.

  • 구성
  • PLC는 기계나 설비 장치를 운전 제어를 위해 사용되므로 생산 현장에 견딜 수 있도록 온도나 노이즈(noise)등에 강하고 취급이 쉬운 구조로 되어 있다. 또한 제어 대상의 내용에 알맞은 규모를 선정, 조합하여 사용할 수 있도록 구성되어 있다. 그림 Ⅱ-1과 같이 인간의 두뇌에 해당하는 CPU부(중앙 처리 장치, Central Processing Unit), 기계와 설비 장치의 신호를 주고받는 입출력부(PI/O, Process Input/Output), 시퀀스회로의 내용에 해당하는 프로그램을 기억하는 기록부(Memory), PLC의 각부에 전원을 공급하는 전원부 및 PLC의 용이한 취급 및 기능의 향상을 위한 주변기기(Program-loader, EPROM Writer 등)로 구성된다.

  • CPU(중앙처리부)
  • 중앙처리부는 말 그대로 PLC의 모든 동작을 관리 제어하며, 메모리의 프로그램을 읽어 내어 수행한다. 내부 BUS을 통한 CPU 내의 정보 전송은 물론 메모리와 입출력부와도 데이터를 주고받는다. 대개 CPU로서는 Micro processor을 채택하며, 그것이 Bit 수나 클럭 속도에 따라 PLC의 성능이 결정된다. 대형 PLC의 경우 복잡한 산술 연산이나 PID 제어, 통신 및 원격 입출력 모듈 등에 별도의 마이크로프로세서를 채택하여 CPU의 부하를 분담하도록 설계하는 것이 일반적이다.

  • Memory(기억부)
  • 메모리는 프로그램을 기억해 두는 장소로서 매우 중요하다. PLC의 프로그램은 전원이 끊어져도 그 내용이 지워져서는 안되므로 전원의 ON, OFF에 관계없이 그 내용을 기억하여 둘 대책을 마련해 놓고 있다.

    메모리를 세분하면 프로그램 영역과 데이터 영역으로 나누어진다. 프로그램 영역은 제어 내용의 프로그램을 기억하는 부분이고, 데이터 영역은 그 프로그램에 의해 연산된 결과를 일시 기억하는 부분이다. 프로그램 영역의 기억 내용은 기준이 되는 프로그램이 일정하지만, 데이터 영역의 기억 내용은 시간적으로 연산결과에 따라 여러 가지로 변화한다. 이것을 PLC에서는 내부출력이라 한다. 내부출력이란 릴레이 시퀀스제어에 있어서 릴레이의 코일에 대한 출력을 일시 저장해 두는 것이다. 내부출력에는 비트와 워드가 있고, 비트 내부 출력은 시퀀스 등에 빈번히 사용되는 패턴을 한데 모아 내부출력으로 치환할 때 사용된다. 전자를 비트(논리) 연산, 후자를 워드(산술)연산이라 한다. 이 내부 출력에는 예를 들면 카운터 등의 경과치를 기억하고 있는 경우에 전원을 끊어도 그 내용을 보전하여 다시 전원이 들어온 후에 그대로 사용할 수 있도록 정전기억이 될 수 있는 것도 있다.

  • INPUT/OUTPUT(입출력부)
  • 입출력부는 PLC와 기계, 설비장치 간에 인터페이스(Interface)로서 표 Ⅱ-3에서와 같은 외부 기기들과 접속된다. 사용자가 외부 기기의 개수에 약간의 여유를 두어 필요한 입출력 점수를 결정하게 되는데 신호의 종류 및 크기에 따라 선택하여야 한다.

그림 Ⅱ-2 입출력에 사용되는 커플러의 구조

  • 제어 요소
  • 입력 Transducer - 물리적 신호를 전기 신호로 변환하는 센서가 주종이다.

    출력 Actuator - 제어장치에서 만들어지는 제어 신호를 조작 신호로 변환하는 장치

    제어장치(Controller) - 입력 조건에 따른 제어정책 및 제어 알고리즘을 수행하여 제어신호를 출력요소에 내보내는 장치이다. 여기에는 제어알고리즘을 소프트웨어로 메모리 장치에 저장하여 유연하게 변경할 수 있는 프로그래머블 제어기, 한 번 결정하여 설치하면 제어 알고리즘이 고정적이어서 변경하기 어려운 하드웨어 제어기로 크게 나눌 수 있다.

  • 표 입력 측정신호

  • 입력 Transducer

    측 정 신 호

    출 력 신 호

    스위치류
    써모 스타트
    열전대,써미스터
    스트레인 게이지
    광전지(포토셀)
    광센서
    엔코더
    근접 스위치

    위치 / 움직임
    온 도
    온 도
    압력 / 비틀림


    각도
    물체의 존재 여부

    이진전압(On/Off)
    이진전압(On/Off)
    가변전압
    가변저항
    가변전압
    가변전압
    이진신호
    가변저항

  • 표 출력 측정신호

  • 출력 Actuator

    제 어 신 호

    조 작 신 호

    릴레이
    전동기
    히터
    램프류
    밸브
    솔레노이드
    피스톤,실린더

    전기전기
    전기
    전기/유압/공압
    전기
    전기
    유압 / 공압

    스위칭 / 변위회전운동


    유량 / 흐름의 방향
    직선운동 / 압력
    직선운동 / 압력

  • PLC의 프로그래밍 언어
  • 프로그램이란 PLC가 일을 할 수 있도록 PLC에게 주어지는 명령의 일종으로, 인위적으로 구성하여 만들어진 것이다. 사람이 각 나라마다 언어가 있듯이 PLC에게도 프로그래밍 언어가 여러 가지로 구현이 되고 있으며, 또한 PLC의 기종에 따라 다소의 차이를 보이고 있다.

    PLC의 프로그래밍 언어는 컴퓨터적인 고도의 지식보다 릴레이 등의 시퀀스 제어에 숙달할 정도면 충분히 구현할 수 있도록 다각화되어 개발되고 있으며, 제어의 내용이나 적용분야에 따라 프로그래밍 언어의 특징에 적합한 것을 선정하여 사용할 수 있도록 구성되어 있다.

    프로그래밍의 구성방법은 차이가 나더라도 모든 프로그램에는 할당된 주소를 사용한다. 할당되는 주소는 8비트 PLC의 경우는 8진수를, 16비트 PLC는 16진수를 주로 사용한다. 우리는 16진수를 사용하기로 한다.

  • 니모닉(mnemonic)방식
  • 릴레이의 접속상태나 접점 등을 약식의 언어를 사용하여 나타낸 것으로, 타이머, 카운터, 사칙연산, 비교 등의 수칙연산 기능이 PLC 기종별로 다소 다르게 시용된다. 니모닉방식에서는 제어내용을 논리에 치중한 명령어로 표시하기 위하여 명령어의 순서 자체가 PLC에 대한 처리순서를 표시하는 셈이 되므로 제어내용의 논리에 따라 순서대로 명령어로 변환할 필요가 있다. 개개의 명령어는 연산의 종류를 표시하는 명령(operator)부분과 연산을 하는 입출력 번호를 표시하는 연산자(operand부)로 나누어진다.

    우리 교육장에서 사용하는 PLC의 경우에는 List program이라고 구성되어진 부분에 해당한다.

  • 래더다이어그램(ladder diagram)방식
  • 시퀀스에서 사용하는 a 접점, b 접점, 릴레이 등의 래더기호를 사용하여 CRT나 액정표시기의 디스플레이 위에 회로도를 그려 작성하는 방식으로 작성된 회로도 자체가 명령어가 된다. 이는 시퀀스의 전개접속도와 비슷한 구조를 가지고 있고, 니모닉 방식보다 PLC간 프로그램 언어의 차이가 적어 널리 사용되고 있는 프로그램 언어이다. 수치 연산의 기능이 있는 PLC에서는 수치연산 부분을 블록으로 구성하여 표시한다.

    구성 방법은 래더다이어그램 방식의 프로그래밍 장치의 패널면에 각종 래더기호 및 직렬(AND), 병렬(OR)접속 방법을 이용하여 작성한다. 우리 교육장의 경우에는 DOS용의 로더프로그램을 사용하여 기능 키(function키)로 불러서 구성할 수 있도록 되어있다.

그림 프로그램 언어의 예

  • 논리도방식
  • 논리기호를 사용하여 프로그램을 구성하는 방식으로, 기명식과 MIL방식 모두 사용되고 있다.

  • 플로우차트방식
  • 제어내용의 동작을 흐름으로 구성하여 작성하는 방식으로, 세부적인 동작상황보다는 전체적인 흐름의 알고리즘의 작성에 적합한 방식이다.

  • 불대수식방식
  • 수학적인 표현인 불대수식 기호를 명령어로 구성하여 프로그램하는 방식으로, 직렬(논리합, + ), 병렬(논리곱, ·), 출력( = ), 부정( - )의 기호를 사용하여 구성한다.

  • 기타
  • PLC에서 직접 사용할 수 있도록 기계어를 사용하는 방식이 있다. 이는 니모닉 방식과 비슷한 구조를 가지고 있으나 PLC의 내부 마이크로프로세서의 종류에 직접적인 영향을 받기 때문에 널리 사용되는 방식은 아니다.

  • PLC programming
  • 프로그램의 기초
  • PLC로 기계나 장치를 제어하는 경우 우선 그 제어의 내용을 PLC가 판단할 수 있는 언어로 프로그램을 작성해야 하는데, 이 과정이 프로그래밍으로, 제작사나 PLC의 기종에 따라 사용되는 언어에 다소의 차이가 있을 수 있으나, 형식에는 별반 차이가 없다. 가장 널리 사용되는 것이 명령어를 직접 작성하는 방식(logic symbol어)이지만 래더다이어그램을 이용한 방식(relay symbol어)도 있다. 최근에는 주로 사용하는 방식은 전자의 경우이다. 그 외에도 flow-chart로 나타내는 방식과 기계동작의 스텝을 도표로 기술하는 스텝도 방식 등이 있다.

    래더다이어그램 방식에 의한 프로그래밍은 제어회로의 기본인 시퀀스회로와 흡사하고 CPL의 경우에는 접점을 모니터에 직접 그려 넣을 수 있어 편리하기도 하다. 우리 교육장에서 사용되는 POSFA PLC를 기준으로 래더방식과 리스트방식을 위주로 프로그래밍 기법을 소개한다.

    래더방식의 프로그래밍에서 PLC가 연산하는 처리 순서는 좌에서 우로, 위에서 아래로 순서대로 실행하며, END명령을 실행한 후 0스텝으로 돌아와 반복 연산을 한다.

  • 사용 명령
  • 프로그램 명령의 구성
  • 명령의 대부분은 명령부와 연산자로 나누어진다. 아래의 예에서 ROL은 명령부이고, 나머지는 연산자이다. 이 명령은 Y20부터 16개의 데이터를 2비트씩 왼쪽으로 회전(rotate)시키게 된다.

    또한 명령어는 device의 조합에 따라 명령구성이 달라지기도 한다. 예로 END, LEND 등은 연산자를 필요로 하지 않는다. 다른 예로 OUT Y20 인 경우는 하나의 연산자를 갖으며, MOV WR0 WL0 는 2개의 연산자를 갖는 것으로 WR0에 들어 있는 데이터를 WL0로 이동하라는 것이다. 마지막으로 SUB WR0 WY0 WL0 는 3개의 연산자를 갖는 명령으로 WR0에서 WY0 을 뺀 값을 WL0 에 저장하는 것이다.

    명령에서 수치의 취급은 10진수일 경우에는 K를, 16진수일 경우에는 H를 숫자 앞에 적어 표시한다.
    명령의 수행 과정을 보면 PLC는 스캔방식으로 연산을 실행하고 있기 때문에 짧은 한 순간을 잡아 보면 어떤 한가지 일 밖에는 하지 않고 있다. 즉 PLC는 한순간 한순간을 계속하여 일을 하는 직렬처리 방식이다. 그림 Ⅱ-18의 시퀀스회로에서 먼저 릴레이반이 접점 X00와 X01 혹은 X02와 X03가 동시에 ON 한다면 출력 Y30 또는 Y31이 동작한다. 이에 반하여 PLC의 경우는 프로그램에 따라서 먼저 X00 를 읽고 다음에는 (X00 AND X01)를 하고 그 결과를 출력 Y30에 보낸다. 다음에는 X02, X03을 읽어 들여 31에 그 결과를 출력한다. 이와 같이 메모리에 있는 순번에 따라 처리해 나가는 직렬처리이다.

    이는 스캔동작에 의한 것이며, 동작에 커다란 차이를 보인다. 그림 Ⅱ-5에서 시퀀스회로라면 완전히 같은 동작을 한다. 즉 시퀀스 그림을 그리는 순서와는 관계없이 X1 → R0 → R1 → Y21의 순번으로 ON이 된다. PLC의 경우는 프로그램을 써넣은 순서에 따라 프로그램(a)과 프로그램(i)의 차이가 나온다. (a)의 경우는 1 스캔 내에 동작하지만 (i)의 경우는 입력 X1이 들어오면 제 1의 스캔에서 먼저 "X1=" 를 읽고 다음에 있는 R0가 동작하고 스캔이 일 순회된 후 "R0=, R1"이 동작한다. 이와 같이 최초의 스캔만으로는 전부의 동작을 할 수가 없으며, 1스캔마다 1회로씩 동작하게 된다. 프로그램(i)과 같이 스캔방향과 반대로 프로그램을 써넣음으로써 다른 동작을 시키고, 이것을 잘 이용하여 여러 가지 고기능을 실현시킬 수 있다. 그림을 보면 X1이라는 입력신호가 들어가서 Y21이라는 신호가 나오는 데까지 2 스캔의 시간만큼 늦어지고 있다. 이와 같은 스캔타임을 적극 활용한 것이 타이머이다.

  • 릴레이 시퀀스 PLC 프로그램

  • 입출력 주소(I/O address)의 할당
  • 입출력 주소의 할당은 기본 베이스의 슬롯위치에 의해 결정되고 주변기기에서 임의로 할당할 수도 있다. CPU가 입출력 모듈과 데이터를 주고받을 경우에 각 모듈을 주소에 의해 관리해야 하기 때문에 주소를 할당해 놓아야 한다. 이 주소는 로더에서 할당할 수도 있고, 자체에서 할당하기도 한다. 자체로 할당하는 경우는 그림 Ⅱ-7과 같은 방법으로 설정된다. 기본 베이스는 모두 8슬롯이 있는 것으로 판단하여 주소를 할당하나, 기본 베이스를 5개의 슬롯만 사용할 경우에는 나머지 3개는 주소를 할당하지 않고 증설 베이스의 주소를 할당한다.

    실제 장착되어 있는 모듈보다 작은 점수로 주소를 할당한 경우에는 사용할 수 있는 입출력 접점수가 줄게 된다. 예로 32점의 모듈을 설치하고 16점의 주소를 설정한 경우나, 16점의 모듈을 설치하고 32점의 주소를 할당한 경우에는 16점밖에 사용할 수가 없다.

  • 프로그램시 주의사항
  • PLC에 의한 제어도 릴레이에 의한 제어와 같으며, 제어사항에 근거하여 릴레이 기호와 논리 기호로서 제어내용을 표현한 제어회로도를 작성한 다음, 이를 프로그램한다. 제어 회로도의 작성은 본질적으로 유접점 릴레이나 무접점 릴레이의 제어회로와는 근본적으로 차이는 없지만 PLC 고유의 제어특성이 있으므로 이를 고려한 합리적인 제어회로를 구성하는데 보탬이 되고자, PLC 프로그램시 주의사항을 설명한다.
  • PLC의 기본동작은 프로그램 메모리를 첫 번째 스텝부터 마지막 스텝까지 순차적으로 1 스텝씩 체크해 가면서 실행해 가는 시스템이므로 데이터의 교체, 명령 실행 등은 1 사이클 타임(scan time) 사이에서 1회만 실행하게 되므로 입력신호의 폭은 적어도 1스캔타임 이상이어야 한다.
  • PLC 내부에서 사용되는 릴레이 주소에 의한 접점은 접촉 불량이나 전압강하 등을 고려할 필요가 없으므로 병렬 또는 직렬수에 대한 제한이 없다. 즉, 프로그램 스텝이 허용하는 범위 내에서는 무한정 사용할 수 있다.
  • 입출력 신호, 내부 데이터 메모리는 프로그램상에서 몇 번이라도 사용할 수 있으므로 릴레이 회로에서와 같이 접점의 증설, 접점용량에 대해서는 고려할 필요가 없다.
  • 릴레이 회로에서는 릴레이 수를 절약하기 위해 코일에 입력될 때까지의 접점배열을 복잡하게 하는 경향이 있지만, PLC에서는 충분한 데이터 메모리 영역을 갖고 있으므로 가능한 한 쉬운 시퀀스를 작성해 둠으로써 이후에도 고장 체크 및 유지보수가 쉽다.
  • 그 대신 PLC에는 프로그램 순(順)을 이용한 테크닉이 있다. 이 점은 회로 구성상에 릴레이에 의한 제어와 PLC 제어의 차이점을 근본적으로 나타내 주는 것이다. 릴레이 제어인 경우는 그림 Ⅱ-8(a)의 X2는 접점절약을 위한 오묘한 테크닉이라고 말할 수 있으나, PLC 제어에서는 이런 상태를 프로그램이 불가능하므로 그림 Ⅱ-8 (b)같이 변형시켜서 프로그램해야 한다.

  • 릴레이의 동작 시간이라는 개념은 PLC 제어에는 없다. 따라서 동작 시간을 이용한 오묘한 테크닉은 PLC 제어인 경우 적용되지 않는다.
  • 역류회로의 불필요 : 릴레이 시퀀스에서는 역류를 방지하기 위해 다이오드를 사용하고 있으나, PLC에서는 프로그램순이 전류의 흐름과 같기 때문에 간단히 해결할 수 있다.
  • PLC 프로그램 중에서 출력 주소를 2번 이상 지정할 수 없다. 2번 이상 지정하면 먼저 지정한 주소가 소멸된다. 반드시 서로 다른 출력 주소를 지정하여야 한다.
  • 릴레이 제어에서는 릴레이의 수를 줄이는 것이 비용절감이라고 말할 수 있으나 PLC제어에서는 입출력 점수(I/O 합계 접점)를 줄이는 것이 바로 비용절감과 직결된다. 따라서 가능한 한 PLC와 접속되는 직렬입력 기기(조작 S/W, Limit S/W 등) 등을 합쳐서 한 개의 입력 단자를 소모하도록 하면 경제적이다.
  • PLC제어는 릴레이제어에 없는 기능(SET, RST, TMR, CNT, MCS, MCR, OUT)이 부가되어 있다. 이것은 릴레이를 1개 1개씩 다루는 것이 아니라 복수개의 릴레이를 하나의 공동목적을 위한 그룹으로서 간주하여 처리하는 기능이다. 이런 기능을 능숙하게 이용함으로써 다방면의 제어 범위를 넓힐 수 있고, 릴레이제어 방식에서는 도저히 불가능한 것도 쉽게 가능하게 해주는 편리한 기능이다. 따라서 PLC를 단순히 릴레이 제어반을 대체하는 것만이 아니고 보다 더 질이 높은 제어를 하기 위해 PLC가 갖고 있는 모든 기능을 충분히 활용해야 될 것이다.
  • PLC와 종래의 릴레이 회로와 본질적으로 다른 점은 PLC가 제어 내용에 대한 프로그램을 직렬로 처리하는데 비해 릴레이 회로는 병렬로 처리한다. 그러므로 릴레이 회로의 경우 고장이 발생해도 그 이상 동작은 한정되지만 PLC의 경우에는 시스템 전체의 이상 동작을 일으킨다. 이러한 점에서 볼 때 제어의 전체를 PLC에 맡기는 것은 좋은 방법이 아니며 기계의 고장이나 사고로 이어지는 부분들, 예를 들면 비상정지 회로, 보호 회로, 고전압 기기의 조작회로 등은 PLC의 외부에서 구성시켜야 한다.

  • 프로그램을 작성할 경우에 작성상의 규칙으로 분기(branch), 개방(open), 단락, 루프 등의 검정을 거쳐 컴파일이 되므로 고려하여 작성한다. 분기 검정의 경우, OR의 분기는 아래로 향하여야 하며, 분기된 곳에는 기호가 연결되어야 한다. 개방에서는 임의의 한 기호는 양쪽 끝에 가지나 다른 기호와 연결되어야 한다. 또한 단락의 경우에 임의의 한 루프에는 inverse, pulse를 제외한 하나 이상의 접점이 존재해야 하며, 루프에서는 임의의 한 루프에서 양쪽 끝 노드를 제외한 곳에서 가지를 통하여 이 루프를 벗어나지 않도록 해야 한다.
  • [래더다이어그램에서 사용되는 기호]
  • a접점 : 연산개시 입력으로 초기의 상태는 개로된 상태이나 조작에 의하여 폐로가 되는 접점 기호로 시퀀스 회로의 모든 a접점은 이와 같이 표현된다. 센서의 동작으로 출력이 동작되는 경우에 사용된다.

    b접점 : 연산개시 입력으로 초기의 상태는 폐로 상태이고 조작된 경우에는 개로의 상태가 되는 접점으로, 모든 b접점은 이로 표현된다. 센서의 동작으로 출력의 동작이 해제되는 경우에 사용된다.

    a접점 블록 : a접점을 병렬(OR)로 연결할 경우 사용하며, a접점 기호를 사용하여 병렬로 접속하는 경우와 같다.

    b 접점 블록 : b접점을 병렬(OR)로 연결할 경우 사용하며, b접점 기호를 사용하여 병렬로 접속한 경우와 같다.

    상승 펄스(rising pulse) : 입력 신호가 OFF→ON으로 변하는 1 스캔 타임 동안 한 순간만 출력을 ON시키는 기능을 가진다. 1스캔타임은 프로그램의 첫 번째 스탭에서 시작하여 전체를 실행하고 다시 첫 번째 스탭으로 돌아오는 데 걸리는 시간이다.

    하강 펄스(falling pulse) : 입력 신호가 ON→OFF으로 변하는 1 스캔 타임 동안 한 순간만 출력을 내보낸다.

    입력 반전(inverse) : 앞의 입력 신호에 반대되는 출력 신호를 내보낸다.

    출력 : 입력 신호의 조건에 의해 출력 요소의 상태(ON/OFF)를 출력

    출력 세트(set) : 입력 신호의 진리치에 의해 출력측의 요소를 세트시키는 것으로, 자기 유지나 메모리에 해당되며, 리세트 출력과 함께 사용된다. 입력이 변해도 세트된 신호는 계속 상태를 유지하며, 리세트 명령에 의해 초기화된다.

    출력 리셋(reset) : 입력 신호의 진리치에 의해 출력측의 요소를 리세트시킨다. 입력 신호가 변화해도 리셋은 유지되고, 세트 명령에 의해 세트되며, 이 기호는 출력 세트 기호와 함께 사용된다. 주소는 세트 명령과 같은 주소를 사용한다.

  • PLC에 의한 제어 실습
  • 프로그램 메뉴
  • POSFA 로더 프로그램의 전체적인 메뉴를 소개한다.

    주메뉴

    부메뉴

    동 작 상 황

    File

    New

    새로운 작업을 시작할 경우 사용한다.
    ladder / list / comment / SFC를 선택하여 작업한다.

    Open

    기존의 파일을 불러와서 작업할 수 있다.
    ladder(*.LAD), list(*.LIS), comment(*.WCM), SFC(*.SFC)

    Close

    작업창을 닫을 때 사용한다. 저장하지 않은 자료는 삭제된다.

    Save

    작업한 자료를 저장할 경우에 사용한다. 파일의 확장자는 작업영역별로 구분하여 생성된다.

    Exit

    POSFA 프로그램을 종료한다.

    Edit

    Cut

    설정된 블럭을 자르는데 사용한다. 블록은 라인단위로 가능하며 삭제된 자료는 클립보드에 저장된다.

    Copy

    설정된 블록을 복사하는데 사용한다.

    Paste

    복사된 블록을 붙이는데 사용한다. 지정해준 rung 앞부분에 삽입된다.

    Replace

    comment, operand, label 의 내용을 변경할 때 사용한다.

    Symbol

    명령어 기호가 나타난다.

    View

    Comment

    rung과 rung사이 간격이 넓어지며, comment를 볼 수 있다.

    Ladder size

    한 줄에 들어갈 스텝의 수를 결정한다. 10∼20개 선정이 가능하다.

    Zoom

    작업창의 크기 배율을 정할 수 있다.

    Compile

    Code generation

    작업한 프로그램을 컴파일한다.

    Convert to
    list(ladder)

    작업한 프로그램을 변경한다. 레더는 리스트로, 리스트는 레더로.

    Config

    SysRanSet

    설정된 환경값을 볼 수 있으며, 변경도 가능하다.

    Comm

    Comport setting

    통신할 포트 및 속도를 설정한다.(우리 장비는 com1, 9600bps이다.)

    Upload

    설정된 환경값 또는 프로그램을 PLC에서 PC로 전송한다.

    Download

    설정된 환경값 또는 프로그램을 PC에서 PLC로 전송한다.

    Verify

    설정된 환경값 또는 프로그램을 PLC와 PC에서 비교 확인한다.

    Option

    CPU type

    CPU 기종을 선택하는 것으로 우리는 PCPU3AN기종을 사용한다.

    Project


    multi-tasking 작업을 묶는데 사용(PCPU3A는 multi-tasking 불가)

    Windows


    열려진 창의 배열 형태를 조정한다.

    Help


    프로그램 버전 확인(new posfa ver 4.6a)

  • 화면상의 단축 아이콘과 기능

  • 명칭

    아이콘

    기 능

    a접점

    a접점의 명령을 삽입할 때 주소와 함께 사용한다.

    b접점

    b접점의 명령을 삽입할 때 주소와 함께 사용한다.

    반전

    반전 명령으로 주소없이 독자적으로 사용한다.

    상승펄스

    상승펄스 명령으로 앞에 별도의 조건과 함께 사용한다.

    하강펄스

    하강펄스 명령으로 앞에 별도의 조건과 함께 사용한다.

    출력

    출력명령으로 주소와 함께 우측 끝에 한 번만 삽입한다.

    세트

    세트명령으로 주소가 필요하며 우측 끝에 삽입되고 리세트명령과 한 조로 사용한다.

    리세트

    리세트명령으로 주소가 필요하며 우측 끝에 삽입되고 세트명령과 한 조로 사용한다.

    BTI

    블록형태의 명령에 모두 사용되며 오퍼레이터 및 오퍼랜드 의 구분은 빈칸으로 구분한다.

    컴파일

    작성된 프로그램의 컴파일(code generation)에 사용한다.

    리스트화

    래더다이어그램을 리스트프로그램으로 변환하여 준다.

    디스플레이

    코멘트 항목을 나타나게 할 수 있는 토글아이콘버튼이다.

    편집

    편집모드를 나타내는 것으로, 레이블영역을 클릭해도 된다.

    환경업로드

    PLC의 환경값을 컴퓨터로더로 올려보내는데 사용한다.

    코드다운로드

    컴파일된 프로그램을 PLC로 전송하는데 사용한다.

    새로열기

    래더다이어그램이나 설명문을 처음시작할 때 사용한다.

    불러오기

    저장되어있는 래더다이어그램이나 설명문을 불러올 때 사용한다.

    저장하기

    작업중인 프로그램을 저장할 때 사용하며 기존의 프로그램은 덮어쓰기를 한다.

    잘라내기

    선택된 rung을 잘라내는데 사용하며 클립보드에 저장되어있다.

    복사하기

    선택된 rung을 복사하기 위하여 사용된다.

    붙여넣기

    잘라내기나 복사하기된 rung을 편집화면에서 삽입할 때 사용한다.

    CPU선택

    PLC의 CPU를 선택할 때 사용한다. 우리는 PCPU-3AN기종이다.

    출력하기

    작업중인 프로그램을 프린터로 출력하는 데 사용한다.

  • 래더다이어그램 편집 방법
  • 주소(address)를 필요로 하는 명령의 삽입

  •  

    주소를 필요로 하는 입력요소는 a접점과 b접점이 있다. 삽입할 접점기호를 먼저 클릭하여 선택하고, 래더다이어그램의 삽입할 곳을 클릭하면 오른쪽 그림과 같은 창이 나온다.(그림은 a접점을 클릭했을 경우이다.) 창에 X0 같은 주소를 넣어 'OK'를 클릭하면 삽입된다.

    주소를 필요로 하는 출력요소는 단순한 출력, 세트, 리세트 명령이 있다. 이들 명령도 입력요소와 같은 방법으로 할 수 있지만, 출력은 래더다이어그램의 우측에 한번만 사용할 수 있으므로 명령라인의 중간에 삽입하여도 최우측에 삽입된다.

  • 주소를 필요로 하지 않는 명령의 삽입
  • 주소를 필요로 하지 않는 명령의 삽입은 반전, 상승펄스, 하강펄스 명령이 있다. 해당 아이콘을 클릭하여 선택하고 삽입하고자 하는 곳에서 클릭하면 삽입된다.

  • 블록 형태 명령(BTI)의 삽입

  •  

    블록형태의 명령의 삽입은 아이콘을 클릭하여 블록명령을 선택한 후, 래더다이어그램의 삽입할 곳에서 클릭하면 오른쪽 그림과 같은 창이 나타난다. 여기서 입력창에 명령어와 연산자를 구분하여 순서대로 입력하여 'OK'버튼을 클릭하면 원하는 곳에 삽입된다.

    블록형태의 명령 중에서 'END' 명령과 'RSET' 명령은 우측 끝에 배치되어야 하지만 삽입할 경우에 마우스를 오른쪽 끝 스탭에서 클릭하면 안되므로 오른쪽에서 두 번째 이전의 위치에서 클릭하여 삽입시킬 수 있도록 하여야 한다.

  • 명령의 연결 및 해제 방법

  •  

    명령과 명령을 연결하고자 할 경우에는 접속접에서 오른쪽 마우스를 클릭하면 오른쪽 그림과 같은 메뉴가 나온다. 이 메뉴에서 'Connect'를 클릭하여 접속하고자 하는 곳으로 마우스를 이동하면 하늘색 접속예상선이 나타나게 된다. 원하는 곳으로 접속예상선이 나타나면 왼쪽 마우스를 클릭하여 접속하면 된다. 연결되어 잇는 접속선을 해제시키고자 할 경우에는 해제시키고자 하는 곳에서 오른쪽 마우스를 클릭하여 그림과 같은 메뉴가 나오면 'Disconnect'를 클릭하여 해제하고자 하는 접속선 부분으로 마우스를 이동하여 해제를 원하는 접속선이 하늘색으로 변하면 왼쪽 마우스를 클릭하여 해제시키면 된다.

  • 명령의 수정

  •  

    입력된 명령의 수정은 해당명령에서 오른쪽 아이콘을 클릭하면 오른쪽 그림과 같이 메뉴가 나오고 메뉴의 'Edit'를 클릭하면 아래의 그림과 같은 명령 수정창이 나온다. (명령에서 더블클릭하여도 아래와 같은 수정창이 나온다.)

     

    이 수정창에서 새로운 명령을 입력하면 기존의 명령에 대체하여 입력된다.

    블록타입의 명령도 마찬가지로 수정할 수 있지만 연산자를 따로 수정할 수는 없고 명령 전체를 수정하여 입력하여야 한다.

  • 명령 라인의 복사

  •  

    복사를 원하고자 하는 블록을 오른쪽 그림과 같이 라인번호가 있는 곳에서 점선 모양으로 마우스를 드래그(시작점부터 끝점까지 마우스 끌기)하면 파란색으로 블록이 설정된다. 이 후 Ctrl 키와 C키를 동시에 치면 클립보드에 저장된다. (Crtl 키와 X 키를 동시에 치면 클립보드에 저장되고 화면에서는 사라진다.) 저장된 클립보드의 내용을 삽입하여 붙이고자 할 경우에는 Crtl 키와 V 키를 동시에 치면 그림과 같이 나타난다.

     

    그림에서 삽입하고자 하는 라인번호를 넣어주면 된다. 여기서 'insert rung'를 하지 않은 상태에서도 rung을 확장하여 삽입한다.

  • PLC 구동에서 운전까지  
  • PLC의 구동

  •  

    PLC의 메인전원 스위치를 ON에 위치하고 PLC의 동작을 확인한다. CPU카드에 '00'의 표시가 나타나면 정상적으로 PLC는 초기화된 상태이다.

    컴퓨터를 부팅하여 바탕화면에서 POSFA 아이콘을 더블클릭하면 로더용 프로그램화면이 나타난다.

    POSFA 아이콘

  • 컴퓨터로더의 환경설정

  •  

    우리가 사용하는 PLC는 포철의 PCPU-3AN기종을 사용한다. 화면의 Option을 클릭하여 CPU Type를 클릭하면 PLC기종을 선정할 수 있다.

    PLC기종이 선정되면 PLC의 환경설정값을 컴퓨터로더로 전송하여야 한다. 이는 PLC의 입출력 주소를 비롯하여 프로그램에 필요한 여러 자료를 제공해 주기위함이다.

     

    주메뉴의 Comm을 클릭하여 Config UpLoad를 클릭하면 환경값이 전송되는 상태를 파란색 막대로 표시되며 완료되면 OK버튼을 클릭할 수 있도록 한다. PLC의 전원이 OFF되어 있거나 PLC의 상태가 비정상적인 상황에서는 전송오류가 나타나게 된다.

  • 래더다이어그램의 작성
  • 주메뉴의 File을 클릭하여 New를 클릭하여도 되며, 왼쪽 상단의 하얀종이 아이콘을 클릭하면 그림과 같이 '새로운'이라는 창이 나타난다. 래더다이어그램으로 프로그램을 작성할 경우 Ladder을 선택하고 확인버튼을 클릭하면 프로그램 편집화면이 나타난다. List는 니모닉 방식의 프로그램을 작성할 경우에 사용하며, Comment는 작성중인 프로그램에서 각 요소(디바이스)의 설명을 삽입할 경우에 사용한다. SFC는 명령의 흐름도에 의한 프로그램 작성 방법을 사용할 경우에 활용한다.

    프로그램의 작성방법을 참고하여 아래의 회로에 해당하는 프로그램을 작성하여보자.

    입력요소

    출력요소

    스위치1 X1
    스위치2 X2

    전구 Y21


     

     

    프로그램의 작성이 완료되면 컴파일을 하여야한다. 컴파일은 PLC로 프로그램을 전송하기위하여 코드변환을 해주는 작업이다. 상단의 메뉴에서 Compile을 클릭하여 Code generation을 클릭하여도 되고 망치모양의 아이콘을 클릭하면 컴파일 되는 상태를 보여준다.


     

    여기서 오류가 있는지 확인한 후에 PLC로 프로그램을 전송하도록 한다.
    프로그램 전송은 상단메뉴의 Comm을 클릭하여 Program DownLoad를 클릭한다. 좌측의 코드 다운로드 아이콘을 클릭하여도 된다.

     

    프로그램이 전송되면 PLC에 있던 기존의 프로그램은 삭제되므로 프로그램 다운로드 전에 PLC내에 적재되어 있는 프로그램의 저장유무를 선택하고 전송한다. 프로그램의 전송여부를 확인하면 전송된 상태를 파란색 막대로 표시해 준다. 프로그램의 전송이 완료되면 PLC는 새로 전송된 프로그램에 의해 운전될 것이다.

     

    작성된 프로그램은 D드라이브에 저장하기를 권장한다.

  • PLC운전의 모니터링
  • PLC의 운전상태를 컴퓨터로더를 통하여 모니터할 수 있다. 이는 PLC의 동작상황을 볼 수 있는 의미와 입출력 요소를 컴퓨터 로더에서 직접 제어할 수 있도록 구성된 것이다.

    오른쪽 그림처럼 상단메뉴에서 Debug를 클릭하여 Ladder Monitor을 클릭하면 된다. 모니터링 중에는 PLC와 컴퓨터 로더와의 통신이 이루어지는 상태이므로 PLC의 리세트스위치를 사용하거나 전원이 OFF되지 않도록 한다. 이는 통신오류를 유발시킨다.

    이 화면에서 볼 수 있듯이 타이머의 주소 부분에 타이머 동작을 볼 수 있으며 입출력 조작상황도 볼 수 있다. 더불어 입출력 요소(device)를 모니터에서 직접 입력시킴으로써 PLC를 제어할 수 있다. 화면의 상태는 출력 Y20을 OFF시켰다가 해제(reset)하여 복귀시킨 화면이다.

     

  • 프로그램에 설명문을 삽입하여 보자.

  •  

    래더다이어그램으로 작성된 프로그램은 프로그램을 제작한 사람뿐만 아니라 시스템의 유지보수 관계자들로 하여 입출력 요소에 대한 주소(address)를 알아볼 수 있도록 설명을 넣어주면 효율적인 도면관리를 할 수 있을 것이다.

    래더다이어그램 초기화면과 같이 시작하여 Comment를 선택한다. 그리고 우측의 그림과 같이 상단에서 설명문을 넣을 입출력요소를 선택하고(그림에서는 입력 X를 선택), 해당주소의 설명문 넣을 곳을(그림에서는 X002)더블클릭하여 화면과 같이 입력한다. 화면에서는 X2 입력요소에 동전검출센서를 삽입한 것이다. 여기서 삽입한 설명문은 'ON'이라 적힌 아이콘을 클릭하면 줄간격이 넓어지면서 모니터 화면에서 확인할 수 있다. 화면에 들어가는 프로그램 라인수가 적어지므로 전체 프로그램을 확인하는데 불편함이 있게 되므로 일반적인 프로그램의 입력상태는 설명문을 볼 수 있는 창을 닫는게 좋다. 설명문입력 화면의 디스켓 모양의 아이콘을 클릭하여 저장하고 창을 닫는다. 창을 닫으면 래더다이어그램 프로그램창에서는 설명문을 볼 수 없다. 설명문 저장파일은 래더다이어그램 저장파일과 이름을 같이하는 것이 좋다.

  • PLC에 전송된 프로그램의 저장하기

  •  

    PLC로 전송된 프로그램은 PLC내부에 저장되어 있으며 컴퓨터 로더에도 저장하여 보도록 하자. 상단 메뉴의 File의 Save(또는 Save As)를 클릭하거나 좌측 상단의 디스켓 모양의 아이콘을 클릭하여 저장할 수 있다. 우리는 D드라이브에 저장하는 것을 원칙으로 하고, 저장하는 파일명칭은 래더다이어그램 프로그램에 적절하게 선정하여 필요시에 쉽게 찾을 수 있도록 한다.

  • 아래 그림과 같이 래더다이어그램에서 사용되는 접점을 입력하여 실행하여 보자.
  • 프레스를 구동하는 PLC프로그램을 작성하여 보자. 프레스기에 자동스위치를 조작하면 철판재료를 검출하여 지속적으로 동작한다. 또한 자동스위치가 조작되지 않은 상태에서는 왼손스위치와 오른손 스위치를 동시에 누른 동안에만 프레스기가 동작한다. 위의 두 경우 모두 프레스기의 작업영역내에 어떠한 물체라도 접근하게되면 프레스기는 정지시키도록 하여야 한다.

    입력요소

    출력요소

    자동스위치 X1
    철판검출센서 X2
    손스위치 X3
    오른손스위치 X4

    프레스기 Y20

  • 타이머와 카운터를 구동하는 프로그램을 작성하여 구동하여 보자.
  • 놀이동산의 미니카를 구동하는 프로그램을 작성하여 보자. 100원짜리 동전 3개를 넣으면 미니카의 전동기가 동작하고, 5초 후에 자동으로 정지하는 PLC구동 프로그램을 작성하여 보자.(주어진 이외의 모든 조건은 무시한다.)

  • 입력요소

    출력요소

    동전검출 X2

    전동기 Y20

  • 위 프로그램을 수정하여 자판기를 구동하여 보도록 하자. 100원짜리 동전 3개를 넣으면 램프가 점등된다. 램프가 점등된 상태에서 5초 이내에 버튼을 누르지 않으면 동전을 반환하고 램프를 소등시킨다. 5초 이내에 버튼을 누르면 음료수를 배출하고 램프를 소등시킨다.(제시된 이외의 조건은 무시한다.)

  • 입력요소

    출력요소

    동전검출 X2
    선택버튼 X1

    전동기 Y20
    동전반환 Y21
    음료배출 Y22

  • 다음은 적색과 청색 신호등이 번갈아 점등되는 동작을 나타나도록 구성한 것이다. 시간은 각각 10초와 15초로 설정하였다.

    표는 입출력 주소를 나타낸 것이다.

  • 입출력요소

    지정 주소

    ON PBS

    X0

    Red lamp

    Y3F

    Green lamp

    Y2F

  • 다음은 네거리의 교통신호를 설정한 것이다. X0 스위치를 올렸다 내리면 적색등이 들어오고, 10초 후에 적색등과 좌회전등이 들어오고, 5초후에 적색등과 좌회전등과 황색등이 들어오고, 3초 후에 이들이 모두 꺼지고 녹색등이 들어오도록 하며, 7초 후에 다시 적색등이 들어와 이 과정이 반복되게 ladder diagram을 작성하였다. 입출력요소의 주소는 표와 같다.

  • 이 프로그램에서 타이머의 주소를 T300, T301, T302, T303으로 바꿀 경우 타이머 연산자는 어떻게 바뀌겠는가?

  • 다음 프로그램을 입력하여 이동(shift)과 회전(rotate)명령의 동작상황을 비교해 보자.
  • ◎ 앞에서 실험한 다음의 명령들을 정리하여 보자.


    명령

    사용예

    동작

    1

    a접점



    2

    b접점



    3

    직력접속



    4

    병렬접속



    5

    상승펄스



    6

    하강펄스



    7

    반전



    8

    자기유지회로



    9

    SET



    10

    RESET



    11

    TMR



    12

    TON



    13

    TOFF



    14

    CNT



    15

    RSET



    16

    MOV



    17

    SHR



    18

    SHL



    19

    ROR



    20

    ROL



    21

    WTOB