블로그
로그인

웨이스의 가상 공장 실험에서 PLC는 15 ms 정지 신호를 10번 중 7번 놓쳤습니다 — 입력을 계산 주기 시작 값으로만 받았을 때

제조 AI 운영체제 VEXPLOR를 만드는 웨이스가 두 번째 기술보고서 TR-2026-02를 공개했습니다. PLC와 가상 공장을 연결하는 방식 하나만 바꾸고 나머지를 모두 같게 둔 실험입니다. 816회를 실행했고, PLC 프로그램 3개의 합격·불합격 판정은 두 방식에서 하나도 바뀌지 않았습니다.

(주)웨이스 대표이사

목차
  1. 웨이스가 이번 실험에서 바꾼 것은 PLC와 가상 공장을 연결하는 방식 하나뿐입니다
  2. 합격·불합격 판정은 두 방식에서 똑같이 나왔습니다
  3. 모터가 켜지고 꺼진 시점은 경계 값 방식에서 전부 한 계산 주기씩 늦었습니다
  4. 짧은 정지 신호는 경계 값 방식에서 계산 주기의 시작을 덮을 때만 보였습니다
  5. 웨이스는 실행 전에 예측과 판정 기준을 담은 문서의 해시값을 공개 저장소에 먼저 올렸습니다
  6. 이 실험이 말하지 않는 것
  7. 웨이스는 이 결과를 가상 공장의 연결 조건으로 적어 둡니다
  8. 함께 읽어보세요

제조 AI 운영체제 VEXPLOR를 만드는 웨이스가 두 번째 기술보고서 TR-2026-02를 공개했습니다. PLC와 가상 공장을 연결하는 방식 하나만 바꾸고 나머지를 모두 같게 둔 실험입니다. 816회를 실행했고, PLC 프로그램 3개의 합격·불합격 판정은 두 방식에서 하나도 바뀌지 않았습니다. 대신 모터가 켜지고 꺼지는 시점이 모두 한 계산 주기씩 늦어졌고, 15 ms짜리 정지 신호는 10번 중 7번 PLC에 보이지 않았습니다.

웨이스는 AI의 명령이 실제 설비에 닿기 전에 같은 래더와 같은 스캔으로 움직이는 가상 공장에서 먼저 실행해 보려 합니다. 그러려면 그 가상 공장이 PLC에 어떤 신호를 어떤 시점에 보여 주는지부터 확인해야 합니다. 이 글은 그 첫 확인 결과입니다.

웨이스가 이번 실험에서 바꾼 것은 PLC와 가상 공장을 연결하는 방식 하나뿐입니다

웨이스의 PLC 시험 설비에서 PLC는 10 ms마다 스캔하고, 가상 공장(공장 모형)은 50 ms마다 설비 상태를 새로 계산합니다. 공장 모형이 한 번 계산하는 동안 PLC는 5번 스캔합니다. 시뮬레이션에서는 이 50 ms를 틱(tick)이라고 부르고, 이 글에서는 「계산 주기」라고 적습니다.

5번의 스캔에 어떤 입력값을 보여 줄지는 두 가지 방식으로 나눴습니다.

  • 경계 값 방식 — 계산 주기가 시작될 때의 입력값을 5번의 스캔에 모두 똑같이 넘깁니다.

  • 변화 복원 방식 — 공장 모형이 계산 주기 안의 입력 변화를 1 ms 단위로 기록하고, 스캔 시각마다 그 순간의 값을 되살려 넘깁니다. 웨이스의 시험 설비가 원래 사용하던 방식입니다.

대상 설비는 버튼·센서 입력 5개와 정방향·역방향 출력 2개로 된 왕복 컨베이어 1대입니다. PLC 프로그램은 웨이스가 작성한 3개를 사용했습니다. 바르게 짠 프로그램 1개, 그리고 일부러 틀리게 짠 프로그램 2개(역회전이 늦어 부품이 끝으로 떨어지는 것, 좌우 센서가 뒤바뀐 것)입니다.

웨이스의 PLC 시험 설비 화면 — 왼쪽은 VEXPLOR Vision 2의 3D 설비, 오른쪽은 같은 실행의 래더 모니터입니다(이번 실험에서 뺀 다른 셀의 화면이고, 화면 속 수치는 시뮬레이션 값입니다)
웨이스의 PLC 시험 설비 화면 — 왼쪽은 VEXPLOR Vision 2의 3D 설비, 오른쪽은 같은 실행의 래더 모니터입니다(이번 실험에서 뺀 다른 셀의 화면이고, 화면 속 수치는 시뮬레이션 값입니다)

▶ 영상 보기(유튜브): 웨이스 PLC 시험 설비 실행 기록 4장면 — 안전 커튼 정지와 8단계 복귀

합격·불합격 판정은 두 방식에서 똑같이 나왔습니다

바른 프로그램은 두 방식 모두 합격, 틀린 프로그램 2개는 두 방식 모두 불합격이었습니다. 바른 프로그램을 불합격으로 잘못 판정한 경우는 1개 중 0개, 틀린 프로그램을 놓친 경우는 2개 중 0개입니다.

