exponenta event banner

Разделы кода управления для блока подсистемы

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 не поддерживает Nonreusable function упаковка. См., Ограничения.

Inline

Безусловно встраивает подсистему.

Например, в plcdemo_hierarchical_virtual_subsystem, вы можете:

  • Встроить код подсистемы S1, установив для параметра Function packaging значение Inline. Этот параметр создает один функциональный блок для родительского объекта с встроенной подсистемой S1.

  • Создайте функциональный блок для подсистемы S2, установив для параметра Function packaging значение Reusable function или Auto. Этот параметр создает два функциональных блока: один для родительского, другой для S2.

Изменение имени подсистемы

Параметр «Параметры имени функции» можно использовать для изменения имени подсистемы по сравнению с именем, указанным в метке блока. Когда кодер ПЛК Simulink генерирует программное обеспечение, в качестве имени подсистемы используется строка, указанная для этого параметра. Например, см. plcdemo_hierarchical_virtual_subsystem:

  1. Откройте диалоговое окно параметров блока подсистемы S1.

  2. Если флажок Рассматривать как атомную единицу (Treat as atomic unit) еще не установлен, установите его.

  3. Перейдите на вкладку Создание кода.

  4. Установить упаковку функций в Reusable function.

  5. Задайте для параметров имени функции значение User specified.

  6. В поле Имя функции укажите пользовательское имя. Например, введите my_own_subsystem.

  7. Сохраните новые настройки.

  8. Создание кода для родительской подсистемы.

  9. Обратите внимание на переименованный функциональный блок.

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

Код для 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 компоненты.