<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 梯形圖實例 >> 正文

      基于S7-200 SMART實現一鍵啟停_200smart 一鍵啟停

      作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2024/12/29

      關鍵字:PLC、西門子、一鍵啟停、LAD

      系列文章目錄

      基于7-200 SMART實現Modbus TCP通信
      順序功能圖——(二)設計機組延時關機程序
      基于S7-200 SMART實現MATLAB寫入與讀取PLC數據



      前言

      提示:以下內容均屬個人思考,本人也還是技術小白,如有出現紕漏,請各位大佬指出。:

      一日在編寫PLC代碼時發現了早期在著名大學B站學習的一段例程——“一鍵啟!,不過對于當時的我來說這段程序看起來有點陌生,于是決定再學習鞏固一下基礎知識。經過在網上尋找資源發現,大部分的示例都直接給出程序但缺少一點分析,有分析的又需要交費,于是就有了這篇博客。


      提示:以下是本篇文章正文內容,下面案例可供參考,且案例中被改進程序與改進程序是原理關聯,可能出現被改進程序與改進程序中變量名不同的情況

      一、硬件與軟件環境

      操作系統:WIN11
      編程軟件:STEP 7-MicroWIN SMART V2.8
      編程語言:LAD
      PLC:西門子——SIMATIC S7-200 SMART CPU ST60

      二、基本的起保停電路`

      1.普通線圈

      普通線圈構成的起保停LAD代碼如下:

       

      圖1 普通線圈實現起保停

      變量含義:
      I0.0——啟動按鈕
      I0.1——停止按鈕
      Q0.0——電機
      工作原理:
      動作前電機還未得電
      ①按下啟動按鈕→常開觸點I0.0閉合+常閉觸點I0.1閉合→線圈Q0.0得電→電機啟動
      ②按鈕都無動作→常開觸點Q0.0閉合+常閉觸點I0.1閉合→線圈Q0.0得電→電機保持
      ③按下停止按鈕→常開觸點Q0.0閉合+常閉觸點I0.1斷開→線圈Q0.0失電→電機停止

      以上程序中的I、Q寄存器如果換成M寄存器也可以使用如下LAD代碼:

       

      圖2.1 普通線圈實現起保停

       

      圖2.2 普通線圈實現起保停

      其中由于M寄存器依靠鼠標控制賦值,以人類的手速很難達到按鈕的效果,所以這里使用觸點+上升沿識別的方式模擬按鈕
      變量含義:
      M0.0+上升沿——啟動按鈕
      M0.1+上升沿——停止按鈕
      M0.4——電機

       

      圖3.1 SM0.0的含義

       

      圖3.2 刪去SM0.0后的錯誤信息

      SM0.0在這里的作用是防止報錯

      2.置位/復位線圈

      置位/復位線圈構成的起保停LAD代碼如下:
       

      圖4 置位/復位線圈實現起保停

      變量含義:
      I0.0——啟動按鈕
      I0.1——停止按鈕
      Q0.0——電機
      工作原理:
      動作前電機還未得電
      ①按下啟動按鈕→常開觸點I0.0閉合+常閉觸點I0.1閉合→線圈Q0.0得電→電機啟動
      ②按鈕都無動作→常開觸點Q0.0閉合+常閉觸點I0.1閉合→線圈Q0.0得電→電機保持
      ③按下停止按鈕→常開觸點Q0.0閉合+常閉觸點I0.1斷開→線圈Q0.0失電→電機停止

      以上程序中的I、Q寄存器如果換成M寄存器也可以使用如下LAD代碼:
       

      圖5 置位/復位線圈實現起保停

      變量含義:
      M0.0+上升沿——啟動按鈕
      M0.1+上升沿——停止按鈕
      M0.2——電機

      提示:本節內容如果覺得理解吃力的小伙伴,如果排除博主文筆不好的原因,可能需要自己去補一下PLC的相關知識。

      三、一鍵啟停電路

      首先讓我們思考一個問題,如何將兩個按鈕簡化為一個按鈕?
      在基本的起保停電路中,我們利用不同的變量對應兩個按鈕,如果只用一個變量代表按鈕,那么還必須有一個中間變量用于區分當前的系統狀態,即“電機轉動”與“電機停止”。

      1.基于置位/復位線圈實現一鍵啟停_1

      我們先從思路比較簡單的置位/復位線圈起保停電路開始做改動

       

      圖6 置位/復位線圈實現一鍵啟停_初步設想

      變量含義:
      M0.0+上升沿——按鈕
      M0.7——電機

      這樣的改動看似符合了我們的要求:
      ①電機停止+按鈕按下→常閉觸點M0.7閉合+常開觸點M0.0上升沿識別→M0.7置位
      ②電機運行+按鈕按下→常開觸點M0.7閉合+常開觸點M0.0上升沿識別→M0.7復位

      但實際運行起來的結果不能說差強人意吧,只能說是相差甚遠——不管如何按下按鈕電機都不會啟動。

      上述問題的出現是由于我們對程序掃描的原理還不熟悉,博主認為上述程序需要以線圈為單元進行分析:
      當前掃描周期開始時電機停止,即M0.7未得電
      ①第一個線圈:電機停止+按鈕按下→常閉觸點M0.7閉合+常開觸點M0.0上升沿識別→M0.7置位
      ②第二個線圈:電機停止+按鈕按下+M0.7置位→常開觸點M0.7閉合+常開觸點M0.0上升沿識別→M0.7復位
      在一個掃描周期中線圈復位又置位,但是注意這里變量的值會先暫存只有等所有程序都掃描完成后,才能將變量的值更新,這也是為什么我們發現實際變量并沒有變化!

      知道了問題的原因,那就可以針對性的進行改進了。

      已知不能直接讓代表電機的線圈M0.7直接與按鈕相連,博主這里采用增加一個中間變量的方式(已驗證):

       

      圖7 置位/復位線圈實現一鍵啟停_利用中間變量改進

      以線圈為單元進行分析:
      當前掃描周期開始時M0.7未得電
      第一個線圈程序:M0.0按鈕按下+常閉觸點M0.7閉合→M0.1線圈置位
      第二個線圈程序:M0.0按鈕按下+常開觸點M0.7斷開→M0.1線圈不復位
      第三個線圈程序:常開觸點M0.1閉合→M0.7線圈得電
      當前掃描周期開始時M0.7已得電
      第一個線圈程序:M0.0按鈕未按下+常閉觸點M0.7斷開→M0.1線圈不置位
      第二個線圈程序:M0.0按鈕未按下+常開觸點M0.7閉合→M0.1線圈不復位
      第三個線圈程序:常開觸點M0.1閉合→M0.7線圈得電
      當前掃描周期開始時M0.7已得電
      第一個線圈程序:M0.0按鈕按下+常閉觸點M0.7斷開→M0.1線圈不置位
      第二個線圈程序:M0.0按鈕按下+常開觸點M0.7閉合→M0.1線圈不復位
      第三個線圈程序:常開觸點M0.1閉合→M0.7線圈得電

      2.基于置位/復位線圈實現一鍵啟停_2

      如果小伙伴們能理解第一種的改進,那么第二種會好理解很多。

      重新梳理第一種的改進:

      首先,我們確定標志位電機運行狀態
      而且,我們知道電機運行狀態不能與電機輸出直接相連
      所以,我們用一個中間變量作為按鈕輸出的一個中轉站控制電機輸出

      思考一下:如果可以在按下按鈕的啟動電機時候屏蔽復位線圈,圖6的好像也可以解決問題。

      基于上述思考,我們還可以針對圖6的問題進行一下改進:

       

      圖8 置位/復位線圈實現一鍵啟停_另外一種改進

      變量含義:
      M2.0+上升沿——按鈕
      M2.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時M2.7未得電
      第一個線圈程序:M2.0按鈕按下+常閉觸點M2.7閉合→M2.7線圈置位
      第二個線圈程序:M2.0按鈕按下+常閉觸點M2.7閉合→M2.1線圈得電
      第三個線圈程序:M2.0按鈕按下+常閉觸點M2.1斷開→M2.7線圈不復位
      當前掃描周期開始時M2.7已得電
      第一個線圈程序:M2.0按鈕未按下+常閉觸點M2.7斷開→M2.7線圈不置位
      第二個線圈程序:M2.0按鈕未按下+常閉觸點M2.7斷開→M2.1線圈失電
      第三個線圈程序:M2.0按鈕未按下+常閉觸點M2.1閉合+常開觸點M2.7閉合→M2.7線圈不復位
      當前掃描周期開始時M2.7已得電
      第一個線圈程序:M2.0按鈕按下+常閉觸點M2.7斷開→M2.7線圈不置位
      第二個線圈程序:M2.0按鈕按下+常閉觸點M2.7斷開→M2.1線圈失電
      第三個線圈程序:M2.0按鈕按下+常閉觸點M2.1閉合+常開觸點M2.7閉合→M2.7線圈復位

      3.基于普通線圈實現一鍵啟停_3

      針對普通線圈實現的起保停,在改進前我們先將圖2.2的電路進行如下改進:

       

      圖9 圖2.2的改進

      圖9的改進是基于停止按鈕的核心功能——斷開保持電路的電流,故只要斷開觸點保持觸點電機輸出之間都可以實現斷開功能

      基于圖9的電路,增加標志位
       

      圖10 普通線圈實現一鍵啟停

      變量含義:
      M1.0+上升沿——按鈕
      M1.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時M1.7未得電
      第一個線圈程序:M1.0按鈕按下→M1.1得電
      第二個線圈程序:M1.1常開觸點閉合+M1.7常閉觸點閉合→M1.7線圈得電
      當前掃描周期開始時M0.7已得電
      第一個線圈程序:M1.0按鈕不按下→M1.1不得電
      第二個線圈程序:M1.1常閉觸點閉合+M1.7常開觸點閉合→M1.7線圈得電
      當前掃描周期開始時M0.7已得電
      第一個線圈程序:M1.0按鈕不按下→M1.1不得電
      第二個線圈程序:M1.1常閉觸點閉合+M1.7常開觸點閉合→M1.7線圈得電

      問題 :有些小伙伴可能有疑惑,為什么之前兩種改進增加的標志位都是兩個,如圖8的常閉觸點M2.7與常開觸點M2.7,這個為什么是只在原來基礎上增加了一個常閉觸點M1.7?

      解答:圖9中起保持作用的常開觸點Q0.0(同圖10的常開觸點M1.7)其實也有表示當前系統狀態的作用,故這里只需要添加一個常閉觸點M1.7

      4.基于取反字節指令實現一鍵啟停_4

      以上三種改進都是只用到了基礎的線圈和觸點,指令比較簡單但是邏輯上比較難以理解,后面五種改進就屬于指令上比較復雜,但邏輯上簡單。

      在介紹第四種改進之前,小伙伴們需要了解取反字節指令
       

      圖11 取反字節指令

      該指令實現將輸入的數據按位取反的功能:

       

      圖12 取反字節指令示例

      基于上述指令實現一鍵啟停:
       

      圖13 基于取反字節指令實現一鍵啟停

      變量含義:
      M3.0+上升沿——按鈕
      M3.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時3.7未得電
      取反程序:M3.0按鈕按下→VB3取反
      線圈程序:VB3=1→V3.0=1→M3.7線圈得電
      當前掃描周期開始時3.7已得電
      取反程序:M3.0按鈕未按下→VB3不取反
      線圈程序:VB3=1→V3.0=1→M3.7線圈得電
      當前掃描周期開始時3.7已得電
      取反程序:M3.0按鈕按下→VB3取反
      線圈程序:VB3=0→V3.0=0→M3.7線圈失電

      5.基于異或字節指令實現一鍵啟停_5

      首先介紹異或字節指令:
       

      圖14 異或字節指令

      該指令實現將輸入的兩個數據按位取異或的功能:
       

      圖15 異或字節指令示例

      基于上述指令實現一鍵啟停:

       

      圖16 基于異或字節指令實現一鍵啟停

      變量含義:
      M4.0+上升沿——按鈕
      M4.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時4.7未得電
      異或程序:M4.0按鈕按下→VB4與1異或
      線圈程序:VB4=1→V4.0=1→M4.7線圈得電
      當前掃描周期開始時4.7已得電
      異或程序:M4.0按鈕按下→VB4不與1異或
      線圈程序:VB4=1→V4.0=1→M4.7線圈得電
      當前掃描周期開始時4.7已得電
      異或程序:M4.0按鈕按下→VB4與1異或
      線圈程序:VB4=0→V4.0=0→M4.7線圈失電

      6.基于置位優先指令實現一鍵啟停_6

      首先介紹置位優先指令:
       

      圖17 置位優先指令

      該指令實現當置位和復位指令沖突時優先置位的功能:
       

      圖18 置位優先指令示例

      基于上述指令實現一鍵啟停:

       

      圖19 基于置位優先指令實現一鍵啟停

      變量含義:
      M5.0+上升沿——按鈕
      M5.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時5.7未得電
      置位優先程序:M5.0按鈕按下+常閉觸點M5.7閉合+置位優先指令→M5.7置位
      當前掃描周期開始時5.7未得電
      置位優先程序:M5.0按鈕未按下+常開觸點M5.7閉合+置位優先指令→M5.7不復位
      當前掃描周期開始時5.7已得電
      置位優先程序:M5.0按鈕按下+常開觸點M5.7閉合+置位優先指令→M5.7復位

      7.基于復位優先指令實現一鍵啟停_7

      首先介紹復位優先指令
       

      圖20 復位優先指令

      該指令實現當置位和復位指令沖突時優先置位的功能:
       

      圖21 復位優先指令示例

      基于上述指令實現一鍵啟停:
       

      圖22 基于復位優先指令實現一鍵啟停

      變量含義:
      M6.0+上升沿——按鈕
      M6.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時6.7未得電
      置位優先程序:M6.0按鈕按下+常閉觸點M6.7閉合+復位優先指令→M6.7置位
      當前掃描周期開始時6.7未得電
      置位優先程序:M6.0按鈕未按下+常開觸點M6.7閉合+復位優先指令→M6.7不復位
      當前掃描周期開始時6.7已得電
      置位優先程序:M6.0按鈕按下+常開觸點M6.7閉合+復位優先指令→M6.7復位

      8.基于計數器指令實現一鍵啟停_8

      首先介紹加計數指令:
       

      圖23 加計數指令

      該指令實現計數與清零:
       

      圖24 減計數指令示例

      軟件自帶的幫助文檔中只有減計數器,不過原理都差不多。

      基于上述指令實現一鍵啟停:

      基于加計數指令實現一鍵啟停 

      圖25.1 基于加計數指令實現一鍵啟停

      基于加計數指令實現一鍵啟停 

      圖25.2 基于加計數指令實現一鍵啟停

      變量含義:
      M7.0+上升沿——按鈕
      M7.7——電機

      以線圈為單元進行分析:
      當前掃描周期開始時7.7未得電(C7=0)
      計數程序:M7.0按鈕按下→C7=1
      置位線圈:C7=1→M7.7置位
      復位線圈:C7=1→M7.7不復位
      當前掃描周期開始時7.7已得電(C7=1)
      計數程序:M7.0按鈕不按下→C7=1
      置位線圈:C7=1→M7.7不置位
      復位線圈:C7=1→M7.7不復位
      當前掃描周期開始時7.7未得電(C7=1)
      計數程序:M7.0按鈕按下→C7=2→C7常開觸點閉合→置位C7→C7=0
      置位線圈:C7=0→M7.7不置位
      復位線圈:C7=0→M7.7復位


      總結

      到這里博主總共在這里總結了我自己見過的八種一鍵啟停電路,并分享了自己的思考過程與原理分析,如果有錯誤也請大佬們在評論區指正,

      一點感想

      警告:以下就是一些個人的直抒胸臆了
      這應該算是我寫的第一篇長文,分享自己在學習過程種的思考歷程與想法。寫這篇的原因有以下:
      ①在學習的過程中也看到了網上的許多資料,雖然有許多靠譜的答案,但總感覺不明白原理就感覺不是很暢快,如果以上思路是正確的希望能幫到一些同樣有困擾的小伙伴,如果不正確也希望能幫助大家思考;
      ②本科與研究生偏向理論的研究讓我在工作中遇到了很多問題,向老前輩們請教的時候總想問點為什么,但是迎來的大多是略帶不屑與不耐煩的回復,希望能我的思路和答案可以幫助到大家,而不是獲得“冷嘲熱諷”的回答;
      ③許多問題在我看來可以直接獲取思路與答案進行快速學習,希望我的問題與答案能幫助部分小伙伴減少在準備工作上花費的時間,進而將大部分精力花在真正重要或者困難的部分;
      自己的一點小私心,在幫助他人的過程中獲得一點自我滿足 記錄一下自己的思考,方便之后忘記了回來看看。

      Tags:一鍵啟停,200smart,梯形圖程序  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章: 沒有了
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      推薦文章
      最新推薦
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产综合成人色产三级高清在线精品发布 | 国产精品亚洲综合一区在线观看| 久久精品亚洲综合| 亚洲第一综合天堂另类专| 伊人色综合九久久天天蜜桃| 亚洲啪啪综合AV一区| 亚洲av综合av一区二区三区 | 色欲色香天天天综合网站免费| 亚洲色婷婷综合久久| 精品久久久久久亚洲综合网| 国产成人麻豆亚洲综合无码精品 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 中文字幕人成无码人妻综合社区| 天天狠狠色综合图片区| 丁香色欲久久久久久综合网| 综合在线视频精品专区| 日韩亚洲国产综合高清| 精品综合久久久久久888蜜芽| 国产福利电影一区二区三区久久久久成人精品综合 | 亚洲色欲www综合网| 伊人久久综合无码成人网| 国产综合无码一区二区色蜜蜜| 亚洲国产成人久久综合一| 亚洲综合色自拍一区| 亚洲综合伊人久久综合| 国产综合久久久久久鬼色| 俺来也俺去啦久久综合网| 91精品国产综合久久精品| 狠狠色狠狠色综合久久| 久久综合综合久久| 亚洲综合激情视频| 麻豆狠色伊人亚洲综合网站 | 色综合久久天天综线观看| 色777狠狠狠综合| 狠狠色丁香久久婷婷综合_中| 91精品婷婷国产综合久久| 国产精品亚洲综合久久| 激情综合丝袜美女一区二区| 亚洲第一页综合图片自拍| 综合久久国产九一剧情麻豆| 久久91综合国产91久久精品|