프로그램

변화 복원 방식

경계 값 방식

바른 프로그램

합격

합격

늦게 역회전

불합격

불합격

센서 뒤바뀜

불합격

불합격

틀린 프로그램 2개에서 부품이 떨어진 사건은 두 방식 모두 1번씩 일어났고, 그 시점만 한 계산 주기 달랐습니다(실행기가 1부터 센 계산 주기 번호로 변화 복원 37, 경계 값 38).

모터가 켜지고 꺼진 시점은 경계 값 방식에서 전부 한 계산 주기씩 늦었습니다

판정은 같았지만 출력 시점은 달랐습니다. 경계 값 방식에서는 PLC가 시작 버튼을 한 계산 주기 늦게 보았고, 그 뒤의 모든 출력이 50 ms씩 밀렸습니다.

프로그램

출력 변화

1주기 늦은 것

바른 프로그램

12번

12번

늦게 역회전

3번

3번

센서 뒤바뀜

1번

1번

출력 순서와 값은 두 방식이 같았습니다. 예를 들어 바른 프로그램에서 정방향 구동이 처음 켜진 것은 0부터 센 계산 주기 번호로 변화 복원 방식 7, 경계 값 방식 8이었습니다.

이 「정확히 한 주기」는 이번 실험의 실제 입력 시점에서 관찰한 결과입니다. 프로그램이 반응하는 센서 변화가 계산 주기의 맨 앞 10 ms 안에 들어오면, 추정으로는 두 주기가 벌어질 수 있습니다. 이번 실행에서도 그런 센서 변화가 한 건 있었지만 출력 변화를 만들지 않았고, 그 경우를 따로 시험하지는 않았습니다.

짧은 정지 신호는 경계 값 방식에서 계산 주기의 시작을 덮을 때만 보였습니다

바른 프로그램에 5~45 ms 길이의 정지 신호를 넣고, 신호가 들어가는 시점을 5 ms 간격으로 10가지 바꿔 가며 PLC가 알아챈 횟수를 셌습니다. 정지 버튼과 비상정지 버튼의 결과는 같았습니다.

눌린 시간

경계 값 방식

변화 복원 방식

5 ms

1/10

5/10

15 ms

3/10

10/10

25 ms

5/10

10/10

35 ms

7/10

10/10

45 ms

9/10

10/10

15 ms 정지 신호를 경계 값 방식은 10번 중 7번 놓쳤고, 변화 복원 방식은 한 번도 놓치지 않았습니다. 컨베이어 양 끝 센서에는 「10번 연속 스캔에서 계속 켜져 있어야 인정」하는 필터가 프로그램에 들어 있어, 45 ms 이하 신호는 두 방식 모두 10번 중 0번 알아챘습니다.

경계 값 방식에서는 짧은 정지 신호가 계산 주기의 시작을 덮을 때만 PLC에 보이고, 변화 복원 방식에서는 신호가 걸친 스캔에서 보입니다
경계 값 방식에서는 짧은 정지 신호가 계산 주기의 시작을 덮을 때만 PLC에 보이고, 변화 복원 방식에서는 신호가 걸친 스캔에서 보입니다

이 결과는 새로운 효과를 찾았다기보다 산수에 가깝습니다. 경계 값 방식은 계산 주기의 시작 순간만 보므로 5 ms 간격 10가지 시점 가운데 신호가 그 순간을 덮는 경우만 셀 수 있고, 변화 복원 방식은 10 ms마다 보므로 15 ms 이상의 신호는 반드시 한 번은 걸립니다. 웨이스가 이 수치를 공개하는 까닭은 연결 방식을 밝히지 않은 가상 시운전 결과에서는 이 차이가 드러나지 않기 때문입니다.

웨이스는 실행 전에 예측과 판정 기준을 담은 문서의 해시값을 공개 저장소에 먼저 올렸습니다

웨이스는 이번 실험의 질문, 예측 4개, 지표 정의, 판정 기준을 사전 등록 문서로 먼저 고정했습니다. 그리고 공식 실행 전에 그 문서의 해시값(파일 내용을 대표하는 고유 문자열)을 공개 저장소에 커밋했습니다(2026-09-30 08:52, 커밋 b743b0f). 첫 공식 실행은 그로부터 약 78분 뒤에 시작됐습니다. 결과를 본 뒤 예측을 바꾸지 않았다는 것을 누구나 확인할 수 있게 하려는 절차입니다.

사전 등록 단계에서 실험 범위가 한 번 줄었습니다. 처음에는 누적 계수기를 사용하는 분류 라인(두 번째 셀)도 넣으려 했지만, 공장 모형 프로그램이 그 셀의 계산 주기를 10 ms로 고정해 두었고 정수 입력의 중간 변화를 기록하지 않는다는 것을 코드에서 확인했습니다. 그 셀의 계산 주기를 바꿀 방법이 없었고(다시 빌드하는 것은 이번 범위 밖), 바꾸더라도 두 방식의 차이가 생기지 않는 조건이었습니다. 그래서 공식 실행 전에 그 셀의 예측을 철회하고 왕복 컨베이어 1대로 범위를 줄였습니다. 이 변경은 해시를 공개한 사전 등록 문서의 변경 기록에 남아 있습니다.

