首页
学习
活动
专区
圈层
工具
发布
清单首页PLC文章详情

TIA 博途中,如何初始化优化DB的结构体?

在优化块中,临时结构变量在PLC初始化时接收初始值。

描述

在非优化块中,临时变量不进行初始化,换句话说,如果在使用之前没有被初始化,临时变量将被赋予一个随机值,临时存储区的变量仅在一个周期内有效。

  • 例如,Bool类型变量被赋值“False”
  • PLC数据类型中的元素被预设为默认值,这些默认值在声明PLC数据类型(UDT)时被定义,图1显示了PLC数据类型的定义。

图.1

  • 数组类型的元素被预设为对应数据类型的初始值
  • 字符串或者宽字符串类型的变量被自动创建,最大长度为16382个字符和实际长度为0

“typeMotorData”数据类型中定义的默认值被DB中定义的变量用作起始值,例如在本例中定义的数据类型“Array[1..10]of typeMotorData”。

图.2显示了一个数据块结构体,DB中“motorField”为变量,数据类型为“Array[1..10]of typeMotorData”

图.2

在本例中,使用FOR指令来初始化DB中的变量“motorField”。应用SCL语言中的FOR指令,一直循环执行到“tempCount”到达设定值。由于数据类型是“Array[1..10]oftypeMotorData”的数组类型,必需循环10次(“1 TO 10 DO”)来初始化结构变量中的所有数组元素。

图. 3

注意:在已经声明的PLC数据类型中可以定义初始值,每一个基于PLC数据类型的变量都以此为起始值。如果你想对一个运行的设备进行程序复位,只需要初始化结构变量,在从STOP到RUN的上电过程中,从装载存储区中调用初始值响应复位操作。

系统函数“READ_DBL”

使用扩展指令“READ_DBL”,同样可以初始化一个数据块的单个的变量。从装载存储区(MMC卡)的DB中拷贝数据到数据存储区的目标DB中,这一方法在下面的情形中也是特别有用的:

  • 如果变量值起始值不是0但需要复位到初始值时
  • 不想创建临时变量
  • 不用频繁或者周期的读取变量值

补充知识:

创建PLC数据类型

描述 使用SIMATIC S7-1500控制器用户可以创建PLC 数据类型。这些数据类型定义了数据结构可在程序中多次使用。这意味着 PLC 数据类型是与 SIMATIC S7-300/400 中的用户自定义数据类型 (UDT) 相对应的。在"PLC Data Types" 文件夹下创建数据类型。

说明

创建PLC数据类型更为详细的描述请参考STEP7(博途)的在线帮助。

例如,可以使用PLC数据类型配置一个数据块。通过此操作使得数据块获得一个预先定义的结构。

下面是使用PLC数据类型的优势。

  • 通过优化数据存储增强创建代码的性能
  • 使用数据类型仅需对需要的数据记录做简单的声明。
  • 源于统一的数据结构程序简单易读。
下一篇
举报
领券