PLC 시퀀스 설계는 접점과 코일을 먼저 작성하는 작업이 아니라, 설비에 필요한 기능 단위를 먼저 나누는 작업입니다. 입력, 출력, 안전, 자동운전, 수동운전, 알람, 원점, 리셋 구조가 정리되지 않은 상태에서 로직을 작성하면 처음에는 동작하더라도 시운전과 유지보수 단계에서 원인 추적이 어려워질 수 있습니다.
시퀀스 설계는 기능 구분에서 시작한다
PLC 프로그램은 최종적으로 접점, 코일, 명령어, 디바이스로 작성됩니다. 그러나 설계의 시작점은 개별 접점이 아니라 설비 기능의 분류입니다.
설비를 동작시키기 위해 필요한 기능을 먼저 나누면 로직을 어디에 배치해야 하는지 기준이 생깁니다. 반대로 기능 구분 없이 접점부터 작성하면 자동 조건, 수동 조건, 알람 조건, 출력 조건이 서로 섞일 가능성이 커집니다.
일반적인 설비에서 먼저 나눠야 할 기능은 다음과 같습니다.
| 기능 단위 | 주요 역할 |
|---|---|
| 입력 처리 | 센서, 버튼, 리미트, 외부 완료 신호 정리 |
| 출력 처리 | 밸브, 모터, 램프, 부저, 로봇 요청 신호 제어 |
| 안전 조건 | 비상정지, 도어, 안전 릴레이, 운전 허가 조건 관리 |
| 자동운전 | 설비의 순차 동작과 스텝 진행 |
| 수동운전 | 점검, 조정, 복귀를 위한 개별 조작 |
| 알람 처리 | 이상 조건 검출, 알람 유지, 원인 표시 |
| 원점 조건 | 자동운전 전 기준 위치와 완료 조건 관리 |
| 리셋 처리 | 알람, 스텝, 상태값, 데이터 초기화 범위 결정 |
이 기능 단위가 먼저 정리되어야 이후 로직을 추가하거나 수정할 때 기준을 유지할 수 있습니다.
설비는 입력과 출력으로만 움직이지 않는다
설비를 단순하게 보면 PLC는 입력을 받아 출력을 내보내는 장치입니다. 입력에는 센서, 버튼, 리미트, 안전문, 비상정지, 로봇 완료 신호, 제품 감지 신호 등이 포함됩니다. 출력에는 실린더 밸브, 모터 운전, 램프, 부저, 서보 운전 지령, 로봇 운전 요청 등이 포함됩니다.
그러나 PLC는 입력을 바로 출력으로 연결하는 장치가 아닙니다.
입력이 들어왔더라도 다음 조건을 판단한 뒤 출력이 나가야 합니다.
| 판단 조건 | 확인 내용 |
|---|---|
| 안전 상태 | 비상정지, 도어, 안전 회로 정상 여부 |
| 운전 모드 | 자동 모드인지, 수동 모드인지 확인 |
| 알람 상태 | 현재 알람 또는 정지 조건 존재 여부 |
| 반대 출력 | 전진/후진, 상승/하강 출력 동시 방지 |
| 원점 상태 | 기준 위치 또는 원점 완료 여부 |
| 인터록 | 주변 장치와 충돌 가능성 여부 |
| 시퀀스 단계 | 현재 동작이 실행 가능한 단계인지 확인 |
따라서 PLC 내부에는 입력과 출력 사이에서 조건을 판단하는 구조가 필요합니다. 이 구조가 명확해야 설비가 안정적으로 동작합니다.
기능을 나누지 않으면 로직이 섞인다
초기에는 접점과 코일을 바로 작성해도 동작이 빠르게 확인될 수 있습니다. 버튼을 누르면 실린더가 움직이고, 센서가 들어오면 다음 동작으로 넘어가는 방식입니다.
그러나 설비가 복잡해지면 기능이 구분되지 않은 로직은 빠르게 섞입니다.
대표적인 문제는 다음과 같습니다.
| 문제 | 결과 |
|---|---|
| 입력 처리에 자동 조건이 섞임 | 입력 상태와 운전 조건 구분이 어려워짐 |
| 자동운전 중간에서 출력 직접 제어 | 최종 출력 조건 추적이 어려워짐 |
| 수동 조건과 자동 조건이 같은 출력에 혼합 | 수동 조작과 자동 운전 간섭 발생 |
| 알람 조건이 여러 위치에 분산 | 정지 원인 추적이 어려워짐 |
| 원점 조건이 자동 스텝 안에 포함 | 자동운전 기준 조건이 불명확해짐 |
| 리셋 범위가 불명확 | 필요한 상태가 지워지거나 불필요한 상태가 남음 |
이런 구조에서는 설비가 멈췄을 때 원인을 찾기 위해 접점을 하나씩 따라가야 합니다. 입력 문제인지, 안전 문제인지, 자동 스텝 문제인지, 출력 조건 문제인지 바로 구분하기 어렵습니다.
자동운전과 수동운전은 목적이 다르다
자동운전과 수동운전은 모두 장비를 움직이지만 목적이 다릅니다.
자동운전은 정해진 순서에 따라 설비가 연속적으로 동작하는 구조입니다. 제품 감지, 클램프, 이송, 작업, 복귀, 배출 같은 흐름이 자동 스텝으로 구성됩니다.
수동운전은 점검, 조정, 복귀를 위한 개별 조작 기능입니다. 작업자가 실린더 하나를 움직이거나, 서보 축을 저속으로 이동하거나, 설비를 원위치로 돌려놓는 목적에 가깝습니다.
| 구분 | 자동운전 | 수동운전 |
|---|---|---|
| 목적 | 생산 흐름 실행 | 점검, 조정, 복귀 |
| 동작 기준 | 스텝 순서 | 작업자 조작 |
| 조건 관리 | 순차 조건과 완료 신호 중심 | 안전 조건과 개별 장치 조건 중심 |
| 출력 제어 | 시퀀스 단계 기준 | 수동 버튼과 인터록 기준 |
| 주의점 | 중간 조건 누락 시 시퀀스 정지 | 자동 조건과 간섭 방지 필요 |
두 기능을 처음부터 분리하지 않으면 자동 중에 수동 조건이 끼어들거나, 수동 출력이 자동 스텝에 영향을 주는 문제가 발생할 수 있습니다.
알람은 나중에 붙이는 기능이 아니다
알람은 설비가 멈춘 원인을 남기기 위한 핵심 기능입니다. 단순히 부저를 울리거나 화면에 메시지를 표시하는 기능만이 아닙니다.
현장에서는 설비가 멈춘 사실보다 왜 멈췄는지를 확인하는 것이 더 중요할 때가 많습니다. 센서 미검출, 동작 시간 초과, 서보 알람, 통신 이상, 안전 조건 이상, 로봇 미완료 같은 원인을 구분해서 남겨야 합니다.
알람 설계 시 확인할 항목은 다음과 같습니다.
| 항목 | 확인 내용 |
|---|---|
| 알람 조건 | 어떤 상황을 이상으로 판단할지 정의 |
| 알람 유지 | 순간 신호를 유지할지 여부 |
| 알람 우선순위 | 복수 알람 발생 시 표시 기준 |
| 장치별 구분 | 축, 실린더, 통신, 안전 등 분류 |
| 리셋 조건 | 어떤 조건에서 알람 해제가 가능한지 정의 |
| 재시작 조건 | 알람 해제 후 자동 재개 여부 결정 |
알람을 처음부터 기능 단위로 분리해 두면 시운전 중 원인 추적과 HMI 표시 구성이 쉬워집니다.
리셋은 지우는 범위를 정해야 한다
리셋은 단순히 알람을 끄는 기능이 아닙니다. 무엇을 지우고 무엇을 유지할지 정하는 기능입니다.
리셋 범위가 명확하지 않으면 버튼 하나로 너무 많은 상태가 초기화되거나, 반대로 필요한 상태가 남아 설비가 다시 움직이지 않을 수 있습니다.
리셋 설계 시 구분해야 할 항목은 다음과 같습니다.
| 항목 | 리셋 판단 기준 |
|---|---|
| 알람 | 작업자 확인 후 해제할지 결정 |
| 자동 스텝 | 초기화할지, 현재 단계 유지할지 결정 |
| 원점 완료 | 유지할지 다시 원점복귀를 요구할지 결정 |
| 생산 카운터 | 유지할지 초기화할지 결정 |
| 레시피 데이터 | 리셋 대상에서 제외하는 것이 일반적 |
| 통신 상태 | 재접속 또는 플래그 초기화 필요 여부 확인 |
| 완료 플래그 | 다음 사이클에 영향이 없도록 정리 |
리셋은 설비 상태를 정리하는 기능이므로 설계 초기에 기준을 정해야 합니다.
원점 조건은 자동운전의 기준이다
서보 축이나 위치결정 장치가 포함된 설비에서는 원점 조건을 별도의 기능으로 봐야 합니다.
원점은 자동운전 중 하나의 스텝이라기보다 자동운전을 시작하기 위한 기준 조건에 가깝습니다. 원점복귀가 완료되었는지, 현재 위치가 유효한지, 원점복귀 실패가 있는지에 따라 자동운전 허가 여부가 달라집니다.
원점 조건에서 확인할 항목은 다음과 같습니다.
| 항목 | 확인 내용 |
|---|---|
| 원점 완료 | 축별 원점복귀 완료 여부 |
| 현재 위치 | 좌표 기준이 정상인지 확인 |
| 원점 방식 | 도그, Z상, 리미트 등 기준 확인 |
| 원점 실패 | 원점복귀 중 타임오버 또는 리미트 감지 |
| 재원점 조건 | 전원 재투입 또는 알람 후 원점 필요 여부 |
| 자동 허가 | 원점 완료가 자동운전 조건에 포함되는지 확인 |
원점 조건이 자동운전 중간에 섞여 있으면 위치 문제가 발생했을 때 원인 확인이 어려워집니다. 따라서 원점 기능은 별도 영역에서 관리하고 자동운전 조건에서 참조하는 구조가 좋습니다.
출력은 최종 조건에서 한 번 더 정리한다
입력 조건이나 자동 스텝 안에서 출력 코일을 직접 제어하면 나중에 추적이 어려워질 수 있습니다.
예를 들어 자동운전에서도 같은 실린더를 사용하고, 수동운전에서도 같은 실린더를 사용한다면 출력 조건을 한곳에서 정리하는 구조가 필요합니다.
출력 처리에서는 다음 항목을 확인해야 합니다.
| 항목 | 확인 내용 |
|---|---|
| 자동 출력 요청 | 자동 스텝에서 필요한 출력 요청 |
| 수동 출력 요청 | 수동 조작에서 필요한 출력 요청 |
| 안전 조건 | 출력 허가 가능 상태인지 확인 |
| 반대 출력 인터록 | 전진/후진, 상승/하강 동시 출력 방지 |
| 알람 조건 | 알람 발생 시 출력 차단 여부 |
| 최종 출력 | 실제 Y 출력 또는 통신 출력으로 전달 |
출력은 여러 기능에서 요청될 수 있지만, 실제 출력은 최종 조건을 거쳐 나가야 합니다. 이 구조를 유지하면 어떤 기능이 출력을 요청했는지와 왜 출력이 차단되었는지 구분하기 쉽습니다.
기능 단위로 나누면 유지보수가 쉬워진다
기능 단위가 정리되어 있으면 로직 추가와 문제 추적이 쉬워집니다.
예를 들어 새로운 센서를 추가해야 한다면 입력 처리 영역에 먼저 반영합니다. 해당 센서가 자동운전에 영향을 준다면 자동 조건에서 참조하고, 알람 조건이 필요하면 알람 처리 영역에 추가합니다.
이렇게 기능별 위치가 정해져 있으면 로직을 아무 곳에나 붙이지 않게 됩니다.
| 추가 항목 | 배치 기준 |
|---|---|
| 신규 센서 | 입력 처리 영역 |
| 신규 실린더 출력 | 출력 처리 영역 |
| 자동 동작 조건 | 자동운전 스텝 영역 |
| 수동 버튼 | 수동운전 영역 |
| 시간 초과 감시 | 알람 처리 영역 |
| 원점 완료 조건 | 원점 관리 영역 |
| 초기화 조건 | 리셋 처리 영역 |
기준이 없으면 로직은 작성자 판단에 따라 여러 위치에 흩어집니다. 기준이 있으면 프로그램 구조가 유지됩니다.
PLC 시퀀스 설계 전 확인할 질문
PLC 시퀀스를 작성하기 전에는 다음 질문을 먼저 정리하는 것이 좋습니다.
| 질문 | 목적 |
|---|---|
| 어떤 입력 신호가 필요한가 | 센서, 버튼, 외부 장비 신호 정리 |
| 어떤 출력 장치를 제어하는가 | 밸브, 모터, 램프, 서보, 로봇 요청 정리 |
| 어떤 안전 조건이 필요한가 | 비상정지, 도어, 안전 릴레이 조건 정리 |
| 자동운전 흐름은 어떻게 되는가 | 공정 순서와 완료 조건 정리 |
| 수동운전은 어떤 범위까지 허용하는가 | 점검과 조정 기능 범위 정의 |
| 어떤 알람을 남겨야 하는가 | 정지 원인과 표시 기준 정의 |
| 원점 조건은 무엇인가 | 자동운전 기준 위치 정의 |
| 리셋은 어디까지 초기화하는가 | 상태값과 데이터 유지 범위 결정 |
이 질문에 대한 답이 정리되면 접점과 코일을 작성할 때 로직의 배치 위치가 명확해집니다.
기능 배치 기준 예시
기능 단위로 프로그램을 구성할 때는 다음과 같은 기준을 사용할 수 있습니다.
| 기능 | 배치 내용 |
|---|---|
| INPUT | 실제 입력 신호 정리, 필터, 내부 비트 변환 |
| SAFETY | 비상정지, 도어, 운전 허가 조건 |
| MODE | 자동/수동/원점/정지 모드 관리 |
| MANUAL | 수동 조작 조건과 개별 동작 요청 |
| AUTO | 자동 스텝 진행과 완료 조건 |
| ALARM | 타임오버, 센서 이상, 장치 이상 검출 |
| HOME | 원점복귀 조건과 완료 상태 관리 |
| RESET | 알람, 스텝, 완료 플래그 초기화 |
| OUTPUT | 최종 출력 인터록과 실제 출력 제어 |
| COMM | HMI, 로봇, 상위 장비 통신 신호 관리 |
이런 구조를 사용하면 설비 규모가 커져도 로직의 위치를 일정하게 유지할 수 있습니다.
시퀀스 설계 순서
PLC 시퀀스 설계는 다음 순서로 진행하는 것이 안정적입니다.
| 순서 | 작업 |
|---|---|
| 1 | 설비 동작 범위와 공정 흐름 확인 |
| 2 | 입력과 출력 목록 정리 |
| 3 | 안전 조건과 운전 허가 조건 정의 |
| 4 | 자동운전 스텝 흐름 작성 |
| 5 | 수동운전 범위와 개별 동작 정의 |
| 6 | 원점 조건과 재원점 기준 정의 |
| 7 | 알람 조건과 리셋 범위 정의 |
| 8 | 최종 출력 인터록 구조 작성 |
| 9 | HMI 표시와 상태값 정리 |
| 10 | 시운전 중 기능별로 검증 |
접점과 코일 작성은 이 구조가 정리된 뒤에 진행해야 합니다. 그래야 로직이 기능별로 배치되고 이후 수정도 쉬워집니다.
기능 배치 중심 설계 정리
PLC 시퀀스 설계는 접점과 코일을 빠르게 작성하는 것보다 설비에 필요한 기능 단위를 먼저 나누는 것이 중요합니다. 입력, 출력, 안전, 자동운전, 수동운전, 알람, 원점, 리셋이 구분되지 않으면 프로그램은 처음에는 동작하더라도 시운전과 유지보수 단계에서 원인 추적이 어려워질 수 있습니다.
설비는 입력을 받고 출력으로 움직이지만, PLC는 그 사이에서 운전 조건을 판단합니다. 안전 상태, 운전 모드, 알람 상태, 원점 완료, 인터록 조건, 자동 스텝을 확인한 뒤 출력이 나가야 합니다. 이 판단 구조가 정리되지 않으면 출력이 왜 나가지 않는지 확인하기 위해 접점을 하나씩 따라가야 합니다.
자동운전과 수동운전은 목적이 다르므로 별도 기능으로 구분해야 합니다. 알람은 나중에 붙이는 표시 기능이 아니라 설비 정지 원인을 남기는 핵심 기능입니다. 리셋은 단순히 지우는 기능이 아니라 어떤 상태를 초기화하고 어떤 데이터를 유지할지 정하는 기능입니다. 원점 조건은 자동운전의 기준이므로 별도로 관리해야 합니다.
PLC 시퀀스를 시작할 때는 먼저 이 설비에 어떤 기능 단위가 필요한지 정리해야 합니다. 기능 단위가 정리되면 신규 센서, 출력, 알람, 수동 조작, 자동 스텝을 어디에 배치할지 판단할 수 있습니다. 이 기준이 있어야 프로그램이 섞이지 않고, 시운전과 유지보수에서 원인을 빠르게 추적할 수 있습니다.