在优化块中,临时结构变量在PLC初始化时接收初始值。
描述
在非优化块中,临时变量不进行初始化,换句话说,如果在使用之前没有被初始化,临时变量将被赋予一个随机值,临时存储区的变量仅在一个周期内有效。
- 例如,Bool类型变量被赋值“False”
- PLC数据类型中的元素被预设为默认值,这些默认值在声明PLC数据类型(UDT)时被定义,图1显示了PLC数据类型的定义。
- 数组类型的元素被预设为对应数据类型的初始值
- 字符串或者宽字符串类型的变量被自动创建,最大长度为16382个字符和实际长度为0
“typeMotorData”数据类型中定义的默认值被DB中定义的变量用作起始值,例如在本例中定义的数据类型“Array[1..10]of typeMotorData”。
图.2显示了一个数据块结构体,DB中“motorField”为变量,数据类型为“Array[1..10]oftypeMotorData”
在本例中,使用FOR指令来初始化DB中的变量“motorField”。应用SCL语言中的FOR指令,一直循环执行到“tempCount”到达设定值。由于数据类型是“Array[1..10]oftypeMotorData”的数组类型,必需循环10次(“1 TO 10DO”)来初始化结构变量中的所有数组元素。
注意:
在已经声明的PLC数据类型中可以定义初始值,每一个基于PLC数据类型的变量都以此为起始值。如果你想对一个运行的设备进行程序复位,只需要初始化结构变量,在从STOP到RUN的上电过程中,从装载存储区中调用初始值响应复位操作。
系统函数“READ_DBL”
使用扩展指令“READ_DBL”,同样可以初始化一个数据块的单个的变量。从装载存储区(MMC卡)的DB中拷贝数据到数据存储区的目标DB中,这一方法在下面的情形中也是特别有用的:
- 如果变量值起始值不是0但需要复位到初始值时
- 不想创建临时变量
- 不用频繁或者周期的读取变量值
更多信息
更多信息可以参考条目“1500中字符串类型临时变量初始化”
创建环境
本FAQ的截屏由STEP7 (博途)V14创建。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327348.html