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

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

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

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

博途新變量:有關(guān)VARIANT的基本信息

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

說明

VARIANT 數(shù)據(jù)類型的參數(shù)是一個指針或引用,可指向各種不同數(shù)據(jù)類型的變量。VARIANT 指針無法指向?qū)嵗虼瞬荒苤赶蚨嘀貙嵗蚨嘀貙嵗?ARRAY。VARIANT 指針可以是基本數(shù)據(jù)類型(例如,INT 或 REAL)的對象。還可以是 STRING、DTL、STRUCT 類型的 ARRAY、UDT、UDT 類型的 ARRAY。VARIANT 指針可以識別結(jié)構(gòu),并指向各個結(jié)構(gòu)元素。VARIANT 數(shù)據(jù)類型的操作數(shù)不占用背景數(shù)據(jù)塊或工作存儲器中的空間。但是,將占用 CPU 上的存儲空間。

VARIANT 類型的變量不是一個對象,而是對另一個對象的引用。在函數(shù)的塊接口中的 VAR_IN、VAR_IN_OUT 和 VAR_TEMP 部分中,VARIANT 類型的單個元素只能聲明為形參。因此,不能在數(shù)據(jù)塊或函數(shù)塊的塊接口靜態(tài)部分中聲明,例如,因為各元素的大小未知。所引用對象的大小可以更改。

使用 VARIANT 數(shù)據(jù)類型時,可為各種數(shù)據(jù)類型創(chuàng)建通用的標(biāo)準(zhǔn)函數(shù)塊 (FB) 或函數(shù) (FC)。為此,可使用所有編程語言中的各種指令。在程序創(chuàng)建過程中,可指定該塊可處理數(shù)據(jù)類型。在此,可使用 VARIANT 數(shù)據(jù)類型對各種變量進(jìn)行互連。之后,再根據(jù)這些變量在塊中的數(shù)據(jù)類型進(jìn)行響應(yīng)。調(diào)用某個塊時,可以將該塊的參數(shù)連接到任何數(shù)據(jù)類型的變量。調(diào)用某個塊時,除了傳遞變量的指針外,還會傳遞變量的類型信息。塊代碼隨后可以根據(jù)運行期間傳遞的變量類型來執(zhí)行。

例如,如果函數(shù)的塊參數(shù)為 VARIANT 數(shù)據(jù)類型,那么整數(shù)數(shù)據(jù)類型的變量可以在程序中的一個點處傳遞,而 PLC 數(shù)據(jù)類型的變量可以在程序中的另一個點處傳遞。借助 VARIANT 指令,函數(shù)隨后可以正確響應(yīng)這種情況,而不會出錯。

說明
如果一個數(shù)據(jù)塊最初的數(shù)據(jù)類型為用戶自定義的數(shù)據(jù)類型 (UDT),那么只能指向完整的數(shù)據(jù)塊。
說明
訪問 I/O
只有 S7-1500 模塊的 CPU 才能直接讀寫 I/O 輸出或輸出中的信號。(<操作數(shù)>:P)
長度(字節(jié)) 表示法 格式 輸入值示例
0 符號 操作數(shù) "TagResult"
數(shù)據(jù)塊名稱.操作數(shù)名稱.元素 "Data_TIA_Portal".StructVariable.FirstComponent
絕對 操作數(shù) %MW10
數(shù)據(jù)塊編號.操作數(shù) 類型長度 P#DB10.DBX10.0 INT 12 1)
NULL 指針 NULL

數(shù)據(jù)類型的編碼

如果通過 P# 使用絕對尋址,則允許使用以下數(shù)據(jù)類型:

BOOL

BYTE

CHAR

WORD

INT

DWORD

DINT

REAL

TIME

S5TIME

DATE

TOD

DT

示例

以下示例說明了 VARIANT 使用 STL 指令“MOVE:移動值”的工作原理

