首页 理论教育 共享数据块与数据类型优化方案:深入了解数据块与数据类型共享

共享数据块与数据类型优化方案:深入了解数据块与数据类型共享

时间:2023-06-27 理论教育 版权反馈
【摘要】:数据块丰富的数据结构便于提高程序的执行效率和进行数据管理。与逻辑块不同,数据块只有变量声明部分,没有程序指令部分。用户程序中所有的逻辑块都可以使用共享数据块和符号表中的数据。在符号表中,共享数据块的数据类型是它本身,背景数据块的数据类型是对应的功能块。

共享数据块与数据类型优化方案:深入了解数据块与数据类型共享

1.数据块的分类

数据块(DB)用来分类储存设备或生产线中变量的值,数据块也是用来实现各逻辑块之间的数据交换、数据传递和共享数据的重要途径。数据块丰富的数据结构便于提高程序的执行效率和进行数据管理。与逻辑块不同,数据块只有变量声明部分,没有程序指令部分。

数据块分为共享数据块(DB)和背景数据块(DI)。在共享数据块和符号表中声明的变量都是全局变量。用户程序中所有的逻辑块(FB、FC、SFB、SFC和OB)都可以使用共享数据块和符号表中的数据。

在符号表中,共享数据块的数据类型是它本身,背景数据块的数据类型是对应的功能块。

2.生成共享数据块

用鼠标右键单击SIMATIC管理器左边窗口中的“块”,在弹出的菜单中执行“插入新对象”→“数据块”命令,生成新的数据块,默认的类型为共享数据块。

3.基本数据类型

基本数据类型包括位(Bool)、字节(Byte)、字(Word)、双字(Dword)、整数(Int)、双整数(Dint)和浮点数(Float,或称实数Real)等(见3.2.2节)。

4.复杂数据类型

复杂数据类型包括日期和时间(DATELANDLTIME)、字符串(String)、数组(Array)、结构(Struct)和用户自定义的数据类型(UDT)。

(1)日期和时间

日期和时间(DATE_AND_TIME,缩写为DT)占用8个字节的BCD码。第1~6个字节分别存储年的低两位、月、日、时、分和秒,毫秒存储在整个第7字节和第8字节的高4位,星期存放在第8字节的低4位。星期日的代码为1,星期一~星期六的代码为2~7。例如2015年5月22日12点30分25.123秒可以表示为DT#15-5-22-12:30:25.123,在软件中输入时可以省略毫秒部分。

通过调用程序编辑器的文件夹“\库\Standard Library\IEC Function Block”中的IEC功能,可以实现DATE_AND_TIME数据类型与基本数据类型之间的相互转换、日期时间的比较和加、减,具体的使用方法见有关FC的在线帮助。(www.xing528.com)

SFC0"SET_CLK"用于设置和启动CPU时钟的时间和日期。SFC1"READ_CLK"用于读取CPU时钟当前的日期和时间。OB1的局部变量中有调用它的日期时间信息。

(2)字符串

字符串(String)是字符(Char)组成的一维数组,每个字节存放1个字符。第一个字节是字符串的最大字符长度,第二个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,一个字符串最多254个字符。

(3)数组

数组(ARRAY)是同一数据类型的数据的组合,数组的维数最多为6维。图4-3给出了一个二维数组AR-RAY[1..2,1..3]的内部结构,它共有6个字节型元素,图中的每一小格为二进制的1位,每个数组元素占一行(一个字节)。ARRAY后面的方括号中的数字用来定义每一维的数组元素的下标的下限值和上限值,它们用两个小数点隔开,可以是任意的整数(-32768~32767),上限值应大于下限值。各维之间的数字用逗号隔开。

978-7-111-54209-4-Chapter04-4.jpg

图4-3 二维数组的结构

(4)结构

结构(STRUCT)是不同数据类型的数据的组合。可以用基本数据类型、复杂数据类型(包括数组和结构)和用户自定义数据类型(UDT)作结构的元素,结构可以嵌套8层。用户可以把过程控制中有关的数据统一组织在一个结构中,作为一个数据单元来使用,而不是使用大量的单个的元素,为统一处理不同类型的数据或参数提供了方便。

(5)用户自定义数据类型

用户自定义数据类型(User-Defined Data Types)简称为UDT,是一种特殊的数据结构,用户只需要对它定义一次,定义好以后可以在用户程序中作为数据类型使用。

可以用UDT来产生大量的具有相同数据结构的数据组合,用这些数据组合来输入用于不同目的的实际数据。例如生成用于颜料混合配方的UDT后,可以用它来生成用于不同颜色配方的数据组合。使用UDT可以节约录入数据的时间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