M-R透過DMCNET擴充A2-F範例

以DMCNET讓M-R(主站)外擴A2-F(從站),並透過EzASD編程來控制外擴軸A2-F

範例專案 : dmcnet_sample_20161101

dmcnet_connect_a2

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。

 

開發注意事項

  1. 底層封包發送原則

DMCNET通訊為每1 ms收發一筆封包,因此要避免在1 ms內針對同一個節點下達多個封包,否則將導致封包被覆蓋而失效。

  1. 確保處於閒置狀態

每個命令間須使用DMC_READY_n確保通訊未忙線,忙線時對DMCNET下達命令將不會正確執行 (建議用於順序性的語言MSM/ST,由於該旗標會不斷的ON/OFF故不適合用於LD)。

  1. 運動前確保伺服啟動

運動相關的命令操作須使用DMC_S_SO_n確保伺服啟動。

  1.  組合性命令

由框架提供的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    

 

開發技巧

  1. DMCNET API

ServoMotion框架已封裝了高階API指令提供使用,而方案中任何的控制基本上也是透過這些API來實現。

  1. 封裝組合性命令

以順序式語言(MSM/ST) 封裝組合性命令於待觸發單元(Program)/函式(Function),將能簡化你的代碼。

dmcnet_combo_command

  1. DMC_DMCNET (Interpolated position mode)

使用DMC_DMCNET API進行A2-F的運動控制是個常用的手法,例如:手輪、插值器、跑凸輪 … 等

Target Position = Current Position + Delta Position

dmcnet_ip

ex 1 : DMC_DMCNET 手輪控制

dmcnet_ip_p517_2

dmcnet_ip_p517_1

 

發表迴響