01
過程映像區
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。
圖1 經典STEP7軟件中設置CPU過程映像區
圖2 博途STEP7軟件中設置CPU過程映像區
對于S7-300/400的CPU來說,能否更改過程映像區的大小與CPU固件相關。
1.4 OB1更新過程映像區有什么特點
在地址的分配過程中,如果模塊的地址位于過程映像區之內,則可以選擇自動更新過程映像,自動更新即為按照CPU OB1的周期更新過程映像區,如圖3所示。如果地址不在過程映像區,則該區域顯示“無”。
圖3 自動更新過程映像
對于S7-300/400的CPU而言,該區域默認顯示設置為“OB1過程映像”。I/O模塊會在此過程映像區中分配相應的地址,操作系統在其每個程序循環內自動更新此地址。PLC的循環程序處理過程如圖4和表格1所示。
圖4 PLC程序循環處理過程
表格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支持的過程映像分區的Zui大數量為1;
· S7-400 CPU支持的過程映像分區的Zui大數量為15;
· S7-1200 CPU支持的過程映像分區的Zui大數量為4;
· S7-1500 CPU支持的過程映像分區的Zui大數量為31。
圖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塊更新。
02
外設地址
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 外設輸出雙字
外設地址的Zui小地址為字節,即PIB、PQB。
以模擬量輸入為例理解IW與PIW:
· PIW:直接讀取外設地址,即直接采集模板信號。 外設地址是實時更新數據,可能同一個掃描周期內有不同的實時數值。在某些需要對輸入/輸出進行較為實時處理的場合,需要選擇使用直接外設尋址。
· IW:每個掃描周期將模板數據讀取至過程映像區,程序訪問過程映象區數值。
2.3什么情況下必須使用外設地址
下列情況需要使用外設地址:
· 模板地址超出過程映像區范圍
· 用戶程序需要直接從輸入模板讀取實時值
· 輸出值需要直接輸出至模板 (至少一個字節)
03
常見問題
3.1如何訪問外設地址的Bool地址?
由于外設地址的Zui小地址為字節,因此無法直接讀取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過程映像區之內,否則編譯會報錯。
- 西門子數字化工業11月技術要點新聞 2024-12-02
- 解讀專家大講堂——S7-200 SMART 編程探秘之子程序和中斷 2024-12-02
- 掌控創新: S7-1200 新固件的八個新功能 2024-12-02
- 解讀專家大講堂——輕松玩轉 G120 EPOS 基本定位功能(下) 2024-12-02
- 創建 PC 連接之路-SIMATIC NET 的七個問答 2024-12-02
- 西門子數字化工業2022年2月技術要點新聞 2024-12-02
- 玩轉西門子 S7-1200/1500 的 Modbus RTU 通信診斷 2024-12-02
- 大話安全——關于功能安全您需要知道的四個問答 2024-12-02
- 一目了然——PLC 獲取驅動故障的兩種新方法 2024-12-02
- 驅動工程師編程利器-TIA 博途下三大應用庫介紹 2024-12-02
- 西門子數字化工業2022年1月技術要點新聞 2024-12-02
- 西門子無線 iFeatures 功能-助力 PROFINET 無線傳輸的利器 2024-12-02
- 面板 Audit (審計追蹤)功能您了解多少? 2024-12-02
- 解讀專家大講堂|冗余S7-400H 和上位機通信要點解析 2024-12-02
- 西門子 數字化工業技術要點新聞 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684