西門子S7-1200數(shù)據(jù)類型詳解
數(shù)據(jù)類型用來描述數(shù)據(jù)的長度和屬性,即用于數(shù)據(jù)元素的大小及如何解釋數(shù)據(jù),每個指令至少支持一個數(shù)據(jù)類型,而部分指令支持多種數(shù)據(jù)類型;因此指令上使用的操作數(shù)的數(shù)據(jù)類型必須和指令所支持的數(shù)據(jù)類型一致,所以在建立變量的過程中,我們需要對建立的變量分配相應(yīng)的數(shù)據(jù)類型
在TIA Portal中設(shè)計程序時,用于建立變量的區(qū)域有:變量表、DB塊、FB塊、FC塊、OB塊的接口區(qū),但并不是所有數(shù)據(jù)類型對應(yīng)的變量表都可以在這些區(qū)域中建立
S7-1200PLC中所支持的數(shù)據(jù)類型分為基本的數(shù)據(jù)類型、復(fù)雜的數(shù)據(jù)類型、參數(shù)數(shù)據(jù)類型、系統(tǒng)數(shù)據(jù)類型、硬件數(shù)據(jù)類型及用戶自定義數(shù)據(jù)類型
基本數(shù)據(jù)類型:是PLC編程中
常用的數(shù)據(jù)類型,通常把占用存儲空間64個二進(jìn)制位以下的數(shù)據(jù)類型稱為基本的數(shù)據(jù)類型。包括位、位系列、整數(shù)、浮點數(shù)、日期&時間、字符
1、無符號整數(shù)型:位(BOOL)字節(jié)(BYTE)字(WORD)雙字(DWORD)及字符(CHAR)
2、整數(shù)數(shù)據(jù)類型:整數(shù)類型有有符號整數(shù)和無符號整數(shù)。
有符號整數(shù):短整數(shù)型(SInt),整數(shù)型(Int)和雙整數(shù)型(DInt)
無符號整數(shù):無符號短整數(shù)型(USInt),無符號整數(shù)型(UInt)、無符號雙整數(shù)型(UDInt)
基本數(shù)據(jù)類型的存儲格式
所有整數(shù)的數(shù)據(jù)類型表示符號都有INT,符號帶S的表示短整數(shù)型,帶D的表示雙整數(shù)型,帶U的表示無符號整數(shù),符號中不帶S或D的表示整型,不帶U的表示有符號整數(shù)型
整數(shù)有正整數(shù)和負(fù)整數(shù),整數(shù)存儲器中的為表示符號位,為0表示正整數(shù),位為則1表示負(fù)整數(shù)
如:數(shù)值5和-5分別存在MB100中,MB100的數(shù)據(jù)類型為SINT
實數(shù)的存儲格式
實數(shù)又稱為浮點數(shù),有單精度(32位)浮點數(shù)和雙精度(64位)浮點數(shù);單、雙精度浮點數(shù)在表示方式除了存儲空間不一樣之外,存儲方式都是一樣的
32位單精度浮點數(shù)中,高位為浮點數(shù)的符號位,正浮點數(shù)為0 ,負(fù)浮點數(shù)為1
時間和日期的數(shù)據(jù)類型
時間數(shù)據(jù)類型 TIME主要用于定時器的設(shè)置,為32位的有符號的雙整數(shù),其單位為MS
日期數(shù)據(jù)類型DATA用于日期,為16位的無符號整數(shù)
DTL數(shù)據(jù)類型使用12個字節(jié)的結(jié)構(gòu)來保存日期和時間信息,12個字節(jié)中含年、月、日、星期、時、分、秒和納秒。主要用于對系統(tǒng)時鐘的設(shè)置和讀取;DTL的每一部分均含有不同的數(shù)據(jù)類型和取值范圍,值的數(shù)據(jù)類型必須與相應(yīng)的數(shù)據(jù)類型一致。可在全局?jǐn)?shù)據(jù)塊或塊的接口區(qū)定義,不能在變量表中定義。DTL數(shù)據(jù)類型的存儲格式如圖所示:
字符和字符串?dāng)?shù)據(jù)類型
字符和字符串可在全局?jǐn)?shù)據(jù)塊或塊的接口區(qū)定義,不能在變量表中定義。
Char(8位字符)存儲器中占用一個字節(jié),可以存儲器以ASCII格式編碼的單個字符,Wchar(16位字符)在存儲器中占用一個字的空間,可包含任意字符表示形式。
String(字符串)數(shù)據(jù)類型存儲一串單字節(jié)字符, String提供了多大256個字節(jié),前兩個字節(jié)分別表示字節(jié)中
大的字符數(shù)和當(dāng)前的字符數(shù),定義字符串的大長度可以減少它的占用存儲空間
Wsting數(shù)據(jù)類型與sting數(shù)據(jù)類型接近,支持單字值的較長字符串,第個字包含大總字符數(shù),下一個字包含的是當(dāng)前的總字符數(shù),接下來的字符串可含
多65534個字
數(shù)組數(shù)據(jù)類型(ARRAY)
數(shù)組數(shù)據(jù)類型(ARRAY)是有數(shù)量固定且多個相同數(shù)據(jù)類型的多個元素組成;ARRAY類型可以在DB、OB/FC/FB接口區(qū)、PLC數(shù)據(jù)類型處定義;無法在PLC變量表中定義。
數(shù)組格式為:Array[lo..hi]of type.其中l(wèi)o表示的是low,hi表示high為數(shù)組元素編號的下標(biāo)和上標(biāo)。取值范圍為[-32768--32767] type為基本數(shù)據(jù)類型
結(jié)構(gòu)數(shù)據(jù)類型(Struct)
結(jié)構(gòu)數(shù)據(jù)類型(Struct)是一種由書目的數(shù)據(jù)元素且不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜數(shù)據(jù)類型以及PLC數(shù)據(jù)類型(UDT)等。
Struct類型嵌套Struct類型的深度限制為 8 級,Struct類型的變量在程序中可作為一個變量整體,也可單獨(dú)使用組成該Struct的元素。Struct 類型可以在DB、OB/FC/FB接口區(qū)、PLC數(shù)據(jù)類型(UDT) 處定義使用。
訪問方式如下
Variant 數(shù)據(jù)類型
Variant類型是一個參數(shù)數(shù)據(jù)類型,只能出現(xiàn)在除FB的靜態(tài)變量以外的OB/FC/FB接口區(qū)。
Variant類型的實參是一個可以指向不同數(shù)據(jù)類型變量的指針。它可以指向基本數(shù)據(jù)類型,也可以指向復(fù)雜數(shù)據(jù)類型、UDT等。
Variant 數(shù)據(jù)類型的操作數(shù)不占用背景數(shù)據(jù)塊或工作存儲器中的空間,但是將占用 CPU 上的裝載存儲器的存儲空間,該變量只能在塊的接口參數(shù)中建立
調(diào)用某個塊時,可以將該塊的Variant參數(shù)連接任何數(shù)據(jù)類型的變量。除了傳遞變量的指針外,還會傳遞變量的類型信息。該塊中可以利用Variant的相關(guān)指令,將其識別出并進(jìn)行處理。
PLC數(shù)據(jù)類型(UDT)
UDT類型是一種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),元素可以是基本數(shù)據(jù)類型,也可以是STRUCT、數(shù)組等復(fù)雜數(shù)據(jù)類型以及其它UDT等。UD類型嵌套UDT類型的深度限制為 8 級。
UDT類型可以在DB、OB/FC/FB接口區(qū)處使用。PLC變量表中的I和Q也可以使用UDT類型。
UDT類型可在程序中統(tǒng)一更改和重復(fù)使用,一旦某UDT類型發(fā)生修改,執(zhí)行軟件全部編譯可以自動更新所有使用該數(shù)據(jù)類型的變量。
定義為UDT類型的變量在程序中可作為一個變量整體使用,也可單獨(dú)使用組成該變量的元素。此外還可以在新建DB塊時,直接創(chuàng)建UDT類型的DB,該DB只包含一個UDT類型的變量。
UDT類型作為整體使用時,可以與Variant、DB_ANY類型及相關(guān)指令默契配合。UDT是Struct類型的升級替代,功能基本*兼容Struct類型
1、點擊CPU菜單下,PLC數(shù)據(jù)類型中的“添加新數(shù)據(jù)類型”按鈕
2、在彈出頁面可以添加需要的變量、類型、起始值、注釋等
往期精彩內(nèi)容:
S7-1200程序塊之組織塊介紹
S7-1200MC 卡的使用
S7-1200程序塊之DB塊