西門子1200上升沿和下降沿的簡易做法以及實際應用過程

首先,我們要理解上升沿和下降沿的含義。

上升沿:前一個週期的按鈕訊號=0,當前週期的按鈕訊號=1,那麼此時我們就認為是產生了上升沿的訊號。

下降沿:前一個週期的按鈕訊號=1,當前週期的按鈕訊號=0,那麼此時我們就認為是產生了下降沿的訊號。

從上面的邏輯關係可以得出,我們要知道的是前一個週期的按鈕訊號的狀態,因此,我們需要用一個變數來儲存當前狀態(所以只能用FB塊來做,因為它有背景資料塊,裡面的static區可以記憶前一個週期的狀態),然後用於下一個週期

(對於下一個週期來說,當前週期就是前一個週期,大家可以好好想想。)

有了這種邏輯關係,那麼我們就可以寫程式了:如下圖所示

西門子1200上升沿和下降沿的簡易做法以及實際應用過程

沿訊號只停留一個掃描週期

透過上面的這個程式,我們就得到了上升沿訊號和下降沿訊號。比如說,當形參“I_請求1”的實參”I0。0”從0變1時,那麼形參“上升沿訊號”就變為了1。此時,我們就可以用這個形參=1的訊號來做事情了。

下面簡單介紹個小案例,主要目的是理解整個編寫過程,相當於一個小框架。

整個框架的流程:

首先做一個FB功能塊1,用於實現某個重複的功能,比如這裡的上升沿和下降沿功能。

然後再做一個FB功能塊2,用於整個專案裡的某一個功能,裡面呼叫FB功能塊1。

最後再做一個FC塊1,將各個類似FB功能塊2的塊整合起來,裡面做好邏輯等。

這樣就是一個完整的小框架了。

下面是整個呼叫過程:

第一步:建立FB塊,做一個小功能

西門子1200上升沿和下降沿的簡易做法以及實際應用過程

第二步:用上面的FB塊來實現某個功能

西門子1200上升沿和下降沿的簡易做法以及實際應用過程

第三步:將所有類似的功能塊整合到FC塊中,它可以表示整個專案的流程,也可以表示某個工位的流程(然後把各個工位的FC塊再整合到新的FC塊裡,然後MAIN裡面直接呼叫這個新的FC塊,這樣程式就顯的很乾淨整潔)

西門子1200上升沿和下降沿的簡易做法以及實際應用過程

小插曲:

西門子1200上升沿和下降沿的簡易做法以及實際應用過程

西門子1200上升沿和下降沿的簡易做法以及實際應用過程