STL 說明
CALL MOVE // 調(diào)用指令。
value_type := VARIANT // 參數(shù) IN 和 OUT 的數(shù)據(jù)類型
IN := "Data_TIA_Portal".StructVariable.FirstComponent // 從“Data_TIA_Portal”數(shù)據(jù)塊移動操作數(shù)“FirstComponent”中的數(shù)據(jù)。
OUT := "MotorDB".StructResult.TagResult // 從“MotorDB”數(shù)據(jù)塊傳送到“TagResult”操作數(shù)中。

VARIANT 指令的應(yīng)用方式

簡介

在下一章中,您將了解可用于 VARIANT 指令的應(yīng)用選項。

對 VARIANT 指向的變量的數(shù)據(jù)類型求值

在下表中,您將看到可使用哪些指令來對 VARIANT 指向的變量的數(shù)據(jù)類型求值:

函數(shù) 指令 說明
確定數(shù)據(jù)類型 TypeOf():檢查 VARIANT 變量的數(shù)據(jù)類型
(該指令僅適用于 SCL,且只能與 IF 或 CASE 指令一起使用。)
可使用該指令將 VARIANT 變量指向的數(shù)據(jù)類型與任何其它變量的數(shù)據(jù)類型進(jìn)行比較。也可以與 PLC 數(shù)據(jù)類型作比較。
TypeOfElements():掃描 VARIANT 變量 ARRAY 元素的數(shù)據(jù)類型
(該指令僅適用于 SCL,且只能與 IF 或 CASE 指令一起使用。)
可使用該指令將 VARIANT 變量指向的數(shù)據(jù)類型與任何其它變量的數(shù)據(jù)類型進(jìn)行比較。也可以與 PLC 數(shù)據(jù)類型作比較。如果 VARIANT 變量的數(shù)據(jù)類型為 ARRAY,則將比較 ARRAY 元素的數(shù)據(jù)類型。
EQ_Type:比較數(shù)據(jù)類型與變量數(shù)據(jù)類型是否“相等”
NE_Type:比較數(shù)據(jù)類型與變量數(shù)據(jù)類型是否“不相等”
可使用該指令將 VARIANT 變量指向的數(shù)據(jù)類型與任何其它變量的數(shù)據(jù)類型進(jìn)行比較。也可以與 PLC 數(shù)據(jù)類型作比較。
EQ_ElemType:比較 ARRAY 元素數(shù)據(jù)類型與變量數(shù)據(jù)類型是否“相等”
NE_ElemType:比較 ARRAY 元素數(shù)據(jù)類型與變量數(shù)據(jù)類型是否“不相等”
可使用該指令將 VARIANT 變量指向的數(shù)據(jù)類型與任何其它變量的數(shù)據(jù)類型進(jìn)行比較。也可以與 PLC 數(shù)據(jù)類型作比較。如果 VARIANT 變量的數(shù)據(jù)類型為 ARRAY,則將比較 ARRAY 元素的數(shù)據(jù)類型。
對 ARRAY 元素求值 IS_ARRAY:檢查 ARRAY 可使用該指令檢查 VARIANT 變量指向的數(shù)據(jù)類型是否為 ARRAY。
CountOfElements:獲取 ARRAY 元素個數(shù) 可使用該指令讀出該變量中 VARIANT 變量指向了多少個 ARRAY 元素。

可以在信息系統(tǒng)的“基本指令 > 對應(yīng)編程語言”(Basic instructions > Respective programming language) 下找到有關(guān)各種指令的其它信息。

讀取 VARIANT 指向的數(shù)據(jù)

為了能夠使用數(shù)據(jù),您必須在一個中間步驟中將該數(shù)據(jù)移到變量中,因為無法直接處理該數(shù)據(jù)。

指令 說明 示例 結(jié)果
VARIANT 指向 目標(biāo)數(shù)據(jù)類型
VariantGet:讀取 VARIANT 變量值 可使用該指令將單個變量的值移到另一個變量中。這兩個變量的數(shù)據(jù)類型必須匹配。 UDT_1 UDT_1 已執(zhí)行該指令。
REAL REAL
DINT DWORD 該指令未執(zhí)行。

