콘텐츠로 이동

이벤트 감시 카드

흐름이 진행되는 동안 백그라운드에서 GPIO·MQTT·센서를 감시 하다가, 특정 이벤트 발생 시 자동으로 동작하는 카드들입니다.

무엇을 하는 단계인가요?

일반 카드는 순차 로 실행되지만, 이벤트 감시 카드는 별도 백그라운드 에서 신호를 감시합니다. 감시하는 중에도 메인 흐름은 계속 진행되며, 이벤트가 들어오면 정해진 동작을 자동 실행합니다.

언제 사용하나요?

  • 작업 진행 중 비상 정지 버튼 을 항상 감시하고 싶을 때
  • 다른 스테이션의 MQTT 신호 가 언제 올지 모를 때
  • 컨베이어 동작 중 물체가 통과하면 자동 카운팅 하고 싶을 때

카드 종류

  • 감시 시작


    감시 시작 (블록 열기)

    백그라운드 감시 시작

  • 이벤트 감지 시


    이벤트 감지 시 (블록 중간)

    이벤트 발생 시 실행할 동작

  • 감시 끝


    감시 끝 (블록 닫기)

    백그라운드 감시 종료

블록 구조

3개 카드는 항상 함께 사용됩니다.

감시 시작
  이벤트 감지 시 (이벤트 종류, 세부 설정)
    ├─ [이벤트 발생 시 실행할 카드들]
    └─ ...

  [메인 흐름 카드들 — 백그라운드 감시 중에도 계속 진행]

감시 끝
  • 메인 흐름 (감시 시작 ~ 감시 끝 사이의 일반 카드들) 은 정상 진행
  • 이벤트 감지 시 블록 은 백그라운드에서 신호 대기 → 들어오면 자동 실행
  • 감시 끝 카드 도달 시 백그라운드 감시 자동 종료

카드 사용법

감시 시작 (블록 열기)

  • 파라미터: 없음
  • 동작: 이 카드 시점부터 백그라운드 감시 시작

이벤트 감지 시 (블록 중간)

이벤트 종류와 세부 설정을 선택하고, 그 이벤트가 발생할 때 실행할 카드들을 안에 둡니다.

  • 파라미터:
    • 이벤트 종류 (드롭다운):
      • GPIO 입력 — 외부 버튼·스위치 신호
      • MQTT 메시지 — 다른 스테이션의 메시지
      • 센서 감지 — IR 센서 신호
    • 종류에 따른 추가 옵션:
      • GPIO 입력: 핀 (CI0 ~ CI7)
      • MQTT 메시지: 보낸 스테이션 + 토픽
      • 센서 감지: 센서 (IR1 / IR2)

감시 끝 (블록 닫기)

  • 파라미터: 없음
  • 동작: 백그라운드 감시 종료

사용 예시

예시 1 — 비상 정지 버튼 상시 감시

시작
감시 시작
  이벤트 감지 시 (GPIO 입력, CI0)
    ├─ 메시지 보내기 ("비상 정지 신호 수신")
    ├─ 컨베이어 끄기
    └─ 종료
  [메인 작업 — 컨베이어 + 로봇 분류]
감시 끝
종료

메인 작업이 진행되는 내내 CI0 비상 버튼을 감시 → 눌리면 즉시 정지.

예시 2 — 다른 스테이션 알림 받기

시작
감시 시작
  이벤트 감지 시 (MQTT 메시지, fromStation: master, topic: alert)
    ├─ 효과음 (알림)
    └─ 메시지 보내기 ("마스터 알림: 작업 중지 요청")
  [정상 작업]
감시 끝
종료

예시 3 — 센서 통과 자동 카운팅

시작
카운터 초기화 (passed_count)
감시 시작
  이벤트 감지 시 (센서 감지, IR2)
    └─ 횟수 세기 (passed_count, PV=10000)
  컨베이어 켜기
  LOOP 무한 반복
    ├─ [작업 카드들]
  LOOP 끝
감시 끝
메시지 보내기 ("총 통과: {passed_count}개")
종료

자주 발생하는 문제

이벤트 감지 시 블록이 한 번도 실행 안 됨
  1. 이벤트 종류와 세부 설정 (핀/스테이션/센서) 이 정확한지 확인
  2. 실제로 신호가 들어오는지 GPIO 카드 의 [GPIO 읽기] 등으로 별도 확인
  3. 감시 시작 ~ 감시 끝 사이에 메인 흐름 카드가 있어야 함 (감시 시작 → 감시 끝 사이가 너무 짧으면 감시 즉시 종료)
이벤트 처리 중에 메인 흐름이 멈춤

이벤트 감지 시 블록 안의 카드들이 너무 길면 메인 흐름과 자원 충돌할 수 있습니다. 이벤트 처리는 짧고 가볍게 작성 권장.

여러 이벤트를 동시에 감시하려면?

감시 시작 블록 안에 [이벤트 감지 시] 카드를 여러 개 둘 수 있습니다 (각각 다른 이벤트 종류 가능).

강사 팁

이벤트 감시는 중급 학습

학생이 순차 흐름·IF·LOOP 에 익숙해진 후 도입하세요. 백그라운드 처리 개념은 PLC 의 인터럽트와 유사합니다.

비상 정지 패턴이 가장 실용적

예시 1 의 패턴은 모든 자동화 흐름의 안전 장치로 활용 가능합니다. 학생이 만든 어떤 흐름에든 추가 권장.

이벤트 처리 중 자원 충돌 주의

이벤트 감지 시 블록과 메인 흐름이 같은 자원 (예: 같은 로봇) 을 동시 제어하면 충돌합니다. 병렬 실행 의 자원 충돌 주의사항과 동일.

다음 단계

이벤트 감시까지 익혔다면 나만의 블록 / 서브루틴 → 으로 자주 쓰는 동작을 묶어 재사용해 봅시다.


이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.