0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

西門子博途中的SCL關(guān)系表達式

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 2023-06-21 09:31 ? 次閱讀

以從指令框的下拉列表中選擇該比較指令的數(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 整除,則還會對填充位進行比較,從而會影響最終的比較結(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)系表達式的數(shù)據(jù)類型

下表列出了在關(guān)系表達式中可使用的數(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)系表達式:

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)部將通過擴展指令執(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 復制到該變量中。之后,才能比較 HW_ANY 和 HW_IO。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5004

    文章

    13048

    瀏覽量

    460869
  • 西門子
    +關(guān)注

    關(guān)注

    93

    文章

    2976

    瀏覽量

    115305
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13582
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    17010

原文標題:西門子博途:SCL 關(guān)系表達式

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    什么是正則表達式?正則表達式如何工作?哪些語法規(guī)則適用正則表達式?

    正則表達式又稱規(guī)則表達式(Regular Expression,在代碼中常簡寫為 regex、regexp 或 RE),是一種用于匹配、查找、替換文本的強大工具。它能夠以特定的模式匹配字符串,從而
    的頭像 發(fā)表于 11-03 14:41 ?2294次閱讀
    什么是正則<b class='flag-5'>表達式</b>?正則<b class='flag-5'>表達式</b>如何工作?哪些語法規(guī)則適用正則<b class='flag-5'>表達式</b>?

    防范表達式的失控

    在C 語言中,表達式是最重要的組成部分之一,幾乎所有的代碼都由表達式構(gòu)成。表達式的使用如此廣泛,讀者也許會產(chǎn)生這樣的疑問,像+ 、- 、3 、/ 、& & 這樣簡單的運算也會出現(xiàn)
    發(fā)表于 04-22 16:57 ?13次下載

    淺談西門子PLC的“SCL語言”編程

    介紹西門子PLC的“SCL語言”編程,相關(guān)編程代碼
    發(fā)表于 01-22 17:25 ?0次下載

    博世和西門子哪個好_博世和西門子關(guān)系

    本文開始闡述了博世和西門子關(guān)系以及分析了西門子和博世哪個更好,其次分析了西門子和博世的冰箱哪個更好,最后介紹了博世和西門子家電集團在中國的
    的頭像 發(fā)表于 04-04 09:30 ?15.7w次閱讀

    Python正則表達式指南

    本文介紹了Python對于正則表達式的支持,包括正則表達式基礎(chǔ)以及Python正則表達式標準庫的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫高效的正則表達式、如何優(yōu)化正則
    發(fā)表于 03-26 09:13 ?10次下載
    Python正則<b class='flag-5'>表達式</b>指南

    西門子PLC中使用SCL語言編程的技巧

    西門子PLC中使用SCL語言編程的技巧說明。
    發(fā)表于 04-22 11:15 ?63次下載

    淺談西門子PLC的SCL語言編程

    西門子PLC的SCL語言編程說明。
    發(fā)表于 04-22 14:39 ?46次下載

    淺談西門子SCL編程

    淺談西門子SCL編程資料免費下載。
    發(fā)表于 04-23 10:44 ?27次下載

    Lambda表達式詳解

    C++11中的Lambda表達式用于 **定義并創(chuàng)建匿名的函數(shù)對象** ,以簡化編程工作。下面看一下Lambda表達式的基本構(gòu)成。
    的頭像 發(fā)表于 02-09 11:28 ?1089次閱讀

    表達式與邏輯門之間的關(guān)系

    邏輯表達式是指表示一個表示邏輯運算關(guān)系的式子,是一個抽象的類似數(shù)學表達式,下面我們重點說明下其表達式與邏輯門之間的關(guān)系。
    的頭像 發(fā)表于 02-15 14:54 ?1498次閱讀
    <b class='flag-5'>表達式</b>與邏輯門之間的<b class='flag-5'>關(guān)系</b>

    C語言的表達式

    在C語言中,表達式是由操作符和操作數(shù)組成。表達式可以由一個或者多個操作數(shù)組成,不同的操作符與操作數(shù)組成不同的表達式,因此,表達式才是C語言的基本。
    的頭像 發(fā)表于 02-21 15:09 ?1232次閱讀
    C語言的<b class='flag-5'>表達式</b>

    途中SCL的賦值運算

    可通過賦值運算,可以將一個表達式的值分配給一個變量。賦值表達式的左側(cè)為變量,右側(cè)為表達式的值。
    的頭像 發(fā)表于 06-19 10:57 ?5115次閱讀

    西門子SCL:WHILE:滿足條件時執(zhí)行

    使用“滿足條件時執(zhí)行”指令可以重復執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(TRUE 或 FALSE)的表達式??梢詫⑦壿?b class='flag-5'>表達式或比較表達式作為條件。
    的頭像 發(fā)表于 06-27 16:42 ?2770次閱讀

    西門子SCL練習1:使用FC計算平均值

    西門子SCL練習1:使用FC計算平均值
    的頭像 發(fā)表于 01-02 10:25 ?2432次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b>圖<b class='flag-5'>SCL</b>練習1:使用FC計算平均值

    西門子途的算術(shù)表達式

    算術(shù)表達式既可以是一個數(shù)字值,也可以是由帶有算術(shù)運算符的兩個值或表達式組合而成。 算術(shù)運算符可以處理當前 CPU 所支持的各種數(shù)據(jù)類型。如果在該運算中有 2 個操作數(shù),那么可根據(jù)以下條件來確定結(jié)果的數(shù)據(jù)類型。
    的頭像 發(fā)表于 01-24 11:36 ?870次閱讀