Программное обеспечение 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 поддерживает тип данных с фиксированной точкой. Чтобы сгенерировать код для типов данных с фиксированной точкой, сконфигурируйте параметры блоков и параметры модели как описано в этой теме.
Если вы не конфигурируете блоки и модели, как направлено, сгенерированный Структурированный текст может:
Не компилируют.
Скомпилируйте, но возвратите результаты, которые отличаются от результатов симуляции.
Правильно сконфигурируйте параметры блоков:
Если блок в подсистеме имеет вкладку 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
.
Чтобы сгенерировать Структурированный текст от многоскоростной модели, необходимо сконфигурировать модель можно следующим образом:
Измените любые непрерывные входные сигналы времени в подсистеме верхнего уровня, чтобы использовать дискретные фиксированные шаги расчета.
Для решателя выберите однозадачное выполнение.
IDE Studio Автоматизации B&R не поддержан для генерации кода многоскоростной модели.
Когда вы развертываете код, сгенерированный от многоскоростной модели, необходимо запустить код на уровне основной частоты дискретизации.
Язык Структурированного текста имеет свойственные ограничения. В результате программное обеспечение Simulink PLC Coder имеет следующие ограничения:
Программное обеспечение Simulink PLC Coder поддерживает генерацию кода только для атомарных подсистем.
Поддержки программного обеспечения Simulink PLC Coder автоматическая, встроенная, или допускающая повторное использование упаковка функции для генерации кода. Функциональная упаковка одноразового использования не поддержана.
Никакие блоки, которые требуют непрерывной семантики времени. Это ограничение включает непрерывные интеграторы, блоки пересечения нулем, физические блоки моделирования, и так далее.
Никакие типы данных указателя.
Никакая рекурсия (включая рекурсивные события).
Неличные данные, например, NaN
или Inf
, не поддержан.