05.Mitsubishi PLC 카운터프로그램이란?

Mitsubishi plc 카운터프로그램

PLC를 처음 공부하실 때 가장 많이 쓰이는 명령 중 하나가 바로 카운터프로그램입니다. 특히 Mitsubishi PLC 카운터프로그램은 부품 수량 집계, 생산량 카운트, 센서 통과 횟수 체크 등 실제 자동화 설비에서 활용도가 매우 높습니다. 간단한 입력 신호를 “몇 번 들어왔는지” 세어주는 역할이기 때문에, 타이머와 함께 반드시 이해해야 할 핵심 기능이라고 보시면 됩니다.

Mitsubishi PLC에서 카운터는 보통 C0, C1, C2…와 같은 번호로 관리되며, FX 시리즈든 Q/L 시리즈든 기본 개념은 거의 동일합니다. 입력 신호가 ON될 때마다 카운트 값이 1씩 증가하고, 설정한 목표 값(프리셋 값)에 도달하면 해당 카운터 코일이 ON되면서 후단 로직을 동작시키는 구조입니다. 이 원리를 이해하면 어떤 기종을 사용하셔도 Mitsubishi PLC 카운터프로그램을 쉽게 설계하실 수 있습니다.


업카운터와 다운카운터 기본 개념

Mitsubishi PLC에서 가장 많이 사용하는 카운터는 업카운터(Up Counter) 입니다. 업카운터는 말 그대로 0에서 시작해서 신호가 들어올 때마다 1, 2, 3… 이런 식으로 값이 증가합니다. 예를 들어 포장 박스에 제품이 10개 채워지면 실린더를 동작시키고 싶을 때, 업카운터를 10으로 설정하면 10번째 신호에서 카운터 출력이 ON 되도록 만들 수 있습니다.

반대로, 특정 수량에서 0까지 거꾸로 세고 싶을 때는 다운카운터(Down Counter) 개념을 사용합니다. Mitsubishi PLC 기종에 따라 다운카운터 전용 명령을 지원하기도 하고, 업카운터에 초기 값을 먼저 로드한 뒤 감소시키는 방식으로도 구현할 수 있습니다. 실제 프로젝트에서는 업카운터만으로도 대부분의 요구 사항을 구현할 수 있기 때문에, 처음 공부하실 때는 업카운터 중심으로 Mitsubishi PLC 카운터프로그램을 연습하시는 것을 추천드립니다.


Mitsubishi PLC 카운터프로그램 구조 이해하기

카운터를 사용할 때 기본적으로 다음 세 가지 요소를 항상 같이 생각하셔야 합니다.

  1. 카운트 입력 조건(트리거 신호)
  2. 카운트 목표 값(프리셋 값)
  3. 리셋 조건(초기화 조건)

예를 들어, 다음과 같은 간단한 구조를 떠올려 보겠습니다.

  • X0 : 포토센서 입력
  • C0 : 카운터 번호
  • K10 : 목표 수량(10개)
  • X1 : 리셋 버튼

이 경우 Mitsubishi PLC 카운터프로그램은 다음과 같은 흐름이 됩니다.

  1. 제품이 센서를 통과할 때마다 X0가 ON → C0 카운트 값이 1씩 증가
  2. C0의 현재 값이 K10에 도달 → C0 출력 코일 ON
  3. C0 출력 코일을 이용해 실린더 구동, 경광등 점등 등 후속 동작 수행
  4. 작업자가 X1 리셋 버튼을 누르면 카운트 값이 0으로 초기화

이렇게 카운트 입력, 목표 값, 리셋 조건을 명확하게 나누어 생각하면, 실무에서 카운터프로그램을 설계할 때 훨씬 안정적인 구조를 만들 수 있습니다.


카운터 입력 신호에서 가장 중요한 포인트

Mitsubishi PLC 카운터프로그램을 실무에서 사용하실 때, 가장 많이 실수하는 부분이 바로 “입력 신호 처리”입니다. 단순히 센서 접점을 바로 카운터에 연결하면, 노이즈나 채터링 때문에 한 번 들어와야 할 신호가 두 번, 세 번 들어가는 경우가 생깁니다. 이러면 생산 설비에서 수량이 계속 틀어지게 됩니다.

