6ES7902-2AB00-0AA0

【S7-300】ANY類型指針使用指南
與POINTER指針相比,ANY類型指針可以表示一段長度的數(shù)據(jù),例如P#DB1.DBX0.0 BYTE 10,表示指向DB1.DBB0~DB1.DBB9。調(diào)用FB、FC時,對POINTER數(shù)據(jù)類型參數(shù)進行賦值時可以選擇指針顯示方式直接賦值,例如:
P# DB2.DBX12.0 WORD 22 //指向從DB2.DBW12開始22個字。
P#M12.1 BOOL 10 //指向從M12.1開始10個位信號。
也可以選擇使用地址聲明或符號名(不使用符號P#)的方式進行賦值,例如:
DB2.DBW12 //指向DB2.DBW12一個字,數(shù)據(jù)長度為1。
M12.1 //指向M12.1一個位信號,數(shù)據(jù)長度為1。
編寫一個計算功能的函數(shù)FC13,輸入?yún)?shù)“In_Data”為一個數(shù)組變量,如果數(shù)組元素為浮點數(shù),輸出所有元素的平均值“OUT_VAL”,如果數(shù)組元素為其它數(shù)據(jù)類型,不執(zhí)行計算功能。OB1中調(diào)用函數(shù)FC13的程序如下:
CALL FC 13 // 調(diào)用函數(shù)13。
In_Data:=P#DB1.DBX0.0 REAL 8 //輸入數(shù)據(jù)區(qū)從DB1.DBD0開始8個浮點
值。
OUT_VAL:=MD20 //計算結(jié)果。完成的計算功能相當于MD20:=(DB1.DBD0+..+..+DB1.DBD28)/8。
FC13接口參數(shù)
數(shù)據(jù)接口 | 名稱 | 數(shù)據(jù)類型 | 地址 |
IN | In_Data | ANY | |
OUT | OUT_VAL | REAL | |
TEMP | DATA_LEN | INT | 0.0 |
TEMP | BLOCK_NO | INT | 2.0 |
TEMP | ADD_TEMP | REAL | 4.0 |
TEMP | DATA_NO | INT | 8.0 |
L 0 //初始化臨時變量#ADD_TEMP。 T #ADD_TEMP L P##In_Date //指向存儲地址指針In_Date首地址,并 LAR1 裝載到地址寄存器AR1中。 L B [AR1,P#1.0] //如果數(shù)據(jù)類型不是REAL,跳轉(zhuǎn)到END。 L B#16#8 <>D JC END L 0 L W [AR1,P#4.0] //判斷OB1中賦值的地址指針是否為數(shù)據(jù) ==I 塊(參考 ANY的數(shù)據(jù)格式)。 JC M1 T #BLOCK_NO OPN DB [#BLOCK_NO] //如果是DB塊,打開的DB塊。 M1: L W [AR1,P#2.0] //判斷ANY指針中數(shù)據(jù)長度,本例中為 T #DATA_LEN REAL變量的個數(shù)。 L D [AR1,P#6.0] //找出需要計算數(shù)據(jù)區(qū)的開始地址,本例 中為DB1.DBX0.0。 LAR1 L #DATA_LEN NO: T #DATA_NO //循環(huán)執(zhí)行加運算,本例中循環(huán)執(zhí)行的次 數(shù)為8。 L D [AR1,P#0.0] //裝載DB1.DBD0到累加器1中。 L #ADD_TEMP //與臨時變量#ADD_TEMP相加后將計算結(jié)果 +R 再存儲 #ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 //地址寄存器加4,地址偏移量。 L #DATA_NO //LOOP 指令固定格式。 LOOP NO //跳回“NO”循環(huán)執(zhí)行,執(zhí)行完定義在變 量#NO_TEMP的次數(shù)后自動跳出循環(huán)程序。 L #ADD_TEMP //求平均值,裝載運算結(jié)果到累加器1中。 L #DATA_LEN DTR //將變量個數(shù)轉(zhuǎn)變?yōu)楦↑c值便于運算。 /R T #OUT_VAL //輸出運算結(jié)果。 END: NOP 0 |

