发布于 2011-12-22 17:47:41
7楼
怀疑。
你的BMD指令是执行了几次?是否是边沿调用?
手头没有PLC,无法测试,但按我的想法,这可能是多次调用后得到的结果,如果只调用一次,假设VD3012开始的数据最初是0.0,那么只有3012,3016和3020被填充了,而之后的都还是0.0。
不过这只是我对这条指令的理解。
LZ没有写出测试的过程。
按我的理解,这个复制过程也应该是不可中断的。因为转换为STL,这也是一条语句。
不过,如果这条语句的实际执行结果如LZ所说,那么有重叠的整块数据区域移动,重叠部分数据会被覆盖,这也是不利的地方。
可被中断的语句是像A+B-》C的这种LAD指令,转换为STL之后变成了2条指令,中断自子程序可能在这2条指令之间被调用。