有個(gè)朋友打電話詢問(wèn):為什么用高速計(jì)數(shù)器累積編碼器的脈沖,并對(duì)計(jì)數(shù)進(jìn)行比較,有時(shí)馬達(dá)可以停,有時(shí)馬達(dá)不停? 我問(wèn)是怎么比較的,回答:比較計(jì)數(shù)等于某個(gè)值時(shí)停! 〗鉀Q: 當(dāng)脈沖的周期時(shí)間小于plc掃描的時(shí)間時(shí)用普通的比較指令就不會(huì)得到正確的比較結(jié)果。在要求不嚴(yán)格時(shí)可以用大于或者等于比較指令就可以了。當(dāng)對(duì)脈沖計(jì)數(shù)要求嚴(yán)格時(shí)可以用有立即輸出的比較指令或者其他合適的有中斷功能的指令。 以下是對(duì)《PLC編程經(jīng)驗(yàn)一則》的回復(fù): 匿名回復(fù): 結(jié)論是對(duì)的。在普通的掃描程序中加比較指令根本無(wú)法及時(shí)的響應(yīng)。 最好的方法是利用中斷,啟用中斷:計(jì)數(shù)值=預(yù)設(shè)值,指定中斷服務(wù)程序,要實(shí)現(xiàn)的動(dòng)作放在中斷程序里就可以了。注意:在中斷程序中不要執(zhí)行太多的功能,否則若中斷程序的執(zhí)行時(shí)間大于中斷的事件間隔,就又可能來(lái)不及響應(yīng)了。
幾乎所有的plc的手冊(cè)都會(huì)提醒用戶注意不要雙線圈輸出,但很多初學(xué)的朋友還是不理解?赐晗旅娴奈淖,你就可以理解,什么時(shí)候不可以,什么時(shí)候還是可以的:
PLC的工作過(guò)程書和手冊(cè)都會(huì)介紹,但很多人并沒(méi)有多留意PLC工作過(guò)程會(huì)對(duì)編程產(chǎn)生什么影響。PLC的程序是在所謂的掃描時(shí)間內(nèi)被執(zhí)行的,這種掃描過(guò)程是從頭到尾然再完成io等工作后循環(huán)反復(fù)。程序在掃描期間執(zhí)行的中間結(jié)果比如,out y3 指令在執(zhí)行時(shí)并沒(méi)有將y3點(diǎn)亮,而是等到全部掃描完畢后再集中對(duì)所有io進(jìn)行刷新,y3其實(shí)只對(duì)應(yīng)一個(gè)內(nèi)存bit位,那么其后的指令對(duì)y3的再操作就有可能讓讓前面的我們所需要的y3的狀態(tài)發(fā)生改變,就是說(shuō)前面的對(duì)y3進(jìn)行操作的指令就不起作用了。這就是為什么我們不許雙線圈操作的原因。
在需要的場(chǎng)合可以使用set和reset來(lái)操作就是安全的做法。
還有就是:我們知道程序掃描每次都要掃描主程序,沒(méi)有主程序是不合法的。而子程序并不是每次掃描都執(zhí)行,子程序只在條件滿足的情況下才執(zhí)行。所以每次掃描不同時(shí)執(zhí)行的多個(gè)子程序就可以對(duì)某個(gè)線圈進(jìn)行多次操作。
說(shuō)的很羅嗦,應(yīng)該是講明白了。有不對(duì)的,大家補(bǔ)充。
匿名回復(fù):
沒(méi)接觸西門子PLC之前也一直認(rèn)為在程序中不能對(duì)同一個(gè)輸出點(diǎn)多次使用,編程時(shí)想方設(shè)法的把各個(gè)只路并聯(lián)起來(lái)控制一個(gè)輸出線圈,F(xiàn)在用西門子的東東后發(fā)現(xiàn),有時(shí)候你不得不對(duì)同一輸出地址進(jìn)行多次操作,因?yàn)槲鏖T子的位操作指令各不相同
匿名回復(fù):
你們好象對(duì)西門子的東西不是很熟悉吧?對(duì)于一個(gè)位最普通的操作是輸出---(),另外有置位---(S),復(fù)位---(R),還有立即輸出等等,你們可以看系統(tǒng)手冊(cè),就是對(duì)于同一個(gè)位地址,輸出---()指令也經(jīng)常多次用(看過(guò)別人的程序是這樣的),
匿名回復(fù):
提醒用set和rset的朋友,在set后一定要記得rset,否則可能出現(xiàn)非預(yù)料中的結(jié)果。以前我常用,但有時(shí)候就會(huì)忘記rset,結(jié)果不是想要的,還查不出是那里的問(wèn)題,廢時(shí)廢力
匿名回復(fù):
讓中間繼電器去推動(dòng)線圈,N個(gè)中間繼電器并聯(lián)就解決問(wèn)題了.
匿名回復(fù):
什么叫雙線圈輸出?是一個(gè)梯級(jí)中有兩個(gè)輸出?還是在不同梯級(jí)中出現(xiàn)同一個(gè)輸出。
不同梯級(jí)中出現(xiàn)同一個(gè)輸出是允許的,不過(guò)IO更新在一個(gè)掃描周期只有一次,實(shí)際的輸出狀態(tài)由程序中最后一個(gè)梯級(jí)輸出決定。
同一梯級(jí)是否允許有兩個(gè)輸出,是由不同PLC類型決定,有的支持,有的不支持。
匿名回復(fù):
PLC的梯形圖,不要用傳統(tǒng)的繼電器圖來(lái)看它
繼電器圖不分元件擺放上下之分
而PLC的梯形圖元件的擺放和程序有很大的關(guān)系
匿名回復(fù):
上面的說(shuō)得很好,確實(shí)如此,可以使用雙線圈輸出。本人以前也用過(guò),現(xiàn)在做產(chǎn)品設(shè)計(jì)了,各位大蝦,請(qǐng)問(wèn)一下,做PLC自動(dòng)控制是否有前途?我現(xiàn)在那不定主意,很想自己?jiǎn)胃,但是遠(yuǎn)離了一段時(shí)間,很想聽(tīng)聽(tīng)大家的想法,現(xiàn)在打工覺(jué)得實(shí)在沒(méi)有興趣了,想從頭再來(lái)!大家給點(diǎn)真誠(chéng)的意見(jiàn)和建議好么??因?yàn)槲椰F(xiàn)在基本是0起步了。
匿名回復(fù):
上面的說(shuō)得很好,確實(shí)如此,可以使用雙線圈輸出。本人以前也用過(guò),現(xiàn)在做產(chǎn)品設(shè)計(jì)了,各位大蝦,請(qǐng)問(wèn)一下,做PLC自動(dòng)控制是否有前途?我現(xiàn)在那不定主意,很想自己?jiǎn)胃,但是遠(yuǎn)離了一段時(shí)間,很想聽(tīng)聽(tīng)大家的想法,現(xiàn)在打工覺(jué)得實(shí)在沒(méi)有興趣了,想從頭再來(lái)!大家給點(diǎn)真誠(chéng)的意見(jiàn)和建議好么??因?yàn)槲椰F(xiàn)在基本是0起步了。
匿名回復(fù):
我看過(guò)的有不少是雙線圈輸出的。
匿名回復(fù):
是嗎
匿名回復(fù):
下面3中情況可以采用雙線圈,但是這樣多次使用會(huì)使程序可讀性差,建議使用單線圈或用set、reset來(lái)使用多線圈。
(1)在跳步條件相反的兩個(gè)程序段(如自動(dòng)程序和手動(dòng)程序)中,允許出現(xiàn)雙線圈現(xiàn)象,即同一元件的線圈可以在兩個(gè)程序段中分別出現(xiàn)一次。
(2)在調(diào)用條件相反的兩個(gè)子程序中,允許出現(xiàn)雙線圈現(xiàn)象,即同一元件的線圈可以在兩個(gè)子程序中分別出現(xiàn)一次。在一個(gè)掃描周期內(nèi)只能調(diào)用一個(gè)子程序,實(shí)際上只執(zhí)行正在處理的子程序中雙線圈元件的線圈輸出指令。
(3)如果使用三菱PLC的STL(步進(jìn)梯形)指令,由于CPU只執(zhí)行活動(dòng)步對(duì)應(yīng)的STL觸點(diǎn)驅(qū)動(dòng)的電路塊,使用STL指令時(shí)允許雙線圈輸出,即不同時(shí)閉合的STL觸點(diǎn)可以分別驅(qū)動(dòng)同一編程元件的一個(gè)線圈。
另外如用用順序功能圖方式編寫的松下PLC程序,運(yùn)行時(shí)需要配置PLC以允許雙線圈輸出。
匿名回復(fù):
下圖是一個(gè)雙線圈的例子,盡量不要這么使用。