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

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

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

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

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

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

DriveLibrary.slx

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

MotionTypesForSim.mat

MAT-файл, содержащий типы данных шины для AXIS_SERVO_DRIVE и MOTION_INSTRUCTION. The 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, чтобы сопоставить диск субдиаграммы данные хранилища данных памятей данными с локальными данными соответствующих имен в график контейнера. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes (Stateflow). Симуляция and Generating Structured Text Code для Rockwell Motion Instructions имеет следующее отображение для Drive1.

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

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

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

Симуляция модели Motion API

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

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

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

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

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

The 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. Выполните симуляцию и сгенерируйте код, используя шаги, описанные ранее.