一、數據在存儲器中的存儲方式
1、數據格式及要求
A〉數據格式:即指數據的長度和表示方式。 B〉要求:S7-200對數據的格式有一定的要求,指令與數據之間的格式一致才能正常工作。
2、用一位二進制數表示開關量
A〉一位二進制數:一位二進制數有0(OFF)和1(ON)兩種不同的取值,分別對應于開關量(或數字量)的兩種不同的狀態。 B〉位數據的數據類型:布爾(Bool)型。 C〉位地址:由存儲器標識符、字節地址和位號組成,如I3.4等。 D〉其它CPU存儲區的地址格式:由存儲器標識符和起始字節號(一般取藕字節)組成,如V B 100、V W 100、V D 100等。
3、多位二進制數(8421碼)
A〉數及數制:數用于表示一個量的具體大小。根據計數方式的不同,有十進制(D)、二進制(B)、十六進制(H)和八進制等不同的計數方式。 B〉二進制數的表示:在S7-200中用2#來表示二進制常數,例如 “2# 10111010 ”。 C〉二進制數的大小:將二進制數的各位(從右往左第n位)乘以對應的位權(×2n-1),并將結果累加求和可得其大小。例如:2# 10111010 = 1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20 = 186
4、十六進制數
A〉十六進制數的引入:將二進制數從右往左每4位用一個十六進制數表示,可以實現對多位二進制數的快速準確的讀寫。 B〉不同進制數的表示方法:( 表3-2-1 不同進制數的表示方法 ) C〉十六進制數的表示:在S7-200中用16#來表示十六進制常數,例如 “2# 1010 1110 0111 0101 可轉換為16# AEF7 ”。 D〉十六進制數的大小:將十六進制數的各位(從右往左第n位)乘以對應的位權(×16n-1),并將結果累加求和可得其大小。例如:16# 2F = 2×161+15×160 = 47
5、數據長度:字節(Byte)、字(Word)、雙字(DoubleWord)
A〉字節(B):從0號位開始的連續8位二進制數稱為一個字節。 B〉字(W):相鄰的兩個字節組成一個字的長度。 C〉雙字(DW):相鄰的四個字節組成一個雙字的長度。 D〉字、雙字長數據的存儲特點:高位存低字節、地位存于高字節。
6、負數(有符號數)的表示方法
A〉負數的表示:PLC一般用二進制的補碼來表示有符號數,其最高位為符號位(0 ——正數、1 ——負數)。 B〉絕對值相等的正負有符號數間的關系:正數的補碼是它本身。 C〉不同數據的取值范圍:( 表3-2-2 數據的位數與取值范圍 )
7、BCD碼
A〉BCD碼釋義:BCD碼就是用四位二進制數的組合來表示1位十進制數,即用二進制編碼的十進制數(Binary Coded Decimal Number)縮寫。例如 十進制數 23 的BCD碼為 2# 0010 0011 或表示為 16# 23 ,但其8421碼為 2# 00010111 。 B〉BCD碼的應用:BCD碼常用于輸入輸出設備,例如撥碼開關輸入的是BCD碼,送給七段顯示器的數字也是BCD碼。
二、CPU的存儲區
1、輸入過程映象寄存器(I)
A〉輸入過程映象寄存器(I)的作用:在每次掃描周期的開始,CPU對物理輸入點進行采樣,并將采樣值寫入輸入過程映象寄存器中。 B〉輸入過程映象寄存器(I)的特點:① 只能由外部驅動,其常開、常閉觸點使用次數不受限制;② 可以按位、字節、字或雙字來存取輸入過程映象寄存器中的數據: 位:I [字節地址] 。 [位地址] 如 I0.1 字節、字或雙字:I [長度] [起始字節地址] 如 IB4
2、輸出過程映象寄存器(Q)
A〉輸出過程映象寄存器(Q)的作用:在每次掃描周期的結尾,CPU將輸出過程映象寄存器中的數值復制到物理輸出點上。 B〉輸出過程映象寄存器(Q)的特點:①其常開、常閉觸點使用次數不受限制;② 可以按位、字節、字或雙字來存取輸出過程映象寄存器: 位:Q [字節地址] 。 [位地址] 如 Q1.1 字節、字或雙字:Q [長度] [起始字節地址] 如 QB5
3、全局變量存儲區(V)
A〉變量存儲區(V)的作用:用于存儲程序執行過程中控制邏輯操作的中間結果, 也可以用它來保存與工序或任務相關的其它數據。 B〉變量存儲區(V)的特點:①變量存儲器在全局有效,可以被所有的POU存取;② 可以按位、字節、字或雙字來存取V存儲區中的數據: 位:V [字節地址] 。 [位地址] 如 V10.2 字節、字或雙字:V [長度] [起始字節地址] 如 VW100
4、局部存儲器(L)
A〉局部存儲器(L)的作用:S7-200有64個字節的局部存儲器,其中60個可以用作臨時存儲器或者給子程序傳遞參數。 B〉局部存儲器(L)的特點:① S7--200給每個POU(程序組織單元)分配64個局部存儲器;②局部存儲器只在創建它的程序單元中有效,各程序不能訪問別的程序的局部變量存儲器。③ 局部存儲器在參數傳遞過程中不傳遞值,在分配時不被初始化,可能包含任意數值。 位:L [字節地址] 。 [位地址] 如 L0.0 字節、字或雙字:L [長度] [起始字節地址] 如 LB33
A〉模擬量輸入(AI)的作用:S7-200將輸入的模擬量值(如溫度或電壓)轉換成1個字長(16位)的數字量,并將其存入(AI)區占一個字長的地址中。 B〉模擬量輸入(AI)的作用:① 可以用區域標識符(AI)、數據長度(W)及字節的起始地址(必須用偶數字節地址如AIW0,AIW2,AIW4)來存取這些值。② 模擬量輸入值為只讀數據。 格式:AIW [起始字節地址] 如 AIW4
6、模擬量輸出(AQ)
A〉模擬量輸出(AQ)的作用:S7-200把1個字長(16位)數字值按比例轉換為相應大小的電流或電壓輸出。 B〉模擬量輸出(AQ)的特點:① 可以用區域標識符(AQ)、數據長度(W)及字節的起始地址(必須用偶數字節地址如AQW0,AQW2,AQW4)來改變這些值。② 模擬量輸出值是只寫數據。 格式:AQW [起始字節地址] 如 AQW4
7、定時器存儲區(T)
A〉定時器的作用:定時器可用于時間累計,S7-200 CPU中,有256個的定時器,其分辨率(時基增量)分為1ms、10ms和100ms三種。 B〉定時器有兩個變量:① 當前值——16位有符號整數,存儲定時器所累計的時間。② 定時器位——按照當前值和預置值的比較結果置位或者復位。 C〉定時器存儲區(T)的特點:① 可以用定時器地址(T+定時器號,如 T37、T3等)來存取當前值和定時器位數據。②位操作指令則是存取定時器位;如果使用字操作指令,則是存取定時器當前值。 格式:T [定時器號] 如 T24
8、計數器存儲區(C)
A〉計數器的作用:計數器可以用于累計其輸入端脈沖電平由低到高的次數。在S7-200 CPU中,有256個的計數器,分為三種類型—增計數;減計數;增/減計數。 B〉計數器有兩種變量:① 當前值——16位有符號整數,存儲累計值。② 計數器位——按照當前值和預置值的比較結果置位或者復位。 C〉計數器存儲區(C)的特點:① 可以用計數器地址(C+計數器號)來存取計數器的當前值和計數器位數據;② 使用位操作指令則是存取計數器位;如果使用字操作指令,則是存取計數器當前值。 格式:C [計數器號] 如 C24
9、高速計數器(HC)
A〉高速計數器(HC)的作用:用于對高速事件計數;S7-200 CPU222以上提供了6個高速計數器(HC0~HC5)供用戶使用。 B〉高速計數器(HC)的特點:① 它獨立于CPU的掃描周期;② 高速計數器的當前計數值(32位的有符號整數)是只讀數據,僅可以作為雙字(32位)來尋址;③用指定存儲器類型(HC)加上計數器號(如HC0)的尋址方式來存取高速計數器中的值; 格式:HC [高速計數器號] 如 HC1
10、累加器(AC)
A〉累加器(AC)的作用:累加器是可以象存儲器一樣使用的讀寫設備。例如,可以用它來向子程序傳遞參數,也可以從子程序返回參數,以及用來存儲計算的中間結果。S7--200提供4個32位累加器(AC0,AC1,AC2和AC3) 。 B〉累加器(AC)的特點:① 可以按字節、字或雙字的形式來存取累加器中的數值;② 被訪問的數據長度取決于存取累加器時所使用的指令。 格式:AC [累加器號] 如 AC0
11、特殊存儲器(SM)
A〉特殊存儲器(SM)的作用:SM位為CPU與用戶程序之間傳遞信息提供了一種手段。可以用這些位選擇和控制S7-200 CPU的一些特殊功能。 B〉特殊存儲器(SM)的特點:可以按位、字節、字或雙字來存取SM位:
位:SM [字節地址] 。 [位地址] 如 SM0.1 字節、字或者雙字:SM [長度] [起始字節地址] 如 SMB86
12、位存儲區(M)
A〉位存儲(M)的作用:可以用位存儲區作為控制繼電器來存儲中間操作狀態和控制信息。 B〉位存儲(M)的特點:可以按位、字節、字或雙字來存取位存儲區: 位:M [字節地址] 。 [位地址] 如 M26.7 字節、字或雙字:M [長度] [起始字節地址] 如 MD20
13、順控繼電器存儲器(S)
A〉順控繼電器(SCR)的作用:SCR提供控制程序的邏輯分段,用于組織設備的順序操作。 B〉順控繼電器存儲器(S)的特點:① 可用作順控編程元件與順序控制繼電器指令配合使用;② 或用作輔助繼電器,可按位、字節、字或雙字來存取S位。 位:S [字節地址] 。 [位地址] 如 S3.1 字節、字或者雙字:S [長度] [起始字節地址] 如 SB4
14、實數的格式
A〉實數及其應用:實數(浮點數)可以表示為1.m×2e(式中 m——尾數、e——指數),由32位單精度數表示,最高位為符號位,按照雙字長度來存取;借助浮點數,S7-200可以表示范圍在±1.175495×10-38~±3.402823×10+38內的任何一個數。 B〉實數的運算精度:對于S7--200來說,浮點數精確到小數點后第六位。
15、字符串的格式
字符串指的是一系列字符,每個字符以字節的形式存儲。字符串的第一個字節定義了字符串的長度,也就是字符的個數。一個字符串的長度可以是0到254個字符,再加上長度字節,一個字符串的最大長度為255個字節。而一個字符串常量的最大長度為126字節。
16、常數表示法及范圍
在S7--200的許多指令中,都可以使用常數值。常數值可以是字節、字或者雙字。S7--200以二進制數的形式存儲常數,也可以用十進制數、十六進制數、ASCII碼或者實數(浮點數)來表示。( 表3-2-3 常數表示法 )
17、CPU存儲器的范圍和特性
A〉S7-200 CPU存儲器的范圍:( 表3-2-4 S7-200 CPU存儲器的范圍與特性 ) B〉S7-200操作數范圍:( 表3-2-5 S7-200 CPU操作數的范圍 )
三、直接尋址和間接尋址
1、尋址的概念
在PLC中地址是訪問數據的依據,通過地址來訪問數據的過程稱為“尋址”。幾乎所有的指令和功能都與各種形式的尋址有關。
2、直接尋址
直接尋址即為指定了存儲器的區域、長度和位置的尋址方式,用于 一般的數字量控制系統的編程中。如 VW100表示存取VB100、VB101組成的兩個字。
3、用指針對S7-200存儲區間接尋址
A〉間接尋址:①間接尋址的概念——是指用指針來訪問存儲區數據。②指針作用及其特點:指針以雙字的形式存儲其它存儲區的地址,指針也可以作為參數傳遞到子程序中。只能用V存儲器、L存儲器或者累加器寄存器(AC1、AC2、AC3)作為指針。S7-200允許指針訪問以下存儲區:I、Q、V、M、S、AI、AQ、SMT(僅限于當前值)和C(僅限于當前值);但不能訪問單獨的位,也不能訪問HC或者L存儲區。 B〉建立間接尋址的指針:要建立一個指針,必須以雙字的形式,將需要間接尋址的存儲器地址移動到指針中;具體做法是用“&”符號加上要訪問的存儲區地址來建立一個指針。( “&”符號開頭表明指令的操作數是存儲區的地址,而不是將其內容。) C〉用指針存取數據:當指令中的操作數是指針時,應該在操作數前面加上“*”號。 D〉修改指針:由于指針是一個32位的數據,要用雙字指令來改變指針的數值;簡單的數學運算,如加法指令或者增加指令,可用于改變指針的數值。 E〉應用舉例——[例3-1]:用于非線性校正的表格的數據存放在VW0開始的100字中,表格的偏移量(表格中字的序號,第1個字的序號為0)在VD200中,在I0.0的上升沿,用間接尋址將表格中相對于偏移量的數據值傳送到VW210中去。 [提示]: 按照所訪問的數據長度使用不同的指令:當訪問字節時,使用增加指令使指針值加1;當訪問字或者計數器、定時器的當前值時,用加法或者增加指令使指針值加2;當訪問雙字時,使用加法或者增加指令使指針值加4。
審核編輯:郭婷
-
存儲器
+關注
關注
38文章
7455瀏覽量
163623 -
cpu
+關注
關注
68文章
10829瀏覽量
211194
原文標題:PLC中存儲器的數據類型與尋址方式
文章出處:【微信號:工控PLC學習,微信公眾號:工控PLC學習】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論