Simulink® PLC Coder™ преобразует подсистемы в модули функционального блока согласно следующим правилам:
Генерирует функциональный блок для атомарной подсистемы верхнего уровня, для которой вы генерируете код.
Генерирует функциональный блок для атомарной подсистемы, параметр Function packaging которой устанавливается на Reusable function
.
Встраивает сгенерированный код от атомарных подсистем, параметр Function packaging которых устанавливается на Inline
, в функциональный блок, который соответствует самой близкой подсистеме предка. Этот самый близкий предок не может быть встроен.
Для генерации кода от подсистемы без вводов или выводов необходимо установить параметр Function packaging блока к Reusable function
.
Эти темы используют код, сгенерированный с Версией 2.3 CoDeSys.
Можно разделить сгенерированный код с помощью следующих параметров блоков Subsystem на вкладке Code Generation. См. документацию блока Subsystem для деталей.
Function packaging
Function name options
Оставьте набор File name options значению по умолчанию, Auto
.
Используйте параметр Function packaging, чтобы задать формат кода, чтобы сгенерировать для атомарной (невиртуальной) подсистемы. Программное обеспечение Simulink PLC Coder интерпретирует этот параметр в зависимости от установки, которую вы выбираете:
Установка | Интерпретация кодера |
---|---|
Auto | Использует оптимальный формат на основе типа и количества экземпляров подсистемы в модели. |
Reusable function | Генерирует функцию с аргументами, которая позволяет повторное использование кода подсистемы, когда модель включает несколько экземпляров подсистемы. |
Nonreusable function |
Simulink PLC Coder не поддерживает |
Inline | Встраивает подсистему безусловно. |
Например, в plcdemo_hierarchical_virtual_subsystem
, вы можете:
Встройте код подсистемы S1 установкой Function packaging к Inline
. Эта установка создает один функциональный блок для родительского элемента со встроенной подсистемой S1.
Создайте функциональный блок для подсистемы S2 установкой Function packaging к Reusable function
или Auto
. Эта установка создает два функциональных блока, один для родительского элемента, один для S2.
Можно использовать параметр Function name options, чтобы изменить название подсистемы от той на этикетке блока. Когда Simulink PLC Coder генерирует программное обеспечение, он использует строку, которую вы задаете для этого параметра как имя подсистемы. Например, смотрите plcdemo_hierarchical_virtual_subsystem
:
Откройте диалоговое окно параметров блоков подсистемы S1.
Если флажок Treat as atomic unit еще не устанавливается, выберите его.
Кликните по вкладке Code Generation.
Установите Function packaging на Reusable function
.
Установите Function name options на User specified
.
В поле Function name задайте пользовательское имя. Например, введите 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
компоненты.