发布于 2005-11-28 17:15:03
0楼
抱歉谎报了军情,我曾经如下编程
LD SM0.0
MOVB IB0,VB707
MOVB VB607,QB0
LD SM0.1
MOVB 2,SMB30
FILL 0,VW600,100
LD SM0.1
O V600.7
MOVB 3,VB701
MOVD &VB500,VD702
MOVB 1,VB706
NETW VB700,0
LD V700.7
MOVB 3,VB601
MOVD &VB400,VD602
MOVB 1,VB606
NETR VB600,0
以上是主站2的程序,从站3的程序如下:
LD SM0.0
MOVB IB0,VB400
MOVB VB500,QB0
运行两站后主站2的IB0状态能在从站3的QB0上反映出来,但从站3的IB0却没有读回主站2并在其QB0上反映出来,是否在NETW执行后的V700.7始终为0,作为网络写完成标志不是应该由系统置为1了吗?并且实验证明2站的IB0确实写到站3的QB0上去了,这不是进一步说明V600.7一直处于1态.以上是否说明NETR/W指令产生的标志D会被再次执行的同一指令所影响,如果不这样也不用程序修改D位D位的状态就不变了呢(本例中V600.7就如此)?
D位的状态看来影响的因素还是不那么简单就能说明白的
工控爱好者