以DMCNET讓M-R(主站)外擴A2-F(從站),並透過EzASD編程來控制外擴軸A2-F
範例專案 : dmcnet_sample_20161101
M-R內建控制3軸,但如果應用的情境需求超過3軸時,可透過DMCNET外接擴充軸來實現
再ServoMotion的框架下,已存有較高階的API來控制外擴軸
在這個範例專案中,我們也透過這些(DMCNET ) API演示對外擴軸A2-F的控制
其中包含有 寫參數、原點賦歸、點對點移動、變數監控、手輪控制、搭配插值器與凸輪…等
有這類需求的你,不妨下載範例專案來參考看看。
連線前設定
1.P3-00設定為1~6,網路節點間不可重複。
2.P3-01設定0203。(出廠值是 0x2303 For 軸卡協議,需修改)
3.P3-12設定0x0100(維持驅動器斷電前的參數)。
4.再設定P1-44、P1-45齒輪比設定值。
5.重新上電生效P3-00與P3-12。
開發注意事項
- 底層封包發送原則
DMCNET通訊為每1 ms收發一筆封包,因此要避免在1 ms內針對同一個節點下達多個封包,否則將導致封包被覆蓋而失效。
- 確保處於閒置狀態
每個命令間須使用DMC_READY_n確保通訊未忙線,忙線時對DMCNET下達命令將不會正確執行 (建議用於順序性的語言MSM/ST,由於該旗標會不斷的ON/OFF故不適合用於LD)。
- 運動前確保伺服啟動
運動相關的命令操作須使用DMC_S_SO_n確保伺服啟動。
- 組合性命令
由框架提供的DMCNET API皆為單筆封包的收/送,因此部分命令可能須由多個API組合而成(組合性命令使用時須同時滿足上述兩點要求) 。
參數 | |
Read | Write |
DMC_WR_1_PAR_KM + DMC_SET_MON1 + DMC_GET_MON_D |
DMC_WR_1_PAR_KM |
DMC_WR_2_PAR_KM |
系統變數 |
Read |
DMC_SET_MON1 + DMC_GET_MON_D |
運動控制 | ||||
---|---|---|---|---|
Homing | Profile Position | Profile Velocity | Profile Torque | Interpolated Position |
DMC_HM_SET + DMC_HM_RUN |
DMC_PP_ABS | DMC_PV_RUN | DMC_TRQ_RUN | DMC_DMCNET |
DMC_PP_INC_CMD | DMC_PV_RUN_TQLT | DMC_TRQ_RUN_SLT | ||
DMC_PP_INC_FB | DMC_PV_ACC | |||
DMC_PP_ACC |
開發技巧
- DMCNET API
ServoMotion框架已封裝了高階API指令提供使用,而方案中任何的控制基本上也是透過這些API來實現。
- 封裝組合性命令
以順序式語言(MSM/ST) 封裝組合性命令於待觸發單元(Program)/函式(Function),將能簡化你的代碼。
- DMC_DMCNET (Interpolated position mode)
使用DMC_DMCNET API進行A2-F的運動控制是個常用的手法,例如:手輪、插值器、跑凸輪 … 等
Target Position = Current Position + Delta Position
ex 1 : DMC_DMCNET 手輪控制