본문 바로가기
LabVIEW

[LabVIEW] 호기심 테스트 #01 - While Loop Index 값은 무한 증가할까?

by 아이언벨 2022. 9. 14.
반응형

"무한 증가하지 않습니다.

While loop index 데이터 형인 I32의 최댓값인 2147483647 이후 증가하지 않습니다. "

 

안녕하세요 아이언 벨입니다.

예전에 이미 테스트 했던 것인데 포스팅하기 위해 다시 테스트해봤습니다.

 

당시에 와일 루프의 인덱스 값을 사용하여 프로그램을 했었는데 언제까지 사용할 수 있을지 궁금했습니다.

결과는 사용할 수 없어서 프로그램 코드를 수정했던 기억이 있네요.

 

테스트 결과

위 코드에서 타이밍 함수를 사용하지 않고 컴퓨터가 할 수 있는 최대 속도로 루프를 돌려봤습니다.

제 컴퓨터 성능으로는 약 330초 정도 경과 후 Index값이 멈춰 있는 것을 확인했습니다.

 

 

그럼! 타이밍 함수를 넣으면 어떻게 될까요?

가장 낮은 단위의 타이밍 함수를 넣는다고 생각하고 계산해 보겠습니다.

 

랩뷰에서 사용할 수 있는 최소 단위의 타이밍 1ms입니다.

즉 루프가 한번 돌 때 1ms의 속도로 돌게 됩니다.

 

그럼 2147483647ms 이후 Index는 멈추게 됩니다.

좀 더 체감할 수 계산해 보겠습니다.

 

2147483.647초 = 2147483647ms / 1000

596.5232352777778 시간 = 2147483.647초 / 3600 

24.85513480324074일 = 596.5232352777778 / 24 

 

1ms 타이밍 함수를 사용했을 때 약 24.8일 이후 Index값은 최댓값 상태에서 멈춰 있을 것입니다.

24일 전에 한 번은 리스타트하는 프로그램이라면 문제가 되지 않겠지만,

24일이 이후에도 계속 사용되는 내구시험 프로그램이라면 주의해서 사용해야 할 것입니다.

 

반응형

댓글