目錄
二、手動(dòng)控制步進(jìn)電機(jī)旋轉(zhuǎn)方向和速度
三、命令運(yùn)動(dòng)軸轉(zhuǎn)以指定的速度運(yùn)動(dòng)到所需的位置
四、CPU掉電重啟后保持運(yùn)動(dòng)控制的當(dāng)前位置
前面詳細(xì)講述了運(yùn)動(dòng)控制向?qū)У呐渲煤瓦\(yùn)動(dòng)控制指令的使用方法,接下來要講的是簡單程序的編寫和調(diào)試。
在編寫程序時(shí),需要注意的是自定義的符號(hào)和地址不能與運(yùn)動(dòng)控制向?qū)Х峙涞拇鎯?chǔ)器沖突。
一、軟硬件組成
1、軟件:STEP-7-Micro/WIN SMART軟件;
2、硬件:西門子S7-200 SMART ST40 PLC、57步進(jìn)電機(jī)和驅(qū)動(dòng)器(DM542)。
二、手動(dòng)控制步進(jìn)電機(jī)旋轉(zhuǎn)方向和速度
具體步驟如下:
1、為手動(dòng)控制模式寫入運(yùn)動(dòng)速度(在程序運(yùn)動(dòng)過程中也可通過狀態(tài)圖標(biāo)進(jìn)行修改);
2、調(diào)用“AXISx_CTRL”指令啟用和初始化運(yùn)動(dòng)軸;
“AXISx_CTRL”指令的“MOD_EN”參數(shù)必須開啟,才能啟用其他運(yùn)動(dòng)控制指令向運(yùn)動(dòng)軸發(fā)送命令,如果參數(shù)關(guān)閉,運(yùn)動(dòng)軸會(huì)中止所有正在進(jìn)行的命令,因此在程序使用始終接通的“SM0.0”使能該指令。
3、調(diào)用“AXISx_MAN”指令將運(yùn)動(dòng)軸配置為手動(dòng)控制,使用該指令允許步進(jìn)電機(jī)按照不同的速度運(yùn)行,或沿正向或負(fù)向慢進(jìn)。
在使用該指令時(shí)同一時(shí)間僅能啟用RUN、JOG_P、JOG_N輸入之一。
在電機(jī)運(yùn)行時(shí)可以通過更改Speed(速度)參數(shù)修改步進(jìn)電機(jī)的運(yùn)行速度,但Dir(方向)參數(shù),必須保持為常數(shù),即步進(jìn)電機(jī)停止后才能調(diào)整旋轉(zhuǎn)方向。
特別需要注意的是,在整個(gè)程序中,“AXISx_MAN”指令只能出現(xiàn)一次,當(dāng)需要多次調(diào)用該指令時(shí),可以通過子程序進(jìn)行調(diào)用。
梯形圖程序如圖1所示。 AXIS0_MAN指令
圖1 程序1
三、命令運(yùn)動(dòng)軸轉(zhuǎn)以指定的速度運(yùn)動(dòng)到所需的位置
具體步驟如下:
1、調(diào)用“AXISx_CTRL”指令啟用和初始化運(yùn)動(dòng)軸;
“AXISx_CTRL”指令的“MOD_EN”參數(shù)必須開啟,才能啟用其他運(yùn)動(dòng)控制指令向運(yùn)動(dòng)軸發(fā)送命令,如果參數(shù)關(guān)閉,運(yùn)動(dòng)軸會(huì)中止所有正在進(jìn)行的命令,因此在程序使用始終接通的“SM0.0”使能該指令。
2、調(diào)用“AXISx_GOTO”指令命令運(yùn)動(dòng)軸以指定速度運(yùn)動(dòng)到所需位置。
通過Pos和Speed參數(shù)設(shè)置運(yùn)動(dòng)的速度和位置,可以為定值或變量,使用變量可在調(diào)試時(shí)進(jìn)行修改。在該模式下,步進(jìn)電機(jī)的旋轉(zhuǎn)方向由Pos參數(shù)的正負(fù)確定。
Mode參數(shù)選擇移動(dòng)的類型:
0:絕對(duì)位置
1:相對(duì)位置
2:單速連續(xù)正向旋轉(zhuǎn)
3:單速連續(xù)反向旋轉(zhuǎn)
若Mode參數(shù)設(shè)置為0,則必須首先使用AXISx_RSEEK或AXISx_LDPOS指令建立零位置。
梯形圖程序如圖2所示。
圖2 程序2
四、CPU掉電重啟后保持運(yùn)動(dòng)控制的當(dāng)前位置
因?yàn)槲鏖T子S7-200 SMART PLC掉電重啟后用于初始化指令的執(zhí)行,當(dāng)前位置會(huì)復(fù)位為0,因此需要通過程序使CPU掉電重啟后保持運(yùn)動(dòng)控制的當(dāng)前位置,具體步驟如下:
1、在項(xiàng)目樹中雙擊CPU,在彈出的系統(tǒng)塊中選擇“保持范圍”,設(shè)置兩個(gè)斷電保持區(qū)域:VD1000、VD1004,如圖3和圖4所示;
圖3 選擇CPU系統(tǒng)塊
圖4 設(shè)置斷電保持區(qū)域
2、將當(dāng)前位置值在第一個(gè)掃描周期內(nèi)傳送到保持位置VD1004內(nèi),在除第一個(gè)掃描周期外將當(dāng)前位置值傳送到保持位置VD1000內(nèi),如圖5所示;
圖5 對(duì)變量進(jìn)行處理
3、用初始化指令"AXIS0_CTRL"對(duì)運(yùn)動(dòng)軸進(jìn)行初始化,如圖6所示;
圖6 運(yùn)動(dòng)軸初始化
4、用"AXIS0_MAN"指令對(duì)運(yùn)動(dòng)軸進(jìn)行手動(dòng)控制,如圖7所示;
圖7 運(yùn)動(dòng)軸手動(dòng)控制
5、用初始化指令"AXIS0_CTRL"的DONE位來觸發(fā)修改位置指令"AXIS0_LDPOS",將保持位置VD1000裝載到當(dāng)前位置VD200,如圖8所示;
圖8 “AXIS0_LDPOS”初始化
6、將程序編譯并下載到CPU中運(yùn)行;
7、在狀態(tài)圖標(biāo)中輸入地址VD200、VD300、VD1000、VD1004、V100.0、V100.2、V100.7,開始持續(xù)監(jiān)視狀態(tài)圖表中的變量,如圖9所示;
圖9 狀態(tài)圖表
8、修改運(yùn)動(dòng)軸手動(dòng)控制速度,將V100.2置位,使步進(jìn)電機(jī)旋轉(zhuǎn)一定的角度,觀察VD200和VD1000兩個(gè)地址當(dāng)前值的變化,如圖10所示;
圖10 使步進(jìn)電機(jī)開始運(yùn)動(dòng)
9、停止監(jiān)視狀態(tài)圖表中的變量,PLC斷電后重新運(yùn)行,再開始持續(xù)監(jiān)視狀態(tài)圖表中的變量,對(duì)比VD1004地址的當(dāng)前值和步驟8中VD200與VD1000地址對(duì)應(yīng)值的關(guān)系,如圖11所示;
圖11 斷電重新運(yùn)行后變量狀態(tài)