Сгенерируйте Simulink PLC Coder код лестничной схемы из диаграммы Stateflow

Примечание

Генерация лестничной схемы из Stateflow® графики будут удалены в следующем релизе. Чтобы сгенерировать лестничные схемы, используйте Simulink® модели вместо этого. Чтобы создать модели Simulink, совместимые с генерацией логики лестницы, выполните одно из следующих действий:

  • Используйте блоки из библиотеки PLC Ladder, чтобы создать модель, совместимую с генерацией лестничных схем. Чтобы открыть библиотеку лестниц ПЛК, введите plcladderlib в командной строке MATLAB.

  • Импортируйте логику лестницы из файла L5X с plcimportladder функция.

Чтобы сгенерировать логику лестницы из моделей Simulink, используйте следующие функции: plcgeneratecode и plcgeneraterunnertb

В этом примере показано, как:

  • Сгенерируйте код из диаграммы Stateflow, который можно просмотреть как лестничную схему в среде IDE.

  • Сгенерируйте испытательный стенд для валидации кода лестничной схемы в вашей среде IDE.

Полный рабочий процесс генерации кода лестничной схемы см. в разделе Рабочий процесс генерации лестничной схемы.

Диаграмма Stateflow и логическая схема лестницы

Рисунок показывает диаграмму Stateflow, которая реализует трехстороннюю логику, логику принятия решений для многих приложений железнодорожной сигнализации.

График состоит из пяти состояний: Init, Fault, Red, Yellow, и Green. На основе входов на графике могут происходить переходы к любому из этих состояний. Для образца состояние Red становится активным в следующих сценариях:

  • Инициализация и степень: Предыдущее состояние Init и условие Power_Up является true.

  • Устранение неисправности: Предыдущее состояние Fault и условие VLDHealthy & FaultRectified является true.

  • Переходы от других цветов: Предыдущее состояние Green или Yellow, условия, которые допускают переход к Red true, и условия, которые допускают переход к другому цвету или к Fault состояние ложно.

  • Оставаясь красным: Предыдущее состояние 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 должен быть закрыт. Этот контакт соответствует условию графика, которое должно быть true для перехода к Red состояние.

    • Нормально закрытые контакты T_2_1_trans и T_2_2_trans должен оставаться закрытым. Эти контакты соответствуют условию графика, которое должно быть ложным для перехода к Red состояние. Если условия верны, контакты открываются, и катушка больше не получает степень.

  • Оставаясь красным: Нормально открытый контакт Red должны быть закрытыми, а нормально закрытые контакты T_4_1_trans и T_4_2_trans должен оставаться закрытым. Эти контакты соответствуют условиям графика, которые должны быть ложными для Red состояние, чтобы продолжать быть активным. Если условия верны, контакты открываются, и катушка больше не получает степень.

Сгенерируйте лестничную схему из графика

Чтобы сгенерировать код Лестничной схемы из модели plcdemo_ladder_three_aspect:

  1. Откройте модель.

  2. Откройте приложение PLC Coder Щелкните вкладку PLC Code.

  3. Укажите целевую среду IDE, для которой необходимо сгенерировать код лестничной схемы.

    Нажмите Settings. Укажите поддерживаемую IDE для опции Target IDE. См. IDE, поддерживаемые для генерации кода лестничной схемы. Нажмите OK.

  4. Щелкните график правой кнопкой мыши и выберите PLC Code > Generate Ladder Logic for Chart.

Если генерация кода успешна, в подпапке plcsrc текущей рабочей папки, вы видите файл ModelName.xml. Этот файл импортируется в среду IDE и просматривается лестничная схема. Для IDE CODESYS 3.5 смотрите Импортируйте код лестничной схемы в IDE CODESYS 3.5 и Проверьте схему.

Можно также использовать функцию plcgenerateladder чтобы сгенерировать код лестничной схемы из диаграммы Stateflow.

Сгенерируйте лестничную схему вместе с испытательным стендом

Можно сгенерировать испытательный стенд для проверки сгенерированного кода лестничной схемы. Вы импортируете код вместе с испытательным стендом в вашей IDE и проверяете лестничную схему на соответствие с исходной диаграммой Stateflow с помощью испытательного стенда. Чтобы сгенерировать испытательный стенд вместе с кодом лестничной схемы:

  1. Откройте приложение PLC Coder Щелкните вкладку PLC Code.

  2. Нажмите Settings. Выберите опцию Generate Testbench for Subsystem.

  3. Щелкните график правой кнопкой мыши и выберите PLC Code > Generate Ladder Logic for Chart.

Испытательные стенды используют входы к исходной диаграмме Stateflow. Поэтому можно создать тестовые обвязки для исходного графика и повторно использовать их для валидации кода лестничной схемы.

Можно также использовать функцию plcgenerateladder для создания испытательных стендов.

После генерации кода лестничной схемы и испытательных стендов можно импортировать их в свою IDE. Для IDE CODESYS 3.5 смотрите Импортируйте код лестничной схемы в IDE CODESYS 3.5 и Проверьте схему.