Программное обеспечение Simulink ® PLC Coder™ поддерживает рабочий процесс для моделирования поведения и создания структурированного текстового кода для инструкций по управлению движением Rockwell 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 моделирует реальный привод с такими параметрами, как траектория и задержка. Любая вложенная диаграмма диска имеет следующие данные:

Диалоговое окно «Сопоставления вложенных диаграмм» используется для сопоставления данных памяти хранилища вложенных диаграмм дисков с локальными данными соответствующих имен в таблице контейнеров. Дополнительные сведения см. в разделе Сопоставление переменных для атомных подчисток и полей (поток состояний). Пример моделирования и генерации структурированного текстового кода для команд движения Роквелла имеет следующее сопоставление для Drive1.

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


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

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

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

Используйте plcgeneratemotionapicode подготовка модели к созданию кода и создание структурированного текстового кода. plcgeneratemotionapicode принимает полное имя пути подсистемы, содержащей исходную диаграмму, в качестве входных данных и создает новую модель, из которой может быть создан структурированный текстовый код.
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 )

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