凸轮

本节说明凸轮的概念、凸轮的运动及如何在 KINGSTAR 中使凸轮移动。

凸轮概念理解

凸轮为一常见的固定在旋转轴上的不规则形状机械元件。在凸轮机械零件中,有一个靠在凸轮边缘的从动件。当凸轮旋转轴旋转时,此从动件会上下移动,由于凸轮的外型为不规则的,每一次从动件在上下移动的距离也会不同。

电子凸轮 (ECAM) 使用此概念来定义主从轴间的关系。主轴如同旋转轴;从轴如同从动件;而凸轮决定其位置曲线,每一从轴的位置都会与主轴相互对应。主轴的起始值和两个相邻主轴位置之间的间隔因电子凸轮表而异。

以下为凸轮与电子凸轮 (ECAM) 的范例:

凸轮 电子凸轮 电子凸轮表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

主轴 从轴
0 100
10 102
45 101
87 9
125 94
190 91
. .
. .
358 99

使用凸轮

凸轮为一连接两个轴(主轴与从轴)的多轴运动。连接以后,移动主轴。在主轴移动的同时,从轴将会自动移动至主轴的对应位置。从轴的移动永远都会跟随著主轴,除非主轴移动至预设范围外或主轴被中断。主从轴的位置范围将依照自定义的凸轮表而定。

以下展示如何在 KINGSTAR 中使用线性凸轮。

SetCamTable -> SetAxisCam -> MoveAxis functions -> ReleaseAxis

定义凸轮表

在启动凸轮运动前需使用 SetCamTable 函式来定义包含主从轴位置的凸轮表。主从轴的默认值使用绝对座标。若不使用偏移或比例尺,轴在凸轮表中的位置(表位置)将与绝对位置相同;若添加偏移量或缩放比例,则需要使用指定的公式来计算表位置。更多关于偏移及比例尺的资讯请见:凸轮运动定义

周期性 (Periodic)

McCamTable 结构包含一称为 Periodic 的参数,此参数决定了凸轮运动曲线是否重复。当使用 SetCamTable 定义凸轮表时,可将 Periodic 设置为 TRUE 或 FALSE。TRUE 为重复;FALSE 为不重复。依照表位置的定义,凸轮运动曲线会以不同方式重复。

非周期性 (Non-periodic)

在非周期性凸轮运动中,只有当主轴在凸轮表中定义的范围内移动时,从轴才会跟随主轴移动。若主轴移出范围外,从轴即停止跟随并停止在凸轮表中的最后一个位置,而从轴状态将回到静止 (StandStill)。

非周期性 (Non-periodic)

周期性-相同范围

在周期性凸轮运动中,若从轴的起点和终点位置相同,从轴将在指定范围内周期性运动。

周期性-相同范围

周期性-连续

在周期性凸轮运动中,若从轴的起点位置和终点位置不同,则在每个周期都会添加偏移量到从轴的位置。

周期性-连续

凸轮运动定义

下一步,使用 SetAxisCam 指定轴为主轴及从轴,而从轴将连接主轴同步运动。您亦可决定是否在凸轮表中添加偏移或比例;主轴及从轴皆可设定各自的偏移与比例尺,也就是说,可为主轴或从轴各别添加偏移与比例,而不需两者皆添加。偏移与比例尺为各自独立的,可以使用一个或两者同时使用。例如:为主轴位置添加偏移或为从轴位置添加比例尺。

在以下指南中将介绍两个范例:(1) 偏移 (2) 偏移和比例尺。

偏移

添加偏移时需使用以下公式计算表位置:

MasterTablePos = MasterAbsPos - MasterOffset

SlaveTablePos = MasterTablePos 所对应的位置

SlaveAbsPos = SlaveTablePos + SlaveOffset

以下图为例。主位置偏移 6;从位置偏移 5。在凸轮表中设置主轴和从轴位置时,请注意是绝对位置减去偏移的结果。主轴的表位置 1、2、3 其实就是绝对位置 7、8、9。从轴的表位置 1、2、3 其实就是绝对位置 6、7、8。

