欧美极品jizzhd欧美,91精品久久一区二区三区,欧美乱妇无乱码大黄a片,欧美日韩国产一区在线看

PLC技術(shù)資料
    plc指針類型與間接尋址詳解
    發(fā)布者:  發(fā)布時(shí)間:2023/11/10 14:06:40

    在西門子s7-300和s7-400的編程中經(jīng)常需要調(diào)用一些系統(tǒng)功能或功能塊,在輸入?yún)?shù)時(shí)經(jīng)常碰到有指針類型的參數(shù),那么你對(duì)指針類型了解嗎?我第一次接觸指針一詞是在學(xué)習(xí)c語言的時(shí)候,指針和鏈表是c語言中的一個(gè)重點(diǎn)難點(diǎn)。在c語言中,指針即存儲(chǔ)器地址,在西門子plc中的指針也是指地址。

    下面看看西門子pointer類型的結(jié)構(gòu):

    參數(shù)類型pointer存儲(chǔ)下列信息:

    · db編號(hào)(或0,如果數(shù)據(jù)沒有存儲(chǔ)在db中)

    · cpu中的存儲(chǔ)區(qū)域(下表給出了參數(shù)類型pointer存儲(chǔ)器區(qū)的十六進(jìn)制代碼)

    1.jpg

    數(shù)據(jù)的地址(格式為字節(jié).位)

    step 7提供指針格式:p#memory_area byte.bit_address. (如果形式參數(shù)被聲明為參數(shù)類型pointer,只需要指出存儲(chǔ)區(qū)域和地址。step 7將自動(dòng)地重定輸入指針的格式。) 下面的實(shí)例說明如何為以m50.0開始的數(shù)據(jù)輸入?yún)?shù)類型pointer:p#m50.0

    存儲(chǔ)器間接尋址:

    使用存儲(chǔ)器間接尋址的程序語句包含一條指令,后面跟有[地址]標(biāo)識(shí)符,最后是一個(gè)(地址必須括在方括號(hào)內(nèi))。根據(jù)所用的地址標(biāo)識(shí)符,該指令會(huì)將存儲(chǔ)于指定地址的數(shù)據(jù)解釋為字或雙字指針。完整的數(shù)據(jù)地址由地址標(biāo)識(shí)符和指針構(gòu)成,如下例所示。間接尋址的優(yōu)點(diǎn)是能在程序執(zhí)行期間動(dòng)態(tài)修改指令的數(shù)據(jù)地址。

    存儲(chǔ)器間接尋址使用以下兩部分地址:

    1. 地址標(biāo)識(shí)符

    對(duì)于由位邏輯運(yùn)算尋址的位,可分配地址標(biāo)識(shí)符i、q、m、l、dix或dbx。

    對(duì)于由裝載指令尋址的字節(jié)、字和雙字,可使用存儲(chǔ)區(qū)i、q、m、l、d和pi,分配ib、iw、id、dbb、dbw、dbd、dib、diw、did、pib、piw、pid等形式的地址標(biāo)識(shí)符。

    對(duì)于由傳送指令尋址的字節(jié)、字和雙字,可使用存儲(chǔ)區(qū)i、q、m、l、db、di和pq,分配ib、iw、id、dbb、dbw、dbd、dib、diw、did、pqb、pqw、pqd等形式的地址標(biāo)識(shí)符。要尋址定時(shí)器、計(jì)數(shù)器或塊,可使用t、c、db、di、fb、fc形式的區(qū)域標(biāo)識(shí)符。

    2. 括在方括號(hào)"[ ]"內(nèi)的字或雙字指針的地址

    字指針 - 含有定時(shí)器(t)、計(jì)數(shù)器(c)、數(shù)據(jù)塊(db、di)或邏輯塊(fc、fb)的標(biāo)識(shí)號(hào)的字。字指針是十進(jìn)制整數(shù)。

    雙字指針 - 指含有位、字節(jié)、字或雙字的確切位置的雙字。雙字指針的格式為:p#字節(jié).位。指針必須存儲(chǔ)在下列區(qū)域之一,才能進(jìn)行存儲(chǔ)器間接尋址:

    m - 位存儲(chǔ)器

    l - 本地?cái)?shù)據(jù)

    d - 數(shù)據(jù)塊(db或di)

    stat 靜態(tài)數(shù)據(jù)(不是用于具有多重實(shí)例能力的塊的靜態(tài)數(shù)據(jù))

    注意如果要尋址使用存儲(chǔ)器間接尋址的字節(jié)、字或雙字,請(qǐng)確保指針的位號(hào)為雙字格式0。

    字指針實(shí)例:

    l 5 //將指針值載入accu 1。t mw2 //將指針傳送到mw2中。

    l t[mw2] //將5號(hào)定時(shí)器的當(dāng)前時(shí)間值載入accu 1。

    l c[mw2] //將5號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值載入accu 1。

    opn db[mw2] //將數(shù)據(jù)塊db5作為共享數(shù)據(jù)塊打開。

    opn di[mw2] //將數(shù)據(jù)塊db5作為背景數(shù)據(jù)塊打開。

    雙字指針實(shí)例:

    l p#8.7 //將指針值載入accu 1。t md2 //將指針傳送到md2中。a i [md2] //掃描輸入位8.7的狀態(tài),并將其= q [md2] //信號(hào)狀態(tài)分配給輸出位q 8.7。

    區(qū)域內(nèi)寄存器間接尋址:

    使用區(qū)域內(nèi)寄存器間接尋址的程序語句包含一條指令和以下組成部分:地址標(biāo)識(shí)符[地址寄存器標(biāo)識(shí)符,地址]。區(qū)域內(nèi)寄存器間接尋址使用以下兩部分地址:

    1、 地址標(biāo)識(shí)符

    對(duì)于由位邏輯運(yùn)算尋址的位,可以分配地址標(biāo)識(shí)符i、q、m、l、dix或dbx。

    對(duì)于由裝載指令尋址的字節(jié)、字和雙字,可使用存儲(chǔ)區(qū)i、q、m、l、d和pi,分配ib、iw、id、dbb、dbw、dbd、dib、diw、did、pib、piw、pid等形式的地址標(biāo)識(shí)符。

    對(duì)于由傳送指令尋址的字節(jié)、字和雙字,可使用存儲(chǔ)區(qū)i、q、m、l、db、di和pq,分配ib、iw、id、dbb、dbw、dbd、dib、diw、did、pqb、pqw、pqd等形式的地址標(biāo)識(shí)符。

    2. 方括號(hào)"[ ]"中的內(nèi)容包括地址寄存器引用(ar1或ar2)、逗號(hào)分隔符","以及雙字指針。

    雙字指針 - 指包含位、字節(jié)、字或雙字的部分地址的雙字。雙字指針的格式為:p#字節(jié).位。

    注意請(qǐng)記住您現(xiàn)在使用的是兩個(gè)格式為"p#字節(jié).位"的指針。一個(gè)指針已被精確表示出來。另一個(gè)指針通過對(duì)地址寄存器ar1或ar2的引用來確定。如果要尋址字節(jié)、字或雙字,請(qǐng)確保指針的位號(hào)為0。使用寄存器間接尋址的語句不更改地址寄存器的內(nèi)容。

    指針實(shí)例:

    l p#8.7 //將指針值載入accu 1。lar1 //用accu 1中的指針裝載ar1。a i [ar1, p#0.0] //檢查輸入位i 8.7并將有符號(hào)的狀態(tài)分配給q 10.0。= q [ar1, p#1.1] //確切地址8.7在ar1中。偏移量不對(duì)其產(chǎn)生影響。確切位置10.0由8.7 (ar1)加上1.1 (偏移量)得出,結(jié)果是10.0而不是9.8。

    區(qū)域內(nèi)寄存器間接尋址實(shí)例:

    a i [ar1,p#4.3] 對(duì)其位置是由ar1中的內(nèi)容加上4個(gè)字節(jié),再加上3個(gè)位計(jì)算得出的輸入位,執(zhí)行邏輯與運(yùn)算。= dix [ar2, p#0.0] 將rlo位狀態(tài)分配給位于ar2中的實(shí)例數(shù)據(jù)位。l ib [ar1, p#10.0] 將輸入字節(jié)載入accu 1中。地址由ar1的內(nèi)容加上十個(gè)字節(jié)計(jì)算得出。t ld [ar2,p#53.0] 將accu 1中的內(nèi)容傳送到本地雙字中(該雙字的位置由ar2的內(nèi)容加上53個(gè)字節(jié)計(jì)算得出)。

    區(qū)域內(nèi)寄存器間接尋址的特點(diǎn)是:地址標(biāo)示符在方括號(hào)前確定,方括號(hào)中的指針均為不含存儲(chǔ)區(qū)信息(如[ar1,p#4.3]中ar1=p#8.7,兩個(gè)指針都不含有存儲(chǔ)區(qū)信息),否則將會(huì)與方括號(hào)前的地址標(biāo)示符表示的存儲(chǔ)區(qū)沖突。

    跨區(qū)域寄存器間接尋址:

    使用跨區(qū)域寄存器間接尋址的程序語句包含一條指令和以下組成部分:地址標(biāo)識(shí)符[地址寄存器標(biāo)識(shí)符,地址]。

    跨區(qū)域寄存器間接尋址使用以下兩部分地址:

    1. 對(duì)已尋址的數(shù)據(jù)對(duì)象(地址標(biāo)識(shí)符)大小的規(guī)定數(shù)據(jù)對(duì)象大小規(guī)定 位(無規(guī)定表示是一個(gè)位)b 字節(jié)w 字d 雙字

    2. 方括號(hào)"[ ]"中的內(nèi)容包括地址寄存器引用(ar1或ar2)、逗號(hào)分隔符","以及雙字指針。雙字指針 - 指包含位、字節(jié)、字或雙字的部分地址的雙字。指針具有以下區(qū)域內(nèi)格式:p#字節(jié).位。

    注意事先必須已將跨區(qū)域雙字指針載入到由寄存器間接地址引用的地址寄存器中?鐓^(qū)域雙字指針 - 包含位的部分地址(對(duì)于位邏輯指令)或字節(jié)、字或雙字的部分地址(對(duì)于裝載和傳送指令)的雙字。地址前面的區(qū)域標(biāo)識(shí)符位于用來指定字節(jié)和位?鐓^(qū)域雙字指針格式為:p#區(qū)域標(biāo)識(shí)符字節(jié).位。

    對(duì)于由位邏輯指令尋址的位,可以分配跨區(qū)域指針區(qū)域標(biāo)識(shí)符i、q、m、dix或dbx。

    對(duì)于由裝載或傳送指令尋址的字節(jié)、字和雙字,可以分配跨區(qū)域指針區(qū)域標(biāo)識(shí)符i、q、m、dix、dbx或p。 注意要在指針中指定外設(shè)輸入或pi區(qū)域,請(qǐng)以p#px.y形式輸入指針。區(qū)域被指定為p。在跨區(qū)域指針中不能使用外設(shè)輸出pq區(qū)域。請(qǐng)記住您正使用兩個(gè)指針:

    作為偏移量,直接在地址中表示的區(qū)域內(nèi)雙字指針,例如p#4.0。

    存儲(chǔ)在地址寄存器(ar1或ar2)中的跨區(qū)域雙字指針,例如p#q4.0。

    如果要訪問通過直接尋址方式進(jìn)行尋址的字節(jié)、字或雙字,請(qǐng)確保這兩個(gè)指針的位號(hào)均為0。使用寄存器間接尋址的語句不更改地址寄存器的內(nèi)容。

    跨區(qū)域寄存器間接尋址的第一個(gè)實(shí)例:

    l p# i8.7 //將指針值和區(qū)域標(biāo)識(shí)符載入accu 1。lar1 //將存儲(chǔ)區(qū)i和地址8.7存入ar1。l p# q8.7 //將指針偏移量和區(qū)域標(biāo)識(shí)符載入accu 1。lar2 //將存儲(chǔ)區(qū)q和地址8.7存入ar2。a [ar1, p#0.0] //檢查輸入位i 8.7并將其信號(hào)狀態(tài)分配給輸出位q 10.0。= [ar2, p#1.1] //偏移量0.0沒有任何作用。輸出位10.0由8.7 (ar2)加上1.1 (偏移量)得出,結(jié)果是10.0而不是9.8?鐓^(qū)域寄存器間接尋址的第二個(gè)實(shí)例:

    a i 0.0 jc m002 l p#m10.0 //將指針值和區(qū)域標(biāo)識(shí)符載入accu 1。lar1 //將存儲(chǔ)區(qū)m和地址10存入accu 1。ju m001 m002: l p#q0.3 //將指針值和區(qū)域標(biāo)識(shí)符載入accu 1。lar1 //將存儲(chǔ)區(qū)q和地址0.3存入accu 1。m001:a i 0.4 = [ar1, p#0.1] //i 0.0用于控制哪個(gè)指針用于此語句。將i 0.4的信號(hào)狀態(tài)分配給存儲(chǔ)器位m 10.1,或者分配給輸出q 0.4。

    跨區(qū)域寄存器間接尋址實(shí)例a [ar1,p#4.3] 對(duì)于其位置是由ar1中的內(nèi)容加上4個(gè)字節(jié),再加上3個(gè)位計(jì)算得出的位,執(zhí)行邏輯與運(yùn)算。位的存儲(chǔ)區(qū)在ar1的位24、25和26中指出。= [ar2, p#0.0] 將rlo位信號(hào)狀態(tài)分配給位于ar2中的位。位的存儲(chǔ)區(qū)在ar1的位24、25和26中指出。l b [ar1, p#10.0] 將字節(jié)(其位置由ar1的內(nèi)容加上10個(gè)字節(jié)計(jì)算得出)載入accu 1。位的存儲(chǔ)區(qū)在ar1的位24、25和26中指出。t d [ar2,p#53.0] 將accu 1的內(nèi)容傳送到雙字(該字的精確位置由ar2的內(nèi)容加上53個(gè)字節(jié)計(jì)算得出)。位的存儲(chǔ)區(qū)在ar1的位24、25和26中指出。

    跨區(qū)域寄存器間接尋址的特點(diǎn)是:地址標(biāo)示符在方括號(hào)前確定,方括號(hào)中的地址寄存器中包含存儲(chǔ)區(qū)信息(如[ar1,p#4.3]中ar1=p#q0.3)。

    區(qū)域內(nèi)寄存器間接尋址和跨區(qū)域寄存器間接尋址的使用相當(dāng)靈活,可以根據(jù)需要選擇。由上面的說明可知,區(qū)域內(nèi)寄存器間接尋址是針對(duì)存儲(chǔ)區(qū)固定的間接尋址方式,尋址的存儲(chǔ)區(qū)是確定的。而跨區(qū)域寄存器間接尋址則在指令中不確定存儲(chǔ)區(qū),存儲(chǔ)區(qū)由地址寄存器中存儲(chǔ)的指針中的信息確定,因而尋址的存儲(chǔ)區(qū)是可變的。

    閱讀 195

    版權(quán)聲明PLC信息網(wǎng)轉(zhuǎn)載作品均注明出處,本網(wǎng)未注明出處和轉(zhuǎn)載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如轉(zhuǎn)載作品侵犯作者署名權(quán),或有其他諸如版權(quán)、肖像權(quán)、知識(shí)產(chǎn)權(quán)等方面的傷害,并非本網(wǎng)故意為之,在接到相關(guān)權(quán)利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。
0571-87774297  
久久av动态图一区二区| 亚洲精品久久久口爆吞精| 欧美久久久精品一区二区| 日韩毛片无码永久免费看| 老头天天吃我奶躁我视频| 免费无码中文字幕a级毛片| 欧美国产精品久久久免费| 中文字幕一区二区三区日韩精品| 久久综合伊人77777| 熟女国产精品视频一区二区三区 | 9久热这里只有精品国产| 国产又紧又湿又色的视频| 久久久久亚洲av片无码下载蜜桃| 久久精品亚洲一区二区三区| 国产精品天干天干综合网| 午夜在线视频一区二区三区| 国产91av免费在线观看| 亚洲AV午夜国产精品无码中文字 | 欧美日韩在线观看×xx| 久久久精品欧美一区二区免| 色哟哟晚上一个人偷偷看| 亚洲第一区二区快射影院| 御书房双乳晃动干柴烈| 叶山小百合中文字幕在线| 国产精品久久久久久久久久妞妞| 国产精品久久av免费看| 日本a级毛片| 国产大学生粉嫩无套流白浆| 法国性xxxx精品hd| 怡红院a∨人人爰人人爽| 双腿张开被9个男人调教| 亚洲国产精品久久电影欧美| 亚洲午夜无码久久久久软件| 亚洲区小说区图片区qvod| 国产成人av一区二区三区不卡| 在线观看国产精品日韩av| 亚洲欧美日韩区在线观看| 好吊碰在线视频免费观看| 日本高清视频在线网站| 99r在线免费观看视频| 国产精品久久久久精品综合紧 |