Trigger ACK가 왔는데 왜 이전 판정을 읽었을까? Cognex 비전–PLC 핸드셰이크
MACHCTRL · 비전 검사 실무 | 제조사 기준: Cognex In-Sight 5.1.0 이상, 지원 PROFINET I/O 구성과 해당 GSD. 교육용 합성 타이밍이며 현장에 적용한 PLC 프로그램이나 실측 실패 사례가 아닙니다.
트리거를 보냈고 카메라에서도 ACK가 왔습니다. 그런데 PLC에 들어온 NG 값이 이번 제품의 값인지 확신할 수 없을 때가 있습니다. 이런 상황에서는 NG 판정 조건보다 먼저 어느 신호가 어느 단계의 완료를 뜻하는지 확인해야 합니다.
ACK는 결과 완료가 아닙니다
같은 카메라에서 오더라도 신호가 가리키는 사건은 다릅니다.
| 신호 | 의미 | PLC에서 성급하게 판단하면 안 되는 것 |
|---|---|---|
| Trigger Ready | 새 촬영 트리거 수신 가능 | 판정 결과가 준비됐다는 뜻 아님 |
| Trigger Ack | 트리거 신호의 수신 확인 | 검사 완료·OK/NG 확정이 아님 |
| Exposure Complete | 이미지 노출 완료 | 검사 결과 전송이 끝난 것이 아님 |
| Inspection Completed | 검사 완료 때마다 상태 토글 | 1 상태 유지 자체가 새 결과를 뜻하지 않음 |
| Results Valid | 검사 결과 데이터 읽기 가능 | 반드시 이번 제품 ID와 짝지어 확인 필요 |
제조사 문서는 오프라인에서 Trigger가 들어간 경우 Trigger Ack와 Missed Acq가 함께 켜질 수 있다고 설명합니다. 따라서 ACK 하나만으로 성공 처리하는 로직은 위험합니다.
PLC에서 확인할 9단계: 결과 버퍼 사용 가정
아래 Acquisition ID=108과 Inspection ID=108은 순서 설명을 위해 만든 숫자입니다. 실제 주소·모듈 오프셋·신호 동작은 모델·펌웨어·GSD에 따라 확인해야 합니다.
| 단계 | 모의 신호 | 확인할 동작 |
|---|---|---|
| 0 | Online=1, Trigger Enable=1, Trigger Ready=1 | 새 촬영을 받을 조건인지 확인 |
| 1 | Trigger ↑, Trigger Ack=1, Acquisition ID=108 | 트리거 수신을 확인하고 ID 보관, Missed Acq도 검사 |
| 2 | Trigger=0, Trigger Ack=0 | 트리거를 내리고 ACK 복귀 확인 |
| 3 | Exposure Complete=1 | 노출 완료와 판정 완료를 구분 |
| 4 | Inspection Completed 토글, Results Valid=1 | 새 결과인지 확인한 뒤 읽기 준비 |
| 5 | Inspection ID=108, 검사 코드=NG | 앞서 보관한 ID와 결과 ID가 일치할 때만 데이터 래치 |
| 6 | Inspection Results Ack=1, Results Valid→0 | PLC가 결과를 복사한 뒤 수신 확인 전송 |
| 7 | Inspection Results Ack=0 | ACK 해제 후 다음 버퍼 결과 대기 |
| 8 | Overrun=0, ID 연속성 확인 | 결과 누락·중복 없이 다음 사이클 진행 가능한지 판단 |
이는 개념을 이해하기 위한 모의 순서입니다. 장비의 실제 스캔 시간, 제품 위치 추적, Reject/Auto Hold와 안전 인터록에 곧바로 복사할 수 있는 프로그램은 아닙니다.
결과가 꼬일 때 보는 다섯 가지 조합
| 증상 | 우선 확인할 것 |
|---|---|
| Trigger Ack=1 / Results Valid=0 | 아직 판정 데이터를 읽을 시점이 아닐 수 있음 |
| Trigger Ack=1 / Missed Acq=1 | 오프라인·취득 실패 원인 확인 |
| Exposure Complete=1 / Results Valid=0 | 촬영은 끝났지만 결과는 아직 준비되지 않음 |
| Results Valid=1 / ID 불일치 | 이전 제품 결과를 현재 제품에 적용하지 않도록 보류 |
| Results Buffer Overrun=1 | 검사 결과 누락 가능성·ID 연속성·이벤트 기록 확인 |
버퍼를 켜면 해결되는가?
결과 버퍼를 끄면 새 검사 결과가 이전에 읽지 못한 결과를 덮을 수 있습니다. Cognex의 해당 In-Sight PROFINET 문서에서는 버퍼 사용 시 최대 8개 결과가 대기하고, ACK가 따라오지 않아 가득 차면 이후 신규 결과가 유실될 수 있다고 설명합니다. 버퍼만 켠다고 끝나는 것이 아니라 결과를 복사한 뒤 ACK를 올렸다 내리는 순서와 ID 대응까지 있어야 합니다.
모든 PROFINET 카메라에 같은 비트 구조를 적용해서는 안 됩니다. 이 내용은 Cognex In-Sight 5.1.0 이상 PROFINET IO/GSD에 관한 제조사 문서를 설명한 것이며 EtherNet/IP, SLMP, 타사 비전의 주소표와 혼용하지 않습니다.
현장 적용 전에
장비의 모델·펌웨어·GSD와 I/O 오프셋을 확인하고, 안전이 확보된 시뮬레이터/격리 설비에서 ACK, Results Valid, Inspection ID, Overrun을 타임라인으로 로깅하세요. 제품 추적과 배출 인터록은 별도 안전 검토가 필요합니다. 이 글을 위해 실제 PLC·카메라를 조작하지 않았습니다.
제조사 원문: In-Sight PROFINET IO module reference, FW 5.1.0+ · Typical acquisition sequence