算術表達式
說明 算術表達式既可以是一個數字值,也可以是由帶有算術運算符的兩個值或表達式組合而成。 算術運算符可以處理當前 CPU 所支持的各種數據類型。如果在該運算中有 2 個操作數,那么可根據以下條件來確定結果的數據類型:
如果這 2 個操作數均為有符號的整數,但長度不同,那么結果將采用長度較長的那個整數數據類型(例如,INT + DINT = DINT)。
如果這 2 個操作數均為無符號整數,但長度不同,那么結果將采用長度較長的那個整數數據類型(例如,USINT + UDINT = UDINT)。
如果一個操作數為有符號整數,另一個為無符號整數,那么結果將采用另一個長度較大的有符號數據類型(其包含此無符號整數)(例如,SINT + USINT = INT) 只有在未設置 IEC 檢查時,才能執行具有此類操作數的運算。
如果一個操作數為整數,另一個為浮點數,那么結果將采用浮點數的數據類型(例如,INT + REAL = REAL)。
如果 2 個操作數均為浮點數,但長度不同,結果將采用長度較長的那個浮點數的數據類型(例如,REAL + LREAL = LREAL)。
對于操作數為“時間”和“日期和時間”數據類型組,運算結果的數據類型請參見“算術表達式的數據類型”部分的表格。 設置了 IEC 檢查時,不能使用數據類型組“時間”和“日期和時間”的數據類型。
算術表達式的數據類型
下表列出了在算術表達式中可使用的數據類型:
| 運算 | 運算符 | 第一個操作數 | 第二個操作數 | 結果 |
|---|---|---|---|---|
| 冪運算 | ** | 整數/浮點數 | 整數/浮點數 | 浮點數 |
| 一元加 | + |
整數/浮點數 TIME, LTIME |
- |
整數/浮點數 TIME, LTIME |
| 一元減 | - |
整數/浮點數 TIME, LTIME |
- |
整數/浮點數 TIME, LTIME |
| 乘法 | * | 整數/浮點數 | 整數/浮點數 | 整數/浮點數 |
| TIME, LTIME | 整數 | TIME, LTIME | ||
| 除法 | / | 整數/浮點數 | 整數/浮點數(不等于 0) | 整數/浮點數 |
| TIME, LTIME | 整數 | TIME, LTIME | ||
| 模運算 | MOD | 整數 | 整數 | 整數 |
| 加法 | + | 整數/浮點數 | 整數/浮點數 | 整數/浮點數 |
| TIME | TIME | TIME | ||
| TIME | DINT | TIME | ||
| LTIME | TIME, LTIME | LTIME | ||
| LTIME | LINT | LTIME | ||
| TOD | TIME | TOD | ||
| TOD | DINT | TOD | ||
| LTOD | TIME, LTIME | LTOD | ||
| LTOD | LINT | LTOD | ||
| DATE | LTOD | DTL | ||
| DATE | TOD |
S7-300/400:DT S7-1200/1500:DTL |
||
| DT | TIME | DT | ||
| LDT | TIME, LTIME | LDT | ||
| DTL | TIME, LTIME | DTL | ||
| 減法 | - | 整數/浮點數 | 整數/浮點數 | 整數/浮點數 |
| TIME | TIME | TIME | ||
| TIME | DINT | TIME | ||
| LTIME 1) | TIME、LTIME | LTIME | ||
| LTIME | LINT | LTIME | ||
| TOD | TIME | TOD | ||
| TOD | DINT | TOD | ||
| TOD | TOD | TIME | ||
| LTOD | TIME、LTIME | LTOD | ||
| LTOD | LINT | LTOD | ||
| LTOD | LTOD | LTIME | ||
| DATE | DATE |
S7-300/400/1200:TIME S7-1500:LTIME |
||
| DT | TIME | DT | ||
| DT | DT | TIME | ||
| LDT | TIME, LTIME | LDT | ||
| DTL | TIME, LTIME | DTL | ||
| DTL | DTL |
S7-1200:TIME S7-1500:LTIME |
||
| 1) 表達式中不允許同時使用納秒和毫秒。 | ||||
有關有效數據類型的更多信息,請參見“另請參見”。
示例
以下為一個算術表達式的示例:
SCL
“MyTag1”:= “MyTag2” * “MyTag3”;
審核編輯:黃飛
-
cpu
+關注
關注
68文章
11277瀏覽量
224956 -
西門子
+關注
關注
98文章
3310瀏覽量
120369 -
數據類型
+關注
關注
0文章
237瀏覽量
14185
原文標題:西門子博途:算術表達式
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Linux內核中C語法擴展-語句表達式
什么是正則表達式?正則表達式如何工作?哪些語法規則適用正則表達式?
關于C語言的運算符和表達式--筆記1
防范表達式的失控
C++程序設計教程之數據類型與表達式的詳細資料說明
Python正則表達式指南
西門子博途的算術表達式
評論