그래서 다음과 같은 점들을 꼭 체크하시는 것이 좋습니다.

  1. 엣지(한 번만 카운트) 처리
    • 일반 유지형 접점이 아니라 상승엣지(↑), 하강엣지(↓) 조건을 사용하면 한 번의 변화에 대해 한 번만 카운트됩니다.
    • Mitsubishi PLC의 기종에 따라 엣지 검출 명령 또는 특수 접점을 활용할 수 있습니다.
  2. 필터 또는 디바운스 로직 적용
    • 기계적 스위치, 리미트 스위치 등에서 채터링이 심할 경우, 타이머를 이용해 짧은 시간 동안 신호 변화를 무시하는 간단한 디바운스 로직을 추가합니다.
    • 이렇게 하면 Mitsubishi PLC 카운터프로그램에서 중복 카운트가 발생하는 문제를 크게 줄일 수 있습니다.
  3. 고속 카운터 vs 일반 카운터 구분
    • 엔코더처럼 매우 빠른 펄스를 세야 한다면, 일반 카운터가 아닌 **고속 카운터(High Speed Counter)**를 사용해야 합니다.
    • 이 부분은 하드웨어 설정과 연계되기 때문에, 프로젝트 초기에 반드시 설계 단계에서 결정하시는 것이 좋습니다.

리셋(Reset) 로직 설계 팁

카운터를 쌓는 것 못지않게 중요한 것이 바로 리셋 조건입니다. 잘못 설계된 리셋 로직은 예기치 않은 타이밍에 카운트 값을 초기화해서, 생산량 데이터가 엉키는 문제를 만들 수 있습니다.

Mitsubishi PLC 카운터프로그램에서 리셋을 설계하실 때는 다음과 같은 기준을 추천드립니다.

  • 수동 리셋: 작업자가 버튼(X1)을 눌렀을 때만 리셋
  • 자동 리셋:
    • 한 박스 포장 완료 후 이송이 끝났을 때,
    • 설비가 기준 위치로 복귀했을 때,
    • 다음 배치(batch) 시작 신호가 들어왔을 때 등

실무에서는 수동 리셋 + 자동 리셋을 병행하는 경우가 많습니다. 예를 들어, 정상적인 싸이클이 끝났을 때는 자동으로 리셋되되, 비상 정지 후 재기동할 때는 작업자가 수동으로 한 번 더 리셋을 눌러 초기 상태를 확실히 맞추는 방식입니다. 이런 식으로 설계해 두면, Mitsubishi PLC 카운터프로그램을 사용하면서도 데이터 신뢰성을 유지하기가 훨씬 쉬워집니다.


GX Works 기준 Mitsubishi PLC 카운터프로그램 예제

이제 실제 프로그램 구성을 예로 들어 보겠습니다. 예시는 GX Works2/GX Works3에서 공통으로 이해하실 수 있도록, 래더 기본 개념 위주로 설명드리겠습니다. 상황은 다음과 같습니다.

  • 포토센서(X0)가 제품 통과를 감지
  • 제품이 10개 쌓이면 박스 이송 실린더(Y0) 동작
  • 작업자가 리셋 버튼(X1)을 누르면 카운터 초기화

이 경우 Mitsubishi PLC 카운터프로그램 흐름은 다음과 같이 잡을 수 있습니다.

  1. X0 상승엣지를 카운터 C0의 입력 조건으로 사용
  2. C0의 프리셋 값은 K10으로 설정
  3. C0가 목표 값에 도달하면 C0코일 ON → Y0 출력 구동
  4. X1(리셋 버튼)을 이용해 C0값을 0으로 초기화

실제 래더에서는

  • 첫 번째 런에서 X0 입력 → CNT C0 K10
  • 두 번째 런에서 C0 코일 → Y0 출력
  • 세 번째 런에서 X1 입력 → ZRST C0
    이런 식으로 구조를 설계하실 수 있습니다. 기종 또는 버전에 따라 명령어 표기법이 조금씩 다를 수 있지만, 전체적인 구성은 동일하다고 보시면 됩니다.

업카운터·다운카운터 혼합 사용 예시

조금 더 복잡한 예제로, 업카운터와 다운카운터 개념을 동시에 사용하는 Mitsubishi PLC 카운터프로그램을 생각해 보겠습니다.

예를 들어, 한 라인에서 하루에 최대 100개의 박스를 생산해야 한다고 가정해 보겠습니다.

  • C0 : 한 박스 안의 제품 개수 카운터(예: 10개)
  • C1 : 하루 박스 수량 카운터(예: 최대 100박스)

