在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

Struct應用案例

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-07-25 10:17 ? 次閱讀

結構數據類型(Struct)

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

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

維護成本增加:如果對一個Struct進行了多次復制,則在更改過程中該Struct也必需進行相應的多次更改。

Struct與 PLC 數據類型(UDT)的相同結構不兼容。

由于系統會檢查所有結構元素的類型是否匹配,因而會導致性能下降。

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

Struct應用案例

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

fbe28154-0b5b-11ed-ba43-dac502259ad0.jpg

圖1 Struct的定義

fbfc7d16-0b5b-11ed-ba43-dac502259ad0.jpg

圖2 Struct的使用

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

fc0935ba-0b5b-11ed-ba43-dac502259ad0.jpg

圖3 原始結構

fc21131a-0b5b-11ed-ba43-dac502259ad0.jpg

圖4 增加了Struct類型的結構

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

3. 通訊程序中,通常可以把需要發送的數據放在一個Struct中,即看做一個整體,這樣在發送區只需填寫一個變量即可,如圖5所示。

fc354664-0b5b-11ed-ba43-dac502259ad0.jpg

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

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

fc485786-0b5b-11ed-ba43-dac502259ad0.jpg

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

fc5fb354-0b5b-11ed-ba43-dac502259ad0.jpg

圖7 Struct的傳送

審核編輯 :李倩

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

    關注

    5017

    文章

    13394

    瀏覽量

    465663
  • 數據類型
    +關注

    關注

    0

    文章

    236

    瀏覽量

    13669

原文標題:結構數據類型(Struct)

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

收藏 人收藏

    評論

    相關推薦

    使用DMA寫flash后,讀取數據出現錯位現象,是什么原因導致的?如何解決?

    配置 void dma_init(uint8_t *data_buffer, uint32_t data_length) { dma_single_data_parameter_struct
    發表于 11-13 06:24

    零基礎開發小安派-Eyes-S1【外設篇】——PWM

    。#define PWM_POLARITY_ACTIVE_LOW 0#define PWM_POLARITY_ACTIVE_HIGH 11.struct bflb_pwm_v2_config_s說明
    的頭像 發表于 11-06 16:10 ?222次閱讀
    零基礎開發小安派-Eyes-S1【外設篇】——PWM

    linux內核中通用HID觸摸驅動

    在linux內核中,為HID觸摸面板實現了一個通用的驅動程序,位于/drivers/hid/hid-multitouch.c文件中。hid觸摸驅動是以struct hid_driver實現,首先定義一個描述hid觸摸驅動的結構mt_driver。
    的頭像 發表于 10-29 10:55 ?1020次閱讀
    linux內核中通用HID觸摸驅動

    typedef和struct有啥區別

    在C語言中, typedef 和 struct 是兩個非常重要的關鍵字,它們在定義數據結構時扮演著關鍵的角色。然而,它們之間有一些明顯的區別。 1. struct 關鍵字 struct (結構體
    的頭像 發表于 08-20 11:00 ?1385次閱讀

    typedef struct和直接struct的區別

    在C語言中, typedef 和 struct 是兩種不同的關鍵字,它們在定義和使用上有著明顯的區別。 typedef struct 和直接 struct 在 C 語言中用于定義結構體類型,但它們在
    的頭像 發表于 08-20 10:58 ?3132次閱讀

    rtthread 5.20安裝systemview 2.52a出錯的原因?

    /SystemView_Src/Config/SEGGER_SYSVIEW_RTThread.c(73): error: no member named \'name\' in \'struct
    發表于 07-12 09:36

    WiFi在最新的RTOS SDK中不起作用是怎么回事?

    */ wifi_set_opmode(STATIONAP_MODE); struct station_config *config = (struct station_config *)malloc
    發表于 07-10 07:11

    stm32h743 lwip freertos socket建立失敗的原因?

    connect(sock, (struct sockaddr*) client_addr, sizeof(struct sockaddr)) 每當程序啟動首次執行sokcet連接時,總會失敗很多次,才能成功建立連接,想咨詢會是哪些問題導致的
    發表于 07-05 06:05

    esp32s2 dns后連接遠程服務器報錯errno 22是什么原因?

    大家好,按照網上的代碼的寫法寫的 // 1、定義一個hints結構體,用來設置函數的getaddrinfo()的使用方式 const struct addrinfo hints
    發表于 06-21 08:03

    esp32s2利用nvs存儲blob出現亂碼怎么解決?

    我想利用NVS存儲WiFi列表,定義了結構體如下: typedef struct _wifi_conf wifi_conf_struct; struct _wifi_conf { char
    發表于 06-20 07:15

    嵌入式中C語言結構體基本實現

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構是C語言編程中允許您存儲不同數據類型的數據。 結構體的定義 ????要想定義結構,必須用到 struct 關鍵字,struct的語句格式
    的頭像 發表于 05-11 08:49 ?1134次閱讀
    嵌入式中C語言結構體基本實現

    Framebuffer 驅動程序框架

    , name, ???? struct ? fb_info ?* info ?=?=? registered_fb [0]; 例子2: app:??read
    的頭像 發表于 05-11 08:49 ?936次閱讀
    Framebuffer 驅動程序框架

    STM8S頭文件的 __near是什么意思?

    #define __IO_REG8_BIT(NAME, ADDRESS, ATTRIBUTE, BIT_STRUCT) __near __no_init volatile ATTRIBUTE
    發表于 05-07 06:05

    STM32串口發送一個字符,發送和接收的數據不同是怎么回事?

    void usart_Config(void) { /*----------------串口配置----------------*/ GPIO_InitTypeDefGPIO_Struct
    發表于 04-10 06:32

    C語言結構體史上最詳細的講解【軟件干貨】

    struct結構體數據類型 前言 我們知道,在C語言中有一些基本的數據類型,如?char?int?float?long?double?string(c99) 等等數據類型,他們可以表示一些事物
    的頭像 發表于 03-28 17:52 ?863次閱讀
    主站蜘蛛池模板: 丁香花成人另类小说 | 国产精品美女免费视频观看 | 日本高免费观看在线播放 | 国产久爱青草视频在线观看 | 国产成人综合网 | 天天操天天插天天干 | 天天夜夜狠狠一区二区三区 | 狠狠丁香激情久久综合 | 91激情| 色色激情网| 久久婷婷五综合一区二区 | 狠狠色噜噜狠狠狠狠97 | 欧美涩色| 四虎www. | 色多多免费观看在线 | 国产成人经典三级在线观看 | 日韩亚色 | 日韩美女奶水喂男人在线观看 | 四虎成人影院网址 | 啪啪.com| 日本精品高清一区二区2021 | 日韩中文字幕电影 | 老色视频 | 性欧美17一18sex性高清 | 四虎中文| 又大又粗进出白浆直流动态图 | 婷婷综合激情网 | 最新eeuss影院第256页 | 五月婷婷色视频 | 永久免费看片 | 四虎影视网站 | 视频在线观看一区二区三区 | 国产精品理论片在线观看 | 欧美三级一区二区三区 | 亚洲综合久久久久久888 | videofreeones性欧美另类 | 免费一级欧美在线观看视频片 | 欧美操操操操 | 美女视频网站色 | 黄色精品视频 | 国产成人a一区二区 |