info
西门子:电池白皮书
行业动态
MORE...
应用案例
MORE...
技术前沿
MORE...
当前位置:首页 行业资讯 正文
在STEP 7 (TIA 博途)中,如何初始化S7-1500 的优化存储区?
转载 :  zaoche168.com   2013年10月31日

  描述

  优化块临时数据区中的变量在每次调用块时被用缺省值初始化(如,INT 的缺省值是 0)。下列内容不会被初始化:

   ● 声明为数组的变量。

   ● 非优化块中声明的变量。

  在STEP 7 (TIA 博途)中, 对西门子S7-1500 的优化存储区中的结构体可以用用户自定义的值进行初始化。

  如果要把定义的值加载到结构体中的独立元素,只能先初始化临时结构体,再分配给静态结构体。在SCL中使用FOR循环可以在运行时用很少的代码初始化大量区域(数组结构)。

  图. 01 是一个DB块结构中有两个DB变量的示例。第二个DB变量的PLC数据类型使用的是 "Array [1..10] of motor data type".

图. 01

  使用 "MOVE" 指令(复制值) 可以完整的初始化结构体 InOut 变量 "Motor". 在下面的例子中,临时变量"tmp_Motor" 的内容传到了 InOut 变量 "Motor". 在 LAD/FBD 中, 位信号通过slice访问复制到了状态字(图. 02).

图. 02

  临时变量和InOut变量必须具有相同的数据类型或相同的结构体数据类型。图. 03 说明了在SLC中编程实现完整初始化 InOut 变量 "Motor" 和单个元素的位到位访问。

图. 03

  下面的例子说明初始化DB变量 "Motor field". 在SCL中使用 FOR 指令,循环程序重复执行只要运行变量 "tmp_Counter" 在指定的范围内。由于PLC数据类型是 "Array [1..10] of motor data type", 程序循环必须执行10次("1 TO 10 DO") 来初始化结构体变量中的所有数组元素。

图. 04

  注意

  在 UDT中,可以通过声明定义初始值,这样基于UDT的每一个变量都有其初始值。只有对运行中的设备做程序复位时才需要初始化结构体变量。当 STOP/RUN 切换时,就会从从装载存储区提取初始值,这相当于一次复位。

品牌社区
—— 造车工艺 ——
—— 数字化制造 ——
—— 智能驾驶 ——
—— 新能源技术 ——
—— 机器人技术 ——