기다림(ms) 함수와 다음 ms 배수까지 기다림 함수의 차이점

업데이트 됨 Sep 13, 2019

해당 제품

Software

  • LabVIEW

문의사항

랩뷰에서 타이밍 컨트롤을 위해 기다림(ms)함수와 다음 ms 배수까지 기다림 함수가 있다는 것을 알고 있습니다. 그러나 보기에 이 두 함수는 똑같은 기능을 하는 것 같습니다. 기다림(ms) 함수와 다음 ms 배수까지 기다림 함수의 차이점은 무엇입니까?

해결책

두 함수는 루프의 실행속도를 제어하기 위해 지정된 시간 동안 코드 진행을 막는데 사용됩니다. 차이점은 다음과 같습니다. 기다림(ms) 함수의 경우 단순히 대기 시간(ms)에 지정된 값이 경과할 때까지 실행을 중단합니다. 다음 ms 배수까지 기다림 함수의 경우 시스템 밀리초(ms) 클럭의 현재값이 ms 배수에 지정된 값으로 나누어 떨어질 때까지 실행을 중단합니다. 

아래 그림은 두 VI의 입력 값을 100으로 설정하고 50 ms에서 VI가 실행될 때 루프 실행이 재개되는 시점를 보여줍니다. 수평축은 시스템 밀리초 클럭의 값입니다.

다음 코드 예제를 사용하여 실행의 차이를 관찰할 수도 있습니다.

기다림(ms) :
기다림(ms) 함수는 대기 시간 (ms)에 지정된 값이 경과할 때까지 코드 진행을 막습니다. 
  • 예제 1 : While 루프 안에 실행에 5 ms가 걸리는 코드가 들어있는 경우를 생각해보십시오. 또한 루프에는 대기 시간 (ms)에 10의 값이 연결된 기다림(ms) 함수도 포함되어 있습니다. 각 반복 과정에서 코드는 5 ms 후에 완료되고 다시 5 ms 후에 기다림(ms) 함수가 완료되기 때문에 실행에 총 10 ms가 걸립니다. 이 경우 기다림(ms) 함수는 코드와 동시에 실행됩니다.

위 예에서 루프 타이밍은 기다림(ms) 함수에 의해 결정됩니다.
  • 예제 2 : 이 예제는 앞의 예제와 거의 동일하지만 이번엔 코드 실행에 15 ms가 소요됩니다. 기다림(ms) 함수는 여전히 대기 시간 (ms)에 10이 연결되어 있습니다. 기다림(ms) 함수에 연결된 시간값은 코드를 실행하는 데 걸리는 시간보다 짧기 때문에 코드가 끝난 후에도 지연이 발생하지 않으며 15 ms가 지나면 루프는 다음 반복을 바로 실행합니다. 

위 예제에서 루프 타이밍은 기다림(ms) 함수에 의해 결정되지 않습니다. 루프 내 코드의 전체 실행 시간에 의해 결정됩니다.

다음 ms 배수까지 기다림:
다음 ms 배수까지 기다림 함수를 사용하여 서로 다른 루프를 시스템의 밀리초 클럭에 동기화할 수 있습니다. 이름에서 알 수 있듯이, 시스템 클럭 값이 ms 배수에 지정된 값의 배수가 될 때까지 진행을 막게 됩니다. 
  • 예제 3 : 루프 안에 실행에 100 ms가 걸리는 코드와 다음 ms 배수까지 기다림 함수가 병렬적으로 들어있습니다. 다음 ms 배수까지 기다림 함수의 ms 배수의 입력으로 200이 연결되어 있습니다. 루프는 시스템의 밀리초 클럭을 기준으로 200 ms마다 실행됩니다. 같은 VI 내 첫 번재 루프와 비슷한 두 번째 루프가 있습니다. 단, 두 번째 루프의 코드는 실행하는 데 150 ms가 걸립니다. 두 개의 루프는 시스템 클럭의 값이 200 ms의 배수가 될 때마다 다음 반복을 시작하도록 동기화됩니다. 이 방법을 사용하면 각 루프가 동시에 반복을 시작하게 할 수 있습니다. 

추가 정보

루프에서 다음 ms 배수까지 기다림 함수를 사용할 때 걸리는 첫 번째 지연은 ms 배수 입력에 지정된 시간값과 같지 않습니다. 이는 함수가 시스템 클럭의 현재 값이 ms 배수 입력 값으로 나누어 떨어질 때까지 대기하기 때문입니다. 따라서 첫 실행의 지연 시간은 시스템 밀리초 클럭의 절대 시간에 따라 달라집니다. 이후의 모든 반복 작업은 시스템 클럭과 동기화되어 ms 배수로 지정한 시간 동안 대기합니다.

기다림(ms) 함수와 마찬가지로 ms 배수로 지정된 시간보다 오래 걸리는 코드가 병렬로 실행되는 경우 다음 ms배수까지 기다림 함수는 루프 속도에 영향을 미치지 않습니다. 이 경우 코드 실행이 끝난 후 다음 루프가 바로 시작됩니다.

기다림(ms) 함수와 다음 ms 배수까지 기다림 함수 사이의 차이점에 대한 더 자세한 정보는 다음 LabVIEW 도움말 기사를 참조하십시오.

이 글이 도움이 되셨습니까?

도움 안됨