欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 梯形圖實例 >> 正文

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

作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2022/11/24

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

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

    下面例舉3個編程實例,供大家分析參考:

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

如:當(dāng)輸入點部分有信號時,是否能做到依次輸出且依次關(guān)閉已動作了的。假設(shè)輸入點IB0~IB1任意一點先變化,則先變化的對應(yīng)輸出點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編寫二段程序供參考:

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

 

     編程解析:本程序只用一個網(wǎng)絡(luò)語句編程即可實現(xiàn)。編程共用3個指令,這3個指令缺一不可:

1、用比較指令(IW0<>0),由于輸入側(cè)的16個開關(guān)皆為不自鎖按鈕開關(guān),未按鈕時其對應(yīng)的16個輸入點輸入狀態(tài)皆=0,即IW0=0。只有有按鈕按下時,其IW0<>0。

2、前沿指令(P)的使用,也是不可缺少的,它執(zhí)行將IW0傳遞給QW0,確保無輸入時其輸出狀態(tài)不變:只有輸入轉(zhuǎn)態(tài)變化瞬間,其前沿將IW0的輸入狀態(tài)傳送給輸出口QW0,以確保當(dāng)該輸入點復(fù)位時仍能保持原輸出狀態(tài)不變(即按鈕抬起的后沿不起傳遞作用)。

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

     如:I0.0=1,對應(yīng)輸出Q0.0=1,I0.0復(fù)位(I0.0=0)仍保持Q0.0=1。如I0.7=1,對應(yīng)輸出Q0.7=1、Q0.0=0.,I0.7復(fù)位(I0.7=0)仍保持Q0.7=1,再輸入I1.1=1,對應(yīng)Q1.1=1,而Q0.7=0。。。。

    但這種編程,對輸入口的輸入狀態(tài)有要求:按鈕前IW0=0,故只適應(yīng)不自鎖按鈕(按完后觸點斷開)。

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

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

自鎖與不自鎖的按鈕都可用的編程 

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

動作原理:當(dāng)開機(jī)時,由于未按按鈕,其IW0=0,MW10=0,當(dāng)按下某一按鈕,其IW0將不等于MW10且大于MW10,使I W0與MW10進(jìn)行異或運算,運算結(jié)果送入QW0(此時QW0的輸出只有剛剛按下的位信號=1,其它位都等于0)。隨后再將IW0送入MW10,以保存IW0的現(xiàn)有狀態(tài),以備下次按鍵與IW0比較,即MW10為按鈕按下時的輸入狀態(tài)。如此時將按鈕抬起,其IW0不等于MW10,但I(xiàn)W0小于MW10,故不執(zhí)行異或指令,即QW0仍保持原輸出狀態(tài)。而IW0狀態(tài)仍傳遞給MW10。 如此時按下另一按鈕,其IW0不等于MW10,而IW0大于MW10,故執(zhí)行異或指令,運算結(jié)果送入QW0(此時QW0的輸出只有剛剛按下的位信號=1,其它位都等于0)。隨后IW0狀態(tài)又傳遞給MW10。例如:

原IW0狀態(tài)=0000_0000_0110_0011,現(xiàn)按下一按鈕(使I0.3=1),此時IW0=0000_0000_0110_1011,MW10仍=0000_0000_0110_0011,由于IW0≠MW10且IW0>MW10,故IW0與MW10進(jìn)行異或運算,由于此時IW0與MW10只有第3位的內(nèi)容不等(I0.3=0,M10.3=1),其他各個對應(yīng)位相同,故異或的結(jié)果使QW0=8,即 Q0.3=1。隨后將現(xiàn)在的IW0=0000_0000_0110_1011的值 送入給MW10。

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

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

當(dāng)輸入按鈕有幾個以處于按下(即接通狀態(tài)),時,如要抬起任一按下的按鈕,其輸出都不會發(fā)生變化,如現(xiàn)輸入狀態(tài)為:IW0=0000_0000_0110_1011, MW10= 0000_0000_0110_1011。如抬起I1.5,使IW0=0000_0000_010 0_1011,此時IW0 < MW10,故不會進(jìn)行異或運算,即輸出保持不變,只是IW0 送入 MW10,使MW10=0000_0000_010 0_1011。

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

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

     按此命題編寫如下程序:

 

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

    編程技巧:本程序編程技巧見網(wǎng)絡(luò)2:用I0.0=1使MB1進(jìn)行循環(huán)左移,由于I0.0=1的時間不確定,使MB1循環(huán)左移的次數(shù)為不確定數(shù),即MB1的低4位=1的位是可變的,不確定的。當(dāng)按鈕抬起時,其后沿將MB1的低4位傳遞給QB0達(dá)到控制目的。

