exponenta event banner

Моделирование и создание кода команд движения

Программное обеспечение Simulink ® PLC Coder™ поддерживает рабочий процесс для моделирования поведения и создания структурированного текстового кода для инструкций по управлению движением Rockwell Automation ® RSLogix™.

Рабочий процесс использования инструкций по движению в модели

В этом рабочем процессе используется пример моделирования и генерации структурированного текстового кода для инструкций по движению Роквелла в plccoderdemos папка. В этом примере представлен шаблон, который можно использовать с инструкциями по движению. Он содержит следующие файлы:

ИмяОписание
MotionControllerExample.slx

Модель Simulink, содержащая пример диаграммы Stateflow ® для моделирования инструкций по движению .

DriveLibrary.slx

Библиотека Simulink с диаграммой Stateflow, которая используется для моделирования реального привода (оси) с траекториями, задержками и другими параметрами.

MotionTypesForSim.mat

MAT-файл, содержащий типы данных шины для AXIS_SERVO_DRIVE и MOTION_INSTRUCTION. MotioncontrollerExample.slx модель загружает содержимое MAT-файла в рабочую область. При создании новой модели необходимо загрузить этот MAT-файл для моделирования и создания кода.

Trajectory.m

Файл класса MATLAB ® для реализации трапециевидного профиля скорости. Используется для моделирования поведения Motion Axis Move (MAM) команда.

MotionApiStubs.slx

Поддержка файла для создания кода.

MotionInstructionType.m

Файл класса перечисления MATLAB, представляющий тип вызовов API движения. Например, isMAM, isMSF. Этот файл используется только во время моделирования.

plc_keyword_hook.m

Вспомогательный файл, чтобы избежать искажения имен и зарезервированных ограничений по ключевым словам.

plcgeneratemotionapicode.p

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

Перед запуском скопируйте файлы в примере в текущую рабочую папку.

  1. Создайте модель Simulink с диаграммой Stateflow.

  2. Загрузите типы данных шины из MotionTypesForSim.mat в рабочую область с помощью load функция.

  3. Создайте данные, представляющие инструкции по диску и движению для диаграммы. Сведения о добавлении данных в диаграммы Stateflow см. в разделе Добавление данных Stateflow (Stateflow)

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

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

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

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

    Отображение между входами и выходами осуществляется посредством «pass by reference».

  7. Создайте логику контроллера в другом подграфе и используйте команды движения, созданные на предыдущем шаге диаграммы. Controller1 в примере имеет следующую диаграмму Stateflow.

Моделирование модели API движения

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

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

Создание структурированного текстового кода

Используйте plcgeneratemotionapicode подготовка модели к созданию кода и создание структурированного текстового кода. plcgeneratemotionapicode принимает полное имя пути подсистемы, содержащей исходную диаграмму, в качестве входных данных и создает новую модель, из которой может быть создан структурированный текстовый код.

Добавление поддержки для других инструкций по перемещению

plcdemo_motion_api_rockwell В примере поддерживаются только следующие инструкции по перемещению:

  • MAM

  • MAS

  • MSF

  • MSO

Использование других инструкций Rockwell Automation RSLogix по движению в модели (например, Motion Axis Jog (MAJ)), необходимо выполнить следующие шаги:

  1. Потому что MAJ инструкция аналогична MAM инструкция, создайте шину для MAJ с элементами, аналогичными элементам MAM.

  2. Обновить MotionTypesForSim.mat файл с новыми определениями для MAJDATA и AXIS_SERVO_DRIVE.

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

  4. Создайте одиночный переход с командами для установки выходных значений.

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

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

  7. Обновить DriveLibrary.slx файл для ответа MAJ вызовы во время моделирования.

    • Создать isMAJ графическая функция (аналогична isMAM).

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

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

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