西門子PLC指針編程_第1頁(yè)
西門子PLC指針編程_第2頁(yè)
西門子PLC指針編程_第3頁(yè)
西門子PLC指針編程_第4頁(yè)
西門子PLC指針編程_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 1 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程Automation and Drives 崔堅(jiān)崔堅(jiān) 西門子自動(dòng)化與驅(qū)動(dòng)集團(tuán)西門子自動(dòng)化與驅(qū)動(dòng)集團(tuán) 客戶支持部客戶支持部CS2 熱線電話:熱線電話:4008104288網(wǎng)址:網(wǎng)址:http:/ AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Techn

2、ical Consulting Page 2 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程Automation and DrivesSTEP7 指針編程A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 3 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程尋址方式A&D AS CS2 FASystems Support A&

3、amp;D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 4 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程直接尋址A M1.1AN DB1.DBX12.0= Q1.2A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 5 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針16位地

4、址指針位地址指針16位地址指針用于定時(shí)器、計(jì)數(shù)器、程序塊(DB、FC、FB)的尋址,16位指針被看作一個(gè)無(wú)符號(hào)整數(shù)(065535),它表示定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB、DI)或程序塊(FB、FC)的號(hào),16位指針的格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 6 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針16位地址指針位地址指針地址尋址表示格式為:區(qū)域標(biāo)識(shí)符1

5、6位地址指針,例如打開一個(gè)DB塊表示為:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 7 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針16位地址指針使用示例位地址指針使用示例 L 12 T LW 20 UC FC LW 20 /無(wú)條件調(diào)用FC12 L 13 T MW 20 A I 2.3 CC FB MW 20/如果I2.3為1,調(diào)用FB13。 FC12和FB13不能帶有形參,這是有

6、CC和UC調(diào)用指令決定的。 /A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 8 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針位地址指針32位地址指針位地址指針32位地址指針用于I、Q、M、L、數(shù)據(jù)塊等存儲(chǔ)器中位、字節(jié)、字及雙字的尋址,32位的地址指針可以使用一個(gè)雙字表示,第0位第2位作為尋址操作的位地址,第3位第18位作為尋址操作的字節(jié)地址,第19位第31位沒(méi)有定義,3

7、2位指針的格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 9 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針位地址指針地址尋址表示格式為:地址存儲(chǔ)器標(biāo)識(shí)符32位地址指針,例如指針存儲(chǔ)于LD20中,裝載M存儲(chǔ)器一個(gè)字節(jié)表示 32位地址指針也可以使用常數(shù)表示,例如裝載32位指針常數(shù) L P# 40.3 (P=指針,字節(jié)地址=40,位地址=3)。32位地址指針數(shù)據(jù)與雙整

8、數(shù)可以相互轉(zhuǎn)換,由于指針指到一個(gè)位地址上,每一個(gè)位地址加1,相應(yīng)轉(zhuǎn)換的整數(shù)值加1的倍數(shù),例如P#0.0轉(zhuǎn)換雙整數(shù)為L(zhǎng)#0,P#0.1轉(zhuǎn)換雙整數(shù)為L(zhǎng)#1,每一個(gè)字節(jié)地址加1,相應(yīng)轉(zhuǎn)換的整數(shù)值加8的倍數(shù),例如P#3.1轉(zhuǎn)換雙整數(shù)為L(zhǎng)#25.A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 10 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針使用示例位地址指針使用示例1 OPN D

9、B 1 /打開DB1。 OPN DI 3 /打開DB3,最多可以同時(shí)打開兩個(gè)DB塊。 L 4 /裝載4到累加器1中。 SLD 3 /累加器1中數(shù)值左移3位。 T MD 20 /將邏輯操作結(jié)果傳送到MD20中,MD20 包含地址指針為P#4.0。 L P#20.0 /將地址指針P#20.0裝載到MD24中。 T MD 24 L 320 /320轉(zhuǎn)換指針為P#40.0并裝載到MD28中。 T MD 28 L DBW MD 20 /裝載DB1.DBW4。 L DBW MD 24 /裝載DB1.DBW20。 +I /相加 L DIW MD 28 /裝載DB3.DBW40。 -I /相減。 T DIW