三、有5個按鈕和5個信號燈,編號1#~5#,每次只按下一個按鈕,按的次序是隨意的且沒有時間限制,每按下一個按鈕輸出就亮一個對應(yīng)的信號燈,持續(xù)10秒后自動熄滅,但是同一時刻只允許亮一個燈,即前燈不滅后燈不亮,并且亮燈的次序嚴(yán)格按照按鈕按下的次序,例如按鈕是2#——1#——5#——3#——4#,則亮燈也按照2#——1#——5#——3#——4#,不能亂。

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

 

 

 

 

 

 

     程序解析:網(wǎng)絡(luò)1為填表指令設(shè)置:即VW100為表地址,容許填表數(shù)據(jù)數(shù)=10,即容許最多填寫10組數(shù)據(jù),即容許間隔小于10秒連續(xù)按不同按鈕10下,使之對應(yīng)用的燈泡按按鈕的順序依次各亮10秒,這樣就有重復(fù)使用同一個燈泡的可能。如連續(xù)按按鈕:1、3、2、4、2、3,則輸出為Q0.0、Q0.2、Q0.1、Q0.3、Q0.1、Q0.2各燈泡依次個亮10秒。

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

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

網(wǎng)絡(luò)10~網(wǎng)絡(luò)11:當(dāng)T101延時時間到,T101由0變1,使M0.0=0、使Q0.0~Q0.4皆=0,再判斷VW102(表實際存數(shù)據(jù)數(shù)):如VW102≠0,說明表內(nèi)仍存有數(shù)據(jù),執(zhí)行FIFO指令,將表內(nèi)最前數(shù)據(jù)彈出,送入MW1(實際為MB2),再通過異或運算送到輸出口使對應(yīng)輸出燈亮。如VW102=0,說明表內(nèi)已無數(shù)據(jù),不執(zhí)行FIFO指令。

網(wǎng)絡(luò)9:是將M0.1=1時執(zhí)行將M0.1傳遞給M0.2,此條指令看似有點多余,但實際上是必要的,這條指令的使用也是本程序編程技巧之一,它解決爭態(tài)問題:

如不用它直接用M0.1去代替網(wǎng)絡(luò)11的M0.2,其程序?qū)⒉荒苷_\行,即T101延時時間到不會使M0.0斷開,即T101仍處于得電延時狀態(tài),這樣就不會執(zhí)行FIFO指令,使程序總處于一個燈泡長亮的狀態(tài)不變。

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

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

Tags:西門子plc,梯形圖實例,編程  
責(zé)任編輯:admin
相關(guān)文章列表
西門子S7-200 SMART 模擬量概述及自建庫文件,西門子PLC子程序創(chuàng)
西門子PLC編程常用基礎(chǔ)邏輯
一文學(xué)會設(shè)備運行時間累計程序編寫, 從零基礎(chǔ)到精通,收藏這篇就
三菱PLC基本指令編程經(jīng)典案例!
S7-1200PLC入門初學(xué),需先熟悉PLC硬件結(jié)構(gòu)!S7-1200PLC硬件結(jié)構(gòu)
TIA Portal博途軟件和S7-1200PLC介紹
西門子200SMART PLC編程通過指針輕松實現(xiàn)多個數(shù)據(jù)排列
西門子S7-200SMART PLC如何實現(xiàn)星三角降壓啟動多次調(diào)用?子程序編
西門子PLC子程序?qū)嵗琒7-200 SMART PLC帶參數(shù)子程序應(yīng)用實例
詳解步進(jìn)電機(jī)與PLC的接線,西門子、三菱等PLC接線(總結(jié)篇)PLC和
西門子PLC編程實例  4個基本控制電路設(shè)計方法
S7-200smart 恒溫PID控制_STEP7中PID設(shè)置溫度自動控制編程
西門子plc傳送帶操作控制,傳輸帶控制
西門子PLC實現(xiàn)汽車涂裝前處理生產(chǎn)線中的磷化槽液位控制
西門子200smart高速計數(shù)器指令向?qū)Ъ俺绦颍ㄊ詹兀┨菪螆D實例
|分享| S7-200SMART常用指令(二)
S7-200SMART PLC 模擬量輸入案例,AM06模擬量擴(kuò)展模塊和SIT_R指令
|實用|一文讓你讀懂使用中斷功能  ATCH和DTCH和RETI、DISI
神級匯總,西門子PLC中斷指令及例程 ATCH和ENI
STEP7【步驟詳解】西門子 PLC PID組態(tài)設(shè)置及PID常見問題解答
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
推薦文章
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 东兰县| 福贡县| 琼海市| 万载县| 霍州市| 平远县| 叙永县| 台东市| 凤阳县| 兰溪市| 武功县| 兴业县| 浙江省| 邮箱| 富宁县| 日照市| 牙克石市| 铁力市| 翁源县| 麻阳| 扶风县| 英山县| 如皋市| 梅州市| 耒阳市| 武山县| 徐水县| 新津县| 云和县| 扬中市| 道真| 揭阳市| 青田县| 深泽县| 聂拉木县| 迭部县| 浦城县| 如东县| 北安市| 大竹县| 鄂尔多斯市|