동작 흐름은 다음과 같습니다.

  1. 제품이 센서를 통과할 때마다 C0가 1씩 증가
  2. C0가 10에 도달 → 한 박스 완성, C1을 1 증가
  3. 박스 이송 완료 후 C0는 자동 리셋
  4. C1이 100에 도달하면 “금일 목표 완료” 램프 점등 및 설비 자동 정지

여기에서 C1은 업카운터 역할을 하지만, 화면(HMI)에서는 “남은 박스 수량”으로 보여주기 위해 100에서 C1 현재 값을 빼서 표시할 수 있습니다. 이렇게 하면 사용자 입장에서는 다운카운터처럼 보이게 됩니다. 즉, 내부 로직은 업카운터, 표시부는 다운카운터 개념으로 처리하는 하이브리드 구조가 됩니다.

이런 방식은 Mitsubishi PLC가 제공하는 카운트 값과 데이터 연산 명령(ADD, SUB, MOV 등)을 함께 활용하는 전형적인 Mitsubishi PLC 카운터프로그램 설계 패턴입니다.


생산량 집계 및 HMI 연동 시 주의사항

현장에서 Mitsubishi PLC 카운터프로그램을 HMI(터치스크린)와 함께 사용할 때는 몇 가지 추가로 고려하셔야 할 부분이 있습니다.

  1. 카운트 값 데이터 타입 확인
    • 카운트 값이 내부적으로 WORD인지, DOUBLE WORD인지 확인해야 합니다.
    • 하루 생산량이 32767을 넘어갈 수 있다면, 32비트 카운터 또는 D레지스터를 활용해 누적값을 관리해야 합니다.
  2. HMI 리셋과 PLC 리셋 동기화
    • HMI 화면에서 “오늘 수량 리셋” 버튼을 만들었다면, 이 버튼이 실제 PLC 내부의 C값과 D레지스터 값 모두를 동시에 초기화하도록 설계해야 합니다.
    • 예를 들어, D100에 누적 생산량을 저장하고 있다면, HMI 리셋 시 C1D100을 함께 0으로 만드는 구조가 좋습니다.
  3. 전원 OFF/ON 시 데이터 보존
    • 전원을 껐다 켜도 카운트 값을 유지해야 할 경우, 정전 보존이 가능한 D레지스터로 카운트 값을 복사해 두는 로직을 설계합니다.
    • 예: C1 값이 변경될 때마다 MOV C1 D100으로 저장 → 재가동 시 MOV D100 C1로 복구

이렇게 설계해 두면 HMI와 연동된 Mitsubishi PLC 카운터프로그램이 예기치 않은 전원 차단에도 안정적으로 동작할 수 있습니다.


Mitsubishi PLC 카운터프로그램에서 자주 발생하는 문제와 해결법

실무에서 많이 겪는 오류들을 정리해 보겠습니다. 카운터 자체 문제라기보다, 주변 로직 설계나 센서 환경 설정 때문에 발생하는 경우가 매우 많습니다.

  1. 수량이 실제보다 많이 카운트되는 경우
    • 원인
      • 센서 채터링, 노이즈, 진동
      • 상승엣지 대신 일반 접점 사용
    • 해결
      • 엣지 접점 사용(1펄스 1카운트 보장)
      • 타이머 기반 디바운스 로직 추가
      • 센서와 케이블 쉴드, 접지 상태 점검
  2. 수량이 간헐적으로 빠지는 경우(미카운트)
    • 원인
      • 카운터가 일반 스캔 속도로는 못 받는 고속 펄스
      • PLC 스캔타임보다 빠른 센서 응답
    • 해결
      • 고속카운터(HSCP) 기능 사용
      • 하드웨어 인터럽트 입력 사용 검토
      • 엔코더·고속센서에는 반드시 고속 대응 모듈 적용
  3. 예상치 못한 타이밍에 카운터 값이 초기화되는 경우
    • 원인
      • 리셋 조건에 불필요한 신호가 함께 묶여 있음
      • 여러 런에서 같은 카운터를 리셋하는 로직이 중복 존재
    • 해결
      • 리셋 조건을 한 곳에서만 관리(전용 런 작성)
      • 리셋 조건을 “명확한 이벤트” 하나로 제한
      • 디버깅 시, 모니터에서 리셋 신호 상태를 집중 확인

이와 같은 체크리스트를 프로젝트 초기에 적용해 두면, Mitsubishi PLC 카운터프로그램을 실제 설비에 올렸을 때 디버깅 시간을 크게 줄일 수 있습니다.


