From File

Считайте данные из файла на целевом компьютере

  • Библиотека:
  • Simulink Real-Time / Целевое управление

Описание

Блок From File считывает данные из файла на жестком диске целевого компьютера и выходных параметрах что данные во фрагментах каждый шаг расчета. Когда ядро Simulink® Real-Time™ на целевом компьютере считывает данные о файле, это пишет, что данные в программное обеспечение буферизуют, чей размер является пользовательским. Блок From File затем считывает данные из этого буфера и распространяет его с блоком выходные параметры для использования приложением реального времени. Например, используйте блок From File, чтобы управлять моделью с внешне полученными данными (данные из файла).

Блок From File распределяет данные как последовательность байтов. Чтобы использовать эти байты данных, как введено для модели, преобразуйте данные в один или несколько сигналов. Для этого используйте блок Byte Unpacking. Этот блок выходные данные в различных типах данных Simulink. Например, примите, что данные в вашем файле представляют скаляр одинарной точности и вектор двойной точности ширины 3. Чтобы преобразовать данные этого типа, настройте блок, чтобы вывести каждый шаг расчета:

28 bytes (1 * sizeof('single') + 3 * sizeof('double'))

FileFormat

Прежде чем вы будете использовать файл целевого компьютера в качестве источника для блока From File, будете форматировать данные в файле. Формат файла является конкатенацией различных элементов данных для одного временного шага, сопровождаемого следующим временным шагом, и так далее.

Например, примите, что ваш файл содержит данные из предыдущего примера. Присвойте переменную каждому компоненту, например,

  • a — значение одинарной точности

  • b — вектор двойной точности 3

Примите, также, что существует N ценность временных шагов данных. Измерение массива для a и b затем

  • size(a)[1, N]

  • size(b)[3, N]

В последовательности выпишите данные как следующее, чтобы создать файл.

a(1, 1)    4 bytes
b(:, 1)   24 bytes
a(1, 2)    4 bytes
b(:, 2)   24 bytes
...
...
a(1, N)    4 bytes
b(:, N)   24 bytes

Если у вас уже есть данные как переменные MATLAB®, используйте SimulinkRealTime.utils.bytes2file функция, чтобы создать файл на компьютере разработчика. Эта функция имеет следующий синтаксис:

SimulinkRealTime.utils.bytes2file(filename, var1, ... varn)

где

  • filename — Задайте имя файла данных, из которого блок From File распределяет данные

  • var1, ... varn — Задайте столбец данных, которые будут выведены к модели.

Можно затем использовать SimulinkRealTime.copyFileToTarget загружать файл на целевой компьютер.

Параметры

развернуть все

Введите имя файла целевого компьютера, который содержит данные.

Программируемое использование

Параметры блоков: filename

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

Программируемое использование

Параметры блоков: dataSize

Введите размер программного обеспечения FIFO в байтах. Ядро Simulink Real-Time заполняет этот FIFO данными, которые будут введены к модели. Блок From File опорожняет этот FIFO, когда это вводит данные к модели.

Этот параметр должен идеально быть

  • Намного больше, чем Output port width

  • По крайней мере несколько времен размер чтения с диска

    Увеличение этого значения параметров помогает препятствовать тому, чтобы приложение реального времени опорожнило буфер быстрее, чем фоновая задача может заполнить его. Это может произойти, если у вас есть многозадачные модели или условно выполняемые подсистемы, которые могут вызвать временные увеличения во время выполнения задачи и оставить меньше времени для фоновой задачи заполнить буфер.

Программируемое использование

Параметры блоков: bufSize

Введите номер байтов, чтобы читать, чтобы заполнить буфер.

Чтобы изучить этот параметр, примите следующие значения по умолчанию:

  • Buffer size 2000

  • Disk read size 512

  • Output port width равняется 8

Это означает, что буфер данных имеет размер 2000.

Этот буфер первоначально полон. Каждый раз, когда блок выполняется, восемь байтов выводятся к модели и количеству байтов в буферных уменьшениях восемь. Каждый раз, когда количество свободных байтов в буфере переходит в 512 или выше, Ядро Simulink Real-Time пытается считать 512 байтов из файла данных Simulink Real-Time, чтобы заполнить буфер.

Установка этого параметра на другое значение, например, 1024, заставляет блок From File ожидать, пока 1 024 байта не свободны прежде, чем делать попытку следующего чтения.

Для КПД, установленного это значение к кратному 512 (сектор диска составляет 512 байтов).

Программируемое использование

Параметры блоков: readSize

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

  • Hold last output — Чтение остановок и остановки выход в последнем значении

  • Seek to beginning — Возвращается к началу файла и начинает считывать данные (эта опция результаты в периодических данных)

Программируемое использование

Параметры блоков: EOFOption

Введите основной шаг расчета или кратное основному шагу расчета (-1 средний шаг расчета наследован).

Программируемое использование

Параметры блоков: sampTime

Установите флажок Show IsValid port, чтобы сделать порт IsValid видимым в модели. Порт IsValid outputs 1 если чтение файла успешно выполняется и 0 если это перестало работать.

Программируемое использование

Параметры блоков: show2ports

Смотрите также

Темы

Представлено до R2006a