发表于:2019/6/26 17:20:33
#0楼
各位大神好,问大家个问题
我有个需求,就是要把某个MW值逐次记录100次,分别存储到DB1,DBW0开始的100个地址里去,(MW是个不停在变化的值),
比如,第1次存到DBW0,存完后再循环运行,第2次存到DBW2,依次类推。
地1个程序,只能记录进DB1.DBW0里面,其他后续地址不变,
第2个程序,是同时能记录到所有100个地址里面,但若MW12变化,所有100个地址同时变化,
请有知道的大神指点指点,哪里有问题!!谢谢了!!
第一个程序:
用STL编了个程序,运行起来后,在变量表里观察,只有正常传送到DB1,DBW0,其他后续地址一直不动,也就是没传送进去,看了半天没看出问题来,请大神们指点指点,谢谢了!!
说明:数据源存放在MW12里,MW12不停的在变化
第1次从MW12存到DB1.DBW0.
存完后,程序继续循环运行
第2次从MW12存到DB1.DBW2.(MW12数值肯定与第一次不一样,MW12在变化的)
继续,重复。。。。
OB1
L 0 //装载0
T MW 100 //传送到MW100
T MD 4 //传送到MD4(就是初始化清零)
OPN DB 1 //打开DB 1
L 100 //循环操作次数,100次
M001:T MW 100 //把循环100次数数值装载到MW100中,
固定格式
L MW 12 //进行传送的数值存储于MW12
T DBW [AR2,P#0.0] //写入DB块第一个地址
L MD 4 //装载地址指针
L P#2.0 //地址指针加2(每个相邻字地址相差2)
+D //MD4地址数值加2
T MD 4 //相加后的和又存放在MD4里
L MW 100 //次数减1,跳回M001重复执行,如果MW100=0,跳出循环操作LOOP指令。
//LOOP指令固定格式
LOOP M001
第2个程序,是同时能记录到所有100个地址里面,但若MW12变化,所有100个地址同时变化,
OB1
L 0 //装载0
T MW 10 //传送到MW100
T MD 4 //传送到MD4(就是初始化清零)
OPN DB 1 //打开DB 1
L 100 //循环操作次数,100次
M002: T MW 10 //把循环100次数数值装载到MW10中, 固定格式
L MW 12 //载入MW12
T DBW [AR2,P#0.0] //写入DB块第一个地址
// L MD 4
+AR2 P#2.0
// L P#2.0 //地址指针加2(每个相邻字地址相差2)
// +D //MD4地址数值加2
T MD 4 //相加后的和又存放在MD4里
L MW 10 //次数减1,跳回M001重复执行,如果MW100=0,跳出循环操作LOOP指令。LOOP指令固定格式
LOOP M002
原工程,CPU S7315-2PN ,STEP7打开,
我有个需求,就是要把某个MW值逐次记录100次,分别存储到DB1,DBW0开始的100个地址里去,(MW是个不停在变化的值),
比如,第1次存到DBW0,存完后再循环运行,第2次存到DBW2,依次类推。
地1个程序,只能记录进DB1.DBW0里面,其他后续地址不变,
第2个程序,是同时能记录到所有100个地址里面,但若MW12变化,所有100个地址同时变化,
请有知道的大神指点指点,哪里有问题!!谢谢了!!
第一个程序:
用STL编了个程序,运行起来后,在变量表里观察,只有正常传送到DB1,DBW0,其他后续地址一直不动,也就是没传送进去,看了半天没看出问题来,请大神们指点指点,谢谢了!!
说明:数据源存放在MW12里,MW12不停的在变化
第1次从MW12存到DB1.DBW0.
存完后,程序继续循环运行
第2次从MW12存到DB1.DBW2.(MW12数值肯定与第一次不一样,MW12在变化的)
继续,重复。。。。
OB1
L 0 //装载0
T MW 100 //传送到MW100
T MD 4 //传送到MD4(就是初始化清零)
OPN DB 1 //打开DB 1
L 100 //循环操作次数,100次
M001:T MW 100 //把循环100次数数值装载到MW100中,
固定格式
L MW 12 //进行传送的数值存储于MW12
T DBW [AR2,P#0.0] //写入DB块第一个地址
L MD 4 //装载地址指针
L P#2.0 //地址指针加2(每个相邻字地址相差2)
+D //MD4地址数值加2
T MD 4 //相加后的和又存放在MD4里
L MW 100 //次数减1,跳回M001重复执行,如果MW100=0,跳出循环操作LOOP指令。
//LOOP指令固定格式
LOOP M001
第2个程序,是同时能记录到所有100个地址里面,但若MW12变化,所有100个地址同时变化,
OB1
L 0 //装载0
T MW 10 //传送到MW100
T MD 4 //传送到MD4(就是初始化清零)
OPN DB 1 //打开DB 1
L 100 //循环操作次数,100次
M002: T MW 10 //把循环100次数数值装载到MW10中, 固定格式
L MW 12 //载入MW12
T DBW [AR2,P#0.0] //写入DB块第一个地址
// L MD 4
+AR2 P#2.0
// L P#2.0 //地址指针加2(每个相邻字地址相差2)
// +D //MD4地址数值加2
T MD 4 //相加后的和又存放在MD4里
L MW 10 //次数减1,跳回M001重复执行,如果MW100=0,跳出循环操作LOOP指令。LOOP指令固定格式
LOOP M002
原工程,CPU S7315-2PN ,STEP7打开,
附件:
[本地下载]