주요 콘텐츠

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

Simulink® 모델에 Stateflow® 차트가 포함되지만, 이러한 차트가 모델 실행이 지속되는 동안 반드시 활성 상태가 되는 것은 아닙니다. 차트가 활성 상태가 되는 한 가지 방법은 Simulink에서 입력 이벤트를 수신하는 것입니다. Stateflow 차트가 활성화되면 차트는 자신의 동작을 실행합니다.

입력 이벤트는 Stateflow 차트의 외부에서 발생합니다. Simulink 모델, Simulink 함수 또는 다른 Stateflow 차트가 입력 이벤트를 생성할 수 있습니다.

입력 이벤트 정의하기

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

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

  2. 속성 인스펙터에서 이벤트의 범위 속성을 Simulink에서 입력으로 설정합니다. Simulink 모델의 Stateflow 블록 상단에 한 개의 트리거 포트가 표시됩니다.

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

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

에지 트리거 입력 이벤트는 시뮬레이션의 현재 시간 스텝 중에 Stateflow 차트를 실행시킵니다. 이 유형의 입력 이벤트를 사용하는 경우 제어 신호에서의 변화가 트리거로 작용합니다.

함수 호출 입력 이벤트를 지정하려면 트리거 속성을 함수 호출로 설정하십시오.

에지 트리거 유형

설명

상승

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

하강

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

양쪽 모두 가능

상승 에지 트리거 또는 하강 에지 트리거 중 하나입니다. 제어 신호가 어느 방향으로 변하든지 간에 0을 지나면 차트가 활성화됩니다.

모든 경우에 제어 신호의 값이 0과 같거나 0을 지나야 유효한 에지 트리거가 됩니다. 예를 들어, -1에서 1로 변하는 신호는 유효한 상승 에지 트리거입니다. 1에서 2로 변하는 신호는 유효한 상승 에지 트리거가 아닙니다. 0에서 2로 변하는 신호는 유효한 상승 에지 트리거입니다.

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

모델에서 차트를 정기적 또는 주기적으로 실행해야 하는 경우 에지 트리거 입력 이벤트를 사용하여 차트를 활성화하십시오. 예를 들어, 이 모델에서, 에지 트리거 입력 이벤트는 일정한 간격으로 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개의 트리거 이벤트만 있습니다. 이벤트 호출자는 차트를 명시적으로 호출하고 실행합니다.

입력 이벤트와 제어 신호 연결

차트에 하나 이상의 입력 이벤트를 정의하면 차트 블록의 상단에 1개의 트리거 포트가 표시됩니다. 여러 외부 Simulink 블록은 트리거 포트에 연결된 신호 벡터를 통해 입력 이벤트를 트리거할 수 있습니다. 입력 이벤트의 포트 속성은 트리거 포트에 연결되는 제어 신호 벡터에 대한 인덱스를 지정합니다.

기본적으로, 포트 값은 사용자가 입력 이벤트를 추가하는 순서대로 표시됩니다. 이러한 할당은 이벤트의 포트 속성을 수정하여 변경할 수 있습니다. 입력 이벤트의 포트 속성을 변경하면 나머지 입력 이벤트의 포트 값은 자동으로 번호가 재지정됩니다.

입력 이벤트에 허용되는 데이터형

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

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

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.

참고 항목

도움말 항목