0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SMART200的數(shù)據(jù)類型和變量尋址方式

冬至子 ? 來(lái)源:亞控斯諾自動(dòng)化電氣設(shè)備 ? 作者:地貓子 ? 2023-06-26 15:16 ? 次閱讀

為什么要區(qū)分?jǐn)?shù)據(jù)類型

現(xiàn)實(shí)生活中我們可以隨意在紙上寫(xiě)出一串?dāng)?shù)字,并運(yùn)用小學(xué)學(xué)過(guò)的知識(shí)準(zhǔn)確識(shí)別出數(shù)字的大小。但在計(jì)算機(jī)中,受到機(jī)器運(yùn)算方式和存儲(chǔ)空間的限制,必須將數(shù)據(jù)分成不同的組織形式,以便進(jìn)行更高效的運(yùn)算,每種數(shù)據(jù)類型所占存儲(chǔ)空間不同,可表示的數(shù)值范圍也不同。

PLC編程需要認(rèn)識(shí)的基本數(shù)據(jù)類型

學(xué)習(xí)PLC編程需要熟知以下數(shù)據(jù)類型

圖片

按數(shù)據(jù)類型的所占存儲(chǔ)空間的大小進(jìn)行分類如下:

圖片

從上圖可以看出,除字符串?dāng)?shù)據(jù)類型,其他數(shù)據(jù)類型都是按照位的長(zhǎng)度來(lái)分類的。其實(shí)不論是什么數(shù)據(jù)類型,存儲(chǔ)后只要以二進(jìn)制的形式查看,都是1/8/16/32等二進(jìn)制位的0或1組合。

圖片

相同的二進(jìn)制數(shù)按照不同的規(guī)則解析,可以解析成不同類型的數(shù)據(jù),可表示的數(shù)據(jù)大小最終受限于所占用的存儲(chǔ)空間的大小。

PLC中的變量

PLC中變量的概念可以認(rèn)為是一個(gè)用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間,空間的內(nèi)容可變,所以稱為變量。

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

西門(mén)子PLC編程只需要指定出變量的存儲(chǔ)區(qū)類型,地址索引和長(zhǎng)度,而變量的類型(用哪種規(guī)則解析)是由具體調(diào)用的指令來(lái)和子程序的接口來(lái)定義的。

指令區(qū)分?jǐn)?shù)據(jù)類型,匹配相應(yīng)的變量長(zhǎng)度。例如ADD_I指令會(huì)將長(zhǎng)16位(2個(gè)字節(jié))的變量按整型來(lái)處理計(jì)算,ADD_DI指令會(huì)將長(zhǎng)32位(4個(gè)字節(jié))的變量按雙整型來(lái)處理計(jì)算,而ADD_R指令會(huì)將長(zhǎng)32位(4個(gè)字節(jié))的變量按浮點(diǎn)數(shù)來(lái)處理計(jì)算。

圖片

下圖左邊的子程序形參類型決定了實(shí)參變量的類型,在調(diào)用子程序時(shí),會(huì)按照形參定義的數(shù)據(jù)類型處理對(duì)應(yīng)長(zhǎng)度的變量。

圖片

變量的尋址

因?yàn)楦鞣N存儲(chǔ)空間已經(jīng)被劃分好,不需要再定義,那么我們?cè)鯓硬拍苷业竭@片存儲(chǔ)空間呢?這就是尋址的概念。西門(mén)子PLC的尋址方式分為兩種,直接尋址和間接尋址。直接尋址又可以分為兩種,絕對(duì)尋址和符號(hào)尋址。

圖片

直接尋址

PLC的數(shù)據(jù)存儲(chǔ)空間,這里總結(jié)出直接訪問(wèn)數(shù)據(jù)存儲(chǔ)空間的三個(gè)要素,存儲(chǔ)區(qū)類型,地址索引和長(zhǎng)度。

圖片

例如如果訪問(wèn)的是V0.0,其中V代表存儲(chǔ)器類型是V存儲(chǔ)器,0代表存儲(chǔ)器索引值,.0代表訪問(wèn)的長(zhǎng)度是1個(gè)位并且指出是第0個(gè)位。

例如如果訪問(wèn)的是VB1,其中V代表存儲(chǔ)器類型是V存儲(chǔ)器,1代表存儲(chǔ)器索引值,B代表訪問(wèn)的長(zhǎng)度是1個(gè)字節(jié)。

例如如果訪問(wèn)的是VW2,其中V代表存儲(chǔ)器類型是V存儲(chǔ)器,2代表存儲(chǔ)器索引值,W代表訪問(wèn)的長(zhǎng)度是1個(gè)字(2個(gè)字節(jié))。

