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