18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 梯形圖實例 >> 正文

西門子plc 簡短精煉的3例編程展示及編程思路與技巧解析 梯形圖實例 燈的控製

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-11-24

         簡短精煉的3例編程展示及編程思路與(yu) 技巧解析      

   對於(yu) 同一個(ge) 命題編程,不同人編出不同的程序,有的編出的程序簡短精煉,一目了然,有的編出的程序很長很亂(luan) ,不易讀懂。之所以這樣就是由於(yu) 編程者的編程思路不同,對PLC的編程指令的理解掌握不一樣所致。要想編出好的簡短精煉的程序,編程者不僅(jin) 要在指令上狠下功夫,做到不僅(jin) 要深入理解各種指令的內(nei) 涵,更要學會(hui) 靈活巧妙的運用它。而且要擴大知識麵,使你思路開闊,利於(yu) 編程。

    下麵例舉(ju) 3個(ge) 編程實例,供大家分析參考:

   一、請教:PLC輸入點任意一點變化均觸發一次,用什麽(me) 指令比較精簡

如:當輸入點部分有信號時,是否能做到依次輸出且依次關(guan) 閉已動作了的。假設輸入點IB0~IB1任意一點先變化,則先變化的對應輸出點QB0~QB1動作。如:I0.0—>ON接著I1.3->ON,再接著I0.4->ON......依次輸出Q0.0=1,Q1.3=1(Q0.0=0),Q0.4=1(Q0.0=0,Q1.3=0)……

    解答:按題意要求,用S7-200編寫(xie) 二段程序供參考:

   1、不保持輸入信號狀態(即輸入為(wei) 不自鎖的按鈕,即按下後就抬起)的編程:

 

     編程解析:本程序隻用一個(ge) 網絡語句編程即可實現。編程共用3個(ge) 指令,這3個(ge) 指令缺一不可:

1、用比較指令(IW0<>0),由於(yu) 輸入側(ce) 的16個(ge) 開關(guan) 皆為(wei) 不自鎖按鈕開關(guan) ,未按鈕時其對應的16個(ge) 輸入點輸入狀態皆=0,即IW0=0。隻有有按鈕按下時,其IW0<>0。

2、前沿指令(P)的使用,也是不可缺少的,它執行將IW0傳(chuan) 遞給QW0,確保無輸入時其輸出狀態不變:隻有輸入轉態變化瞬間,其前沿將IW0的輸入狀態傳(chuan) 送給輸出口QW0,以確保當該輸入點複位時仍能保持原輸出狀態不變(即按鈕抬起的後沿不起傳(chuan) 遞作用)。

3、用傳(chuan) 遞指令MOVW的使用:它可將輸入點I0.0~I1.7的狀態傳(chuan) 送給輸出口Q0.0~Q1.7,可將輸入口按下點的信息傳(chuan) 遞給輸出口的對應輸出點。

     如:I0.0=1,對應輸出Q0.0=1,I0.0複位(I0.0=0)仍保持Q0.0=1。如I0.7=1,對應輸出Q0.7=1、Q0.0=0.,I0.7複位(I0.7=0)仍保持Q0.7=1,再輸入I1.1=1,對應Q1.1=1,而Q0.7=0。。。。

    但這種編程,對輸入口的輸入狀態有要求:按鈕前IW0=0,故隻適應不自鎖按鈕(按完後觸點斷開)。

   2、自鎖與(yu) 不自鎖的按鈕都可用的編程:

這種情況對編程帶來難度,如按一般思路編程,編出的程序一定較長,但用異或指令編程就會(hui) 使編出的程序簡短精練,見下圖:

自鎖與(yu) 

編程思路:選用一字存儲(chu) 器MW10,使其保存未按鈕前的IW0的輸入狀態,即未按鈕時其MW10=IW0。當輸入側(ce) 有按鈕按下時,必然使IW0<>MW10,且IW0 > MW10,此時除按鈕位=1,其MW10與(yu) 之對應位=0外,IW0與(yu) MW10其它各個(ge) 對應位的狀態都是一樣的(或=0或=1),如能從(cong) 此狀態中將按下按鈕位檢出,且使其對應輸出位=1,就可實現本題目的控製要求。S7-200有字異或指令,該指令的功能是可將參與(yu) 異或運算的二個(ge) 字變量,將其狀態相同的對應位變量運算結果=0,而狀態不同的對應位變量運算結果=1,這正好符合本題目的控製要求,故選用字異或指令編程。

