前言
《S7-300/400進階筆記2:過程映像區的分類及其更新機制》一文中,我們討論了PLC過程映像的相關內容。在S7中,除了過程映像區外,還可以通過外設尋址來訪問輸入/輸出。
一、 外設尋址
與過程映像區不同,外設尋址是指直接訪問外設模塊。外設尋址不能對外設進行位尋址,
要求必須至少以字節為單位進行數據讀寫,即可以字節、字或者雙字為單位進行尋址。其格式如下:
- PIB(Peripheral input Byte):外設字節輸入
- PIW(Peripheral input Word):外設字輸入
- PID(Peripheral input D-word):外設雙字輸入
- PQB(Peripheral output Byte):外設字節輸出
- PQW(Peripheral output Word):外設字輸出
- PQD(Peripheral output D-word):外設雙字輸出
二、 為什麼要用外設尋址
1、訪問地址超出了過程映像區的範圍
對於300的CPU而言,以CPU-315 2DP為例(如圖1所示),I/O地址區總計有2048個字節的輸入和2048個字節的輸出,但其過程映像區的大小僅為128字節。顯然,過程映像區並不能涵蓋整個CPU的輸入/輸出地址區域。當我們要訪問的I/O地址超出了過程映像區的範圍,就必須使用外設尋址了。
![S7-300/400進階筆記3:外設尋址的概念、用法及其應用特點](http://p2.ttnews.xyz/loading.gif)
圖1 CPU315-2DP的技術數據(節選)
對於400的CPU而言,以CPU-416 2DP為例(如圖2所示),輸入/輸出均16KB,過程映像區默認為512個字節,但最大可調整為16KB。當訪問地址超出了默認的過程映像區範圍時,我們就要做以下選擇了:
- 或者修改過程映像區的大小
- 或者採用外設尋址
![S7-300/400進階筆記3:外設尋址的概念、用法及其應用特點](http://p2.ttnews.xyz/loading.gif)
圖2 CPU416-2DP的技術數據(節選)
2、輸入/輸出模塊地址未分配給過程映像區
特別是對於S7-400系列CPU而言,要想使用過程映像區,需給輸入/輸出模塊地址分配過程映像,OB1-PI或者PIP中的一個(詳見《S7-300/400進階筆記2:過程映像區的分類及其更新機制》一文)。當然,我們也可以不為其分配過程映像區,而直接使用外設尋址。
3、對外設訪問實時性要求比較高的場合
外設尋址跳過了過程映像的刷新過程,CPU和輸入/輸出模塊直接做數據交換,實時性會相對好一些。
三、 外設尋址的特點
1、 外設尋址的最小單位為字節,通過裝載指令"L"最多了讀寫4個字節的連續地址區域,如:L PID 10。如果需要讀寫大於4個字節的連續地址區域,可用SFC14(DPRD_DAT)和SFC15(DPWR_DAT)來實現。
2、 外設尋址可以訪問已經被分配至過程映像區的I/O地址區域。同時使用外設尋址和過程映像區訪問同一地址時,在程序執行的某一時刻,二者的結果會存在差異。以下面一段程序為例:
圖3 外設尋址與過程映像區
其中,"T PQB1"為外設尋址,結果會直接送給輸出模塊;而"AQ1.0"訪問的是輸出過程映像區,Q1.0的值只有在下個循環週期的"輸出映像區的數據寫入輸出模塊"階段,才能送給輸出模塊。在當前的循環週期內,二者對輸出的作用可能是不同的。
3、 由於過程映像區屬於CPU的內部存儲區,因此,相比訪問過程映像區,CPU直接訪問外設地址會更加耗時一些,但這一時間一般來說仍然比CPU的循環掃描週期要短的多,因此,總的來說,外設尋址的實時性要好一些。
閱讀更多 塞北名駝 的文章