日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struct类型重定义 不同的基类型_汇总贴:STEP7的复杂数据类型有哪些?

發布時間:2024/9/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struct类型重定义 不同的基类型_汇总贴:STEP7的复杂数据类型有哪些? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復雜數據類型是由基本數據類型通過一定的規則,有機結合在一起,形成的新的、復雜數據類型,STEP7中定義了以下幾種復合數據類型:


一、數組ARRAY

ARRAY表示由一個相同數據類型的數據組合在一起,形成的一個單元。ARRAY是復雜數據類型,它的元素可以是基本數據類型,也可以是復雜數據類型,但所有的元素必須都是相同類型的。

ARRAY的定義規則:

1、用關鍵字ARRAY聲明數組

2、給數組指定名字

3、使用下標指定數組的大小。一個數組最多有6個維度,每個維度之間用逗號隔開,維數的第一個數字和最后一個數字之間用兩個點隔開。

4、指定數組中元素的數據類型

5、數組可在DB塊、或邏輯塊的變量聲明中定義。

如圖1.1所示,為在DB塊中定義數組的過程。在邏輯塊的變量聲明中,定義數組的方法類似。

多維數組的定義方法類似,如圖1.2所示為1-6維數組的表示方法。

數組的存儲和訪問

數組在存儲介質中占據連續的存儲空間,圖1.1所示的數組,存儲的格式如圖1.3所示。

數組Ins_ARRAY中元素的數據類型為"Word",因此,每一個元素占用一個"字"的空間,整個數組共4個元素,共占用4個字的空間。

訪問數組中的數據,可采用下標訪問法。如我們要訪問Ins_ARRAY數組中的第二個元素,可采用如下格式:


二、結構 STRUCT

STRUCT表示由一個不同數據類型的數據組合在一起,形成的一個單元。一個結構數據必須至少包含兩個元素,可以是基本數據類型,也可以是復雜數據類型,甚至一個結構數據可以是另一個結構的元素(即結構的嵌套)。結構最多可以嵌套八層。

當我們在DB中定義數據時,實際上就聲明了一個"結構"。結構可以在邏輯塊的變量聲明表或在用戶自定義的數據類型UDT中聲明。

創建結構

創建"結構"的步驟:

1、"結構"體由關鍵字"STRUCT"和"END_STRUCT"標識;

2、給結構指定名字;

3、定義結構中的"元素",并根據需求,為每個元素指定數據類型:可以是基本數據類型,也可以是復雜數據類型,甚至是一個"結構"。

如圖2.1所示,在DB3中定義了一個名為"motor_info"的結構,包含下列元素:

通過定義結構"motor_info",可以將與電機相關的數據集中起來,方便管理和維護。

如圖2.1所示,定義在共享DB塊中數據,由"STRUCT"開始,"END_STRUCT"結束,因此其本質上也是一個結構體。

"結構"的存儲和訪問

與"數組"相同,結構在存儲介質中占據連續的存儲空間,圖2.1所示的結構"motor_info",存儲的格式如圖2.2所示。

有兩種方法可以訪問到結構的各個"元素"。

(1)使用符號地址

格式為

如我們要訪問圖2.1中,"speed"元素,完整的訪問方式是:DB3.motor_info.speed。

(2)使用絕對地址

"speed"元素在DB3中占據10.0開始的4個字節的空間,因此,可用絕對地址來訪問它:DB3.DBD10


三、字符串STRING

字符串用來定義具有最多254個字符(char)的一維數組。其中,字符(char)即ASCII字符,占一個字節的空間。

字符串的格式為:

STRING變量的最大占空為256個字符,其中254個字節為有效字節。即一個長度為n的字符串,占據的空間為n+2個字節。2個附加的字節用來存放字符串的最大定義長度和當前長度。示例見圖3.2。


四、日期和時間:DATE_AND_TIME

DATE_AND_TIME表示由日期和時間組成的時間,可以使用縮寫DT來代替DATE_AND_TIME。

DATE_AND_TIME變量由8個字節構成,分別代表年、月、日、時、分、秒、毫秒,最后一個字節0-3位代表星期,4-7位表示毫秒,數據以BCD碼表示。如圖4所示,為DATE_AND_TIME的數據格式。

DATE_AND_TIME數據類型的取值范圍為:

最小:DT#1900-01-01-0:00:00.000

最大:DT#2089-12-31-23:59:59.999


五、用戶自定義的數據類型:UDT

STEP7支持用戶將基本數據類型、復雜數據類型、甚至是已經定義好的其他UDT類型等組合起來,形成新的數據類型,稱之為"用戶自定義數據類型 UDT"。

UDT具有自己的名稱,可以多次使用。

定義UDT

這里,仍然以表(二)的"結構實例:motor_info"為例,進行討論。

1、 新建一個UDT,如圖5.1所示。

2、 根據設計要求(電機工程數據),定義UDT1的元素,如圖5.2所示。

使用UDT1

定義好UDT1后,就可以像使用基本數據類型一樣,使用用戶自定義數據類型UDT1了。可以在程序體中用它定義變量,也可以在DB塊中、邏輯塊的接口及臨時變量中使用它們,如圖5.3所示,在DB塊和FC的接口聲明中,使用UDT1。

UDT1的長度及存儲

用戶自定義數據類型的"長度"由其內部定義的元素所占空間決定。以UDT1為例,它由一個bool、三個real及一個int構成,其存儲結構如圖5.4所示。

UDT的優點

通過創建一個UDT,并將其分配給多個DB塊,可以生成具有相同數據結構的大量數據塊。然后就可以使用這些數據塊為特定的任務管理不同的實際值。如圖5.5所示,利用UDT1,可以快捷、方便的創建數據結構相同的DB塊,以滿足工業現場大量不同用途、但功能類似的設備的數據管理及工藝控制,避免繁瑣、重復的勞動。


<

總結

以上是生活随笔為你收集整理的struct类型重定义 不同的基类型_汇总贴:STEP7的复杂数据类型有哪些?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。