動作原理:當開機時,由於(yu) 未按按鈕,其IW0=0,MW10=0,當按下某一按鈕,其IW0將不等於(yu) MW10且大於(yu) MW10,使I W0與(yu) MW10進行異或運算,運算結果送入QW0(此時QW0的輸出隻有剛剛按下的位信號=1,其它位都等於(yu) 0)。隨後再將IW0送入MW10,以保存IW0的現有狀態,以備下次按鍵與(yu) IW0比較,即MW10為(wei) 按鈕按下時的輸入狀態。如此時將按鈕抬起,其IW0不等於(yu) MW10,但IW0小於(yu) MW10,故不執行異或指令,即QW0仍保持原輸出狀態。而IW0狀態仍傳(chuan) 遞給MW10。 如此時按下另一按鈕,其IW0不等於(yu) MW10,而IW0大於(yu) MW10,故執行異或指令,運算結果送入QW0(此時QW0的輸出隻有剛剛按下的位信號=1,其它位都等於(yu) 0)。隨後IW0狀態又傳(chuan) 遞給MW10。例如:

原IW0狀態=0000_0000_0110_0011,現按下一按鈕(使I0.3=1),此時IW0=0000_0000_0110_1011,MW10仍=0000_0000_0110_0011,由於(yu) IW0≠MW10且IW0>MW10,故IW0與(yu) MW10進行異或運算,由於(yu) 此時IW0與(yu) MW10隻有第3位的內(nei) 容不等(I0.3=0,M10.3=1),其他各個(ge) 對應位相同,故異或的結果使QW0=8,即 Q0.3=1。隨後將現在的IW0=0000_0000_0110_1011的值 送入給MW10。

如該按鈕又抬起,使IW0=0000_0000_0110_0011,此時IW0與(yu) MW10的值又不相等(I0.3=0、MW10.3=1),但IW0<MW10,故Q0.3仍=1,QW0輸出不變。但IW0值送入MW10(0000_0000_0110_0011)。

如此時將I0.0的按鈕抬起(I0.0=0),IW0=0000_0000_0110_0010,此時IW0≠MW10,且IW0<MW10,故QW0輸出不變。但IW0值送入MW10(0000_0000_0110_0010)。

當輸入按鈕有幾個(ge) 以處於(yu) 按下(即接通狀態),時,如要抬起任一按下的按鈕,其輸出都不會(hui) 發生變化,如現輸入狀態為(wei) :IW0=0000_0000_0110_1011, MW10= 0000_0000_0110_1011。如抬起I1.5,使IW0=0000_0000_010 0_1011,此時IW0 < MW10,故不會(hui) 進行異或運算,即輸出保持不變,隻是IW0 送入 MW10,使MW10=0000_0000_010 0_1011。

可見,巧妙地運用異或指令和比較指令,不僅(jin) 簡化編程,而且對輸入口狀態無條件限製,使之可適用與(yu) 各類按鈕。

二、請編出這樣的一段程序:一個(ge) 按鈕控製4個(ge) 燈泡,要求每按一次按鈕,其4個(ge) 燈泡總是隻有一個(ge) 燈亮,其它3個(ge) 不亮。其哪個(ge) 燈亮是隨機的,無規律的。如何編程?

     按此命題編寫(xie) 如下程序:

 

     編程思路與(yu) 技巧解析:該程序隻用2個(ge) 網絡語句就可實現本命題的控製要求,其編程思路是:開機先將MB1置16#11,即0001_0001,如對MB1進行多次循環左移,其低4位總是隻有一位=1,其它3位皆=0。2、按下按鈕,使I0.0=1,由於(yu) 是手按按鈕,其每次按下的時間間隔很難保持一樣,而按下時間又>>PLC循環掃描周期,即在按鈕按下時間裏,MB1將循環左移多次,由於(yu) 按鈕按下時間是隨意的,使MB1循環左移的次數也是多變的,故使當按鈕抬起時,其MB1的低4位的=1位時隨機的不可確定的。用它傳(chuan) 遞給QB0,使QB0的低4位隻有一位輸出=1,其它3位=0,而且=1的位是不確定的,即Q0.0~Q0.3都有=1的可能,其幾率是相等的。

    編程技巧:本程序編程技巧見網絡2:用I0.0=1使MB1進行循環左移,由於(yu) I0.0=1的時間不確定,使MB1循環左移的次數為(wei) 不確定數,即MB1的低4位=1的位是可變的,不確定的。當按鈕抬起時,其後沿將MB1的低4位傳(chuan) 遞給QB0達到控製目的。

