以從指令框的下拉列表中選擇該比較指令的數據類型 VARIANT。支持以下數據類型的變量:
PLC 數據類型 (UDT)
STRUCT(STRUCT 數據類型的結構需包含在 PLC 數據類型 (UDT) 中,或者待比較的兩個結構需為 ARRAY of STRUCT 的兩個元素。不支持背景數據塊和匿名結構的變量。)
Any 指向的變量
VARIANT 指向的變量
要比較兩個 ARRAY 數據類型的變量,需滿足以下要求:
元素的數據類型必須相同。
兩個 ARRAY 的維數必須相同。
所有維數的元素數量必須相同,而具體的 ARRAY 限值無需相同。
說明 ARRAY of BOOL 比較數據類型為 ARRAY OF BOOL 的兩個操作數時,如果元素的個數不能被 8 整除,則還會對填充位進行比較,從而會影響最終的比較結果。 |
下表舉例說明了“==:等于”的結構比較:
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 |
數據類型為 A 的變量 |
變量值 | 1 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 |
數據類型為 B 的變量 |
變量值 | 0 | ||
BOOL | FALSE | BOOL | TRUE | |||
INT | 2 | INT | 3 |
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 | VARIANT(由數據類型為 A 的變量提供) | 變量值 | 1 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
下表舉例說明了“<>:不等于”結構的比較:
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 |
數據類型為 A 的變量 |
變量值 | 0 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 |
數據類型為 B 的變量 |
變量值 | 1 | ||
BOOL | FALSE | BOOL | TRUE | |||
INT | 2 | INT | 3 |
<操作數 1> | <操作數 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數據類型為 A 的變量 |
變量值 | VARIANT(由數據類型為 A 的變量提供) | 變量值 | 0 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
關系表達式的數據類型
下表列出了在關系表達式中可使用的數據類型/數據類型組:
運算 | 運算符 | 第一個操作數 | 第二個操作數 | 結果 |
---|---|---|---|---|
比較:等于、不等于 | =、<> | 整數/浮點數 | 整數/浮點數 | BOOL |
位字符串 | 位字符串 | BOOL | ||
字符串 | 字符串 | BOOL | ||
TIME、LTIME | TIME、LTIME | BOOL | ||
日期和時間 | 日期和時間 | BOOL | ||
VARIANT/ANY | VARIANT/ANY | BOOL | ||
任何數據類型(但必須與 VARIANT 的變量數據類型相對應) | VARIANT/ANY | BOOL | ||
VARIANT/ANY | 任何數據類型 | BOOL | ||
PLC 數據類型 | PLC 數據類型 | BOOL | ||
ARRAY of <數據類型>,ARRAY 限值固定/可變 | ARRAY of <數據類型>,ARRAY 限值固定/可變 | BOOL | ||
STRUCT | STRUCT | BOOL | ||
比較:小于、小于等于、大于、大于等于 | <、<=、>、>= | 整數/浮點數 | 整數/浮點數 | BOOL |
位字符串 (僅 S7-1200/1500) |
位字符串 (僅 S7-1200/1500) |
BOOL | ||
字符串 | 字符串 | BOOL | ||
TIME、LTIME | TIME、LTIME | BOOL | ||
日期和時間 | 日期和時間 | BOOL |
示例
以下舉例說明了一個關系表達式:
SCL | |
---|---|
IF a > b THEN c:= a; | |
IF A > 20 AND B < 20 THEN C:= TRUE; | |
IF A<>(B AND C) THEN C:= FALSE; |
說明 在 S7-300/400 內部將通過擴展指令執行 STRING 和 DT 類型的比較。以下操作數不可用于這些函數: FC 的參數 STRUCT 或 ARRAY 類型的 FB 的輸入輸出參數 |
說明 比較硬件數據類型 HW_IO 與 HW_DEVICE 如果要比較這兩種數據類型,則需先在塊接口的“Temp”區域創建一個 HW_ANY 數據類型的變量,然后將數據類型為 HW_DEVICE 的 LADDR 復制到該變量中。之后,才能比較 HW_ANY 和 HW_IO。 |
審核編輯:湯梓紅
-
plc
+關注
關注
5017文章
13394瀏覽量
465682 -
西門子
+關注
關注
96文章
3066瀏覽量
116529 -
數據類型
+關注
關注
0文章
236瀏覽量
13669 -
SCL
+關注
關注
1文章
240瀏覽量
17188
原文標題:西門子博途:SCL 關系表達式
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
什么是正則表達式?正則表達式如何工作?哪些語法規則適用正則表達式?
![什么是正則<b class='flag-5'>表達式</b>?正則<b class='flag-5'>表達式</b>如何工作?哪些語法規則適用正則<b class='flag-5'>表達式</b>?](https://file1.elecfans.com/web2/M00/AE/20/wKgZomVElreATCOkAAAZcufzGxQ593.png)
防范表達式的失控
博世和西門子哪個好_博世和西門子的關系
Python正則表達式指南
![Python正則<b class='flag-5'>表達式</b>指南](https://file.elecfans.com/web1/M00/E7/4F/pIYBAGBdNieALCE4AACIo_q8eqU058.jpg)
評論