콘텐츠로 이동

첫 프로그램 만들기

Lite 6 키트로 만드는 첫 통합 예제 — 컨베이어 + 카메라 + 로봇 색상 분류.

무엇을 만드나요?

벨트 위 물체를 카메라로 색상 확인 후, 색상별로 다른 위치로 옮기는 자동화 시스템. 100개 처리 후 자동 종료.

학습 목표

이 예제 하나로 시작/종료 + 메시지 + 컨베이어 + 센서 + 카메라 + 로봇 + 변수 + 조건 + 반복 + 카운터 를 모두 활용합니다. 익히면 다른 자동화 흐름도 응용 가능합니다.

사전 준비

실행 전 체크리스트

  • [x] [장비] 탭에서 메인보드 / 카메라 / 로봇 모두 "● 연결됨" 확인
  • [x] 로봇 위치 3개 교시 — A (빨간색 분류), B (파란색 분류), C (기타 색상 분류)
  • [x] 작업 범위 확인 (Z=50mm 이상)
  • [x] 그리퍼 종류 선택됨 (집게 또는 진공)
  • [x] 컨베이어 위에 테스트용 색상 박스 1~3 개 준비

시나리오

벨트 회전 시작
  → 물체가 IR 센서 위로 이동
  → 센서 감지 → 벨트 정지
  → 카메라로 색상 확인
  → 빨간색 → 로봇이 A 위치로 옮김
  → 파란색 → 로봇이 B 위치로 옮김
  → 그 외 → 로봇이 C 위치로 옮김
  → 카운터 +1
  → 100개 도달까지 반복

단계별 카드 구성

1단계 — 시작 + 변수 초기화

시작
카운터 초기화 (count)        ← 처리 개수 0으로 리셋
로봇 홈으로                   ← 안전한 시작 자세
메시지 보내기 ("색상 분류 시작")

2단계 — 무한 반복 시작

LOOP 무한 반복
  컨베이어 켜기              ← 벨트 회전 시작
  센서 감지 대기 (IR1, 30초)  ← 물체가 센서에 도달할 때까지 대기
  컨베이어 끄기              ← 감지되자마자 정지

타임아웃 30초의 의미

30초 동안 물체가 안 들어오면 (작업 완료 신호) 다음 카드로 진행됩니다. 이 흐름에서는 IF 로 감지 실패를 처리할 수도 있지만, 단순히 LOOP 가 다시 시작됩니다.

3단계 — 색상 인식

  카메라 조명 (밝게)         ← 인식 정확도 향상
  색깔 확인                   ← {감지색상} 자동 저장
  카메라 조명 (끄기)
  메시지 보내기 ("색상: {감지색상}, 신뢰도: {감지신뢰도}")

4단계 — 색상별 분류 (IF / ELSIF / ELSE)

  만약 빨간색이면
    ├─ 로봇 이동 (A 위치)
    ├─ 그리퍼 닫기            ← 또는 베큠 그리퍼 켜기
    ├─ 1초 기다리기
    ├─ 로봇 홈으로
    └─ 그리퍼 열기            ← 또는 베큠 그리퍼 끄기
  아니면 파란색이면
    ├─ 로봇 이동 (B 위치)
    ├─ 그리퍼 닫기
    ├─ 1초 기다리기
    ├─ 로봇 홈으로
    └─ 그리퍼 열기
  아니면
    ├─ 로봇 이동 (C 위치)
    ├─ 그리퍼 닫기
    ├─ 1초 기다리기
    ├─ 로봇 홈으로
    └─ 그리퍼 열기
  만약 끝

5단계 — 카운팅 + 반복 종료 체크

  횟수 세기 (count, PV=100)   ← count + 1, 100 도달 시 count_Q=참
  메시지 보내기 ("처리됨: {count}개")
  만약 count_Q이면
    ├─ 메시지 보내기 ("100개 완료!")
    ├─ 효과음 (완료)
    └─ 반복 탈출               ← LOOP 종료
  만약 끝
LOOP 끝

6단계 — 종료

로봇 홈으로                   ← 안전한 마지막 자세
컨베이어 끄기                 ← 안전상 한번 더 끄기
말하기 ("작업이 모두 완료되었습니다")
종료