三、有5個(ge) 按鈕和5個(ge) 信號燈,編號1#~5#,每次隻按下一個(ge) 按鈕,按的次序是隨意的且沒有時間限製,每按下一個(ge) 按鈕輸出就亮一個(ge) 對應的信號燈,持續10秒後自動熄滅,但是同一時刻隻允許亮一個(ge) 燈,即前燈不滅後燈不亮,並且亮燈的次序嚴(yan) 格按照按鈕按下的次序,例如按鈕是2#——1#——5#——3#——4#,則亮燈也按照2#——1#——5#——3#——4#,不能亂(luan) 。

本命題如用一般指令編程是有一定難度的,而且編出的程序很長又不易讀懂,如用填表指令與(yu) FIFO指令配合編程就會(hui) 使程序簡短而精煉,見下梯形圖:

 

 

 

 

 

 

     程序解析:網絡1為(wei) 填表指令設置:即VW100為(wei) 表地址,容許填表數據數=10,即容許最多填寫(xie) 10組數據,即容許間隔小於(yu) 10秒連續按不同按鈕10下,使之對應用的燈泡按按鈕的順序依次各亮10秒,這樣就有重複使用同一個(ge) 燈泡的可能。如連續按按鈕:1、3、2、4、2、3,則輸出為(wei) Q0.0、Q0.2、Q0.1、Q0.3、Q0.1、Q0.2各燈泡依次個(ge) 亮10秒。

    網絡2~網絡6分別為(wei) 按鈕1~按鈕5按下時的編程,這5路編程是一樣的,以網絡1為(wei) 例:當按下按鈕1,使I0.0=1,如此時M0.0=0(5路輸出皆=0),其前沿將其輸出Q0.0置1(燈亮),如此時M0.0=1說明5路中有一路輸出=1,其前沿將其輸出Q0.0的地址(1)填入表內(nei) 。以備當輸出=1的燈由亮10秒後熄滅時,通過FIFO指令將其彈出,使彈出的地址燈泡點亮。如果連續按N個(ge) 按鈕,其間距<10秒,則第一個(ge) 按下的燈亮外,剩下的N-1個(ge) 燈的輸出地址依次填入表中,當第1個(ge) 燈由亮變滅時,由於(yu) 表的實存數據數≠0,則FIFO指令將最先填入的輸出地址彈出,通過異或運算使第2個(ge) 按下按鈕對應的輸出燈亮(見網絡10~11)。

網絡7~網絡8:5路輸出皆為(wei) 0時,M0.0=0,隻要有一路輸出由0↑1,其前沿都會(hui) 將M0.0=1,而M0.0=1使T101得電延時,延時時間為(wei) 10秒。

網絡10~網絡11:當T101延時時間到,T101由0變1,使M0.0=0、使Q0.0~Q0.4皆=0,再判斷VW102(表實際存數據數):如VW102≠0,說明表內(nei) 仍存有數據,執行FIFO指令,將表內(nei) 最前數據彈出,送入MW1(實際為(wei) MB2),再通過異或運算送到輸出口使對應輸出燈亮。如VW102=0,說明表內(nei) 已無數據,不執行FIFO指令。

網絡9:是將M0.1=1時執行將M0.1傳(chuan) 遞給M0.2,此條指令看似有點多餘(yu) ,但實際上是必要的,這條指令的使用也是本程序編程技巧之一,它解決(jue) 爭(zheng) 態問題:

