在開始本次分享之前,先聲明幾個我們控制中常用的幾個概念特別是字節和位的概念:
計算機/PLC處理器中不能直接識別數字,只能識別二進制數字即0,1碼;
位:Bit,PLC程序中Zui小的數據單位;
字節:Byte,1個字節由8個位組成;
字:Word ,2個字節,16個位組成;(列舉常用的,下面有詳細解釋)
浮點數/實數:float或Real,4個字節,32個位組成
所有整數數據的Zui大值(無符號)計算即2的位次方-1,例如:位:2^1^-1=1; 字:2^16^-1=65535
對于有符號(即正負數)整數,Zui高位代表符號位,當Zui高位為1時代表負數;以有符號整數int為例:Zui小值=-(2^15^)=-32768,Zui大值=2^15^-1=32767**(為什么不是-32767~+32767是因為+0,-0的存在,人為規定Zui小值是-32768)**
一 | 基本數據類型 |
基本數據類型:包括位、位序列、整數、浮點數、日期時間。此外字符也屬于基本數據類型
位和位序列
注意:雖然位序列有數值表示方式,但一般不直接用于數學運算。通常在控制字、狀態字、錯誤代碼、標志字、狀態位集合等處使用位序列。而數學運算使用下面的整數數據類型與浮點數數據類型。
整數數據類型
1 | 布爾運算 | FALSE 或者 TRUE | TRUE | I1.0 Q0.1 M50.7 DB1.DBX2.3 Tag_name |
二進制 | 2#0 或 2#1 | 2#0 | ||
無符號整數 | 0 或 1 | 1 | ||
八進制 | 8#0 或 8#1 | 8#1 | ||
十六進制 | 16#0 或 16#1 | 16#1 |
8 | 0 到 255 | 78、2#01001110 | MB0 DB1.DBB4 Tag_name |
8 | -128 到 127 | +50、16#50 | |
16 | 0 到 65535 | 65295、0 | MW2 DB1.DBW2 Tag_name |
16 | -32768 到 32767 | 30000、+30000 | |
32 | 0 到 4_294_967_295 | 4042322160 | MD6 DB1.DBD8 Tag_name |
32 | -2_147_483_648 到 2_147_483_647 | -2131754992 |
浮點型實數數據類型
如 ANSI/IEEE 754-1985 標準所述,實(或浮點)數以 32 位單精度數 (Real) 或 64 位雙精度數 (LReal) 表示。 單精度浮點數的精度Zui高為 6 位有效數字,
而雙精度浮點數的精度Zui高為 15 位有效數字。在輸入浮點常數時,Zui多可以指定 6 位 (Real) 或 15 位 (LReal) 有效數字來保持精度。
32 | -3.402823e+38 到 -1.175495e-38、±0、+1.175 495e-38 到 +3.402823e+38 | 123.456、-3.4、1.0e-5 | MD100 DB1.DBD8 Tag_name |
64 | -1.7976931348623158e+308 到 -2.2250738585072014e-308、 ±0、 +2.2250738585072014e-308 到 +1.7976931348623158e+308 | 12345.123456789e40、1.2E+40 | DB_name.var_name |
時間和日期數據類型
TIME 數據作為有符號雙整數存儲,基本單位為毫秒。存儲的數值是多少,就代表有多少 ms。 編輯時可以選擇性使用天 (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) 數據作為無符號雙整數值存儲,被解釋為自指定日期的凌晨算起的毫秒數(凌晨 = 0 ms)。 必須指定小時(24 小時/天)、分鐘和秒。 可以選擇指定小數秒格式。
32 | T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms 存儲形式: -2,147,483,648 ms 到 +2,147,483,647 ms | T#5m_30s T#1d_2h_15m_30s_45ms TIME#10d20h30m20s630ms 500h10000ms 10d20h30m20s630ms |
16 | D#1990-1-1 到 D#2168-12-31 | D#2009-12-31 DATE#2009-12-31 2009-12-31 |
32 | TOD#0:0:0.0 到 TOD#23:59:59.999 | TOD#10:20:30.400 TIME_OF_DAY#10:20:30.400 23:10:1 |
二 | 結構數據類型(Struct) |
Struct類型是一種由多個不同數據類型元素組成的數據結構,其元素可以是基本數據類型,也可以是Struct、數組等復雜數據類型以及PLC數據類型(UDT)等。Struct類型嵌套Struct類型的深度限制為 8 級。Struct類型的變量在程序中可作為一個變量整體,也可單獨使用組成該Struct的元素。Struct 類型可以在DB、OB/FC/FB接口區、PLC數據類型(UDT) 處定義使用。
Struct數據類型使用非常靈活(小編的Zui愛),隨時可以使用;可以使程序數據結構更加清晰直觀,易于維護,擴展性強;例如將相同類型電機相關的數據以結構體存放,便于批量復制和使用;
image-20240514150457587
三 | PLC數據類型(UDT) |
從TIA 博途 V11 開始,S7-1200 支持PLC數據類型(UDT)。
UDT類型是一種由多個不同數據類型元素組成的數據結構,元素可以是基本數據類型,也可以是STRUCT、數組等復雜數據類型以及其它UDT等。UDT類型嵌套UDT類型的深度限制為 8 級。UDT類型可以在DB、OB/FC/FB接口區處使用。從TIA 博途 V13SP1 開始,S7-1200 V4.0開始,PLC變量表中的I和Q也可以使用UDT類型。 UDT類型可在程序中統一更改和重復使用,一旦某UDT類型發生修改,執行軟件全部編譯可以自動更新所有使用該數據類型的變量。
image-20240514151358553
四 | S7-1200 數組數據類型(ARRAY) |
ARRAY類型是由數目固定且數據類型相同的元素組成的數據結構。 ARRAY類型的定義和使用需要注意以下幾點:
ARRAY類型可以在DB、OB/FC/FB接口區、PLC數據類型處定義;無法在PLC變量表中直接定義。數組定義:Array[維度1下限..維度1上限,維度2下限..維度2上限,...]of數組元素的數據類型包括:除數組類型、Variant類型以外的所有類型;數組下標的數據類型為整數,下限值必須小于或等于上限值;從S7-1200 V2.0開始,下標可以不僅僅是常數、常量,也可以是變量,還可以是混合使用(多維數組),如果編程語言是SCL的話,下標還可以是表達式。W0這種沒有對應符號名的juedui地址。從S7-1200 V4.2開始,FC的Input/Output/InOut以及FB的InOut可以定義形如Array[*]這種變長數組,要求必須是優化FC/FB塊,在調用FC/FB的實參中可以填寫任意數據類型相同的數組變量;數組可以使用單個數組元素例如"DB1".Static_1[1],也可以使用整個數組例如"DB1".Static_1。S7-1200 V4.2開始,多重背景支持數組形式,即Array of FB,這樣可以在FB中使用循環指令更方便的編寫程序。image-20240514152535582
- 西門子 S7-1200 系列四:西門子 TIA Portal 編程軟件介紹及應用范圍說明 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用九:范圍限制、多路復用 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用九:一個經典的三位控制器標準庫程序 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用八:可配置信號參數的數字量信號處理功能 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用七:可調整邏輯關系的8輸入連鎖控制功能塊 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用六:可用于氣缸、油缸、電動閥 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用四:帶狀態和報警輸出的雙手控制器標準庫文件 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)量程轉換庫升級版集成復位、上下限報警 2024-12-02
- 西門子 s7-200 smart 基本控制庫(LBC)應用一:設備順啟順停順啟逆序功能塊分享 2024-12-02
- 西門子宣布推出新一代控制器Simatic S7-1200 G2作為西門子Xcelerator的一部分 2024-12-02
- 自動化編程?帶你實際體驗西門子 TIA Openness自動創建和編譯博圖項目 2024-12-02
- 使用NetToPLCsim實現觸摸屏、上位機與西門子PLC-SIM仿真軟件的在線無硬件通訊測試 2024-12-02
- 干貨!一文搞懂西門子S7通信的讀寫字節長度限制,及如何"突破"讀寫長度限制分享 2024-12-02
- 西門子 S7-1200 系列五:TIA博圖中OB、DB、FC、FB介紹及應用范圍說明 2024-12-02
- 西門子PLC如何控制伺服電機 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684