1 引言
PLC輸出的集成脈衝(chong) 可通過步進電機進行定位控製。關(guan) 於(yu) 定位控製,調節和控製操作之間存在一些區別。步進電機不需要連續的位置控製,而在控製操作中得到應用。在以下的程序例子中,借助於(yu) CPU214所產(chan) 生的集成脈衝(chong) 輸出,通過步進電機來實現相對的位置控製。雖然這種類型的定位控製不需要參考點,本例還是粗略地描述了確定參考點的簡單步驟。因為(wei) 實際上它總是相對一根軸確定一個(ge) 固定的參考點,因此,用戶借助於(yu) 一個(ge) 輸入字節的對偶碼(Dual coding)給CPU指定定位角度。用戶程序根據該碼計算出所需的定位步數,再由CPU輸出相關(guan) 個(ge) 數的控製脈衝(chong) 。
2 係統結構
如圖1所示。
圖1 係統結構
3 硬件配置
如表1所示。
4 軟件結構
4.1 PLC的輸入信號與(yu) 輸出信號
PLC的部分輸入信號與(yu) 輸出信號,以及標誌位如表2所示。
4.2 係統軟件設計
PLC的程序框圖如圖2所示。
4.3 初始化
在程序的第一個(ge) 掃描周期(SM0.1=1),初始化重要參數。選擇旋轉方向和解除聯鎖。
4.4 設置和取消參考點
如果還沒有確定參考點,那麽(me) 參考點曲線應從(cong) 按“START”按扭(I1.0)開始。CPU有可能輸出最大數量的控製脈衝(chong) 。在所需的參考點,按“設置/取消參考點”開關(guan) (I1.4)後,首先調用停止電機的子程序。然後,將參考點標誌位M0.3置成1,再把新的操作模式“定位控製激活”顯示在輸出端Q1.0。
如果I1.4的開關(guan) 已激活,而且“定位控製”也被激活(M0.3=1),則切換到“參考點曲線”參考點曲線。在子程序1中,將M0.3置成0,並取消“定位控製激活”的顯示(Q1.0=0)。此外,控製還為(wei) 輸出最大數量的控製脈衝(chong) 做準備。當再次激活I1.4開關(guan) ,便在兩(liang) 個(ge) 模式之間切換。如果此信號產(chan) 生,同時電機在運轉,那麽(me) 電機就自動停止。
實際上,一個(ge) 與(yu) 驅動器連接的參考點開關(guan) 將代替手動操作切換開關(guan) 的使用,所以,參考點標誌能解決(jue) 模式切換。
4.5 定位控製
如果確定了一個(ge) 參考點(M0.3=1)而且沒有聯鎖,那麽(me) 就執行相對的定位控製。在子程序2中,控製器從(cong) 輸入字節IBO讀出對偶碼方式的定位角度後,再存入字節MB11。與(yu) 此角度有關(guan) 的脈衝(chong) 數,根據下麵的公式計算:
N=φ/360°×S
式中:N-控製脈衝(chong) 數
φ-旋轉角度
S-每轉所需的步數
該程序所使用的步進電機采用半步操作方式(S=1000)。在子程序3中循環計算步數,如果現在按“START”按鈕(I1.0),CPU將從(cong) 輸出端Q0.0輸出所計算的控製脈衝(chong) 個(ge) 數,而且電機將根據相應的步數來轉動,並在內(nei) 部將“電機轉動”的標誌位M0.1置成1。
在完整的脈衝(chong) 輸出之後,執行中斷程序0,此程序將M0.1置成0,以便能夠再次起動電機。
4.6 停止電機
按“STOP”(停止)按扭(I1.1),可在任何時候停止電機。執行子程序0中與(yu) 此有關(guan) 的指令。
5 程序和注釋
//標題:用脈衝(chong) 輸出進行定位控製
//主程序
LD SM0.1
//僅(jin) 首次掃描周期SM0.1才為(wei) 1。
R M0.0,128
//MD0至MD12複位
ATCH 0,19
//把中斷程序0分配給中斷事件19(脈衝(chong) 串終止)
ENI
//允許中斷
//脈衝(chong) 輸出功能的初始化
MOVW 500,SMW68
//脈衝(chong) 周期T=500us
MOVW 0,SMW70
//脈衝(chong) 寬度為(wei) 0(脈衝(chong) 調製)
MOVD 429496700,SMD72
//為(wei) 參考點設定的最大脈衝(chong) 數
//設置逆時針旋轉
LDN M0.1 //若電機停止
A I1.5 //且旋轉方向開關(guan) =1
S Q0.2,1 //則逆時針旋轉(Q0.2=1)
//設置順時針旋轉
LDN M0.1 //若電機停止
AN I1.5 //且旋轉方向開關(guan) =0
R Q0.2,1 //則逆時針旋轉(Q0.2=0)
//聯鎖
LD I1.1
//若按“STOP”(停止)按鈕
S M0.2,1 //則激活聯鎖(M0.2=1)
//解除聯鎖
LDN I1.1
//若“START”(啟動)按鈕鬆開
AN I1.0
//且“STOP”(停止)按鈕鬆開
R M0.2,1 //則解除聯鎖(M0.2=0)
//確定操作模式(參考點定位控製)
LD I1.4
//若按“設置/取消參考點”按鈕
EU //上升沿
CALL 1 //則調用子程序1
//啟動電機
LD I1.0
//若按“START”(啟動)按鈕
EU //上升沿
AN M0.1 //且電機停止
AN M0.2 //且無聯鎖
AD≥ SMD72,1
//且步數≥1,則
MOVB 16#85,SMB67
//置脈衝(chong) 輸出功能(PTO)的控製位
PLS 0 //啟動脈衝(chong) 輸出(Q0.0)
S M0.1,1
//“電機運行”標誌位置位(M0.1=1)
//定位控製
LD M0.3
//若已激活“定位控製” 操作模式
AN M0.1 //且電機停止
CALL 2 //則調用子程序2
//停止電機
LD I1.1
//若按“STOP”(停止)按鈕
EU //上升沿
A M0.1 //且電機運行,則
CALL 0 //則調用子程序0
MEND //主程序結束
//子程序1
SBR 0 //子程序0停止電機
MOVB 16#CB,SMB67
//激活脈寬調製
PLS 0 //停止輸出脈衝(chong) 到Q0.0
R M0.1,1
//“電機運行”標誌位複位(M0.1=0)
RET //子程序0結束
SBR1
//子程序1,“確定操作模式”
LD M0.1 //若電機運行
CALL 0
//則調用子程序0,停止電機
//申請“參考點曲線”
LD M0.3
//若已激活“定位控製”,則
R M0.3,1
//參考點標誌位;複位(M0.3=0)
R Q1.0,1
//取消“定位控製激活”信息(Q1.0=0)
MOVD 429496700,SMD72
//為(wei) 新的“參考點曲線”設定最大的脈衝(chong) 數。
CRET
//條件返回到主程序。
//申請“定位控製”
LDN M0.3
//若未設置參考點(M0.3=0),則
S M0.3,1
//參考點標誌位置位(M0.3=1)
S Q1.0,1
//輸出“定位控製激活”信息(Q1.0=1)
RET //子程序1結束
//子程序2
SBR2 //子程序2,“定位控製”
MOVB IB0,MB11
//把定位角度從(cong) IBO拷到MD8的最低有效字節MB11。
R M8.0,24
//MB8至MB10清零
DIV 9,MD8
//角度/9=q1+r1
MOVW MW8,MW14
//把r1存入MD12
MUL 25,MD8
//q1×25→MD8
MUL 25,MD12
DIV 9,MD12
// r1×25/9= q2+r2
CALL 3
//在子程序3中循環步數
MOVW 0,MW12 //刪除r2
+D MD12,MD8
//把步數寫(xie) 入MD8
MOVD MD8,SMD72
//把步數傳(chuan) 到SMD72
RET //子程序2結束
//子程序3
SBR3 //子程序3,“循環步數”
LDW≥MW12,5 //如果r2≥5/9,則
INCW MW14 //步數增加1。
RET
//子程序3結束
//中斷程序0,“脈衝(chong) 輸出終止”
INT0 //中斷程序0
R M0.1,1
//“電機運行”標誌位複位(M0.1=0)
RET //子程序0結束
6 結束語
通過對硬件和軟件的合理設計,用較為(wei) 價(jia) 廉的西門子S7-200係列PLC作為(wei) 核心控製部件,構成的定位係統能夠達到精確定位的目的。特別應指出的是通過靈活、巧妙的應用PLC的指令係統,可使係統實現高精度定位。