S7-300/400進階筆記3:外設尋址的概念、用法及其應用特點

前言

《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:外設尋址的概念、用法及其應用特點

圖1 CPU315-2DP的技術數據(節選)

對於400的CPU而言,以CPU-416 2DP為例(如圖2所示),輸入/輸出均16KB,過程映像區默認為512個字節,但最大可調整為16KB。當訪問地址超出了默認的過程映像區範圍時,我們就要做以下選擇了:

  • 或者修改過程映像區的大小
  • 或者採用外設尋址
S7-300/400進階筆記3:外設尋址的概念、用法及其應用特點

圖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地址區域。同時使用外設尋址和過程映像區訪問同一地址時,在程序執行的某一時刻,二者的結果會存在差異。以下面一段程序為例:

S7-300/400進階筆記3:外設尋址的概念、用法及其應用特點

圖3 外設尋址與過程映像區

其中,"T PQB1"為外設尋址,結果會直接送給輸出模塊;而"AQ1.0"訪問的是輸出過程映像區,Q1.0的值只有在下個循環週期的"輸出映像區的數據寫入輸出模塊"階段,才能送給輸出模塊。在當前的循環週期內,二者對輸出的作用可能是不同的。

3、 由於過程映像區屬於CPU的內部存儲區,因此,相比訪問過程映像區,CPU直接訪問外設地址會更加耗時一些,但這一時間一般來說仍然比CPU的循環掃描週期要短的多,因此,總的來說,外設尋址的實時性要好一些。


分享到:


相關文章: