0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 作者:機(jī)器人及PLC自動化 ? 2022-07-27 16:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

結(jié)構(gòu)數(shù)據(jù)類型(Struct)

Struct類型是一種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜數(shù)據(jù)類型以及PLC數(shù)據(jù)類型(UDT)等。Struct類型嵌套Struct類型的深度限制為 8 級。Struct類型的變量在程序中可作為一個變量整體,也可單獨(dú)使用組成該Struct的元素。Struct 類型可以在DB、OB/FC/FB接口區(qū)、PLC數(shù)據(jù)類型(UDT) 處定義使用。

Struct數(shù)據(jù)類型使用非常靈活,隨時可以使用,但是相對于PLC數(shù)據(jù)類型 (UDT) 有以下缺點(diǎn),所以建議需要使用Struct類型時,可以使用PLC數(shù)據(jù)類型(UDT)代替。

維護(hù)成本增加:如果對一個Struct進(jìn)行了多次復(fù)制,則在更改過程中該Struct也必需進(jìn)行相應(yīng)的多次更改。

Struct與 PLC 數(shù)據(jù)類型(UDT)的相同結(jié)構(gòu)不兼容。

由于系統(tǒng)會檢查所有結(jié)構(gòu)元素的類型是否匹配,因而會導(dǎo)致性能下降。

存儲空間要求增加:每個Struct都是一個單獨(dú)的對象,其描述信息將加載到PLC中。

Struct應(yīng)用案例

1. 單獨(dú)使用組成該Struct的元素時,和普通的變量沒有區(qū)別,只是每出現(xiàn)一個Struct的嵌套層級,變量名增加一個前綴,如圖1-2所示。

67fd0bfe-0ccc-11ed-ba43-dac502259ad0.jpg

圖1 Struct的定義

680bba50-0ccc-11ed-ba43-dac502259ad0.jpg

圖2 Struct的使用

2. Struct可以將一種類型變量放在一起,利于區(qū)分,如圖3-4所示。

6814972e-0ccc-11ed-ba43-dac502259ad0.jpg

圖3 原始結(jié)構(gòu)

681fd5b2-0ccc-11ed-ba43-dac502259ad0.jpg

圖4 增加了Struct類型的結(jié)構(gòu)

圖4和圖3功能明顯相同,但圖4相對圖3,分類更加清晰。

3. 通訊程序中,通??梢园研枰l(fā)送的數(shù)據(jù)放在一個Struct中,即看做一個整體,這樣在發(fā)送區(qū)只需填寫一個變量即可,如圖5所示。

682f4c40-0ccc-11ed-ba43-dac502259ad0.jpg

圖5 使用了圖4定義的Struct類型

4. MOVE指令支持相同Struct類型的直接傳送,如果傳送雙方是大量數(shù)據(jù),并且結(jié)構(gòu)相同,可以先分別將雙方數(shù)據(jù)建立在一個結(jié)構(gòu),然后用一個MOVE指令一次傳送即可,如圖6所示。

6839dc78-0ccc-11ed-ba43-dac502259ad0.jpg

程序中直接MOVE,即可傳送整個Struct,而不需要若干MOVE。并且,即使兩邊Struct中的對應(yīng)元素名稱不同也可以傳送成功,如圖7所示。

68472d38-0ccc-11ed-ba43-dac502259ad0.jpg

圖7 Struct的傳送

編輯:黃飛

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

    關(guān)注

    0

    文章

    31

    瀏覽量

    11077

