歡迎光臨
每天分享高質量文章

西門子S7-1200——資料型別


點選 《福利來了!PLC的資料(免費),你要嗎?

點選第二波福利來了!PLC的資料(免費),你要嗎?

資料型別用於指定資料元素的大小以及如何解釋資料。
每個指令引數至少支援一種資料型別,而有些引數支援多種資料型別。
將游標停在指令的引數域上方,便可看到給定引數所支援的資料型別。
形參指的是指令上標記該指令要使用的資料位置的識別符號(例如: ADD 指令的IN1輸入)。
引數指的是包含指令要使用的資料的儲存單元(含“%”字元字首)或常量(例如,%MD400 “Number_of_Widgets”)。
使用者指定的引數的資料型別必須與指令指定的形參所支援的資料型別之一匹配。
指定引數時,必須指定變數(符號)或者絕對(直接)儲存器地址。
變數將符號名(變數名)與資料型別、儲存區、儲存器偏移量和註釋關聯在一起,並且可以在 PLC 變數編輯器或塊(OB、FC、FB 和 DB)的介面編輯器中進行建立。
如果輸入一個沒有關聯變數的絕對地址,使用的地址大小必須與所支援的資料型別相匹配,而預設變數將在輸入時建立。
除 String、Struct、Array 和 DTL 外,所有資料型別都可在 PLC變數編輯器和塊介面編輯器中使用。 String、Struct、Array 和 DTL只能在塊介面編輯器中使用。 還可以為許多輸入引數輸入常數值。

● 位和位序列: Bool(布林值或位值)、Byte(8 位位元組值)、Word(16位值)、DWord(32 位雙字值)
● 整型 
– USInt(無符號 8 位整數)、SInt(有符號 8 位整數)、
– UInt(無符號 16 位整數)、Int(有符號 16 位整數)
– UDInt(無符號 32 位整數)、DInt(有符號 32 位整數)
● 浮點實數 : Real(32 位實數值或浮點值)、LReal(64位實數值或浮點值)
● 時間和日期 : Time(32 位 IEC 時間值)、Date(16位日期值)、TOD(32 位時鐘值)、DTL(12 位日期和時間結構)
● 字元和字串 : Char(8 位單字元)、String(最長 254個字元的可變長度字串)
● 陣列 
● 資料結構 : Struct
● PLC 資料型別
● 指標: Pointer、Any、Variant

儘管 BCD 數字格式不能用作資料型別,但它們受轉換指令支援。

Bool、Byte、Word 和 DWord 資料型別

整數資料型別

浮點型實數資料型別

如 ANSI/IEEE 754-1985 標準所述,實(或浮點)數以 32 位單精度數 (Real)或 64位雙精度數 (LReal) 表示。 單精度浮點數的精度最高為 6位有效數字,而雙精度浮點數的精度最高為 15 位有效數字。
在輸入浮點常數時,最多可以指定 6 位 (Real) 或 15 位 (LReal) 有效數字來保持精度。

計算涉及到包含非常大和非常小數字的一長串數值時,計算結果可能不準確。
如果數字相差 10 的 x 次方,其中 x > 6 (Real) 或 15 (LReal),則會發生上述情況。 例如(Real): 100 000 000 + 1 = 100 000 000.

時間和日期資料型別

TIME 資料作為有符號雙整數儲存,被解釋為毫秒。 編輯器格式可以使用日期(d)、小時(h)、分鐘 (m)、秒 (s) 和毫秒 (ms) 資訊。
不需要指定全部時間單位。 例如,T#5h10s 和 500h 均有效。
所有指定單位值的組合值不能超過以毫秒錶示的時間日期型別的上限或下限(-2,147,483,648 ms 到 +2,147,483,647 ms)。
DATE 資料作為無符號整數值儲存,被解釋為新增到基礎日期 1990 年 1 月 1日的天數,用以獲取指定日期。 編輯器格式必須指定年、月和日。

TOD (TIME_OF_DAY)
資料作為無符號雙整數值儲存,被解釋為自指定日期的凌晨算起的毫秒數(凌晨 = 0ms)。 必須指定小時(24 小時/天)、分鐘和秒。 可以選擇指定小數秒格式。

DTL(日期和時間長型)資料型別使用 12 個位元組的結構儲存日期和時間資訊。可以在塊的臨時儲存器或者 DB 中定義 DTL 資料。 必須在 DB 編輯器的“起始值”(Start value) 列為所有元件輸入一個值。

DTL 的每一部分均包含不同的資料型別和值範圍。指定值的資料型別必須與相應部分的資料型別相一致。

1 年-月-日:時:分:秒.納秒格式中不包括星期。


字元和字串資料型別

Char 在儲存器中佔一個位元組,可以儲存以 ASCII 格式(包括擴充套件 ASCII字元程式碼)編碼的單個字元。

 WChar在儲存器中佔一個字的空間,可包含任意雙位元組字元表示形式。
編輯器語法在字元的前面和後面各使用一個單引號字元。可以使用可見字元和控制字元。

String資料型別包含總字元數(字串中的字元數)和當前字元數。 String 型別提供了多達 256個位元組,用於在字串中儲存最大總字元數(1 個位元組)、當前字元數(1個位元組)以及最多 254 個位元組。 String 資料型別中的每個位元組都可以是從 16#00 到16#FF 的任意值。

WString 資料型別支援單字(雙位元組)值的較長字串。
第一個字包含最大總字元數;下一個字包含總字元數,接下來的字串可包含多達 65534個字。 WString 資料型別中的每個字都可以是從 16#0000 到16#FFFF 的任意值。

