搜索
bottom↓
回复: 74

开发运动控制卡 USB接口 PC开放式数控系统 G代码解释

  [复制链接]

出0入0汤圆

发表于 2011-9-28 09:25:08 | 显示全部楼层 |阅读模式
本人开发一套USB接口运动控制卡和运动控制操作系统,放上来让各位有兴趣的大大们拍砖。

系统以硬件和软件两方面开发设计,硬件是总系统核心部分,数控系统软件则是开放式设计。
系统总体结构图:

(原文件名:mc301.jpg)
    PC是开放式数控系统,由DELPHI 7.0开发,主要开放USB通讯接口驱动,运动控制函数,和G代码解释器等,系统可直接运行G代码及相关矢量数据,并且适合二次开发自己的数控系统。
USB采用CYPRESS公司的CY7C68013A  USB2.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打磨过,核心技术不开源,请理解)

(原文件名:PICT0002.JPG)

为了运行测试和调试,花了两个月时间DIY了一台三轴雕刻机,机械之简陋各位见笑了,机械主要测试运动控制卡各项功能。XY轴是57步进电机,Z轴是42步进电机,步进电机驱动器是THB6128芯片步进电机驱动板,设置64细分12800脉冲/转。步进电最高转速是300转/分钟,最高测试脉冲频率500KHZ约进量F1300mm/分钟。

(原文件名:PICT0008.JPG)

DELPHI开发的数控系统:
数控系统主要针对G代码解释和矢量运动数据运行。

