비전 판정은 끝났는데 PLC는 왜 늦게 아는가 — 트리거부터 결과 출력까지 지연을 비전 쪽에서 분해하기
EDGE AI / INTERFACE
검사 로그에는 판정이 몇 ms 만에 끝났다고 찍혀 있는데, 설비 쪽에서는 결과가 늦게 도착했다고 합니다. 비전 담당자는 추론 시간을 보여 주고, 제어 담당자는 결과를 받은 시각을 보여 줍니다. 두 숫자 사이의 공백은 누구의 로그에도 없습니다.
이 공백을 방치하면 문제는 늦게 도착한 결과가 다른 부품의 결과로 읽히는 순간 커집니다. 결과에 부품을 식별할 번호가 없으면, 한 번 밀린 결과가 뒤따르는 부품들의 판정을 연쇄적으로 어긋나게 만들고, 불량이 양품으로 기록된 채 통과합니다.
해법은 트리거에서 결과 출력까지를 비전 쪽에서 구간별로 쪼개 각 구간의 최악값을 측정하고, 결과에 트리거 번호와 타임스탬프를 붙여 내보내는 것입니다. PLC가 결과를 읽는 주기와 로직은 PLC 쪽 설계라 이 글의 범위가 아니며 별도 검토가 필요합니다. 이 글은 비전 시스템이 책임질 수 있는 구간만 다룹니다.
결과는 “언제 도착했는가”가 아니라 “어느 트리거의 결과인가”로 매칭되어야 합니다.
1. 비전 쪽 지연은 여섯 구간의 합이다
Point. 비전 쪽 지연은 추론 시간이 아니라, 트리거 입력부터 결과 출력까지 여섯 구간의 합입니다.
Reason. ① 트리거 입력(입력 필터·지연) ② 노출 ③ 센서 읽기·전송(인터페이스 대역폭) ④ 대기열(앞 영상 처리 중 대기) ⑤ 처리(전처리·추론·판정) ⑥ 결과 출력(디지털 출력 또는 네트워크 메시지)입니다. p99 지연 예산 글이 지연 예산을 단계별로 나눈 것과 같은 관점이며, 여기서는 결과가 비전 장치를 떠나는 ⑥번과 결과의 식별을 중심으로 봅니다.
Example. 벤치마크의 추론 시간은 ⑤의 일부일 뿐이고, ③은 영상 크기와 링크 대역폭으로 정해집니다. 4096 × 3000 px 8비트 영상 한 장은 약 12.3 MB이므로, 실효 약 115 MB/s의 1GigE 링크(인터페이스 대역폭 글)로는 전송에만 약 107 ms가 걸립니다.
Point. 각 구간의 시작과 끝에 타임스탬프를 찍어야 “어디서 늦었는가”를 말할 수 있습니다. 카메라의 노출 종료 이벤트(GenICam SFNC의 Exposure End 이벤트)가 싣는 타임스탬프와 프레임 ID를 기준점으로 쓰면, ②와 ③의 경계를 카메라 시계로 기록할 수 있습니다.
2. 결과 출력 경로 — 디지털 출력과 네트워크 메시지의 차이
Point. 결과를 디지털 출력 신호로 내보내는지, 산업용 이더넷 메시지로 내보내는지에 따라 최악 지연의 모양이 달라집니다.

