5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 4538|回复: 5
打印 上一主题 下一主题

请教下mach3 vb运行问题!

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-25 19:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
MACH3 VB怎么会这样了?这IF进去后,怎么会先运行"ActivateSignal(Output2)"再运行其它了!不是同C一行一行运行下去吗?


附件是:M6Start.m1s
会的请帮忙看看


Sub Main()'定义变量
OldTool = GetCurrentTool()  '现在全使用的Z轴
tool = GetSelectedTool()   '取得新轴号
GageH = GetUserDRO(1152) '对刀界面输入框中输入数据
NewTool = tool




'////////注意:使用Z1(默认先用Z1)
If NewTool = 1 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:使用Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Call SetDRO( 3, 1 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If


'////////注意:现在从Z2切换成Z1
If NewTool = 1 and OldTool=2  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:现在从Z2切换成Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Call SetDRO( 3, 2 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Call SetDRO( 0, GetToolChangeStart(0)-120)'强制X轴切座标
        Call SetDRO( 1, GetToolChangeStart(1)+55)'强制Y轴切座标
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If


'////////注意:使用Z2,或者Z1切换成Z2
If NewTool = 2 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。        Message ("注意:第一次使用Z2")
        Message ("注意:使用Z2,或者Z1切换成Z2")
        Call SetDRO( 3, 2 )'A轴现示为
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
        Code "G4 P1"' 延时1s,等待稳定后
        Call SetDRO( 0, GetToolChangeStart(0)+120)'强制X轴切座标
        Call SetDRO( 1, GetToolChangeStart(1)-55)'强制Y轴切座标
        Code "G4 P1"' 延时1s,等待稳定后
        Call SetDRO( 3, 3 )'A轴现示为
        ActivateSignal(Output2) '输出2激活输出,切换Z2轴
        Exit Sub
End If


'////////////////
End Sub
Main



欢迎继续阅读楼主其他信息

沙发
发表于 2017-8-25 19:32 | 只看该作者
估计条件是假的,哈哈。开玩笑
3
 楼主| 发表于 2017-8-25 19:49 | 只看该作者
1121454314 发表于 2017-8-25 19:32
估计条件是假的,哈哈。开玩笑

条件是真的,但是一进去IF,就先运行了out#2输出,再运行了其它,不知是不是MACH3软件的问题

4
发表于 2017-8-25 21:10 | 只看该作者
////////注意:使用Z1(默认先用Z1)
If NewTool = 1 and OldTool=1  Then  'if如果<条件>为真 执行then后面, 如果条件为假,不执行Then后面的语句块,而执行End If后的语句。
        Message ("注意:使用Z1")
        Code  "G0 Z" & GageH *2'先把Z1轴升高到对刀原位
插个if,如果原点开关被触发,再执行下面的代码
        Call SetDRO( 3, 1 )'A轴现示为
        DeActivateSignal(Output2) '输出2关闭输出,此时为使用Z1轴
        Code "G4 P1"' 延时1s,等待稳定后
        Exit Sub
End If

5
发表于 2017-8-26 07:27 | 只看该作者
也学习一下。
6
 楼主| 发表于 2017-8-26 08:11 | 只看该作者
想到一个拆中的方法,如,Code "M198"  
定义多几个M文件,问题就解决了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表