女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

Variant類型的變量指令說明

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-03-30 15:13 ? 次閱讀

TIA V13SP1 開始,S7-1200 V4.0開始,支持以下處理Variant類型的變量的指令,如圖1-2所示。

圖1 LAD中Variant類型的變量比較操作指令

圖2 SCL中Variant類型的變量比較操作指令

注:EQ_TypeOfDB、NE_TypeOfDB、TypeOfDB指令參見DB_ANY。

EQ_Type、NE_Type、TypeOf

表1 LAD指令詳情

SCL指令:TypeOf(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,該語句輸出是數據類型,在程序中只能用在IF與CASE進行比較。

用法1:IF指令,操作數對應的實參的類型與一個變量類型的比較,例如:

IF (TypeOf(操作數1) = 變量類型(例如Byte))

。..

END_IF;

用法2:IF指令,兩個操作數對應的實參的類型比較,例如:

IF (TypeOf(操作數1) = TypeOf(操作數2))

。..

END_IF;

用法3:CASE OF指令,操作數對應的實參的類型與多個變量類型的比較,例如:

CASE (TypeOf(操作數)) OF

Byte:

。..

Int:

。..

ELSE

。..

END_CASE;

使用舉例:

編寫FC,檢查輸入Variant變量類型,Byte則輸出True,其它則輸出False,如圖3-6所示。

圖3 FC6參數定義

圖4 程序詳情

SCL的版本程序,如圖5所示。

圖5 SCL版本的程序

OB1多次調用該FC6,可以看到結果,“DB16”.Static_1是Byte類型,“DB16”.Static_3不是Byte類型。

圖6 OB1多次調用FC6

EQ_ElemType、NE_ElemType、TypeOfElements

表2 LAD指令說明

SCL指令:TypeOfElements(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,該語句輸出是數據類型,在程序中只能用在IF與CASE進行比較。

比較之前,通常先使用IS_ARRAY檢查操作數對應的實參是否是數組類型。

用法1:IF指令,操作數對應的實參為數組類型,對該數組元素的類型與一個變量類型的比較,例如:

IF (TypeOfElements(操作數1) = 變量類型(例如Byte))

。..

END_IF;

用法2:IF指令,兩個操作數對應的實參均為數組類型的類型,比較它們數組元素的類型,例如:

IF (TypeOfElements(操作數1) = TypeOfElements(操作數2))

。..

END_IF;

用法3:CASE OF指令,操作數對應的實參為數組類型,對該數組元素的類型與多個變量類型的比較,例如:

CASE (TypeOfElements(操作數)) OF

Byte:

。..

Int:

。..

ELSE

。..

END_CASE;

注意

1.如果上述三種用法操作數不是數組類型,但是數據類型和比較對象的數據類型相同,也會當做該數據類型的數組進行處理,相當于執行的TypeOf指令。

2.用法2,也可以是這樣的:

IF (TypeOfElements(操作數1) = TypeOf(操作數2))

。..

END_IF;

或者

IF (TypeOf(操作數1) = TypeOfElements(操作數2))

。..

END_IF;

即一邊是數組,一邊不是數組的比較。

使用舉例:

編寫FC,檢查輸入Variant變量類型,數組元素如果是Byte則輸出1為True,輸出2為False,數組元素如果是Int則輸出1為False,輸出2為True,其余情況輸出1為False,輸出2為False,如圖7-10所示。

圖7 FC7參數定義

圖8 程序詳情

SCL的版本程序,如圖9所示。

圖9 SCL版本的程序

OB1多次調用該FC7,可以看到結果,“DB17”.Static_1是Byte數組,“DB17”.Static_4是Int數組,“DB17”.Static_7不是以上兩種類型。

圖10 OB1多次調用FC7

IS_NULL、NOT_NULL

表3 LAD指令說明

對于SCL,雖然沒有相對應指令,但是可以在IF指令中,將Variant變量與NULL比較

IF (操作數 = NULL)

。..

END_IF;

理論上來說,對于每個參數出現了Variant的FC/FB,都應該檢查該Variant變量是否指向了空指針,此處的空指針不一定是形參填寫NULL,也有可能填寫沒有初始化的Temp中的Variant。

對于最新的S7-1200 V4.2版本,只有一種情況可以初始化Temp中的Variant,就是指令DB_ANY_TO_VARIANT(參見DB_ANY),同時運行沒有錯誤,否則Temp中的Variant就相當于NULL。

使用舉例:

程序架構:OB1調用FC9,FC9調用FC8,FC8中檢查3個輸入是否是NULL,是則輸出True,不是則輸出False,FC9的3個Temp變量作為FC8的3個輸入,Temp_1是不賦值的Int變量,Temp_2和Temp_3是通過DB_ANY_TO_VARIANT初始化的Variant變量,其中為Temp_2初始化的DB1是不滿足DB_ANY_TO_VARIANT條件的DB塊,為Temp_3初始化的DB19是不滿足DB_ANY_TO_VARIANT條件的DB塊,最終將FC8的3個輸出關聯FC9的3個輸出至OB1中顯示,如圖11-13所示。

圖11 FC8程序詳情

圖12 FC9程序詳情

OB1調用FC9

圖13 OB1調用FC9

從圖13中可知,不滿足DB_ANY_TO_VARIANT條件的DB1初始化的Temp_2相當于NULL,其余兩個都可以視作有明確指向。

IS_ARRAY

表4 LAD指令說明

SCL指令:

IS_ARRAY(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,當操作數對應的實參為數組或者P#指針格式,IS_ARRAY(操作數) 為True,否則IS_ARRAY(操作數) 為False。

使用方法:

IF IS_ARRAY(操作數) THEN

。..

END_IF;

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指令
    +關注

    關注

    1

    文章

    615

    瀏覽量

    36238
  • 數據類型
    +關注

    關注

    0

    文章

    237

    瀏覽量

    13828

原文標題:S7-1200 比較操作 - 變量 指令說明

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Ansible Playbook中的變量使用技巧

    在inventory中定義的連接變量(比如ansible_ssh_user);優先級第二。
    的頭像 發表于 04-15 10:26 ?210次閱讀

    RISC-V基礎指令詳解

    RISC-V中定義了六種指令類型,其中包括 R型指令 : 用于寄存器與寄存器之間算數運算的指令 I型指令 : 用于寄存器和立即數算術運算和讀
    發表于 12-29 18:47

    三菱PLC常用指令說明

    PLC常用的指令說明,這些指令是構建PLC程序的基礎。 1. 基本邏輯指令 1.1 LD(Load) 功能 :將輸入信號加載到累加器(AC)或輔助繼電器(M)中。 格式 :LD X0
    的頭像 發表于 12-26 18:04 ?5493次閱讀

    圖紙模板中的文本變量

    “ ?文本變量和系統自帶的內置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAM
    的頭像 發表于 11-13 18:21 ?547次閱讀
    圖紙模板中的文本<b class='flag-5'>變量</b>

    如何在文本字段中使用上標、下標及變量

    在KiCad的任何文本字段中,都可以通過以下的方式實現上標、下標、上劃線以及顯示變量及字段值的描述: 文本變量“文本變量”可以在 原理圖設置->工程->文本變量 中設置。下圖中設置了一
    的頭像 發表于 11-12 12:23 ?527次閱讀
    如何在文本字段中使用上標、下標及<b class='flag-5'>變量</b>

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同
    的頭像 發表于 10-23 13:39 ?581次閱讀

    plc基本指令的應用有哪些

    控制、數據類型轉換、算術運算、比較操作、程序控制以及基本的輸入輸出操作等多個方面。 一、邏輯運算指令 邏輯運算指令是PLC編程中最常用的指令之一,它們用于實現基本的邏輯運算功能,包括邏
    的頭像 發表于 10-21 17:16 ?2449次閱讀

    PLC指令的簡要說明

    PLC(可編程邏輯控制器)的指令雖然因不同的制造商和型號而有所差異,但有一些指令是相對比較通用的。
    的頭像 發表于 09-18 14:15 ?1266次閱讀

    ARM處理器的指令集包括哪些

    ARM處理器的指令集是一個龐大而復雜的系統,它涵蓋了多種類型指令,用于實現數據處理、程序控制、內存訪問等多種功能。
    的頭像 發表于 09-10 11:15 ?1347次閱讀

    微處理器的指令集架構介紹

    和執行。指令集架構不僅影響微處理器的性能,還決定了其兼容性、可編程性和應用場景。以下是對微處理器指令集架構的詳細探討,內容將圍繞其定義、主要類型、設計原則、應用場景及未來發展等方面展開。
    的頭像 發表于 08-22 10:53 ?2250次閱讀

    技術干貨驛站 ▏深入理解C語言:基本數據類型變量

    在C語言中,數據類型變量是編程的基礎,也是理解更復雜概念的關鍵。數據類型決定了變量的內存分配、存儲范圍和操作方式,而變量則是存儲數據的容器
    的頭像 發表于 07-26 17:53 ?2610次閱讀
    技術干貨驛站 ▏深入理解C語言:基本數據<b class='flag-5'>類型</b>和<b class='flag-5'>變量</b>

    如何快速生成Modbus指令?教程來啦

    一適用型號該筆記適用于標準Modbus協議產品(MA01系列、ME31系列、M31系列、ME15-AXAX8080)。二功能簡介功能說明:Modbus指令快速生成教程旨在幫助用戶快速生成Modbus
    的頭像 發表于 06-28 08:21 ?1728次閱讀
    如何快速生成Modbus<b class='flag-5'>指令</b>?教程來啦

    三菱PLC指令ZRST和RST的區別

    。 其中,Sx表示需要復位的軟元件,可以是D、M、X、Y、S等類型的寄存器。 功能描述 ZRST指令用于將指定的軟
    的頭像 發表于 06-20 10:48 ?1w次閱讀

    三菱PLCfx3U主控指令使用

    ,包括其功能、語法和應用場景等。 1. 概述 三菱PLC FX3U的主控指令主要包括以下幾種類型: 程序開始和結束指令 條件判斷指令 循環控制指令
    的頭像 發表于 06-20 09:42 ?3619次閱讀

    RISC-V 指令概況

    的RV32I指令指令格式概述 RV32I有基本的6種指令格式,分別是: 用于寄存器和寄存器之間操作的R類型指令 用于短立即數和訪存lo
    發表于 06-11 05:05