




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 1 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程西門子PLC指針編程概要A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 2 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB
2、塊形參的編程尋址方式A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 3 2007 8月尋址方式直接尋址存儲區(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 崔堅 SIMATIC Technical Consulting Page 4 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間
3、接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針16位地址指針位地址指針16位地址指針用于定時器、計數(shù)器、程序塊(DB、FC、FB)的尋址,16位指針被看作一個無符號整數(shù)(065535),它表示定時器(T)、計數(shù)器(C)、數(shù)據(jù)塊(DB、DI)或程序塊(FB、FC)的號,16位指針的格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 5 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型
4、指針FB塊形參的編程存儲區(qū)地址指針16位地址指針位地址指針地址尋址表示格式為:區(qū)域標識符16位地址指針,例如打開一個DB塊表示為:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 6 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針16位地址指針使用示例位地址指針使用示例 L 12 T LW 20 UC FC LW 20 /無條件調(diào)用FC12 L 13 T MW 20 A I 2.3 CC
5、FB MW 20/如果I2.3為1,調(diào)用FB13。 FC12和FB13不能帶有形參,這是有CC和UC調(diào)用指令決定的。 /A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 7 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針32位地址指針位地址指針32位地址指針位地址指針32位地址指針用于I、Q、M、L、數(shù)據(jù)塊等存儲器中位、字節(jié)、字及雙字的尋址,32位的地址指針可以使用一個雙字表示,第0位第2
6、位作為尋址操作的位地址,第3位第18位作為尋址操作的字節(jié)地址,第19位第31位沒有定義,32位指針的格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 8 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針32位地址指針位地址指針地址尋址表示格式為:地址存儲器標識符32位地址指針,例如指針存儲于LD20中,裝載M存儲器一個字節(jié)表示 32位地址指針也可以使用常數(shù)表示,例如裝載32位指針常
7、數(shù) L P# 40.3 (P=指針,字節(jié)地址=40,位地址=3)。32位地址指針數(shù)據(jù)與雙整數(shù)可以相互轉(zhuǎn)換,由于指針指到一個位地址上,每一個位地址加1,相應(yīng)轉(zhuǎn)換的整數(shù)值加1的倍數(shù),例如P#0.0轉(zhuǎn)換雙整數(shù)為L#0,P#0.1轉(zhuǎn)換雙整數(shù)為L#1,每一個字節(jié)地址加1,相應(yīng)轉(zhuǎn)換的整數(shù)值加8的倍數(shù),例如P#3.1轉(zhuǎn)換雙整數(shù)為L#25.A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 9 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型
8、指針FB塊形參的編程存儲區(qū)地址指針32位地址指針使用示例位地址指針使用示例1 OPN DB 1 /打開DB1。 OPN DI 3 /打開DB3,最多可以同時打開兩個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
9、/相加 L DIW MD 28 /裝載DB3.DBW40。 -I /相減。 T DIW 2 /將運算結(jié)果傳送到DB3.DBW2中。 JC m1A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 10 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針32位地址指針使用示例位地址指針使用示例2使用LOOP 指令與32位地址指針可以進行循環(huán)操作,假設(shè)一個編程應(yīng)用:一個字變量(MW2)與一個數(shù)組(假設(shè)
10、存儲于DB1中,包含100個元素為字的數(shù)組)存儲的值相比較,如果數(shù)值相同,指出第一個相同數(shù)值存儲在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 /進行比較的數(shù)值存儲于MW2。 L DBW MD 4 /與DB塊中存儲的值進行比較,開 始地址為DBW0。 =I /如果數(shù)值相等跳到m1。 JC m1A&D AS CS2 FASystems Support A&D
11、 CS2 FA 崔堅 SIMATIC Technical Consulting Page 11 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針32位地址指針使用示例位地址指針使用示例2 L MD 4 /將地址指針加2(每個相鄰的字地址相差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ù)值相當,記錄MD4指針的數(shù)據(jù),將轉(zhuǎn) 換為數(shù)組的位置((地址
12、值/P#2.0)+1)值存儲于 MD8中。 JCN m2 L MD 4 L P#2.0 /D + 1 T MD 8m2: NOP 0A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 12 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程存儲區(qū)地址指針32位地址指針注意事項位地址指針注意事項 OPN DB 1 L 20 T MD 20 /MD20裝載的地址指針為P#2.4。 L 11 T DBB MD 20
13、/指針指向P#2.4,相當于L DBB2.4,CPU無法識別,將停機。使用使用32位地址指針的注意事項位地址指針的注意事項:如果對相鄰兩個字節(jié)操作,指針轉(zhuǎn)換為整數(shù)值最小必須為8(指針為P#1.0)的倍數(shù),如果對相鄰兩個字操作,指針轉(zhuǎn)換為整數(shù)值最小必須為16(指針為P#2.0)的倍數(shù),如果對相鄰兩個雙字操作,指針轉(zhuǎn)換為整數(shù)值最小必須為32(指針為P#4.0)的倍數(shù),對字與雙字指針的要求主要防治數(shù)據(jù)間的沖突,例如DBWMD2,MD2為16的倍數(shù)時,按照DBW2、DBW4、DBW6尋址,如果為8的倍數(shù),按照DBW1、DBW2、DBW3尋址,地址間數(shù)據(jù)沖突。A&D AS CS2 FASyste
14、ms Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 13 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程寄存器間接尋址使用的指令寄存器間接尋址使用的指令寄存器間接尋址 寄存器間接尋址使用CPU內(nèi)部集成的兩個32位寄存器AR1和AR2LAR1 : 將ACCU1存儲的地址指針寫入AR1。LAR1 : 將指明的地址指針寫入AR1,例如LAR1 P#20.0或LAR1 MD20LAR1 AR2 : 將AR2的內(nèi)容寫入AR1。LAR2 : 將ACCU1存儲的
15、地址指針寫入AR2。LAR2 : 將指明的地址指針寫入AR2,與LAR1 方式相同。TAR1 : 將AR1存儲的地址指針傳輸給ACCU1。TAR1 : 將AR1存儲的地址指針傳輸給指明的變量中。TAR1 AR2 : 將AR1存儲的地址指針傳輸給ACCU2。TAR2 : 將AR2存儲的地址指針傳輸給ACCU1。TAR2 : 將AR1存儲的地址指針傳輸給指明的變量中。CAR : 交換AR1和AR2的內(nèi)容。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 14 2007 8月尋址方
16、式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位內(nèi)部區(qū)域指針位內(nèi)部區(qū)域指針 寄存器間接尋址 32位內(nèi)部區(qū)域指針地址尋址表示格式為:地址存儲器標識符地址寄存器,地址偏移常量,例如裝載M存儲器一個字節(jié)表示為:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 15 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位內(nèi)部區(qū)域指針使用示例位內(nèi)部區(qū)域指針使
17、用示例 寄存器間接尋址 OPN DB 1 /打開DB1。 LAR1 P#10.0 /將指針P#10.0 裝載到地址寄存器1中。 L DBW AR1,P#12.0 /將DBW22裝載到累加器1中。 LAR1 MD 20 /將存儲于MD20中的指針裝載到地址寄 存器1中。 L DBW AR1,P#0.0 /將DBW裝載到累加器1中,地址存儲于 MD20中。 +I LAR2 P#40.0 /將指針P#40.0 裝載到地址寄存器2中。 T DBW AR2,P#0.0 /運算結(jié)果傳送到DBW40中。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SI
18、MATIC Technical Consulting Page 16 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位交叉區(qū)域指針位交叉區(qū)域指針 寄存器間接尋址 000表示沒有地址區(qū),例如P#12.0;001表示輸入地址區(qū)I,例如P#I12.0;010表示輸出地址區(qū)Q,例如P#Q12.0;011表示標志位地址區(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)用
19、程序塊的區(qū)域地址區(qū)V,例如P#V12.0;A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 17 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程32位交叉區(qū)域指針使用示例位交叉區(qū)域指針使用示例 寄存器間接尋址 使用交叉區(qū)域指針表示方法(例如裝載M存儲器一個字節(jié))為: LAR1 P#M 20.0 /將指針P#M20.0 裝載到地址寄存器1中。 A AR1,P#1.1 /M21.1“與”操作。 = Q 1.
20、2 /如果M21.1為1,輸出1.2為1。 L P#I 40.0 /將指針P#I40.0 裝載到累加器1中。 LAR2 /將累加器1中存儲的地址指針裝載到地址 寄存器2中。 L W AR2,P#0.0 /裝載IW40.0到累加器1中。 T MW 60 /將累加器1中存儲的數(shù)值傳送到MW60中。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 18 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程地址寄存器
21、地址寄存器AR1AR1、AR2AR2的限制的限制寄存器間接尋址 1:在形參的傳遞中,STEP7使用地址寄存器AR1訪問函數(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 崔堅 SIMATIC Technical Consulting Page 19 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程地址寄存器地址寄存器AR1
22、AR1、AR2AR2的限制的限制寄存器間接尋址 L #ARR_TEST1 /裝載形參變量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 崔堅 SIMATIC Technical Consulting Page 20 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型
23、指針FB塊形參的編程地址寄存器地址寄存器AR1AR1、AR2AR2的限制的限制寄存器間接尋址 2 2:AR2和DI寄存器分別包含F(xiàn)B背景數(shù)據(jù)塊的塊號及在背景數(shù)據(jù)在背景數(shù)據(jù)塊中偏移地址(多重背景數(shù)據(jù)塊),在FB中使用AR2和DI寄存器將會覆蓋系統(tǒng)存儲的內(nèi)容。 TAR2 MD 100 /將AR2的數(shù)據(jù)存儲于MD100中。 L DINO /將背景DB塊塊號存儲于MW104中。 T MW 104/用戶程序/ LAR2 MD 100 /將MD100中存儲的地址指針裝載到AR2 中。 OPN DI MW 104 /打開DI數(shù)據(jù)塊。 3: LAR1 P#PARA(參數(shù))。 非法指令 L P#PARA(參數(shù))
24、 /將地址指針裝載到累加器1。 LAR1/2 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 21 2007 8月尋址方式直接尋址存儲區(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等)的實參。在被調(diào)用的函數(shù)FC及函數(shù)塊FB內(nèi)部可以間接訪問實參的存儲器。POINTER指針占用48位地址空間
25、,數(shù)據(jù)格式如下:POINTERPOINTER數(shù)據(jù)類型指針數(shù)據(jù)類型指針A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 22 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER指針數(shù)據(jù)區(qū)的表示 :POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針數(shù)據(jù)類型指針16進制代碼數(shù)據(jù)區(qū)簡單描述B#16#81I輸入?yún)^(qū)B#16#82Q輸出區(qū)B#16#83M標志位B#16#84DB數(shù)據(jù)塊B#16
26、#85DI背景數(shù)據(jù)塊B#16#86L區(qū)域數(shù)據(jù)區(qū)B#16#87V上一級賦值的區(qū)域數(shù)據(jù)POINTER數(shù)據(jù)類型指針表示方法,例如:P# DB2.DBX12.0 /指向DB2.DBX12.0。P#M12.1 /指向M12.1。 也可以選擇使用地址聲明或符號名(不使用符號P#)的方式進行賦值,例如: DB2.DBX12.0 /指向DB2.DBX12.0。 M12.1 /指向M12.1。 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 23 2007 8月尋址方式直接尋址存儲區(qū)地址指針
27、寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例編寫一個計算功能的函數(shù)FC3,輸入首地址“In_Data”及連續(xù)浮點格式變量的個數(shù)“NO”后,輸出幾個變量的平均值“OUT_VAL”。OB1中調(diào)用函數(shù)FC3的程序如下: CALL FC 3 / 調(diào)用函數(shù)3。 In_Data:=P#M 100.0 /輸入的首地址。 NO :=4 /變量的個數(shù)。 OUT_VAL:=MD20 /計算結(jié)果。完成的計算功能相當于MD20:=(MD100+MD104+MD108+MD112)/4數(shù)據(jù)接口名
28、稱數(shù)據(jù)類型地址INIn_DataPointerINNOINTOUTOUT_VALREALTEMPBLOCK_NOINT0.0TEMPNO_TEMPINT2.0TEMPADD_TEMPREAL4.0FC3FC3接口參數(shù)接口參數(shù)A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 24 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類
29、型指針使用示例 L 0 /初始化臨時變量#ADD_TEMP。 T #ADD_TEMP L P#In_Data /指向存儲地址指針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 /找出需要計算數(shù)據(jù)區(qū)的開始地址, POINTER數(shù)據(jù)中,后4個字節(jié)包含內(nèi)部 交叉指針,將 LAR1 P#M100.0裝載到AR1中。 L 0 L
30、 #NO /如果輸入變量個數(shù)為0,結(jié)束FC3的 執(zhí)行。如果不等于0作為循環(huán)執(zhí) =I 行的次數(shù)(NO_TEMP)。 JC ENDA&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 25 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程POINTER數(shù)據(jù)類型指針POINTERPOINTER數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例NO: T #NO_TEMP /循環(huán)執(zhí)行加運算,本例中循環(huán)執(zhí)行的次 數(shù)為4。 L D
31、 AR1,P#0.0 /裝載MD100到累加器1中。 L #ADD_TEMP /與臨時變量#ADD_TEMP相加后將計算結(jié) +R 果再存儲于#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ù)后自動跳出循環(huán)程序。 L #ADD_TEMP /求平均值,裝載運算結(jié)果到累加器1中。 L #NO DTR /將變量個數(shù)轉(zhuǎn)變?yōu)楦↑c值便于運算。 /R T #OUT_VAL /輸出運算結(jié)果。END: NOP 0A&
32、;D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 26 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針ANYANY數(shù)據(jù)類型指針中包括數(shù)據(jù)類型、重復(fù)系數(shù)、DB塊號、存儲器機數(shù)據(jù)開始地址,占用80位地址空間,數(shù)據(jù)格式如下:A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Con
33、sulting Page 27 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針數(shù)據(jù)類型代碼十六進制代碼數(shù)據(jù)類型簡單描述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位浮點B#16#09DATEIEC日期B#16#0ATIME_OF_DAY(TOD)24小時時
34、間B#16#0BTIMEIEC時間B#16#0CS5TIMESIMATIC時間B#16#0EDATE_AND_TIME(DT) 時鐘B#16#13STRING字符串B#16#17BLOCK_FBFB號B#16#18BLOCK_FCFC號B#16#19BLOCK_DBDB號B#16#1ABLOCK_SDBSDB號B#16#1CCOUNTER計數(shù)器B#16#1DTIMER定時器ANY指針數(shù)據(jù)區(qū)的表示 :A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 28 2007 8月尋址方式
35、直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針與POINTER指針相比,ANY類型指針可以表示一段長度的數(shù)據(jù),例如P#DB1.DBX0.0 BYTE 10,表示指向DB1.DBB0DB1.DBB9。調(diào)用FB、FC時,對POINTER數(shù)據(jù)類型參數(shù)進行賦值時可以選擇指針顯示方式直接賦值,例如:P# DB2.DBX12.0 WORD 22P# DB2.DBX12.0 WORD 22 /指向從DB2.DBW12開始22個字。P#M12.1 BOOL 10P#M12.1 BOOL 10 /指向從M1
36、2.1開始10個位信號。 也可以選擇使用地址聲明或符號名(不使用符號P#)的方式進行賦值,例如:DB2.DBW12 DB2.DBW12 /指向DB2.DBW12一個字,數(shù)據(jù)長度為1。M12.1 M12.1 /指向M12.1一個位信號,數(shù)據(jù)長度為1。A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 29 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FC13接口參數(shù)接口參數(shù)ANYANY數(shù)據(jù)類型指針使用示例
37、數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針編寫一個計算功能的函數(shù)FC13,輸入?yún)?shù)“In_Data”為一個數(shù)組變量,如果數(shù)組元素為浮點數(shù),輸出所有元素的平均值“OUT_VAL”,如果數(shù)組元素為其它數(shù)據(jù)類型,不執(zhí)行計算功能。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個浮點 值。 OUT_VAL:=MD20OUT_VAL:=MD20 /計算結(jié)果。完成的計算功能相當于MD20:=(DB1.DBD0+
38、.+.+DB1.DBD28)/8MD20:=(DB1.DBD0+.+.+DB1.DBD28)/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 崔堅 SIMATIC Technical Consulting Page 30 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針
39、FB塊形參的編程ANYANY數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針 L 0 /初始化臨時變量#ADD_TEMP。 T #ADD_TEMP L P#In_Date /指向存儲地址指針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
40、 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 A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 31 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程ANYANY數(shù)據(jù)類型指針使用示例數(shù)據(jù)類型指針使用示例ANY數(shù)據(jù)類型指針 L #DATA_L
41、ENNO: 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)變
42、為浮點值便于運算。 /R T #OUT_VAL /輸出運算結(jié)果。END: NOP 0A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consulting Page 32 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FBFB塊在多重數(shù)據(jù)塊中的尋址塊在多重數(shù)據(jù)塊中的尋址FB塊形參的編程A&D AS CS2 FASystems Support A&D CS2 FA 崔堅 SIMATIC Technical Consult
43、ing Page 33 2007 8月尋址方式直接尋址存儲區(qū)地址指針寄存器間接尋址 POINTER數(shù)據(jù)類型指針ANY數(shù)據(jù)類型指針FB塊形參的編程FBFB塊在多重數(shù)據(jù)塊中的尋址塊在多重數(shù)據(jù)塊中的尋址FB塊形參的編程如果在FB1、FB2中使用POINTER或ANY數(shù)據(jù)類型指針進行拆分時,不考慮在多重背景DB塊中的位置,將會造成錯誤,例如在FB1中定義輸入接參數(shù)FB1_POS,數(shù)據(jù)類型為POINTERPOINTER,在FB1中的程序如下: L P#FB1_POSL P#FB1_POS /指向存儲地址指針FB1_POS首地址。 LAR1 LAR1 /存儲于地址寄存器1中。 L D AR1,P#2.0L D AR1,P#2.0 /裝載實參賦值的地址指針,并傳送到 MD20中。 T MD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)土地抵押合同
- 工程建設(shè)合同協(xié)議書
- 保潔服務(wù)合同和內(nèi)容
- 在建工程抵押反擔保合同
- 擔保人合同擔保合同
- 企業(yè)軟件銷售合同
- 場地門面出租合同
- 人工智能在醫(yī)療影像領(lǐng)域的應(yīng)用合同
- 測繪工程部技術(shù)員聘用合同
- 湖北恩施學院《學前兒童發(fā)展科學》2023-2024學年第二學期期末試卷
- 放射診療設(shè)備清單
- 供應(yīng)鏈中的社會責任
- HDPE纏繞-B型結(jié)構(gòu)壁管施工方案
- 汽車發(fā)動機構(gòu)造與維修中職PPT完整全套教學課件
- 養(yǎng)老院管理-考核考評
- 人美版四年級書法下冊《第6課 豎心旁》教學設(shè)計
- 二年級綜合實踐活動課件-我與蔬菜交朋友-全國通(41張)
- 血型與輸血檢驗-臨床輸血(臨床檢驗課件)
- 按摩師培訓協(xié)議書
- 落地式腳手架安全技術(shù)措施
- 開心麻花《白蛇前傳》劇本
評論
0/150
提交評論