1. 關於脈沖輸出
脈沖輸出的方法有很多:
如果要產生占空比為50%的脈沖信號:
① 用S7-300PLC的時鍾存儲器
右鍵點擊PLC,選中時鍾存儲器,默認存儲字節為0。

各時鍾存儲器的周期和頻率如下表所示:

② 采用循環中斷
使用循環中斷OB35,設置中斷執行時間為1000ms

在OB35塊中編寫程序

程序在第一次執行時,因為M10.0為0,所以給M10.0置位
第二次執行時,M10.0為1,所以M10.0復位。
我們設定OB35執行的時間為1000ms,這樣,M10.0就會相隔1s循環置位、復位,就產生的周期為2s的脈沖。
當然如果我們要修改脈沖的周期,只要修改OB執行的時間就可以了,比用PLC的時鍾存儲器要更靈活。
③ 采用定時器定時自動復位的方式產生脈沖
當然我們還可以采用我們的老朋友定時器來產生脈沖

網絡1是相隔1s自動復位,網絡2為單按鈕啟停。
這樣,第一次M10.0為1時,Q0.0置位
第二次M10.1為1時,Q0.0復位
Q0.0上就可以產生周期為2s占空比為50%的脈沖信號了。
關於網絡2的單按鈕啟停其實也有很多種實現方式,當然這又是另外的故事了。
產生占空比可調的脈沖信號
① 采用兩個定時器,如下圖,這也是教科書上都會介紹的一種方式。
下圖可以產生一個周期為3s的脈沖信號


② 采用IEC定時器實現
S7-300里面我不太喜歡用IEC定時器的原因是因為每用一個定時器都會產生一個DB背景數據塊。用S5定時器會更方便一點。

③ 用定時器和比較指令

第一個程序段的目的是定時器循環計時,它的當前值是在0-3s之間變化的。
第二個程序段在進行比較的時候要注意,定時器的ET參數為:Elapse time即時間流逝值。是一個32位的time型變量。只要它大於1s時就讓它接通。這樣Q0.0上也就產生了如上的脈沖信號。
用S5定時器會有些不太一樣:

S5定時器里BI的值為剩余時間的ms數除以10,所以在用比較指令的時候,把MW30和200做比較,也就是剩余時間為2s時讓Q0.0接通。這樣Q0.0上輸出的脈沖也是1s低2s高這個樣子。
關於定時器的例子我先寫這么多了,靈感來自於學生在實驗的過程中出現了很多問題,所以就想記錄一下。肯定脈沖輸出的實現方式還有很多很多,腦子里現在還有幾種想法沒有放上來,比如可以用自復位的通電延時結合脈沖定時器來實現。
我想如果上面的都掌握了,那么定時器的使用就不是問題了。需要的時候用一個最簡單的辦法就可以了。
