Отправка и прием данных через шлейф последовательного порта

В этом примере показано, как создать простую модель с использованием блоков Instrument Control Toolbox™ в сочетании с другими блоками в Simulink® библиотека. Пример иллюстрирует, как отправить данные на простое устройство закольцовывания, подключенное к последовательному порту компьютера, и как считать эти данные обратно в вашу модель.

Примечание

После подключения устройства закольцовывания к компьютеру определите, на каком последовательном порту он работает. Инструкции см. в разделе Поиск информации о последовательных портах для вашей платформы.

Вы используете блок To Instrument, чтобы записать значение в последовательный порт на вашем компьютере, а затем используйте блок Query Instrument, чтобы считать это значение обратно в вашу модель.

Примечание

Имена блоков не показаны по умолчанию в модели. Чтобы отобразить скрытые имена блоков во время работы в модели, установите флажок Display и снимите Hide Automatic Names.

Шаг 1: Создайте новую модель

Чтобы запустить Simulink и создать новую модель, введите следующее в MATLAB® Командное окно.

simulink

На начальной странице Simulink нажмите Blank Model и затем Create Model. Откроется пустое окно Editor.

На панели инструментов щелкните Save, чтобы назначить имя вашей новой модели.

Шаг 2: Откройте библиотеку блоков

На панели инструментов нажмите кнопку Library Browser на вкладке Simulation.

Откроется браузер библиотеки Simulink. Левая панель содержит дерево доступных библиотек блоков в алфавитном порядке. Нажмите Instrument Control Toolbox.

Чтобы использовать блок, добавьте его к существующей модели или создайте новую модель.

Шаг 3: Перетащите блоки Instrument Control Toolbox в модель

Чтобы использовать блок в модели, перетащите блок из библиотеки в Редактор Simulink. В данном примере вам нужен один образец блоков To Instrument и Query Instrument в вашей модели.

Примечание

Блок To Instrument может использоваться с этими интерфейсами: VISA, GPIB, Serial, TCP/IP и UDP. Он не поддерживается на этих интерфейсах: SPI, I2C и Bluetooth.

Шаг 4: Перетащите другие блоки, чтобы завершить модель

Этот пример требует еще двух блоков. Один блок предоставляет данные, которые посылаются в прибор; другой блок отображает данные, полученные от прибора.

Поскольку данные, отправленные на инструмент, являются постоянными, можно использовать для этой цели блок Constant (Simulink). Доступ к блоку осуществляется путем развертывания узла Simulink в дереве браузера и щелчка по записи Sources библиотеки. Из блоков на правой панели перетащите блок Constant в Редактор Simulink и поместите его налево от блока To Instrument.

Чтобы отобразить данные, полученные от инструмента, можно использовать блок Display (Simulink). Чтобы получить доступ к блоку Display, щелкните запись Sinks библиотеки в узле развернутого Simulink в дереве браузера. Из блоков, отображаемых на правой панели, перетащите блок Display в Редактор Simulink и поместите его справа от блока Query Instrument.

Шаг 5: Соедините блоки

Выполните соединение между блоком Constant и блоком To Instrument. Быстрый способ создать соединение - выбрать блок Constant, нажать и удерживать клавишу Ctrl, а затем кликнуть блок To Instrument.

Точно так же выполните соединение между выходом портом блока Query Instrument и входа портом блока Display (Simulink).

Примечание

Два блока не соединяются непосредственно в модели. Единственная связь между ними - через инструмент, который является закольцовывающим устройством, соединенным с последовательным портом. Поскольку два блока не имеют прямой связи, вы должны учитывать их синхронизацию при запуске модели. Блок Query Instrument не получает свой вход от блока To Instrument, поэтому у него нет возможности узнать, когда данные с инструмента доступны. Поэтому необходимо задать параметры блоков, чтобы записать данные в закольцовывание, прежде чем модель попытается получить данные из закольцовывания.

Шаг 6: Задайте значения параметров блоков

Установите параметры для блоков в вашей модели, дважды кликнув по блоку.

Дважды кликните блок To Instrument, чтобы открыть диалоговое окно его параметров. Установите Port на порт, к которому подключено устройство закольцовывания. Инструкции см. в разделе Поиск информации о последовательных портах для вашей платформы.

Нажмите кнопку OK, чтобы закрыть диалоговое окно.

Дважды кликните блок Query Instrument, чтобы открыть диалоговое окно его параметров. Убедитесь, что значения на вкладке Hardware Configuration соответствуют значениям Hardware на блоке To Instrument.

Модель использует значения по умолчанию на вкладках Instrument Initialization и Query этого блока, поэтому вам не нужно изменять ни одно из их значений.

Нажмите кнопку ОК, чтобы применить любые изменения и закрыть диалоговое окно.

Дважды кликните блок Constant, чтобы открыть диалоговое окно его параметров. Измените значение константы на значение, которое вы хотите отправить инструменту. Для этого примера:

  • Constant value с 25.

  • Sample time с 1.

Нажмите OK.

Для блока Display (Simulink) можно использовать его параметры по умолчанию.

Шаг 7: Задайте приоритет блока

Блок с самым низким числом получает наивысший приоритет. В редакторе Simulink Editor щелкните правой кнопкой мыши блок и выберите Properties. Введите номер приоритета в поле Priority в диалоговом окне Блока Свойств. Чтобы убедиться, что блок To Instrument сначала завершает запись данных в шлейф перед чтением его блоком Query Instrument, установите приоритет блока To Instrument равным 1 и блок Query Instrument для 2.

Внимание

Вы должны задать правильный приоритет для блоков в вашей модели. В противном случае вы увидите неожиданные результаты.

Шаг 8: Запустите симуляцию

Чтобы запустить симуляцию, нажмите зеленую кнопку Run на панели инструментов Редактор. Можно использовать опции панели инструментов, чтобы указать, как долго запускать симуляцию и остановить выполняемую симуляцию.

Когда вы запускаете симуляцию, заданное вами постоянное значение (25) записывается в инструмент (последовательный шлейф), полученный от инструмента и показанный в блоке Display (Simulink).

Во время выполнения симуляции строка состояния в нижней части Редактор обновляет прогресс симуляции.

См. также

|

Похожие темы