(주)이프 IF 로고 · AI 비전검사 · 머신비전 시스템주식회사이프Agentic Intelligent Factory

PLC 핸드셰이크 설계에서 자주 하는 실수 5가지 : 비전 · 장비 신호 연동 체크리스트

(주)이프·2026. 10. 25.·읽는 데 11분
PLC 핸드셰이크 설계에서 자주 하는 실수 5가지 : 비전 · 장비 신호 연동 체크리스트

안녕하세요. (주)이프입니다. 비전검사기를 설비에 붙일 때 가장 많이 시간을 잡아먹는 곳은 의외로 검사 알고리즘이 아니라 PLC 핸드셰이크입니다. 검사는 잘 되는데 가끔 이전 제품의 판정이 읽히거나, 비전 PC 가 꺼졌는데도 라인이 OK 로 흘러가는 일은 대부분 비전 · PLC 신호 연동의 순서와 약속이 어긋나서 생깁니다. 오늘은 장비제어 현장에서 자주 보는 핸드셰이크 설계 실수 5가지와, 시운전 전에 꼭 확인할 체크리스트를 정리합니다.

한 줄 요약
판정을 먼저 쓰고 완료 플래그는 그다음, PLC 는 읽은 뒤 플래그를 되돌리고, 정해진 시간 안에 결과가 없으면 OK 가 아니라 NG 또는 알람입니다.

먼저 짚고 갈 것 : 핸드셰이크는 안전 회로가 아닙니다

장비제어 글에서는 항상 안전부터 말씀드립니다. 비전과 PLC 사이의 판정 신호는 "이 제품이 양품인가" 를 주고받는 생산 정보입니다. 비상정지, 도어 인터록, 작업자 보호 같은 안전 기능은 이 신호에 기대지 말고 설비의 안전 회로에서 따로 처리해야 합니다. 핸드셰이크가 멈추거나 늦어졌을 때 설비가 어떤 상태로 서는지도 기구 · 제어 담당자와 미리 정해 두어야 합니다.

그다음이 판정 신호의 약속입니다. 통신 규격서를 받으면 접속 방향, IP · 포트, 메시지 끝 문자, 메시지 표, 값 형식, 그리고 핸드셰이크 순서까지 여섯 가지를 먼저 표로 정리해 두면 이후 설정이 모두 그 표에서 나옵니다. 오늘 이야기는 그중 마지막 항목, 핸드셰이크 순서에 대한 것입니다.

기본 타이밍 한눈에 보기

워드 두 개(판정 워드, 완료 플래그)로 결과를 넘기는 가장 단순한 구성을 기준으로 설명합니다. 아래 어드레스는 이해를 돕기 위한 예시이며, 실제 값은 현장 PLC 담당자에게 할당받습니다.

비전 · PLC 판정 핸드셰이크 타이밍 : 판정 쓰기 → 완료 플래그 1 → PLC 가 읽고 0 으로 되돌림, 제한 시간 안에 오지 않으면 NG 또는 알람 (어드레스는 예시)
비전 · PLC 판정 핸드셰이크 타이밍 : 판정 쓰기 → 완료 플래그 1 → PLC 가 읽고 0 으로 되돌림, 제한 시간 안에 오지 않으면 NG 또는 알람 (어드레스는 예시)
순서누가무엇을신호 상태 (예시 어드레스)
①PLC제품이 검사 위치에 오면 검사 시작 신호를 주고 결과 대기 타이머 시작시작 신호 ON, 판정 워드 D2100 = 0
②비전검사 후 판정 워드에 OK=1 또는 NG=2 쓰기D2100 = 1 또는 2
③비전②의 쓰기가 끝난 다음에만 완료 플래그 1 쓰기D2101 = 1
④PLC완료 플래그를 보고 판정 워드를 읽은 뒤 완료 플래그를 0 으로 되돌림D2101 = 0
⑤PLC타이머가 끝났는데 완료 플래그가 0 그대로면 최종 NG 또는 알람D2101 = 0 유지 → 시간 초과

자주 하는 실수 5가지

실수 1. 완료 플래그를 판정보다 먼저(또는 동시에) 쓴다

비전 쪽 프로그램에서 판정 쓰기와 완료 플래그 쓰기를 나란히 두면 실행 순서가 보장되지 않습니다. PLC 가 완료 플래그 1 을 보는 순간 판정 워드가 아직 이전 값이면, 이전 제품의 판정을 지금 제품의 판정으로 읽는 경합이 생깁니다. 재현이 잘 안 되고 가끔만 나타나서 찾기가 가장 어려운 유형입니다.

원칙은 하나입니다. 완료 플래그 쓰기는 반드시 판정 쓰기가 끝난 다음에 실행되도록 연결합니다. Vision Agent 에서는 판정을 쓰는 Signal Write 노드의 Done 출력을 완료 플래그를 쓰는 Signal Write 노드의 Wait 입력에 연결해 순서를 고정합니다. PLC 가 플래그를 보는 시점에 판정값이 이미 확정돼 있어야 읽기 경합이 없습니다.

