Программное обеспечение Simulink® PLC Coder™ не поддерживает следующую семантику Simulink:
Сложные типы данных
Модель - ссылка
Stateflow® порожденные машиной данные и события
Сообщения Stateflow
Ограниченная поддержка математических функций
Блок Merge
Блок Step
Блок Clock
Классы памяти состояния и сигнала
Переменные общего состояния между подсистемами
Виртуальные шины во входных портах блока Atomic Subsystem верхнего уровня
Для Каждого блока Subsystem
Сигналы переменного размера и параметры
Объекты заданы в словаре данных Simulink, включая параметры модели, сигналы и объекты состояния.
Блок MATLAB System или системные объекты
Блок Width
Используйте блок MATLAB function вместо этого. В функции MATLAB® на блоке используйте функцию length
, чтобы вычислить ширину входного вектора.
Массивы ячеек в блоках MATLAB function
В блоках MATLAB function только поддерживаются стандартные функции MATLAB. Функции от тулбоксов не были протестированы и могут привести к проблемам во время генерации кода или привести к неправильным результатам. Для списка стандартных функций, поддерживаемых для генерации кода, смотрите элементы, перечисленные под категорией MATLAB в Функциях и Объектах, Поддержанных для таблицы Code Generation — Category List (Simulink) C/C++.
Использование Simulink.CoderInfo
свойство имени Alias
с Simulink.Parameter
и объектами Simulink.Signal
.
rand
поддерживает ограниченияSimulink PLC Coder генерирует код Структурированного текста для блоков MATLAB function, которые используют функции rand
от библиотеки. Функция rand
реализована с помощью генератора псевдослучайных чисел, который только работает с ИДАМИ PLC, поддерживающими тип данных uint32
. Программное обеспечение имеет проверки соответствия, чтобы сообщить о диагностике для несовместимых целей.
Если тип данных значения параметров рабочей области MATLAB не совпадает с типом данных параметров блоков, используемых в вашей модели, значение переменной в сгенерированном коде обнуляется.
Если вы задаете тип объекта Simulink.Parameter
при помощи свойства DataType
, используйте введенное выражение при присвоении значения объекту параметра. Например, если объект Simulink.Parameter
, K1
используется, чтобы сохранить значение типа single
, используют введенное выражение, такое как single(0.3)
при присвоении значения K1
.
K1 = Simulink.Parameter; K1.Value = single(0.3); K1.StorageClass = 'ExportedGlobal'; K1.DataType = 'single';
Simulink PLC Coder не генерирует файл отчета трассируемости при генерации Лестничных Схем от диаграмм Stateflow. Однако файл отчета трассируемости сгенерирован при генерации Структурированного текста от диаграмм Stateflow.
Программное обеспечение Simulink PLC Coder поддерживает тип данных с фиксированной точкой. Чтобы сгенерировать код для типов данных с фиксированной точкой, сконфигурируйте параметры блоков и параметры модели, как описано в этой теме.
Если вы не конфигурируете блоки и модели, как направлено, сгенерированный Структурированный текст может:
Не компилируют.
Скомпилируйте, но возвратите результаты, которые отличаются от результатов симуляции.
Правильно сконфигурируйте параметры блоков:
Если блок в подсистеме имеет вкладку Signal Attributes, перейдите к той вкладке.
Для параметра Integer rounding mode выберите Round
.
Снимите флажок Saturate on integer overflow.
Для параметра Output data type выберите тип данных с фиксированной точкой.
Нажмите кнопку Data Type Assistant.
Для параметра Размера слова введите 8
, 16
или 32
.
Для параметра Mode выберите Fixed point
.
Для параметра Scaling выберите Binary point
.
Нажмите OK.
Обязательно отредактируйте образцовые параметры конфигурации (см. Образцовые Параметры конфигурации).
Правильно сконфигурируйте образцовые параметры конфигурации:
В диалоговом окне модели Configuration Parameters кликните по узлу Hardware Implementation
.
Для параметра Device vendor выберите Generic
.
Для Device type выберите Custom
.
Для Signed integer division rounds to выберите Zero
.
Для Number of bits, набор char к 16
.
Чтобы сгенерировать Структурированный текст от многоскоростной модели, необходимо сконфигурировать модель можно следующим образом:
Измените любые непрерывные входные сигналы времени в подсистеме верхнего уровня, чтобы использовать дискретные фиксированные шаги расчета.
Для решателя выберите однозадачное выполнение.
Автоматизация B&R Studio® IDE не поддержана для генерации кода многоскоростной модели.
Когда вы развертываете код, сгенерированный от многоскоростной модели, необходимо запустить код на уровне основной частоты дискретизации.
Язык Структурированного текста имеет свойственные ограничения. В результате программное обеспечение Simulink PLC Coder имеет следующие ограничения:
Программное обеспечение Simulink PLC Coder поддерживает генерацию кода только для атомарных подсистем.
Поддержки программного обеспечения Simulink PLC Coder автоматическая, встроенная, или допускающая повторное использование упаковка функции для генерации кода. Функциональная упаковка одноразового использования не поддержана.
Никакие блоки, которые требуют непрерывной семантики времени. Это ограничение включает непрерывные интеграторы, блоки пересечения нулем, физические блоки моделирования, и так далее.
Никакие типы данных указателя.
Никакая рекурсия (включая рекурсивные события).
Неличные данные, например, NaN
или Inf
, не поддержаны.