原文標(biāo)題:結(jié)構(gòu)數(shù)據(jù)類型(Struct)

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語言中的struct結(jié)構(gòu)體與union共用體

    struct結(jié)構(gòu)體,C程序中經(jīng)常需要用相關(guān)的不同類型數(shù)據(jù)來描述一個數(shù)據(jù)對象。例如,描述學(xué)生的綜合信息時,需要使用學(xué)生的學(xué)號、姓名、性別等
    發(fā)表于 10-13 10:44 ?772次閱讀

    Java的基本數(shù)據(jù)類型與條件結(jié)構(gòu)

    《Java基礎(chǔ)入門》第二篇1 基本數(shù)據(jù)類型,運(yùn)算符與表達(dá)式,條件結(jié)構(gòu),循環(huán)結(jié)構(gòu)...
    發(fā)表于 12-23 08:02

    Struct結(jié)構(gòu)數(shù)據(jù)類型

    Struct類型是一種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struc
    的頭像 發(fā)表于 07-25 17:02 ?3413次閱讀

    用戶定義數(shù)據(jù)類型結(jié)構(gòu)

    用戶定義數(shù)據(jù)類型(UDTs)是你自己創(chuàng)建的特殊數(shù)據(jù)結(jié)構(gòu)。因用戶數(shù)據(jù)類型指派了名字,他們可以用很多次。一旦他們被定義,就可在CPU程序的任意點(diǎn)使用;換句話說,他們是共享數(shù)據(jù)類型,而且他們
    的頭像 發(fā)表于 08-19 10:06 ?1853次閱讀

    asBits函數(shù)如何轉(zhuǎn)換成Bits數(shù)據(jù)類型

    SpinalHDL中Bundle與SystemVerilog中的packed struct很像,在某些場景下,與普通數(shù)據(jù)類型之間的連接賦值可以通過asBits,assignFromBits來實(shí)現(xiàn)。
    的頭像 發(fā)表于 10-17 09:53 ?1055次閱讀

    SpinalHDL中Bundle數(shù)據(jù)類型的轉(zhuǎn)換

    SpinalHDL中Bundle與SystemVerilog中的packed struct很像,在某些場景下,與普通數(shù)據(jù)類型之間的連接賦值可以通過asBits,assignFromBits來實(shí)現(xiàn)。
    的頭像 發(fā)表于 10-17 09:51 ?1623次閱讀

    SystemVerilog中的struct

    SystemVerilog“struct”表示相同或不同數(shù)據(jù)類型的集合。
    的頭像 發(fā)表于 11-07 10:18 ?2857次閱讀

    結(jié)構(gòu)數(shù)據(jù)類型Struct介紹

    Struct類型是一種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struc
    的頭像 發(fā)表于 01-30 10:15 ?2391次閱讀

    定義數(shù)據(jù)類型

    在運(yùn)算之前我們必須首先定義出數(shù)據(jù)類型,定義出腳本支持的數(shù)據(jù)類型,這是運(yùn)算的基礎(chǔ)。 這一小節(jié)我們將定義出數(shù)據(jù)類型,在這里我們暫時定義四個數(shù)據(jù)類型:
    的頭像 發(fā)表于 03-03 10:10 ?1309次閱讀

    Go高性能-兩種內(nèi)存大小為0的數(shù)據(jù)類型

    Go 中的空結(jié)構(gòu)struct{}{} 的內(nèi)存大小等于 0,除此之外,還有別的數(shù)據(jù)類型內(nèi)存大小也等于 0 嗎?
    的頭像 發(fā)表于 05-22 17:33 ?906次閱讀

    西門子博途中聲明STRUCT數(shù)據(jù)類型的變量

    要聲明 STRUCT 數(shù)據(jù)類型的變量,請按以下步驟操作。
    的頭像 發(fā)表于 06-21 09:32 ?5332次閱讀

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

    STRUCT 數(shù)據(jù)類型是指一種元素?cái)?shù)量固定但數(shù)據(jù)類型不同的數(shù)據(jù)結(jié)構(gòu)。在結(jié)構(gòu)中,也可嵌套 STRUCT
    的頭像 發(fā)表于 07-12 10:03 ?7268次閱讀
    西門子博途有關(guān)<b class='flag-5'>STRUCT</b>的基本信息

    西門子博途:使用PLC數(shù)據(jù)類型 (UDT)

    PLC 數(shù)據(jù)類型 (UDT) 是可自行定義且在程序中可以多次使用的數(shù)據(jù)結(jié)構(gòu)。 此結(jié)構(gòu)可包含不同數(shù)據(jù)類型的多個元素。 聲明 PLC 數(shù)據(jù)類型
    的頭像 發(fā)表于 07-12 17:36 ?9746次閱讀
    西門子博途:使用PLC<b class='flag-5'>數(shù)據(jù)類型</b> (UDT)

    PLC 數(shù)據(jù)類型 (UDT) 的基本知識

    可直接使用關(guān)鍵字 STRUCT 聲明為一個結(jié)構(gòu)。因此,嵌套深度限制為 8 級。 PLC 數(shù)據(jù)類型 (UDT) 可在程序代碼中統(tǒng)一更改和重復(fù)使用。系統(tǒng)自動更新該數(shù)據(jù)類型的所用使用位置。
    的頭像 發(fā)表于 09-10 09:46 ?6052次閱讀
    PLC <b class='flag-5'>數(shù)據(jù)類型</b> (UDT) 的基本知識

    typedef和struct有啥區(qū)別

    struct 結(jié)構(gòu)體名稱 { 數(shù)據(jù)類型 成員 1 ;數(shù)據(jù)類型 成員 2 ;...}; 例如,我們可以定義一個表示學(xué)生
    的頭像 發(fā)表于 08-20 11:00 ?2496次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品