PLC & Industrial Automation Field Notes

Practical solutions for industrial automation


[실무] PLC 시퀀스 설계에서 어떤 기능을 배치할지 먼저 생각해야 하는 이유

PLC 시퀀스 설계는 접점과 코일을 먼저 작성하는 작업이 아니라, 설비에 필요한 기능 단위를 먼저 나누는 작업입니다. 입력, 출력, 안전, 자동운전, 수동운전, 알람, 원점, 리셋 구조가 정리되지 않은 상태에서 로직을 작성하면 처음에는 동작하더라도 시운전과 유지보수 단계에서 원인 추적이 어려워질 수 있습니다.

시퀀스 설계는 기능 구분에서 시작한다

PLC 프로그램은 최종적으로 접점, 코일, 명령어, 디바이스로 작성됩니다. 그러나 설계의 시작점은 개별 접점이 아니라 설비 기능의 분류입니다.

설비를 동작시키기 위해 필요한 기능을 먼저 나누면 로직을 어디에 배치해야 하는지 기준이 생깁니다. 반대로 기능 구분 없이 접점부터 작성하면 자동 조건, 수동 조건, 알람 조건, 출력 조건이 서로 섞일 가능성이 커집니다.

일반적인 설비에서 먼저 나눠야 할 기능은 다음과 같습니다.

기능 단위주요 역할
입력 처리센서, 버튼, 리미트, 외부 완료 신호 정리
출력 처리밸브, 모터, 램프, 부저, 로봇 요청 신호 제어
안전 조건비상정지, 도어, 안전 릴레이, 운전 허가 조건 관리
자동운전설비의 순차 동작과 스텝 진행
수동운전점검, 조정, 복귀를 위한 개별 조작
알람 처리이상 조건 검출, 알람 유지, 원인 표시
원점 조건자동운전 전 기준 위치와 완료 조건 관리
리셋 처리알람, 스텝, 상태값, 데이터 초기화 범위 결정

이 기능 단위가 먼저 정리되어야 이후 로직을 추가하거나 수정할 때 기준을 유지할 수 있습니다.

설비는 입력과 출력으로만 움직이지 않는다

설비를 단순하게 보면 PLC는 입력을 받아 출력을 내보내는 장치입니다. 입력에는 센서, 버튼, 리미트, 안전문, 비상정지, 로봇 완료 신호, 제품 감지 신호 등이 포함됩니다. 출력에는 실린더 밸브, 모터 운전, 램프, 부저, 서보 운전 지령, 로봇 운전 요청 등이 포함됩니다.

그러나 PLC는 입력을 바로 출력으로 연결하는 장치가 아닙니다.

입력이 들어왔더라도 다음 조건을 판단한 뒤 출력이 나가야 합니다.

판단 조건확인 내용
안전 상태비상정지, 도어, 안전 회로 정상 여부
운전 모드자동 모드인지, 수동 모드인지 확인
알람 상태현재 알람 또는 정지 조건 존재 여부
반대 출력전진/후진, 상승/하강 출력 동시 방지
원점 상태기준 위치 또는 원점 완료 여부
인터록주변 장치와 충돌 가능성 여부
시퀀스 단계현재 동작이 실행 가능한 단계인지 확인

따라서 PLC 내부에는 입력과 출력 사이에서 조건을 판단하는 구조가 필요합니다. 이 구조가 명확해야 설비가 안정적으로 동작합니다.

기능을 나누지 않으면 로직이 섞인다

초기에는 접점과 코일을 바로 작성해도 동작이 빠르게 확인될 수 있습니다. 버튼을 누르면 실린더가 움직이고, 센서가 들어오면 다음 동작으로 넘어가는 방식입니다.

그러나 설비가 복잡해지면 기능이 구분되지 않은 로직은 빠르게 섞입니다.

대표적인 문제는 다음과 같습니다.

