以從指令框的下拉列表中選擇該比較指令的數(shù)據(jù)類型 VARIANT。支持以下數(shù)據(jù)類型的變量:
PLC 數(shù)據(jù)類型 (UDT)
STRUCT(STRUCT 數(shù)據(jù)類型的結(jié)構(gòu)需包含在 PLC 數(shù)據(jù)類型 (UDT) 中,或者待比較的兩個結(jié)構(gòu)需為 ARRAY of STRUCT 的兩個元素。不支持背景數(shù)據(jù)塊和匿名結(jié)構(gòu)的變量。)
Any 指向的變量
VARIANT 指向的變量
要比較兩個 ARRAY 數(shù)據(jù)類型的變量,需滿足以下要求:
元素的數(shù)據(jù)類型必須相同。
兩個 ARRAY 的維數(shù)必須相同。
所有維數(shù)的元素數(shù)量必須相同,而具體的 ARRAY 限值無需相同。
說明 ARRAY of BOOL 比較數(shù)據(jù)類型為 ARRAY OF BOOL 的兩個操作數(shù)時,如果元素的個數(shù)不能被 8 整除,則還會對填充位進(jìn)行比較,從而會影響最終的比較結(jié)果。 |
下表舉例說明了“==:等于”的結(jié)構(gòu)比較:
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 |
數(shù)據(jù)類型為 A 的變量 |
變量值 | 1 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 |
數(shù)據(jù)類型為 B 的變量 |
變量值 | 0 | ||
BOOL | FALSE | BOOL | TRUE | |||
INT | 2 | INT | 3 |
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 | VARIANT(由數(shù)據(jù)類型為 A 的變量提供) | 變量值 | 1 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
下表舉例說明了“<>:不等于”結(jié)構(gòu)的比較:
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 |
數(shù)據(jù)類型為 A 的變量 |
變量值 | 0 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 |
數(shù)據(jù)類型為 B 的變量 |
變量值 | 1 | ||
BOOL | FALSE | BOOL | TRUE | |||
INT | 2 | INT | 3 |
<操作數(shù) 1> | <操作數(shù) 2> | 指令的 RLO | ||||
---|---|---|---|---|---|---|
數(shù)據(jù)類型為 A 的變量 |
變量值 | VARIANT(由數(shù)據(jù)類型為 A 的變量提供) | 變量值 | 0 | ||
BOOL | FALSE | BOOL | FALSE | |||
INT | 2 | INT | 2 |
關(guān)系表達(dá)式的數(shù)據(jù)類型
下表列出了在關(guān)系表達(dá)式中可使用的數(shù)據(jù)類型/數(shù)據(jù)類型組:
運算 | 運算符 | 第一個操作數(shù) | 第二個操作數(shù) | 結(jié)果 |
---|---|---|---|---|
比較:等于、不等于 | =、<> | 整數(shù)/浮點數(shù) | 整數(shù)/浮點數(shù) | BOOL |
位字符串 | 位字符串 | BOOL | ||
字符串 | 字符串 | BOOL | ||
TIME、LTIME | TIME、LTIME | BOOL | ||
日期和時間 | 日期和時間 | BOOL | ||
VARIANT/ANY | VARIANT/ANY | BOOL | ||
任何數(shù)據(jù)類型(但必須與 VARIANT 的變量數(shù)據(jù)類型相對應(yīng)) | VARIANT/ANY | BOOL | ||
VARIANT/ANY | 任何數(shù)據(jù)類型 | BOOL | ||
PLC 數(shù)據(jù)類型 | PLC 數(shù)據(jù)類型 | BOOL | ||
ARRAY of <數(shù)據(jù)類型>,ARRAY 限值固定/可變 | ARRAY of <數(shù)據(jù)類型>,ARRAY 限值固定/可變 | BOOL | ||
STRUCT | STRUCT | BOOL | ||
比較:小于、小于等于、大于、大于等于 | <、<=、>、>= | 整數(shù)/浮點數(shù) | 整數(shù)/浮點數(shù) | BOOL |
位字符串 (僅 S7-1200/1500) |
位字符串 (僅 S7-1200/1500) |
BOOL | ||
字符串 | 字符串 | BOOL | ||
TIME、LTIME | TIME、LTIME | BOOL | ||
日期和時間 | 日期和時間 | BOOL |
示例
以下舉例說明了一個關(guān)系表達(dá)式:
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 內(nèi)部將通過擴(kuò)展指令執(zhí)行 STRING 和 DT 類型的比較。以下操作數(shù)不可用于這些函數(shù): FC 的參數(shù) STRUCT 或 ARRAY 類型的 FB 的輸入輸出參數(shù) |
說明 比較硬件數(shù)據(jù)類型 HW_IO 與 HW_DEVICE 如果要比較這兩種數(shù)據(jù)類型,則需先在塊接口的“Temp”區(qū)域創(chuàng)建一個 HW_ANY 數(shù)據(jù)類型的變量,然后將數(shù)據(jù)類型為 HW_DEVICE 的 LADDR 復(fù)制到該變量中。之后,才能比較 HW_ANY 和 HW_IO。 |
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5011文章
13299瀏覽量
463434 -
西門子
+關(guān)注
關(guān)注
94文章
3039瀏覽量
115888 -
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
236瀏覽量
13624 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17084
原文標(biāo)題:西門子博途:SCL 關(guān)系表達(dá)式
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論