Каждому типу данных, используемому в S-функции, присваивается идентификатор типа данных. Вы всегда должны использовать идентификаторы типов данных, чтобы получить и задать информацию о типах данных в вашей S-функции.
В целом, Simulink® программа присваивает идентификаторы типов данных во время инициализации модели на основе «first come, first served». Для примера рассмотрим обобщенную схему блока схемы ниже.
Программа Simulink присваивает идентификатор типа данных для каждого типа выходных данных в схеме в том порядке, в котором он запрашивается. Для простоты примите, что порядок запроса происходит слева направо. Поэтому выходу блока A может быть присвоен тип данных ID 13, и выходу блока B может быть присвоен тип данных ID 14. Тип выходных данных блока C аналогичен типу выходных данных блока A, поэтому идентификатор типа данных, присвоенный выходу блока C, также равен 13. Выход блока D присваивается тип данных ID 15.
Теперь, если блоки в модели переставлены,
Программа Simulink по-прежнему присваивает идентификаторы типов данных в том порядке, в котором они используются. Поэтому каждый тип данных может оказаться с идентификатором различных типов данных. Выходу блока A все еще присвоен тип данных ID 13. Теперь вывод блока D находится в следующей линии и присвоен тип данных ID 14. Выход блока B присвоен тип данных ID 15. Тип выходных данных блока C все еще совпадает с типом выходных данных блока A, поэтому ему также назначается тип данных ID 13.
В этой таблице обобщены два случая, описанных выше.
Блок | Идентификатор типа данных в Model_1 | Идентификатор типа данных в Model_2 |
---|---|---|
A | 13 | 13 |
B | 14 | 15 |
C | 13 | 13 |
D | 15 | 14 |
Этот пример иллюстрирует, что нет никакой строгой зависимости между атрибутами типа данных и значением его идентификатора типа данных. Другими словами, идентификатор типа данных назначается не на основе характеристик типа данных, который он представляет, а на основании того, когда этот тип данных впервые необходим.
Примечание
Из-за особенностей назначения идентификаторов типов данных вы всегда должны использовать функции API для извлечения информации из идентификатора типа данных о типе данных в вашей S-функции.
Функции в следующей таблице доступны в API для написанных пользователем S-функций с фиксированной точкой для регистрации типов данных в симуляции. Каждая из этих функций возвращает идентификатор типа данных. Чтобы увидеть пример используемой функции, перейдите в файл и линии, указанные в таблице.
Функции регистрации типов данных
Функция | Описание | Пример использования |
---|---|---|
Зарегистрируйте тип данных с фиксированной точкой с двоичным масштабированием только с точкой и верните его идентификатор типа данных |
| |
Зарегистрируйте тип данных с фиксированной точкой с масштабированием [Slope Bias], заданным с точки зрения дробного наклона, фиксированной экспоненты и смещения, и верните его идентификатор типа данных | Недоступно | |
Зарегистрируйте масштабированный тип данных double с масштабированием [Slope Bias], заданным с точки зрения дробного наклона, фиксированной экспоненты и смещения, и верните его идентификатор типа данных | Недоступно | |
Зарегистрируйте тип данных с помощью масштабирования [Slope Bias] и верните его идентификатор типа данных |
|
Программа Simulink регистрирует свои встроенные типы данных, и эти типы данных всегда имеют предварительно назначенные идентификаторы типов данных. Встроенные идентификаторы типов данных задаются следующими лексемами:
SS_DOUBLE
SS_SINGLE
SS_INT8
SS_UINT8
SS_INT16
SS_UINT16
SS_INT32
SS_UINT32
SS_BOOLEAN
Вам не нужно регистрировать эти типы данных. Если вы пытаетесь зарегистрировать встроенный тип данных, функция регистрации просто возвращает предварительно присвоенный идентификатор типа данных.
Идентификаторы типов данных используются для определения типов данных входных и выходных портов, параметров времени выполнения и состояний DWork. Для установки типов данных с фиксированной точкой для величин в S-функции процедура выполняется следующим образом:
Зарегистрируйте тип данных с помощью одной из функций, перечисленных в таблице Data Type Registration Functions. Вам возвращается идентификатор типа данных.
Кроме того, можно использовать один из предварительно назначенных идентификаторов типов данных встроенных типов данных Simulink.
Используйте идентификатор типа данных, чтобы задать тип данных для входного или выходного порта, параметра времени выполнения или состояния DWork с помощью одной из следующих функций:
Чтобы получить идентификатор типа данных входов или выходного порта, параметра времени выполнения или состояния DWork, используйте одну из следующих функций:
Можно использовать идентификаторы типов данных с функциями для получения информации о встроенных и зарегистрированных типах данных в S-функции. Функции в следующих таблицах доступны в API для извлечения информации о зарегистрированных типах данных. Чтобы увидеть пример используемой функции, перейдите в файл и линии, указанные в таблице. Обратите внимание, что идентификаторы типов данных также могут использоваться со всеми стандартными методами доступа к типам данных в simstruc.h
, таких как ssGetDataTypeSize
.
Информационные функции контейнера хранения
Функция | Описание | Пример использования |
---|---|---|
Возвращает размер слова контейнера хранения зарегистрированного типа данных |
| |
Возвращает категорию контейнера хранилища зарегистрированного типа данных |
| |
Возвращает размер контейнера хранения зарегистрированного типа данных |
|
Информационные функции типа данных сигнала
Функция | Описание | Пример использования |
---|---|---|
Определите, подписан ли тип зарегистрированных данных с фиксированной точкой или не подписан |
| |
Возвращает размер слова типа зарегистрированных данных с фиксированной точкой |
| |
Определите, является ли зарегистрированный тип данных типом данных с фиксированной точкой |
| |
Определите, является ли зарегистрированный тип данных типом данных с плавающей точкой |
| |
Определите, поддерживается ли зарегистрированный тип данных API для написанных пользователем S-функций с фиксированной точкой |
| |
Определите, имеет ли зарегистрированный тип данных масштабирование степени двойки |
| |
Определите, является ли масштабирование зарегистрированного типа данных наклоном = 1, смещением = 0 |
|
Функции информации о масштабировании сигнала
Функция | Описание | Пример использования |
---|---|---|
Возвращает смещение зарегистрированного типа данных |
| |
Верните экспоненту наклона зарегистрированного типа данных |
| |
Верните дробный наклон зарегистрированного типа данных |
| |
Верните длину дроби зарегистрированного типа данных с масштабированием степени двойки чисел |
| |
Возвращает общий наклон масштабирования зарегистрированного типа данных |
|
Функции в следующей таблице позволяют вам преобразовывать значения между зарегистрированными типами данных в вашей S-функции с фиксированной точкой.
Функции преобразования типов данных
Функция | Описание | Пример использования |
---|---|---|
Преобразуйте значение из одного типа данных в другой тип данных. | Недоступно | |
Преобразуйте значение типа данных | Недоступно | |
Преобразуйте значение любого типа данных в | Недоступно |