"무한 증가하지 않습니다.
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일이 이후에도 계속 사용되는 내구시험 프로그램이라면 주의해서 사용해야 할 것입니다.
'LabVIEW' 카테고리의 다른 글
[LabVIEW] Tip. 랩뷰 흰색배경 컨트롤 투명하게 png파일로 저장 (0) | 2023.01.31 |
---|---|
[LabVIEW] Program Language Rankings / 프로그램 언어 순위 - 랩뷰는 몇 위일까? (0) | 2022.12.19 |
[LabVIEW] UTF-8 변환하기 (2) | 2022.12.12 |
[LabVIEW] 랩뷰는 그래픽 프로그래밍 언어 (0) | 2022.09.13 |
댓글