PLC 시퀀스를 처음 짤 때 바로 접점과 코일부터 찍기 시작하면 처음에는 빨라 보입니다.
버튼을 누르면 실린더가 움직이고, 센서가 들어오면 다음 동작으로 넘어가고, 조건이 맞으면 출력이 나갑니다.
간단한 설비에서는 이렇게 해도 어느 정도 동작합니다.
하지만 설비가 조금만 복잡해지면 문제가 생깁니다.
자동운전 조건이 여기저기 흩어지고, 수동운전 조건이 출력 쪽에 섞이고, 알람 조건이 동작 중간에 들어가고, 원점 조건이 어디서 관리되는지 보이지 않기 시작합니다.
이렇게 되면 설비가 멈췄을 때 원인을 찾기가 어려워집니다.
PLC 시퀀스 설계는 접점과 코일을 먼저 찍는 작업이 아닙니다.
먼저 이 설비를 움직이기 위해 어떤 기능 덩어리가 필요한지 생각하는 작업입니다.
[한 줄 직설] PLC 시퀀스 설계는 로직을 어디에 쓸지 정하는 작업이 아니라, 설비에 필요한 기능 덩어리를 먼저 나누는 작업입니다.
1. 설비는 입력과 출력으로 움직인다
설비를 크게 보면 입력부와 출력부로 나눌 수 있습니다.
입력부는 PLC로 들어오는 신호입니다.
센서, 버튼, 리미트, 안전문, 비상정지, 로봇 완료 신호, 제품 감지 신호 같은 것들이 여기에 들어갑니다.
출력부는 PLC가 밖으로 내보내는 신호입니다.
실린더 밸브, 모터 운전, 램프, 부저, 서보 운전 지령, 로봇 운전 요청 같은 것들이 출력입니다.
현장에서 보면 설비는 결국 입력을 받고 출력으로 움직입니다.
하지만 PLC는 입력을 바로 출력으로 연결하는 장치가 아닙니다.
입력이 들어왔을 때 바로 출력이 나가면 위험한 경우가 많습니다.
예를 들어 전진 버튼이 눌렸다고 바로 실린더 전진 출력이 나가면 안 됩니다.
그 전에 안전은 정상인지, 알람은 없는지, 수동 모드인지, 반대 방향 출력은 꺼져 있는지, 장비가 움직여도 되는 상태인지 판단해야 합니다.
이 판단을 하는 부분이 PLC 내부 구조입니다.
2. 시퀀스 설계는 필요한 기능을 먼저 나누는 것이다
시퀀스를 시작할 때 처음부터 “이 접점을 어디에 넣을까?”만 보면 나중에 정리하기 어려워질 수 있습니다.
먼저 봐야 할 것은 이 설비에 어떤 기능이 필요한가입니다.
보통 설비에는 기본적으로 아래와 같은 기능들이 필요합니다.
· 입력 처리
· 출력 처리
· 안전 조건
· 자동운전
· 수동운전
· 알람 처리
· 원점 조건
· 초기화와 리셋
이것을 먼저 생각해야 합니다.
입력은 어떤 신호를 받아야 하는지 봐야 합니다.
출력은 어떤 장치를 움직여야 하는지 봐야 합니다.
안전 조건은 무엇을 기준으로 잡을지 생각해야 합니다.
자동운전은 어떤 흐름으로 진행될지 생각해야 합니다.
수동운전은 어떤 장치를 개별로 움직일 수 있어야 하는지 봐야 합니다.
알람은 어떤 상황을 남겨야 하는지 정해야 합니다.
원점 조건은 어떤 상태를 기준으로 잡을지 생각해야 합니다.
리셋은 무엇을 지우고 무엇을 유지할지 정해야 합니다.
이런 기능 덩어리를 먼저 생각하는 것이 시퀀스 설계의 시작입니다.
3. 기능을 나누지 않으면 나중에 전부 섞인다
처음부터 기능을 나누지 않으면 로직은 금방 섞입니다.
입력 확인 로직 안에 자동 조건이 들어갑니다.
자동운전 중간에서 출력이 직접 나갑니다.
수동운전 조건과 자동운전 조건이 같은 출력에 섞입니다.
알람은 여기저기 흩어집니다.
원점 완료 조건은 어떤 동작에서는 보고, 어떤 동작에서는 안 보게 됩니다.
저도 처음에는 이런 식으로 꼬인 적이 있습니다.
시퀀스를 짜다가 일단 수동 쪽에 로직을 넣어놓고, 나중에 다시 보니 자동에서도 같은 동작이 필요해서 자동 쪽으로 옮겼습니다.
그런데 이미 수동 조건 기준으로 생각하고 만든 로직이라 자동운전 흐름에 넣으니 조건이 다시 꼬였습니다.
원점도 비슷했습니다.
처음에는 원점복귀를 자동 시퀀스의 일부처럼 생각했습니다.
자동운전 시작 전에 원점을 잡으면 되니까 자동 안에 넣으면 될 것 같았습니다.
그런데 실제로 짜다 보니 원점은 자동운전의 한 스텝이라기보다, 자동운전을 시작하기 위한 기준 조건에 가까웠습니다.
결국 원점 기능을 자동 시퀀스와 다시 구분해서 봐야 했습니다.
이런 경험을 하고 나면, 시퀀스 설계에서 먼저 기능을 나누는 것이 왜 중요한지 알게 됩니다.
처음에는 그냥 움직이게 만드는 것이 더 빨라 보입니다.
하지만 기능을 구분하지 않고 시작하면 나중에 수동인지 자동인지, 원점인지 운전 조건인지, 알람인지 출력 조건인지 다시 정리해야 합니다.
그때 시간이 더 오래 걸립니다.
이런 프로그램은 처음에는 동작할 수 있습니다.
하지만 시운전이나 유지보수 때 원인 추적이 어려워지는 경우가 많습니다.
축이 안 움직일 때 입력 문제인지, 안전 문제인지, 원점 문제인지, 자동 스텝 문제인지, 출력 조건 문제인지 바로 보이지 않습니다.
결국 접점을 하나씩 따라가야 합니다.
시간이 오래 걸립니다.
그래서 처음 설계할 때부터 기능 덩어리를 나눠서 생각해야 합니다.
4. 자동과 수동은 목적이 다르다
자동운전과 수동운전은 둘 다 장비를 움직이지만 목적이 다릅니다.
자동운전은 설비가 정해진 순서대로 움직이는 구조입니다.
제품 감지, 클램프, 이송, 작업, 복귀 같은 흐름이 있습니다.
반면 수동운전은 점검, 조정, 복귀를 위한 구조입니다.
작업자가 실린더 하나를 움직이거나, 축을 조금 이동시키거나, 설비를 원위치로 돌려놓기 위해 사용합니다.
두 기능을 처음부터 구분하지 않으면 나중에 문제가 생깁니다.
자동 중인데 수동 조건이 끼어들거나, 수동 출력이 자동 조건에 영향을 주거나, 알람 복귀 중에 자동 스텝이 꼬일 수 있습니다.
그래서 시퀀스 설계 단계에서 자동운전과 수동운전은 별도의 기능으로 보고 시작해야 합니다.
5. 알람과 리셋도 처음부터 생각해야 한다
알람은 나중에 붙이는 부가기능처럼 생각하면 안 됩니다.
현장에서는 설비가 멈추는 것보다, 왜 멈췄는지 모르는 것이 더 큰 문제일 때가 많습니다.
센서가 안 들어왔는지, 동작 시간이 초과됐는지, 서보 알람인지, 통신 문제인지, 안전 조건인지 남겨야 합니다.
리셋도 마찬가지입니다.
리셋은 그냥 꺼주는 기능이 아닙니다.
알람만 지울 것인지, 자동 스텝도 초기화할 것인지, 원점 완료는 유지할 것인지, 카운터나 데이터는 남길 것인지 생각해야 합니다.
이걸 처음에 생각하지 않으면 나중에 리셋 버튼 하나가 너무 많은 것을 지우거나, 반대로 필요한 상태가 남아서 설비가 꼬일 수 있습니다.
6. 원점 조건은 자동운전의 기준이다
원점 조건도 처음부터 기능으로 봐야 합니다.
특히 서보 축이나 위치 이동이 있는 설비에서는 원점이 자동운전의 기준이 됩니다.
원점이 잡혔는지, 현재 위치가 맞는지, 원점복귀 실패가 있는지에 따라 자동운전을 허가할지 말지가 달라집니다.
원점 조건을 자동운전 중간에 대충 섞어두면 나중에 위치 문제가 생겼을 때 찾기 어렵습니다.
처음 설계할 때부터 “이 설비는 어떤 조건을 원점 완료로 볼 것인가”를 생각해야 합니다.
7. 설계의 시작은 접점이 아니라 구조다
PLC 프로그램은 결국 접점과 코일로 만들어집니다.
하지만 설계의 시작은 접점이 아닙니다.
먼저 설비를 움직이기 위해 필요한 기능을 나눠야 합니다.
입력은 어떤 것들이 들어오는지.
출력은 어떤 장치를 움직이는지.
안전 조건은 무엇인지.
자동운전은 어떤 순서인지.
수동운전은 어떤 목적을 가지는지.
알람은 무엇을 남길 것인지.
원점 조건은 무엇을 기준으로 할 것인지.
리셋은 어디까지 지울 것인지.
이걸 먼저 정하고 나서 로직을 짜야 합니다.
기능 덩어리를 먼저 나누면 나중에 로직을 추가할 때도 판단이 쉬워집니다.
“이 조건은 알람 쪽이다.”
“이 동작은 수동 쪽이다.”
“이 신호는 입력 처리에서 정리해야 한다.”
“이 출력은 최종 출력 조건에서 처리해야 한다.”
이런 기준이 생깁니다.
기준이 없으면 로직은 아무 데나 붙습니다.
그때부터 프로그램은 점점 찾기 어려워집니다.
마무리
PLC 시퀀스 설계는 로직을 빨리 찍는 것부터 시작하지 않습니다.
먼저 설비에 어떤 기능이 필요한지 나누는 것부터 시작합니다.
설비는 입력을 받고 출력으로 움직입니다.
하지만 PLC는 그 사이에서 안전, 자동, 수동, 알람, 원점, 리셋 같은 기능을 판단합니다.
이 기능들을 처음부터 생각하지 않으면 프로그램은 금방 섞입니다.
처음에는 동작해도, 시운전과 유지보수에서 시간이 더 오래 걸립니다.
그래서 PLC 시퀀스를 시작할 때는 먼저 질문해야 합니다.
이 설비에 어떤 기능 덩어리가 필요한가?
그 질문에 대한 답이 입력, 출력, 안전, 자동, 수동, 알람, 원점, 리셋입니다.
[한 줄 직설] 접점부터 찍기 시작하면 빠른 것 같지만, 기능 덩어리를 먼저 나누지 않으면 시운전 때 결국 더 오래 걸립니다.