Simulink ® PLC Coder™ преобразует подсистемы в функциональные блоки в соответствии со следующими правилами:
Создает функциональный блок для атомной подсистемы верхнего уровня, для которой создается код.
Создает функциональный блок для атомной подсистемы, параметр Function packaging которой имеет значение Reusable function.
Встроенный сгенерированный код из атомных подсистем, для параметра Function packaging которого установлено значение Inline, в функциональный блок, который соответствует подсистеме ближайшего предка. Этот ближайший предок не может быть встроен.
Для генерации кода из подсистемы без входов или выходов необходимо установить для параметра Function packaging блока значение Reusable function.
В этих разделах используется код, созданный с помощью CoDeSys версии 2.3.
Сгенерированный код можно разделить с помощью следующих параметров блока подсистемы на вкладке «Создание кода». Для получения дополнительной информации см. документацию по блокам подсистем.
Функциональная упаковка
Параметры имени функции
Оставьте для параметров Имя файла значение по умолчанию, Auto.
Используйте параметр Function packaging, чтобы указать формат кода, генерируемый для атомной (невиртуальной) подсистемы. Программное обеспечение Simulink PLC Coder интерпретирует этот параметр в зависимости от выбранной настройки:
| Настройка | Интерпретация кодера |
|---|---|
Auto | Использует оптимальный формат в зависимости от типа и количества экземпляров подсистемы в модели. |
Reusable function | Создает функцию с аргументами, позволяющими повторно использовать код подсистемы, если модель включает несколько экземпляров подсистемы. |
Nonreusable function |
Кодер ПЛК Simulink не поддерживает |
Inline | Безусловно встраивает подсистему. |
Например, в plcdemo_hierarchical_virtual_subsystem, вы можете:
Встроить код подсистемы S1, установив для параметра Function packaging значение Inline. Этот параметр создает один функциональный блок для родительского объекта с встроенной подсистемой S1.
Создайте функциональный блок для подсистемы S2, установив для параметра Function packaging значение Reusable function или Auto. Этот параметр создает два функциональных блока: один для родительского, другой для S2.

Параметр «Параметры имени функции» можно использовать для изменения имени подсистемы по сравнению с именем, указанным в метке блока. Когда кодер ПЛК Simulink генерирует программное обеспечение, в качестве имени подсистемы используется строка, указанная для этого параметра. Например, см. plcdemo_hierarchical_virtual_subsystem:
Откройте диалоговое окно параметров блока подсистемы S1.
Если флажок Рассматривать как атомную единицу (Treat as atomic unit) еще не установлен, установите его.
Перейдите на вкладку Создание кода.
Установить упаковку функций в Reusable function.
Задайте для параметров имени функции значение User specified.
В поле Имя функции укажите пользовательское имя. Например, введите my_own_subsystem.

Сохраните новые настройки.
Создание кода для родительской подсистемы.
Обратите внимание на переименованный функциональный блок.

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

plcdemo_hierarchical_virtual_subsystem пример содержит атомарную подсистему, которая имеет две виртуальные подсистемы, S1 и S2, встроенные. Для виртуальной подсистемы не выбран параметр Treat as atomic unit. При создании кода для иерархической подсистемы код содержит только FUNCTION_BLOCK HierarchicalSubsystem компонент. Дополнительные функциональные блоки для подсистем S1 и S2 отсутствуют.

plcdemo_hierarchical_subsystem пример содержит атомарную подсистему, которая имеет две невиртуальные подсистемы: S1 и S2. Для виртуальных подсистем выбран параметр Treat as atomic unit. При создании кода для иерархической подсистемы этот код содержит FUNCTION_BLOCK HierarchicalSubsystem, FUNCTION_BLOCK S1, и FUNCTION_BLOCK S2 компоненты.
