凸轮
本节说明凸轮的概念、凸轮的运动及如何在 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 参数来决定如何启动凸轮。共有四种启动模式:camAbsolute
、camRelative
、camRampDistance
及 camRampTime
。
camAbsolute | |
---|---|
若凸轮启动时主轴和从轴未就定位置,从轴将跳到目标位置,然后开始移动。建议在轴就定位后再使用此功能。 |
![]() |
camRelative | |
---|---|
若凸轮启动时主轴和从轴未就定位置,从轴将跳到目标位置,然后开始移动。建议在轴就定位后再使用此功能。 |
![]() |
camRampDistance | |
---|---|
以此图为例:当主轴向前移动六个单位,从轴则开始移动到相应的位置。并越来越接近凸轮运动曲线。当主轴向后移动两个单位时,从轴亦向后移动,直到到达主轴对应的凸轮位置。 当 SetAxisCam 设置完成并使用 Move 函式移动主轴后,从轴将开始与主轴同步。一旦主轴移动超过斜坡距离,从轴将就位。 |
![]() |
camRampTime | |
---|---|
以此图为例:StartParameter 设定为 2 秒,主轴在位置 3。SetAxisCam 指令一发送,从轴即开始移动。2 秒后其将到达与主轴对应的凸轮位置。 当 SetAxisCam 设置完成,从轴将开始与主轴同步。一旦超过斜坡时间,从轴将就位。 |
![]() |
移动凸轮轴
将 SetAxisCam 中的表位置设定完成后,即可开始移动轴。线性凸轮运动可以使用 MoveAxisAbsolute, MoveAxisAdditive 或 MoveAxisRelative 函式。以 MoveAxisAbsolute 为范例,其拥有 Position 参数,需将主轴绝对位置的值写进 Position。
将 MoveAxisAbsolute 指令传送到 KINGSTAR 后,凸轮轴将开始移动。
拆卸凸轮轴
依设置和需要,从轴可以手动或自动分离。
手动:使用 ReleaseAxis 来分离主轴与从轴。
自动:若 McCamTable 结构中的 Periodic 设置为 FALSE,当主轴移动到凸轮表范围之外时,从轴将自动分离。
参见
RT 与 Win32 - KINGSTAR 运动
.NET API - 运动类别
.NET Class - IAxis 方法
PLC 功能块 - 多轴