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

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