• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    S7—200smartPLC間接尋址的應(yīng)用

    2018-09-06 17:55:31趙青
    關(guān)鍵詞:存儲(chǔ)單元存儲(chǔ)器指針

    趙青

    [摘 要] 對(duì)S7-200smartPLC來(lái)說(shuō),尋址分為直接尋址和間接尋址,其中間接尋址主要用于需要在程序中修改地址的場(chǎng)合,特別是處理數(shù)據(jù)內(nèi)容比較多的情況,使用間接尋址編程靈活,節(jié)省程序空間。大多教材關(guān)于間接尋址的概念和應(yīng)用介紹得不夠通俗易懂,很多學(xué)生,甚至工程技術(shù)人員對(duì)間接尋址的使用存在概念不清,應(yīng)用不明的情況。通過(guò)三個(gè)例子循序漸進(jìn)地說(shuō)明間接尋址的概念和應(yīng)用,經(jīng)過(guò)教學(xué)實(shí)踐,學(xué)生反饋較好。

    [關(guān) 鍵 詞] 間接尋址;操作數(shù);地址;指針

    [中圖分類號(hào)] TP273 [文獻(xiàn)標(biāo)志碼] A [文章編號(hào)] 2096-0603(2018)24-0018-02

    PLC將信息存于不同的存儲(chǔ)器單元,每個(gè)單元都有唯一的地址。地址也是我們?cè)L問(wèn)所有數(shù)據(jù)的依據(jù),那么我們?cè)L問(wèn)數(shù)據(jù)的過(guò)程就是尋址。在s7-200smartPLC中通過(guò)地址訪問(wèn)數(shù)據(jù),地址是訪問(wèn)數(shù)據(jù)的依據(jù),訪問(wèn)數(shù)據(jù)的過(guò)程稱為“尋址”。幾乎所有的指令和功能都與各種形式的尋址有關(guān)。直接尋址指定了存儲(chǔ)器的長(zhǎng)度和位置,例如VW90是V存儲(chǔ)區(qū)中16位的字,其地址為90。而間接尋址在指令中給出的不是操作數(shù)的值或操作數(shù)的地址,而是給出一個(gè)被稱為指針的雙字存儲(chǔ)單元的地址,指針里存放的是真正的操作數(shù)的地址。

    一、如何進(jìn)行間接尋址

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

    (一)建立指針

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

    S7-200smartPLC中允許使用指針對(duì)下述存儲(chǔ)區(qū)進(jìn)行間接尋址:I、Q、V、M、S、AI、AQ、SM、T(僅當(dāng)前值)和C(僅當(dāng)前值)。但不能對(duì)單個(gè)的位地址、HC、L存儲(chǔ)區(qū)和累加器進(jìn)行間接尋址。

    例1:針對(duì)存儲(chǔ)區(qū)VB0為起始地址的一組數(shù)據(jù)和以T37為起始地址的一組定時(shí)器當(dāng)前值進(jìn)行間接尋址。VB0的地址作為指針?biāo)腿隫D100,“&VB0”是VB0的地址,而不是VB0中的內(nèi)容;同理T37的地址作為指針?biāo)腿隫D200,“&T37”是T37的地址,而不是定時(shí)器T37的當(dāng)前值。

    (二)數(shù)據(jù)讀取

    用指針訪問(wèn)數(shù)據(jù)時(shí),操作數(shù)前加“*”號(hào),表示指令中的操作數(shù)是一個(gè)指針。當(dāng)有M0.0的上升沿脈沖時(shí),將指針VD100所指的存儲(chǔ)單元的數(shù)據(jù)內(nèi)容送到VB400中,針針VD200所指的存儲(chǔ)單元的數(shù)據(jù)內(nèi)容送到VW1000中。

    將程序下載到s7-200smartPLC調(diào)試,打開狀態(tài)圖表,假設(shè)約定兩組數(shù)據(jù),第一組以VB0為首地址的數(shù)據(jù),即VB0=-10,VB1=25,VB3=38,VB4=-99;第二組數(shù)據(jù)是以T37為首地址的數(shù)據(jù),即T37當(dāng)前值=10,T38當(dāng)前值=20,T39當(dāng)前值=30,T40當(dāng)前值=40,(為了調(diào)試方便,數(shù)組組成個(gè)數(shù)為4個(gè))點(diǎn)擊“監(jiān)控圖標(biāo)”后點(diǎn)擊“寫入圖標(biāo)”寫入新值。指針VD100的當(dāng)前值+134217728,指針VD200的當(dāng)前值為+150995020,不影響間接尋址。

    此例中,當(dāng)讀取數(shù)據(jù)條件,M0.0由0變成1時(shí),即執(zhí)行了第一次讀取數(shù)據(jù),讀取的數(shù)據(jù)相應(yīng)送入VB400和VW1000,此時(shí)VB400的值即為VB0的數(shù)據(jù),等于“-10”,VD1000的值即為T37的數(shù)據(jù),等于“10”;若將VD100偏移量加1,即當(dāng)前值由134217728加1變?yōu)?34217729,VD200偏移量為2,即當(dāng)前值由150995020加2變?yōu)?50995022,再次將M0.0的狀態(tài)由0變?yōu)?,讀取的數(shù)據(jù)相應(yīng)送入VB400和V1000,此時(shí)VB400的值即為VB1,等于“25”,VD1000的值即為T38的數(shù)據(jù),等于“20”。讀者可以在狀態(tài)圖表中進(jìn)行監(jiān)控調(diào)試,這里不再給出尋址其他數(shù)據(jù)的說(shuō)明。

    (三)修改指針

    用指針訪問(wèn)相鄰的一個(gè)數(shù)據(jù)時(shí),可以在狀態(tài)圖表中在監(jiān)控條件下通過(guò)將M0.0的位狀態(tài)的改變來(lái)修改指針,也可在程序里使用雙字加法(ADDD)或雙字遞增(INCD)指令(指針是32位的數(shù)據(jù))。修改時(shí)記住需要調(diào)整的存儲(chǔ)器地址的字節(jié)數(shù),訪問(wèn)字節(jié)時(shí),指針值加1,訪問(wèn)字時(shí),指針值加2,訪問(wèn)雙字時(shí),指針值加4??蓞⒖既缦鲁绦颍浩渲?,M0.0為指針偏移的條件,讀取數(shù)據(jù)則用SM0.0,讀者可以自行下載,用狀態(tài)圖表監(jiān)控。

    LD SM0.1

    MOVD &VB0, VD100 //建立指針

    MOVD &T37, VD200 //建立指針

    LD M0.0

    EU

    +D 1, VD100 //訪問(wèn)字節(jié),指針值加1

    +D 2, VD200 //訪問(wèn)字,指針值加2

    LD SM0.0

    MOVB *VD100 VB400 //讀取數(shù)據(jù)

    MOVW *VD200 VW1000 //讀取數(shù)據(jù)

    以上三個(gè)步驟就可以完成間接尋址,讀者可以通過(guò)上面的例子進(jìn)行試驗(yàn),理解清楚間接尋址的概念。

    二、間接尋址的應(yīng)用

    間接尋址常用于循環(huán)程序,處理連續(xù)地址的數(shù)據(jù)。以下通過(guò)例子來(lái)介紹間接尋址的應(yīng)用。

    (一)用于循環(huán)程序

    用循環(huán)程序來(lái)累加一片連續(xù)的存儲(chǔ)區(qū)中的數(shù)值時(shí),每次循環(huán)累加一個(gè)數(shù)值。應(yīng)在累加后修改指針中存儲(chǔ)單元的地址值,使指針指向下一個(gè)存儲(chǔ)單元,為下一次循環(huán)的累加運(yùn)算做好準(zhǔn)備。沒有間接尋址,就不能編寫循環(huán)程序。間接尋址的優(yōu)點(diǎn)是可以在程序運(yùn)行期間,通過(guò)改變指針的值,動(dòng)態(tài)地修改指令中的操作數(shù)的地址。舉例說(shuō)明:

    例2:在M0.5的上升沿求VB0~VB3中4個(gè)字節(jié)的異或值,運(yùn)算結(jié)果用VB4保存。

    第一次循環(huán)將指針AC1所指定的VB0與VB4異或,運(yùn)算結(jié)果存入VB4中,然后將指針AC1的值加1,指針指向VB1,為下一次循環(huán)的異或運(yùn)算做好準(zhǔn)備。參考程序如下:

    LD M0.5

    EU

    MOVB 0,VB4 //將保存運(yùn)算結(jié)果的存儲(chǔ)單元清零

    MOVD &VB0, AC1 //將存儲(chǔ)區(qū)起始地址送指針AC1

    FOR VW100,1,4 //循環(huán)開始

    LD SM0.0

    XORB *AC1,VB4 //字節(jié)異或

    INCD AC1 //指針AC1的值加1,指向下一個(gè)字節(jié)

    NEXT //循環(huán)結(jié)束

    此例是間接尋址方式在循環(huán)程序中的典型應(yīng)用。

    (二)工程應(yīng)用

    例3:在葡萄汁生產(chǎn)中,根據(jù)產(chǎn)品成分:水、鮮榨果汁、糖、香料、溫度和速度的不同,可以生產(chǎn)出葡萄果汁、葡萄蜜露、葡萄飲品這三種飲料。要求編寫一個(gè)配方程序,使操作人員可以選擇生產(chǎn)不同的葡萄汁產(chǎn)品:(1)在觸摸屏畫面,選擇某一個(gè)配方,按下“調(diào)用配方”按鈕,則調(diào)用出相應(yīng)的配方;(2)若任意一個(gè)果汁產(chǎn)品的配方不合適,可以通過(guò)“修改配方”按鈕修改配方并保存;(3)按下“刪除配方”按鈕,可以刪除配方數(shù)據(jù)。

    此例配合HMI應(yīng)用,因畫面制作比較簡(jiǎn)單,這里不贅述。按照要求,每種飲料都與六個(gè)變量有關(guān),分別是水、鮮榨果汁、糖、香料以及調(diào)配時(shí)的速度和溫度。下圖是在觸摸屏SMART LINE中制作的畫面。

    “配方選擇”框內(nèi)可以填“1”或“2”或“3”,即選擇某一配方,存在VD200中。按下“調(diào)用配方”按鈕,即可調(diào)用所選擇的一種配方時(shí),在畫面的右側(cè)應(yīng)顯示該配方對(duì)應(yīng)數(shù)組。配方1的六個(gè)變量對(duì)應(yīng)VW0、VW2、VW4、VW6、VW8、VW10,首地址為VW0;配方2和配方3按順序以此類推,首地址分別是VW12和VW24。利用間接尋址,可以非常方便地處理這種數(shù)據(jù)內(nèi)容比較多的情況,使用間接尋址編程靈活,節(jié)省程序空間。

    將VB0的地址送入指針VD300中。2號(hào)配方的首地址是1號(hào)配方的首地址增加12,3號(hào)配方的首地址是2號(hào)配方的首地址增加12,編寫程序時(shí)可以用數(shù)學(xué)運(yùn)算指令來(lái)計(jì)算指針的偏移量。選擇第n(1或2或3)號(hào)配方,則該配方指針VD300偏移量為:(n-1)*12+指針VD300。

    調(diào)用配方實(shí)際就是讀取配方的內(nèi)容,可以直接讀取指針對(duì)應(yīng)的數(shù)據(jù)到目標(biāo)存儲(chǔ)區(qū)VW100-VW110中;修改配方是將目標(biāo)存儲(chǔ)區(qū)中配方的內(nèi)容存到指針對(duì)應(yīng)的配方數(shù)據(jù)區(qū);刪除配方是清零。

    讀者可以自行驗(yàn)證以上程序,通過(guò)觸摸屏畫面或者狀態(tài)圖表觀察配方的變化情況。

    使用間接尋址處理連續(xù)地址中的數(shù)據(jù)非常方便,而且可以減少編程工作量,使編程變得靈活。通過(guò)這幾個(gè)實(shí)例,間接尋址這個(gè)難點(diǎn)迎刃而解,學(xué)生不僅在概念上更清晰了,而且在工程應(yīng)用方面更進(jìn)一步。

    參考文獻(xiàn):

    [1]廖常初.S7-200SMARTPLC編程及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2015.

    [2]吳浩.變頻器與PLC的通訊控制原理及應(yīng)用分析[J].科技創(chuàng)新與應(yīng)用,2016(35).

    猜你喜歡
    存儲(chǔ)單元存儲(chǔ)器指針
    一種28 nm工藝下抗單粒子翻轉(zhuǎn)SRAM的12T存儲(chǔ)單元設(shè)計(jì)
    靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
    偷指針的人
    數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)形式及實(shí)驗(yàn)驗(yàn)證
    為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
    一種成本更低的全新靜態(tài)DRAM存儲(chǔ)單元
    MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
    基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
    存儲(chǔ)器——安格爾(墨西哥)▲
    ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
    河东区| 皋兰县| 江门市| 南部县| 石景山区| 南投县| 孟连| 社会| 新绛县| 连云港市| 睢宁县| 蒙城县| 三门峡市| 遵义县| 新化县| 沙田区| 武宣县| 阿勒泰市| 皮山县| 洱源县| 抚顺市| 孟连| 仙居县| 江都市| 达州市| 驻马店市| 达尔| 五台县| 客服| 兴安盟| 钦州市| 西平县| 屏南县| 巴林左旗| 越西县| 盖州市| 克拉玛依市| 馆陶县| 建始县| 广河县| 呼和浩特市|