精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

支持處理Variant類型的變量的指令說明

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-01-03 16:56 ? 次閱讀

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

ed634fb8-88d4-11ed-bfe3-dac502259ad0.png

圖1 指令位置

VariantGet、VariantPut

ed799ad4-88d4-11ed-bfe3-dac502259ad0.jpg

圖2 VariantGet指令詳情

ed8ad114-88d4-11ed-bfe3-dac502259ad0.jpg

圖3 VariantPut指令詳情

VariantGet

表1 VariantGet指令說明

參數 聲明 數據類型 說明
SRC Input Variant 待讀取的變量
DST Output 基本數據類型、復雜數據類型 讀取的結果

注意:DST不能是復雜數據類型的數組。

說明:

1. VariantGet的SRC是FC/FB的Input/Output/InOut/Temp以及OB的Temp中定義為Variant類型的參數。

2. VariantGet將Variant參數指向的變量讀取到DST中,要求Variant參數指向的變量一定要和DST的變量類型相同。

3. 建議讀取之前使用IS_NULL判斷Variant是否指向NULL。通過Variant判斷指令確定指向的變量類型,或者數組類型。

4. 如果雙方是相同元素的數組類型,其長度可以不同,讀取時只按照雙方中元素少的數量讀取。

5. 如果雙方類型不相同,則不會發生讀取。如果激活指令的ENO功能,則ENO=False。

VariantPut

表2 VariantPut指令說明

參數 聲明 數據類型 說明
SRC Input 基本數據類型、復雜數據類型 待讀取的變量
DST Input Variant 讀取的結果

注意:SRC不能是復雜數據類型的數組。

1. VariantPut的DST是FC/FB的Input/Output/InOut/Temp以及OB的Temp中定義為Variant類型的參數。

2. VariantPut將SRC的變量寫入到Variant參數指向的變量中,要求Variant參數指向的變量一定要和SRC的變量類型相同。

3. VariantPut無法初始化一個Variant類型變量。所以建議寫入之前使用IS_NULL判斷Variant是否指向NULL。通過Variant判斷指令確定指向的變量類型,或者數組類型。

4. 如果雙方是相同元素的數組類型,其長度可以不同,讀取時只按照雙方中元素少的數量讀取。

5. 如果雙方類型不相同,則不會發生讀取。如果激活指令的ENO功能,則ENO=False。

使用場合:

通常,VariantGet、VariantPut用在不定長度數組,但數組長度有固定上限時,或者有多種數據類型的數組時,都會非常高效。

此外,這兩個指令還可以配合DB_ANY_TO_VARIANT與VARIANT_TO_DB_ANY實現更多功能。

使用舉例:

編寫FC16,根據不同的輸入類型,調用不同FC17和FC18,FC17的InOut為“VGP1”,FC18的InOut為“VGP2”,如圖4圖5所示。

ed9415e4-88d4-11ed-bfe3-dac502259ad0.jpg

圖4 參數設置

edaf9b3e-88d4-11ed-bfe3-dac502259ad0.jpg

圖5 例子程序

CountOfElements

LAD 操作數 說明
edc8b024-88d4-11ed-bfe3-dac502259ad0.jpg Variant 如果操作數對應的實參為數組或者P#指針格式,該指令返回元素總個數,否則返回0。返回值RET_VAL為UDInt類型。操作數是FC/FB的Input/Output/InOut/Temp以及OB的Temp中定義為Variant類型的參數。

