Параметр Enable blocking mode позволяет вам ожидать, пока запрошенные данные не доступны для блока, чтобы получить или ожидать, пока все данные не отправляют. Можно отключить эту опцию, чтобы позволить симуляции запускаться постоянно. Этот параметр доступен в следующих блоках:
Параметр Enable blocking mode включен по умолчанию.
Если вы позволяете блокировать режим в Serial Receive, TCP/IP Receive и блоках UDP Receive, симуляция ожидает запрошенных данных, чтобы стать доступной. Модель ожидает до количества времени, заданного параметром Timeout.
В этом примере запустите симуляцию во время t = 0 и задайте Data size как [4,1]
. Если симуляция запускается, данные получены асинхронно в буфере FIFO.
Блокирующаяся симуляция режима происходит в следующих шагах.
На временном шаге 1: Simulink® данные о программных запросах и buffer size являются четырьмя значениями. Блок обрабатывает запрос, не прерывая симуляцию. Блок сбрасывает значение buffer size к 0.
На временном шаге 2: данные о программных запросах Simulink снова и buffer size являются только тремя значениями; поэтому, программное обеспечение блокирует симуляцию, пока это не получает четвертое значение. Когда блок получает четвертое значение, он обрабатывает запрос и возобновляет симуляцию. Блок сбрасывает значение buffer size к 0.
На временном шаге 3: Когда данные о программных запросах Simulink, блок имеет пять значений. Это возвращает первые четыре, что это получило и сбрасывает значение buffer size к 1.
Для каждого временного шага, если запрошенные данные не получены в количестве времени, заданном в поле Timeout:
Блок Serial Receive принимает меры, заданные параметром Action when data is not available.
Блок TCP/IP Receive выводит значение 0
.
Если вы позволяете блокировать режим в Serial Send, TCP/IP Send и блоках UDP Send, симуляция ожидает, пока блок не отправляет полные данные.
В этом примере запустите симуляцию во время t=0.
На временном шаге (T1) вывод данных инициируется и остановки симуляции, пока блок данных (B1) не отправляется. После того, как данные отправляются, резюме симуляции до временного шага (T2), где блок инициирует другой вывод данных, и симуляция блокируется, пока блок данных (B2) не отправляется, и резюме симуляции.
Снимите флажок, если вы хотите, чтобы параметр Enable blocking mode был выключен.
Если вы не позволяете блокировать режим в Serial Receive, TCP/IP Receive и блоках UDP Receive, симуляция запускается постоянно, и блок имеет два выходных порта, Status и Data. Порт Data содержит требуемый набор данных на каждом временном шаге. Порт Status содержит 0 или 1 на основе того, получил ли он новые данные на данном временном шаге.
Здесь симуляция не блокируется и запускается постоянно.
На временном шаге 1: данные о программных запросах Simulink и buffer size являются четырьмя значениями. Блок обрабатывает запрос и изменяет значение порта Status в 1
, указание, что новые данные доступны. Порт Data в этой точке содержит недавно полученные значения. Блок сбрасывает значение buffer size к 0.
На временном шаге 2: данные о программных запросах Simulink снова и buffer size являются только тремя значениями. Блок не может возвратить значение 3, потому что размер данных задан как 4. Поэтому блок устанавливает значение порта Status к 0
, указание, которое нет новых данных доступно. Порт данных содержит ранее полученное значение или 0, в зависимости от блока, и buffer size в три (количество значений, которые это получило, поскольку последний запрос был обработан).
На временном шаге 3: Когда данные о программных запросах Simulink здесь, buffer size является теперь шестью значениями. Блок возвращает первые четыре в полученном заказе и изменяет значение порта Status в 1
.
Если вы не позволяете блокировать режим в Serial Send, TCP/IP Send и блоках UDP Send, симуляция запускается постоянно.
Вывод данных опережает скорость симуляции
В этом сценарии вывод данных опережает скорость симуляции. Вывод данных инициируется на первом временном шаге (T1), и соответствующий блок данных (B1) отправляется в заданный удаленный адрес асинхронно. Симуляция запускается постоянно в этом режиме.
Скорость симуляции опережает вывод данных
В этом сценарии скорость симуляции опережает сбор данных.
На временном шаге T1: блок данных (B1) отправляется асинхронно.
На временном шаге T2: симуляция блокируется, пока блок данных (B1) не отправляется полностью. Когда B1 полностью отправляется, новый блок данных (B2) отправляется асинхронно, и резюме симуляции.
Примечание
Несколько факторов, включая сетевое соединение и сложность модели, могут влиять на скорость симуляции, которая может заставить оба неблокирующихся сценария происходить в рамках той же симуляции.
Serial Receive | Serial Send | TCP/IP Receive | TCP/IP Send | UDP Receive | UDP Send