梧州市西門子代理商-伺服電機驅動變頻器代理
| 更新時間 2024-12-02 08:00:00 價格 請來電詢價 西門子變頻器 西門子觸摸屏 西門子伺服電機 西門子PLC 西門子直流調速器 西門子電纜 聯系電話 13922889745 聯系手機 18475208684 聯系人 向小姐 立即詢價 |
說明:關系表達式將兩個操作數的值或數據類型進行比較,然后得到一個布爾值。如果比較結果為真,則結果為 TRUE,否則為 FALSE。
關系運算符可以處理當前 CPU 所支持的各種數據類型。結果的數據類型始終為 Bool。
編寫關系表達式時,請注意以下規則:
以下數據類型組中的所有變量都可以進行比較:
整數/浮點數
位、位序列
字符串
對于以下數據類型,只能比較相同類型的變量:
TIME
日期和時間
UDT
Array
Struct
Variant
String 比較是對以 Windows 字符集編碼的字符進行比較;而 WSting比較則是對 UTF-16 編碼的字符進行比較。在比較過程中,將比較變量的長度及各字符對應的數值。
Array 比較需要數組維度、數組元素數據類型與數量完全相同
UDT、Array、Struct、Variant等進行的比較只能使用S7-1200 V4.2及其以上的版本。
關系表達式的數據類型
表2列出了在關系表達式中可使用的數據類型/數據類型組:
運算運算符優先級第一個操作數第二個操作數結果小于、小于等于、大于、大于等于<、<=、>、>=6整數/浮點數整數/浮點數Bool位序列位序列Bool字符串字符串BoolTimeTimeBool日期和時間
日期和時間
Bool等于、不等于==、<>7整數/浮點數整數/浮點數Bool位序列位序列Bool字符串字符串BoolTimeTimeBool日期和時間
日期和時間
BoolVariant任意數據類型BoolUDTUDTBoolArrayArrayBoolStructStructBool示例
以下舉例說明了一個關系表達式:
IF a > b THEN c:= a;
IF A > 20 AND B < 20 THEN C:= TRUE;
IF A<>(B AND C) THEN C:= FALSE;
說明:邏輯表達式由兩個操作數和邏輯運算符(AND、OR 或 XOR)或取反操作數 (NOT) 組成。
邏輯運算符可以處理當前 CPU 所支持的各種數據類型。如果兩個操作數都是 Bool 數據類型,則邏輯表達式的結果也為 Bool數據類型。如果兩個操作數中至少有一個是位序列,則結果也為位序列而且結果是由Zui高操作數的類型決定。例如,當邏輯表達式的兩個操作數分別是 Byte 類型和 Word 類型時,結果為 Word類型。
邏輯表達式中一個操作數為 Bool類型而另一個為位序列時,必須先將 Bool類型的操作數顯式轉換為位序列類型。
邏輯表達式的數據類型
下表列出了邏輯表達式中可使用的數據類型:
運算運算符優先級第一個操作數第二個操作數結果取反NOT3Bool-Bool求反碼位序列-位序列與AND、&8BoolBoolBool位序列位序列位序列異或XOR9BoolBoolBool位序列位序列位序列或OR10BoolBoolBool位序列位序列位序列示例
以下為一個邏輯表達式的示例:
IF "MyTag1" AND NOT "MyTag2" THEN c := a;
MyTag := A OR B;
定義:通過賦值運算,可以將一個表達式的值分配給一個變量。賦值表達式的左側為變量,右側為表達式的值。
函數名稱也可以作為表達式。賦值運算將調用該函數,并返回其函數值,賦給左側的變量。
賦值運算的數據類型取決于左邊變量的數據類型。右邊表達式的數據類型必須與該數據類型一致。
賦值運算的計算按照從右到左的順序進行。
可通過以下方式編程賦值運算:
單賦值運算:執行單賦值運算時,僅將一個表達式或變量分配給單個變量:
示例:a := b;
多賦值運算:執行多賦值運算時,一個指令中可執行多個賦值運算。
示例:a := b := c;
此時,將執行以下操作:
b := c;
a := b;
組合賦值運算:執行組合賦值運算時,可在賦值運算中組合使用操作符"+"、"-"、"*"和"/":
示例:a += b;
此時,將執行以下操作:
a := a + b;
也可多次組合賦值運算:
a += b += c *= d;
此時,將按以下順序執行賦值運算:
c := c * d;
b := b + c;
a := a + b;
示例
下表舉例說明了單賦值運算的操作:
"MyTag1" := "MyTag2";
(* 變量賦值 *)
"MyTag1" := "MyTag2" * "MyTag3";
(* 表達式賦值 *)
"MyTag" := "MyFC"();
(* 調用一個函數,并將函數值賦給 "MyTag" 變量 *)
#MyStruct.MyStructElement := "MyTag";
(* 將一個變量賦值給一個結構元素 *)
#MyArray[2] := "MyTag";
(* 將一個變量賦值給一個 ARRAY 元素 *)
"MyTag" := #MyArray[1,4];
(* 將一個 ARRAY 元素賦值給一個變量 *)
#MyString[2] := #MyOtherString[5];
(* 將一個 STRING 元素賦給另一個 STRING 元素 *)
下表舉例說明了多賦值運算的操作:
"MyTag1" := "MyTag2" := "MyTag3";
(* 變量賦值 *)
"MyTag1" := "MyTag2" := "MyTag3" * "MyTag4";
(* 表達式賦值 *)
"MyTag1" := "MyTag2" := "MyTag3 := "MyFC"();
(* 調用一個函數,并將函數值賦值給變量 "MyTag1"、"MyTag1" 和 "MyTag1" *)
#MyStruct.MyStructElement1 := #MyStruct.MyStructElement2 := "MyTag";
(* 將一個變量賦值給兩個結構元素 *)
#MyArray[2] := #MyArray[32] := "MyTag";
(* 將一個變量賦值給兩個數組元素 *)
"MyTag1" := "MyTag2" := #MyArray[1,4];
(* 將一個數組元素賦值給兩個變量 *)
#MyString[2] := #MyString[3]:= #MyOtherString[5];
(* 將一個 STRING 元素賦值給兩個 STRING 元素 *)
下表舉例說明了組合賦值運算的操作:
"MyTag1" += "MyTag2";
(* "MyTag1" 和 "MyTag2" 相加,并將相加的結果賦值給 "MyTag1"。*)
"MyTag1" -= "MyTag2" += "MyTag3";
(* "MyTag2" 和 "MyTag3" 相加。將相加的結果賦值給操作數"MyTag2",再從 "MyTag1" 中減去"MyTag2",計算結果將賦值給 "MyTag1"。*)
#MyArray[2] += #MyArray[32] += "MyTag";
(* 數組元素 "MyArray[32]" 加上 "MyTag"。計算結果將賦值給 "MyArray[32]"。之后這個數組元素 "MyArray[32]" 與數組中另一個元素"MyArray[2]"相加,然后將結果分配給數組元素 "MyArray[2]"。在該運算中,相應的數據類型必需兼容。*)
#MyStruct.MyStructElement1 /= #MyStruct.MyStructElement2 *= "MyTag";
(* 結構化元素 "MyStructElement2" 乘以 "MyTag"。計算結果將賦值給 "MyStructElement2"。之后,將結構化元素 "MyStructElement1" 除以 "MyStructElement2",并將計算結果賦值給 "MyStructElement1"。在該運算中,相應的數據類型必需兼容。*)
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684