<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684

      梧州市西門子代理商-伺服電機驅動變頻器代理

      更新時間
      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