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