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