Vision Agent 시나리오 예 : 검사 → 판정 → 판정 쓰기(D2100) 다음에 완료 플래그 쓰기(D2101)가 이어지도록 연결 (어드레스는 샘플 값)
Vision Agent 시나리오 예 : 검사 → 판정 → 판정 쓰기(D2100) 다음에 완료 플래그 쓰기(D2101)가 이어지도록 연결 (어드레스는 샘플 값)

실수 2. 기존 장비가 쓰는 어드레스와 겹친다

"비어 보이는" 워드를 골라 쓰다가 다른 장비나 기존 프로그램이 같은 영역을 쓰고 있어서 값이 덮어써지는 경우가 있습니다. 판정 워드와 완료 플래그는 기존 장비가 쓰는 영역과 겹치지 않게 PLC 담당자에게 새로 할당받습니다. 할당받은 어드레스는 신호 이름과 함께 I/O 매핑 표에 등록해 두면(예: 판정 = D2100, 완료 = D2101) 시나리오와 PLC 래더가 같은 이름으로 대화할 수 있습니다.

실수 3. PLC 가 완료 플래그를 되돌리지 않는다

완료 플래그를 누가 0 으로 되돌리는지 정하지 않으면, 한 번 1 이 된 플래그가 계속 남습니다. 그러면 다음 제품에서 PLC 는 비전이 아직 검사 중인데도 "결과 있음" 으로 보고 판정 워드를 읽어 버립니다. 이 글의 구성에서는 PLC 가 판정을 읽은 뒤 완료 플래그를 0 으로 되돌리는 것이 약속입니다. 시운전에서 "PLC 가 항상 시간 초과" 가 나면 어드레스 오타와 함께 이 되돌림 동작부터 확인합니다.

실수 4. 시간 초과를 OK 로 넘긴다

가장 위험한 실수입니다. 정해진 시간 안에 완료 플래그가 오지 않았다는 것은 비전 PC 가 꺼져 있거나, 이미지나 시작 신호가 전달되지 않았다는 뜻입니다. 이때 라인을 멈추지 않으려고 OK 로 통과시키면 검사가 없는 것과 같습니다. 시간 초과는 반드시 최종 NG 또는 알람으로 처리합니다. Vision Agent 쪽도 같은 원칙이라, 수신 대기 노드가 시간을 넘기면 조용히 넘어가지 않고 노드 에러로 표면화합니다.

실수 5. 판정값에 0 을 쓴다

OK=0, NG=1 처럼 0 을 판정값으로 쓰면, 비전이 아무것도 쓰지 않은 상태(초기값 0)와 OK 가 구분되지 않습니다. 판정 워드는 OK=1, NG=2 로 두고 0 은 "아직 결과 없음" 으로 남겨 둡니다. 판정 노드의 출력이 OK=1 / NG=0 이라면 계산 노드에서 2 - 판정 으로 바꿔 쓰면 OK=1, NG=2 가 됩니다.

해야 할 것 · 하지 말 것

항목하지 말 것이렇게 하세요
쓰기 순서판정과 완료 플래그를 나란히 실행판정 쓰기 Done → 완료 플래그 쓰기 Wait 로 순서 고정
어드레스비어 보이는 워드를 임의로 사용PLC 담당자에게 새로 할당, I/O 매핑에 이름과 함께 등록
플래그 되돌림누가 0 으로 되돌리는지 미정PLC 가 판정을 읽은 뒤 0 으로 되돌림
시간 초과라인을 멈추지 않으려고 OK 처리최종 NG 또는 알람. 제한 시간은 실제 검사 시간에 여유를 두고 설정
판정 코드OK=0 / NG=1OK=1 / NG=2, 0 은 결과 없음
시작 신호레벨 신호를 계속 켜 둔 채 반복 검사트리거 조건(주소 · 기대값 · 엣지)을 규격서와 맞추기
문자열 데이터모델명 · 바코드가 깨져도 그대로 진행워드 수와 바이트 순서(상위 · 하위)를 규격서와 대조

PLC 래더 예시 : 결과 대기와 시간 초과

기존 검사 장비와 비전 판정을 함께 묶는 구성을 예로 든 래더 흐름입니다. 어드레스와 타이머 값은 모두 예시입니다.

 기존검사OK   (D2101 = 1)  (D2100 = 1)
 ---| |----------[=]-----------[=]--------------( 최종 OK )
 기존검사NG
 ---| |------------------------------+----------( 최종 NG )
 (D2100 = 2)                        |
 ---[=]-----------------------------+
 결과대기 T   (D2101 = 0)            |
 ---| |----------[=]----------------+

읽는 순서는 이렇습니다. 결과 대기 타이머(예: 3초)를 시작하고, 완료 플래그가 1 이 되면 판정 워드를 읽어 최종 판정을 낸 뒤 완료 플래그를 0 으로 되돌립니다. 마지막 줄이 핵심으로, 타이머가 끝났는데 완료 플래그가 0 이면 최종 NG 쪽으로 빠집니다.

TCP 통신으로 주고받을 때도 원리는 같습니다

