plc通過(guò)程序的運(yùn)行實(shí)施控制的過(guò)程其實(shí)質(zhì)就是對(duì)存儲(chǔ)器中數(shù)據(jù)進(jìn)行操作或處理的過(guò)程,根據(jù)使用功能的不同,把存儲(chǔ)器分為若干個(gè)區(qū)域和種類,這些由用戶使用的每一個(gè)內(nèi)部存儲(chǔ)單元統(tǒng)稱為軟元件。各元件有其不同的功能,有固定的地址。軟元件的數(shù)量決定了可編程控制器的規(guī)模和數(shù)據(jù)處理能力,每一種plc的軟元件是有限的。
為了理解方便,把plc內(nèi)部許多位地址空間的軟元件定義為內(nèi)部繼電器(軟繼電器)。但要注意把這種繼電器與傳統(tǒng)電氣控制電路中的繼電器區(qū)別開(kāi)來(lái),這些軟繼電器的最大特點(diǎn)就是其線圈的通斷實(shí)質(zhì)就是其對(duì)應(yīng)存儲(chǔ)器位的置位與復(fù)位,在電路(梯形圖)中使用其觸點(diǎn)實(shí)質(zhì)就是對(duì)其所對(duì)應(yīng)的存儲(chǔ)器位的讀操作,因此其觸點(diǎn)可以無(wú)限次的使用。
編程時(shí),用戶只需要記住軟元件的地址即可。每一軟元件都有一個(gè)地址與之一一對(duì)應(yīng),其中軟繼電器的地址編排采用區(qū)域號(hào)加區(qū)域內(nèi)編號(hào)的方式。即plc內(nèi)部根據(jù)軟元件的功能不同,分成了許多區(qū)域,如輸入/輸出繼電器、輔助繼電器、定時(shí)器區(qū)、計(jì)數(shù)器區(qū)、順序控制繼電器、特殊標(biāo)志繼電器區(qū)等,分別用i、q、m、t、c、s、sm等來(lái)表示。
1、數(shù)字量輸入繼電器(i)
輸入繼電器也就是輸入映像寄存器,每個(gè)plc的輸入端子都對(duì)應(yīng)有一個(gè)輸入繼電器,它用于接收外部的開(kāi)關(guān)信號(hào)。輸入繼電器的狀態(tài)唯一地由其對(duì)應(yīng)的輸入端子的狀態(tài)決定,在程序中不能出現(xiàn)輸入繼電器線圈被驅(qū)動(dòng)的情況,只有當(dāng)外部的開(kāi)關(guān)信號(hào)接通plc的相應(yīng)輸入端子的回路,則對(duì)應(yīng)的輸入繼電器的線圈“得電”,在程序中其常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi)。這些觸點(diǎn)可以在編程時(shí)任意使用,使用數(shù)量(次數(shù))不受限制。
所謂輸入繼電器的線圈“得電”,事實(shí)上并非真的有輸入繼電器的線圈存在,這只是一個(gè)存儲(chǔ)器的操作過(guò)程。在每個(gè)掃描周期的開(kāi)始,plc對(duì)各輸入點(diǎn)進(jìn)行采樣,并把采樣值存入輸入映像寄存器。plc在接下來(lái)的本周期各階段不再改變輸入映像寄存器中的值,直到下一個(gè)掃描周期的輸入采樣階段。
需要特別注意的是,輸入繼電器的狀態(tài)唯一的由輸入端子的狀態(tài)決定,輸入端子接通則對(duì)應(yīng)的輸入繼電器得電動(dòng)作,輸入端子斷開(kāi)則對(duì)應(yīng)的輸入繼電器斷電復(fù)位。在程序中試圖改變輸入繼電器的狀態(tài)的所有做法都是錯(cuò)誤的。
數(shù)字量輸入繼電器用“i”表示,輸入映像寄存器區(qū)屬于位地址空間,范圍為i0.0~i15.7,可進(jìn)行位、字節(jié)、字、雙字操作。實(shí)際輸入點(diǎn)數(shù)不能超過(guò)這個(gè)數(shù)量,未用的輸入映像寄存器區(qū)可以做其他編程元件使用,如可以當(dāng)通用輔助繼電器或數(shù)據(jù)寄存器,但這只有在寄存器的整個(gè)字節(jié)的所有位都未占用的情況下才可做他用,否則會(huì)出現(xiàn)錯(cuò)誤執(zhí)行結(jié)果。
2、數(shù)字量輸出繼電器(q)
輸出繼電器也就是輸出映像寄存器,每個(gè)plc的輸出端子對(duì)應(yīng)都有一個(gè)輸出繼電器。當(dāng)通過(guò)程序使得輸出繼電器線圈“得電”時(shí),plc上的輸出端開(kāi)關(guān)閉合,它可以作為控制外部負(fù)載的開(kāi)關(guān)信號(hào)。同時(shí)在程序中其常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi)。這些觸點(diǎn)可以在編程時(shí)任意使用,使用次數(shù)不受限制。
數(shù)字量輸出繼電器用“q”表示,輸出映像寄存器區(qū)屬于位地址空間,范圍為q0.0~q15.7,可進(jìn)行位、字節(jié)、字、雙字操作。實(shí)際輸出點(diǎn)數(shù)不能超過(guò)這個(gè)數(shù)量,未用的輸出映像區(qū)可做他用,用法與輸入繼電器相同。 由圖7.5、圖7.6、圖7.7可知,在plc內(nèi)部,輸出映像寄存器與輸出端子之間還有一個(gè)輸出鎖存器。在每個(gè)掃描周期的輸入采樣、程序執(zhí)行等階段,并不把輸出結(jié)果信號(hào)直接送到輸出鎖存器,而只是送到輸出映像寄存器,只有在每個(gè)掃描周期的末尾才將輸出映像寄存器中的結(jié)果信號(hào)幾乎同時(shí)送到輸出鎖存器,對(duì)輸出點(diǎn)進(jìn)行刷新。
另外需要注意的是,不要把繼電器輸出型的輸出單元中的真實(shí)的繼電器與輸出繼電器相混淆。
3、通用輔助繼電器(m)
通用輔助繼電器如同電器控制系統(tǒng)中的中間繼電器,在plc中沒(méi)有輸入輸出端與之對(duì)應(yīng),因此通用輔助繼電器的線圈不直接受輸入信號(hào)的控制,其觸點(diǎn)也不能直接驅(qū)動(dòng)外部負(fù)載。所以,通用輔助繼電器只能用于內(nèi)部邏輯運(yùn)算。
通用輔助繼電器用“m”表示,通用輔助繼電器區(qū)屬于位地址空間,范圍為m0.0~m31.7,可進(jìn)行位、字節(jié)、字、雙字操作。
4、特殊標(biāo)志繼電器(sm)
有些輔助繼電器具有特殊功能或存儲(chǔ)系統(tǒng)的狀態(tài)變量、有關(guān)的控制參數(shù)和信息,我們稱為特殊標(biāo)志繼電器。用戶可以通過(guò)特殊標(biāo)志來(lái)溝通plc與被控對(duì)象之間的信息,如可以讀取程序運(yùn)行過(guò)程中的設(shè)備狀態(tài)和運(yùn)算結(jié)果信息,利用這些信息用程序?qū)崿F(xiàn)一定的控制動(dòng)作。用戶也可通過(guò)直接設(shè)置某些特殊標(biāo)志繼電器位來(lái)使設(shè)備實(shí)現(xiàn)某種功能。
特殊標(biāo)志繼電器用“sm”表示,特殊標(biāo)志繼電器區(qū)根據(jù)功能和性質(zhì)不同具有位、字節(jié)、字和雙字操作方式。其中smb0、smb1為系統(tǒng)狀態(tài)字,只能讀取其中的狀態(tài)數(shù)據(jù),不能改寫,可以位尋址。系統(tǒng)狀態(tài)字中部分常用的標(biāo)志位說(shuō)明如下:
sm0.0:始終接通;
sm0.1:首次掃描為1,以后為0,常用來(lái)對(duì)程序進(jìn)行初始化;
sm0.2:當(dāng)機(jī)器執(zhí)行數(shù)學(xué)運(yùn)算的結(jié)果為負(fù)時(shí),該位被置1;
sm0.3:開(kāi)機(jī)后進(jìn)入run方式,該位被置1一個(gè)掃描周期;
sm0.4:該位提供一個(gè)周期為1分鐘的時(shí)鐘脈沖,30秒為1,30秒為0;
sm0.5:該位提供一個(gè)周期為1秒鐘的時(shí)鐘脈沖,0.5秒為1,0.5秒為0;
sm0.6:該位為掃描時(shí)鐘脈沖,本次掃描為1,下次掃描為0;
sm1.0:當(dāng)執(zhí)行某些指令,其結(jié)果為0時(shí),將改位置1;
sm1.1:當(dāng)執(zhí)行某些指令,其結(jié)果溢出或?yàn)榉欠〝?shù)值時(shí),將改位置1;
sm1.2:當(dāng)執(zhí)行數(shù)學(xué)運(yùn)算指令,其結(jié)果為負(fù)數(shù)時(shí),將改位置1;
sm1.3:試圖除以0時(shí),將改位置1;
其他常用特殊標(biāo)志繼電器的功能可以參見(jiàn)s7-200系統(tǒng)手冊(cè)。
5、變量存儲(chǔ)器(v)
變量存儲(chǔ)器用來(lái)存儲(chǔ)變量。它可以存放程序執(zhí)行過(guò)程中控制邏輯操作的中間結(jié)果,也可以使用變量存儲(chǔ)器來(lái)保存與工序或任務(wù)相關(guān)的其他數(shù)據(jù)。
變量存儲(chǔ)器用“v”表示,變量存儲(chǔ)器區(qū)屬于位地址空間,可進(jìn)行位操作,但更多的是用于字節(jié)、字、雙字操作。變量存儲(chǔ)器也是s7-200中空間最大的存儲(chǔ)區(qū)域,所以常用來(lái)進(jìn)行數(shù)學(xué)運(yùn)算和數(shù)據(jù)處理,存放全局變量數(shù)據(jù)。
6、局部變量存儲(chǔ)器(l)
局部變量存儲(chǔ)器用來(lái)存放局部變量。局部變量與變量存儲(chǔ)器所存儲(chǔ)的全局變量十分相似,主要區(qū)別是全局變量是全局有效的,而局部變量是局部有效的。全局有效是指同一個(gè)變量可以被任何程序(包括主程序、子程序和中斷程序)訪問(wèn);而局部有效是指變量只和特定的程序相關(guān)聯(lián)。
s7—200 plc提供64個(gè)字節(jié)的局部存儲(chǔ)器,其中60個(gè)可以作暫時(shí)存儲(chǔ)器或給子程序傳遞參數(shù)。主程序、子程序和中斷程序在使用時(shí)都可以有64個(gè)字節(jié)的局部存儲(chǔ)器可以使用。不同程序的局部存儲(chǔ)器不能互相訪問(wèn)。機(jī)器在運(yùn)行時(shí),根據(jù)需要?jiǎng)討B(tài)地分配局部存儲(chǔ)器:在執(zhí)行主程序時(shí),分配給子程序或中斷程序的局部變量存儲(chǔ)區(qū)是不存在的,當(dāng)子程序調(diào)用或出現(xiàn)中斷時(shí),需要為之分配局部存儲(chǔ)器,新的局部存儲(chǔ)器可以是曾經(jīng)分配給其他程序塊的同一個(gè)局部存儲(chǔ)器。
局部變量存儲(chǔ)器用“l(fā)”表示,局部變量存儲(chǔ)器區(qū)屬于位地址空間,可進(jìn)行位操作,也可以進(jìn)行字節(jié)、字、雙字操作。
7、順序控制繼電器(s)
順序控制繼電器用在順序控制和步進(jìn)控制中,它是特殊的繼電器。有關(guān)順序控制繼電器的使用請(qǐng)閱讀本章后續(xù)有關(guān)內(nèi)容。
順序控制繼電器用“s”表示,順序控制繼電器區(qū)屬于位地址空間,可進(jìn)行位操作,也可以進(jìn)行字節(jié)、字、雙字操作。
8、定時(shí)器(t)
定時(shí)器是可編程序控制器中重要的編程元件,是累計(jì)時(shí)間增量的內(nèi)部器件。自動(dòng)控制的大部分領(lǐng)域都需要用定時(shí)器進(jìn)行定時(shí)控制,靈活地使用定時(shí)器可以編制出動(dòng)作要求復(fù)雜的控制程序。
定時(shí)器的工作過(guò)程與繼電器接觸器控制系統(tǒng)的時(shí)間繼電器基本相同。使用時(shí)要提前輸入時(shí)間預(yù)置值。當(dāng)定時(shí)器的輸入條件滿足且開(kāi)始計(jì)時(shí),當(dāng)前值從0開(kāi)始按一定的時(shí)間單位增加;當(dāng)定時(shí)器的當(dāng)前值達(dá)到預(yù)置值時(shí),定時(shí)器動(dòng)作,此時(shí)它的常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi),利用定時(shí)器的觸點(diǎn)就可以按照延時(shí)時(shí)間實(shí)現(xiàn)的各種控制規(guī)律或動(dòng)作。
9、計(jì)數(shù)器(c)
計(jì)數(shù)器用來(lái)累計(jì)內(nèi)部事件的次數(shù)。可以用來(lái)累計(jì)內(nèi)部任何編程元件動(dòng)作的次數(shù),也可以通過(guò)輸入端子累計(jì)外部事件發(fā)生的次數(shù),它是應(yīng)用非常廣泛的編程元件,經(jīng)常用來(lái)對(duì)產(chǎn)品進(jìn)行計(jì)數(shù)或進(jìn)行特定功能的編程。使用時(shí)要提前輸入它的設(shè)定值(計(jì)數(shù)的個(gè)數(shù))。當(dāng)輸入觸發(fā)條件滿足時(shí),計(jì)數(shù)器開(kāi)始累計(jì)其輸入端脈沖電位跳變(上升沿或下降沿)的次數(shù);當(dāng)計(jì)數(shù)器計(jì)數(shù)達(dá)到預(yù)定的設(shè)定值時(shí),其常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi)。
模擬量輸入映像寄存器(ai)、模擬量輸出映像寄存器(aq)
模擬量輸入電路用以實(shí)現(xiàn)模擬量/數(shù)字量(a/d)之間的轉(zhuǎn)換,而模擬量輸出電路用以實(shí)現(xiàn)數(shù)字量/模擬量(d/a)之間的轉(zhuǎn)換,plc處理的是其中的數(shù)字量。
在模擬量輸入/輸出映像寄存器中,數(shù)字量的長(zhǎng)度為1字長(zhǎng)(16位),且從偶數(shù)號(hào)字節(jié)進(jìn)行編址來(lái)存取轉(zhuǎn)換前后的模擬量值,如0、2、4、6、8。編址內(nèi)容包括元件名稱、數(shù)據(jù)長(zhǎng)度和起始字節(jié)的地址,模擬量輸入映像寄存器用ai表示、模擬量輸出映像寄存器用aq表示,如:aiw10,aqw4等。
plc對(duì)這兩種寄存器的存取方式不同的是,模擬量輸入寄存器只能作讀取操作,而對(duì)模擬量輸出寄存器只能作寫入操作。
1、高速計(jì)數(shù)器(hc)
高速計(jì)數(shù)器的工作原理與普通計(jì)數(shù)器基本相同,它用來(lái)累計(jì)比主機(jī)掃描速率更快的高速脈沖。高速計(jì)數(shù)器的當(dāng)前值為雙字長(zhǎng)(32位)的整數(shù),且為只讀值。
高速計(jì)數(shù)器的數(shù)量很少,編址時(shí)只用名稱hc和編號(hào),如:hc2。
11、累加器(ac)
s7—200plc提供4個(gè)32位累加器,分別為ac0、acl、ac2、ac3,累加器(ac)是用來(lái)暫存數(shù)據(jù)的寄存器。它可以用來(lái)存放數(shù)據(jù)如運(yùn)算數(shù)據(jù)、中間數(shù)據(jù)和結(jié)果數(shù)據(jù),也可用來(lái)向子程序傳遞參數(shù),或從子程序返回參數(shù)。使用時(shí)只表示出累加器的地址編號(hào),如ac0。
累加器可進(jìn)行讀、寫兩種操作,在使用時(shí)只出現(xiàn)地址編號(hào)。累加器可用長(zhǎng)度為32位,但實(shí)際應(yīng)用時(shí),數(shù)據(jù)長(zhǎng)度取決于進(jìn)出累加器的數(shù)據(jù)類型。