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