-
1 # 圖靈的動畫
-
2 # 控制研究控
你這個題,其實程式很簡單,但是你的提問方法,可能大家會有點疑惑,所以有必要統一一下認識。
統一一下對分頻的認識你說的頻電路,就是把一個固定頻率的時鐘訊號轉化成不同頻率的時鐘訊號,再說的直白一點,把原有的頻率降低為原來的1/X,這個X就叫做幾分頻。---希望你對這個表述是認可的。
那麼我再說的更直白一點,我記得頻率就是單位時間中振動的次數,比如1秒內振動1次,那麼它的頻率就1HZ。如果1秒內震動0.5次,那麼頻率就是0.5HZ,換種方便以波形圖來顯示的說法,如果為1的時間和為0的時間都是0.5秒,也就說佔空比50%的話,1秒的時間內為1的時間只有0.5秒。
選一個源分頻訊號因為你問的是西門子200中的二分頻電路,那麼很容易會想到西門子自帶的2個時鐘脈衝,SM0.4和SM0.5,他們都是系統自帶的標準的佔空比50%的時鐘脈衝,見下圖:
SM0.5就是一個1hz的時鐘脈衝,而SM0.4是一個1/60赫茲的脈衝,為了程式監控的方便,我要選SM0.4為我分頻之前的脈衝訊號,因為60秒它才為1一次,明顯比1秒為1一次的SM0.5更方便程式監控。
還有一個主要原因就是SM0.5,其變化0.5s變化一次,變化太快,在micro/win軟體中監控的話,因為延遲的關係,它的波形圖,看上去不規整,所以還是用1分鐘脈衝的SM0.4來當做源訊號。對SM0.4進行二分頻,那麼分頻後的頻率應該是1/120HZ了。
編寫S7-200的二分頻程式一開始我就說了,程式很簡單,程式如下:
這是我在主程式中寫的全部程式,就只有3行。簡單解釋一下:
網路1就是初始化讓MB0的值為0;
網路2就是利用SM0.4這個1分鐘的脈衝上升沿去讓MB0自動加1;
網路3就是MB0=1的時候讓M10.0為1,MB0=2的時候讓M10.0為0。
---這裡寫的簡單的原因是SM0.4的佔空比是50%,M10.0的佔空比也是50%,因此這裡就等於1,等於2就可以了,如果佔空比不是50%那麼程式就不是這麼簡單了。---這裡是多說一句,有興趣的小夥伴可以深入去想想。
總之目前的程式,實現了對源訊號SM0.4這樣一個1/60HZ脈衝的二分頻,變成了一個1/120HZ的脈衝訊號,在這裡就是M10.0。
透過波形圖驗證分頻了嗎?直接看圖吧,如下:
西門子200PLC的監控狀態表提供了波形圖監控的功能,這是一個很好的功能,有時或許客戶會要求你給出程式執行的關鍵點時序圖,這個功能就很實用了。
該圖上邊的一行波形圖是SM0.4的,下邊的一行波形圖是M10.0的,我在左邊畫了2個端的粗實線。
現在開看一下我畫的3條豎著的紅色虛線,160s附件的就是說程式運行了160s時的波形圖,然後中間短的紅色虛線是希望大家看到時間是100s,最右邊的紅色虛線時間是40s。
這個圖片太寬了,有可能會看不清楚,所以我將0s-180s之間的這段波形圖提了出來,看下圖:
2條波形線,上邊一條是SM0.4,是1分鐘內30s為1,30s為0,所以可以看到40s-100s,和100s-160s,SM0.4的波形在一個週期內變化了1次。
下邊一條是M10.0,可以看到其在40s-100s這段時間內值為1,100s-160s這段時間內值為0,所以這個M10.0就變成了一個160-40=120s內數值變化的了一次的脈衝訊號,其週期是120s,60s內值為1,60s內值為0。
所以,到這裡SM0.4的波形相當於被拉長了一倍,也就說其原始頻率是1/60被二分頻後,變成了1/120頻率變慢了,所以波形就被拉長了!
回覆列表
接通了 只是接通了一個掃描週期 你沒監視到
題外話
1、線圈的真正用法 還未真正理解領悟
2、以上語句應該寫在兩個網路裡面 以上語句有語法錯誤 簡單的話說 1棵樹(樹根樹枝)一個坑(網路)
3、掃描的時間空間分析思維沒有完全建立