以從指令框的下拉列表中選擇該比較指令的數據類型 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
+關注
關注
5051文章
14592瀏覽量
486882 -
西門子
+關注
關注
98文章
3310瀏覽量
120369 -
數據類型
+關注
關注
0文章
237瀏覽量
14185 -
SCL
+關注
關注
1文章
244瀏覽量
18016
原文標題:西門子博途:SCL 關系表達式
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
什么是正則表達式?正則表達式如何工作?哪些語法規則適用正則表達式?
正則表達式又稱規則表達式(Regular Expression,在代碼中常簡寫為 regex、regexp 或 RE),是一種用于匹配、查找、替換文本的強大工具。它能夠以特定的模式匹配字符串,從而
防范表達式的失控
在C 語言中,表達式是最重要的組成部分之一,幾乎所有的代碼都由表達式構成。表達式的使用如此廣泛,讀者也許會產生這樣的疑問,像+ 、- 、3 、/ 、& & 這樣簡單的運算也會出現
發表于 04-22 16:57
?13次下載
Python正則表達式指南
本文介紹了Python對于正則表達式的支持,包括正則表達式基礎以及Python正則表達式標準庫的完整介紹及使用示例。本文的內容不包括如何編寫高效的正則表達式、如何優化正則
發表于 03-26 09:13
?10次下載
Lambda表達式詳解
C++11中的Lambda表達式用于 **定義并創建匿名的函數對象** ,以簡化編程工作。下面看一下Lambda表達式的基本構成。
西門子博途SCL:WHILE:滿足條件時執行
使用“滿足條件時執行”指令可以重復執行程序循環,直至不滿足執行條件為止。該條件是結果為布爾值(TRUE 或 FALSE)的表達式。可以將邏輯表達式或比較表達式作為條件。
zabbix觸發器表達式 基本RS觸發器表達式 rs觸發器的邏輯表達式
zabbix觸發器表達式 基本RS觸發器表達式 rs觸發器的邏輯表達式? Zabbix是一款開源的監控軟件,它能通過監控指標來實時監測服務器和網絡的運行狀態,同時還能提供警報和報告等功能來幫助管理員
西門子博途的算術表達式
算術表達式既可以是一個數字值,也可以是由帶有算術運算符的兩個值或表達式組合而成。 算術運算符可以處理當前 CPU 所支持的各種數據類型。如果在該運算中有 2 個操作數,那么可根據以下條件來確定結果的數據類型。
西門子博途中的SCL關系表達式
評論