Ограничения кодера

Текущие ограничения

Программное обеспечение Simulink® PLC Coder™ не поддерживает следующую семантику Simulink:

  • Сложные типы данных

  • Типы данных String

  • Модель - ссылка

  • Stateflow® порожденные машиной данные и события

  • Сообщения Stateflow

  • Ограниченная поддержка математических функций

  • Блок Merge

  • Блок Step

  • Блок Clock

  • Классы памяти состояния и сигнала

  • Переменные общего состояния между подсистемами

  • Виртуальные шины во входных портах блока Atomic Subsystem верхнего уровня

  • Блок For Each Subsystem

  • Сигналы переменного размера и параметры

  • Объекты заданы в словаре данных Simulink, включая параметры модели, сигналы и объекты состояния.

  • Блок MATLAB System или системные объекты

  • Классы MATLAB®.

  • Блок Width

    Используйте блок MATLAB Function вместо этого. В функции MATLAB на блоке используйте length функция, чтобы вычислить ширину входного вектора.

  • Массивы ячеек в блоках MATLAB Function

  • В блоках MATLAB Function только поддерживаются стандартные функции MATLAB. Функции от тулбоксов не были протестированы и могут привести к проблемам во время генерации кода или привести к неправильным результатам. Для списка стандартных функций, поддерживаемых для генерации кода, смотрите элементы, перечисленные под категорией MATLAB в Функциях и Объектах, Поддержанных для таблицы Code Generation (Simulink) C/C++.

  • Использование Simulink.CoderInfo Alias назовите свойство с Simulink.Parameter и Simulink.Signal объекты.

  • Simulink.Signal поддерживается только с объектами памяти хранилища данных.

  • Simulink PLC Coder не поддерживает генерацию кода для Сигналов Simulink, которые решают к Simulink.Signal объект. Если имя Сигнала должно решить к свойству объекта Сигнала Simulink, включен или если эта опция установлена программно при помощи MustResolveToSignalObject параметр порта, программное обеспечение генерирует неправильный код PLC. Сгенерированный код может привести к неожиданному поведению такой как отменил присвоение выходных переменных.

rand Функциональные ограничения поддержки

Simulink PLC Coder генерирует код Структурированного текста для блоков MATLAB function и диаграмм Stateflow то использование rand функции от библиотеки. rand функция реализована с помощью генератора псевдослучайных чисел, который только работает с ИДАМИ PLC, поддерживающими uint32 тип данных. Программное обеспечение имеет проверки соответствия, чтобы сообщить о диагностике для несовместимых целей. В настоящее время следующие цели были протестированы на rand функциональная поддержка.

  • Программные продукты 3S-Smart Версия 2.3 или 3.3 или 3.5 CODESYS (SP4 или позже)

  • B&R Automation Studio® 3.0 или 4.0

  • Beckhoff® TwinCAT® 2.11 или 3

  • OMRON® Sysmac® Studio Version 1.04, 1.05, 1.09 или 1.12

  • IDE Rexroth IndraWorks версии 13V12

  • Типовой

  • PLCopen XML

Ограничения типа данных параметров рабочей области

Если тип данных значения параметров рабочей области 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 поддерживает тип данных с фиксированной точкой. Чтобы сгенерировать код для типов данных с фиксированной точкой, сконфигурируйте параметры блоков и параметры модели как описано в этой теме.

Примечание

Если вы не конфигурируете блоки и модели, как направлено, сгенерированный Структурированный текст может:

  • Не компилируют.

  • Скомпилируйте, но возвратите результаты, которые отличаются от результатов симуляции.

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

Правильно сконфигурируйте параметры блоков:

  1. Если блок в подсистеме имеет вкладку Signal Attributes, перейдите к той вкладке.

  2. Для параметра Integer rounding mode выберите Round.

  3. Снимите флажок Saturate on integer overflow.

  4. Для параметра Output data type выберите тип данных с фиксированной точкой.

  5. Нажмите кнопку Data Type Assistant.

  6. Для параметра Размера слова введите 8, 16, или 32.

  7. Для параметра Mode выберите Fixed point.

  8. Для параметра Scaling выберите Binary point.

  9. Нажмите OK.

Обязательно отредактируйте параметры конфигурации модели (см. Параметры конфигурации Модели).

Параметры конфигурации модели

Правильно сконфигурируйте параметры конфигурации модели:

  1. В диалоговом окне модели Configuration Parameters нажмите Hardware Implementation узел.

  2. Для параметра Device vendor выберите Generic.

  3. Для Device type выберите Custom.

  4. Для Signed integer division rounds to выберите Zero.

  5. Для Number of bits, набор char к 16.

Ограничения многоскоростной модели

Чтобы сгенерировать Структурированный текст от многоскоростной модели, необходимо сконфигурировать модель можно следующим образом:

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

  • Для решателя выберите однозадачное выполнение.

IDE Studio Автоматизации B&R не поддержан для генерации кода многоскоростной модели.

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

Постоянные ограничения

Язык Структурированного текста имеет свойственные ограничения. В результате программное обеспечение Simulink PLC Coder имеет следующие ограничения:

  • Программное обеспечение Simulink PLC Coder поддерживает генерацию кода только для атомарных подсистем.

  • Поддержки программного обеспечения Simulink PLC Coder автоматическая, встроенная, или допускающая повторное использование упаковка функции для генерации кода. Функциональная упаковка одноразового использования не поддержана.

  • Никакие блоки, которые требуют непрерывной семантики времени. Это ограничение включает непрерывные интеграторы, блоки пересечения нулем, физические блоки моделирования, и так далее.

  • Никакие типы данных указателя.

  • Никакая рекурсия (включая рекурсивные события).

  • Неличные данные, например, NaN или Inf, не поддержан.