我需要对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个字节
提问者对于答案的评价:
解决问题
专家置评
已阅,最佳答案正确。