(原文件名: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代码解释的函数雕刻的:(材料是发泡胶,机子没钢度雕不了硬材料)

(原文件名:PICT0014.JPG)

出0入0汤圆

发表于 2011-9-28 09:47:43 | 显示全部楼层
mark....

出0入0汤圆

 楼主| 发表于 2011-9-28 09:51:46 | 显示全部楼层
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;

出0入0汤圆

发表于 2011-9-28 09:54:23 | 显示全部楼层
楼主的机械电子软件都很强.

出0入0汤圆

发表于 2011-9-28 10:01:13 | 显示全部楼层
有后续更新吗

出0入228汤圆

发表于 2011-9-28 12:16:49 | 显示全部楼层
大工程
楼主 应该将 PC SDK包开放
光卖下位机就行了

客户自己买了 随便做什么都行

不过 步进电机 输出太少了些,搞他个 6轴

因为做贴片机 3轴肯定不够用。
或者能一机多卡

出0入228汤圆

发表于 2011-9-28 12:19:33 | 显示全部楼层
上传个 雷赛的 PCI运动控制卡 参数下接口

点击此处下载 ourdev_680468HCIFJH.pdf(文件大小:970K) (原文件名:DMC1410v1.1软件手册080717.pdf)
点击此处下载 ourdev_680469T1UBSJ.pdf(文件大小:577K) (原文件名:DMC1410v1.1硬件手册080717.pdf)

出0入0汤圆

发表于 2011-9-28 12:25:32 | 显示全部楼层
楼主厉害,机电软硬全通啊

出0入0汤圆

 楼主| 发表于 2011-9-28 13:53:59 | 显示全部楼层
回复【5楼】wxws 我行我素
大工程
楼主 应该将 pc sdk包开放
光卖下位机就行了
客户自己买了 随便做什么都行
不过 步进电机 输出太少了些,搞他个 6轴
因为做贴片机 3轴肯定不够用。
或者能一机多卡
-----------------------------------------------------------------------

pc sdk是开放的,但前提下位机要完善。
现在是三轴输出,其实不联动的话,可以6轴输出,或更多轴输出。
现在是开环的,下一步是闭环。

出0入4汤圆

发表于 2011-9-28 14:14:29 | 显示全部楼层
牛,机电软硬全通!

出0入0汤圆

 楼主| 发表于 2011-9-28 14:40:00 | 显示全部楼层
回复【9楼】aleyn 煮茶村长
牛,机电软硬全通!
-----------------------------------------------------------------------

呵呵,全通是被迫的,一开始只是想搞运动控制卡,运行2维的矢量运行,即做开了就一头进出,后面就跟一大堆东西要啃。

村长你是这方面的大大了。

出0入0汤圆

发表于 2011-9-28 14:53:49 | 显示全部楼层
嗯,我也来佩服一下!

出0入0汤圆

发表于 2011-9-28 15:06:13 | 显示全部楼层
这个一定要顶!

出0入0汤圆

发表于 2011-9-28 15:06:21 | 显示全部楼层
楼主花了不少时间吧,何时开工的,估计有多少个人月?

出0入0汤圆

发表于 2011-9-28 20:39:00 | 显示全部楼层
mark, 学习

出0入0汤圆

发表于 2011-9-28 21:04:05 | 显示全部楼层
好东西!!一会学习一下

出0入0汤圆

发表于 2011-9-28 22:13:48 | 显示全部楼层
上位机要求开源!!这样就可以定制自己的控制平台

出0入228汤圆

发表于 2011-9-28 22:13:50 | 显示全部楼层
回复【8楼】hzband
-----------------------------------------------------------------------

大多数多轴 都是不联动的。
6也够用了。

出0入0汤圆

发表于 2011-9-29 08:14:26 | 显示全部楼层
楼主雕的是D自家的女头像

出0入0汤圆

 楼主| 发表于 2011-9-29 09:12:18 | 显示全部楼层
回复【18楼】kingsabbit 电子白菜
楼主雕的是d自家的女头像
-----------------------------------------------------------------------

这个头像文件是在里下载的ARTCAM 里的一个sample。
刀路G代码引用Mash2的格式,删去文件开头和结束符号,直接运行的。

出0入0汤圆

发表于 2011-9-29 22:07:21 | 显示全部楼层
可行性好高也!!!

出0入0汤圆

发表于 2011-9-30 00:00:49 | 显示全部楼层
看芯片像是mcx314as

出0入0汤圆

 楼主| 发表于 2011-9-30 09:57:53 | 显示全部楼层
回复【21楼】coffeerain
看芯片像是mcx314as
-----------------------------------------------------------------------

好眼力,一些控制原理参考NOVA运动控制芯片的,NOVA公司推出MCX314运动控制芯片的升级版本MCX314As,芯片低功耗3.3V的姊妹产品MCX314AL运动控制芯片。
(原文件名:mcx314aL.jpg)

MCX314As的功能框图:

(原文件名:mcx314asp.jpg)

出0入0汤圆

发表于 2011-9-30 10:20:31 | 显示全部楼层
不用PCL6045??

出0入0汤圆

发表于 2011-9-30 10:23:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-30 11:52:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-30 12:28:17 | 显示全部楼层
楼主强人,鉴定完毕。

出0入0汤圆

发表于 2011-9-30 13:01:27 | 显示全部楼层
牛人,支持梯形加减速吗?

出0入0汤圆

发表于 2011-10-1 08:01:57 | 显示全部楼层
楼主:MCX314AL现在多少钱一片?

出0入0汤圆

发表于 2011-10-1 08:16:16 | 显示全部楼层
cool

出0入228汤圆

发表于 2011-10-3 23:15:01 | 显示全部楼层
可惜了,用了成品运动芯片

出0入0汤圆

发表于 2011-10-3 23:33:38 | 显示全部楼层
强人

出0入0汤圆

发表于 2011-10-4 01:08:04 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-10-4 15:09:23 | 显示全部楼层
回复【27楼】wind_ward
牛人,支持梯形加减速吗?
-----------------------------------------------------------------------

没有梯形加减速,有些问题还在评估中,主要是在圆弧运动时,加减速在变速和圆弧不同象限转变对精度的影响。

这方面你好的建议吗?



回复【30楼】wxws 我行我素
可惜了,用了成品运动芯片

-----------------------------------------------------------------------

是仿真运动芯片,现有的运动芯片是内嵌处理器和PCI接口。

出0入0汤圆

发表于 2011-10-8 18:20:43 | 显示全部楼层
楼主准备多少钱准备上市啊

出0入0汤圆

发表于 2011-10-8 18:54:45 | 显示全部楼层
强人

出0入0汤圆

发表于 2011-10-8 19:31:31 | 显示全部楼层
真好,以后我也努力学习!

出0入8汤圆

发表于 2011-10-8 20:16:49 | 显示全部楼层
LZ牛逼。。。

出0入0汤圆

发表于 2011-11-3 22:14:18 | 显示全部楼层
回复【楼主位】hzband  
-----------------------------------------------------------------------

mark  强烈要求 公布一切资料啊···

出0入0汤圆

发表于 2011-11-3 22:42:18 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2011-11-3 23:12:00 | 显示全部楼层
离实用还有多远?

这可是个大工程.

出0入0汤圆

发表于 2011-11-3 23:19:58 | 显示全部楼层
不错,不过要是拟合成圆弧会毛刺比较少的啦。

出0入0汤圆

发表于 2011-11-6 14:14:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-6 22:28:40 | 显示全部楼层
高人啊

出0入0汤圆

发表于 2011-11-10 11:03:42 | 显示全部楼层
这个要顶

出0入0汤圆

发表于 2011-11-12 13:42:01 | 显示全部楼层
俺是菜鸟,请问楼主USB通讯帧怎么做?我这几天差了一下2.0的微帧周期125US ,是否意味着运动解析频率最大8kHz?

出0入0汤圆

发表于 2011-11-13 21:07:13 | 显示全部楼层
嗯,我也来佩服一下!

出0入0汤圆

发表于 2011-12-15 13:37:34 | 显示全部楼层
mark  强烈要求 公布一切资料啊···

出0入0汤圆

发表于 2011-12-20 00:00:07 | 显示全部楼层
真的是强人啊。榜样

出0入0汤圆

发表于 2012-3-26 21:29:43 | 显示全部楼层
强帖,最好是用fpga自行生成波形,这个就强悍了

出0入0汤圆

发表于 2012-3-31 10:43:10 | 显示全部楼层
能开发支持mach3的usb控制器吗?

出0入0汤圆

发表于 2012-4-3 14:01:56 | 显示全部楼层
mark.......................

出0入0汤圆

发表于 2012-11-6 23:29:00 | 显示全部楼层
工业控制的东东,用USB可靠性会差些。

出0入0汤圆

发表于 2012-11-7 01:35:54 来自手机 | 显示全部楼层
hwaafdx123 发表于 2012-3-31 10:43
能开发支持mach3的usb控制器吗?

网口和USB都有的MACH3接口卡你多少钱可以接受呢。

出0入0汤圆

发表于 2012-11-7 09:18:10 | 显示全部楼层
zhiyiyunmeng@ 发表于 2012-11-7 01:35
网口和USB都有的MACH3接口卡你多少钱可以接受呢。

目前市面上能买到的并口卡150左右,感觉做成usb成本也不会比并口多多少吧。

出0入0汤圆

发表于 2012-11-7 10:30:07 | 显示全部楼层
向楼主学习!

出0入0汤圆

发表于 2012-11-7 12:13:58 来自手机 | 显示全部楼层
牛人,记号一下

出0入0汤圆

发表于 2012-11-7 16:18:01 | 显示全部楼层
确实不错,也很强,但不得不说,很遗憾,感觉实际意义不大。
运动控制IC部分实际就是由USB转电平输出脉冲序列而已。
现有的插补软件多如牛毛,都是从并口输出脉冲序列,无须这么复杂,况且有好多是开源代码。
现在这个项目是把简单问题复杂化了,证明一下自己而已。

应该站在巨人的肩膀上,有这么多软件我们直接拿来即可,不必从头开始,我们应该站在高端,我看到好多介绍立体照相机的,只要拍照,就可以还原出数据模型,进而开始加工。这个方面我还没有见到有人走在前列。

个人观点,仅供参考。

出0入0汤圆

发表于 2012-12-10 16:09:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-12-10 20:38:02 | 显示全部楼层
我来mark一下

出0入0汤圆

发表于 2012-12-10 20:57:10 | 显示全部楼层
楼主,全才啊

出0入0汤圆

发表于 2012-12-11 10:09:59 | 显示全部楼层
不知道出了没有  有没有牛B人物拍砖?

出0入0汤圆

发表于 2013-3-12 12:16:17 | 显示全部楼层
mark 学习一下

出0入0汤圆

发表于 2013-4-7 16:29:23 | 显示全部楼层
MARK

出0入0汤圆

发表于 2013-4-10 21:53:58 | 显示全部楼层
我也在往运控方向学习,希望认识楼主e94e@163.com

出0入0汤圆

发表于 2013-4-10 22:22:03 来自手机 | 显示全部楼层
:-):-)marK