Reason. 디지털 출력은 비전 장치가 출력을 바꾸는 순간 배선으로 전달되므로, 비전 쪽 지연은 출력을 갱신하는 시점에서 닫힙니다. 반면 EtherNet/IP에서 주기형(Cyclic) 트리거로 설정된 I/O 연결은 RPI(Requested Packet Interval)라는 정해진 간격으로 데이터를 보냅니다(ODVA). 결과가 준비된 직후라도 다음 전송 시점까지 기다릴 수 있고, 최악의 경우 이 대기는 한 주기에 가깝습니다.
Example. RPI를 10 ms로 설정했다고 가정하면, 처리가 끝난 시점에 따라 결과 전송까지 0~약 10 ms의 대기가 더해질 수 있습니다. 여기에 PLC가 그 데이터를 로직에서 읽는 시점이 더해지는데, 이 부분은 PLC 쪽 설계로 별도 검토가 필요합니다. 참고로 PLC 통신 지연을 이야기할 때 IEC 61131-3이 자주 거론되지만, 이 규격은 PLC 프로그래밍 언어 규격이고 통신은 같은 시리즈의 Part 5(Communications)가 다룹니다.
Point. 비전 쪽 책임은 결과가 준비된 시각과 실제로 링크에 실린 시각을 구분해 기록하는 데까지입니다. 결과가 마감에 가깝다면 네트워크 주기를 줄이기 전에, 판정 비트는 디지털 출력으로, 상세 데이터는 네트워크로 나누는 이원화를 검토할 수 있습니다.
3. 결과에 트리거 번호를 붙인다 — 시간 매칭의 함정
Point. 결과 메시지에는 판정값과 함께 트리거 번호(또는 프레임 ID)와 노출 타임스탬프를 반드시 담습니다.
Reason. 처리 시간이 흔들리는 시스템에서 “다음에 도착한 결과 = 다음 부품의 결과”라는 가정은 한 번의 지연으로 무너집니다. 번호가 있으면 수신 측은 늦게 도착한 결과를 해당 부품에 정확히 매칭하거나, 마감을 넘긴 결과를 “판정 불가”로 명시적으로 분리할 수 있습니다. GenICam SFNC는 노출 종료 이벤트에 타임스탬프와 프레임 ID를 함께 싣는 기능을 정의하고, GigE Vision 2.0에 통합된 IEEE 1588(PTP)을 쓰면 여러 장치의 시계를 맞춰 타임스탬프를 같은 시간축에서 비교할 수 있습니다.
Example. 트리거 1001의 결과가 마감을 넘겨 트리거 1002 이후에 도착해도, 번호가 붙어 있으면 1001번 부품에만 적용되고 1002번 판정과 섞이지 않습니다. 번호가 없으면 수신 측은 이 결과를 1002번의 것으로 읽을 수 있고, 그 순간부터 한 칸씩 밀린 매칭이 이어집니다.
Point. 마감을 넘긴 결과를 어떻게 처리할지는 설비 쪽 결정이지만, 그 결정을 가능하게 하는 번호와 시각은 비전 쪽이 제공해야 합니다.
4. 핵심 골격 — 매칭표
| 구분 | 항목 | 사양 / 파라미터 | 근거·비고 |
|---|---|---|---|
| ① 최소 불량 사이즈 | 최소 결함 | 100 µm | 설계 가정. 24.4 µm/px에서 약 4.1 px — 지연 대책으로 해상도를 깎으면 이 여유부터 무너짐 |
| ② 광학 셋업 | 센서·영상 크기 | 4096 × 3000 px, 8비트(약 12.3 MB/장) | 전송 구간 ③의 크기를 정함 |
| ② 광학 셋업 | 인터페이스 | 1GigE, 실효 약 115 MB/s | 전송만 약 107 ms/장 |
| ② 광학 셋업 | WD(작동 거리) | 렌즈 계산기 글 예제 기준 물체 거리 약 202 mm, 실제 WD는 제조사 데이터로 확정 | 재설치 뒤에도 노출 조건이 유지되도록 도면 확정 |
| ③ 알고리즘 | 타임스탬프 기준 | 노출 종료 이벤트 타임스탬프 + 프레임 ID | GenICam SFNC, 구간 ②·③ 경계 |
| ③ 알고리즘 | 결과 메시지 필드 | 판정값, 트리거 번호, 노출 타임스탬프, 처리 완료 시각 | 수신 측 번호 매칭 |
| ③ 알고리즘 | 출력 경로 | 판정 비트는 디지털 출력, 상세 데이터는 네트워크(RPI 10 ms 가정) | 네트워크 최악 대기 약 1 RPI |
| ③ 알고리즘 | 감시 지표 | 구간별 p99 지연, 마감 초과 건수 | 평균값만으로 판단하지 않음 |
표 시사점. 이 예제 조건에서 가장 긴 구간은 추론이 아니라 전송(약 107 ms)입니다. 네트워크 출력의 주기 대기는 최대 한 RPI에 그치지만 전송 구간은 영상 한 장마다 반복되므로, 이 조건에서의 대책 우선순위는 전송 → 대기열 → 출력 경로 순이 됩니다. 해상도를 깎아 전송 시간을 줄이는 대책은 ①의 약 4.1 px 여유를 직접 소모하므로 마지막 선택지입니다.
5. 반대 접근이 유리한 조건
- 판정 비트 하나만 필요한 단순 검사: 처리 시간이 항상 한 트리거 주기 안에 끝난다는 조건에서는, 번호 매칭 없이 하드웨어 트리거와 디지털 출력만으로 구성하는 편이 단순하고 검증하기 쉽습니다.
- 여러 카메라를 동시에 쓰는 경우: 카메라마다 트리거 배선을 까는 대신, PTP로 시계를 맞추고 예약 액션 커맨드(Scheduled Action Command)로 이더넷을 통해 동시에 촬영하는 구성이 배선을 줄입니다.
- 처리 여유가 큰 오프라인 검사: 구간 분해의 우선순위가 낮아집니다.
트리거 입력의 안정성과 노출 조건은 대상물 표면의 반사 특성에도 영향을 받으므로, 실제 지연 분포는 샘플 테스트 전 확언 불가입니다.
현장 노트
비전 쪽 로그의 처리 시간은 늘 여유가 있었는데, 설비 쪽 기록에는 판정이 가끔 한 칸씩 밀려 적혀 있던 적이 있습니다. 결과 메시지에 번호가 없어서, 전송 대기 때문에 한 번 늦은 결과가 다음 부품의 판정으로 읽히고 있었습니다. 결과에 트리거 번호와 노출 시각을 붙이자 밀림은 사라졌고, 늦은 결과는 따로 집계되어 원인이 전송 대기라는 것까지 확인할 수 있었습니다. 그 뒤로는 결과 형식을 정할 때 판정값보다 번호 필드를 먼저 적습니다.
현장 체크포인트
- WD와 조명 공간이 확정되었는가 — 재설치 뒤에도 WD와 노출 조건(노출 시간·광량)이 바뀌지 않도록 도면으로 확정할 것.
- 여섯 구간 각각에 시작·끝 타임스탬프를 기록하는가.
- 결과 메시지에 트리거 번호(프레임 ID)와 노출 타임스탬프가 있는가.
- 네트워크 출력이라면 RPI(갱신 주기)를 알고, 최악 대기 한 주기를 예산에 넣었는가.
- 평균이 아니라 p99와 마감 초과 건수로 판단하는가.
- PLC 쪽 읽기 주기·로직 지연은 별도 검토가 필요하다는 경계를 문서로 합의했는가.
참고 자료
- ODVA — EtherNet/IP Quick Start for Vendors Handbook (PUB00213R0) — RPI 정의(p.25), Cyclic 트리거(p.11 Table 1)
- EMVA — GenICam SFNC v2.7 — Timestamp(3.66), Exposure End Event(15.5)
- LUCID — Multi Camera Synchronization using PTP and Scheduled Action Commands — PTP(IEEE 1588)의 GigE Vision 2.0 통합
- IEC 61131 (Wikipedia) — Part 3 Programming languages, Part 5 Communications
함께 읽으면 좋은 글 — 평균 지연이 마감 안에 있으면 안전한가 — 엣지 비전 검사의 지연 예산을 p99로 분해하기 · 카메라 인터페이스 대역폭이 분해능을 결정한다 — GigE Vision에서 CoaXPress 2.0으로 · 엣지 AI 추론 지연, NPU보다 카메라 인터페이스가 먼저 결정합니다 — GigE Vision 3.0 RDMA와 분리형 검사 아키텍처