將數(shù)據(jù)分配給 VARIANT 變量

無法使用該指令來初始化 VARIANT 變量。因此,在將數(shù)據(jù)返回到變量時必須已經(jīng)初始化 VARIANT 變量。請勿使用未初始化的臨時 VARIANT 變量。

指令 說明 示例 結(jié)果
源數(shù)據(jù)類型 VARIANT 指向:
VariantPut:寫入 VARIANT 變量值 可使用該指令將單個變量的值移到另一個變量中。這兩個變量的數(shù)據(jù)類型必須匹配。 UDT_1 UDT_1 已執(zhí)行該指令。
REAL REAL
DINT DWORD 將不執(zhí)行該指令,因為數(shù)據(jù)類型不同。

處理動態(tài) ARRAY 結(jié)構(gòu)

對 ARRAY 元素求值 TypeOfElements():掃描 VARIANT 變量 ARRAY 元素的數(shù)據(jù)類型
(該指令僅適用于 SCL,且只能與 IF 或 CASE 指令一起使用。)
可使用該指令將 VARIANT 變量指向的數(shù)據(jù)類型與任何其它變量的數(shù)據(jù)類型進(jìn)行比較。也可以與 PLC 數(shù)據(jù)類型作比較。如果 VARIANT 變量的數(shù)據(jù)類型為 ARRAY,則將比較 ARRAY 元素的數(shù)據(jù)類型。
IS_ARRAY:檢查 ARRAY 可使用該指令檢查 VARIANT 變量指向的數(shù)據(jù)類型是否為 ARRAY。
CountOfElements:獲取 ARRAY 元素個數(shù) 可使用該指令讀出該變量中 VARIANT 變量指向了多少個 ARRAY 元素。
MOVE_BLK_VARIANT:塊移動 可使用該指令移動動態(tài)和類型安全(集成類型測試)ARRAY。可以為源和目標(biāo) ARRAY 自由選擇限值。ARRAY 元素的數(shù)據(jù)類型必須匹配。
說明
MOVE、MOVE_BLK 和 MOVE_BLK_VARIANT 之間的區(qū)別
可使用“MOVE”指令來復(fù)制完整的結(jié)構(gòu)。
可使用“MOVE_BLK”指令來移動具有已知數(shù)據(jù)類型的 ARRAY 的部分。
僅在您想要移動其數(shù)據(jù)類型僅在程序運行時期間已知的 ARRAY 的部分時,才需要使用 MOVE_BLK_VARIANT 指令。

審核編輯:湯梓紅

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

    關(guān)注

    5008

    文章

    13151

    瀏覽量

    462072
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10825

    瀏覽量

    211149
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

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

    關(guān)注

    0

    文章

    236

    瀏覽量

    13608
  • S7-1500
    +關(guān)注

    關(guān)注

    3

    文章

    300

    瀏覽量

    6341

原文標(biāo)題:博途新變量: 有關(guān) VARIANT 的基本信息

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