出0入0汤圆

发表于 2013-5-24 14:28:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-5-24 14:34:14 | 显示全部楼层
所驱动的电机为何种电机?直流伺服、交流伺服、步进电机?

出0入0汤圆

发表于 2013-5-26 15:31:46 来自手机 | 显示全部楼层
顶!高手!

出0入0汤圆

发表于 2013-5-27 09:39:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-10-20 10:42:54 | 显示全部楼层
本帖最后由 carollynn 于 2014-10-20 14:12 编辑

学习了 真心不错  步进电机吗? 驱动用的dsp吗

出0入0汤圆

发表于 2016-2-6 23:33:02 | 显示全部楼层
佩服 羡慕 高手

出0入0汤圆

发表于 2016-4-18 23:13:56 | 显示全部楼层
我们有运动控制芯片免费底层方案加995971182

出0入0汤圆

发表于 2016-4-28 08:16:49 | 显示全部楼层
楼主牛人。

出0入0汤圆

发表于 2018-8-12 21:07:29 | 显示全部楼层
tome555 发表于 2012-11-7 16:18
确实不错,也很强,但不得不说,很遗憾,感觉实际意义不大。
运动控制IC部分实际就是由USB转电平输出脉冲序 ...

能否发几个开源的链接,多参考下,正在做类似的项目,应该看的更广点,谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 01:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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