如不用它直接用M0.1去代替網絡11的M0.2,其程序將不能正常運行,即T101延時時間到不會(hui) 使M0.0斷開,即T101仍處於(yu) 得電延時狀態,這樣就不會(hui) 執行FIFO指令,使程序總處於(yu) 一個(ge) 燈泡長亮的狀態不變。

再有這條指令與(yu) 安放位置有關(guan) ,必須將它放在使M0.1由0↑1的指令前麵才好用(即放在網絡10的前麵),其原因:當程序使M0.1=1時,M0.2仍=0,故不執行異或運算,即不會(hui) 使輸出由亮燈的可能,故下一個(ge) 掃描周期不會(hui) 使M0.0置1,使T101斷電。而此時掃描到網絡9,由於(yu) M0.1=1,M0.2才由0變1,執行異或運算,使輸出有一路亮。此處理就是確保M0.0=1的寬度=10秒,不會(hui) 衡=1。

    通過以上3個(ge) 編程的解析,可以看出,深入理解各個(ge) 指令的內(nei) 涵,廣開思路,就會(hui) 使編程指令使用的更加靈活合理,會(hui) 使你編出的程序簡短精練。就寫(xie) 到這裏,謝謝大家!

Tags:西門子plc,梯形圖實例,編程  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 相關文章列表
    西門子PLC編程語言_西門子PLC指令表功能匯總
    利用S7-200 PLC定時中斷功能編製一個程序舉例 ATCH和DTCH
    西門子S7-200 SMART PLC功能指令學習及實例分析 SHL_B和SHR_B移位
    西門子S7-200 SMART PLC功能指令學習及實例分析 循環指令FOR和NE
    西門子S7-200 SMART PLC功能指令學習及實例分析 加計數器CTU、減
    西門子S7-200 SMART PLC功能指令學習及實例分析 定時器指令TON T
    西門子plc 中斷指令及案例梯形圖實例ATCH DTCH和CLR_EVNT
    西門子plc產品數量檢測控製程序的例子  CTU和TON指令
    西門子S7-200 Smart係列PLC處理64位浮點數方法 SUB_I和SHL_W和SH
    西門子plc s7-200加法指令說明 ADD_I 和ADD_R和ADD_DR
    西門子plc模擬量輸入編程實例公式(模擬量編程實例詳解)STEP7添
    西門子plc程序中 S_ITR / S_RTR / S_RTI各指令是什麽意思
    西門子PLC 編程實例S7-200 Smart PLC 電機正反轉梯形圖接線圖
    西門子plc電機正反轉控製電路圖梯形圖程序實例
    西門子plc S7-200smart 與台達變頻器通訊Modbus梯形圖編程實例
    Modbus Poll和Modbus Slave使用方法
    西門子plc指令實現循環燈程序的例子 S7-200跑馬燈梯形圖實例
    西門子S7-200 plc控製泵往複循環運行的梯形圖程序  SR觸發器和TO
    西門子plc移位寄存器指令 梯形圖程序編程
    西門子plc S7-200SMART通過MODBUS通信控製變頻器啟停如何看電流頻
    西門子S7-200 Plc之比較指令入門教程 西門子plc梯形圖程序編程
    西門子S7-200係列PLC實例:時鍾指令入門用法 梯形圖編程實例
    西門子PLC模擬實現自動售賣機案例,售貨機梯形圖實例
    深度剖析西門子PLC的開放式TCP通信梯形圖 TCP通訊
    理解西門子PLC間接尋址和指針梯形圖實例,S7-200SMART
    西門子S7-200通訊控製台達變頻器,實例講解Modbus RTU通訊
    modbus協議詳解_西門子S7-200與變頻器MODBUS通訊實例詳解
    西門子plc梯形圖編程實例 西門子200smart與電流表Modbus RTU通訊
    使用西門子plc的Modbus通訊 串口調試助手與S7-200SMART PLC從站通
    西門子plc梯形圖實例S7-200Smart與ABB ACS550變頻器通訊Modbus通
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    推薦文章
    最新推薦
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