主要内容

仿真和代码生成运动指令

金宝app®PLC编码器™软件支持罗克韦尔自金宝app动化的行为仿真和结构化文本代码生成的工作流程®rslogix™运动控制说明。

使用模型中的运动指令的工作流程

此工作流程使用为罗克韦尔动作指令模拟和生成结构化文本代码示例在PLCCODERDEMOS.文件夹。此示例提供了一个模板,可以使用Motion指令。它包含以下文件:

名称 描述
motioncontrolleRexample.slx.

金宝app包含示例状态流的Simulink模型®用于建模运动说明的图表。

DriveLibrary.slx.

金宝appSimulink库具有状态流图表,用于使用轨迹,延迟和其他参数建模真实世界驱动器(轴)。

motiontypesforsim.mat.

包含总线数据类型的MAT文件AXIS_SERVO_DRIVEmotion_instruction.。这motioncontrolleRexample.slx.模型将MAT文件的内容加载到Workspace中。如果您正在创建新型号,则必须加载此Mat文件进行仿真和代码生成。

trajectory.m.

马铃薯®用于实现梯形速度剖面的类文件。这用于模拟该行为运动轴移动(MAM)命令。

motionapistubs.slx.

金宝app支持代码生成文件。

MotionInstructiontype.m.

matlab枚举类文件,表示Motion API调用的类型。例如,ISMAM,ISMSF.。此文件仅在仿真期间使用。

plc_keyword_hook.m.

辅助文件避免名称andgling和保留的关键字限制。

plcgeneratemotionapicode.p.

将图表中的函数转换为模型中的图表,使其适合代码生成。

在开始之前,将文件中的文件复制到当前工作文件夹。

  1. 使用StateFl金宝appow Chart创建Simulink模型。

  2. 加载来自的总线数据类型motiontypesforsim.mat.使用使用的文件进入工作区加载功能。

  3. 创建表示图表的驱动器和运动指令的数据。有关将数据添加到StateFlow图表的信息,请参阅添加状态流数据(州流)

  4. 复制来自的驱动器(轴)模型DriveLibrary.slx.文件进入StateFlow图表。必须将驱动模型作为原子子剖视图复制。

    驱动器逻辑状态溢图模拟了具有轨迹和延迟等参数的真实世界驱动器。任何驱动子图标都具有以下数据:

  5. 使用子剪影对话框将驱动子图形数据存储内存数据与容器图表中相应名称的本地数据映射。有关更多信息,请参阅地图变量为原子子剖面和框(州流)。这为罗克韦尔动作指令模拟和生成结构化文本代码示例具有以下映射Drive1.

  6. 采用图形功能创建Motion API指令。例如,对于运动伺服ON(MSO)操作说明:

    输出的输入之间的映射是通过“通过引用传递”。

  7. 在另一个子区中创建控制器逻辑,并使用图表中上一步中创建的动作指令。控制器1在该示例中,具有以下StateFlow图表。

运动API模型的仿真

您可以在包含动作指令的模型上运行模拟,并查看状态更改控制器图表和驾驶子图文。您还可以记录图表的本地数据,例如motion_instruction.变量有关更多信息,请参阅配置状态和数据进行日志记录(州流)

在模拟结束时,将记录的信号作为调用变量捕获在基础工作区中Logsout.。这可以导入模拟数据检查器。

结构化文本代码生成

使用plcgeneratemotionapicode.用于准备代码生成的模型并生成结构化文本代码的函数。这plcgeneratemotionapicode.占据包含原始图表的子系统的完整路径名,作为输入,并创建一个可以生成结构化文本代码的新模型。

为其他运动指令金宝app添加支持

plcdemo_motion_api_rockwell.示例仅支持以下运动说明:金宝app

  • 妈妈

  • 马斯

  • MSF.

  • MSO

使用其他罗克韦尔自动化RSLogix运动说明(例如,运动轴慢跑(Maj)),您必须执行以下步骤:

  1. 因为这maj指令类似于妈妈指令,创建一个公共汽车maj与类似的元素妈妈

  2. 更新motiontypesforsim.mat.具有新定义的文件Majdata.AXIS_SERVO_DRIVE

  3. 在StateFlow图表中,创建表示表示的图形功能maj(相似妈妈)。分配适当的输入和输出。

  4. 使用命令创建单个转换以设置输出值。

  5. 删除转换命令并将图形功能复制到motionapistubs.slx.

  6. 更新functionName.变量在getdrivetemplatenames.m.文件包含maj

  7. 更新DriveLibrary.slx.文件响应maj仿真期间呼叫。

    • 创建ismaj.图形功能(类似于ismam.)。

    • 更新驾驶子图文回应maj通过实施所需的转换等(类似于妈妈如图所示)。

  8. 根据需要创建或更新控制器逻辑。创建一个新状态并添加maj指导它(类似于妈妈

  9. 使用前面描述的步骤执行模拟并生成代码。