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