各位大神们,我做了个模拟量按顺序存储的程序,但却同时全部存储,不是按顺序存储的,请大神们帮忙看下,哪里出了问题!!
具体应用:(step7程序)
同一个模拟量采集进来处理完毕的值,按顺序分别存放到DB1的地址里,
1s模拟量能采集几次,就存放几个地址,采集次数是受程序扫描周期影响到,目前暂定存储20次,
OB1
OPN DB 1 //打开DB 10
L P#12.0 //初始读指针(标红色处可按实际应用的地址替代,例如10.0)
LAR1 //将累加器1中的值(指针P#12.0)装载到地址寄存器1中;
L P#0.0 //初始写指针(标红色处可按实际应用的地址替代,例如10.0)
LAR2 //将累加器1中的值(指针P#0.0)装载到地址寄存器2中;
CALL FC 1
L 20 // 20个字的循环计数为初值
M001: T MB 20 //计数值 送入MB 10
L MW [AR1,P#0.0] //按读指针指示的地址读数据
T DBW [AR2,P#0.0] //按写指针指示的地址写数据
// +AR1 P#2.0 //读指针指向下一数据地址
+AR2 P#2.0 //写指针指向下一数据地址
L MB 20 //取循环计数值20
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
说明下,此功能是吧MW12的值按顺序存放进DB1.DBW0开始的20个地址里面
MW12是个随时间不停变换的量,比如模拟量采集进来的量,
FC1是个计数器,随时产生累加变化,送入MW12,使MW12产生变化,
累计传送20次,
现在模拟的现象是,DB1.DBW0开始的20个地址同步变化,不是按顺序变化的,理论上应该按顺序增大,因为我的FC1产生的计数器是按顺序增大的,
[ 此帖被温柔的郎在2019-06-26 17:25重新编辑 ]