문제결과
입력 처리에 자동 조건이 섞임입력 상태와 운전 조건 구분이 어려워짐
자동운전 중간에서 출력 직접 제어최종 출력 조건 추적이 어려워짐
수동 조건과 자동 조건이 같은 출력에 혼합수동 조작과 자동 운전 간섭 발생
알람 조건이 여러 위치에 분산정지 원인 추적이 어려워짐
원점 조건이 자동 스텝 안에 포함자동운전 기준 조건이 불명확해짐
리셋 범위가 불명확필요한 상태가 지워지거나 불필요한 상태가 남음

이런 구조에서는 설비가 멈췄을 때 원인을 찾기 위해 접점을 하나씩 따라가야 합니다. 입력 문제인지, 안전 문제인지, 자동 스텝 문제인지, 출력 조건 문제인지 바로 구분하기 어렵습니다.

자동운전과 수동운전은 목적이 다르다

자동운전과 수동운전은 모두 장비를 움직이지만 목적이 다릅니다.

자동운전은 정해진 순서에 따라 설비가 연속적으로 동작하는 구조입니다. 제품 감지, 클램프, 이송, 작업, 복귀, 배출 같은 흐름이 자동 스텝으로 구성됩니다.

수동운전은 점검, 조정, 복귀를 위한 개별 조작 기능입니다. 작업자가 실린더 하나를 움직이거나, 서보 축을 저속으로 이동하거나, 설비를 원위치로 돌려놓는 목적에 가깝습니다.

구분자동운전수동운전
목적생산 흐름 실행점검, 조정, 복귀
동작 기준스텝 순서작업자 조작
조건 관리순차 조건과 완료 신호 중심안전 조건과 개별 장치 조건 중심
출력 제어시퀀스 단계 기준수동 버튼과 인터록 기준
주의점중간 조건 누락 시 시퀀스 정지자동 조건과 간섭 방지 필요

두 기능을 처음부터 분리하지 않으면 자동 중에 수동 조건이 끼어들거나, 수동 출력이 자동 스텝에 영향을 주는 문제가 발생할 수 있습니다.

알람은 나중에 붙이는 기능이 아니다

알람은 설비가 멈춘 원인을 남기기 위한 핵심 기능입니다. 단순히 부저를 울리거나 화면에 메시지를 표시하는 기능만이 아닙니다.

현장에서는 설비가 멈춘 사실보다 왜 멈췄는지를 확인하는 것이 더 중요할 때가 많습니다. 센서 미검출, 동작 시간 초과, 서보 알람, 통신 이상, 안전 조건 이상, 로봇 미완료 같은 원인을 구분해서 남겨야 합니다.

알람 설계 시 확인할 항목은 다음과 같습니다.

항목확인 내용
알람 조건어떤 상황을 이상으로 판단할지 정의
알람 유지순간 신호를 유지할지 여부
알람 우선순위복수 알람 발생 시 표시 기준
장치별 구분축, 실린더, 통신, 안전 등 분류
리셋 조건어떤 조건에서 알람 해제가 가능한지 정의
재시작 조건알람 해제 후 자동 재개 여부 결정

알람을 처음부터 기능 단위로 분리해 두면 시운전 중 원인 추적과 HMI 표시 구성이 쉬워집니다.

리셋은 지우는 범위를 정해야 한다

리셋은 단순히 알람을 끄는 기능이 아닙니다. 무엇을 지우고 무엇을 유지할지 정하는 기능입니다.

리셋 범위가 명확하지 않으면 버튼 하나로 너무 많은 상태가 초기화되거나, 반대로 필요한 상태가 남아 설비가 다시 움직이지 않을 수 있습니다.

리셋 설계 시 구분해야 할 항목은 다음과 같습니다.

항목리셋 판단 기준
알람작업자 확인 후 해제할지 결정
자동 스텝초기화할지, 현재 단계 유지할지 결정
원점 완료유지할지 다시 원점복귀를 요구할지 결정
생산 카운터유지할지 초기화할지 결정
레시피 데이터리셋 대상에서 제외하는 것이 일반적
통신 상태재접속 또는 플래그 초기화 필요 여부 확인
완료 플래그다음 사이클에 영향이 없도록 정리

