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