10、2 /將運(yùn)算結(jié)果傳送到DB3.DBW2中。 JC m1A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 11 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針使用示例位地址指針使用示例2使用LOOP 指令與32位地址指針可以進(jìn)行循環(huán)操作,假設(shè)一個(gè)編程應(yīng)用:一個(gè)字變量(MW2)與一個(gè)數(shù)組(假設(shè)存儲(chǔ)于DB1中,包含100個(gè)元素為字的數(shù)組)存儲(chǔ)的值相比較,如果數(shù)值相同,指出第一個(gè)相同

11、數(shù)值存儲(chǔ)在DB塊中的位置(數(shù)組中的位置)。 L 0 /初始化MW100和MD4。 T MW 100 T MD 4 OPN DB 1 /打開DB1。 L 100 /循環(huán)操作的次數(shù),100次。next: T MW 100 /將循環(huán)100次裝載到MW100中, 固定格式。 L MW 2 /進(jìn)行比較的數(shù)值存儲(chǔ)于MW2。 L DBW MD 4 /與DB塊中存儲(chǔ)的值進(jìn)行比較,開 始地址為DBW0。 =I /如果數(shù)值相等跳到m1。 JC m1A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page

12、 12 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針使用示例位地址指針使用示例2 L MD 4 /將地址指針加2(每個(gè)相鄰的字地址相差2)。 L P#2.0 +D T MD 4 L MW 100 /次數(shù)減1,跳回next,如果MW100等于0,跳 出循環(huán)操作LOOP指令,LOOP指令固定格式。 LOOP nextm1: FP M 10.0 /如果數(shù)值相當(dāng),記錄MD4指針的數(shù)據(jù),將轉(zhuǎn) 換為數(shù)組的位置((地址值/P#2.0)+1)值存儲(chǔ)于 MD8中。 JCN m2 L MD 4 L P#2.0

13、/D + 1 T MD 8m2: NOP 0A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 13 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲(chǔ)區(qū)地址指針32位地址指針注意事項(xiàng)位地址指針注意事項(xiàng) OPN DB 1 L 20 T MD 20 /MD20裝載的地址指針為P#2.4。 L 11 T DBB MD 20/指針指向P#2.4,相當(dāng)于L DBB2.4,CPU無(wú)法識(shí)別,將停機(jī)。使用使用32位地址

