理论教育 CANopen总线控制设计方法成果

CANopen总线控制设计方法成果

时间:2023-10-22 理论教育 版权反馈
【摘要】:我们在第12章讨论过采用CANopen总线控制多个设备包括伺服驱动。图14-27 添加总线界面和添加驱动设备在基于CANopen总线下,我们有以下单轴运动功能块,如图14-28所示。做叠加运动时,我们可以调入MC_MoveAdditive_LXM来实现。如图14-36所示程序,在位置运动功能块,我们给走的距离和速度赋值,如果要在走一定距离时,以不同的速度进行,则在MC_MoveAdditive_LXM功能块的距离Distance上赋值“0”。速度变化的触发是由k6的上升沿引起。

CANopen总线控制设计方法成果

我们在第12章讨论过采用CANopen总线控制多个设备包括伺服驱动。在这一节我们将讨论基于CANopen总线的运动控制功能块如何使用。

如图14-27所示,我们

●首先添加和组态CANopen总线界面;(1)

●在总线界面下添加驱动设备,如LEXIUM05和LEXIUM32(2)。

978-7-111-46531-7-Chapter14-29.jpg

图14-27 添加总线界面和添加驱动设备

在基于CANopen总线下,我们有以下单轴运动功能块,如图14-28所示。

在程序区,调入一个运算块,如图14-29所示。点击问号旁的输入助手符号。

打开输入助手,如图14-30所示,选择一个单轴运动功能块,如MC_Jog_LXM,按“确定”键。

978-7-111-46531-7-Chapter14-30.jpg

图14-28 基于CANopen总线的单轴运动功能块

978-7-111-46531-7-Chapter14-31.jpg

图14-29 调入运算块

978-7-111-46531-7-Chapter14-32.jpg

图14-30 在库中选择功能块

调入此功能块,如图14-31所示,这是一个电动机轴的点动功能块。

我们可以配置好功能块的输入变量,如图14-32所示。在功能块的输入点Axis配置运动轴的名字。例如,在图14-27中添加的驱动设备Lexium32A的轴名称为Lexium_32_A,所以,配置轴的输入变量就是Lexium_32_A,如图14-32所示。其他输入按照说明配置即可。d1_forward为电动机向前按钮,d1_backward为向后按钮,d1_fast为快/慢速切换按钮。

978-7-111-46531-7-Chapter14-33.jpg

图14-31 电动机轴的点动功能块

978-7-111-46531-7-Chapter14-34.jpg

图14-32 配置好功能块的输入变量

在操作这些动作时,我们首先要给电动机使能,这就要用到MC_Power_LXM。同理,调入此功能块并配置好输入,如图14-33所示。当开关K闭合时,配置在总线上的电动机Lexium_32_A使能。

需要电动机寻原点时,调入寻原点功能块,如图14-34所示。在Homing-Mode输入点选择寻原点方式,然后填好其他参数,就可以运行这个功能块了。

做点到点运动时,我们可以执行相对运动和绝对运动两种模式。位置模式功能块如图14-35所示。

做叠加运动时,我们可以调入MC_MoveAdditive_LXM来实现。例如,我们在做一个点到点运动时,需要在这段距离中有不同的速度。如图14-36所示程序,在位置运动功能块,我们给走的距离和速度赋值,如果要在走一定距离时,以不同的速度进行,则在MC_MoveAdditive_LXM功能块的距离Distance上赋值“0”。速度赋值写上改变的数值。

978-7-111-46531-7-Chapter14-35.jpg

图14-33 电动机轴使能功能块

978-7-111-46531-7-Chapter14-36.jpg

图14-34 寻原点功能块

978-7-111-46531-7-Chapter14-37.jpg

图14-35 位置模式功能块

注意:改变数值的生效是在k6的上升沿触发。如图14-37所示,图的上边曲线为速度变化曲线,下边曲线为位置变化曲线。速度变化的触发是由k6的上升沿引起。

978-7-111-46531-7-Chapter14-38.jpg(www.daowen.com)

图14-36 叠加运动程序

978-7-111-46531-7-Chapter14-39.jpg

图14-37 速度叠加运动

如果要在走完一个距离后,再以不同的速度叠加一个距离,则在MC_MoveAdditive_LXM功能块的距离Distance上赋值“叠加的距离”。速度赋值写上走这段距离的速度值。速度值的改变是由k6的上升沿触发,走的位置是位置功能块的距离值加上叠加功能块的距离值。位置叠加运动如图14-38所示。

978-7-111-46531-7-Chapter14-40.jpg

图14-38 位置叠加运动

当驱动器出现问题或对驱动器的状态进行监控时,我们可以调用如图14-39所示的驱动器监控功能集群。

例如,对驱动器进行复位操作,调用MC_Reset_LXM。

按“确定”键,调入复位功能块,如图14-40所示。k7上升沿触发复位。

978-7-111-46531-7-Chapter14-41.jpg

图14-39 驱动器监控功能集群

978-7-111-46531-7-Chapter14-42.jpg

当我们需要操控驱动器内部的运动任务时,我们可以调用如下内部任务集群的功能块来完成对驱动器内部任务的操控,如图14-41所示。

需要注意的是:可以有内部运动任务的驱动器是Lexium32M,所以在组态硬件时,要添加的设备是Lexium32M,如图14-42所示。

在启动运动任务功能块StartMotionSequence_LXM时,只要把内部运动任务号赋值给DataSetNumber,然后执行即可驱动一个内部运动任务。而读写运动任务却是需要一组参数的交换。因此读/写功能块中的DataSet是一个结构变量。例如,如图14-43所示,我们命名s1、s2为这个结构变量。

978-7-111-46531-7-Chapter14-43.jpg

图14-41 驱动器内部任务操控集群

978-7-111-46531-7-Chapter14-44.jpg

图14-42 通过总线操控驱动器内部任务

当s1后面加“.”时,它下拉的参数就是这个结构体下的所有变量,如图14-44所示。

通过对这些变量的写操作,可以随心所欲地修改内部运动任务的运动轨迹和执行条件,

无限地扩展了运动任务的规模。对这些变量的写操作程序如图14-45所示。

978-7-111-46531-7-Chapter14-45.jpg

图14-43 命名结构变量

这些运动任务在驱动器调试软件下的编辑如图14-46所示。

通过这个事例,我们知道驱动器内部任务的编辑不仅可以用驱动器调试软件来编辑,也可以在SoMachine程序中编辑使用,也就是说我们把运动任务放在驱动器里,而采用程序来启动执行运动序列,它的好处是不占用控制器的CPU资源,使运动更加迅速。

978-7-111-46531-7-Chapter14-46.jpg

图14-44 组成内部运动任务的所有参数

978-7-111-46531-7-Chapter14-47.jpg

图14-45 对变量的写操作程序

978-7-111-46531-7-Chapter14-48.jpg

图14-46 内部运动任务的编辑

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