詳細(xì)介紹
西門子上海觸摸屏代理商
凡在上海盟疆工業(yè)自動化設(shè)備有限公司采購西門子產(chǎn)品,,均可質(zhì)保一年,,假一罰十
花30秒詢價,你會知道什么叫優(yōu)勢,;花60秒咨詢,,你會知道什么叫服務(wù);
合作一次,,你會知道什么叫質(zhì)量!以質(zhì)量求生存,,以信譽(yù)求發(fā)展。
我司將提供的質(zhì)量,,服務(wù)作為自已重要的責(zé)任,。
1. 提出問題
圖1
問題1:M10.2能否被置位?
圖2
問題2:S_CU計數(shù)有無問題,,M6.2能否被置位?
先來了解一下都有哪幾個計時器,,以及它們的特性如何
圖3
2. 計時器描述
從以圖3可以看出5個計時器的基本特性,,可以簡單的從中挑選與控制工藝相符合的計時器使用,,如果想了解計時器的詳細(xì)信息,可以選擇計時器,,并按F1看幫助信息中的具體邏輯圖,。
以計時器SD為例,,參見圖4
圖4
我們從中可以知道,,當(dāng)觸發(fā)端S的信號為上升沿時,,觸發(fā)計時器開始運(yùn)行,時間結(jié)束后計時器輸出端為1,,S信號為下降沿時,,計時器輸出端為0
那么根據(jù)此情況,以圖1為例,,咱們可以把剛才的梯形圖程序通過時序圖表示如下圖5
其中a,b之間是在掃描此段程序兩個周期之間的間隙。
圖5
3. 計時器與循環(huán)程序的關(guān)系
經(jīng)過分析,,可以看出,,M10.2(S)是可以被置位的,那為什么沒有看見其被置位呢,?
大家注意,,這里t的時間是8s,我們知道,,一個程序的掃描周期很短,,可能才十幾----幾十毫秒,在線時候可以監(jiān)控到Scan Cycle Time,。如圖6
圖6
那這個時間不是遠(yuǎn)遠(yuǎn)超過了掃描周期么,?
我們又知道,如果程序掃描周期大于大掃描周期監(jiān)控時間Scan Cycle Monitoring Time,,那么將會觸發(fā)中斷,,甚至造成CPU進(jìn)入STOP狀態(tài)。
其實(shí),,計時器的執(zhí)行是異步于OB1循環(huán)掃描的,,只要計時器運(yùn)行后,,在每一周期掃描到計時器的觸發(fā)端S信號如果為1,那么計時器就將在此周期繼續(xù)計時,。因此,,它對于大周期監(jiān)控時間并沒有太大的影響,只是調(diào)用語句時占用了少許us的時間,。
怎么來驗(yàn)證這個說法呢,?就是說計時器的執(zhí)行并不同步于OB1程序掃描周期。
1,,可以在程序中加入若干SFC47增大程序掃描周期(保證小于Scan Cycle Monitoring Time),,通過監(jiān)控計時器的時間,可以看出,,計時器的時間是跳躍式的變化的,,也就是說,也就是說,,當(dāng)程序掃描完計時器,,繼續(xù)往下進(jìn)行時,計時器滿足觸發(fā)條件進(jìn)行計時,,此周期往后的計時是一直在進(jìn)行的,。
2,可以通過在中斷來證明
3,,通過程序死循環(huán)監(jiān)視計時證明
4,,通過多個計時器監(jiān)視時間來證明等等各種方法
那說明了是異步的有何作用呢,?
說明了剛才咱們分析程序所作的時序圖有一定的問題,因?yàn)樵蹅兊姆治鍪前凑粘绦蛞徊讲酵逻M(jìn)行的,,相當(dāng)于是同步進(jìn)行的,。而實(shí)際在程序執(zhí)行時,掃描周期是比較短的,,所以計時器是在其中的某一個周期里計時器計時結(jié)束時輸出被置位為1,,那么因?yàn)檫@樣,所以對我們編寫程序就會有一定的要求,。也就有了下面一個問題
4. 計時器動作的時刻
計時器的輸出端是什么時候被置位呢,,什么時候起作用呢,比如,?
是等到重新掃描到計時器塊,,計時器執(zhí)行完畢才置位,還是不用重新掃描到計時器,?程序中直接掃描的T40節(jié)點(diǎn),,它就已經(jīng)被置位了呢?
1,,我們可以設(shè)置OB35的看門狗時間為2000ms, 如圖7
OB35里觸發(fā)計時器T40,,的開點(diǎn)給線圈M6.0,如圖8
OB1里的開點(diǎn)給線圈M6.1,,M6.0開點(diǎn)給線圈M6.2,,如圖9
經(jīng)過試驗(yàn),觀察看到,,當(dāng)T40的Timer運(yùn)行結(jié)束后M6.1立刻就被置位了,,而M6.0和M6.2會等到再次掃描到OB35,才會被置位,。
可得出結(jié)論,,當(dāng)計時器T40計時結(jié)束時,CPU掃描到時,,它就已經(jīng)為1了,,不需要等到掃描計時器S_ODT(SD)。
圖7
圖8
圖9
2,,也可以在OB1里調(diào)用多個“wait”代碼讓OB1的掃描周期足夠大,,如5s,先調(diào)用一個SD T2 1s,,然后調(diào)用若干“wait”,,大概持續(xù)2s,用T2開點(diǎn)觸發(fā)一個線圈如M10.0,再調(diào)用若干“wait”,,大概1s,,然后再調(diào)用一個SD T3,可以看出再T3還沒有開始計數(shù)時,,M10.0已經(jīng)被置位了,。
計時器在OB30—OB38里呢?
是一樣的,。
可以在OB35里使用SD計時器,,可以發(fā)現(xiàn),當(dāng)程序調(diào)用OB35時,,計時器開始運(yùn)行,,把OB35執(zhí)行時間和計時器時間設(shè)置大些,可以發(fā)現(xiàn),,只要每次在掃描的計時器觸發(fā)端時,,條件滿足,計時器就開始運(yùn)行,,直到下一次掃描OB35時再掃描到此條件為止,。
可以把計時器時間設(shè)置足夠大,當(dāng)計時未結(jié)束前把它的觸發(fā)端變?yōu)?,,那么其計時停止,,直到再次觸發(fā)。
可以得出計時器的運(yùn)行只與每次掃描到它的觸發(fā)端有關(guān),。掃描完觸發(fā)端后,,計時器的運(yùn)行就與觸發(fā)端無關(guān)了,直到下一次再次掃描到此觸發(fā)端,。
5. 分析程序
了解了以上的一些基本知識,咱們再來看看剛才圖1中的程序,。
一個CPU的掃描周期是可以計算的,,根據(jù)不同的配置和數(shù)據(jù)的讀取,可以計算出不同的周期,,在PLC運(yùn)行時,,每個周期的大小也是不一樣的,可以大致計算出范圍,,可以根據(jù)每條語句來計算程序的執(zhí)行時間,,再加上相應(yīng)的循環(huán)周期檢測點(diǎn),周期中斷,,訪問過程映像區(qū),,通信負(fù)載等。這些時間的長短與CPU型號及使用方式有關(guān),。
使用PS307 5A,,CPU315-2PN/DP (315-2EH13-0AB0 V 2.6.50)為例,。以下所有時間都以此配置為標(biāo)準(zhǔn)。
我們把圖1的梯型圖換成語句表來分析指令執(zhí)行的過程,。
圖10
一個CPU的掃描周期的計算可以根據(jù)以下幾個過程來進(jìn)行
圖11