tft每日頭條

 > 生活

 > plc有幾種存儲區

plc有幾種存儲區

生活 更新时间:2024-07-21 23:14:45

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)1

過程映像區

1.1 什麼是過程映像區?

當我們在用戶程序中對輸入 (I) 和輸出 (Q) 地址區進行尋址時,CPU并不直接訪問信号模塊, 而是訪問 CPU 系統存儲器中的存儲區。 該存儲區就是過程映像區。該區域分為兩部分: 輸入過程映像區(PII)和輸出過程映像區(PIQ)。有兩種方式可以更新過程映像區:OB1更新過程映像區和PIP更新過程映像區。

1.2 使用過程映像區有什麼好處?

與直接訪問輸入/輸出模塊相比,訪問過程映像區的優勢在于在循環程序處理期間,可為CPU 提供一緻的過程映像區數據,即在程序執行過程中,訪問的過程映像區信号始終一緻。 如果在程序執行期間輸入模塊的信号狀态發生變化,過程映像區中的信号狀态将保持不變,直到過程映像區在下一個周期中被更新。隻有在過程映像區刷新時刻,I區和Q 區的内容才與輸入/輸出的實際值相同,所以它們并不能直接反映輸入/輸出的實際狀态。

此外,由于過程映像存儲在CPU的系統存儲器中,訪問過程映像區的速度明顯快于直接訪問信号模塊。為了節省時間,通常程序中使用過程映像區的數據。

1.3 過程映像區的設置

對于S7-300/400的CPU而言,可以設置過程映像區的大小,具體設置方法如圖1和圖2所示,設置範圍可以查看CPU的技術規範手冊或者在組态界面查看。

對于S7-1200/1500CPU而言過程映像區不可更改。S7-1200 CPU輸入過程映像區大小為1kbyte,輸出過程映像區的大小為1kbyte。

S7-1500CPU輸入過程映像區大小為32kbyte,輸出過程映像區的大小為32kbyte。

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)2

圖1 經典STEP7軟件中設置CPU過程映像區

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)3

圖2 博途STEP7軟件中設置CPU過程映像區

對于S7-300/400的CPU來說,能否更改過程映像區的大小與CPU固件相關。

1.4 OB1更新過程映像區有什麼特點?

在地址的分配過程中,如果模塊的地址位于過程映像區之内,則可以選擇自動更新過程映像,自動更新即為按照CPU OB1的周期更新過程映像區,如圖3所示。如果地址不在過程映像區,則該區域顯示“無”。

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)4

圖3 自動更新過程映像

對于S7-300/400的CPU而言,該區域默認顯示設置為“OB1過程映像”。I/O模塊會在此過程映像區中分配相應的地址,操作系統在其每個程序循環内自動更新此地址。PLC的循環程序處理過程如圖4和表格1所示。

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)5

圖4 PLC程序循環處理過程

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)6

表格1 PLC循環程序處理過程

1.5 PIP更新過程映像有什麼特點?

除 OB1 更新過程映像區之外,某些類型的 CPU 中還可以将輸入/輸出地址分配至過程映像分區 (PIP)中進行更新,比如一些I/O地址區域僅在相應的OB塊,如循環中斷OB被執行時才會被刷新,這種有條件的刷新方式也可以減輕CPU的負荷。

注意:

隻有具有輸入或輸出模塊才能選擇此選項,同時不能将同一輸入/輸出地址既分配至 OB1 過程映像區更新,又分配至過程映像分區 (PIP)做更新,隻能二選一。

過程映像分區的更新有以下兩種方式:

· 将 PIP 分配至 OB塊更新

· 通過在用戶程序中通過調用 SFC 26 (UPDAT_PI) 和 SFC 27 (UPDAT_PO)系統功能塊做更新

在IO地址區中,可以将過程映像分區連接到一個OB,啟動OB後,系統将自動更新所分配的輸入過程映像分區,在OB結束時,系統将分配的過程映像分區輸出寫入到I/O輸出中。圖5為通過過程映像分區6和循環中斷做更新的示例,此外CPU還必須支持過程映像分區,可用的過程映像分區數量取決于CPU類型。

· S7-300 CPU支持的過程映像分區的最大數量為1;

· S7-400 CPU支持的過程映像分區的最大數量為15;

· S7-1200 CPU支持的過程映像分區的最大數量為4;

