娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

SMART200的數據類型和變量尋址方式

發布者:Lianai最新更新時間:2024-08-27 來源: elecfans關鍵字:SMART200  數據類型  變量  尋址方式 手機看文章 掃描二維碼
隨時隨地手機看文章

為什么要區分數據類型

現實生活中我們可以隨意在紙上寫出一串數字,并運用小學學過的知識準確識別出數字的大小。但在計算機中,受到機器運算方式和存儲空間的限制,必須將數據分成不同的組織形式,以便進行更高效的運算,每種數據類型所占存儲空間不同,可表示的數值范圍也不同。

PLC編程需要認識的基本數據類型

學習PLC編程需要熟知以下數據類型

圖片

按數據類型的所占存儲空間的大小進行分類如下:

圖片

從上圖可以看出,除字符串數據類型,其他數據類型都是按照位的長度來分類的。其實不論是什么數據類型,存儲后只要以二進制的形式查看,都是1/8/16/32等二進制位的0或1組合。

圖片

相同的二進制數按照不同的規則解析,可以解析成不同類型的數據,可表示的數據大小最終受限于所占用的存儲空間的大小。

PLC中的變量

PLC中變量的概念可以認為是一個用于存儲數據的存儲空間,空間的內容可變,所以稱為變量。

由于PLC的數據存儲器已經被明確劃分好了種類和范圍,我們可以直接使用這些明確的存儲區而不需要像計算機編程那樣先聲明一個某類型的變量再在后面的程序中使用。

西門子PLC編程只需要指定出變量的存儲區類型,地址索引和長度,而變量的類型(用哪種規則解析)是由具體調用的指令來和子程序的接口來定義的。

指令區分數據類型,匹配相應的變量長度。例如ADD_I指令會將長16位(2個字節)的變量按整型來處理計算,ADD_DI指令會將長32位(4個字節)的變量按雙整型來處理計算,而ADD_R指令會將長32位(4個字節)的變量按浮點數來處理計算。

圖片

下圖左邊的子程序形參類型決定了實參變量的類型,在調用子程序時,會按照形參定義的數據類型處理對應長度的變量。

圖片

變量的尋址

因為各種存儲空間已經被劃分好,不需要再定義,那么我們怎樣才能找到這片存儲空間呢?這就是尋址的概念。西門子PLC的尋址方式分為兩種,直接尋址和間接尋址。直接尋址又可以分為兩種,絕對尋址和符號尋址。

圖片

直接尋址

PLC的數據存儲空間,這里總結出直接訪問數據存儲空間的三個要素,存儲區類型,地址索引和長度。

圖片

例如如果訪問的是V0.0,其中V代表存儲器類型是V存儲器,0代表存儲器索引值,.0代表訪問的長度是1個位并且指出是第0個位。

例如如果訪問的是VB1,其中V代表存儲器類型是V存儲器,1代表存儲器索引值,B代表訪問的長度是1個字節。

例如如果訪問的是VW2,其中V代表存儲器類型是V存儲器,2代表存儲器索引值,W代表訪問的長度是1個字(2個字節)。

例如如果訪問的是VD4,其中V代表存儲器類型是V存儲器,4代表存儲器索引值,D代表訪問的長度是1個雙字(4個字節)。

圖片

如果訪問的是VD0,,其中V代表存儲器類型是V存儲器,0代表存儲器索引值,D代表訪問的長度是1個雙字(4個字節),這次訪問包含了V0.0-V3.7共32個位區域,VB0-VB3共4個字節區域,VW0-VW2共2個字區域。

絕對尋址

絕對尋址直接指出存儲區類型,地址索引和訪問長度即可。

圖片

符號尋址

為絕對地址定義一個符號,同時添加相應的注釋。符號也是可以用來尋址的,即通過符號名稱找到對應的地址,例如在編程時可以通過“瞬時流量1”這個符號名稱來找到VD6000這個地址。符號表中定義變量是不需要指定變量的數據類型的,而變量的類型(用哪種規則解析)是由具體調用的指令來和子程序的接口來確定的。其中地址的基本要素也是存儲區類型,地址索引和訪問長度。

圖片

在程序中直接使用符號名稱來指代某個變量,在定義符號表時已經定義了數據存儲器的類型,地址索引和訪問長度。

圖片

直接尋址的兩種方式單獨顯示即同時顯示的切換方法如下

圖片

間接尋址

你可以將指針想象成一輛自動取送貨的小車,變量是貨架上的一個個貨位,只需要將貨位號發給小車,小車就能找到這個位置來取送貨物。

圖片

間接尋址的過程是,首先定義一個指針變量,讓指針變量指向存儲區的純數值索引。再通過指針訪問這個存儲區,通過改變指針數值,指向另一個存儲區,再訪問另一個存儲區。

指針是包含另一個存儲位置地址的雙字存儲位置。只能將 V 存儲位置、L 存儲位置或累加器寄存器(AC1、AC2、AC3)用作指針。要創建指針,必須使用“移動雙字”指令,將間接尋址的存儲位置地址移至指針位置。指針還可以作為參數傳遞至子程序。

