當在程序中使用 "I..." 或 "Q..." 對輸入、輸出進行訪問時,實際上并未直接訪問輸入、輸出模板,而是訪問 CPU 的系統存儲區。此 "I"/ "Q" 區分別被稱作輸入過程映像區 (PII) 和輸出過程映像區 (PIQ)。只有在過程映像區刷新時刻,I 區和 Q 區的內容才與輸入/輸出的實際值相同,所以它們并不能直接反映輸入/輸出的實際狀態。因此,在某些需要對輸入/輸出進行較為實時處理的場合,需要選擇使用直接外設尋址。
若將 I/O 輸入輸出模塊 I/O 地址分配在過程映像區以外,必須通過外設尋址方式訪問這些 I/O。為了分清楚,以下對過程映像和外設尋址進行分別介紹。OB1過程映像
任何 CPU 均可使用 OB1 過程映像 (OB1-PI)。OB1 過程映像在每個 OB1 循環周期之前被更新,CPU 的程序依照以下順序循環執行:- 執行 CPU 操作系統的內部工作。
- 將 OB1 中輸出過程映像區的值寫入到實際模板輸出。
- 從模板讀取實際輸入值至 OB1 中的輸入過程映像區。
- 執行 OB1 的程序。
- 執行第一步操作,開始下一次循環
操作系統自動完成對 OB1 過程映像 (OB1-PI) 的讀寫。對于 S7-400 CPUs ,可以禁用 OB1 過程映像循環更新 ("HW Config" 硬件組態界面 > CPU 右鍵 選擇 "Object Properties"> "Cycle/Clock memory" > 去除 "Update OB1 process image cyclically" 選項勾),同時必須在用戶程序中使用 SFC 26 (UPDAT_PI) 和SFC 27 (UPDAT_PO) 對OB1 過程映像進行更新。
以下是 OB1 過程映像區循環更新的主要特點:- 循環時間越短,OB1 過程映像的更新頻率越快。
- 過程映像區的更新時間長短依情況而定,它取決于以下因素:
- OB1 過程映像增加的地址數量
- 與單個模板通訊的速率
- 用于尋址單個模板的通訊協議類型 (MPI, PROFIBUS, ...)
- 設置的 OB1 過程映像越大 ( 僅部分 CPU 可設置),映像區中所包含的模板通道數越多則循環時間也隨之增長。
過程映像分區 ( PIP )
除 OB1 過程映像之外,在某些類型 CPU 中還可以將輸入/輸出地址分配至過程映像分區 (PIP) 。不能將同一輸入/輸出地址既分配至 OB1 過程映像,又分配至過程映像分區 (PIP),只能二選一。
過程映像分區的更新有以下兩種方式:- 在用戶程序中通過調用 SFC 26 (UPDAT_PI) 和 SFC 27 (UPDAT_PO)
- 將 PIP 分配至 OB
當使用 SFC 進行更新時,可對過程映像分區進行一致性數據讀寫,數據長度取決于 CPU 的類型。相關信息可參照 SFC 功能塊的 S7 在線幫助。在硬件組態中,可以對OB的過程映像分區進行參數設置 (右鍵單擊 CPU 選擇"Object Properties" > "Cycle/Clock bit memory"). 可將過程映像分區分配至 OB 塊。當該 OB 塊被調用時,與之有關的過程映像分區讀入輸入值。當 OB 塊處理完畢,與之相關的過程映像分區立即將輸出值寫至輸出。請參考在線幫助了解 OB 塊的執行情況 (分配至 OB 61 至 64 的過程映像分區不會被自動更新) 。外設尋址
過程映像區不能涵蓋整個 CPU 的輸入/輸出地址區域。如,CPU 315-2DP (6ES7315-2EG10-0AB0) 的 I/O 地址總量最大為 2048 字節,但其過程映像區的大小為 128 字節。
一旦所要使用的模板 I/O 地址超出了過程映像區范圍,就必須使用外設尋址。外設地址使用戶程序與外設地址進行快速數據交互。這一點對模擬量和過程報警尤為重要。
通過外設尋址同樣可以訪問已被分配過程映像的 I/O 地址區域。
外設尋址意指直接訪問外設模板,在地址前加上字母 '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 外設輸出雙字
下列情況需要使用外設尋址:- 模板地址未分配至過程映像區
- 用戶程序需要比過程映像更為實時的輸入值
- 輸出值需要即刻輸出至模板 (至少一個字節)
使用外設尋址時請注意:CPU 317-2 DP: | L IB x 0.05 μs |
| L PIB x 15.01 μs |
- "L PIB 1" 和"L PIW 2" 這兩條指令獲得的數據不一致,而 "L PID 1" 則可保證 PIB 1至 PIB 4 數據的一致性。如果需要直接讀取大于4個字節的連續地址區域,可以使用 SFC 14 (DPRD_DAT),如要向模板寫入大于4個字節的連續數據,可以使用 SFC 15 (DPWR_DAT)。
- 直接讀寫外設輸入/輸出地址必須整個字節的讀取,而不能對外設進行位尋址。在一些應用中可以利用對應于同一地址的外設尋址和過程映像的差異。其差異表現在,在用戶程序中外設尋址直接寫至模板輸出,而過程映像則保持此次的更新值。
如:
18325417_cpu_adressierung_peripher_01_e.png (1.29 KB)
下載附件
2013-11-18 22:51 上傳
Fig. 01- A Q 1.0 語句中 Q 1.0 的信號狀態與上一次程序執行時的外設訪問值保持相同,而不隨本次程序中 PQB 1的值發生變化。
對于輸入,可以使用裝載、傳送指令,來更新過程映像的值。
如:
18325417_cpu_adressierung_peripher_02_e.png (1.37 KB)
下載附件
2013-11-18 22:51 上傳
Fig. 02利用 MC7 指令可以對過程映像區進行編輯。I 和 Q 區可以存儲外設信號,以對外設信號進行預處理或進一步處理。 當然,M、D 或 L 區也可實現此功能。
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|