您現在的位置是:首頁 > 攝影首頁攝影
S7-300400:外設定址的概念、用法及其應用特點
定址範圍怎麼算
一、 外設定址
與過程映像區不同,外設定址是指直接訪問外設模組。外設定址不能對外設進行位定址,
要求必須至少以位元組為單位進行資料讀寫,即可以位元組、字或者雙字為單位進行定址。其格式如下:
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地址超出了過程映像區的範圍,就必須使用外設定址了。
圖1 CPU315-2DP的技術資料(節選)
對於400的CPU而言,以CPU-416 2DP為例(如圖2所示),輸入/輸出均16KB,過程映像區預設為512個位元組,但最大可調整為16KB。當訪問地址超出了預設的過程映像區範圍時,我們就要做以下選擇了:
或者修改過程映像區的大小
或者採用外設定址
圖2 CPU416-2DP的技術資料(節選)
2、輸入/輸出模組地址未分配給過程映像區
特別是對於S7-400系列CPU而言,要想使用過程映像區,需給輸入/輸出模組地址分配過程映像,OB1-PI或者PIP中的一個。當然,我們也可以不為其分配過程映像區,而直接使用外設定址。
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的迴圈掃描週期要短的多,因此,總的來說,外設定址的實時性要好一些。