리셋은 설비 상태를 정리하는 기능이므로 설계 초기에 기준을 정해야 합니다.

원점 조건은 자동운전의 기준이다

서보 축이나 위치결정 장치가 포함된 설비에서는 원점 조건을 별도의 기능으로 봐야 합니다.

원점은 자동운전 중 하나의 스텝이라기보다 자동운전을 시작하기 위한 기준 조건에 가깝습니다. 원점복귀가 완료되었는지, 현재 위치가 유효한지, 원점복귀 실패가 있는지에 따라 자동운전 허가 여부가 달라집니다.

원점 조건에서 확인할 항목은 다음과 같습니다.

항목확인 내용
원점 완료축별 원점복귀 완료 여부
현재 위치좌표 기준이 정상인지 확인
원점 방식도그, Z상, 리미트 등 기준 확인
원점 실패원점복귀 중 타임오버 또는 리미트 감지
재원점 조건전원 재투입 또는 알람 후 원점 필요 여부
자동 허가원점 완료가 자동운전 조건에 포함되는지 확인

원점 조건이 자동운전 중간에 섞여 있으면 위치 문제가 발생했을 때 원인 확인이 어려워집니다. 따라서 원점 기능은 별도 영역에서 관리하고 자동운전 조건에서 참조하는 구조가 좋습니다.

출력은 최종 조건에서 한 번 더 정리한다

입력 조건이나 자동 스텝 안에서 출력 코일을 직접 제어하면 나중에 추적이 어려워질 수 있습니다.

예를 들어 자동운전에서도 같은 실린더를 사용하고, 수동운전에서도 같은 실린더를 사용한다면 출력 조건을 한곳에서 정리하는 구조가 필요합니다.

출력 처리에서는 다음 항목을 확인해야 합니다.

항목확인 내용
자동 출력 요청자동 스텝에서 필요한 출력 요청
수동 출력 요청수동 조작에서 필요한 출력 요청
안전 조건출력 허가 가능 상태인지 확인
반대 출력 인터록전진/후진, 상승/하강 동시 출력 방지
알람 조건알람 발생 시 출력 차단 여부
최종 출력실제 Y 출력 또는 통신 출력으로 전달

출력은 여러 기능에서 요청될 수 있지만, 실제 출력은 최종 조건을 거쳐 나가야 합니다. 이 구조를 유지하면 어떤 기능이 출력을 요청했는지와 왜 출력이 차단되었는지 구분하기 쉽습니다.

기능 단위로 나누면 유지보수가 쉬워진다

기능 단위가 정리되어 있으면 로직 추가와 문제 추적이 쉬워집니다.

예를 들어 새로운 센서를 추가해야 한다면 입력 처리 영역에 먼저 반영합니다. 해당 센서가 자동운전에 영향을 준다면 자동 조건에서 참조하고, 알람 조건이 필요하면 알람 처리 영역에 추가합니다.

이렇게 기능별 위치가 정해져 있으면 로직을 아무 곳에나 붙이지 않게 됩니다.

추가 항목배치 기준
신규 센서입력 처리 영역
신규 실린더 출력출력 처리 영역
자동 동작 조건자동운전 스텝 영역
수동 버튼수동운전 영역
시간 초과 감시알람 처리 영역
원점 완료 조건원점 관리 영역
초기화 조건리셋 처리 영역

기준이 없으면 로직은 작성자 판단에 따라 여러 위치에 흩어집니다. 기준이 있으면 프로그램 구조가 유지됩니다.

PLC 시퀀스 설계 전 확인할 질문

PLC 시퀀스를 작성하기 전에는 다음 질문을 먼저 정리하는 것이 좋습니다.