14、指針的注意事項(xiàng)位地址指針的注意事項(xiàng):如果對(duì)相鄰兩個(gè)字節(jié)操作,指針轉(zhuǎn)換為整數(shù)值最小必須為8(指針為P#1.0)的倍數(shù),如果對(duì)相鄰兩個(gè)字操作,指針轉(zhuǎn)換為整數(shù)值最小必須為16(指針為P#2.0)的倍數(shù),如果對(duì)相鄰兩個(gè)雙字操作,指針轉(zhuǎn)換為整數(shù)值最小必須為32(指針為P#4.0)的倍數(shù),對(duì)字與雙字指針的要求主要防治數(shù)據(jù)間的沖突,例如DBWMD2,MD2為16的倍數(shù)時(shí),按照DBW2、DBW4、DBW6尋址,如果為8的倍數(shù),按照DBW1、DBW2、DBW3尋址,地址間數(shù)據(jù)沖突。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technic

15、al Consulting Page 14 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程寄存器間接尋址使用的指令寄存器間接尋址使用的指令寄存器間接尋址 寄存器間接尋址使用CPU內(nèi)部集成的兩個(gè)32位寄存器AR1和AR2LAR1 : 將ACCU1存儲(chǔ)的地址指針寫入AR1。LAR1 : 將指明的地址指針寫入AR1,例如LAR1 P#20.0或LAR1 MD20LAR1 AR2 : 將AR2的內(nèi)容寫入AR1。LAR2 : 將ACCU1存儲(chǔ)的地址指針寫入AR2。LAR2 : 將指明的地址指針寫入AR2,與LAR1 方式相同。TA

16、R1 : 將AR1存儲(chǔ)的地址指針傳輸給ACCU1。TAR1 : 將AR1存儲(chǔ)的地址指針傳輸給指明的變量中。TAR1 AR2 : 將AR1存儲(chǔ)的地址指針傳輸給ACCU2。TAR2 : 將AR2存儲(chǔ)的地址指針傳輸給ACCU1。TAR2 : 將AR1存儲(chǔ)的地址指針傳輸給指明的變量中。CAR : 交換AR1和AR2的內(nèi)容。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 15 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB

17、塊形參的編程32位內(nèi)部區(qū)域指針位內(nèi)部區(qū)域指針 寄存器間接尋址 32位內(nèi)部區(qū)域指針地址尋址表示格式為:地址存儲(chǔ)器標(biāo)識(shí)符地址寄存器,地址偏移常量,例如裝載M存儲(chǔ)器一個(gè)字節(jié)表示為:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 16 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位內(nèi)部區(qū)域指針使用示例位內(nèi)部區(qū)域指針使用示例 寄存器間接尋址 OPN DB 1 /打開DB1。 LAR1 P#10.0 /將指

18、針P#10.0 裝載到地址寄存器1中。 L DBW AR1,P#12.0 /將DBW22裝載到累加器1中。 LAR1 MD 20 /將存儲(chǔ)于MD20中的指針裝載到地址寄 存器1中。 L DBW AR1,P#0.0 /將DBW裝載到累加器1中,地址存儲(chǔ)于 MD20中。 +I LAR2 P#40.0 /將指針P#40.0 裝載到地址寄存器2中。 T DBW AR2,P#0.0 /運(yùn)算結(jié)果傳送到DBW40中。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 17 2007 8月尋址

19、方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位交叉區(qū)域指針位交叉區(qū)域指針 寄存器間接尋址 000表示沒(méi)有地址區(qū),例如P#12.0;001表示輸入地址區(qū)I,例如P#I12.0;010表示輸出地址區(qū)Q,例如P#Q12.0;011表示標(biāo)志位地址區(qū)M,例如P#M12.0;100表示數(shù)據(jù)塊(DB)中的數(shù)據(jù),例如P#DB1.DBX12.0101表示數(shù)據(jù)塊(DI)中的數(shù)據(jù),例如P#DI1.DIX12.0110表示區(qū)域地址區(qū)L,例如P#L12.0;111表示調(diào)用程序塊的區(qū)域地址區(qū)V,例如P#V12.0;A&D AS CS2 FASystem

20、s Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 18 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位交叉區(qū)域指針使用示例位交叉區(qū)域指針使用示例 寄存器間接尋址 使用交叉區(qū)域指針表示方法(例如裝載M存儲(chǔ)器一個(gè)字節(jié))為: LAR1 P#M 20.0 /將指針P#M20.0 裝載到地址寄存器1中。 A AR1,P#1.1 /M21.1“與”操作。 = Q 1.2 /如果M21.1為1,輸出1.2為1。 L P#I 40.0 /將指針P#I40.0

21、 裝載到累加器1中。 LAR2 /將累加器1中存儲(chǔ)的地址指針裝載到地址 寄存器2中。 L W AR2,P#0.0 /裝載IW40.0到累加器1中。 T MW 60 /將累加器1中存儲(chǔ)的數(shù)值傳送到MW60中。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 19 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器間接尋址 1:在形參的傳遞中,ST

22、EP7使用地址寄存器AR1訪問(wèn)函數(shù)FC接口及函數(shù)塊FB“INOUT”接口中定義的復(fù)合類型參數(shù),如ARRAY、STRUCT、DATE_AND_TIME等,AR1和DB塊寄存器中的內(nèi)容將被覆蓋 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 20 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器間接尋址 L #ARR_TEST1 /裝載形參變量

23、ARR_TEST1到累 加器1中。 OPN DB 1 /打開OB1 LAR1 P#20.0 /將P#20.0裝載到地址寄存器AR1 中。 T DBW AR1,P#0.0 /將累加器1中的值傳送到 DB1.DBW20中。避免方法避免方法:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 21 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器間接

24、尋址 2 2:AR2和DI寄存器分別包含F(xiàn)B背景數(shù)據(jù)塊的塊號(hào)及在背景數(shù)據(jù)在背景數(shù)據(jù)塊中偏移地址(多重背景數(shù)據(jù)塊),在FB中使用AR2和DI寄存器將會(huì)覆蓋系統(tǒng)存儲(chǔ)的內(nèi)容。 TAR2 MD 100 /將AR2的數(shù)據(jù)存儲(chǔ)于MD100中。 L DINO /將背景DB塊塊號(hào)存儲(chǔ)于MW104中。 T MW 104/用戶程序/ LAR2 MD 100 /將MD100中存儲(chǔ)的地址指針裝載到AR2 中。 OPN DI MW 104 /打開DI數(shù)據(jù)塊。 3: LAR1 P#PARA(參數(shù))。 非法指令 L P#PARA(參數(shù)) /將地址指針裝載到累加器1。 LAR1/2 A&D AS CS2 FASyst

25、ems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 22 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針用于向被調(diào)用的函數(shù)FC及函數(shù)塊FB傳遞復(fù)合數(shù)據(jù)類型(如ARRAY、STRUCT及DT等)的實(shí)參。在被調(diào)用的函數(shù)FC及函數(shù)塊FB內(nèi)部可以間接訪問(wèn)實(shí)參的存儲(chǔ)器。POINTER指針占用48位地址空間,數(shù)據(jù)格式如下:POINTERPOINTER數(shù)據(jù)類型指針數(shù)據(jù)類型指針A&D AS

26、 CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 23 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER指針數(shù)據(jù)區(qū)的表示 :POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針數(shù)據(jù)類型指針16進(jìn)制代碼數(shù)據(jù)區(qū)簡(jiǎn)單描述B#16#81I輸入?yún)^(qū)B#16#82Q輸出區(qū)B#16#83M標(biāo)志位B#16#84DB數(shù)據(jù)塊B#16#85DI背景數(shù)據(jù)塊B#16#86L區(qū)域數(shù)據(jù)區(qū)B#16#87V上一級(jí)賦值的區(qū)域數(shù)據(jù)POI

27、NTER數(shù)據(jù)類型指針表示方法,例如:P# DB2.DBX12.0 /指向DB2.DBX12.0。P#M12.1 /指向M12.1。 也可以選擇使用地址聲明或符號(hào)名(不使用符號(hào)P#)的方式進(jìn)行賦值,例如: DB2.DBX12.0 /指向DB2.DBX12.0。 M12.1 /指向M12.1。 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 24 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTE

28、R數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例編寫一個(gè)計(jì)算功能的函數(shù)FC3,輸入首地址“In_Data”及連續(xù)浮點(diǎn)格式變量的個(gè)數(shù)“NO”后,輸出幾個(gè)變量的平均值“OUT_VAL”。OB1中調(diào)用函數(shù)FC3的程序如下: CALL FC 3 / 調(diào)用函數(shù)3。 In_Data:=P#M 100.0 /輸入的首地址。 NO :=4 /變量的個(gè)數(shù)。 OUT_VAL:=MD20 /計(jì)算結(jié)果。完成的計(jì)算功能相當(dāng)于MD20:=(MD100+MD104+MD108+MD112)/4數(shù)據(jù)接口名稱數(shù)據(jù)類型地址INIn_DataPointerINNOINTOUTOUT_VALREAL

29、TEMPBLOCK_NOINT0.0TEMPNO_TEMPINT2.0TEMPADD_TEMPREAL4.0FC3FC3接口參數(shù)接口參數(shù)A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 25 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例 L 0 /初始化臨時(shí)變量#ADD_TEMP。 T #ADD_TEMP L

30、 P#In_Data /指向存儲(chǔ)地址指針P#M100.0的首地 址,并裝載到地址寄存器AR1中。 LAR1 L 0 /判斷OB1中賦值的地址指針是否為數(shù) 據(jù)塊(參考POINTER的數(shù)據(jù)格式)。 L W AR1,P#0.0 =I JC M1 T #BLOCK_NO OPN DB #BLOCK_NO /如果是DB塊,打開指定的DB塊。M1: L D AR1,P#2.0 /找出需要計(jì)算數(shù)據(jù)區(qū)的開始地址, POINTER數(shù)據(jù)中,后4個(gè)字節(jié)包含內(nèi)部 交叉指針,將 LAR1 P#M100.0裝載到AR1中。 L 0 L #NO /如果輸入變量個(gè)數(shù)為0,結(jié)束FC3的 執(zhí)行。如果不等于0作為循環(huán)執(zhí) =I 行的

31、次數(shù)(NO_TEMP)。 JC ENDA&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 26 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例NO: T #NO_TEMP /循環(huán)執(zhí)行加運(yùn)算,本例中循環(huán)執(zhí)行的次 數(shù)為4。 L D AR1,P#0.0 /裝載MD100到累加器1中。 L #ADD_TEMP /與臨時(shí)變

32、量#ADD_TEMP相加后將計(jì)算結(jié) +R 果再存儲(chǔ)于#ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 /地址寄存器加4,下一次于MD104相加。 L #NO_TEMP /LOOP 指令固定格式。 LOOP NO /跳回“NO”循環(huán)執(zhí)行,執(zhí)行完定義在變 量#NO_TEMP的次數(shù)后自動(dòng)跳出循環(huán)程序。 L #ADD_TEMP /求平均值,裝載運(yùn)算結(jié)果到累加器1中。 L #NO DTR /將變量個(gè)數(shù)轉(zhuǎn)變?yōu)楦↑c(diǎn)值便于運(yùn)算。 /R T #OUT_VAL /輸出運(yùn)算結(jié)果。END: NOP 0A&D AS CS2 FASystems Support A&D CS2 FA 崔

33、堅(jiān) SIMATIC Technical Consulting Page 27 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針ANYANY數(shù)據(jù)類型指針中包括數(shù)據(jù)類型、重復(fù)系數(shù)、DB塊號(hào)、存儲(chǔ)器機(jī)數(shù)據(jù)開始地址,占用80位地址空間,數(shù)據(jù)格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 28 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋

34、址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針數(shù)據(jù)類型代碼十六進(jìn)制代碼數(shù)據(jù)類型簡(jiǎn)單描述B#16#00NIL空B#16#01BOOL位B#16#02BYTE8位字節(jié)B#16#03CHAR8位字符B#16#04WORD16位字B#16#05INT16位整形B#16#06DWORD32位雙字B#16#07DINT32位雙整形B#16#08REAL32位浮點(diǎn)B#16#09DATEIEC日期B#16#0ATIME_OF_DAY(TOD)24小時(shí)時(shí)間B#16#0BTIMEIEC時(shí)間B#16#0CS5TIMESIMATIC時(shí)間B#16#

35、0EDATE_AND_TIME(DT) 時(shí)鐘B#16#13STRING字符串B#16#17BLOCK_FBFB號(hào)B#16#18BLOCK_FCFC號(hào)B#16#19BLOCK_DBDB號(hào)B#16#1ABLOCK_SDBSDB號(hào)B#16#1CCOUNTER計(jì)數(shù)器B#16#1DTIMER定時(shí)器ANY指針數(shù)據(jù)區(qū)的表示 :A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 29 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊

36、形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針與POINTER指針相比,ANY類型指針可以表示一段長(zhǎng)度的數(shù)據(jù),例如P#DB1.DBX0.0 BYTE 10,表示指向DB1.DBB0DB1.DBB9。調(diào)用FB、FC時(shí),對(duì)POINTER數(shù)據(jù)類型參數(shù)進(jìn)行賦值時(shí)可以選擇指針顯示方式直接賦值,例如:P# DB2.DBX12.0 WORD 22P# DB2.DBX12.0 WORD 22 /指向從DB2.DBW12開始22個(gè)字。P#M12.1 BOOL 10P#M12.1 BOOL 10 /指向從M12.1開始10個(gè)位信號(hào)。 也可以選擇使用地址聲明或符號(hào)名(不使用符號(hào)P#)的方式進(jìn)行賦值

37、,例如:DB2.DBW12 DB2.DBW12 /指向DB2.DBW12一個(gè)字,數(shù)據(jù)長(zhǎng)度為1。M12.1 M12.1 /指向M12.1一個(gè)位信號(hào),數(shù)據(jù)長(zhǎng)度為1。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 30 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FC13接口參數(shù)接口參數(shù)ANYANY數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針編寫一個(gè)計(jì)算功能的函數(shù)FC13,輸入?yún)?shù)“In_D