PLC 워드 대신 이더넷 메시지로 시작 명령과 결과를 주고받는 설비도 많습니다. 이때도 같은 약속이 적용됩니다.

순서메시지 흐름 (예시)설계 포인트
①설비 → 비전 : STR;모델명시작 명령에 모델명을 함께 실어 레시피를 맞춤
②비전 → 설비 : ACK 또는 NAK모델 미등록 · 세팅 없음이면 가짜 결과 대신 NAK 와 알람
③비전 → 설비 : RES;결과서버 모드면 같은 연결로 회신하므로 설비가 연결을 유지해야 함
④설비 → 비전 : ACK상대가 결과를 받았는지 확인하는 마지막 단계

검사 도중에 같은 시작 명령이 또 들어오면 중복 시작으로 보고 경고 로그를 남긴 뒤 버리는 것이 안전합니다. 응답이 정해진 시간 안에 오지 않을 때는 PLC 와 마찬가지로 에러로 표면화합니다.

AI 에게 핸드셰이크 규격 검토를 맡기는 프롬프트

규격서를 받으면 AI 에게 먼저 빈틈을 찾게 하면 회의 시간이 줄어듭니다. 아래처럼 위의 다섯 가지 실수를 기준으로 검토를 시키면 됩니다. 결과는 반드시 PLC 담당자와 함께 확인합니다.

아래는 비전검사기와 PLC 사이의 신호 규격입니다.
다음 기준으로 빠진 약속이나 위험한 부분을 표로 정리해 주세요.
1. 판정값을 쓴 뒤에 완료 신호를 쓰도록 순서가 정해져 있는가
2. 사용 어드레스가 기존 장비 영역과 겹칠 가능성이 있는가
3. 완료 신호를 누가, 언제 0 으로 되돌리는가
4. 시간 초과 시 처리(NG 또는 알람)가 정의돼 있는가, 제한 시간은 몇 초인가
5. 판정 코드에 0 이 쓰이는가 (0 은 결과 없음으로 남겨야 함)
6. 시작 신호가 엣지인지 레벨인지, 검사 중 중복 시작은 어떻게 처리하는가
모르는 항목은 추측하지 말고 "규격서에 없음" 으로 표시해 주세요.

[규격서 내용 붙여넣기]

시운전 전 체크리스트

확인항목확인 방법
☐어드레스 할당판정 · 완료 어드레스를 PLC 담당자에게 새로 받았고, 기존 영역과 겹치지 않음을 서로 확인
☐쓰기 순서판정 쓰기 → 완료 플래그 쓰기 순서가 연결로 고정돼 있음
☐플래그 되돌림PLC 가 판정을 읽은 뒤 완료 플래그를 0 으로 되돌리는 것을 모니터로 확인
☐시간 초과비전 프로그램을 끈 상태에서 제품을 흘려 최종 NG 또는 알람이 나는지 확인
☐판정 코드OK=1, NG=2 가 각각 들어가고, 0 은 결과 없음으로 처리되는지 확인
☐연속 사이클제품을 연속으로 흘려 이전 제품의 판정이 읽히지 않는지 확인
☐PLC 없이 사전 시험PLC 설정을 시뮬레이션으로 두고 판정 · 완료 쓰기 값을 화면에서 먼저 확인한 뒤 현장 PLC 로 전환
☐통신 끊김랜선을 뽑았다 꽂아 연결 상태 표시와 자동 재연결, 그동안의 판정 처리를 확인

Vision Agent 는 PLC 연결이 끊기면 상태를 즉시 끊김으로 바꾸고 1초부터 최대 10초 간격으로 자동 재연결합니다. 다만 끊긴 동안 들어온 제품을 어떻게 처리할지는 설비 쪽 약속이므로, 위 시간 초과 규칙과 함께 정해 두어야 합니다.

마치며

핸드셰이크 문제는 검사 알고리즘보다 눈에 덜 띄지만, 한 번 어긋나면 불량이 양품으로 흘러가는 결과로 이어집니다. 판정 먼저 · 완료 나중, 겹치지 않는 어드레스, PLC 의 되돌림, 시간 초과는 NG, 0 은 결과 없음. 이 다섯 가지만 규격서에 적어 두어도 시운전 기간이 크게 줄어듭니다. 설비에 비전을 붙이실 계획이라면 규격서 초안 단계부터 함께 검토해 드립니다.

홈페이지 : www.intelligentfactory.co.kr/business/platform

☎ 070-7543-2022 · ✉ hssong@intelligentfactory.co.kr · 🌐 www.intelligentfactory.co.kr

아래 QR 코드를 카카오톡으로 스캔하시면 바로 상담이 연결됩니다.

#AI프롬프트#장비제어#PC제어#PLC#시퀀스제어#PLC핸드셰이크#비전PLC연동#완료플래그

이 글은 (주)이프 네이버 블로그에도 올라가 있습니다.

네이버 블로그에서 보기 →
Let's Build Together

비전 검사 시스템 도입,
이프와 함께 시작하세요.

제품·공정·물량에 맞춰 최적의 검사기 구성을 제안해 드립니다. 요구사항만 알려주시면 빠르게 회신드리겠습니다.