질문목적
어떤 입력 신호가 필요한가센서, 버튼, 외부 장비 신호 정리
어떤 출력 장치를 제어하는가밸브, 모터, 램프, 서보, 로봇 요청 정리
어떤 안전 조건이 필요한가비상정지, 도어, 안전 릴레이 조건 정리
자동운전 흐름은 어떻게 되는가공정 순서와 완료 조건 정리
수동운전은 어떤 범위까지 허용하는가점검과 조정 기능 범위 정의
어떤 알람을 남겨야 하는가정지 원인과 표시 기준 정의
원점 조건은 무엇인가자동운전 기준 위치 정의
리셋은 어디까지 초기화하는가상태값과 데이터 유지 범위 결정

이 질문에 대한 답이 정리되면 접점과 코일을 작성할 때 로직의 배치 위치가 명확해집니다.

기능 배치 기준 예시

기능 단위로 프로그램을 구성할 때는 다음과 같은 기준을 사용할 수 있습니다.

기능배치 내용
INPUT실제 입력 신호 정리, 필터, 내부 비트 변환
SAFETY비상정지, 도어, 운전 허가 조건
MODE자동/수동/원점/정지 모드 관리
MANUAL수동 조작 조건과 개별 동작 요청
AUTO자동 스텝 진행과 완료 조건
ALARM타임오버, 센서 이상, 장치 이상 검출
HOME원점복귀 조건과 완료 상태 관리
RESET알람, 스텝, 완료 플래그 초기화
OUTPUT최종 출력 인터록과 실제 출력 제어
COMMHMI, 로봇, 상위 장비 통신 신호 관리

이런 구조를 사용하면 설비 규모가 커져도 로직의 위치를 일정하게 유지할 수 있습니다.

시퀀스 설계 순서

PLC 시퀀스 설계는 다음 순서로 진행하는 것이 안정적입니다.

순서작업
1설비 동작 범위와 공정 흐름 확인
2입력과 출력 목록 정리
3안전 조건과 운전 허가 조건 정의
4자동운전 스텝 흐름 작성
5수동운전 범위와 개별 동작 정의
6원점 조건과 재원점 기준 정의
7알람 조건과 리셋 범위 정의
8최종 출력 인터록 구조 작성
9HMI 표시와 상태값 정리
10시운전 중 기능별로 검증

접점과 코일 작성은 이 구조가 정리된 뒤에 진행해야 합니다. 그래야 로직이 기능별로 배치되고 이후 수정도 쉬워집니다.

기능 배치 중심 설계 정리

PLC 시퀀스 설계는 접점과 코일을 빠르게 작성하는 것보다 설비에 필요한 기능 단위를 먼저 나누는 것이 중요합니다. 입력, 출력, 안전, 자동운전, 수동운전, 알람, 원점, 리셋이 구분되지 않으면 프로그램은 처음에는 동작하더라도 시운전과 유지보수 단계에서 원인 추적이 어려워질 수 있습니다.

설비는 입력을 받고 출력으로 움직이지만, PLC는 그 사이에서 운전 조건을 판단합니다. 안전 상태, 운전 모드, 알람 상태, 원점 완료, 인터록 조건, 자동 스텝을 확인한 뒤 출력이 나가야 합니다. 이 판단 구조가 정리되지 않으면 출력이 왜 나가지 않는지 확인하기 위해 접점을 하나씩 따라가야 합니다.

자동운전과 수동운전은 목적이 다르므로 별도 기능으로 구분해야 합니다. 알람은 나중에 붙이는 표시 기능이 아니라 설비 정지 원인을 남기는 핵심 기능입니다. 리셋은 단순히 지우는 기능이 아니라 어떤 상태를 초기화하고 어떤 데이터를 유지할지 정하는 기능입니다. 원점 조건은 자동운전의 기준이므로 별도로 관리해야 합니다.

PLC 시퀀스를 시작할 때는 먼저 이 설비에 어떤 기능 단위가 필요한지 정리해야 합니다. 기능 단위가 정리되면 신규 센서, 출력, 알람, 수동 조작, 자동 스텝을 어디에 배치할지 판단할 수 있습니다. 이 기준이 있어야 프로그램이 섞이지 않고, 시운전과 유지보수에서 원인을 빠르게 추적할 수 있습니다.