西門子PLC STEP7 SMART運動向導根據所選組態選項創建唯一的指令子程序,從(cong) 而使運動軸的控製更容易。各運動指令均具有“AXISx_”前綴,其中x代表軸通道編號。由於(yu) 每條運動指令都是一個(ge) 子程序,所以11條運動指令使用11個(ge) 子程序。
(說明:運動指令使程序所需的存儲(chu) 空間增加多達1700個(ge) 字節。可以刪除未使用的運動指令來降低所需的存儲(chu) 空間。要恢複刪除的運動指令,隻需再次運行運動向導。)
表1:
運動控製指令使用準則必須確保在同一時間僅(jin) 有一條運動指令激活。
可在中斷例程中執行AXISx_RUN和AXISx_GOTO。但是,如果運動軸正在處理另一命令時,不要嚐試在中斷例程中啟動指令。如果在中斷程序中啟動指令,則可使用 AXISx_CTRL指令的輸出來監視運動軸是否完成移動。
運動向導根據所選的度量係統自動組態速度參數(Speed和C_Speed)和位置參數(Pos或C_Pos)的值。對於(yu) 脈衝(chong) ,這些參數為(wei) DINT值。對於(yu) 工程單位,這些參數是所選單位類型對應的 REAL值。例如:如果選擇厘米 (cm),則以厘米為(wei) 單位將位置參數存儲(chu) 為(wei) REAL值並以厘米/秒(cm/sec)為(wei) 單位將速度參數存儲(chu) 為(wei) REAL值。
有些特定位置控製任務需要以下運動指令:
要在每次掃描時執行指令,請在程序中插入AXISx_CTRL指令並使用SM0.0觸點。
要指定運動到絕對位置,必須首先使用AXISx_RSEEK或AXISx_LDPOS指令建立零位置。
要根據程序輸入移動到特定位置,請使用AXISx_GOTO指令。
要運行通過位置控製向導組態的運動包絡,請使用AXISx_RUN指令。
其它位置指令為(wei) 可選項。
1.AXISx_CTRL:
功能:啟用和初始化運動軸,方法是自動命令運動軸每次CPU更改為(wei) RUN模式時加載組態/包絡表。
▲ 圖1
需要注意的是,在您的項目中隻對每條運動軸使用此子例程一次,並確保程序會(hui) 在每次掃描時調用此子例程。使用SM0.0(始終開啟)作為(wei) EN參數的輸入。
MOD_EN:參數必須開啟,才能啟用其它運動控製子例程向運動軸發送命令。如果MOD_EN參數關(guan) 閉,運動軸會(hui) 中止所有正在進行的命令;
Done:參數會(hui) 在運動軸完成任何一個(ge) 子例程時開啟;Error:參數存儲(chu) 該子程序運行時的錯誤代碼;C_Pos:參數表示運動軸的當前位置。根據測量單位,該值是脈衝(chong) 數 (DINT)或工程單位數(REAL);
C_Speed:參數提供運動軸的當前速度。如果您針對脈衝(chong) 組態運動軸的測量係統,C_Speed是一個(ge) DINT數值,其中包含脈衝(chong) 數/每秒。如果您針對工程單位組態測量係統,C_Speed是一個(ge) REAL數值,其中包含選擇的工程單位數/每秒(REAL)。
C_Dir:參數表示電機的當前方向:信號狀態0= 正向;信號狀態1= 反向;
2、AXISx_DIS
功能:運動軸的DIS輸出打開或關(guan) 閉。這允許您將DIS輸出用於(yu) 禁用或啟用電機控製器。
▲ 圖2
EN位打開以啟用子例程時,DIS_ON參數控製運動軸的DIS輸出。
注意:
如果您在運動軸中使用DIS輸出,可以在每次掃描時調用該子例程,或者僅(jin) 在您需要更改DIS輸出值時進行調用。若實際DIS連接了電機驅動器的DIS輸入,如果不使能則可能導致電機不運轉。
3、AXISx_MAN:
功能,是將運動軸置為(wei) 手動模式;這允許電機按不同的速度運行,或沿正方向或負方向慢進。
▲ 圖3
RUN參數會(hui) 命令運動軸加速至指定的速度(Speed參數)和方向(Dir參數)。用戶可以在電機運行時更改 Speed參數,但Dir參數必須保持為(wei) 常數。禁用 RUN參數會(hui) 命令運動軸減速,直至電機停止;
JOG_P(點動正向旋轉)或JOG_N(點動反向旋轉)參數會(hui) 命令運動軸正向或反向點動。如果JOG_P或JOG_N參數保持啟用的時間短於(yu) 0.5秒,則運動軸將通過脈衝(chong) 指示移動JOG_INCREMENT中指定的距離。如果JOG_P或JOG_N參數保持啟用的時間為(wei) 0.5秒或更長,則運動軸將開始加速至指定的JOG_SPEED;
Speed 參數決(jue) 定啟用RUN時的速度。如果用戶針對脈衝(chong) 組態運動軸的測量係統,則速度為(wei) DINT值(脈衝(chong) 數/每秒)。如果您針對工程單位組態運動軸的測量係統,則速度為(wei) REAL值(單位數/每秒)。
4、AXISx_RSEEK:
功能:使用組態/包絡表中的搜索方法啟動參考點搜索操作。當運動軸找到參考點且移動停止時,運動軸將RP_OFFSET參數值載入當前位置。
▲ 圖4
RP_OFFSET的默認值為(wei) 0。可使用運動控製向導、運動控製麵板或AXISx_LDOFF(加載偏移量)子例程來更改RP_OFFSET值;
EN 位開啟會(hui) 啟用此子例程。確保EN位保持開啟,直至Done位指示子例程執行已經完成;
START 參數開啟將向運動軸發出RSEEK命令。對於(yu) 在START參數開啟且運動軸當前不繁忙時執行的每次掃描,該子例程向運動軸發送一個(ge) RSEEK命令。為(wei) 了確保僅(jin) 發送了一個(ge) 命令,請使用邊沿檢測元素用脈衝(chong) 方式開啟START參數。
5、AXISx_GOTO:
▲ 圖5
START參數開啟會(hui) 向運動軸發出GOTO命令。對於(yu) 在 START參數開啟且運動軸當前不繁忙時執行的每次掃描,該子例程向運動軸發送一個(ge) GOTO命令。為(wei) 了確保僅(jin) 發送了一個(ge) GOTO命令,請使用邊沿檢測元素用脈衝(chong) 方式開啟START參數;
Pos參數包含一個(ge) 數值,指示要移動的位置(絕對移動)或要移動的距離(相對移動)。根據所選的測量單位,該值是脈衝(chong) 數 (DINT)或工程單位數(REAL);
Speed 參數確定該移動的最高速度。根據所選的測量單位,該值是脈衝(chong) 數/每秒(DINT)或工程單位數/每秒(REAL);Mode參數選擇移動的類型:
0:絕對位置
1:相對位置
2:單速連續正向旋轉
3:單速連續反向旋轉
Abort 參數啟動會(hui) 命令運動軸停止當前包絡並減速,直至電機停止。
注意:
若Mode參數設置為(wei) 0,則必須首先使用AXISx_RSEEK或AXISx_LDPOS指令建立零位置。
6、AXISx_RUN:
功能:命令運動軸按照存儲(chu) 在組態/包絡表的特定包絡執行運動操作。
▲ 圖6
START參數開啟將向運動軸發出RUN命令。對於(yu) 在 START參數開啟且運動軸當前不繁忙時執行的每次掃描,該子例程向運動軸發送一個(ge) RUN命令。為(wei) 了確保僅(jin) 發送了一個(ge) 命令,請使用邊沿檢測元素用脈衝(chong) 方式開啟START參數;
Profile參數包含運動包絡的編號或符號名稱。“Profile”輸入必須介於(yu) 0- 31。否則子例程將返回錯誤;
Abort參數會(hui) 命令運動軸停止當前包絡並減速,直至電機停止;
C_Profile參數包含運動軸當前執行的包絡;
C_Step參數包含目前正在執行的包絡步。
7、AXISx_LDOFF:
功能:建立一個(ge) 與(yu) 參考點處於(yu) 不同位置的新的零位置。
▲ 圖7
開啟START參數將向運動軸發出LDOFF命令。對於(yu) 在 START參數開啟且運動軸當前不繁忙時執行的每次掃描,該子例程向運動軸發送一個(ge) LDOFF命令。為(wei) 了確保僅(jin) 發送了一個(ge) 命令,請使用邊沿檢測元素用脈衝(chong) 方式開啟START參數。
注意:
在執行該子例程之前,您必須首先確定參考點的位置。您還必須將機器移至起始位置。當子例程發送 LDOFF命令時,運動軸計算起始位置(當前位置)與(yu) 參考點位置之間的偏移量。運動軸然後將算出的偏移量存儲(chu) 到 RP_OFFSET參數並將當前位置設為(wei) 0。這將起始位置建立為(wei) 零位置。
如果電機失去對位置的追蹤(例如斷電或手動更換電機的位置),您可以使用AXISx_RSEEK子例程自動重新建立零位置。
8、AXISx_LDPOS:
功能:將運動軸中的當前位置值更改為(wei) 新值。用戶還可以使用本子例程為(wei) 任何絕對移動命令建立一個(ge) 新的零位置。
▲ 圖8
START參數開啟將向運動軸發出LDPOS命令。對於(yu) 在 START參數開啟且運動軸當前不繁忙時執行的每次掃描,該子例程向運動軸發送一個(ge) LDPOS命令。為(wei) 了確保僅(jin) 發送了一個(ge) 命令,請使用邊沿檢測元素用脈衝(chong) 方式開啟START參數;
New_Pos參數提供新值,用於(yu) 取代運動軸報告和用於(yu) 絕對移動的當前位置值。根據測量單位,該值是脈衝(chong) 數 (DINT)或工程單位數(REAL)。