廣東省西門子(授權)一級供應商
| 更新時間 2024-11-25 08:00:00 價格 請來電詢價 西門子PLC 西門子伺服電機 西門子觸摸屏 西門子電纜 西門子變頻器 西門子模塊 聯系電話 13510737515 聯系手機 13185520415 聯系人 董海波 立即詢價 |
經常有人問,這個PLC有沒有某某指令,或者,有沒有指令可以實現這樣那樣的功能?
產生這樣的疑問,部分原因是不熟悉這款PLC的指令。部分原因是為了選型,想找到一種PLC能夠內置一些功能,使得自己的編程得到簡化。
甚至有一些人認為,PLC沒有這個指令就是沒有這個功能,不能完成某個任務。如果指令能自己做,那就沒有這個問題了。那我們就試著自己做自己需要的指令。
本系列文章圍繞S7-200 SMART PLC為中心,分為三篇講解如何編寫自己需要的指令,編程語言主要以梯形圖的方式為主。
注意:前方高能!超長文章,請大家拿著奶茶慢慢看~
一、掃描
梯形圖的所有指令一般遵循掃描原則進行執行。執行一個完整的程序,過程中由于掃描有先后次序,所以必然在一個瞬間只能執行一個指令。那么當掃描到程序中間的時候,程序前部分的程序先獲得掃描并執行過,執行的結果將已經產生影響。后面部分的程序未曾執行,將來的執行當中所有條件將以Zui新的形態執行。
首先來看一個例子。如圖1所示:
圖1程序
從I0.0 = False(0)之后的某個掃描周期開始看看掃描的過程。此時,所有變量都沒有接通。
當有一個掃描周期I0.0 = True(1)的時候,并且方框處的程序剛剛處理完的時刻,第一段的Q0.0顯然跟以前的掃描一樣,不接通。而此時此刻的M0.0已經接通,它將開始影響以后程序的執行。然后在這個掃描周期結束的時候Q0.1將接通了,但是Q0.0卻沒有接通。
下一個周期開始,掃描第一個M0.0觸點的時候,此時的M0.0才開始影響第一行程序。
所以,掃描到并執行出的結果是影響往后的所有掃描的。并沒有掃描周期之分。所有執行都基于掃描。
二、能流
一行程序Zui左邊粗實線是能流的源,這里永遠是True(1)。通過各種觸點的True(1)與False(0)組合,能流能到達右側的線圈指令的話,就可以使線圈置位(1)。能流不能到達右側線圈的話線圈就復位(0)。能掃描到的指令,基本能按照這種意愿執行。
要正確理解能流True(1)與False(0)兩種狀態對程序的影響,如圖2所示。
圖2程序
當I0.0 = True(1)的時候,兩個指令都得到了能流。計時器指令按照自己的屬性進行計時。傳送指令把源地址數據傳送到目的地址,無論目的地址原來有什么值都執行傳送更新目的地址。
當I0.0 = False(0)的時候,兩個指令都沒有了能流。計時器在沒有能流的時候把當前值寫成0,把計時器位寫成False(0)。值得注意的是,這個指令在False(0)的時候不是什么都不做的,而是在做False(0)時應該做的事情。有這樣特點的指令還有輸出線圈指令等。傳送指令在沒有能流的時候不再傳送,不再理會目的地址。大量位于能流Zui右側的指令都有這個特點。
三、雙線圈
不追究這個詞的歷史背景了。反正大家都知道在一個程序里面對同一個線圈出現過兩次輸出線圈就是雙線圈。
雙線圈不會當作是一種錯誤程序。它完全可以按照程序的行為作出解釋。也就是說它沒有語法錯誤,但是可能會導致邏輯執行錯誤。
如圖3所示的例子,可能作者希望自動動作時的三個步驟Q0.0得電。而且切換到點動的時候又可以控制Q0.0。結果,由于出現了雙線圈,影響了期望的動作。這是雙線圈Zui顯著的錯誤使用。
圖3程序
對于輸出點Q,總是按照一個周期中Zui后一個輸出指令刷新輸出到物理點的。
下面舉一個案例,看看怎么處理比較好?
有一個輸出點,根據工藝已經做好了程序并且調試成功。程序片段如圖4所示。
圖4程序
突然甲方來了一個要求,要求Q0.0在原來的基礎上并聯一個現場按鈕,無論Q0.0是否動作,現場按鈕按下時,Q0.0都要為True(1)?,F場按鈕松開時,不影響原來的程序作用。同時要求,Q0.1不受現場按鈕影響。于是如圖5所示做了如下修改。
圖5程序
Ok!程序沒有問題。要是改成如圖6所示的程序,結果會怎樣?同樣,這個程序也可以完成上述任務。
圖6程序
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415