Программное обеспечение 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)

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