38、ata”為一個(gè)數(shù)組變量,如果數(shù)組元素為浮點(diǎn)數(shù),輸出所有元素的平均值“OUT_VAL”,如果數(shù)組元素為其它數(shù)據(jù)類型,不執(zhí)行計(jì)算功能。OB1中調(diào)用函數(shù)FC13的程序如下: CALL FC 13CALL FC 13 / 調(diào)用函數(shù)13。 In_Data:=P#DB1.DBX0.0 REAL 8In_Data:=P#DB1.DBX0.0 REAL 8 /輸入數(shù)據(jù)區(qū)從DB1.DBD0開始8個(gè)浮點(diǎn) 值。 OUT_VAL:=MD20OUT_VAL:=MD20 /計(jì)算結(jié)果。完成的計(jì)算功能相當(dāng)于MD20:=(DB1.DBD0+.+.+DB1.DBD28)/8MD20:=(DB1.DBD0+.+.+DB1.DBD2

39、8)/8。 數(shù)據(jù)接口名稱數(shù)據(jù)類型地址INIn_DataANYOUTOUT_VALREALTEMPDATA_LENINT0.0TEMPBLOCK_NOINT2.0TEMPADD_TEMPREAL4.0TEMPDATA_NOINT8.0A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 31 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針

40、L 0 /初始化臨時(shí)變量#ADD_TEMP。 T #ADD_TEMP L P#In_Date /指向存儲(chǔ)地址指針I(yè)n_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ù)長(zhǎng)度,本例中為 T #DATA_LEN

