Simulink® Программное обеспечение PLC Coder™ поддерживает рабочий процесс для генерации поведенческой симуляции и структурированного текстового кода для Rockwell Automation® RSLogix™ инструкции по управлению движением.
Этот рабочий процесс использует пример Симуляции и генерации структурированного текстового кода для Rockwell Motion Instructions в plccoderdemos папка. Этот пример предоставляет шаблон, который можно использовать с инструкциями по движению. Он содержит следующие файлы:
| Имя | Описание |
|---|---|
MotionControllerExample.slx | Модель Simulink, содержащая пример Stateflow® график для моделирования инструкций по движению. |
DriveLibrary.slx | Библиотека Simulink с диаграммой Stateflow, которая используется для моделирования привода (оси) реального мира с траекториями, задержками и другими параметрами. |
MotionTypesForSim.mat | MAT-файл, содержащий типы данных шины для |
Trajectory.m | MATLAB® файл класса для реализации трапеций скоростного профиля. Это используется, чтобы симулировать поведение |
MotionApiStubs.slx | Вспомогательный файл для генерации кода. |
MotionInstructionType.m | Файл класса перечисления MATLAB, который представляет тип вызовов API движения. Для примера, |
plc_keyword_hook.m | Вспомогательный файл, чтобы избежать искривления имен и ограничений по зарезервированным ключевым словам. |
plcgeneratemotionapicode.p | Функция, которая преобразует график в модели, чтобы сделать его подходящим для генерации кода. |
Прежде чем вы начнете, скопируйте файлы в примере в текущую рабочую папку.
Создайте модель Simulink с диаграммой Stateflow.
Загрузите типы данных шины из MotionTypesForSim.mat файла в рабочую область при помощи load функция.
Создайте данные, которые представляют инструкции по приводу и движению для графика. Для получения информации о добавлении данных к диаграммам Stateflow, смотрите Добавить данные Stateflow (Stateflow)

Скопируйте модель привода (оси) из DriveLibrary.slx файл в диаграмму Stateflow. Модель привода должна быть скопирована как атомарная субдиаграмма.

Логика привода Stateflow моделирует привод реального мира с такими параметрами, как траектория и задержка. Любая субдиаграмма имеет следующие данные:

Используйте диалоговое окно Subchart Mappings, чтобы сопоставить диск субдиаграммы данные хранилища данных памятей данными с локальными данными соответствующих имен в график контейнера. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes (Stateflow). Симуляция and Generating Structured Text Code для Rockwell Motion Instructions имеет следующее отображение для Drive1.

Используйте графические функции, чтобы создать инструкции motion API. Для примера, для Motion Servo On (MSO) инструкция:


Отображение между входами и выходами осуществляется посредством «pass by reference».
Создайте логику контроллера в другой субдиаграмме и используйте инструкции по движению, созданные на предыдущем шаге на графике. Controller1 в примере имеет следующую диаграмму Stateflow.

Можно запустить симуляцию на модели, содержащей инструкции по движению, и увидеть, как состояние меняет график контроллера и Drive субдиаграмма. Можно также записать локальные данные графики, такие как AXIS и MOTION_INSTRUCTION переменные Для получения дополнительной информации см. Раздел «Конфигурирование состояний и данных для логгирования» (Stateflow).

В конце симуляции записанные сигналы захватываются в базовом рабочем пространстве как переменная, называемая logsout. Его можно импортировать в Данные Моделирования Inspector.

Используйте plcgeneratemotionapicode функция для подготовки модели к генерации кода и генерации структурированного текстового кода. The plcgeneratemotionapicode принимает полное имя пути подсистемы, содержащей исходный график, в качестве входов и создает новую модель, из которой может быть сгенерирован структурированный текстовый код.
The plcdemo_motion_api_rockwell пример имеет поддержку только для следующих инструкций по движению:
MAM
MAS
MSF
MSO
Чтобы использовать другие инструкции по движению Rockwell Automation RSLogix в модели (Для примера, Motion Axis Jog (MAJ)) необходимо выполнить следующие шаги:
Потому что MAJ команда подобна MAM инструкция, создайте шину для MAJ с элементами, подобными элементам MAM.

Обновление MotionTypesForSim.mat файл с новыми определениями для MAJDATA и AXIS_SERVO_DRIVE.
На диаграмме Stateflow создайте графическую функцию, представляющую MAJ (подобно MAM). Назначьте соответствующие входы и выходы.

Создайте один переход с командами, чтобы задать выходные значения.

Удалите команды перехода и скопируйте графическую функцию в MotionApiStubs.slx.

Обновление functionName переменная в getDriveTemplateNames.m файл для включения MAJ.

Обновление DriveLibrary.slx файл для ответа на MAJ вызовы во время симуляции.
Создание isMAJ графическая функция (подобная isMAM).

Обновление Drive субдиаграмма для ответа на MAJ путем реализации необходимых переходов и т.д. (аналогично MAM как показано).

Создайте или обновите логику контроллера по мере необходимости. Создайте новое состояние и добавьте MAJ инструкция к нему (подобная MAM )

Выполните симуляцию и сгенерируйте код, используя шаги, описанные ранее.