自定義凸輪表: 首先自定義凸輪表聲明: VAR_GLOBAL D1_CAM :MC_CAM_REF; 凸輪表名字映射 D1_xyva :ARRAY[0..4] OF SMC_CAMXYVA; 凸輪表點映射,數組多少決凸輪點的多少 END_VAR 然后就著手在程序里面編寫凸輪表的點坐標。 (*CAM1 Table made*) D1_CAM.byType:=3; D1_CAM.strCAMName:='D1_CAM';凸輪表名字 D1_CAM.wCamStructID:=56372; D1_CAM.nElements:=5;凸輪表點數 D1_CAM.xStart:=0;起點 D1_CAM.xEnd:=360;終點 D1_CAM.pce:=ADR(D1_xyva);凸輪表地址映射 D1_xyva[0].dX:=0; D1_xyva[0].dY:=0; D1_xyva[0].dV:=0; D1_xyva[0].dA:=0; 自定義數組的數據里面必須包含起點(xya【0】)和終點(xEnd). MC_CAM_REF輸入輸出引腳定義: MC_CAM_REF(STRUCT) 這個數據類型是庫“SM3_Basic.library”的一部分。它代表一個普通CAM并包含如下元素: 組件 | 類型 | 初始值 | 描述 | wCamStructID | WORD | 16#DC34 | | byType | BYTE | 0 | 0=多項式的,1=等距的,2=元素最優化的,非等距的 3= XYVA(由主設備位置,從設備位置,速度,加速度組成的特定點的多項式描述) | byVarType | BYTE | 0 | 1: INT 2: UINT 3: DINT 4: UDINT 5: REAL 6: LREAL | xStart | LREAL | | CAM域。主設備的起始位置。 | xEnd | LREAL | | CAM域。主設備的終止位置。 | nElements | INT | | 元素個數,它依賴于從設備位置、主設備/從設備位置或XYAV點的類型編號。 | nTappets | INT | | 開關動作的個數。 | pce | POINTER TO BYTE | 0 | 指向SMC_CAMElement或SMC_CamTable的指針。 | pt | POINTER TO SMC_CAMTappet | 0 | 指向SMC_CAMElement或SMC_CamTable的指針。 | dwTappetActiveBits | DWORD | | 內部變量。 | strCAMName | STRING | '' | CAM名稱。 | byInterpolationQuality | BYTE | 1 | 1 = 線性插補。 3 = 三次方插補。 | bChangedOnline | BOOL | FALSE | 內部變量。 |
MC_CAMTABLESELECT(FB) | 類型 | 初始值 | 描述 | VAR_IN_OUT | | | | Master | AXIS_REF | | 關于主軸,見AXIS_REF_SM3。 | Slave | AXIS_REF | | 關于從軸,見AXIS_REF_SM3。 | CamTable | MC_CAM_REF | | 關于CAM描述,見MC_CAM_REF | VAR_INPUT | | | | Execute | BOOL | FALSE | 輸入值的上升沿將啟動該功能塊的執行。 | Periodic | BOOL | TRUE | TRUE =周期的, FALSE = 非周期的 | MasterAbsolute | BOOL | TRUE | TRUE = 絕對, FALSE = 相對 坐標 | SlaveAbsolute | BOOL | TRUE | TRUE = 絕對, FALSE = 相對 坐標 | VAR_OUTPUT | | | | Done | BOOL | FALSE | 如果預選已經完成,則為TRUE | Busy | BOOL | FALSE | 當功能塊執行還沒結束時為TRUE。 | Error | BOOL | FALSE | 在功能塊內部發生錯誤的信號。 | ErrorID | SMC_ERROR | 0 | 錯誤指示,見SMC_Error。 | CamTableID | MC_CAM_ID | | 要被功能塊MC_CamID使用的CAM工作臺標識號。 |
注意:
- 一個虛擬軸可被用作主軸。
- 當輸出Done為TRUE時,CamTableID 有效且可以在MC_CamIn中使用。
MC_CAMIN (FB) | | | | VAR_IN_OUT | | | | Master | | | 關于主軸,見AXIS_REF_SM3。 | Slave | | | 關于從軸,見AXIS_REF_SM3。 | VAR_INPUT | | | | Execute | | | | MasterOffset | | | | SlaveOffset | | | | MasterScaling | | | | SlaveScaling | | | | StartMode | | | | CamTableID | | | 所用的CAM工作臺的標識符,MC_CamID的輸出。 | VelocityDiff | | | | Acceleration | | | | Deceleration | | | | TappetHysteresis | | | | VAR_OUTPUT | | | | InSync | | | 如果從設備根據CAM工作臺同步于主設備則值為TRUE。 | Busy | | | | CommandAborted | | | | Error | | | | ErrorID | | | | EndOfProfile | | | | Tappets | | | 要被SMC_GetTappetValue評估的挺桿信號。 |
- 主設備不一定是固定的。
- 如果在執行MC_CamIn 時實際的主設備和從設備的位置并不符合于偏移值,則要么發生一個錯誤,要么系統自動處理出現的偏差。
- StartMode: CAM要么“絕對”地要么“相對”地被定位于主-從設備的位置。“ramp-in”是供貨商定義的值。它可以與附加參數結合起來,比如主設備距離參數、加速度參數或者其他供貨商確定的參數,而從設備ramp-in 到凸輪分布中(“飛行結合”)。
- 從設備偏置的機械模擬是一個以附加固定層厚度焊接的凸輪。因此,從設備位置總有固定偏移,這個偏移假設為線性引導從設備挺桿,可被解釋為主設備軸的軸線偏移。
MC_CAMOUT (FB) | 類型 | 初始值 | 描述 | VAR_IN_OUT | | | | Slave | AXIS_REF | | 關于從軸,見AXIS_REF_SM3 | VAR_INPUT | | | | Execute | BOOL | FALSE | 輸入值的上升沿將啟動該功能塊的執行。 | VAR_OUTPUT | | | | Done | BOOL | FALSE | 如果凸輪被放開為TRUE。 | Busy | BOOL | FALSE | 當功能塊執行還沒結束時為TRUE。 | Error | BOOL | FALSE | 在功能塊內部發生錯誤的信號。 | ErrorID | SMC_ERROR | 0 | 錯誤指示,見SMC_Error。 |
注意:
- 假設該命令被后面還有別的對于MC_Stop, MC_GearIn 實例的命令。如果沒有其他命令跟隨,則默認條件應該是:保持前一個速度。
電子凸輪相比于機械凸輪有很大的靈活性和自由性。我們可以通過改變相應點的位置就實現了對凸輪軌跡的改變,就不需要像以前那樣更改機械裝置。而且電子凸輪使用起來方便有很大的優越性,可以完全替代機械凸輪,只是相對成本比較高。 對于其用法和程序建立當然也會比較復雜些,特別對于凸輪表的建立,直接關系到凸輪構建的成功與否,另外就是要對加工工藝非常熟悉。
|