#프로덕트 #트렌드
엔지니어가 가상 시운전 결과를 믿기 전에 확인할 5가지

가상 시운전에서 PLC 프로그램이 합격했다고 해서 실제 라인에서도 같은 시점에 같은 동작을 한다는 보장은 없습니다. 합격·불합격 판정은 같아도 그 안에서 모터가 켜지는 시점이나 짧은 정지 신호의 처리가 달라질 수 있기 때문입니다. 이 차이는 PLC와 컴퓨터 속 공장을 연결한 방식에서 생깁니다.

제조 AI 운영체제 VEXPLOR를 만드는 웨이스가 PLC 시험 설비에서 연결 방식 하나만 바꿔 816회를 실행해 보니, PLC 프로그램 3개의 합격·불합격 판정은 그대로였지만 출력 시점과 짧은 신호 검출은 달라졌습니다. 이 글은 그 실험 수치를 근거로, 엔지니어가 가상 시운전 결과를 믿기 전에 확인할 5가지를 정리합니다.

가상 시운전 결과표에는 합격이 찍혀 있어도, 그 뒤에서 PLC와 공장 모형이 주고받는 신호의 시점은 연결 방식에 따라 달라집니다

가상 시운전은 PLC 프로그램을 실제 설비 없이 컴퓨터 속 공장에 연결해 시험하는 일입니다

가상 시운전은 PLC 프로그램을 실제 설비에 올리기 전에, 설비처럼 움직이는 공장 모형(시뮬레이션 모델)에 연결해 미리 시험하는 일입니다. PLC는 공장 모형이 보내 주는 버튼·센서 값을 읽고 판단해 모터·밸브로 보낼 출력을 냅니다. 공장 모형은 그 출력을 받아 컨베이어를 움직이고, 달라진 센서 값을 다시 PLC에 보냅니다.

그런데 두 쪽의 시계가 다릅니다. PLC는 수 ms마다 한 바퀴씩 스캔하는데, 공장 모형은 그보다 긴 간격으로 상태를 새로 계산하는 경우가 있습니다. 이 간격을 시뮬레이션에서는 틱(tick)이라고 부릅니다. 이 글에서는 알기 쉽게 「계산 주기」라고 적겠습니다.

엔지니어는 먼저 PLC 스캔 주기와 공장 모형 계산 주기가 각각 몇 ms인지 확인합니다

먼저 볼 것은 PLC 스캔 주기와 공장 모형 계산 주기, 이 숫자 두 개입니다. 두 주기가 같은 경우는 이 실험에서 다루지 않았습니다. 계산 주기가 스캔 주기보다 길면, 공장 모형이 한 번 계산하는 동안 PLC는 여러 번 스캔합니다.

웨이스의 실험 조건은 이랬습니다.

  • PLC 스캔 주기 — 10 ms
  • 공장 모형 계산 주기 — 50 ms
  • 계산 주기 한 번 동안 PLC 스캔 횟수 — 5번
  • 대상 설비 — 버튼·센서 입력 5개와 정방향·역방향 출력 2개인 왕복 컨베이어 1대

이 비율이 5:1이면, 공장 모형이 한 번 값을 보내는 동안 PLC는 5번 판단합니다. 그 5번에 어떤 입력값을 보여 줄지가 다음 항목입니다.

엔지니어는 계산 주기 중간에 바뀐 입력을 PLC에 어떻게 넘기는지 확인합니다

공장 모형이 50 ms를 한 번에 계산하는데, 그 사이 22 ms 시점에 센서가 켜졌다고 해 보겠습니다. 연결 프로그램이 이 변화를 PLC에 넘기는 방법은 크게 두 가지입니다.

  • 경계 값 방식 — 계산 주기가 시작될 때의 입력값을 5번의 스캔에 모두 똑같이 넘깁니다. 22 ms에 켜진 센서는 다음 계산 주기가 시작될 때 처음 보입니다.
  • 변화 복원 방식 — 공장 모형이 계산 주기 안의 입력 변화를 1 ms 단위로 기록해 두고, 연결 프로그램이 스캔 시각(10·20·30·40·50 ms)마다 그 순간의 값을 되살려 넘깁니다. 22 ms에 켜진 센서는 30 ms 스캔에서 보입니다.