偏移

偏移与比例尺

除了偏移,还可为凸轮表设置比例尺。以下图为例。主轴位置首先偏移 6,从轴位置偏移 5,而后凸轮表按比例放大 2 倍。使用以下公式计算表位置:

MasterTablePos = (MasterAbsPos - MasterOffset) / MasterScale

SlaveTablePos = MasterTablePos 所对应的位置

SlaveAbsPos = (SlaveTablePos * SlaveScale) + SlaveOffset

因凸轮表是依比例缩放的,需除以缩放因子以取得原始的表位置。因此,主轴的表位置 0.5、1、1.5 实际上是绝对位置 7、8、9。而从轴的表位置 0.5、1、1.5 实际上是绝对位置 6、7、8。

偏移与比例

凸轮启动模式

SetAxisCam 中可使用 StartMode 参数来决定如何启动凸轮。共有四种启动模式:camAbsolutecamRelativecamRampDistancecamRampTime

camAbsolute

camAbsolute 使用绝对座标。凸轮运动在设定 SetAxisCam 及使用 Move 函式来移动主轴之后启动。

若凸轮启动时主轴和从轴未就定位置,从轴将跳到目标位置,然后开始移动。建议在轴就定位后再使用此功能。

 

camRelative

camRelative 使用相对座标。从轴的当前位置将用作凸轮座标系的原点。偏移值将被忽略。凸轮运动在设定 SetAxisCam 及使用 Move 函式来移动主轴之后启动。

若凸轮启动时主轴和从轴未就定位置,从轴将跳到目标位置,然后开始移动。建议在轴就定位后再使用此功能。

 

camRampDistance

camRampDistance 使用绝对座标。当主轴移动一定距离时,从轴将开始移动。随著从轴的移动,它将越来越接近凸轮运动曲线,直到到达目标位置。可使用 SetAxisCam 中的 StartParameter 参数来指定距离。预设的距离单位为编码器计数。

以此图为例:当主轴向前移动六个单位,从轴则开始移动到相应的位置。并越来越接近凸轮运动曲线。当主轴向后移动两个单位时,从轴亦向后移动,直到到达主轴对应的凸轮位置。

SetAxisCam 设置完成并使用 Move 函式移动主轴后,从轴将开始与主轴同步。一旦主轴移动超过斜坡距离,从轴将就位。

 

camRampTime

camRampTime 使用绝对座标。从轴在指定的时间段内移动到与主轴对应的位置。可使用 SetAxisCam 中的 StartParameter 参数来指定时间,默认的时间单位为秒。

以此图为例:StartParameter 设定为 2 秒,主轴在位置 3。SetAxisCam 指令一发送,从轴即开始移动。2 秒后其将到达与主轴对应的凸轮位置。

SetAxisCam 设置完成,从轴将开始与主轴同步。一旦超过斜坡时间,从轴将就位。

移动凸轮轴

SetAxisCam 中的表位置设定完成后,即可开始移动轴。线性凸轮运动可以使用 MoveAxisAbsolute, MoveAxisAdditiveMoveAxisRelative 函式。以 MoveAxisAbsolute 为范例,其拥有 Position 参数,需将主轴绝对位置的值写进 Position

MoveAxisAbsolute 指令传送到 KINGSTAR 后,凸轮轴将开始移动。

拆卸凸轮轴

依设置和需要,从轴可以手动或自动分离。

手动:使用 ReleaseAxis 来分离主轴与从轴。

自动:若 McCamTable 结构中的 Periodic 设置为 FALSE,当主轴移动到凸轮表范围之外时,从轴将自动分离。

参见

RT 与 Win32 - KINGSTAR 运动

凸轮函式

.NET API - 运动类别

凸轮运动方法

.NET Class - IAxis 方法

IAxis.Cam

PLC 功能块 - 多轴

凸轮运动功能块