전체 카드 시각화

시작
[카운터 초기화]
[로봇 홈으로]
[메시지: 시작]
LOOP 무한 반복
  ├─ 컨베이어 켜기
  ├─ 센서 감지 대기 (IR1, 30초)
  ├─ 컨베이어 끄기
  ├─ 카메라 조명 (밝게)
  ├─ 색깔 확인
  ├─ 카메라 조명 (끄기)
  ├─ 메시지: 색상={감지색상}
  ├─ IF 빨간색이면
  │  └─ [로봇 이동 A → 그리퍼 닫기 → 홈 → 열기]
  ├─ ELSIF 파란색이면
  │  └─ [로봇 이동 B → 그리퍼 닫기 → 홈 → 열기]
  ├─ ELSE
  │  └─ [로봇 이동 C → 그리퍼 닫기 → 홈 → 열기]
  ├─ END_IF
  ├─ 횟수 세기 (count, PV=100)
  ├─ 메시지: 처리됨 {count}개
  ├─ IF count_Q이면
  │  └─ [메시지 → 효과음 → 반복 탈출]
  └─ END_IF
LOOP 끝
[로봇 홈으로]
[컨베이어 끄기]
[말하기: 완료]
종료

단계별 테스트 (디버깅)

전체 흐름을 한 번에 만들기보다, 단계별로 테스트하면서 추가하는 것이 좋습니다.

테스트 1 — 센서까지만

시작
컨베이어 켜기
센서 감지 대기 (IR1)
컨베이어 끄기
메시지 ("물체 감지됨")
종료

이 흐름이 동작하면 센서·컨베이어 연결 OK.

테스트 2 — 색상 인식 추가

위에 색상 카드 추가:

...
카메라 조명 (밝게)
색깔 확인
메시지 ("색상: {감지색상}")
종료

화면에 색상이 표시되면 카메라 OK.

테스트 3 — 로봇 분류 추가

IF / ELSIF / ELSE 로 로봇 이동 추가. 색상별로 다른 위치로 이동하는지 확인.

테스트 4 — 반복 + 카운터 추가

LOOP 와 카운터 추가. 100개 대신 5개로 먼저 테스트 (PV=5) 권장.

자주 발생하는 문제

센서가 감지를 못 함 → 30초 후 LOOP 다시 시작

물체가 센서 위에 정확히 위치하지 않을 가능성. 컨베이어 속도를 1단계로 낮추거나, 물체를 손으로 센서 위에 직접 가져다 대 보세요.

색상이 자주 틀림

센서 카드 → 자주 발생하는 문제 의 "색상 인식이 자주 틀림" 항목 참조.

로봇이 명령 위치로 안 감

Lite 6 작업 범위 Z=50mm 최솟값 확인.

100개 도달했는데 LOOP 안 끝남

[횟수 세기] 카드의 PV 값과 IF 의 count_Q 변수명이 정확히 일치하는지 확인.

다음 학습

이 예제를 변형해 보세요

  • 색상 종류 추가 — 빨강·파랑·초록 → 7가지 색상 분류
  • 음성 안내 추가 — 색상마다 다른 음성 ("빨간색 박스 발견")
  • 카운터를 색상별로red_count, blue_count 등 별도 카운터
  • 속도 조정 — 분류 과정 중 일부에서 [로봇 속도/가속도] 변경
  • 센서 1개 → 2개 — IR1 진입, IR2 출구로 더 정확한 위치 제어

강사 팁

단계별 테스트가 핵심

학생이 한 번에 전체 흐름을 만들면 디버깅이 어렵습니다. 테스트 1 → 2 → 3 → 4 순서로 점진적 확장 을 강조하세요.

처음엔 100 대신 5

[횟수 세기 PV=100] 은 학습 시 너무 깁니다. PV=5 로 먼저 테스트 후 정상 동작 확인되면 100 으로 변경.

흐름 종료 후 확인

100개 완료 메시지가 화면에 표시되고, 로봇이 HOME 위치로 복귀하면 정상 종료된 것입니다.

다음 단계

첫 프로그램이 동작했다면 ST 코드 보기 → 로 카드가 산업용 PLC 코드로 어떻게 변환되는지 확인해 봅시다.


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