Программное обеспечение 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). Симуляция и Генерация Кода Структурированного текста для примера Инструкций по Движению Роквелла имеют следующее отображение gor 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
)
Выполните симуляцию и сгенерируйте код с помощью шагов, описанных ранее.