设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
博途TIA中数据块如何实现清零?
返回列表
发新帖
[西门子]
博途TIA中数据块如何实现清零?
[复制链接]
98177
|
0
|
2024-8-13 12:51:05
|
显示全部楼层
|
阅读模式
在TIA指令集内有多个移动指令可对DB块内数据进行清零处理。对于S7-1500 CPU或ET200SP CPU来说,可使用BLKMOV、FILL以及SCL的POKE_BLK指令。但是这些指令对DB块清零时,要求DB块必需为非优化DB。
对于优化的DB块,可使用FILL_BLK指令或创建相同的UDT结构类型的DB块,使用MOVE指令清零DB块数据。使用FILL_BLK指令处理时,对DB块数据类型有要求,需要创建数组类型,相对非优化DB的处理多了数据类型的限制。
当然对DB块数据的清零操作根据DB块内数据类型的不同方式有多种多样,本文介绍部分TIA集成指令处理的方法作为编程参考。
测试环境
软件:TIA V17 Professional
硬件:CPU1512C-1 PN V2.9
对非优化DB块内数据清零
在S7-1500CPU内添加非优化DB块 "DST_Data" DB1(目标DB),数据类型任意创建,如图1所示。
图1. 创建非优化DB块(目标DB)
方法1. 使用BLKMOVE指令
(1) BLK_MOV指令,可将数据从一个存储区(源区域)移动到另一存储区(目标区域)。
使用该指令要求,创建一个跟目标区域DB一样数据长度的源区域DB。对于源区域DB只要和目标区域DB数据长度一致即可,如图2所示,创建非优化DB块 "SRC_Data" DB2(源DB)。
图2. 创建非优化DB块(源DB)
(2) 在OB1内,从"指令">"基本指令">"移动操作">"原有"下,调用BLKMOV指令,如图3所示。
图3. OB1内调用BLKMOV指令
指令管脚参数说明:
SRCBLK
:=P#DB2.DBX0.0 BYTE 58
//源DB块
RET_VAL
:%MW2
//返回值
DSTBLK
:=P#DB1.DBX0.0 BYTE 58
//目标DB块
(3) 指令执行结果,如图4所示。"DST_Data" DB1(目标DB)内数据全部清零。
图4. BLKMOV指令执行结果
方法2. 使用SCL中的POKE_BLK指令
在OB1内添加一个SCL程序段,然后在"指令">"基本指令">"移动操作">"读/写存储器"下,调用POKE_BLK指令,如图5所示。
图5. OB1内调用POKE_BLK指令
POKE_BLK指令管脚参数定义,如下图6所示。
图6. POKE_BLK指令管脚参数
方法2和方法1原理类似,区别后者为SCL指令。此两种方法都需要创建一个源DB来覆盖目标DB内数据实现清零。
方法3. 使用FILL指令
在OB1内,从"指令">"基本指令">"移动操作">"原有"下,调用FILL指令,如图7所示。
图7. OB1内调用FILL指令
指令管脚参数说明:
BVAL
:MB1
//源数据
RET_VAL
:%MW4
//返回值
BLK
:=P#DB1.DBX0.0 BYTE 58
//目标DB块
相比前两种方法,方法3不需要创建整个源DB来覆盖目标DB,最小只需创建一个Byte类型的数据即可,如上图7中 %MB1。
对优化DB块内数据清零
方法1. 使用FILL_BLK指令
使用FILL_BLK指令对优化DB块清零,对DB块的数据类型有要求,需要创建为ARRAY数组类型或相同基本数据类型的UDT或相同基本数据类型的STRUCT才行。
在S7-1500CPU内添加优化DB块 "DST_Data2" DB3(目标DB),如图8所示。
图8. 创建优化DB块(目标DB)
在OB1内,从"指令">"基本指令">"移动操作"下,调用FILL_BLK指令,如图9所示。
图9. OB1内调用FILL_BLK指令
指令管脚参数说明:
IN
:MB1
//源数据;数据长度跟数组内基本数据类型一致
COUNT
-
//需要覆盖的长度
OUT
:"DST_Data2".Static_1[0]
//目标结构的起始地址
指令执行结果,如图10所示。"DST_Data2" DB3(目标DB)内指定长度的数组或STRUCT数据全部清零
图10. FILL_BLK指令执行结果
方法2. 创建相同的UDT结构使用MOVE指令清零DB块数据
使用UDT数据类型创建源和目标优化DB块,如图11所示。
图11. 使用UDT数据类型创建优化DB块
在OB1内,从"指令">"基本指令">"移动操作"下,调用MOVE指令,如图12所示。
图12. 调用MOVE指令
指令执行结果,如图13所示。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
BBCOM
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』