41、REAL變量的個(gè)數(shù)。 L D AR1,P#6.0 /找出需要計(jì)算數(shù)據(jù)區(qū)的開始地址,本例 中為DB1.DBX0.0。 LAR1 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 32 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針 L #DATA_LENNO: T #DATA_NO /循環(huán)執(zhí)行加運(yùn)算,本例中循環(huán)執(zhí)行的次 數(shù)為8。 L D

42、 AR1,P#0.0 /裝載DB1.DBD0到累加器1中。 L #ADD_TEMP /與臨時(shí)變量#ADD_TEMP相加后將計(jì)算結(jié)果 +R 再存儲(chǔ) #ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 /地址寄存器加4,地址偏移量。 L #DATA_NO /LOOP 指令固定格式。 LOOP NO /跳回“NO”循環(huán)執(zhí)行,執(zhí)行完定義在變 量#NO_TEMP的次數(shù)后自動(dòng)跳出循環(huán)程序。 L #ADD_TEMP /求平均值,裝載運(yùn)算結(jié)果到累加器1中。 L #DATA_LEN DTR /將變量個(gè)數(shù)轉(zhuǎn)變?yōu)楦↑c(diǎn)值便于運(yùn)算。 /R T #OUT_VAL /輸出運(yùn)算結(jié)果。END: NOP 0A&

43、amp;D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 33 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FBFB塊在多重?cái)?shù)據(jù)塊中的尋址塊在多重?cái)?shù)據(jù)塊中的尋址FB塊形參的編程A&D AS CS2 FASystems Support A&D CS2 FA 崔堅(jiān) SIMATIC Technical Consulting Page 34 2007 8月尋址方式直接尋址存儲(chǔ)區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FBFB塊在多重?cái)?shù)據(jù)塊中的尋址塊在多重?cái)?shù)據(jù)塊中的尋址FB塊形參的編程如果在FB1、FB2中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論