경계 값 방식은 계산 주기 시작 때의 값만 5번의 스캔에 넘기고, 변화 복원 방식은 스캔마다 그 순간의 값을 되살려 넘깁니다

결과표에는 어느 방식인지가 나오지 않을 수 있습니다. 시뮬레이션 도구나 연결 프로그램의 설정, 또는 문서의 연결 방식 절에서 확인해야 합니다. 변화 복원 방식을 사용하려면 공장 모형이 계산 주기 안의 변화 기록을 내보낼 수 있어야 합니다. 웨이스의 실험에서도 켜짐·꺼짐 값은 변화 기록이 나왔지만, 누적 계수기 같은 정수 입력은 계산 주기 끝의 값 하나만 나오므로 두 방식의 차이가 생길 수 없어 실험 전에 제외했습니다.

엔지니어는 출력이 공장 모형에 반영되는 시점이 한 계산 주기 늦어지지 않았는지 확인합니다

웨이스가 PLC 프로그램 3개(바르게 짠 것 1개, 일부러 틀리게 짠 것 2개)를 두 방식으로 각각 실행했을 때, 합격·불합격 판정은 하나도 바뀌지 않았습니다. 바른 프로그램은 두 방식 모두 합격이었고, 틀린 프로그램 2개는 두 방식 모두 불합격이었습니다.

달라진 것은 시점이었습니다. 경계 값 방식에서는 시작 버튼을 한 계산 주기 늦게 보았고, 그 뒤 모터가 켜지고 꺼지는 모든 시점이 정확히 한 계산 주기(50 ms)씩 밀렸습니다.

프로그램출력 변화 횟수늦어진 횟수
바른 프로그램12번12번 모두 1주기
늦게 역회전3번3번 모두 1주기
센서 뒤바뀜1번1번 1주기

판정만 보면 두 방식의 결과는 같습니다. 하지만 사이클 타임이나 설비 간 연동 시점을 가상 시운전으로 확인하려 한다면, 50 ms 밀린 출력은 판정표에 드러나지 않는 차이로 남습니다. 결과표에 합격만 있다면 출력 변화 시점 기록도 함께 요청하는 편이 좋습니다.

이 「정확히 한 주기」는 이 실험의 조건에서 관찰한 것입니다. 10번 연속 스캔 필터를 거치는 센서 변화가 계산 주기의 맨 앞 10 ms 안에 들어오고 프로그램이 그 변화에 반응하면, 추정으로는 두 주기가 벌어질 수 있습니다. 이 경우는 시험하지 않았습니다.

엔지니어는 짧은 정지·비상정지 신호를 PLC가 실제로 보는지 확인합니다

정지 버튼이 아주 짧게 눌렸다 떨어지는 경우를 보겠습니다. 웨이스는 바른 프로그램에 5~45 ms 길이의 정지 신호를 넣고, 신호가 들어가는 시점을 5 ms 간격으로 10가지 바꿔 가며 PLC가 몇 번 알아채는지 셌습니다. 비상정지 버튼도 같은 방법으로 셌고, 결과는 정지 버튼과 똑같았습니다.

눌린 시간경계 값 방식변화 복원 방식
5 ms10번 중 1번10번 중 5번
15 ms10번 중 3번10번 중 10번
25 ms10번 중 5번10번 중 10번
35 ms10번 중 7번10번 중 10번
45 ms10번 중 9번10번 중 10번

경계 값 방식은 신호가 마침 계산 주기의 시작 시점을 덮을 때만 알아챕니다. 그래서 신호가 길수록 알아채는 비율이 올라가지만, 50 ms보다 짧은 신호는 늘 놓칠 수 있습니다. 변화 복원 방식은 15 ms 이상 눌린 신호를 모두 알아챘습니다. 5 ms 신호는 두 방식 모두 자주 놓쳤습니다. PLC가 10 ms마다 한 번 보므로, 그 사이에 시작해 끝난 신호는 어느 방식으로도 보이지 않습니다.