CountOfElements(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,如果操作數對應的實參為數組或者P#指針格式,CountOfElements(操作數)為元素總個數。

注意:

1. 如果Variant指向單個變量,則返回0。

2. 如果Variant 指向 Array of Bool,則填充元素包含在計數中。(例如,Array[0..1] of Bool 將返回 8)。

使用方法:

元素個數(UDInt) := CountOfElements(操作數);

使用舉例:

編寫FC,檢查輸入的3個Variant變量類型,分別判斷實參是否是數組形式,如果是則輸出True,不是則輸出False,此外如果是數組則輸出數組元素個數,不是則輸出0,如圖6-9所示。

edd71f92-88d4-11ed-bfe3-dac502259ad0.jpg

圖6 參數設置

edf18418-88d4-11ed-bfe3-dac502259ad0.jpg

圖7 例子程序1

ee182bc2-88d4-11ed-bfe3-dac502259ad0.jpg

圖8 例子程序2

ee2fef78-88d4-11ed-bfe3-dac502259ad0.jpg

圖9 FC10的調用

由圖9中可知,Array[0..1] of "UDT_1"是數組,元素個數是2,Array[0..1, 0..2] of Byte是數組,該二維數組元素總個數是2×3=6,P#M100.0 BYTE 2視作數組,元素個數是2。






審核編輯:劉清

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

    關注

    2

    文章

    14

    瀏覽量

    13542
  • DST
    DST
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9717
  • SRC
    SRC
    +關注

    關注

    0

    文章

    60

    瀏覽量

    17961

原文標題:移動操作 - 變量 指令說明

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

收藏 人收藏

    評論

    相關推薦

    VARIANT變量類型VARTYPE

    VARIANT類型變量的vt值,得以確認: enum VARENUM { VT_EMPTY =0,VT_NULL = 1,VT_I2 = 2,VT_I4 = 3,VT_R4 = 4,VT_R8
    發表于 07-09 04:47

    用戶自定義結構數據怎么存儲成VARIANT類型

    將用戶自定義的C結構數據存儲成VARIANT類型,需要時再將VARIANT類型轉為用戶自定義的結構數據,有十分現實的意義,既然我們不想為這樣的結構數據寫一個COM包裝類。雖然有很多方法
    發表于 08-02 07:08

    高效的C編程之變量類型

    14.8 變量類型 ARM C編譯器支持基本的數據類型:char、short、int、long long、float和double。表14.2說明
    發表于 10-17 16:50 ?3次下載
    高效的C編程之<b class='flag-5'>變量</b><b class='flag-5'>類型</b>

    PHP八種變量類型的詳細資料說明

    本文檔的主要內容詳細介紹的是PHP八種變量類型的詳細資料說明免費下載。
    發表于 03-01 17:20 ?7次下載
    PHP八種<b class='flag-5'>變量</b><b class='flag-5'>類型</b>的詳細資料<b class='flag-5'>說明</b>

    單片機的常量和變量與數組的詳細資料說明

    本文檔的主要內容詳細介紹的是單片機的常量和變量與數組的詳細資料說明包括了:單片機的常量,單片機的變量,構造類型:數組,構造類型:結構體,構造
    發表于 12-11 17:36 ?13次下載
    單片機的常量和<b class='flag-5'>變量</b>與數組的詳細資料<b class='flag-5'>說明</b>

    Python的變量類型詳細資料說明

    Python 中的變量賦值不需要類型聲明。每個變量在內存中創建,都包括變量的標識,名稱和數據這些信息。每個變量在使用前都必須賦值,
    發表于 08-24 16:47 ?3次下載
    Python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>詳細資料<b class='flag-5'>說明</b>

    Python的變量類型詳細說明

    變量賦值Python 中的變量賦值不需要類型聲明。 每個變量在內存中創建,都包括變量的標識,名稱和數據這些信息。每個
    發表于 01-15 16:29 ?1次下載
    Python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>詳細<b class='flag-5'>說明</b>

    S7-1200比較操作-變量指令說明

    SCL指令:TypeOf(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,該語句輸出是數據類型,在程序中只能用在IF與CA
    的頭像 發表于 03-28 11:12 ?4617次閱讀

    Variant類型變量指令說明

    SCL指令:TypeOf(操作數),操作數是FC/FB的Input/Output/InOut/Temp中定義為Variant類型的參數,該語句輸出是數據類型,在程序中只能用在IF與CA
    的頭像 發表于 03-30 15:13 ?2758次閱讀

    STRUCT和UDT類型變量是什么意思

    STRUCT和UDT類型變量是表示一個完整結構或一個結構元素的結構化變量
    的頭像 發表于 08-29 11:09 ?2147次閱讀

    淺析python的變量類型

    python不需要事先聲明變量。 python的變量類型是在運行過程中自動決定的,不需要代碼聲明類型
    的頭像 發表于 03-10 10:11 ?781次閱讀
    淺析python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>

    博途新變量:有關VARIANT的基本信息

    VARIANT 數據類型的參數是一個指針或引用,可指向各種不同數據類型變量VARIANT 指針無法指向實例,因此不能指向多重實例或多重實
    的頭像 發表于 06-07 10:49 ?2497次閱讀

    西門子博途:有關VARIANT的基本信息

    VARIANT 數據類型的參數是一個指針或引用,可指向各種不同數據類型變量VARIANT 指針無法指向實例,因此不能指向多重實例或多重實
    的頭像 發表于 06-12 10:03 ?6939次閱讀
    西門子博途:有關<b class='flag-5'>VARIANT</b>的基本信息

    西門子博途中的SCL關系表達式

    以從指令框的下拉列表中選擇該比較指令的數據類型 VARIANT支持以下數據類型
    的頭像 發表于 06-21 09:31 ?3248次閱讀

    介紹一下MOVE_BLK_VARIANT指令在使用中應注意的問題

    塊移動指令包括兩個:MOVE_BLK和MOVE_BLK_VARIANT,實際項目中都經常被用到。
    的頭像 發表于 03-04 10:51 ?2269次閱讀
    介紹一下MOVE_BLK_<b class='flag-5'>VARIANT</b><b class='flag-5'>指令</b>在使用中應注意的問題