在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据对于S7-1200/S7-1500,在STEP7(TIA Portal)中可以使用 "MOVE_BLK", "MOVE", "Serialize" and "Deserialize" 指令复制存储区。
下面例程示范如何将数据从源数据存储区复制到目标存储区。也可以使用"MOVE"指令复制结构数据
描述 例1:从一个数据块复制数组变量到另外一个数据块 如果需要从一个数据块复制数据区到另外一个数据块,可以在数据块中创建数组变量。使用数组变量和 "MOVE_BLK"指令,可以实现从一个数据块到另一个数据块的部分移动或者整体移动。 "COUNT"参数定义从源区域移动到目标区域的数据元素数量。
在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据
图.1 显示了用2个DB变量对 "MOVE_BLK"指令的调用和参数化。 形参 "IN"以DB块数组元素变量"Block.Send[5]"进行参数化。 形参"OUT"以DB块数组元素变量 "Data.Receive[10]"进行参数化。 实参"Control.Count" 中的数值5指明了要拷贝的数据数量 这样就将数据从源数据区 "Block.Send[5]...Block.Send[9]" 复制到目标区域"Data.Receive[10]...Data.Receive[14]"
在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据
例2:从一个数据块复制结构体数据到另外一个数据块,源数据区和目标数据区存在不同 PLC 数据类型 "Copy"功能将结构体数据从DB块 "Source",变量名为"Variable" (PLC数据类型: "Speed")的区域,复制到 DB块"Target",变量名为"Value" (PLC数据类型"Drive")的数据区域 。两个存储区存在不同的数据类型。
在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据
图.4显示了 "Copy"功能的内部程序对"Serialize"和"Deserialize"两个指令的调用及参数化。"Serialize"指令可以将PLC数据类型转化成序列表示的数据并且存放到缓冲区"tempStore"。在网络2,"Deserialize“指令用来将缓冲区"tempStore"中存放的序列表示的数据转换成 PLC 数据类型。
在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据
注意
要满足下列2个要求之一才能使用"Serialize" 和 "Deserialize" 功能。
要求 1:禁用优化的块访问
在项目树中右键点击功能 "Copy" 点击 "Properties" 在右边的列中选择 "Attributes" 移除“优化块访问”的复选标记
要求 2: 在“Retain”一栏选择“Set in IDB”
例 3: 从输入模块复制结构数据到DB块
在下面的例子中 (图. 5),输入区域 (IB0, IB1) 和输出区域 (数据块 "DBrange") 定义了PLC数据类型"DataRange"。 输入输出地址有一个更高级的PLC变量,这种将输入输出地址进行结构化编组到更高一级的PLC变量的方式可以使编程更加方便。
在 STEP 7 (TIA Portal) 中如何复制存储区和结构体数据
使用此方法,您也可以将大于64字节的输入区域复制到数据块中。 对于S7-1200 CPU 需要固件版本V4.1或更高。 注意
上述指令可以在 "Basic Instructions" 任务卡中找到:- 在 "Move" 文件夹中或者
- 用鼠标将 "General" 文件夹中的"Empty box"拖放到程序段中。然后将光标移动到空框中的黄色三角形上,打开下拉列表,在下拉列表中选择所需指令。
|