· S7-1500 CPU支持的過程映像分區的最大數量為31。

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)7

圖5 通過過程映像分區6和循環中斷做更新

如果過程映像分區未分配給OB,則操作系統不會更新此PIP,此時可通過特殊指令更新過程映像分區:

· 過程映像分區輸入可使用SFC 26 (UPDAT_PI)指令

· 過程映像分區輸出則使用SFC 27 (UPDAT_PO)指令

需要注意的是:S7-1200CPU 不支持SFC 26 (UPDAT_PI)、SFC 27 (UPDAT_PO)指令。S7-300 CPU不支持PIP分配至OB塊更新。

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)8

外設地址

2.1什麼是外設地址?

對于無法更改過程映像區的CPU來說,一旦所要使用的模闆I/O地址超出了過程映像區範圍,就必須使用外設尋址。

外設尋址就是指不經過過程映像區直接去訪問I/O模闆,使用時通過在地址前加上字母'P’來表示。

2.2 外設地址如何标識?

通過外設尋址同樣可以訪問已被分配過程映像區的 I/O 地址。

· PIB --> Peripheral Input Byte 外設輸入字節

· PQB --> Peripheral output Byte 外設輸出字節

· PIW --> Peripheral Input Word 外設輸入字

· PQW --> Peripheral output Word 外設輸出字

· PID --> Peripheral Input Double-word 外設輸入雙字

· PQD --> Peripheral Output Double-word 外設輸出雙字

外設地址的最小地址為字節,即PIB、PQB。

以模拟量輸入為例理解IW與PIW:

· PIW:直接讀取外設地址,即直接采集模闆信号。 外設地址是實時更新數據,可能同一個掃描周期内有不同的實時數值。在某些需要對輸入/輸出進行較為實時處理的場合,需要選擇使用直接外設尋址。

· IW:每個掃描周期将模闆數據讀取至過程映像區,程序訪問過程映象區數值。

2.3什麼情況下必須使用外設地址?

下列情況需要使用外設地址:

· 模闆地址超出過程映像區範圍

· 用戶程序需要直接從輸入模闆讀取實時值

· 輸出值需要直接輸出至模闆 (至少一個字節)

plc有幾種存儲區(一文讀懂PLC過程映像區和外設地址)9

常見問題

3.1如何訪問外設地址的Bool地址?

由于外設地址的最小地址為字節,因此無法直接讀取Bool地址。以輸入為例,需要先用PIB/PIW/PID将數值MOVE到其他的存儲區(如M,DB區),再訪問M或DB的Bool地址。 輸出也是一樣,需要對M或者DB的Bool地址寫入,然後将M或者DB的字節/字/雙字MOVE到PQB/PQW/PQD。

3.2PQW能否使用狀态圖表監控?

PQW為隻寫操作,無法監看。通常設置一個中間地址,寫入數值先賦值給M區或DB區地址,再由M區或DB區地址,MOVE給PQW,監看這個中間地址即可。 同理,PIW為隻讀操作,無法寫入。

3.3DP或PN通訊正常為何從站數據為零?

S7-300挂分布式IO,通訊指示燈正常,但是讀不到/寫不進從站數據;讀取的數值一直為0,寫入的數值能看到,但從站無變化?

訪問外設地址或者更改CPU的過程映像區,将輸入或者輸出地址放在過程映像區之内。

3.4 模塊地址能否跨過程映像區?

使用S7-300系列的控制器CPU313C-2DP(6ES7 313-6BG04-0AB0)實現控制要求,組态一個32點的DI模塊,自定義地址,“Start”設置為126,此時會提示地址無效,推薦的New Address為128,這是為什麼?

這是因為當前CPU的輸入/輸出IO映像區範圍默認是128個字節,32點的DI模塊需要占用4個字節,本體的DI輸入地址是124-125,如果保持地址連續的話,DI模塊的地址應為126-129,此時已經超過默認的過程映像區128。對于一個數字量模塊而言,其輸出地址不能“跨越”過程映像,即一部分地址位于過程映像區内而一部分地址在過程映像區外。如果要保持數字量輸出地址連續,可将過程映像區範圍改大。也可以選擇建議的起始地址128。

3.5 CP343-1或者CP342-5的IO地址與過程映像區有什麼關系?

CP343-1或者CP342-5的IO地址需要在CPU的過程映像區之外,不能在CPU過程映像區之内,否則編譯會報錯。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved