999久久久精品国产消防器材,国产成人久久综合77777,√最新版天堂资源网在线,精品久久久久区二区8888,卡一卡二卡三乱码视频

技成培訓(xùn)網(wǎng) 技成學(xué)習(xí)APP 技成工具箱 技成企業(yè)服務(wù)

歡迎回到技成培訓(xùn)網(wǎng)

技成培訓(xùn)網(wǎng)

電工題庫(kù)寶典

技成電工課堂

PLC練習(xí)題

技成PLC課堂

變頻器故障查詢

技成PLC學(xué)吧

伺服驅(qū)動(dòng)故障查詢

技成PLC網(wǎng)校

當(dāng)前位置:技成首頁(yè) > 文章中心 > 西門子PLC > 西門子PLC在用戶程序中使用的堆棧有哪幾種

西門子PLC在用戶程序中使用的堆棧有哪幾種

發(fā)布于2022-11-16 15:41 34 2 標(biāo)簽:堆棧

  堆棧(見(jiàn)圖4-4)是CPU中的一塊特殊的存儲(chǔ)區(qū),它采用“先入后出”的規(guī)則存入和取出數(shù)據(jù)。堆棧最上面的存儲(chǔ)單元稱為棧頂,要保存的數(shù)據(jù)從棧頂“壓入”堆棧時(shí),堆棧中原有的數(shù)據(jù)依次向下移動(dòng)一層,最下面的存儲(chǔ)單元的數(shù)據(jù)丟失。在取出棧頂?shù)臄?shù)據(jù)后,堆棧中所有的數(shù)據(jù)依次向上移動(dòng)一層。堆棧的這種“先人后出”的存取順序,剛好滿足塊調(diào)用時(shí)(包括中斷處理的塊調(diào)用)存儲(chǔ)和取出數(shù)據(jù)的要求,因此堆棧在計(jì)算機(jī)的程序設(shè)計(jì)中得到了廣泛的應(yīng)用。下面介紹STEP7中3種不同的堆棧。

  1.局部數(shù)據(jù)堆棧(L堆棧)

  各邏輯塊都有它的局部變量(L)存儲(chǔ)區(qū),局部變量在邏輯塊的變量聲明表中生成,只在它被創(chuàng)建的塊中有效。每個(gè)組織塊用20B的臨時(shí)局部數(shù)據(jù)來(lái)存儲(chǔ)它的啟動(dòng)信息。局部數(shù)據(jù)可以按位、字節(jié)、字和雙字來(lái)存取,例如L0.0、LB9、LW4和LD52。

  CPU分配給當(dāng)前正在處理的塊的臨時(shí)局部數(shù)據(jù)的存儲(chǔ)器容量是有限的,這一存儲(chǔ)區(qū)(即局部堆棧)的大小與CPU的型號(hào)有關(guān)。CPU給每一優(yōu)先級(jí)分配了局部數(shù)據(jù)區(qū),這樣可以保證不同優(yōu)先級(jí)的OB都有它們可以使用的局部數(shù)據(jù)空間。

  通過(guò)在STEP7中設(shè)置參數(shù),可以給S7-400CPU的每一優(yōu)先級(jí)指定不同大小的局部數(shù)據(jù)區(qū)。S7-300 CPU每一優(yōu)先級(jí)的局部數(shù)據(jù)區(qū)的大小是固定的。

  2. 塊堆棧(B 堆棧)

  如果一個(gè)塊的處理因?yàn)檎{(diào)用另外一個(gè)塊,或者被更高優(yōu)先級(jí)的OB塊中止,CPU將在塊堆棧中存儲(chǔ)以下信息

  1)被中斷的塊的類型(OB、FB、FC、SFB、SFC)、編號(hào)和返回地址。

  2)從DB和DI寄存器中獲得的塊被中斷時(shí)打開(kāi)的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號(hào)。3)局部數(shù)據(jù)堆棧的指針。

  利用這些數(shù)據(jù),可以在中斷它的任務(wù)處理完后恢復(fù)被中斷的塊的處理。在多重調(diào)用時(shí),堆??梢员4鎱⑴c嵌套調(diào)用的幾個(gè)塊的信息。圖4-5中的OB1調(diào)用功能FC2,F(xiàn)C2的執(zhí)行被電源故障組織塊OB81中斷,圖中給出了塊堆棧中的數(shù)據(jù)動(dòng)態(tài)變化的情況。

  CPU處于STOP模式時(shí),可以在CPU的模塊信息對(duì)話框中,查看塊堆棧保存的進(jìn)入STOP模式時(shí)沒(méi)有處理完的塊,在塊堆棧中,信息按照它們被處理的順序存儲(chǔ)(見(jiàn)圖4-5)。

  每個(gè)中斷優(yōu)先級(jí)對(duì)應(yīng)的塊堆棧可以儲(chǔ)存的數(shù)據(jù)的字節(jié)數(shù)與CPU的型號(hào)有關(guān)。


堆棧操作 塊堆棧


  3.中斷堆棧(1堆棧)

  如果程序的執(zhí)行被優(yōu)先級(jí)更高的OB中斷,操作系統(tǒng)將保存下述寄存器的內(nèi)容當(dāng)前的累加器和地址寄存器的內(nèi)容、數(shù)據(jù)塊寄存器中DB和DI的內(nèi)容、局部數(shù)據(jù)的指針、狀態(tài)字、MCR(主控繼電器)寄存器和塊堆棧的指針。新的OB執(zhí)行完后,操作系統(tǒng)讀取中斷堆棧中的信息,從被中斷的塊被中斷的地方開(kāi)始繼續(xù)執(zhí)行程序。

若有收獲,就點(diǎn)個(gè)贊吧!

文章來(lái)源于網(wǎng)絡(luò)及文獻(xiàn)如有侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)
分享到:

微信掃一掃分享

閱讀與本文標(biāo)簽相同的文章

堆棧

相關(guān)推薦

最新文章 熱門文章
最新課程 免費(fèi)課程
PLC資料下載 電工電氣資料下載
應(yīng)用新秀
變頻器故障代碼查詢APP
伺服故障代碼查詢APP
技成
手機(jī)APP
熱門標(biāo)簽