例如如果訪問(wèn)的是VD4,其中V代表存儲(chǔ)器類型是V存儲(chǔ)器,4代表存儲(chǔ)器索引值,D代表訪問(wèn)的長(zhǎng)度是1個(gè)雙字(4個(gè)字節(jié))。

圖片

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

絕對(duì)尋址

絕對(duì)尋址直接指出存儲(chǔ)區(qū)類型,地址索引和訪問(wèn)長(zhǎng)度即可。

圖片

符號(hào)尋址

為絕對(duì)地址定義一個(gè)符號(hào),同時(shí)添加相應(yīng)的注釋。符號(hào)也是可以用來(lái)尋址的,即通過(guò)符號(hào)名稱找到對(duì)應(yīng)的地址,例如在編程時(shí)可以通過(guò)“瞬時(shí)流量1”這個(gè)符號(hào)名稱來(lái)找到VD6000這個(gè)地址。符號(hào)表中定義變量是不需要指定變量的數(shù)據(jù)類型的,而變量的類型(用哪種規(guī)則解析)是由具體調(diào)用的指令來(lái)和子程序的接口來(lái)確定的。其中地址的基本要素也是存儲(chǔ)區(qū)類型,地址索引和訪問(wèn)長(zhǎng)度。

圖片

在程序中直接使用符號(hào)名稱來(lái)指代某個(gè)變量,在定義符號(hào)表時(shí)已經(jīng)定義了數(shù)據(jù)存儲(chǔ)器的類型,地址索引和訪問(wèn)長(zhǎng)度。

圖片

直接尋址的兩種方式單獨(dú)顯示即同時(shí)顯示的切換方法如下

圖片

間接尋址

你可以將指針想象成一輛自動(dòng)取送貨的小車,變量是貨架上的一個(gè)個(gè)貨位,只需要將貨位號(hào)發(fā)給小車,小車就能找到這個(gè)位置來(lái)取送貨物。

圖片

間接尋址的過(guò)程是,首先定義一個(gè)指針變量,讓指針變量指向存儲(chǔ)區(qū)的純數(shù)值索引。再通過(guò)指針訪問(wèn)這個(gè)存儲(chǔ)區(qū),通過(guò)改變指針數(shù)值,指向另一個(gè)存儲(chǔ)區(qū),再訪問(wèn)另一個(gè)存儲(chǔ)區(qū)。

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

注意:修改指針值時(shí),切記調(diào)整所訪問(wèn)數(shù)據(jù)的大?。涸L問(wèn)字節(jié)時(shí),指針值加 1;訪問(wèn)定時(shí)器或計(jì)數(shù)器的字或當(dāng)前值時(shí),指針值加 2;訪問(wèn)雙字時(shí),指針值加 4。

哪些存儲(chǔ)區(qū)支持間接尋址

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

總結(jié)

