请选择 进入手机版 | 继续访问电脑版

大海作坊

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 164|回复: 2

MACH3软件应用 设置方法VB使用

[复制链接]

21

主题

40

帖子

153

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
153
发表于 2018-9-15 20:59:31 | 显示全部楼层 |阅读模式
MACH3软件应用 设置方法VB使用


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

40

帖子

153

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
153
 楼主| 发表于 2018-9-15 21:02:28 | 显示全部楼层
MACH3软件应用 设置方法VB使用


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

40

帖子

153

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
153
 楼主| 发表于 2018-9-15 21:03:26 | 显示全部楼层
18 mach3的部分VB函数和命令
编辑好VB后 保存为mach3\macros\Mach3Mill\Mxx.m1s
mach3软件支持2个并口存在,地址可根据实情设置
比如我们一个并口有12个输出端,用了6个3轴步进信号,其他的都可以用来做输出,如控制主轴正反转,水泵,可以用M03 M04M05 M07 M08 命令实行,其他的端口可以用VB语言实现,如控制输出Output#9。
ActivateSignal(Output#9) : Output#9输出
DeactivateSignal(Output#9) : Output#9关闭

在VB中也可以执行G代码,如:Code "g04 p6" 写代码

也可以执行OEM代码,如DoOEMBUTTON(1021) ,模拟执行OEM代码(1021为急停)

执行输入,如:systemwaitfor(input3) ,意为等待#3输入(原文为等待输入,我觉得应该为读取,尚未试验)

还可以实现坐标清零操作
call SetDRO( 0, 0) :X轴清零
call SetDRO( 1, 0) : Y轴清零
call SetDRO( 2, 0) :Z轴清零



例如,dima as integer,意为定义一个名为a的整数型变量。
dim是定义,每当你需要一个变量的时候,就必须先定义
as 意为属性
string是字符串类型,比如 "你好"
Single是单精度浮点数,个人比较粗略的理解就是小数
integer就是整数

a = GetVar(1000),意为获取#1000变量的值赋予a。
SetVar 1001, a,意为把a值写入#1000变量。

'用于书写注释。
rem等效于‘,意为注释;

一个屏幕变化的VB例:
Dim Screen As Integer 声明一个整数变量
Screen = GetPage() 屏幕
Screen = Screen + 1 屏幕加1
If Screen > 6 then Screen = 1 如果屏幕大于6就回到1
DoOEMButton(Screen) 执行屏幕代码

取整int,例如print int(5/3)输出1
整除\,例如print 5 \ 3输出1
IF ……Then(如果。。。则)
Else(反之)
End if(结束如果)
goto 意为跳转,猜测目的应为字符串,与c语言类似
以下程序经过了验证
Dim bn1 As Integer’定义了一个名为bn1的整数型变量
bn1=1’
xhqi:if (bn1<10) then’标记此段为xhqi,如果bn1<10则执行以下到end if之间的内容
call quliao()’调用子函数(子程序)quliao
goto xhqi’转到xhqi
end if’结束if
sub quliao()’定义了名为quliao的子函数
bn1=bn1+1’
code"G90G0Y60"’执行G代码
code"Y0"’ 执行G代码
end sub’子函数结束
while "条件语句"
...循环体...





wend

不等于为<>


以下函数或命令有理解,但未经验证

For ··· Next ···语句的一般格式:
For 变量 = 【Start】 To End [Step]   
[需要循环的语句]   
[Exit For]
Next 变量
说明:
(1)、For 后的“变量”与 Next 后的“变量”为同一个,“变量”应该是数值类型的。 (2)、Start 代表的是循环的初始值,End 代表的是循环的终值。假设从 1 到 100 进行循环,那么,循环初值是 1 ,终值是 100 ;(3)、To 是循环中的关键字,表示从初值到终值的范围,不能省略


While Feed <= 0,意为while循环


Wend意为While结束

for循环应该支持

SafeZ = GetSafeZ(),意为获取当前z坐标值
tool = GetSelectedTool(),意为获取当前刀具号码值
SetCurrentTool( tool ) ,意为把tool写入新值

以下命令或函数暂无理解
GetUserLED()
Array()的函数,例MX =Array(7,"",+5.125,0,""),用于通过函数向变量传递参数来初始化一个Variant(Variant 数据类型是所有没被显式声明(用如 Dim、Private、Public 或 Static等语句)为其他类型变量的数据类型)类型的数组。
例:Code "F" & Feed,意为代替命令F,值为Feed。
OpenDigFile()
CloseDigFile()
XPOS = GetOEMDRO(1072)
Feed=Question ("FeedRtae can't Input a right Value:")
Call SetUserDRO(1070, Feed)
SetIJMode(  )
rpm = GetRPM()
SetSpinSpeed( rpm )
Feed = CommandedFeed()
SetFeedRate( Feed )



19
1、     mach3执行数控宏程序命令
跟fanuc系列数控系统一样,“#”为参数号;
Mach3提供了#1~#10320的参数;
“=”用于赋值,例如:“#1=1”;
“【】”用于改变运算优先顺序,例如:“#1=[#1+1]”,当写成“#1=#1+1”时不正确;
“()”内用于填写注释;
另外,mach3支持#【#3】的写法。

2、     Mach3的子程序应写在主程序内,以字母O开头的指令字表示程序号,例如O1000。

21、Mach3串口与NLC嫁接相关操作
菜单-操作-编辑按钮脚本-选择目的按钮(正在闪烁的)-VB编辑器打开脚本,可以改变使用VB语言改变按钮功能。例如,打开“换刀位置”脚本其内容为
“Code("G00 G53 Z0.00")'Rapid thehead up

Code("G00 G53X" & GetOEMDRO(1200) & " Y" & & GetOEMDRO(1201))
Code("G00 G53Z" & GetOEMDRO(1202) )”。
M类指令的功能也应该使用《VB编辑器》编辑。也就是说可以做个按钮发送一个字符串到外部,也可以做成M指令发送一个字符串到外部,且互不冲突。
菜单-功能设置-设置MODBUS控制-在此设置串口数据。
例如要经串口发送“Hello”到外部,则程序应写为“Call SendSerial ("Hello%")”。(看似可行,试验不成功)

全文下载地址:
MACH3使用全文下载

33.jpg (43.57 KB, 下载次数: 0)




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|大海作坊 ( 湘ICP备17019901 )

GMT+8, 2018-10-22 23:32 , Processed in 0.182097 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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