收藏 人收藏

    評論

    相關(guān)推薦

    請教軟件安裝順序

    `如圖是V14軟件,大多文件了,不知道裝那個文件夾的文件先`
    發(fā)表于 07-29 21:37

    VARIANT變量的類型VARTYPE

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

    軟件安裝后開機彈出安裝介質(zhì)不可用

    軟件安裝后開機彈出安裝介質(zhì)不可用,請插入DVD或檢查網(wǎng)絡(luò)連接。請問有大神遇到過嗎?
    發(fā)表于 10-18 16:26

    TIAS7-1200學(xué)習(xí)筆記指令集

    本文章對S7-1200plc在軟件梯形圖方式編程中使用的指令進(jìn)行了總結(jié)和俗語化描述。
    發(fā)表于 07-01 09:20

    TIAS7-1200學(xué)習(xí)筆記

    西門子S7-1200數(shù)據(jù)類型總結(jié)筆記,來源于幫助文檔。
    發(fā)表于 07-01 11:51

    西門子1200碼垛機程序應(yīng)用

    西門子1200碼垛機、立體倉庫程序(帶注釋),程序應(yīng)用到變頻器、觸摸屏、步進(jìn)電機、工業(yè)機器人、視覺相機。
    發(fā)表于 09-03 07:42

    Variant類型的變量指令說明

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

    用小電器來顯示廚房的基本信息

    電子發(fā)燒友網(wǎng)站提供《用小電器來顯示廚房的基本信息.zip》資料免費下載
    發(fā)表于 10-21 14:22 ?0次下載
    用小電器來顯示廚房的<b class='flag-5'>基本信息</b>

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

    從TIA V13SP1 開始,S7-1200 V4.0開始,支持以下處理Variant類型的變量的指令。
    的頭像 發(fā)表于 01-03 16:56 ?2467次閱讀

    SIMATIC S7-1500 PLC 變量表定義全局符號和導(dǎo)出和導(dǎo)入變量

    TIA軟件的項目視圖中的項目樹中,雙擊“添加新變量表”,即可生成績新的變量
    發(fā)表于 03-27 09:17 ?1.3w次閱讀

    西門子:有關(guān)VARIANT基本信息

    VARIANT 數(shù)據(jù)類型的參數(shù)是一個指針或引用,可指向各種不同數(shù)據(jù)類型的變量VARIANT 指針無法指向?qū)嵗虼瞬荒苤赶蚨嘀貙嵗蚨嘀貙嵗?ARRAY。VARIANT 指針可以是
    的頭像 發(fā)表于 06-12 10:03 ?6939次閱讀
    西門子<b class='flag-5'>博</b><b class='flag-5'>途</b>:<b class='flag-5'>有關(guān)</b><b class='flag-5'>VARIANT</b>的<b class='flag-5'>基本信息</b>

    西門子:PLC變量

    PLC 變量表包含在整個 CPU 范圍有效的變量和符號常量的定義。系統(tǒng)會為項目中使用的每個 CPU 自動創(chuàng)建一個 PLC 變量表。可以創(chuàng)建其它變量表用于對
    的頭像 發(fā)表于 06-14 10:32 ?8589次閱讀
    西門子<b class='flag-5'>博</b><b class='flag-5'>途</b>:PLC<b class='flag-5'>變量</b>

    西門子有關(guān)STRUCT的基本信息

    STRUCT 數(shù)據(jù)類型是指一種元素數(shù)量固定但數(shù)據(jù)類型不同的數(shù)據(jù)結(jié)構(gòu)。在結(jié)構(gòu)中,也可嵌套 STRUCT 或 ARRAY 數(shù)據(jù)類型的元素。結(jié)構(gòu)可用于根據(jù)過程控制系統(tǒng)分組數(shù)據(jù)以及作為一個數(shù)據(jù)單元來傳送參數(shù)。
    的頭像 發(fā)表于 07-12 10:03 ?5781次閱讀
    西門子<b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>有關(guān)</b>STRUCT的<b class='flag-5'>基本信息</b>

    壓力檢測器的基本信息是什么

    壓力檢測器的基本信息是什么
    的頭像 發(fā)表于 08-25 15:59 ?724次閱讀

    西門子設(shè)計 ProDiag 變量監(jiān)控操作方式

    如果是 FB_Bauteilkontrolle,在檢查容器的情況下允許通過 Config-Bit 取消塊內(nèi)部的消息,并且在輸出端 Stoexx 將用戶定義的變量監(jiān)控參數(shù)化(可從塊幫助得知詳細(xì)信息)。
    發(fā)表于 10-25 10:28 ?3768次閱讀
    西門子<b class='flag-5'>博</b><b class='flag-5'>途</b>設(shè)計 ProDiag <b class='flag-5'>變量</b>監(jiān)控操作方式