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

Программное обеспечение Simulink® PLC Coder™ поддерживает рабочий процесс для моделирования на поведенческом уровне и генерацию кода структурированного текста для команд управления движения Роквелла 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. Используйте диалоговое окно Subchart Mappings, чтобы сопоставить данные оперативной памяти хранилища данных субдиаграммы диска с локальными данными соответствующих имен в контейнерном графике. Для получения дополнительной информации смотрите Переменные Карты для Атомарных Субдиаграмм и Полей (Stateflow). Симуляция и Генерация Кода Структурированного текста для примера Инструкций по Движению Роквелла имеют следующее отображение для Drive1.

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

    Отображение между входными параметрами к выходным параметрам через "передачу ссылкой".

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

Симуляция модели API движения

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

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

Генерация кода структурированного текста

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

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

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

  • MAM

  • MAS

  • MSF

  • MSO

Использовать другие инструкции по движению RSLogix Rockwell Automation в модели (Например, 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. Выполните симуляцию и сгенерируйте код с помощью шагов, описанных ранее.