過程映像區與外設地址
什么是過程映映像區,外設地址?
過程映像區最大范圍是多少?默認設置是多少?能否更改默認設置?
過程映像區與外設地址是一一對應的嗎?
使用的I/O地址超過了過程映像區范圍怎么辦?
為什么通訊指示燈正常,但讀不到/寫不進從站數據;讀取的數值一直為0,寫入的數值能看到,但從站無變化?
CPU31xC的集成I/O點,無法正常使用?
如何訪問外設地址的Bool(布爾量)地址?
PQW無法直接監看?
什么是過程映映像區,外設地址?
當在程序中使用‘I.。。’或 ‘Q.。。’ 對輸入、輸出進行訪問時,實際上并未直接訪問輸入、輸出模板,而是訪問 CPU 的系統存儲區。此 ‘I’/ ‘Q’ 區分別被稱作輸入過程映像區和輸出過程映像區 。
外設尋址意指直接訪問外設模板,在地址前加上字母 ‘P’ 來表示:
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,每個掃描周期將模板數據讀取至過程映像區,程序訪問讀取的是過程映象區數值。
過程映像區最大范圍是多少?默認設置是多少?能否更改默認設置?
最大范圍與默認設置與CPU型號有關。
注意:部分老款CPU型號無法更改過程映像區大小。
請具體參看如下手冊鏈接:SIMATIC S7-300 CPU 31xC 和 CPU 31x:技術規范
過程映像區與外設地址是一一對應的嗎?
不是一一對應。過程映像區每個掃描周期更新一次,同一掃描周期內數值不會變化。以下為系統掃描周期的更新過程:
執行 CPU 操作系統的內部工作。
將 OB1 中輸出過程映像區的值寫入到實際模板輸出。
從模板讀取實際輸入值至 OB1 中的輸入過程映像區。
執行 OB1 的程序。
執行第一步操作,開始下一次循環
而外設地址是實時更新數值,可能同一掃描周期內有不同的實時數值。此外,過程映像區默認設置以外的映像區地址,僅僅是普通的存儲區,與外設地址并無關聯。
使用的I/O地址超過了過程映像區范圍怎么辦?
可以采用兩種方式:更改過程映像區范圍 或 使用外設地址直接讀取/寫入
更改過程映像區范圍
如圖1所示,在CPU屬性中可設置過程映像區大小。注意:設置的越大,會影響掃描周期時間。因此,建議設置到使用的地址范圍即可。
圖1 更改過程映像區大小如圖2,部分老款CPU型號不支持更改(如6ES7 315-2AG10-0AB0)。
圖2. 無法更改的過程映像區
使用外設地址直接讀取/寫入
使用PIB/PQB,PIW/PQW,PID/PQD對外設地址直接讀取寫入。問題1.為什么通訊指示燈正常,但讀不到/寫不進從站數據;讀取的數值一直為0,寫入的數值能看到,但從站無變化?問題2. CPU31xC的集成I/O點,無法正常使用?兩個問題通常都為組態設置的地址超過了過程映像區設置范圍;此時,按照以上辦法操作即可。
如何訪問外設地址的Bool(布爾量)地址?
以輸入為例,由于外設地址的最小地址為字節,因此無法直接讀取Bool地址。需要先用PIB/PIW/PID將數值MOVE到其他的存儲區(如M,DB區),再訪問M或DB的Bool地址。輸出同理。
PQW無法直接監看?
是的。PQW為只寫操作,無法監看。通常設置一個中間地址,寫入數值先賦值給M區或DB區地址,再由M區或DB區地址,MOVE給PQW,監看這個中間地址即可。
同理,PIW為只讀操作,無法寫入。
審核編輯:郭婷
-
cpu
+關注
關注
68文章
10854瀏覽量
211584 -
操作系統
+關注
關注
37文章
6801瀏覽量
123285
原文標題:過程映像區與外設地址
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論