Программное обеспечение Simulink® PLC Coder™ поддерживает рабочий процесс для моделирования на поведенческом уровне и генерацию кода структурированного текста для команд управления движения Роквелла Automation® RSLogix™.
Этот рабочий процесс использует Симуляцию и Генерацию Кода Структурированного текста для примера Инструкций по Движению Роквелла в 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, чтобы сопоставить данные оперативной памяти хранилища данных подграфика диска с локальными данными соответствующих имен в контейнерном графике. Для получения дополнительной информации смотрите Переменные Карты для Атомарных Подграфиков и Полей (Stateflow). Симуляция и Генерация Кода Структурированного текста для примера Инструкций по Движению Роквелла имеют следующее отображение для Drive1
.
Используйте графические функции, чтобы создать инструкции по API движения. Например, для Motion Servo On (MSO)
инструкция:
Отображение между входными параметрами к выходным параметрам через "передачу ссылкой".
Создайте логику контроллера в другом подграфике и используйте инструкции по движению, созданные на предыдущем шаге в графике. Controller1
в примере имеет следующую диаграмму Stateflow.
Можно запустить симуляцию на модели, содержащей инструкции по движению, и видеть изменения состояния график контроллера и Drive
подграфик. Можно также регистрировать локальные данные графика, такого как AXIS
и the MOTION_INSTRUCTION
переменные Для получения дополнительной информации, смотрите, Конфигурируют состояния и Данные для Логгирования (Stateflow).
В конце симуляции регистрируемые сигналы получены в базовом рабочем пространстве как переменная под названием logsout
. Это может быть импортировано в Инспектора Данных моделирования.
Используйте plcgeneratemotionapicode
функция, чтобы подготовить модель к генерации кода и сгенерировать код структурированного текста. plcgeneratemotionapicode
берет имя полного пути подсистемы, содержащей исходный график как вход, и создает новую модель, из которой может быть сгенерирован код структурированного текста.
plcdemo_motion_api_rockwell
пример имеет поддержку только следующих инструкций по движению:
MAM
MAS
MSF
MSO
Использовать другие инструкции по движению RSLogix Rockwell Automation в модели (Например, 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
)
Выполните симуляцию и сгенерируйте код с помощью шагов, описанных ранее.