PLC的國內(nèi)外狀況 我國PLC的現(xiàn)狀
世界上*的*臺PLC是1969年美國數(shù)字設備公司(DEC)研制的。限于當時的元器件條件及計算機發(fā)展水平,早期的PLC主要由分立元件和中小規(guī)模集成電路組成,可以完成簡單的邏輯控制及定時、計數(shù)功能。20世紀70年代初出現(xiàn)了微處理器。人們很快將其引入可編程控制器,使PLC增加了運算、數(shù)據(jù)傳送及處理等功能,完成了真正具有計算機特征的工業(yè)控制裝置。為了方便熟悉繼電器、接觸器系統(tǒng)的工程技術(shù)人員使用,可編程控制器采用和繼電器電路圖類似的梯形圖作為主要編程語言,并將參加運算及處理的計算機存儲元件都以繼電器命名。此時的PLC為微機技術(shù)和繼電器常規(guī)控制概念相結(jié)合的產(chǎn)物。
20世紀70年代中末期,可編程控制器進入實用化發(fā)展階段,計算機技術(shù)已全面引入可編程控制器中,使其功能發(fā)生了飛躍。更高的運算速度、超小型體積、更可靠的工業(yè)抗干擾設計、模擬量運算、PID功能及*的性價比奠定了它在現(xiàn)代工業(yè)中的地位。20世紀80年代初,可編程控制器在*工業(yè)國家中已獲得廣泛應用。這個時期可編程控制器發(fā)展的特點是大規(guī)模、高速度、高性能、產(chǎn)品系列化。這個階段的另一個特點是世界上生產(chǎn)可編程控制器的國家日益增多,產(chǎn)量日益上升。這標志著可編程控制器已步入成熟階段。
20世紀末期,可編程控制器的發(fā)展特點是更加適應于現(xiàn)代工業(yè)的需要。從控制規(guī)模上來說,這個時期發(fā)展了大型機和超小型機;從控制能力上來說,誕生了各種各樣的特殊功能單元,用于壓力、溫度、轉(zhuǎn)速、位移等各式各樣的控制場合;從產(chǎn)品的配套能力來說,生產(chǎn)了各種人機界面單元、通信單元,使應用可編程控制器的工業(yè)控制設備的配套更加容易。目前,可編程控制器在機械制造、石油化工、冶金鋼鐵、汽車、輕工業(yè)等領域的應用都得到了長足的發(fā)展。
我國可編程控制器的引進、應用、研制、生產(chǎn)是伴隨著改革開放開始的。最初是在引進設備中大量使用了可編程控制器。接下來在各種企業(yè)的生產(chǎn)設備及產(chǎn)品中不斷擴大了PLC的應用。目前,我國自己已可以生產(chǎn)中小型可編程控制器。上海東屋電氣有限公司生產(chǎn)的CF系列、杭州機床電器廠生產(chǎn)的DKK及D系列、大連組合機床研究所生產(chǎn)的S系列、蘇州電子計算機廠生產(chǎn)的YZ系列等多種產(chǎn)品已具備了一定的規(guī)模并在工業(yè)產(chǎn)品中獲得了應用。此外,無錫華光公司、上海鄉(xiāng)島公司等中外合資企業(yè)也是我國比較著名的PLC生產(chǎn)廠家。可以預期,隨著我國現(xiàn)代化進程的深入,PLC在我國將有更廣闊的應用天地。

何為PLC的周期掃描機制?PLC的掃描周期一般包括哪幾個階段?
當PLC運行時,CPU就要執(zhí)行用戶程序中的操作。但是CPU不可能同時執(zhí)行多個操作,只能分時地一個操作一個操作地執(zhí)行。PLC利用系統(tǒng)軟件在其內(nèi)部建立了輸入輸出映像區(qū),當PLC的CPU執(zhí)行用戶程序時,從輸入映像區(qū)中讀取輸入信號的狀態(tài),進行相應的操作。當CPU執(zhí)行完*個操作后,將操作結(jié)果輸出到輸出映像區(qū),然后再執(zhí)行第二個操作,操作結(jié)果送到輸出映像區(qū)。在程序執(zhí)行過程中,PLC并不讀取輸入信號的真正狀態(tài),執(zhí)行結(jié)果也并沒有輸出到PLC外部。只有當程序執(zhí)行到結(jié)束指令(END)時,將輸出映像區(qū)中執(zhí)行結(jié)果向PLC外部輸出一次,將輸入信號的狀態(tài)讀取一次送到輸入映像區(qū)。對輸入輸出信號的這一操作過程稱為I/O刷新。I/O刷新完成后,CPU再從用戶程序的*條指令開始,進行下一次程序執(zhí)行。PLC的這種工作方式被稱為掃描方式。
PLC的掃描周期包括上電后初始處理、共同處理、上位鏈接服務、外設服務、運算處理、I/O刷新。

