주요 콘텐츠

입력 이벤트를 전송하여 Stateflow 차트 활성화하기

Simulink® 모델이 차트에 입력 이벤트를 전송할 때만 활성화되는 Stateflow® 차트를 생성할 수 있습니다. 차트가 활성화되면 차트는 자신의 동작을 실행합니다.

Simulink 모델, Simulink 함수 또는 다른 Stateflow 차트가 입력 이벤트를 생성할 수 있습니다.

입력 이벤트 정의하기

입력 이벤트를 정의하려면 다음을 수행하십시오.

  1. Stateflow 차트에 이벤트를 추가합니다. 자세한 내용은 차트에 이벤트 정의하기 항목을 참조하십시오.

  2. 속성 인스펙터에서 이벤트의 범위 속성을 Simulink에서 입력으로 설정합니다. 이 설정은 Chart 블록에 입력 포트를 만듭니다.

  3. 에지 트리거 이벤트를 지정하려면 트리거Rising, Falling 또는 Either로 설정합니다. 함수 호출을 지정하려면 트리거Function call로 설정합니다.

제어 신호(에지 트리거라고도 함)를 사용하거나 Simulink 블록으로부터의 함수 호출을 사용할 수 있습니다. 에지 트리거 입력 이벤트와 함수 호출 입력 이벤트를 동일한 Stateflow 차트에서 함께 사용할 수 없습니다. 이러한 입력 이벤트를 함께 사용하면 컴파일타임 오류가 발생합니다.

에지 트리거를 사용하여 Stateflow 차트 활성화하기

에지 트리거 입력 이벤트는 제어 신호가 양수에서 음수로, 음수에서 양수로, 또는 음수와 양수 간에 바뀌면 Stateflow 차트를 활성화합니다. 에지 트리거 이벤트는 제어 신호가 변하는 시간 스텝 동안 실행됩니다. 트리거 속성의 설정은 차트가 활성화되는 시점을 결정합니다.

트리거 속성 설정

설명

상승

제어 신호가 0 또는 음수 값에서 양수 값으로 바뀌면 차트가 활성화됩니다.

하강

제어 신호가 양수 값에서 0 또는 음수 값으로 바뀌면 차트가 활성화됩니다.

양쪽 모두 가능

제어 신호가 어느 방향으로 변하든지 간에 0을 지나면 차트가 활성화됩니다.

에지 트리거 이벤트를 활성화하려면 제어 신호의 값이 0과 같거나 0을 지나야 합니다. 예를 들어, -1에서 1 또는 0에서 2로 변하는 신호는 유효한 상승 에지 트리거입니다. 1에서 2로 변하는 신호는 유효한 상승 에지 트리거가 아닙니다.

여러 상승 에지 트리거는 제어 신호에서 신호 값의 두 번의 상승 또는 두 번의 하강 사이에 시간 스텝 차이가 둘 이상인 경우에만 발생할 수 있습니다. 즉, 차트는 연속된 시간 스텝에서 -1에서 0, 그리고 다시 1로 변하는 신호를 두 개의 상승 에지 트리거가 아니라 단일 상승 에지 트리거로 처리합니다. 자세한 내용은 Triggered Subsystem 사용하기 (Simulink) 항목을 참조하십시오.

에지 트리거 입력 이벤트를 사용해야 하는 경우

모델에서 차트를 정기적 또는 주기적으로 실행해야 하는 경우 에지 트리거 입력 이벤트를 사용하여 차트를 활성화하십시오. 예를 들어, 이 모델에서 에지 트리거 입력 이벤트는 일정한 간격으로 Edge to Function 차트를 활성화합니다.

A model that uses edge-triggered events to activate charts. It contains two charts named Edge to Function and Loop Scheduler. A 1-second clock periodically activates the Edge to Function chart, which in turn uses an event named call to activate the Loop Scheduler chart. The Loop Scheduler chart inputs from and outputs to a subsystem named A1.

여러 개의 에지 트리거 입력 이벤트

에지 트리거 입력 이벤트를 사용하여 차트를 동일한 시간 스텝에서 여러 번 활성화할 수 있습니다. 모든 시간 스텝에서 Stateflow는 포트 번호를 기준으로 오름차순으로 입력 이벤트를 검사합니다. 차트는 각각의 유효한 이벤트마다 한 번 웨이크업 상태가 됩니다. 동일한 시간 스텝에서 여러 개의 에지가 발생하면 해당 시간 스텝에서 차트가 2회 이상 활성화됩니다.

함수 호출을 사용하여 Stateflow 차트 활성화하기

함수 호출 입력 이벤트는 시뮬레이션의 현재 시간 스텝 중에 Stateflow 차트를 실행시킵니다.

함수 호출 입력 이벤트를 사용해야 하는 경우

모델이 함수 호출과 동일한 시간 스텝에서 차트의 출력 데이터에 액세스해야 하는 경우 함수 호출 입력 이벤트를 사용하여 차트를 활성화하십시오. 예를 들어, 이 모델에서 함수 호출 입력 이벤트는 Looping Scheduler 차트를 활성화합니다.

A model that uses edge-triggered events to activate charts. It contains two charts named Edge to Function and Loop Scheduler. A 1-second clock periodically activates the Edge to Function chart, which in turn uses an event named call to activate the Loop Scheduler chart. The Loop Scheduler chart inputs from and outputs to a subsystem named A1.

여러 함수 호출 입력 이벤트

함수 호출 입력 이벤트의 경우 1개의 트리거 이벤트만 있습니다. 이벤트 호출자는 차트를 명시적으로 호출하고 실행합니다.

입력 이벤트에 지원되는 데이터형

하나의 트리거 포트에 대해 여러 입력 이벤트가 있는 경우 모든 신호는 데이터형이 동일해야 합니다. 서로 다른 데이터형을 가진 신호를 입력 이벤트로 사용하면 시뮬레이션 중에 오류가 발생합니다. 예를 들어, Mux 블록을 사용하여 double형 입력 신호 두 개를 결합하고, 이 신호를 사용하여 차트에서 입력 이벤트를 트리거할 수 있습니다.

Simulink model that uses two signals of type double as input events to a Stateflow chart.

Mux 블록을 사용하여 boolean형과 double형 같은 서로 다른 데이터형의 입력 신호 두 개를 결합할 수 없습니다.

Simulink model that uses a signal of type boolean and a signal of type double as input events to a Stateflow chart. This configuration produces a run-time error.

참고 항목

도움말 항목