- {{item.name}}
在 STEP 7 (TIA Portal) 中如何从一个数据块复制存储区和结构体数据到另一个数据块?
- 0
- 1860
- 7
对于S7-1200/S7-1500,在STEP7(TIA Portal)中可以使用 "MOVE_BLK", "MOVE", "Serialize" and "Deserialize" 指令复制存储区。
下面例程示范如何将数据从源数据存储区复制到目标存储区。也可以使用"MOVE"指令复制结构数据,相关信息参考条目ID 78678760.
描述
例1:从一个数据块复制数组变量到另外一个数据块
如果需要从一个数据块复制数据区到另外一个数据块,可以在数据块中创建数组变量。使用数组变量和 "MOVE_BLK"指令,可以实现从一个数据块到另一个数据块的部分移动或者整体移动。 "COUNT"参数定义从源区域移动到目标区域的数据元素数量。
图. 1
图.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]"
图. 2
例2:从一个数据块复制结构体数据到另外一个数据块,源数据区和目标数据区存在不同 PLC 数据类型
"Copy"功能将结构体数据从DB块 "Source",变量名为"Variable" (PLC数据类型: "Speed")的区域,复制到 DB块"Target",变量名为"Value" (PLC数据类型"Drive")的数据区域 。两个存储区存在不同的数据类型。
图. 3
图.4显示了 "Copy"功能的内部程序对"Serialize"和"Deserialize"两个指令的调用及参数化。"Serialize"指令可以将PLC数据类型转化成序列表示的数据并且存放到缓冲区"tempStore"。在网络2,"Deserialize“指令用来将缓冲区"tempStore"中存放的序列表示的数据转换成 PLC 数据类型。
图. 4
注意
要满足下列2个要求之一才能使用"Serialize" 和 "Deserialize" 功能。
要求 1:禁用优化的块访问
- 在项目树中右键点击功能 "Copy"
- 点击 "Properties"
- 在右边的列中选择 "Attributes"
- 移除“优化块访问”的复选标记
要求 2: 在“Retain”一栏选择“Set in IDB”
- 选择一个FB代替FC
- 保存数组(“tempstore”)为一个静态变量
- 对于数组("tempStore") 在 "Retain"列中选择 "Set in IDB"
例子 3: 从输入模块复制结构数据到DB块
在下面的例子中 (图. 5),输入区域 (IB0, IB1) 和输出区域 (数据块 "DBrange") 定义了PLC数据类型"DataRange"。 输入输出地址有一个更高级的PLC变量,这种将输入输出地址进行结构化编组到更高一级的PLC变量的方式可以使编程更加方便。
图. 5
使用此方法,您也可以将大于64字节的输入区域复制到数据块中。 对于S7-1200 CPU 需要固件版本V4.1或更高。注意
上述指令可以在 "Basic Instructions" 任务卡中找到:
- 在 "Move" 文件夹中或者
- 用鼠标将 "General" 文件夹中的"Empty box"拖放到程序段中。然后将光标移动到空框中的黄色三角形上,打开下拉列表,在下拉列表中选择所需指令。
更多信息
更多信息参考STEP 7 (TIA 博图) 在线帮助。
关于“指针寻址”的主题的信息可参考条目号 42603286.
创建环境
FAQ 中的截图是在 STEP 7 (TIA Portal) V13 SP1 中创建。
您可以前往全球资源库查看此文档:https://support.industry.siemens.com/cs/cn/zh/view/42603881
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 在SFC中,如何实现从一个 Sequencer 跳出后回到另一个 Sequencer 的某个固定位置并继续执行?
- 在 SIMATIC WinCC (TIA Portal)中如何将消息复制到另外一个项目?
- 在STEP 7 (TIA Portal) 中,全局数据块的声明表是什么样的结构?
- 如何装载项目数据到存储卡上?以便在没有 TIA Portal 的情况下,使用存储卡向 S7-1200 /S7-1500CPU 传输程序
- 在WinCC中如何使用VBS读取报警记录数据到EXCEL
- TIA中如何将数据块的实际值转到初始值中
- 在 STEP 7 (TIA Portal) V13 SP1 中,如何从使用STEP 7 (TIA Portal) V12 SP1 或 V13组态的设备里上载项目?
- 在STEP 7 (TIA 博途)中,如何从MS Excel中导出变量到PLC数据类型?
- 在STEP 7(TIA Portal)中,如何根据块的绝对块号进行排序?
- 在 STEP 7 (TIA Portal) 的一个 S7-SCL 项目中如何定义常数?
{{item.nickName}}