发布于 2011-03-05 09:07:17
5楼
我不知道是不是这样:
外部写的话是“中断”方式插入数据的。当一个指针要经过不止一条的指令建立的时候。而且建立过程重复使用了原变量地址。而且指针建立的可变变量是从外部通讯获得的。 那么有机会在执行每条指令之间被通讯刷新了原变量。
我在使用TD200的时候明显发生过这个现象。
例如vw0由外界写入。程序如下。
LD SM0.0
MOVW VW0, VW2
MOVW VW2, VW4
INCW VW4
MOVW VW0, VW12
MOVW VW12, VW14
INCW VW14
假如输入0。理所当然VW4等于VW14。但是当你修改人机,使得值变成10。而这个写入状态偏偏在第一个INCW指令之后更新。那么MOV之后的值只能是11了。并不是大家希望的12。程序产生了vw4<>vw14。虽然这个不等的值只出现了一个周期。
不知道是不是说这回事呢?