Каждому типу данных, используемому в S-функции, присваивается идентификатор типа данных. Для получения и установки информации о типах данных в S-функции всегда следует использовать идентификаторы типов данных.
Как правило, программное обеспечение Simulink ® назначает идентификаторы типов данных во время инициализации модели на основе «первым пришел, первым обслужен». Например, рассмотрим обобщенную схему блок-схемы ниже.

Программное обеспечение Simulink назначает идентификатор типа данных для каждого типа выходных данных на диаграмме в требуемом порядке. Для простоты предположим, что порядок запроса происходит слева направо. Поэтому выходу блока А может быть назначен ID 13 типа данных, а выходу блока В может быть назначен ID 14 типа данных. Тип выходных данных блока С тот же, что и у блока А, поэтому идентификатор типа данных, назначенный выходу блока С, также равен 13. Выходному сигналу блока D присваивается ID 15 типа данных.
Теперь, если блоки в модели переставлены,

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