凸輪

本節說明凸輪的概念、凸輪的運動及如何在 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 功能塊 - 多軸

凸輪運動功能塊