PLC執(zhí)行程序的過程分為哪三個階段?
PLC執(zhí)行程序的過程分為三個階段,即輸入采樣階段、程序執(zhí)行階段、輸出刷新階段,PLC的掃描工作過程:
(1)輸入采樣階段。在這一階段中,PLC以掃描方式讀入所有輸入端子上的輸入信號,并將各輸入狀態(tài)存入對應的輸入映像寄存器中。此時,輸入映像寄存器被刷斷。在程序執(zhí)行階段和輸出刷新階段中,輸入映像存儲器與外界隔離,其內(nèi)容保持不變,直至下一個掃描周期的輸入掃描階段,才被重新讀入的輸入信號刷新??梢姡?/span>PLC在執(zhí)行程序和處理數(shù)據(jù)時,不直接使用現(xiàn)場當時的輸入信號,而使用本次采樣時輸入到映像區(qū)中的數(shù)據(jù)。一般來說,輸入信號的寬度要大于一個掃描周期,否則可能造成信號的丟失。
(2)程序執(zhí)行階段。在執(zhí)行用戶程序過程中,PLC按照梯形圖程序掃描原則,一般來說,PLC按從左至右、從上到下的步驟逐個執(zhí)行程序。但遇到程序跳轉(zhuǎn)指令,則根據(jù)跳轉(zhuǎn)條件是否滿足來決定程序跳轉(zhuǎn)地址。程序執(zhí)行過程中,當指令中涉及輸入、輸出狀態(tài)時,PLC就從輸入映像寄存器中“讀入”對應輸入端子狀態(tài),從輸出映像寄存器“讀入”對應元件(“軟繼電器”)的當前狀態(tài)。然后進行相應的運算,運算結(jié)果再存入輸出映像寄存器中。對輸出映像寄存器來說,每一個元件(“軟繼電器”)的狀態(tài)會隨著程序執(zhí)行過程而變化。
(3)輸出刷新階段。程序執(zhí)行階段的運算結(jié)果被存入輸出映像區(qū),而不送到輸出端口上。在輸出刷新階段,PLC將輸出映像區(qū)中的輸出變量送入輸出鎖存器,然后由鎖存器通過輸出模塊產(chǎn)生本周期的控制輸出。如果內(nèi)部輸出繼電器的狀態(tài)為“1”,則輸出繼電器觸點閉合,經(jīng)過輸出端子驅(qū)動外部負載。全部輸出設備的狀態(tài)要保持一個掃描周期。

PLC的響應時間概念,響應時間在不同輸出方式下的區(qū)別
什么是PLC的響應時間?在輸出采用循環(huán)刷新和直接刷新方式時,響應時間有何區(qū)別?
從PLC收到一個輸入信號到PLC向輸出端輸出一個控制信號所需的時間,就是PLC的響應時間,使用循環(huán)刷新時,在一個掃描周期的刷新階段開始前瞬間收到一個信號,則在本周期內(nèi)該信號就起作用了,這時響應時間最短,等于輸入延時時間、一個掃描周期時間、輸出延遲時間三者之和;如果在一個掃描周期的I/O更新階段剛過就收到一個信號,則該信號在本周期內(nèi)不能起作用,必須等到下一個掃描周期才能起作用,這時響應時間最長,它等于輸入延遲時間、兩個掃描周期時間與輸出延遲時間三者之和;在使用直接輸出刷新時,最長響應時間等于輸入延遲時間、一個掃描周期時間、輸出延遲時間三者之和。

6ES7902-2AB00-0AA0