刘工好,又来打扰您了。
需要向您请教AV指令的用法。我按照用户手册的解释,在Galil tools中运行指令,是可以达到效果,但是在我的VB程序中运行,却不是我想要的效果。
G1_control.commandValue("LMAB; VS10000; VA100000; VD100000; LI 5000,7000; LE; BGS“)
G1_control.commandValue("LMAB; LI 10000,0; LI 0,3000; LE; VS10000;BGS;AV 6000;VS 8000 “)
理想的效果就是完成第一个LI 5000,7000的指令后,再以10000的速度走完6000时,速度变为8000,然后以8000速度走完剩下的路径。
但我实际运行的结果却是,完成第一个LI 5000,7000的指令后,速度就已经变为8000了,请问刘工是什么原因?
回复内容:
对: 刘岩利 在执行了: G1_control.commandVal... 内容的回复!
是等到上一个运动结束后再执行下一个语句的
G1_control.commandValue("LMAB; VS10000; VA100000; VD100000; LI 5000,7000;
LE; BGS“)
Do Until G1_control.commandValue (MG_BGA") = 0 And G1_control.commandValue("MG_BGB") =0
Application.DoEvents()
Loop
G1_control.commandValue("LMAB; LI 10000,0; LI 0,3000; LE; VS10000;BGS;AV 6000;
VS 8000 “)
Do Until G1_control.commandValue (MG_BGA") = 0 And G1_control.commandValue("MG_BGB") =0
Application.DoEvents()
Loop
如果确定是在等待第一段运动结束后再开始第二段,应该是不会有这样的错误的。但是从您的程序中也还没找到明显的错误,只是在MG_BGA前面少了一个引号。
G1_control.command("LMAB;VS10000;VA100000;VD100000;LI5000,7000;LE;BGS“)
Do Until G1_control.commandValue ("MG_BGS") = 0
Application.DoEvents()
Loop
G1_control.command("LMAB;LI10000,0;LI0,3000;LE;VS10000;BGS;AV 6000;VS8000“)
Do Until G1_control.commandValue ("MG_BGS") = 0
Application.DoEvents()
Loop