【跟著我一起來學習s7-200】46脈沖輸出指令
唐琳
發(fā)布于2015-12-18 10:21
16
0
標簽:S7-200入門連載,PLC
前面簡單的介紹了一下高速脈沖輸出的內容,包括脈沖串PTO和脈寬調制PWM的內容等,那么今天就學習一下脈沖輸出指令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波形的輸出。