数据块(DB)的结构

描述

数据块(DB)的结构

定义(Definition)

在一个程序中,可以被所有块存取的特定用户数据包含在数据块.每个FB、FC或OB均能读写这些数据块。

有两种数据块类型:

数据块(Data blocks)
能被所有S7程序的逻辑块存取。每个FB、FC或OB读或写包含在这些数据块里的数据。

指派给一个FB的数据块(实例数据块)(Data blocks assigned to an FB (instance DB))
实例数据块是指派给特定功能块的数据块。它们功能块的指定的本地数据。当FB被用户程序调用时,这些数据块被S7-SCL编译器自动建立。

句法(Syntax)

编译器

DB标识符(DB Identifier)

在关键字"DATA_BLOCK"之后,键入关键字DB作为数据块的标识符,后面跟一个块号或数据块的符号名,块号是1到65533中间的值。

例子(Examples:)

DATA_BLOCK DB20
DATA_BLOCK MEASRANGE

数据块声明部分(DB Declaration Section)

在DB的声明部分定义DB的数据结构。有两种方法做这件事,如下:

通过指派到用户定义数据类型(By assigning a user-defined data type)
在此,指派一个先在程序中定义的用户数据类型的标识符,然后数据块取得该UDT的结构。你可以在数据块的赋值部分指派变量的初始值。

通过定义STRUCT(结构)数据类型(By defining a STRUCT data type)
在STRUCT数据类型的说明中,指定了存储在DB中的每个变量的数据类型,可能也给出了初始值。

例子(Example)

DATA_BLOCK DB20
    STRUCT     // 声明部分
        VALUE:ARRAY [1..100] OF INT;
    END_STRUCT
BEGIN          // 赋值部分开始
:
END_DATA_BLOCK // 数据块结束

数据块赋值部分(DB Assignment Section)

在赋值部分,能够改写在声明部分声明的数据,以便指定实际应用所需的特定值。

赋值部分用关键字BEGIN开始,然后包含一系列赋值语句。

编译器

当指派初始值(初始化)时,    键入属性和注释采用STL句法。关于如何写常量、属性和注释,使用STL在线帮助或参考STEP 7的资料。

例子(Example)

// 带指定STRUCT数据类型的数据块
DATA_BLOCK DB10
    STRUCT // 带初始值声明的数据声明

VALUE  : ARRAY [1..100] OF INT := 100 (1) ;
        SWITCH : BOOL   := TRUE ;
        S_WORD : WORD   := W#16#FFAA ;
        S_BYTE : BYTE   := B#16#FF ;
        S_TIME : S5TIME := S5T#1h30m10s ;
    END_STRUCT

BEGIN // 赋值部分
      // 为特定的数组元素赋值
    VALUE [1] := 5;
    VALUE [5] := -1;

END_DATA_BLOCK

// 带用户定义数据类型指定的数据块
DATA_BLOCK DB11
    UDT 51
BEGIN
END_DATA_BLOCK

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_13700882 2023-07-14
0 回复 举报
请问图片中的scl中文帮助文档哪里可以下载啊 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分