可從資料型別下拉串列中選擇一種資料型別,輸入關鍵字“String”或“WString”,然後在方括號中以位元組 (String) 或字 (WString) 為單位指定最大字串大小。
例如,“MyString String[10]”指定 MyString 的最大長度為 10 個位元組。
如果不包含帶有最大長度的方括號,則假定字串的最大長度為 254 並假定WString的最大長度為 65534。 “MyWString WString[1000]”可指定一個 1000 字的 WString。
以下示例定義了一個最大字元數為 10 而當前字元數為 3 的 String。這表示該String當前包含 3 個單位元組字元,但可以擴充套件到包含最多 10 個單位元組字元。

以下示例定義了一個最大字元數為 500 而當前字元數為 300 的 WString。這表示該String 當前包含 300 個單字字元,但可以擴充套件到包含最多 500 個單字字元。

ASCII 控制字元可用於 Char、Wchar、String 和 WString 資料中。下表給出了控制字元語法的示例。

陣列資料型別

可以建立包含多個相同資料型別元素的陣列。 陣列可以在 OB、FC、FB 和 DB的塊介面編輯器中建立。 無法在 PLC 變數編輯器中建立陣列。
要在塊介面編輯器中建立陣列,請為陣列命名並選擇資料型別“Array [lo .. hi] of
type”,然後根據如下說明編輯“lo”、“hi”和“type”:
● lo – 陣列的起始(最低)下標
● hi – 陣列的結束(最高)下標
● type – 資料型別之一,例如 BOOL、SINT、UDINT

資料結構資料型別

可以用資料型別“Struct”來定義包含其它資料型別的資料結構。 Struct資料型別可用來以單個資料單元方式處理一組相關過程資料。
在資料塊編輯器或塊介面編輯器中命名 Struct 資料型別並宣告內部資料結構。
陣列和結構還可以集中到更大結構中。 一套結構可巢狀八層。
例如,可以建立包含陣列的多個結構組成的結構。

PLC 資料型別

PLC 資料型別可用來定義可以在程式中多次使用的資料結構。
可以透過開啟專案樹的“PLC 資料型別”分支並雙擊“新增新資料型別”項來建立PLC資料型別。 在新建立的 PLC 資料型別項上,兩次單擊可重新命名預設名稱,雙擊則會開啟PLC 資料型別編輯器。
可使用在資料塊編輯器中的相同編輯方法建立自定義 PLC 資料型別結構。為任何必要的資料型別新增新的行,以建立所需資料結構。
如果建立新的 PLC 資料型別,則該新 PLC 型別名稱將出現在 DB編輯器和程式碼塊介面編輯器的資料型別選擇器下拉串列中。

PLC 資料型別的可能應用:

● 可將 PLC 資料型別直接用作程式碼塊介面或資料塊中的資料型別。
● PLC 資料型別可用作模板,以建立多個使用相同資料結構的全域性資料塊。

例如,PLC 資料型別可能是混合顏色的配方。 使用者可以將該 PLC資料型別分配給多個資料塊。 之後,每個資料塊都會調節變數,以建立特定顏色。

指標資料型別

指標資料型別(Pointer、Any 和 Variant)可用於 FB 和 FC 程式碼塊的塊介面表中。可以從塊介面資料型別下拉串列中選擇指標資料型別。還可以將 Variant 資料型別用作指令引數。

可以輸入沒有字首 (P #) 的 Pointer 型別的引數。 您的輸入將自動轉換為指標格式。

指標無法檢測 ANY 結構。 只能將其分配給區域性變數。

ANY 指標中的資料型別編碼

ANY 指標中的儲存區編碼:

訪問一個變數資料型別的“片段”

可以根據大小按位、位元組、或字級別訪問 PLC 變數和資料塊變數。
訪問此類資料片段的語法如下所示:
● ““.xn(按位訪問)
● ““.bn(按位元組訪問)
● ““.wn(按字訪問)
● “”..xn(按訪問)
● “”..bn(按位元組訪問)
● “”..wn(按字訪問)
雙字大小的變數可按位 0 – 31、位元組 0 – 3 或字 0 – 1 訪問。一個字大小的的變數可按位 0- 15、位元組 0 – 1 或字 0 訪問。位元組大小的變數則可按位 0 – 7 或位元組 0訪問。當預期運算元為位、位元組或字時,則可使用位、位元組和字片段訪問方式。

訪問帶有一個 AT 改寫的變數

藉助 AT變數改寫,可透過一個不同資料型別的改寫宣告訪問標準訪問塊中已宣告的變數。
例如,可以透過 Array of Bool 定址資料型別為 Byte、Word 或 DWord 變數的各個位。

準則
● 只能改寫可標準(未最佳化)訪問的 FB 和 FC 塊中的變數。
● 可以改寫所有型別和所有宣告部分的變數。
● 可以同使用其它塊引數一樣使用改寫後的引數。
● 不能改寫 VARIANT 型別的引數。
● 改寫引數的大小必須小於等於被改寫的引數。
● 必須在改寫變數並選擇關鍵字“AT”作為初始資料型別後立即宣告改寫變數。

尋找同路人

做自動化工業變革的踐行者


可透過選單查詢自己喜歡的文章彙總:

現場儀錶DCS部分PLC部分SIS部分通訊標準數字化問題解答】此處列出部分連結,更多文章透過選單獲取。



贊(0)

分享創造快樂