PLC 프로그램 표준화 방법: 계층 구조, 명명 규칙, 버전 관리
PLC 프로그램 표준화는 제어 프로그램을 장치 계층, 유닛 계층, 공정 계층, 공통 계층으로 나누고, 하나의 명명 규칙과 하나의 변수표로 신호 의미를 고정하며, 버전 관리와 백업 복구로 현장 수정을 추적하고 되돌릴 수 있게 만드는 일입니다. 목적은 코드를 예쁘게 쓰는 것이 아니라, 같은 종류의 설비가 여러 프로젝트에서 같은 골격을 재사용하고 인수인계받은 사람이 래더 전체를 처음부터 읽지 않아도 되게 하는 것입니다. 성공 여부는 구체적으로 판정할 수 있습니다. 신규 프로젝트 제어 로직의 약 7할이 기존 템플릿에서 나오고, 담당이 바뀐 사람이 반나절 안에 고장 구간을 찾아내는 것입니다. 이 글은 계층을 어떻게 나누는지, 명명과 주석을 어느 정도까지 쓰는지, 인수인계에서 무엇을 남겨야 하는지 설명합니다.
1. PLC 프로그램 표준화란: 개인 습관을 엔지니어링 자산으로
PLC 프로그램 표준화는 제어 프로그램 작성 방식을 개인의 습관에서 팀이 재사용할 수 있는 구조로 좁히는 작업입니다. 같은 포장기를 두 엔지니어가 작성해도 변수 명명, 구간 분할, 알람 처리 방식이 각각 다를 수 있습니다. 납품 3년 후 원 개발자가 퇴사하면 인수인계받은 사람은 며칠 동안 로직을 읽은 뒤에야 인터록 조건 하나를 고칠 수 있습니다. 표준화의 가치는 여기에 있습니다. 구조와 명명과 문서에 공통된 약속이 있으면 누구든 같은 경로로 같은 지점에 도달합니다.
경계는 분명히 해야 합니다. 표준화가 규정하는 것은 프로그램의 구성 방식과 산출물이며, 공정 자체가 아닙니다. 레시피, 택트, 동작 순서는 여전히 고객의 공정을 따릅니다. 이를 "작성 방식을 제한하는 것"으로 이해하는 것이 흔한 오해인데, 실제로 고정되는 것은 골격과 인터페이스이고, 계층이 명확해지면 공정 로직은 오히려 더 쉽게 바뀝니다. IEC 61131-3:2013은 이미 프로그램 구성 단위(POU), 기능 블록, 전역 변수의 개념을 정의하고 있습니다. 엔지니어링에서 할 일은 그 개념을 프로젝트 폴더 구조, 구간 순서, 명명 규칙에 옮기는 것이지 별도의 체계를 새로 만드는 것이 아닙니다.
판정 기준은 하나입니다. 개발에 참여하지 않은 사람에게 프로그램을 넘기고 "스테이션 하나 추가"를 요청합니다. 기존 구조 안에서 삽입 지점을 찾고 다른 스테이션 로직을 건드리지 않아도 된다면 표준화가 작동하는 것입니다. 전체를 읽어야만 판단할 수 있다면 표준화는 파일 이름 단계에서 멈춘 것입니다.
2. 계층을 나누는 방법: 장치, 유닛, 공정, 공통
계층 분리의 목적은 변화 빈도가 다른 로직을 갈라놓는 것입니다. 장치 계층의 동작 세부는 기계 구조에 따라 바뀌고, 유닛 계층의 협조는 라인 배치에 따라 바뀌고, 공정 계층의 레시피는 제품에 따라 바뀌며, 알람·권한·통신 같은 공통 계층은 거의 바뀌지 않습니다. 네 가지 로직을 한 블록에 섞으면 어느 한 곳을 고쳐도 전체를 다시 검증해야 합니다.
- 장치 계층: 설비 한 대의 기동과 정지, 인터록, 리미트, 단독 고장 처리. 장치마다 기능 블록 하나로 두고 외부에는 기동·정지·리셋·상태 네 개의 인터페이스만 노출합니다.
- 유닛 계층: 스테이션 간 또는 설비 간 협조. 상하류 핸드셰이크, 택트 동기화, 버퍼 판단 등입니다. 이 계층은 장치 계층 인터페이스만 호출하며 상대 유닛의 내부 변수를 직접 읽거나 쓰지 않습니다.
- 공정 계층: 레시피, 파라미터 세트, 공정 스텝 시퀀스. 레시피 데이터는 파라미터 표나 데이터베이스에 두어 레시피 변경 시 프로그램을 다시 다운로드하지 않습니다.
- 공통 계층: 알람 등급, 조작 권한, 시각 동기화, 통신 매핑, 데이터 기록. 프로젝트 전체가 한 세트를 공유하며 스테이션마다 다시 작성하지 않습니다.
엔지니어링 파일 수준에서 계층은 정해진 폴더 구조와 구간 순서가 됩니다. 각 기능 블록은 인터페이스 설명으로 시작하고 본체 로직이 이어지며 예외 처리는 구간 말미에 모읍니다. 약속이 정해지면 코드 리뷰에도 공통 언어가 생깁니다. 리뷰어는 먼저 인터페이스가 계층을 넘었는지 보고, 다음으로 로직이 공정과 맞는지 봅니다.
주의할 점이 있습니다. 계층은 많을수록 좋은 것이 아닙니다. 설비 종류가 하나이고 배치가 작은 프로젝트에서는 네 계층이 유지보수 면적을 늘립니다. 그런 경우 장치 계층과 공통 계층만 두고 협조 로직을 호출 지점에 쓰는 편이 현실적입니다. 계층의 세분화 수준은 템플릿이 아니라 설비 반복도에 따라 정해야 합니다.
3. 명명, 변수표, 주석: 다음 사람이 읽을 수 있게
명명은 표준화 전체에서 투자 대비 효과가 큰 항목입니다. 같은 신호가 프로젝트에 따라 M100, Start_OK, X12로 불리면 유지보수는 추측이 됩니다. 3단 명명은 설비, 기능, 일련번호를 고정해 이름만 보고 어느 설비에 속하고 무엇을 하며 몇 번째인지 알 수 있게 합니다.
| 항목 | 약속 | 흔한 문제 |
|---|---|---|
| 설비 코드 | 공정 구간별 약어. FIL 여과, PMP 펌프, CVY 컨베이어. 코드표는 프로젝트와 함께 납품 | 같은 설비가 스테이션마다 다르게 표기되어 프로젝트 간 이전이 안 됨 |
| 기능 코드 | IN 입력, OUT 출력, AL 알람, ST 상태, SP 설정값, PV 실측값 | 상태 비트와 알람 비트가 섞여 리셋 시 서로 덮어씀 |
| 일련번호와 비트 | 두 자리 일련번호에 설비 내부 비트, 예: PMP01_ST_RUN | 번호가 건너뛰거나 재사용되어 개정판이 옛 도면과 맞지 않음 |
| 논리 극성 | 상시 개방·폐쇄, 정논리·부논리는 변수표에 적고 이름에 넣지 않음 | 이름만 보고 접점 상태를 판단해 현장에서 고장 지점을 오판 |
| 주석 수준 | 각 기능 블록의 용도와 호출 조건, 핵심 인터록은 위반 시 결과까지 기술 | 주석이 "기동"만 적고 무엇과 인터록이며 위반 시 무엇이 정지하는지 없음 |
변수표는 사후 정리가 아니라 프로그램과 함께 납품합니다. 최소한 주소, 데이터형, 범위와 공학 단위, 소속 기능 블록, 초기값, 정전 유지 플래그를 포함합니다. 아날로그 신호는 특히 주의해야 합니다. 4–20 mA와 공학 범위의 대응, 필터 시간, 단선 판정 임계값 세 가지가 명확히 적혀 있지 않으면 다음 사람이 한 번 조정할 때 어긋납니다.
주석은 어디까지 쓰면 충분할까요. 판단 방법은 주석만 따로 읽는 것입니다. 프로그램을 보지 않고 이 블록이 어떤 조건에서 호출되고 실패하면 무엇이 일어나는지 설명할 수 있어야 합니다. 그럴 수 없다면 그 주석은 "동작 이름"을 적은 것이지 "설계 의도"를 적은 것이 아닙니다.
4. 버전 관리, 백업, 인수 검사
현장 수정은 프로그램이 흐트러지는 주된 원인입니다. 시운전 기간에 하루 열 번 넘게 고치는 것은 일상이며, 버전 기록이 없으면 일주일 뒤에는 어느 판이 기계에서 돌고 있고 어느 판이 시험판인지 알 수 없습니다. 버전 관리는 세 가지에 답해야 합니다. 지금 도는 판은 무엇인지, 그 판에서 무엇을 바꿨는지, 문제가 생기면 어느 판으로 되돌릴지입니다.
- 버전 번호 규칙: 주 번호는 공정 또는 구조 변경, 부 번호는 파라미터와 국부 로직 조정. 버전 번호는 프로그램 첫 주석 블록과 판넬 안 라벨 두 곳에 적고 일치시킵니다.
- 보관 주기: 시운전 기간에는 매일, 안정화 이후에는 변경 시마다 보관합니다. 보관본에는 원본 프로젝트, 변수표, 주석 설명, 빌드 로그가 포함되며 하나라도 빠지면 다음 담당자에게서 연결이 끊깁니다.
- 변경 기록: 누가, 언제, 왜, 어디까지 영향을 주는 변경인지 기록합니다. 인터록과 안전 관련 로직 변경은 별도로 표시하고 재검토합니다.
- 백업과 복구: 기계 측에 오프라인 복구 가능한 백업 한 부, 서버에 이력 한 세트를 둡니다. 백업의 유효성은 파일 존재가 아니라 복구 훈련으로 증명합니다.
안전 관련 로직에는 추가 요구가 있습니다. ISO 13849-1:2023은 제어 시스템의 안전 관련 부품에 대한 설계와 검증 경로를 제시하며, 안전 기능을 주석으로 구분한 일반 프로그램 구간에만 두는 것으로는 충분하지 않습니다. EU 기계 규정 (EU) 2023/1230은 2027년 1월 20일부터 적용되며, 안전 관련 부품으로서의 소프트웨어에는 추적 가능한 버전과 검증 기록이 필요합니다. IEC 62443-3-3:2013은 프로그램 변경과 접근에 대한 통제를 요구합니다. 누가 다운로드할 수 있고, 누가 파라미터를 바꿀 수 있으며, 변경이 기록되는지는 납품 범위에 포함되는 사항이지 선택 사항이 아닙니다.
인수 검사는 목록으로 진행하며 다섯 항목이 모두 갖춰져야 완료입니다. 원본 프로그램과 빌드 가능한 프로젝트, 변수표와 주석, 버전과 변경 기록, 백업 파일과 복구 절차, 그리고 현장 복구 훈련 1회입니다. 가장 자주 생략되고 가장 많은 문제를 드러내는 단계가 훈련입니다. 백업 파일은 있는데 복구가 되지 않는 경우는 드물지 않습니다.
맺음말: 표준화가 줄이는 것은 인수인계 비용
PLC 프로그램 표준화의 효과는 검수서에 적기 어렵습니다. 효과는 납품 3년 뒤 고장 대응에서 드러납니다. 인수인계받은 사람이 반나절 안에 고장 구간을 찾을 수 있는지, 인터록 하나를 고쳐 다른 스테이션에 영향이 가지 않는지, 이전 판으로 되돌리는 데 얼마나 걸리는지입니다. 계층, 명명, 버전 관리는 모두 같은 일을 합니다. 프로그램을 개인의 경험에서 팀의 자산으로 바꾸는 것입니다. 설비 제조사에게 직접적인 결과는 신규 프로젝트 재사용률 상승과 시운전 기간 단축이고, 공장에게는 유지보수가 원 개발자에게 묶이지 않게 되는 것입니다. 시작은 반복도가 높은 기종 하나를 골라 그 골격을 먼저 완성한 뒤 다른 기종으로 복사하는 편이 전 공장에 한 번에 적용하는 것보다 정착이 잘 됩니다.
솔루션 상담 예약
PLC 프로그램 표준화를 진행 중이거나, 기존 프로그램의 명명 규칙·버전 관리·인수인계 목록을 먼저 정리하려는 경우 설비 종류, 재사용 상황, 납품 요구 사항을 알려 주십시오. 기종 반복도와 현재 프로그램 상태에 맞춰 단계적 추진 방안을 제안하겠습니다.
문의하기