Main Content

after

이벤트 브로드캐스트 또는 지정된 시간 후에 차트 실행

설명

예제

after(n,E)는 관련 상태가 활성화된 후 이벤트 E가 최소 n번 이상 발생한 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

예제

after(n,tick)은 관련 상태가 활성화된 후 차트가 최소 n번 이상 웨이크업 상태가 된 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

Simulink® 모델의 Stateflow® 차트에 입력 이벤트가 있는 경우 묵시적 이벤트 tick은 지원되지 않습니다.

예제

after(n,time_unit)은 관련 상태가 활성화된 후 최소 n 단위의 시간이 경과한 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

Simulink 모델의 차트에서는 time_unit을 초(sec), 밀리초(msec) 또는 마이크로초(usec)로 지정합니다. n을 표현식으로 지정하면 시뮬레이션 중에 표현식의 값이 변경됨에 따라 차트가 시간 지연을 조정합니다.

MATLAB®의 독립 실행형 차트에서는 0.001time_unit보다 크거나 같은 값을 가진 n을 초(sec)로 지정합니다. 연산자는 차트를 웨이크업 상태로 만들기 위한 묵시적 이벤트를 생성하는 MATLAB timer 객체를 만듭니다. MATLAB timer 객체의 정밀도는 1밀리초로 제한됩니다. 자세한 내용은 Events in Standalone Charts 항목을 참조하십시오.

  • timer 객체는 차트가 관련 상태와 그 하위 상태의 entry 동작 실행을 마칠 때 만들어집니다. n을 차트 실행 중에 값이 변경되는 표현식으로 지정하면 차트는 timer 객체의 시간 지연을 조정하지 않습니다.

  • 관련 상태가 활성화되면 차트 스텝의 끝에서 timer 객체가 실행되기 시작합니다. 이 스텝에는 차트에 있는 다른 병렬 상태의 실행이 포함될 수 있습니다.

  • timer 객체로부터 묵시적 이벤트를 수신할 때 다른 작업을 처리 중인 경우 차트는 이벤트를 대기열에 넣습니다. 차트는 현재 스텝이 완료되면 해당 이벤트를 처리합니다.

  • 차트가 묵시적 이벤트를 처리하기 전에 시간 논리 연산자와 연결된 상태가 비활성화되면 이벤트는 차트를 웨이크업 상태로 만들지 않습니다.

예제

모두 확장

상태가 활성화된 후 E의 세 번째 브로드캐스트부터 시작하여 차트가 이벤트 E의 브로드캐스트를 처리할 때 상태 메시지를 표시합니다.

on after(3,E): disp("ON");

Stateflow chart that uses the after operator in a state.

상태가 활성화된 후 E의 다섯 번째 브로드캐스트부터 시작하여 차트가 이벤트 E의 브로드캐스트를 처리할 때 관련 상태에서 천이됩니다.

after(5,E)

Stateflow chart that uses the after operator in a transition.

상태가 이벤트 E의 최소 5회 이상의 브로드캐스트 동안 활성화되어 있었던 경우 관련 상태에서 천이됩니다.

Simulink 모델의 차트에 다음을 입력합니다.

[after(5,E)]

Stateflow chart that uses the after operator in a transition.

MATLAB의 독립 실행형 차트에서는 시간 논리 연산자에 대한 조건부 표기법이 지원되지 않습니다.

상태가 활성화된 후 차트가 적어도 일곱 번째로 웨이크업 상태가 될 때 관련 상태에서 천이되지만, 변수 temp가 98.6보다 큰 경우에만 천이됩니다.

after(7,tick)[temp > 98.6]

Stateflow chart that uses the after operator in a transition.

최소 12.3초 동안 관련 상태가 활성화되어 있을 때 시작하여 차트가 웨이크업 상태가 될 때마다 temp 변수를 LOW로 설정합니다.

on after(12.3,sec): temp = LOW;

Stateflow chart that uses the after operator in a state.

  • 따옴표를 사용하여 키워드 'tick', 'sec', 'msec', 'usec'를 묶을 수 있습니다. 예를 들어, after(5,'tick')after(5,tick)과 같습니다.

  • Stateflow 차트는 관련 상태가 다시 활성화될 때마다 after 연산자가 사용하는 카운터를 재설정합니다.

  • 절대시간 시간 논리 연산자의 시간 설정은 Stateflow 차트의 유형에 따라 달라집니다.

    • Simulink 모델의 차트는 시뮬레이션 시간의 관점에서 절대시간 시간 논리를 정의합니다.

    • MATLAB의 독립 실행형 차트는 절대시간 시간 논리를 1밀리초의 정밀도로 제한되는 wall-clock 시간의 관점에서 정의합니다.

    시간 설정의 차이가 차트의 작동 방식에 영향을 미칠 수 있습니다. 예를 들어 이 차트가 상태 Aduring 동작을 실행한다고 가정하겠습니다.

    Stateflow chart with two states. The during action in state A calls a function f. The transition to state B uses the expression after(2,sec). The entry action in state B displays the elapsed time.

    • Simulink 모델에서 f에 대한 함수 호출은 단일 시간 스텝에서 실행되며 시뮬레이션 시간에 기여하지 않습니다. 상태 A에서 상태 B로의 천이는 차트가 처음 웨이크업 상태가 되고 상태 A가 최소 2초 동안 활성화되었을 때 발생합니다. 상태 B에서 entry 동작에 의해 표시되는 값은 Simulink 솔버에서 사용하는 스텝 크기에 의해서만 달라집니다.

    • 독립 실행형 차트에서 f에 대한 함수 호출은 완료되는 데 몇 초의 wall-clock 시간이 걸릴 수 있습니다. 호출이 2초 이상 지속될 경우 차트는 after 연산자와 관련된 묵시적 이벤트를 대기열에 넣습니다. 상태 A에서 상태 B로의 천이는 함수 f의 실행이 끝날 때 일어납니다. 상태 B에서 entry 동작에 의해 표시되는 값은 f에 대한 함수 호출이 완료되는 데 걸리는 시간에 따라 달라집니다.

버전 내역

R2014b에 개발됨