Программное обеспечение Simulink® PLC Coder™ не поддерживает:
Сложные типы данных
Типы данных String
Блоки модели - ссылки
Stateflow® порожденные машиной данные и события
Сообщения Stateflow
Ограниченная поддержка математических функций
Блок Merge
Блок Step
Блок Clock
Классы памяти состояния и сигнала
Переменные общего состояния между подсистемами
Блок For Each Subsystem
Сигналы переменного размера и параметры
Блок MATLAB System или системные объекты
Классы MATLAB®.
Simulink.CoderInfo
Identifier
назовите свойство с Simulink.Parameter
и Simulink.Signal
объекты.
Simulink.LookupTable
, Simulink.Breakpoint
, и Simulink.DualScaledParameter
объекты.
Генерация кода для Сигналов Simulink, которые не решают к Simulink.Signal
объект memory хранилища данных.
Генерация кода, когда UseRowMajorAlgorithm='on'
.
Использование enum
числовые значения типа данных для сравнения в блоках подсистемы модели. Используйте блок преобразования типа данных, чтобы выполнить перечисление к целочисленному преобразованию, выполнить числовое сравнение.
Использование специальных символов в комментариях. Это могло привести к ошибкам при импорте сгенерированного кода.
Сигнальные линии, названные с помощью Simulink.Signal
отображения.
Половина типов данных с фиксированной точкой точности.
Генерация испытательного стенда для программного обеспечения использования моделей в цикле (SIL) режим симуляции.
Генерация испытательного стенда для процессора использования моделей в цикле (PIL) режим симуляции.
Язык структурированного текста имеет свойственные ограничения. В результате программное обеспечение Simulink PLC Coder имеет эти ограничения:
Генерация кода поддержек только для атомарных подсистем.
Поддержки автоматическая, встроенная, или допускающая повторное использование упаковка функции для генерации кода. Функциональная упаковка одноразового использования не поддерживается.
Не поддерживает блоки, которые требуют непрерывной семантики времени. Это ограничение включает блоки интегратора, блоки обнаружения пересечения нулем, физические блоки, такие как библиотечные блоки Simscape™ и так далее.
Не поддерживает типы данных указателя.
Не поддерживает рекурсию (включая рекурсивные события).
Не поддерживает неличные данные, например, NaN
или Inf
.
Не поддерживает MATLAB 64-битные целочисленные типы данных.
В типе данных с плавающей точкой, значение 0
имеет или положительный знак или знак минус. Арифметически, 0
равно -0
, но некоторые операции чувствительны к знаку 0 входов. Примеры включают rdivide
atan2
atan2d
, и angle
. Деление 0
производит Inf
, но деление -0
производит -Inf
. Точно так же atan2d(0,-1)
производит 180
, но atan2d (-0,-1)
производит -180
.
Simulink PLC Coder хранит -0
как 0
потому что нет никакого представления -0
в IEC61131. Это приводит к делению -0
создание -Inf
в Simulink, но Inf
в IDE PLC. Точно так же atan2d(-0,-1)
производит -180
в Simulink, но 180
в IDE PLC как -0
преобразован в 0
.
В Simulink деление на нуль производит любой Inf
или наибольшее число для типа данных. В Codesys предназначаются для IDE, результатов деления на нуль в -1
. Генерация кода при помощи испытательного стенда может привести к отказам верификации испытательного стенда из-за различия в результатах, делятся на нулевые операции.
Simulink PLC Coder не поддерживает генерацию кода для настроек параметров блоков, которые требуют типа данных с фиксированной точкой операции многословные. Например, блок квадратного корня, который имеет int32 целочисленный тип данных как установку типа входных и выходных данных Inherit via internal rule
не поддерживается для генерации кода.
Оперативная семантика аргумента могла быть повреждена, если типы данных между вводами и выводами отличаются по количеству размерностей. Чтобы решить проблему, установите размер входной переменной на -1
. Для получения дополнительной информации смотрите, Объявляют Вводы и выводы Переменного Размера.