开发运动控制卡 USB接口 PC开放式数控系统 G代码解释
本人开发一套USB接口运动控制卡和运动控制操作系统,放上来让各位有兴趣的大大们拍砖。系统以硬件和软件两方面开发设计,硬件是总系统核心部分,数控系统软件则是开放式设计。
系统总体结构图:
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680413RBDXM9.jpg
(原文件名:mc301.jpg)
PC是开放式数控系统,由DELPHI 7.0开发,主要开放USB通讯接口驱动,运动控制函数,和G代码解释器等,系统可直接运行G代码及相关矢量数据,并且适合二次开发自己的数控系统。
USB采用CYPRESS公司的CY7C68013AUSB2.0 接口芯片。
本系统核心是运动控制部分,是由仿真运动控制IC实现对三路脉冲输出的控制,直接由PC控制。与现在的NC 嵌入 PC 模式有很大的区别,现在的NC嵌入PC模式是在通用 PC 的扩展槽中插入专用的运动控制卡,运动控制卡通常选用高速DSP作为CPU的多轴运动控制技术,能够充分保证系统的性能;同时可以充分利用PC机丰富的软硬件资源,开放性好;但开发成本高,开发难度较大和受专有技术制约。本系统则是省去中间DSP处理芯片,直接以PC机的丰富软件及高速的CPU处理能力和方便的USB接口,直接由PC机处理运动控制,而输出的控制脉冲信号是由运控制IC产生,上位机发出的控制数据经由USB接口联接到下位机控制卡,数据解码,再由数据加载器将解码后的数据与1MHZ(最高可4MHZ)脉冲加载调制为三路输出脉冲信号。数据加载和调制主要实现上位机对输出三路的脉冲信号控制和精确插补,实现三路脉冲之间直线和圆弧插补功能要求。
上位机的数控系统是DELPHI7.0开发,无需MACH3系统运行。
现运动控制卡完成技术功能及技术参数:
仿真运动控制芯片
封装:LQFP 144个脚
时钟频率: 48.000MHz
芯片3.3V低功耗
输出/入信号电平:3.3-V LV TTL
自带32Bit圆弧/直线插补
控制轴:3轴同步,对任意1、2、3轴实现直线、圆弧运动
持续圆弧/直线插补
输出脉冲频率:0.001HZ~1MHZ
最小输出脉冲量:1个脉冲周期
1路PWM模拟量输出控制
运动卡上有急停和暂停控制开关
各轴自动归零复位
8位控制开关输出
驱动系统: USB驱动和DELPHI DLL控制函数
操作系统:WinXP
开发系统:Delphi7.0
控制函数:Delphi7.0封装DLL链接库 运动函数库和G代码解释函数库
直线、圆弧、贝赛尔曲线、开关及PWM控制函数
运动控制卡的测试板:(运动控制IC打磨过,核心技术不开源,请理解)
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680415C5XVDA.JPG
(原文件名:PICT0002.JPG)
为了运行测试和调试,花了两个月时间DIY了一台三轴雕刻机,机械之简陋各位见笑了,机械主要测试运动控制卡各项功能。XY轴是57步进电机,Z轴是42步进电机,步进电机驱动器是THB6128芯片步进电机驱动板,设置64细分12800脉冲/转。步进电最高转速是300转/分钟,最高测试脉冲频率500KHZ约进量F1300mm/分钟。
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680418LHO0S7.JPG
(原文件名:PICT0008.JPG)
DELPHI开发的数控系统:
数控系统主要针对G代码解释和矢量运动数据运行。
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680419S87GQS.jpg
(原文件名:mc301pan.jpg)
矢量数据运行贝赛尔曲线,可以解读运行CorelDraw 或AI文件矢量数据。
G代码解释了G0、G1、G2、G3代码,其它代码不熟悉,还在了解中。
解释G代码语法按
G00 {<X> <Y> <Z>}
G01 <X> <Y> <Z> [<F>]
(G02 G03) [<X> <Y>] {<I> <J>} [<F>]
(G02 G03) [<X> <Y>] @{<I> <J>} <R># [<F>]
以这G代码解释的函数雕刻的:(材料是发泡胶,机子没钢度雕不了硬材料)
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680420CSM91K.JPG
(原文件名:PICT0014.JPG) mark.... G代码解器:点击此处下载 ourdev_680428NYB44B.rar(文件大小:164K) (原文件名:MCGCode.rar)
function G_code(T_pdata:pointer;G_String:string):pointer;stdcall ;
external 'MCGCode.dll';
type
pGo_dataPKT=^Go_DataPKT;
Go_DataPKT=packed record //
G_NL:integer; //行号当小0为空号为参数行 非指令行
S_type:byte; //选择指令 /1G/2D/3T/4M/等0: 没选择
D_Code:integer; //D 指令 刀具补偿号
T_Code:integer; //T 指令 刀具号
M_Code:integer; //M代码指令
G_Code:integer; //G代码指令
abs_xyz:Byte; //绝对坐标或进量步进
S:Real; //主轴转速
F:real; //f值 速度进量值
// xs,ys,zs:real; //起点坐标与上一终点坐标一致
xe,ye,ze:real; //终点坐标
I,J,K:real; //圆弧中心坐标
xi,jy,kz:real; //G5 中间点坐标
CR:real; //圆半径
// AR:real; //圆弧角
// CHF:real; // 倒角在两个轮廓间插入给定的倒角
// RND:real; //倒圆
// RPL:real; //旋转角
// SF:real; //G33中螺纹切入角度偏移量
// SPOS:real; //单位是度,主轴在给定位置停止
// ifjm:pchar; //条件跳转 文本表达式 (主要针对加工进量到位跳转)
// jmNL:integer; //跳转到行号
end; 楼主的机械电子软件都很强. 有后续更新吗 大工程
楼主 应该将 PC SDK包开放
光卖下位机就行了
客户自己买了 随便做什么都行
不过 步进电机 输出太少了些,搞他个 6轴
因为做贴片机 3轴肯定不够用。
或者能一机多卡 上传个 雷赛的 PCI运动控制卡 参数下接口
点击此处下载 ourdev_680468HCIFJH.pdf(文件大小:970K) (原文件名:DMC1410v1.1软件手册080717.pdf)
点击此处下载 ourdev_680469T1UBSJ.pdf(文件大小:577K) (原文件名:DMC1410v1.1硬件手册080717.pdf) 楼主厉害,机电软硬全通啊 回复【5楼】wxws 我行我素
大工程
楼主 应该将 pc sdk包开放
光卖下位机就行了
客户自己买了 随便做什么都行
不过 步进电机 输出太少了些,搞他个 6轴
因为做贴片机 3轴肯定不够用。
或者能一机多卡
-----------------------------------------------------------------------
pc sdk是开放的,但前提下位机要完善。
现在是三轴输出,其实不联动的话,可以6轴输出,或更多轴输出。
现在是开环的,下一步是闭环。 牛,机电软硬全通! 回复【9楼】aleyn 煮茶村长
牛,机电软硬全通!
-----------------------------------------------------------------------
呵呵,全通是被迫的,一开始只是想搞运动控制卡,运行2维的矢量运行,即做开了就一头进出,后面就跟一大堆东西要啃。
村长你是这方面的大大了。 嗯,我也来佩服一下! 这个一定要顶! 楼主花了不少时间吧,何时开工的,估计有多少个人月? mark, 学习 好东西!!一会学习一下 上位机要求开源!!这样就可以定制自己的控制平台 回复【8楼】hzband
-----------------------------------------------------------------------
大多数多轴 都是不联动的。
6也够用了。 楼主雕的是D自家的女头像 回复【18楼】kingsabbit 电子白菜
楼主雕的是d自家的女头像
-----------------------------------------------------------------------
这个头像文件是在里下载的ARTCAM 里的一个sample。
刀路G代码引用Mash2的格式,删去文件开头和结束符号,直接运行的。 可行性好高也!!! 看芯片像是mcx314as 回复【21楼】coffeerain
看芯片像是mcx314as
-----------------------------------------------------------------------
好眼力,一些控制原理参考NOVA运动控制芯片的,NOVA公司推出MCX314运动控制芯片的升级版本MCX314As,芯片低功耗3.3V的姊妹产品MCX314AL运动控制芯片。http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680905RF09SU.jpg
(原文件名:mcx314aL.jpg)
MCX314As的功能框图:
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_680904PY9E2F.jpg
(原文件名:mcx314asp.jpg) 不用PCL6045?? mark mark 楼主强人,鉴定完毕。 牛人,支持梯形加减速吗? 楼主:MCX314AL现在多少钱一片? cool 可惜了,用了成品运动芯片 强人 mark 回复【27楼】wind_ward
牛人,支持梯形加减速吗?
-----------------------------------------------------------------------
没有梯形加减速,有些问题还在评估中,主要是在圆弧运动时,加减速在变速和圆弧不同象限转变对精度的影响。
这方面你好的建议吗?
回复【30楼】wxws 我行我素
可惜了,用了成品运动芯片
-----------------------------------------------------------------------
是仿真运动芯片,现有的运动芯片是内嵌处理器和PCI接口。 楼主准备多少钱准备上市啊 强人 真好,以后我也努力学习! LZ牛逼。。。 回复【楼主位】hzband
-----------------------------------------------------------------------
mark强烈要求 公布一切资料啊··· Mark! 离实用还有多远?
这可是个大工程. 不错,不过要是拟合成圆弧会毛刺比较少的啦。 mark 高人啊 这个要顶 俺是菜鸟,请问楼主USB通讯帧怎么做?我这几天差了一下2.0的微帧周期125US ,是否意味着运动解析频率最大8kHz? 嗯,我也来佩服一下! mark强烈要求 公布一切资料啊··· 真的是强人啊。榜样 强帖,最好是用fpga自行生成波形,这个就强悍了 能开发支持mach3的usb控制器吗? mark....................... 工业控制的东东,用USB可靠性会差些。 hwaafdx123 发表于 2012-3-31 10:43
能开发支持mach3的usb控制器吗?
网口和USB都有的MACH3接口卡你多少钱可以接受呢。 zhiyiyunmeng@ 发表于 2012-11-7 01:35 static/image/common/back.gif
网口和USB都有的MACH3接口卡你多少钱可以接受呢。
目前市面上能买到的并口卡150左右,感觉做成usb成本也不会比并口多多少吧。 向楼主学习! 牛人,记号一下 确实不错,也很强,但不得不说,很遗憾,感觉实际意义不大。
运动控制IC部分实际就是由USB转电平输出脉冲序列而已。
现有的插补软件多如牛毛,都是从并口输出脉冲序列,无须这么复杂,况且有好多是开源代码。
现在这个项目是把简单问题复杂化了,证明一下自己而已。
应该站在巨人的肩膀上,有这么多软件我们直接拿来即可,不必从头开始,我们应该站在高端,我看到好多介绍立体照相机的,只要拍照,就可以还原出数据模型,进而开始加工。这个方面我还没有见到有人走在前列。
个人观点,仅供参考。 mark{:smile:} 我来mark一下 楼主,全才啊 不知道出了没有有没有牛B人物拍砖? mark 学习一下 MARK{:smile:} 我也在往运控方向学习,希望认识楼主e94e@163.com
:-):-)marK
mark{:smile:}{:smile:}{:smile:}{:smile:}{:smile:} 所驱动的电机为何种电机?直流伺服、交流伺服、步进电机? 顶!高手! mark{:smile:} 本帖最后由 carollynn 于 2014-10-20 14:12 编辑
学习了 真心不错步进电机吗? 驱动用的dsp吗 佩服 羡慕 高手 我们有运动控制芯片免费底层方案加995971182 楼主牛人。 tome555 发表于 2012-11-7 16:18
确实不错,也很强,但不得不说,很遗憾,感觉实际意义不大。
运动控制IC部分实际就是由USB转电平输出脉冲序 ...
能否发几个开源的链接,多参考下,正在做类似的项目,应该看的更广点,谢谢
页:
[1]