包含以下字段的 struct 怎么解决_S7-300/400进阶笔记4-2:STEP7的“结构”STRUCT数据类型的用法...
復(fù)雜數(shù)據(jù)類型是由基本數(shù)據(jù)類型通過一定的規(guī)則,有機(jī)結(jié)合在一起,形成的新的、復(fù)雜數(shù)據(jù)類型,STEP7中定義了以下幾種復(fù)合數(shù)據(jù)類型:
本文,我們介紹一下結(jié)構(gòu)——STRUCT。
STRUCT表示由一個(gè)不同數(shù)據(jù)類型的數(shù)據(jù)組合在一起,形成的一個(gè)單元。一個(gè)結(jié)構(gòu)數(shù)據(jù)必須至少包含兩個(gè)元素,可以是基本數(shù)據(jù)類型,也可以是復(fù)雜數(shù)據(jù)類型,甚至一個(gè)結(jié)構(gòu)數(shù)據(jù)可以是另一個(gè)結(jié)構(gòu)的元素(即結(jié)構(gòu)的嵌套)。結(jié)構(gòu)最多可以嵌套八層。
當(dāng)我們?cè)贒B中定義數(shù)據(jù)時(shí),實(shí)際上就聲明了一個(gè)“結(jié)構(gòu)”。結(jié)構(gòu)可以在邏輯塊的變量聲明表或在用戶自定義的數(shù)據(jù)類型UDT中聲明。
一、 創(chuàng)建結(jié)構(gòu)
創(chuàng)建“結(jié)構(gòu)”的步驟:
1、“結(jié)構(gòu)”體由關(guān)鍵字“STRUCT”和“END_STRUCT”標(biāo)識(shí);
2、給結(jié)構(gòu)指定名字;
3、定義結(jié)構(gòu)中的“元素”,并根據(jù)需求,為每個(gè)元素指定數(shù)據(jù)類型:可以是基本數(shù)據(jù)類型,也可以是復(fù)雜數(shù)據(jù)類型,甚至是一個(gè)“結(jié)構(gòu)”。
如圖2.1所示,在DB3中定義了一個(gè)名為“motor_info”的結(jié)構(gòu),包含下列元素:
通過定義結(jié)構(gòu)“motor_info”,可以將與電機(jī)相關(guān)的數(shù)據(jù)集中起來,方便管理和維護(hù)。
如圖2.1所示,定義在共享DB塊中數(shù)據(jù),由“STRUCT”開始,“END_STRUCT”結(jié)束,因此其本質(zhì)上也是一個(gè)結(jié)構(gòu)體。
二、“結(jié)構(gòu)”的存儲(chǔ)和訪問
與“數(shù)組”相同,結(jié)構(gòu)在存儲(chǔ)介質(zhì)中占據(jù)連續(xù)的存儲(chǔ)空間,圖2.1所示的結(jié)構(gòu)“motor_info”,存儲(chǔ)的格式如圖2.2所示。
有兩種方法可以訪問到結(jié)構(gòu)的各個(gè)“元素”。
(1)使用符號(hào)地址。
格式為:
如我們要訪問圖2.1中,“speed”元素,完整的訪問方式是:DB3.motor_info.speed。
(2)使用絕對(duì)地址。
“speed”元素在DB3中占據(jù)10.0開始的4個(gè)字節(jié)的空間,因此,可用絕對(duì)地址來訪問它:DB3.DBD10
<
總結(jié)
以上是生活随笔為你收集整理的包含以下字段的 struct 怎么解决_S7-300/400进阶笔记4-2:STEP7的“结构”STRUCT数据类型的用法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Adobe flash builder
- 下一篇: 事务管理基础:两段锁协议、活锁、死锁相关