记得在早期版本的Microwin,传送间址地址只能用VB,即movd &vb***,即使定义成符号,也只认VB类的变量。后来,可以传送VW、VD的地址了。但如果直接用具体的数字,比如movd &VW100,ac1,会被立即自动置换成movd &vb100,ac1,只有定义成变量,比如把VW100定义成VW_100,然后MOVD &VW_100:&VW100, AC1才被接受。
这本来是个进步,很好。却进步得不彻底。今天调试一个程序,刚下载的,确定程序并未变更,但是,比较了一下,PLC内的程序,和PC中microwin的程序,有N多的不同。怎么可能,新的PLC下载一遍就坏了?后经查,问题都在这个间接地址的传送上。凡是使用符号定义的VW、VD类变量地址,传送其地址的语句,均报不同。
可以做个小实验:在符号表中定义一个变量,VW_100,对应V内存为VW100,写:
LD sm0.0
movd &VW_100,ac1
把这下载到PLC中。再用"PLC\比较"菜单,比较PLC和microwin中的程序,你看到什么?报两者不同的错误!