当前位置: 主页 > PLC控制

如何对DB块中一部分数据进行数据初始化

我需要对DB中一部分数据进行清零运算,如何做,有没有高手指点一下

最佳答案

来自sunnic的回答,我保存下来的:
1200的FILL_BLK,RESET_BF的对象都要必需是array数组结构。如果要复位的数据区域是数组,那么直接用FILL_BLK,RESET_BF就可以了。
如果DB块内需要清零的数据不是数组结构的,那么只有使用类似指针的方式对数据进行清零。
1200本身没有指针,只能使用scl语言里的PEEK,POKE指令达到指针的效果。

比如我写的下面这段程序
IF#Clr_error=TRUETHEN(*Clr_Error是我设置的一个启动变量*)
"Blank"=0(*"Blank":MW2*)
POKE_BLK(area_src:=16#83,
(*源数据类型:16#81:I,16#82:Q,16#83:M,16#84:DB*)
dbNumber_src:=0,(*源数据块,非DB=0*)
byteOffset_src:=2,(*源数据起始位号*)
area_deST:=16#84,(*目标类型:16#81:I,16#82:Q,16#83:M,16#84:DB*)
dbNumber_dest:=11,(*目标数据块:非DB=0*)
byteOffset_dest:=0,(*目标起始位号:位号*)
count:=10);(*长度*)
END_IF;
这段程序的意思是,将MW2清零,然后把MW2复制到DB11.DBW0开始的10个字节

提问者对于答案的评价:
解决问题

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号