西門子SCL編程入門教程連載(10)-PEEK指令
單詞“peek”在英語中表示“偷看,瞥一眼”,在計算機編程中表示“讀取數(shù)據(jù)”。
在西門子SCL編程中,PEEK指令可以用來讀取輸入緩存區(qū)(I)、輸出緩存區(qū)(Q)、位存儲區(qū)(M)及數(shù)據(jù)塊(DB)中的數(shù)據(jù),常用作間接尋址。今天這篇文章,我們來學(xué)習(xí)下PEEK指令。

PEEK指令支持以位(Bit)、字節(jié)(Byte)、字(Word)及雙字(Double Word)的形式進行操作,如果PEEK指令的后面不指定數(shù)據(jù)類型,則默認為對字節(jié)型數(shù)據(jù)進行操作??梢栽凇净局噶?Basic instructions)】-【移動操作(move operations)】-【讀寫內(nèi)存(Read/Write memory)】中找到該指令,如下圖:

在FB/FC中添加PEEK指令并將其賦值給字節(jié)型變量temp_byte的代碼如下圖:

可以看到,PEEK指令有三個參數(shù):area ,dbNumber及byteOffset,各參數(shù)的含義如下:
1、area:字節(jié)型數(shù)據(jù)(Byte),用來指定訪問存儲區(qū)的類型。16#81表示輸入緩存區(qū)(I)、16#82表示輸出緩存區(qū)(Q)、16#83表示位存儲區(qū)(M)、16#84表示數(shù)據(jù)塊(DB)、16#1表示外設(shè)輸入(PI)。其中,16#84只能訪問“標(biāo)準的”數(shù)據(jù)塊;16#1對外設(shè)的讀取,只能在S7-1500系列PLC中使用。
2、dbNumber:雙整型數(shù)據(jù)(DINT),用來指定數(shù)據(jù)塊的編號,僅在訪問數(shù)據(jù)塊時使用;訪問其它存儲區(qū)時設(shè)置為0;
3、byteOffse:雙整型數(shù)據(jù)(DINT),用來指定讀取數(shù)據(jù)的地址偏移量;
舉個例子:
假設(shè)我們要讀取輸入緩存區(qū)(I)的第9個字節(jié)到位存儲區(qū)(M)的第20個字節(jié),則可以使用如下的代碼:

PEEK_BOOL指令來讀取布爾型數(shù)據(jù),其返回值是布爾型變量。從指令列表中添加PEEK_BOOL指令的初始狀態(tài)如下:

該指令有四個參數(shù):
area,dbNumber,byteOffset和bitOffset。
前三個參數(shù)的含義與PEEK指令中介紹的相同,第四個參數(shù)bitOffset表示要讀取的位的偏移,其取值范圍為0~7。
舉個例子,假設(shè)我們要讀取M0.7的值,并將其賦值給Q0.0,則可以使用如下的代碼:

PEEK_WORD指令用來讀取字(WORD)類型數(shù)據(jù)。
假設(shè)我們要讀取DB100的第20個字節(jié)開始的字到MW10中,則可以使用如下的代碼:

PEEK_DWORD指令用來讀取雙字(Double WORD)類型數(shù)據(jù)。
假設(shè)我們要讀取DB100的第10個字節(jié)開始的雙字到MD0中,則可以使用如下的代碼:

好了,關(guān)于西門子SCL語言中的PEEK指令就先介紹到這里。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
