S7-200 SMART 數(shù)據(jù)類型及IO尋址問題
一、S7-200 SMART 數(shù)據(jù)尋址
如何調(diào)用開關(guān)量或模擬量信號(hào)?
怎樣讀取數(shù)據(jù)?
怎么使用輸入信號(hào)?
如何輸出控制?
……
上述問題都是關(guān)于如何訪問、使用數(shù)據(jù)的問題,也就是所謂“尋址"。
二、訪問S7-200 SMART 中的數(shù)據(jù)
S7-200 SMART從外部接收信號(hào)輸入(輸入數(shù)據(jù)),在內(nèi)部按照用戶程序運(yùn)算、處理后,再輸出進(jìn)行各種控制、顯示。
CPU 將信息存儲(chǔ)在不同存儲(chǔ)單元,每個(gè)位置均具有*一的地址。尋址時(shí),數(shù)據(jù)地址以代表存儲(chǔ)區(qū)類型的字母開始,隨后是表示數(shù)據(jù)長度的標(biāo)記,然后是存儲(chǔ)單元編號(hào);對(duì)于二進(jìn)制位尋址,還需要在一個(gè)小數(shù)點(diǎn)分隔符后*定位編號(hào)。
位尋址的舉例如下圖所示:
圖1.位尋址舉例
其中,存儲(chǔ)區(qū)和字節(jié)地址(“M3")代表 M 存儲(chǔ)器的第 3 個(gè)字節(jié),用句點(diǎn)(“.")與位地址(位 4)分開。
字節(jié)尋址的舉例如下圖所示:
圖2. 字節(jié)尋址舉例
可以看出,VW100包括VB100和VB101;VD100包括VW100和VW102,即VB100,VB101,VB102,VB103這4個(gè)字節(jié)。這些地址是互相交疊的。
當(dāng)涉及到多字節(jié)組合尋址時(shí),遵循“高地址,低字節(jié)"的規(guī)律。
下表給出了不同數(shù)據(jù)長度可表示的整數(shù)值范圍。
表1.不同數(shù)據(jù)長度表示的十進(jìn)制和十六進(jìn)制數(shù)范圍
表示方式 | 字節(jié)(B) | 字(w) | 雙字 (DW) |
無符號(hào)整數(shù) | 0到255 16#00到16#FF | 0到65,535 16#0000到16#FFFF | 0到4,294,967,295 16#00000000到16#FFFFFFFF |
---|---|---|---|
有符號(hào)整數(shù) | -128到+127 16#80到16#7F | -32,768到+32,767 16#8000到16#7FFF | -2,147,483,648到+2,147,483,647 16#8000 0000到16#7FFF FFFF |
實(shí)數(shù)(IEEE32位浮點(diǎn)數(shù)) | 不適用 | 不適用 | +1.175495E-38 到 +3.402823E+38(正數(shù)) -1.175495E-38到-3.402823E+38 (負(fù)數(shù)) |
幾乎所有的指令、功能都與各種形式的尋址有關(guān),不弄清楚數(shù)據(jù)尋址會(huì)給工作帶來極大的困難。
三、對(duì)本地 I/O 和擴(kuò)展 I/O 進(jìn)行尋址
CPU 提供的本地 I/O 具有固定的 I/O 地址??梢酝ㄟ^在 CPU 的右側(cè)連接擴(kuò)展 I/O 模塊,或通過安裝信號(hào)板來增加 I/O 點(diǎn)。模塊點(diǎn)的地址取決于 I/O 類型和模塊在 I/O 鏈中的位置。
注意:
1、數(shù)字量 I/O 的過程映像寄存器空間總是以八位(一個(gè)字節(jié))遞增的形式預(yù)留。如果模塊沒有為每個(gè)保留字節(jié)中的每一位提供相應(yīng)的物理點(diǎn),那些未使用的位就無法分配給 I/O 鏈中的后續(xù)模塊。對(duì)于輸入模塊,這些未使用的位會(huì)在每個(gè)輸入更新周期中被清零。
2、模擬量 I/O 點(diǎn)總是以兩點(diǎn)遞增的方式分配。如果模塊沒有為這些點(diǎn)分配相應(yīng)的物理 I/O,則這些 I/O 點(diǎn)將丟失,并且不能夠分配給 I/O 鏈中的后續(xù)模塊。
下表提供固定映射慣例的示例(由 STEP 7 Micro/WIN SMART 建立,并作為系統(tǒng)塊中I/O 組態(tài)的一部分下載)。
表2. CPU 映射慣例:
CPU | 信號(hào)板 | 信號(hào)模塊 0 | 信號(hào)模塊 1 | 信號(hào)模塊 2 | 信號(hào)模塊 3 | |
起始地址 | I0.0 Q0.0 | I7.0 Q7.0 無 AI SB AQ12 | I8.0 Q8.0 AI16 AQ16 | I12.0 Q12.0 AI32 AQ32 | I16.0 Q16.0 AI48 AQ48 | I20.0 Q20.0 AI64 AQ64 |
四、常問問題
1. CPU連接若干個(gè)I/O擴(kuò)展模塊時(shí),如何查看每個(gè)模塊占用的I/O通道地址?
由于I/O擴(kuò)展模塊占用的輸入和輸出地址與模塊位置有關(guān),不連續(xù)且不能被用戶自定義,因此建議到系統(tǒng)塊上方的概覽表格中查看
圖4.I/O通道地址