注意:修改指針值時,切記調整所訪問數據的大小:訪問字節時,指針值加 1;訪問定時器或計數器的字或當前值時,指針值加 2;訪問雙字時,指針值加 4。

哪些存儲區支持間接尋址

S7-200 SMART 允許指針訪問下列存儲區:I、Q、V、M、S、T(僅限當前值)、C(僅限當前值)、SM、AI 和 AQ。單個位或訪問 HC、L 或 AC 存儲區不支持間接尋址訪問。


總結

直接尋址時,絕對尋址和符號尋址這兩種方式本質是三要素,一般在編程中,不需要監視的臨時變量,中間過渡變量可以采用絕對尋址的方法來使用,需要監視的變量更適合符號尋址,也方便調試監控。而間接尋址更適合批量操作一定區域的變量,特別是與循環指令配合使用。


關鍵字:SMART200  數據類型  變量  尋址方式 引用地址:SMART200的數據類型和變量尋址方式

上一篇:如何判斷電機散熱是否正常
下一篇:變頻器PID功能的使用

推薦閱讀最新更新時間:2025-06-03 12:57

ARM微處理器的9種尋址方式
尋址方式是根據指令中給出的地址碼字段來實現尋找真實操作數地址的方式。 ARM處理器具有9種基本尋址方式: 1.寄存器尋址; 2.立即尋址; 3.寄存器移位尋址; 4.寄存器間接尋址; 5.基址尋址; 6.多寄存器尋址; 7.堆棧尋址; 8.塊拷貝尋址; 9.相對尋址。 1,尋址方式分類 立即尋址 立即尋址指令中的操作碼字段后面的地址碼部分即是操作數本身,也就是說,數據就包含在指令當中,取出指令也就取出了可以立即使用的操作數(這樣的數稱為立即數)。立即尋址指令舉例如下: SUBS R0,R0,#1 ;R0減1,結果放入R0,并且影響標志位 MOV R0,#0xFF000 ;將立即數0xFF000裝入R0寄存器
[單片機]
PIC讀書筆記3:++運算符、數據類型與乘法、浮點數操作
1:++、--操作符很智能,如果變量類型是整數,那么就是加1或者減1。但是如果是指針變量,那么增量就是指針變量的字節數。例如,對于表示16位整型數的指針,增量就是2,對于表示32為長整型數指針,增量就是4. 2:對于16位算數邏輯單元(ALU),對于32位的乘法實際上是通過執行16位數乘法運算和加法運算來實現的(復雜并且耗時)。 3:對于沒有硬件浮點數單元(FPU)來說,對所有的浮點數操作都必須右邊一起使用浮點算數運算庫來編譯處理,而算數運算哭的大小和復雜度比任何整數運算庫都要大的多,因此使用浮點數就應考慮到性能的損失。
[單片機]
KUKA的$PRO_IP變量簡析
其中包含引用解釋器的進程指針的數據. 變量包含接下來將在解釋器中執行的塊的數據。 根據特定的解釋器,訪問數據的方式如下: 讀取程序中的變量是指機器人在解釋器中的狀態。 在提交程序中讀取變量是指關聯的提交解釋器的狀態。 通過變量校正函數讀取/寫入變量是指$INTERPRETER的當前值。 $INTERPRETER的可能值取決于機器人控制器所處的提交模式。 機器人控制器處于單次提交模式(默認操作模式): 0:提交解釋器 1:機器人翻譯 多提交模式下的機器人控制器(僅適用于KUKA系統軟件8.3及更高版本): 1:機器人解釋器 2:系統提交解釋器 3:擴展提交解釋器1 4:擴展
[機器人]
arm 變量或數組放置在指定地址
語法 __attribute__((at(address))) 其中: address 是所需的變量地址。 限制 鏈接器并非始終能夠放置 at 變量屬性生成的節。 錯誤 如果無法將節放置在指定地址,鏈接器將顯示一條錯誤消息。 示例 const int x1 __attribute__((at(0x10000))) = 10; int x2 __attribute__((at(0x12000))) = 10; int x3 __attribute__((at(0x14000))) = 0; int x4 __attrib
[單片機]
小廣播
最新嵌入式文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 平阳县| 合肥市| 顺平县| 九龙坡区| 许昌市| 中阳县| 莆田市| 桑日县| 馆陶县| 衡水市| 东辽县| 宜章县| 金堂县| 翼城县| 苏尼特左旗| 屯门区| 房产| 广安市| 广昌县| 承德县| 宜君县| 英山县| 锦州市| 房产| 清水河县| 枣阳市| 高唐县| 正定县| 汕头市| 饶河县| 拉萨市| 天全县| 苏州市| 德昌县| 四平市| 汝阳县| 柞水县| 余姚市| 乌兰县| 泗阳县| 梅州市|