要求
块接口已打开。
操作步骤
要声明 STRUCT 数据类型的变量,请按以下步骤操作:
|
在块接口中,选择需声明的部分。 在“名称”(Name) 列中,输入变量的名称。 在“数据类型”列中输入“Struct”。输入时系统将提供自动完成功能。 在新变量后将插入空的缩进行。 在第一个空行中插入第一个结构元素。 在该元素后会再插入一个空行。 选择结构元素的数据类型。 可选:更改在块接口其它列中显示的结构元素的属性。 对于所有其它结构元素,重复执行步骤 4 到 6。 不必显式完成该结构。结构会以输入的最后一个元素结束。 要在结构后插入新变量,请在结构结尾后留一个空行,然后在第二个空行中启动新变量。 |
结果
创建数据类型 STRUCT 的变量。
|
说明 S7-1500:一个数据块中最多有 252 个结构 一个数据块中最多允许有 252 个结构。如果需要更多结构,则必须重新构造自己的程序。例如,可以在多个全局数据块中创建结构。 |
TRUCT 声明
STRUCT 数据类型是指一种元素数量固定但数据类型不同的数据结构。
也可以基于 PLC 数据类型 (UDT) 创建结构。为此,需将 PLC 数据类型指定为一个结构化数据类型。小系统将通过工具提示,显示该 PLC 数据类型的各个元素。
语法
声明 STRUCT 所用的语法如下:
| 声明 | 语法 | 示例 |
|---|---|---|
| STRUCT |
<名称> : Struct <元素名称> : <数据类型> [:= <值>]; <元素名称> : <数据类型> [:= <值>]; ... END_Struct := (<初始化列表>); |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL; END_Struct := (6,0, TRUE) ; |
| 基于 PLC 数据类型 (UDT) 的 STRUCT |
<名称> : " |
myStruct : "myType" := (6,0, TRUE); |
|
说明 S7-1500:一个数据块中最多有 252 个结构 S7-1500 系列 CPU 中的一个数据块中最多允许有 252 个结构。如果需要更多结构,则必须重新构造自己的程序。例如,可以在多个全局数据块中创建结构。 |
STRUCT 的初始化
STRUCT 初始化为可选操作。进行初始化时,可在变量声明后直接跟随一个值,也可使用初始化列表。
初始化列表位于关键字 END_STRUCT 之后,包含在一个括号内并通过 := 进行赋值。如果该结构中还包含下级结构,则可通过括号嵌套进行初始化。如果这两种初始化方式均未采用,则可使用初始化列表中的值。
初始化列表使用的语法如下所示:
| 声明 | 语法 | 示例 | 注释 |
|---|---|---|---|
| STRUCT 的初始化 |
<名称> : Struct <元素名称> : <数据类型> [:= <值>]; ... END_Struct |
myStruct : Struct mem_1 : Int := 1; mem_2 : Int := 2; mem_3 : BOOL := FALSE End_Struct |
该结构中的元素将进行如下初始化: // mem_1 := 1 // mem_2 := 2 // mem_3 := FALSE |
| STRUC 的初始化列表 | := (<值>,<值>,<值>... ) |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL End_Struct:=(2,0,TRUE); |
该结构中的元素将进行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE |
| 嵌套 STRUC 的初始化列表 | := (<值>,(<值>,<值>... )) |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : Struct mem_4 : BOOL; mem_5 : BOOL; End_Struct; End_Struct:=(2,0, (TRUE,TRUE)); |
该结构中的元素将进行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_4 := TRUE // mem_5 := TRUE |
| STRUC 的初始化列表(带元素命名规范) | := (<元素名称> := <值>), (<元素名称> := <值>)... |
myStruct : Struct mem_1 : Int; mem_2 : Int; End_Struct:=(mem_2:=55); |
该结构中的元素将进行如下初始化: // mem_2 := 55 |
| PLC 数据类型 (UDT) 的初始化列表 | := (<值>,<值>,<值>... ) | myStruct : "myType" := (2,0,TRUE); |
该结构中的元素将进行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE |
| 嵌套 PLC 数据类型 (UDT) 的初始化列表 | := (<值>,(<值>,<值>... )) | myStruct : "myType" := (2,0,(TRUE,TRUE); |
该结构中的元素将进行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE // mem_4 := TRUE |
| PLC 数据类型 (UDT) 的初始化列表(带元素命名规范) | := (<元素名称> := <值>), (<元素名称> := <值>)... | myStruct : "myType" := (mem_1:=22,mem_2:=55); |
该结构中的元素将进行如下初始化: // mem_1 := 22 // mem_2 := 55 |
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
plc
+关注
关注
5052文章
14763浏览量
488355 -
西门子
+关注
关注
98文章
3364浏览量
120672 -
数据类型
+关注
关注
0文章
237浏览量
14231 -
Struct
+关注
关注
0文章
31浏览量
11292
原文标题:西门子博途:声明 STRUCT 数据类型的变量
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
Verilog 变量声明与数据类型二
Verilog 变量声明与数据类型二上节介绍了wire,reg数据类型及其用法,并对变量定义中的向量的定义及使用做了说明。本节主要介绍其它几
发表于 08-06 09:21
Verilog 变量声明与数据类型一
Verilog 变量声明与数据类型一Verilog语法中最基本的数据类型有 线网(wire),寄存器(reg)和整数(integer)三种类型
发表于 08-10 14:01
西门子plc数据类型_西门子plc通讯方式
西门子PLC的品质非常好,其网络稳定性、开放性深受工控人员的喜爱,而且编程软件分类多,使用方便。在国内工控界具有显著地位。虽然大家对西门子PLC都有一定的了解,但要你说出西门子PLC各种通信方式的特点,相信很多人都不能完整答出。
发表于 07-25 10:57
•1.6w次阅读
西门子PLC模拟量输入输出相关数据类型转换
plc模拟量输入输出都会涉及到数据类型的互转问题,然而西门子300系统对于数据格式有着明确的规定,一般的四则运算都是在同一数据类型下才能进行的,这也是一直以来困扰初学者的一个问题。
发表于 03-19 08:42
•2.1w次阅读
重视变量的数据类型
不管在什么语言中,定义一个变量时必然要在内存中开辟一个相应大小的空间来存储该变量。不同的数据类型在内存所占的空间大小不同,其所能表示的数据范围也不相同。在单片机C语言中,常用的基本
发表于 01-13 15:05
•1次下载
西门子博途F型PLC数据类型与标准PLC数据类型的差别
可以像使用标准 PLC 数据类型 (UDT) 那样,声明和使用 F 型 PLC 数据类型 (UDT) 。可以在安全程序中以及标准用户程序中使用 F 型 PLC 数据类型 (U
结构数据类型(Struct)及应用案例
Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使
ARRAY 数据类型的变量
要求 全局数据块已打开。 操作步骤 要声明一个 ARRAY 数据类型的变量,请按以下步骤操作: 在“名称”(Name) 列中,输入变量的名称
西门子PLC UDT数据类型的使用方法
西门子PLC(Programmable Logic Controller)的自定义数据类型(User Defined Type,简称UDT)是一种自定义的数据结构,可以根据具体需求定义一种包含多个不同
西门子博途中声明STRUCT数据类型的变量
评论