直接尋址時(shí),絕對(duì)尋址和符號(hào)尋址這兩種方式本質(zhì)是三要素,一般在編程中,不需要監(jiān)視的臨時(shí)變量,中間過(guò)渡變量可以采用絕對(duì)尋址的方法來(lái)使用,需要監(jiān)視的變量更適合符號(hào)尋址,也方便調(diào)試監(jiān)控。而間接尋址更適合批量操作一定區(qū)域的變量,特別是與循環(huán)指令配合使用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119838
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7435

    瀏覽量

    163526
  • S7-200
    +關(guān)注

    關(guān)注

    13

    文章

    407

    瀏覽量

    50290
  • PLC編程
    +關(guān)注

    關(guān)注

    46

    文章

    246

    瀏覽量

    37338
  • 累加器
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    9436
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    西門(mén)子SMART200 PLC的遠(yuǎn)程下載方法

    本文將向大家介紹如何遠(yuǎn)程下載西門(mén)子SMART200的方法。
    發(fā)表于 09-02 10:02 ?4039次閱讀

    C語(yǔ)言中基本數(shù)據(jù)類型、變量和常量的使用

    C語(yǔ)言中基本數(shù)據(jù)類型變量和常量的使用
    發(fā)表于 08-18 16:42 ?2450次閱讀
    C語(yǔ)言中基本<b class='flag-5'>數(shù)據(jù)類型</b>、<b class='flag-5'>變量</b>和常量的使用

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型變量

    在C語(yǔ)言中,數(shù)據(jù)類型變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲(chǔ)范圍和操作方式,而
    的頭像 發(fā)表于 07-26 17:53 ?1863次閱讀
    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本<b class='flag-5'>數(shù)據(jù)類型</b>和<b class='flag-5'>變量</b>

    關(guān)于變量數(shù)據(jù)類型的問(wèn)題

    這些變量在初始化已經(jīng)定義過(guò)數(shù)據(jù)類型了,為什么編程時(shí)還要表明,有的又沒(méi)有標(biāo),怎么回事?用的芯片是2812
    發(fā)表于 06-03 09:36

    Verilog 變量聲明與數(shù)據(jù)類型

    Verilog 變量聲明與數(shù)據(jù)類型二上節(jié)介紹了wire,reg數(shù)據(jù)類型及其用法,并對(duì)變量定義中的向量的定義及使用做了說(shuō)明。本節(jié)主要介紹其它幾種類型
    發(fā)表于 08-06 09:21

    Verilog 變量聲明與數(shù)據(jù)類型

    Verilog 變量聲明與數(shù)據(jù)類型一Verilog語(yǔ)法中最基本的數(shù)據(jù)類型有 線網(wǎng)(wire),寄存器(reg)和整數(shù)(integer)三種類型,這三種
    發(fā)表于 08-10 14:01

    SMART200資料

    SMART200資料,感興趣的小伙伴們可以看看。
    發(fā)表于 07-26 10:26 ?0次下載

    vhdl數(shù)據(jù)類型

    VHDL中的標(biāo)識(shí)符可以是常數(shù)、變量、信號(hào)、端口、子程序或參數(shù)的名字。VHDL中的數(shù)據(jù)類型可以分成四大類: 標(biāo)量型(SCALAR TYPE):屬單元素的最基本的數(shù)據(jù)類型,通常用于描述一個(gè)單值數(shù)據(jù)
    發(fā)表于 03-30 15:59 ?11次下載

    python教程之變量和簡(jiǎn)單數(shù)據(jù)類型

    本文檔的主要內(nèi)容詳細(xì)介紹的是python教程之變量和簡(jiǎn)單數(shù)據(jù)類型
    發(fā)表于 04-26 08:00 ?7次下載
    python教程之<b class='flag-5'>變量</b>和簡(jiǎn)單<b class='flag-5'>數(shù)據(jù)類型</b>

    重視變量數(shù)據(jù)類型

    不管在什么語(yǔ)言中,定義一個(gè)變量時(shí)必然要在內(nèi)存中開(kāi)辟一個(gè)相應(yīng)大小的空間來(lái)存儲(chǔ)該變量。不同的數(shù)據(jù)類型在內(nèi)存所占的空間大小不同,其所能表示的數(shù)據(jù)范圍也不相同。在單片機(jī)C語(yǔ)言中,常用的基本
    發(fā)表于 01-13 15:05 ?1次下載
    重視<b class='flag-5'>變量</b>的<b class='flag-5'>數(shù)據(jù)類型</b>

    Profinet分布IO模塊與SMART200 PLC進(jìn)行數(shù)據(jù)采集

    Profinet分布IO模塊與SMART200 PLC進(jìn)行數(shù)據(jù)采集
    的頭像 發(fā)表于 01-03 16:21 ?1799次閱讀
    Profinet分布IO模塊與<b class='flag-5'>SMART200</b> PLC進(jìn)行<b class='flag-5'>數(shù)據(jù)</b>采集

    西門(mén)子SMART200為什么要加信號(hào)板電源呢?

    SMART200加了信號(hào)板電源,影響端口0走不了485通訊
    的頭像 發(fā)表于 02-16 09:42 ?1048次閱讀

    一文輕松學(xué)會(huì)西門(mén)子Slice方式變量尋址

    【導(dǎo)讀】博途中不但變量數(shù)據(jù)類型的隱式轉(zhuǎn)換很好用,而且對(duì)于變量的Slice(直譯:片或部分)尋址也很方便,下面就來(lái)說(shuō)下S7-1200/1500如何以用Slice
    的頭像 發(fā)表于 04-07 10:58 ?2496次閱讀

    MATLAB變量數(shù)據(jù)類型的基本介紹

    在MATLAB中,變量數(shù)據(jù)類型是非常重要的概念。
    的頭像 發(fā)表于 07-05 09:44 ?1740次閱讀

    ARRAY 數(shù)據(jù)類型變量

    要求 全局數(shù)據(jù)塊已打開(kāi)。 操作步驟 要聲明一個(gè) ARRAY 數(shù)據(jù)類型變量,請(qǐng)按以下步驟操作: 在“名稱”(Name) 列中,輸入變量的名稱。 在“
    的頭像 發(fā)表于 07-06 11:08 ?1028次閱讀