컨베이어 양 끝 센서는 결과가 달랐습니다. 이 센서는 「10번 연속 스캔에서 켜져 있어야 인정」하도록 프로그램에 필터가 들어 있어, 45 ms 이하의 짧은 신호는 두 방식 모두 10번 중 0번 알아챘습니다. 필터가 설계대로 동작한 결과입니다. 그러니 이 항목은 필터가 없는 입력, 특히 정지·비상정지처럼 한 번에 반응해야 하는 입력을 골라 확인하면 됩니다.

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

여기서 짧은 신호는 연결 프로그램에서 PLC 입력 쪽에 인위적으로 넣은 것입니다. 실제 스위치 접점이 붙을 때 생기는 떨림이나 사람이 버튼을 누르는 방식을 흉내 낸 것은 아닙니다. 또 실제 설비의 비상정지는 대개 PLC 프로그램과 별도로 안전 회로에서도 처리하므로, 이 항목은 PLC 프로그램 쪽 정지 처리를 가상 시운전으로 시험할 때에 해당합니다.

엔지니어는 같은 조건으로 두 번 실행해 결과가 똑같이 나오는지 확인합니다

마지막은 재현입니다. 같은 프로그램, 같은 공장 모형, 같은 입력으로 두 번 실행했을 때 결과가 조금이라도 다르면, 앞의 네 항목에서 본 차이가 연결 방식 때문인지 실행마다 생기는 흔들림 때문인지 가릴 수 없습니다.

웨이스는 모든 조합을 두 번씩 실행하고, 실행마다 PLC와 공장 모형이 주고받은 기록 전체의 해시값(파일 내용을 대표하는 고유 문자열)을 비교했습니다. 408개 조합 모두 두 번의 기록 해시가 같았습니다. 이렇게 확인해 두어야 한 계산 주기 차이나 10번 중 3번 같은 숫자를 연결 방식의 결과로 읽을 수 있습니다.

5가지를 한 장의 점검표로 정리하면 이렇습니다

  • 주기 비율 — PLC 스캔 주기와 공장 모형 계산 주기를 각각 적고, 계산 주기가 더 길면 비율을 적습니다.
  • 입력 전달 방식 — 계산 주기 중간의 입력 변화를 스캔마다 되살려 넘기는지, 시작 값만 넘기는지 확인합니다. 정수 입력은 변화 기록이 나오는지 따로 봅니다.
  • 출력 시점 — 판정 결과와 함께 출력 변화 시점 기록을 받아, 기대보다 한 계산 주기 이상 늦은 곳이 없는지 봅니다.
  • 짧은 신호 — 필터가 없는 정지·비상정지 입력에 계산 주기보다 짧은 신호를 넣어, 몇 번 중 몇 번 알아채는지 셉니다.
  • 재현 — 같은 조건으로 두 번 실행해 기록이 같은지 확인합니다. 다르면 앞의 비교를 읽기 전에 그 원인부터 찾습니다.
이 글을 한 장으로 요약하면 이렇습니다 — 가상 시운전 결과를 믿기 전에 확인할 5가지

이 수치가 말하지 않는 것

위 수치는 모두 시뮬레이션 PLC와 공장 모형 사이에서 나온 것입니다. 벨트 속도 같은 물리값은 가정값이고, 실물 PLC·실물 컨베이어와 대조한 결과는 없습니다. 설비 1대, PLC 프로그램 3개, 작업 조건 1가지만 보았고, 계산 주기와 스캔 주기의 비율도 5:1 하나뿐입니다. 시중의 시뮬레이션·가상 시운전 제품에 이런 차이가 있다는 뜻도 아닙니다.

그래도 점검표 5가지는 도구와 상관없이 사용할 수 있습니다. 판정이 같다고 해서 시점과 짧은 신호까지 같다고 말할 수는 없습니다. 그 말은 연결 방식을 확인한 뒤에야 할 수 있습니다.

실험의 사전 등록, 결과 파일, 재계산 스크립트는 기술보고서 TR-2026-02와 함께 공개돼 있습니다(DOI 10.5281/zenodo.23055399).

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

(이 글은 웨이스 기술블로그에 먼저 실린 글입니다. 원문: https://blog.vexplor.com/post/virtual-commissioning-five-checks?utm_source=eo&utm_medium=social&utm_campaign=2026-09-30)

링크 복사

댓글 0
댓글이 없습니다.
추천 아티클
0