예측 4개는 모두 맞았습니다. 다만 공개하면서 함께 밝혀 둔 한계가 있습니다.

  • 예측을 쓰기 전에 앞선 실행 기록 1건을 보았습니다. 판정 불변과 한 주기 지연의 예측은 그 기록과 프로그램 구조에서 나왔습니다.

  • 분석 코드는 실행 뒤에 작성했습니다. 지표 정의는 실행 전에 고정했지만, 그 정의를 계산한 코드는 사전 등록 해시에 들어 있지 않습니다.

  • 모든 조합을 두 번씩 실행했고, 408개 조합 모두 두 번의 기록 해시가 같았습니다. 같은 기계·같은 입력에서의 재현이지 통계적 반복 검증은 아닙니다.

  • 사람 검수자의 동료 심사는 없습니다. 검수는 서로의 산출물을 읽지 않은 AI 에이전트(작성과 같은 모델 계열)가 했습니다.

결과 파일, 재계산 스크립트, PLC 프로그램, 판정 기준은 보고서와 함께 공개했습니다. 첫 번째 보고서 TR-2026-01에서는 결과 파일을 공개하지 않아 독자가 숫자를 다시 계산할 수 없었고, 이번에는 그 점을 바꿨습니다.

이 글을 한 장으로 요약하면 이렇습니다 — 웨이스의 가상 공장 실험에서 판정은 같았고, 출력 시점과 짧은 정지 신호 검출이 연결 방식에 따라 달라졌습니다
이 글을 한 장으로 요약하면 이렇습니다 — 웨이스의 가상 공장 실험에서 판정은 같았고, 출력 시점과 짧은 정지 신호 검출이 연결 방식에 따라 달라졌습니다

이 실험이 말하지 않는 것

  • 실물 대조는 0회입니다. PLC도 공장도 시뮬레이션이고, 벨트 속도 같은 물리값은 가정값입니다. 실물 PLC·실물 컨베이어에서 같은 결과가 나온다고 말하지 않습니다.

  • 설비 1대, 프로그램 3개, 작업 조건 1가지입니다. 스캔과 계산 주기의 비율도 5:1 하나뿐입니다.

  • 정수 입력은 다루지 않았습니다. 누적 계수기를 사용하는 두 번째 셀은 공장 모형이 계산 주기 안의 정수 변화를 기록하지 않아 실행 전에 제외했습니다.

  • 짧은 신호는 PLC 입력 쪽에 인위적으로 넣은 것입니다. 실제 접점 떨림이나 사람의 버튼 조작을 흉내 낸 것이 아닙니다.

  • 시중 제품에 이 문제가 있다는 뜻이 아닙니다.

웨이스는 이 결과를 가상 공장의 연결 조건으로 적어 둡니다

웨이스의 시험 설비는 이미 변화 복원 방식을 사용합니다. 이번 실험은 그 선택이 무엇을 바꾸는지 수치로 확인한 것입니다. 판정만 보면 두 방식은 같았지만, 한 계산 주기의 지연과 계산 주기보다 짧은 정지 신호는 연결 방식에 따라 달라졌습니다. 그래서 이번 보고서의 그림에는 모두 「시뮬레이션 · 실물 대조 0」 표시를 달았고, 본문에는 스캔 주기·계산 주기·입력 전달 방식을 조건으로 밝혀 두었습니다.

다음 실험의 사전 등록 해시도 같은 저장소에 먼저 올려 두었습니다. 시험 설비가 실제로 움직이는 화면은 위의 영상에서 볼 수 있습니다.

WACE(웨이스)는 공장이 스스로 판단하고 멈추지 않게 하는 제조 AI 운영체제 VEXPLOR를 만드는 회사다.

함께 읽어보세요

이 글이 도움이 되셨다면 공유해 주세요

작성자

(주)웨이스 대표이사

제조 AI 운영체제 VEXPLOR를 만들고 있습니다. 스마트공장 구축 현장에서 데이터 표준화·온톨로지·디지털트윈·자율형공장을 다루며, 이 블로그에는 현장에서 실제로 부딪힌 문제와 그때 내린 판단을 씁니다.

contact@wace.me

새 글이 올라오면 메일로 알려드립니다

제조 현장에서 확인한 것들을 기록합니다. 새 글이 올라오면 보내 드리고, 언제든 해지할 수 있습니다.

우리 공장은 지금 어느 단계일까요?

제조 AI 성숙도 자가진단 — 회사 정보 없이 10문항이면 됩니다.

이 문제를 실제 현장에서 풀고 있습니다

웨이스가 어디까지 와 있는지 수치로 정리해 두었습니다.