电竞比分网-中国电竞赛事及体育赛事平台

分享

讓你快速掌握S7-200SMART間接尋址使用技巧

 PLC發(fā)燒友 2022-03-15

對S7-200SMART PLC來說,尋址可分為直接尋址和間接尋址,直接尋址就是直接對數(shù)據(jù)進行賦值,那么間接尋址主要是用于什么地方?直接尋址與間接尋址它們之間有何區(qū)別?下面就帶大家來學(xué)習(xí)間接尋址使用。

一、直接尋址與間接尋址區(qū)別

直接尋址就是直接對數(shù)據(jù)進行賦值,間接尋址主要用于需要在程序中修改地址的場合,特別是處理數(shù)據(jù)內(nèi)容比較多的情況,使用間接尋址編程靈活,節(jié)省程序空間。

二、間接尋址說明

(1)間接尋址使用指針訪問存儲器中的數(shù)據(jù),

(2)指針是包含另一個存儲單元地址的雙字存儲單元。只能將V存儲單元、L存儲

單元或累加器寄存器(AC1、AC2、AC3)用作指針。

(3)要創(chuàng)建指針,必須使用“移動雙字”指令,將間接尋址的存儲單元地址移至指針位置。指針只能對以下存儲區(qū)進行間接訪問:I、Q、V、M、S、AI、AQ、SM、T(僅限當(dāng)前值)和C(僅限當(dāng)前值)﹔不能對單個的位地址、HC、L存儲區(qū)和累加器進行間接尋址。

三、間接尋址使用方法

使用間接尋址的方式存取數(shù)據(jù)主要分為以下三個步驟來實現(xiàn):

(1)建立指針

使用間接尋址之前,應(yīng)創(chuàng)建一個指針。指針以雙字的形式存儲要訪問的存儲器的地址,只能用V存儲器、L存儲器或者累加器AC作為指針。建立指針時,用雙字傳送指令MOVD將需要間接尋址的存儲器起始地址送到指針中。指針的輸入數(shù)應(yīng)該以“&”符號開頭來表明存儲區(qū)的地址,注意不是其內(nèi)容將移動到指令的輸出操作數(shù)中。

(2)指針偏移

通過加減乘除運算指令使指針偏移,比如將VD100加上4,則此時VD100指向VB4。

(3)讀取指針

操作數(shù)前加“*”號,表示指令中的操作數(shù)是一個指針。

將指針指向的地址存儲的數(shù)據(jù)調(diào)取處出來,通過*VD100提取數(shù)據(jù)(*是取值符),見下圖,就是把VB4的值傳送給VB200。

四、取值符說明

“*+指針”使用在字節(jié)的位置,訪問的是指針指向地址開始的字節(jié)變量。

“*+指針”使用在字的位置,訪問的是指針指向地址開始的字變量。

“*+指針”使用在雙字的位置,訪問的是指針指向地址開始的雙字變量。

五、間接尋址案例

案例:通過指針的方式,當(dāng)按下I0.1按鈕時:

把VB4的值復(fù)制到VB200。

把VW10的值復(fù)制到VW300。

把VD20的值復(fù)制到VD400。

(1)建立指針

(2)將指針通過ADD_DI(加整數(shù)指令)進行加4,從而指針指向VB4,后再將VB4通過MOV_B(字節(jié)傳送指令)把VB4傳送給VB200。

(3)將指針通過ADD_DI(加整數(shù)指令)進行加6,從而指針指向VB10,后再將VW10通過MOV_W(字節(jié)傳送指令)把VW10傳送給VW300。

(4)將指針通過ADD_DI(加整數(shù)指令)進行加10,從而指針指向VB20,后再將VD20通過MOV_DW(字節(jié)傳送指令)把VD20傳送給VD400。

六、演示效果

通過狀態(tài)圖表分別把VB4、VW10、VD20寫入數(shù)值

按下I0.1按鈕,通過狀態(tài)圖表監(jiān)控VB200、VW300、VD400的值是否是VB4、VW10、VD20傳送過去的值。


七、間接尋址使用注意事項

(1)間接尋址指針表示大小為:32位=雙字

(2)建立指針偏移時,是按照偏移數(shù)量進行累計,而不是和指針指向的起始地址進行累計。

來源:技成培訓(xùn)網(wǎng),作者:技成-徐陳爽,未經(jīng)授權(quán)不得轉(zhuǎn)載!

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多