기다림 함수 vs 다음 ms배수까지 기다림 함수

    반응형

    안녕하세요. 지지비입니다.
    이번 포스팅에서는 랩뷰의 기다림(ms) 함수(Wait (ms))와 다음 ms배수까지 기다림 함수(Wait Until Next ms Multiple)에 대해서 알아보고 비교하는 방법을 알아보겠습니다.

    포스팅 밑에는 제가 기다림 함수를 사용하는 팁에 대해서 나와 있으니 끝까지 봐 주세요!

    1. 함수의 위치

    기다림(ms)함수와 다음 ms배수까지 기다림 함수는 블록 다이어그램의 함수 팔레트 - Timing 에 위치하고 있습니다.

    기다림 함수들의 위치

     

    또는 블록 다이어그램 퀵드롭(Ctrl+Spacebar)메뉴에서 Wait 이라고 치면 두 함수를 선택해서 넣을 수 있습니다.

    퀵드롭(Ctrl+Spacebar)에서 기다림 함수 넣기


    2. 기다림 vs 다음 ms배수까지 기다림

    - 기다림 함수

    기다림 함수는 이 함수가 실행하는 순간 입력한 ms(밀리세컨드)까지 아무것도 하지 않고 시간 지연을 발생시킵니다. 아래 블록다이어그램에서는 플랫 시퀀스 구조에 의해 측정 → 기록 → 기다림 순서대로 실행되고 총 실행 시간은 1000 ms가 됩니다.

     

     - 다음 ms배수까지 기다림 함수

    다음 ms배수까지 기다림 함수는 루프의 실행 시간을 입력한 숫자의 배수로 맞춥니다. 아래 두 예제를 비교해 보시기 바랍니다.

    첫 번째 예제에서는 측정과 기록하는데 700 ms가 걸리기 때문에, 입력한 300 ms보다 루프 실행 시간이 작아질 수 없습니다. 그래서 300 ms의 배수인 600 ms, 900 ms, 1200 ms... 중에서 700 ms보다 크고 가장 근접한 값인 900 ms로 루프 속도를 맞춥니다.

    첫 번째 예제

    두 번째 예제에서는 입력 시간이 800 ms이고 측정과 기록에 걸리는 시간이 700 ms이므로 루프 속도를 800 ms의 1배수인 800 ms에 맞춥니다.


    3. 기다림 함수 활용 예제

    기다림 함수는 측정과 기록, 통신을 하는 경우 중간중간 많이 사용되는 함수입니다. 그런데 랩뷰에서 제공하는 기다림 함수는 터미널이 시간 입력밖에 없어서 사용하려면 위쪽 예제와 같이 플랫 시퀀스 구조를 사용해야 합니다. 또는 시간 지연(Time Delay)함수를 사용하는 방법이 있는데, 이러면 블록 다이어그램이 엉망진창이 됩니다.

     

    Time Delay를 SubVI로 만들어 제가 사용하고 있는 Time Delay를 사용하면 아래와 같이 간결하게 사용할 수 있습니다.

     

     - Time Delay SubVI를 간결하게 만드는 방법

    아래와 같이 빈 VI에 에러 핸들러 컨트롤과 인디케이터를 연결하고, 기다림 함수를 배치합니다.

     

    아래처럼 터미널을 연결해 줍니다.

     

    VI 아이콘을 오른쪽 클릭하여 Edit Icon...을 클릭합니다.

     

    Layers - VI Icon 클릭 - Remove Layer 를 클릭해서 원래 있던 아이콘을 삭제합니다.

     

    연필 아이콘으로 박스를 만들어 줍니다. 굳이 화살표 모양이 아니어도 상관 없습니다.

     

    Icon Text - Line 1 text에 DELAY 라고 입력합니다.

     

    이렇게 만들어진 SubVI를 사용하시면 되겠습니다.

     

    또는 제가 아래에 올려둔 time delay_ms 파일을 사용하셔도 됩니다.

    time delay_ms.vi
    0.01MB

    댓글

    Designed by JB FACTORY