:1800弄(電子商務(wù)園)5005公司主營:西門子數(shù)控系統(tǒng),V20變頻器S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人機界面,變頻器,DP總線,MM變頻器,6SE70交流工程調(diào)速變頻器6RA70等系列產(chǎn)品。
產(chǎn)品簡介
詳細(xì)介紹
西門子精智面板6AV2124-1QC02-0AX0檢測
本公司宗旨:本著以誠信為本,以顧客為中心,讓顧客滿意,創(chuàng)造一個舒心的購物
實數(shù)的格式
實數(shù)(浮點數(shù))由32位單精度數(shù)表示,其格式按照ANSI/IEEE 754- 1985中所描述的形式,參見圖4--9。實數(shù)按照雙字長度來存取。
對于S7- 200來說,浮點數(shù)到小數(shù)點后第六位。因而當(dāng)您使用一個浮點數(shù)常數(shù)時,多可以到小數(shù)點后第六位。
MSB 31 30
23 22
LSB 0
符號位
圖4--9 實數(shù)的格式
實數(shù)運算的精度
在計算中涉及到非常大和非常小的數(shù),則有可能計算結(jié)果不。例如數(shù)值相差10的x次方倍,
而x>6時。
例如: 100 000 000 + 1 = 100 000 000
字符串的格式
字符串指的是一系列字符,每個字符以字節(jié)的形式存儲。字符串的個字節(jié)定義了字符串的長度, 也就是字符的個數(shù)。4--10給出了一個字符串的格式。一個字符串的長度可以是0到254個字符,再加上長度字節(jié),一個字符串的長度為255個字節(jié)。而一個字符串常量的長度為126字節(jié)。
長度 | 字符1 | 字符2 | 字符3 | 字符4 | ... | 字符254 |
字節(jié)0
字節(jié)1
字節(jié)2
字節(jié)3
字節(jié)4
字節(jié)254
圖4--10 字符串的格式
在S7- 200指令中輸入常數(shù)值
在S7- 200的許多指令中,都可以使用常數(shù)值。常數(shù)可以是字節(jié)、字或者雙字。S7- 200以二進制數(shù)的形式存儲常數(shù),可以分別表示十進制數(shù)、十六進制數(shù)、ASCII碼或者實數(shù)(浮點數(shù))。見表4--2。
表4--2 常數(shù)表示法
數(shù)制 | 格式 | 舉例 |
十進制 | [十進制值] | 20047 |
十六進制 | 16#[十六進制值] | 16#4E4F |
二進制 | 2#[二進制數(shù)] | 2#1010_0101_1010_0101 |
ASCII碼 | ’[ASCII碼文本]’ | ’ABCD’ |
實數(shù) | ANSI/IEEE 754- 1985 | +1.175495E- 38 (正數(shù))- 1.175495E- 38 (負(fù)數(shù)) |
字符串 | “[字符串文本]" | “ABCDE" |
本地I/O和擴展I/O的尋址
CPU提供的本地I/O具有固定的I/O地址。您可以將擴展模塊連接到CPU的右側(cè)來I/O點,形成I/O 鏈。對于同種類型的輸入輸出模塊而言,模塊的I/O地址取決于I/O類型和模塊在I/O鏈中的位置。舉例 來說,輸出模塊不會影響輸入模塊上的點地址,反之亦然。類似的,模擬量模塊不會影響數(shù)字量模塊 的尋址,反之亦然。
圖4--11中是一個特定的硬件配置中的I/O地址。地址間隙(用灰色斜體文字表示)無法在程序中使用。
圖4- 11 CPU224XP的本地和擴展I/O地址舉例
用指針對S7- 200存儲區(qū)間接尋址
間接尋址是指用指針來訪問存儲區(qū)數(shù)據(jù)。指針以雙字的形式存儲其他存儲區(qū)的地址。只能用V存儲 器、L存儲器或者累加器寄存器(AC1、AC2、AC3)作為指針。要建立一個指針,必須以雙字的形式, 將需要間接尋址的存儲器地址到指針中。指針也可以作為參數(shù)傳遞到子程序中。
S7-200允許指針訪問下列存儲區(qū): I、Q、V、M、S、AI、AQ、SM、T (僅當(dāng)前值)和C (僅當(dāng)前
值)。無法用間接尋址的訪問單獨的位,也不能訪問HC或者L存儲區(qū)。
要使用間接尋址,應(yīng)該用“&"符號加上要訪問的存儲區(qū)地址來建立一個指針。指令的輸入操作數(shù)應(yīng) 該以“&"符號開頭來表明是存儲區(qū)的地址,而不是其內(nèi)容將到指令的輸出操作數(shù)(指針)中。
當(dāng)指令中的操作數(shù)是指針時,應(yīng)該在操作數(shù)前面加上“*"號。如圖4--12所示,輸入*AC1AC1 是一個指針,MOVW指令決定了指針指向的是一個字長的數(shù)據(jù)。在本例中,存儲在VB200和VB201 中的數(shù)值被到累加器AC0中。
V199
V200
V201 V202 V203
AC1
MOVD &VW200, AC1
將VB200的地址(VW200的起始地址)作為指針存入AC
MOVW *AC1, AC0
將AC1所指向的字(VW202)中的值送入AC0
圖4--12 創(chuàng)建和使用指針
如圖4--13所示,您可以改變一個指針的數(shù)值。由于指針是一個32位的數(shù)據(jù),要用雙字指令來改變指
針的數(shù)值。簡單的數(shù)算,如加法指令或者指令,可用于改變指針的數(shù)值。
V199
V200
V201 V202 V203
AC1
MOVD &VW200, AC1
將VB200的地址(VW200的起始地址)作為指針存入AC1中。
MOVW *AC1, AC0
將AC1所指向的字(VW200)中的值送入AC0
V199 V200 V201
V202
V203
+D +2, AC1
將AC1中的數(shù)值加2指向下一個字
MOVW *AC1, AC0
將AC1所指向的字(VW202)中的值送入AC0
圖4--13 改變指針
用地址偏移量來訪問V存儲區(qū)數(shù)據(jù)的范例程序 | |
本例中用LD10作為VB0的地址指針。然后可以利用VD1004中存儲的地址偏移量來改變指針值。經(jīng)過改變后,LD10指向 V區(qū)中的另外一個地址(VB0 + 偏移量)。然后將LD10指向的V區(qū)地址中存儲的數(shù)值到VB1900中。通過改變VD1004 中的數(shù)值,您可以訪問V存儲器中的任意單元。 | |
Network 1 //如何使用偏移量讀取 //所有VB位置的數(shù)值: //1. 將V存儲器的起始地址裝載到指針中。 //2. 將偏移量值添加到指針中。 //3. 將V存儲器位置(偏移量)中的數(shù)值到VB1900。 LD SM0.0 MOVD &VB0, LD10 +D VD1004, LD10 MOVB *LD10, VB1900 |
本例中用LD14作為指向一個配方表的指針,配方表的起始地址為VB100。在本例中VW1008用來存儲一個的配方在 表中的索引號。如果每條配方的長度為50個字節(jié),則用這個索引號乘以50就可以這條配方起始地址的偏移量。用指 針加上偏移量,您就可以訪問表中的每一條配方。在本例中,配方被到從VB1500開始的50個字節(jié)中。 | |
Network 1 //如何從配方表傳送配方: // - 每個配方的長度為50個字節(jié)。 // - 索引值(VW1008)裝載哪一條配方。 //1. 創(chuàng)建一個指向配方表 // 起始地址的指針。 //2. 將配方的索引轉(zhuǎn)換為 // 雙字值。 //3. 偏移量,以容納 // 每個配方的大小。 //4. 將調(diào)節(jié)后的偏移量添加到指針中。 //5. 將選定的配方傳送到 // VB1500至VB1549。 LD SM0.0 MOVD &VB100, LD14 ITD VW1008, LD18 *D +50, LD18 +D LD18, LD14 BMB *LD14, VB1500, 50 |
下一篇:西門子精智面板6AV3688-3AF37-0AX0檢測