Simulink® Программное обеспечение PLC Coder™ поддерживает рабочий процесс для генерации поведенческой симуляции и структурированного текстового кода для Rockwell Automation® RSLogix™ инструкции по управлению движением.
Этот рабочий процесс использует пример Симуляции и генерации структурированного текстового кода для Rockwell Motion Instructions в 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 моделирует привод реального мира с такими параметрами, как траектория и задержка. Любая субдиаграмма имеет следующие данные:
Используйте диалоговое окно Subchart Mappings, чтобы сопоставить диск субдиаграммы данные хранилища данных памятей данными с локальными данными соответствующих имен в график контейнера. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes (Stateflow). Симуляция and Generating Structured Text Code для Rockwell Motion Instructions имеет следующее отображение для Drive1
.
Используйте графические функции, чтобы создать инструкции motion API. Для примера, для Motion Servo On (MSO)
инструкция:
Отображение между входами и выходами осуществляется посредством «pass by reference».
Создайте логику контроллера в другой субдиаграмме и используйте инструкции по движению, созданные на предыдущем шаге на графике. Controller1
в примере имеет следующую диаграмму Stateflow.
Можно запустить симуляцию на модели, содержащей инструкции по движению, и увидеть, как состояние меняет график контроллера и 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)
) необходимо выполнить следующие шаги:
Потому что 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
)
Выполните симуляцию и сгенерируйте код, используя шаги, описанные ранее.