S7-200高速脈沖輸出應用
發(fā)布于2018-05-24 18:38
10308
0
標簽:
前面學習了高速計數(shù)器的內容,緊接著我們就來學習一下高速脈沖輸出的內容,高速脈沖輸出一般是用在運動控制里面,用來控制步進或伺服,高速脈沖輸出也是比較重要的一部分,我們必須得掌握好它。
在S7-200中有兩個PTO/PWM高速脈沖發(fā)生器,可以產(chǎn)生高速脈沖串(PTO)或脈寬調制信號波形(PWM)。在S7-200中有脈沖輸出指令PLS,它用來控制在高速脈沖輸出(Q0.0和Q0.1)中提供的高速脈沖串輸出(PTO)和脈寬調制(PWM)功能。
PTO/PWM與數(shù)字量輸出過程映像區(qū)共用輸出點Q0.0和Q0.1,當在Q0.0或Q0.1上激活了PTO/PWM功能時,是會禁止普通輸出點功能的,這時Q0.0或Q0.1的輸出波形是不受過程映像區(qū)狀態(tài)、輸出點強制值或者立即輸出指令的影響的,我們使用狀態(tài)表或趨勢圖是監(jiān)控不了的。
要做高速脈沖輸出,我們應該選用24VDC晶體管輸出的CPU,而不能選用繼電器輸出的CPU,這是我們要注意的。高速脈沖輸出一般是用在運動控制里面,用來控制步進或伺服。利用高速脈沖輸出實現(xiàn)運動控制,除了有PTO、PWM,還有EM253定位模塊,這三種方式都可以實現(xiàn)運動控制,不過要注意的是PTO和PWM可以使用脈沖輸出指令PLS和向導來實現(xiàn),而且PTO方式的甚至還可以使用運動控制庫指令來實現(xiàn),而使用EM253定位模塊的話就只能通過向導來實現(xiàn),而不能使用PLS指令或運動控制庫指令。
我們先看一下脈沖串操作PTO,PTO是按照給定的脈沖個數(shù)和周期輸出一串方波(占空比50%)。在使用時,我們要設定其脈沖個數(shù)和周期,我們要注意的是設定是周期數(shù)應該是偶數(shù),如果設定的周期數(shù)為奇數(shù)的話,是會引起占空比失真的。而脈寬調制PWM,它是產(chǎn)生一個占空比變化周期固定的脈沖輸出的,我們可以設定其周期和脈寬,我們要注意的是當設定的脈寬等于周期時,輸出是一直為ON的,當設定的脈寬等于0時,輸出是斷開的。

一般來說,使用脈沖串PTO會比較多,所以后面學習時也是重點學習脈沖串PTO的。除此之外,我們還要學習脈沖輸出指令PLS以及指令的應用,并且主要針對脈沖串PTO的學習,這是脈沖輸出學習的重點,我們必須要掌握好它。
前面有說到脈沖輸出指令PLS用于控制在高速脈沖輸出(Q0.0和Q0.1)中提供的脈沖串輸出PTO和脈寬調制PWM功能。在S7-200中有兩個PTO/PWM發(fā)生器,而每臺PTO/PWM發(fā)生器都有一個控制字節(jié)的,SMB67控制的是Q0.0的PTO/PWM發(fā)生器,而SMB77控制的是Q0.1的PTO/PWM發(fā)生器,這個我們要知道的。
脈沖輸出指令是會從系統(tǒng)存儲器SM(包括控制字節(jié))中讀取數(shù)據(jù),從而控制PTO/PWM發(fā)生器,這樣我們就可以通過修改控制字節(jié),然后執(zhí)行PLS指令,來更改PTO或PWM信號波形。以下就附上PTO/PWM控制寄存器的SM標志表和PTO/PWM控制字節(jié)參考表。


我們要注意的是,我們在使用PLS指令時一般是有步驟的。步,我們在使能PTO/PWM之前,要對Q0.0、Q0.1的過程映像區(qū)清零;第二步,定義控制字節(jié),Q0.0對應SMB67,Q0.1對應SMB77。第三步,寫入PTO/PWM相關寄存器的數(shù)據(jù),比如SMW68對應的是PTO/PWM周期值(2-65525ms),SMD72對應的是PTO脈沖計數(shù)值。第四步,就是連接中斷事件和中斷程序,并允許中斷這步是根據(jù)實際情況決定要還是不要的;第五步,執(zhí)行PLS指令,激活某個脈沖輸出,更新控制字節(jié)。
當然我們也可以禁止PTO/PWM波形,我們將控制字節(jié)的使能位(SMB67.7/
SMB77.7)清零,然后執(zhí)行PLS指令就可以了。我們也可以對周期值、脈寬值和脈沖數(shù)進行修改,我們把相應的系統(tǒng)存儲器位置1,然后再把修改數(shù)據(jù)寫入到相應的系統(tǒng)存儲器里,然后執(zhí)行PLS指令就可以。
下面就舉個PLS指令應用的例子,來更好的掌握PLS指令的使用。
主程序:

高速脈沖輸出子程序:

高速計數(shù)器子程序:

以上的程序,在主程序的網(wǎng)絡一中,首先用SM0.1首次掃描驅動高速計數(shù)器子程序進行高速計數(shù)初始化,同時對Q0.0的過程映像區(qū)清零。在高速計數(shù)器子程序中,首先傳送16#F8到SMB47定義控制字節(jié)定義為更新當前值加計數(shù),然后執(zhí)行HEDF指令定義高速計數(shù)模式12和選擇高速計數(shù)器0,后是激活高速計數(shù)器,執(zhí)行HSC指令。
在主程序的網(wǎng)絡二中,用I0.2的上升沿才驅動高速脈沖輸出子程序,用I0.2的下降沿來驅動一個傳送指令,傳送0到SMB67,并同時驅動一個PLS指令。在高速脈沖輸出子程序中,首先傳送16#85到SMB67中定義控制字節(jié),這里選擇的是PTO模式、單段、1us/周期、裝入周期和脈沖數(shù)的情況(控制字節(jié)的定義可以參考PTO/PWM控制字節(jié)表),并傳送100到SMW68中寫入周期值,傳送100到SMD72中寫入脈沖數(shù),后執(zhí)行PLS指令。
那么程序會在I0.2接通的上升沿執(zhí)行周期為100us,100個脈沖數(shù)的高速脈沖輸出,會在I0.2斷開的下降沿禁止PTO波形的輸出。
作者:蔡慧滎
如需轉載,請注明出處!違者必究!