프로젝트 설계 시 카운터 채번 및 주석 관리

규모가 있는 자동화 설비에서는 카운터를 수십 개, 많게는 수백 개까지 사용하는 경우도 있습니다. 이럴 때는 카운터 번호와 기능을 체계적으로 관리하는 것이 매우 중요합니다. 다음과 같은 기준을 추천드립니다.

  1. 라인별·기능별 번호 구역 나누기
    • C0~C19 : 1번 라인 카운터
    • C20~C39 : 2번 라인 카운터
    • C100~C119 : 설비 전체 누적 수량, 알람 카운터 등 공용
  2. 주석(코멘트) 규칙 통일
    • 예) C0 : 1라인 제품수량(BOX용 10개)
    • 예) C1 : 1라인 박스수량(일일)
    • 예) C100 : 전체누적생산량(리셋금지)
  3. 리셋 방식도 코멘트에 명시
    • 수동 리셋인지, 자동 리셋인지, 또는 절대 리셋 금지인지 코멘트에 꼭 적어두면, 다른 엔지니어가 Mitsubishi PLC 카운터프로그램을 인수인계 받을 때 큰 도움이 됩니다.

이렇게 카운터 번호와 역할을 명확히 정리해 두면, 나중에 프로그램을 수정하거나 기능을 추가할 때도 꼬이지 않고 확장할 수 있습니다.


Mitsubishi PLC 카운터프로그램 실무 활용 아이디어

마지막으로, 현장에서 자주 쓰이는 응용 아이디어를 몇 가지 소개해 드리겠습니다. 이 아이디어들을 응용해서 본인 설비에 맞게 변형해 보시면 카운터 활용도가 훨씬 넓어집니다.

  1. 불량률 관리
    • C0 : 전체 생산 수량
    • C1 : 불량 수량
    • HMI에서 불량률 = C1 / C0 × 100으로 계산해 그래프로 표시
    • 일정 불량률 이상이면 경고 알람 출력
  2. 교체 주기 알람(예: 롤 교체, 칼날 교체)
    • C10 : 규정 수량만큼 생산할 때마다 1 증가
    • C10이 K50에 도달하면 “칼날 교체 시점” 알람 표시
    • 교체 완료 후 작업자가 리셋 버튼으로 C10 초기화
  3. 주·야간 별도 생산량 관리
    • 주간 시작 신호가 들어오면 주간 카운터 리셋 후 카운트 시작
    • 야간 시작 신호가 들어오면 주간 카운터는 저장, 야간 카운터로 전환
    • 이렇게 주·야간을 분리해서 집계하면, HMI나 레포트에서 교대조별 데이터를 쉽게 확인 가능

이 모든 예제에서 핵심은 “어떤 이벤트를 기준으로 카운트를 세고, 언제 리셋할 것인가”를 명확하게 정의하는 것입니다. 그 위에 Mitsubishi PLC 명령어를 얹으면 자연스럽게 단단한 Mitsubishi PLC 카운터프로그램이 완성됩니다.


마무리 정리

지금까지 Mitsubishi PLC 카운터프로그램의 기본 개념부터

  • 업카운터·다운카운터 구조
  • 입력 신호 처리와 고속 카운터 구분
  • 리셋 로직 설계 방법
  • HMI 연동 시 주의사항
  • 자주 발생하는 문제와 해결법
  • 실무에서 바로 쓸 수 있는 응용 아이디어

까지 한 번에 정리해 보았습니다.

카운터는 처음에는 단순해 보이지만, 실제 설비에 적용하면 “언제 카운트하고 언제 리셋할지”에 따라 설비 신뢰도가 크게 달라집니다. 이 글에서 소개해 드린 흐름과 설계 기준을 바탕으로 본인 설비에 맞게 구조를 잡아 보신다면, 보다 안정적이고 확장성 있는 Mitsubishi PLC 카운터프로그램을 구현하실 수 있을 것입니다.

TIP! 카운터 프로그램은 제품을 생산하는 많은 장비에서 사용되는 프로그램입니다. 현장에서 카운터 프로그램을 적용할때 많이 발생하는 문제는 Reset을 제대로 하지 않는 경우가 많습니다. 카운터를 사용하였다면 꼭 Reset을 적용하고 Test하는 것을 추천드립니다!!

LS PLC 카운터 프로그램 공부하기

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