Примечание
Генерация диаграммы многозвенной цепи из диаграмм Stateflow ® будет удалена в следующем выпуске. Для создания многозвенных диаграмм используйте модели Simulink ®. Чтобы создать модели Simulink, совместимые с генерацией логики многозвенной цепи, выполните одно из следующих действий.
Используйте блоки из библиотеки многозвенной цепи ПЛК для создания модели, совместимой с генерацией диаграммы многозвенной цепи. Чтобы открыть библиотеку лестниц ПЛК, введите plcladderlib в командной строке MATLAB.
Импорт логики многозвенной цепи из файла L5X с помощью plcimportladder функция.
Чтобы создать логику многозвенной цепи из моделей Simulink, используйте следующие функции: plcgeneratecode и plcgeneraterunnertb
В этом примере показано, как:
Создайте код из диаграммы Stateflow, которую можно просмотреть как схему многозвенной цепи в среде IDE.
Создайте тестовый стенд для проверки кода схемы многозвенной цепи в среде IDE.
Полный рабочий процесс создания кода схемы многозвенной цепи см. в разделе Рабочий процесс создания схемы многозвенной цепи.
На рисунке показана диаграмма Stateflow, которая реализует трехкомпонентную логику, логику принятия решений для многих приложений железнодорожной сигнализации.

Диаграмма состоит из пяти состояний: Init, Fault, Red, Yellow, и Green. На основе входных данных диаграммы могут иметь место переходы в любое из этих состояний. Например, состояние Red становится активным в следующих сценариях:
Инициализация и включение питания: предыдущее состояние: Init и состояние Power_Up является правдой.
Устранение неисправности: предыдущее состояние: Fault и состояние VLDHealthy & FaultRectified является правдой.
Переходы от других цветов: Предыдущее состояние: Green или Yellow, условия, допускающие переход к Red true, и условия, которые позволяют перейти к другому цвету или к Fault состояние имеет значение false.
Оставаясь красным: предыдущее состояние Red и условия, допускающие переход в другое состояние, являются ложными.

На рисунке показана часть кода диаграммы многозвенной цепи, созданного на основе диаграммы при просмотре в среде IDE CODESYS 3.5. Схема многозвенной цепи состоит из контактов (нормально разомкнутых и нормально замкнутых) и катушек (нормальных, установленных и сброшенных).

Элементы исходной диаграммы Stateflow можно сопоставить с этими катушками и контактами. Например, катушка Red_new соответствует обновлению состояния Red в диаграмме Stateflow. Чтобы катушка получала питание, необходимо выполнить одно из следующих действий:
Инициализация и включение питания: Нормально разомкнутые контакты Init и Power_Up должен быть закрыт.
Устранение неисправности: нормально разомкнутые контакты Fault и T_1_1_trans должен быть закрыт. Контакт T_1_1_trans представляет условие перехода VLDHealthy & FaultRectified в диаграмме.
Переходы от других цветов: нормально разомкнутый контакт Green должны быть закрыты и должны быть выполнены следующие условия:
Нормально разомкнутый контакт T_2_3_trans должен быть закрыт. Этот контакт соответствует условию диаграммы, которое должно быть истинным для перехода к Red состояние.
Нормально замкнутые контакты T_2_1_trans и T_2_2_trans должен оставаться закрытым. Эти контакты соответствуют условию диаграммы, которое должно быть ложным для перехода к Red состояние. Если условия верны, контакты разомкнуты, и катушка больше не получает питание.
Оставаясь красным: нормально открытый контакт Red должны быть замкнуты, и нормально замкнутые контакты T_4_1_trans и T_4_2_trans должен оставаться закрытым. Эти контакты соответствуют условиям диаграммы, которые должны быть ложными для Red состояние продолжает оставаться активным. Если условия верны, контакты разомкнуты, и катушка больше не получает питание.
Создание кода схемы многозвенной цепи из модели plcdemo_ladder_three_aspect:
Откройте модель.
Откройте приложение «Кодер ПЛК» и перейдите на вкладку «Код ПЛК».
Укажите целевую среду IDE, для которой необходимо создать код схемы многозвенной цепи.
Щелкните Настройки (Settings). Укажите поддерживаемую среду IDE для параметра Целевая среда IDE. См. раздел IDE, поддерживаемые для генерации кода многозвенной схемы. Нажмите кнопку ОК.
Щелкните правой кнопкой мыши на диаграмме и выберите «Код ПЛК» > «Создать логику многозвенной цепи для диаграммы».
При успешном создании кода во вложенной папке plcsrc текущей рабочей папки, вы видите файл . Этот файл импортируется в среду IDE и отображается схема многозвенной цепи. Для IDE CODESYS 3.5 см. Импорт кода схемы многозвенной цепи в IDE CODESYS 3.5 и проверка схемы.ModelName.xml
Также можно использовать функцию plcgenerateladder для создания кода диаграммы многозвенной цепи из диаграммы потока состояний.
Можно создать тестовый стенд для проверки созданного кода диаграммы многозвенной цепи. Код импортируется вместе с тестовым стендом в среде IDE и с помощью тестового стенда проверяется схема многозвенной цепи по исходной диаграмме Stateflow. Для создания тестового стенда вместе с кодом схемы многозвенной цепи:
Откройте приложение «Кодер ПЛК» и перейдите на вкладку «Код ПЛК».
Щелкните Настройки (Settings). Выберите опцию Generate Testbench for Subsystem.
Щелкните правой кнопкой мыши на диаграмме и выберите «Код ПЛК» > «Создать логику многозвенной цепи для диаграммы».
На тестовых стендах используются входные данные исходной диаграммы Stateflow. Поэтому можно создать тестовые жгуты для исходной диаграммы и повторно использовать их для проверки кода многозвенной диаграммы.
Также можно использовать функцию plcgenerateladder создание испытательных стендов.
После создания кода схемы многозвенной цепи и тестовых стендов их можно импортировать в среду IDE. Для IDE CODESYS 3.5 см. Импорт кода схемы многозвенной цепи в IDE CODESYS 3.5 и проверка схемы.