amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 16197|回复: 62

LinuxCNC (EMC2) 在window下运行

  [复制链接]
发表于 2013-9-19 22:43:17 | 显示全部楼层 |阅读模式
可以看下附件的程序,高手不吝指教!

Release.rar

2.82 MB, 下载次数: 2204

发表于 2013-9-19 22:47:57 | 显示全部楼层
用MinGW重新编译一遍就行了啊
 楼主| 发表于 2013-9-19 23:04:44 | 显示全部楼层
笑笑我笑了 发表于 2013-9-19 22:47
用MinGW重新编译一遍就行了啊

您说的对。不过有时看很近,走起来可能要走一遍过才知有多近的。
发表于 2013-9-20 09:12:51 来自手机 | 显示全部楼层
很難用。。。。
 楼主| 发表于 2013-9-22 09:27:31 | 显示全部楼层
erpao 发表于 2013-9-20 09:12
很難用。。。。

还有很多方面没完成。
 楼主| 发表于 2013-9-22 09:30:22 | 显示全部楼层
研究过LinuxCNC的人多不?
发表于 2013-9-22 10:02:33 | 显示全部楼层
关注,代码好难看懂
 楼主| 发表于 2013-9-23 07:53:50 | 显示全部楼层
adolfshxq 发表于 2013-9-22 10:02
关注,代码好难看懂

“无他,唯手熟尔“-----卖油翁

分成几部分来说吧:
1.rcslib  是一跨平台的通信库。window,linux,java等都可用rcslib来跨平台,跨进程通信。写几个进程,用rcslib通信,就对它比较清楚。
2.rs274ngc 是G代码解释器。这个库可以独立出来,写一个程序用这个库来显示G代码。这不会太难了。
3.hal  硬件抽象层。把实时代码模块化了。这部分不好分开。对动态库的原理清楚的话,不会太难了。
4.milltask 界面与实时电机控制部分通信进程。milltask进程与界面进程用rcslib通信。它与实时部分用共享内存通信。一个很大的状态机。
5.界面。有用xlib的纯C言的一个文件的代码的界面。用这个界面就好理解了。
6.运动控制部分。这部分代码不多,难度太大了。等高手来点拔了。

抛砖引玉了!
发表于 2013-9-23 09:00:51 | 显示全部楼层
学习了,  mark.
发表于 2013-9-23 09:31:15 | 显示全部楼层
EasyControl 发表于 2013-9-23 07:53
“无他,唯手熟尔“-----卖油翁

分成几部分来说吧:

加个QQ有空可以交流下,呵呵191*177*939
 楼主| 发表于 2013-10-7 08:37:33 | 显示全部楼层
TCP与UDP
TCP比UDP复杂多了,TCP协议要完全明白,要费很多力气的,
UDP就是一个包,IP明白了就明白UDP。
在想一定用TCP决不用UDP来通信。

USB与UART
很早的电脑有UART,后来有USB了,现在电脑上UART见不着了。
在想用USB了,UART已退出历史了。

有一次看到了Tegra3的资料。这是一片4+1核心的最新的一个
芯片了。上面还有5个UART。不是在复杂的系统中UART
已退出历史了?

现在明白了一点,因为UART简单在板上通信还是有优势的。所以
可能会一直用下去。

UDP简单,在紧耦合的情况下还是有优势的。现在用UDP也不用
TCP了。
 楼主| 发表于 2013-10-13 18:53:32 | 显示全部楼层
控制器电路板

top.jpg

控制板-反面

控制板-反面
 楼主| 发表于 2013-10-13 19:02:50 | 显示全部楼层
提供linuxcnc+控制板完整方案。linuxcnc可在window下运行,控制板由STM32F207,FPGA ep1c3t100,DP83848,光耦等构成。
QQ:2234620633
 楼主| 发表于 2013-10-13 21:27:02 | 显示全部楼层
欢迎合作,一起推广
发表于 2013-10-14 02:53:03 | 显示全部楼层
EMC2 强项在他使用的环境,  客制的 LINUX 内核 有载入 "实时模组" realtime kernel , 与单片机的 RTOS 有点类似
一般直接用电脑IO发的脉冲都是直接就发出去了, 在windows 分时多工的环境下, 没法保证每个脉冲是否对上拍子
EMC2 是利用 Linux  realtime kernel 来控制 HAL 部分IO的驱动, 可以尽量的让他稳定有个较固定的时钟

这样子更新(update time)与计算(PID loop)才不会乱了套
也就是 LPT Port 发出去的脉波才会稳定

看过 LinuxCNC 论坛上更要求的 会用 MESA 的 FPGA 卡 配合论坛上发的 FPGA 韧体下去使用
很多例子都是拿来改加工中心机的



-------------------------------
Windows 下除非用DSP+FPGA配合晶振  , 串口运动控制器 , 轴卡...  等二阶运算架构 或是 下位机

不然我觉得用 MACH3 就好了 ^^!




-------------------------------
开发者网站的资料 http://wiki.linuxcnc.org/cgi-bin/wiki.pl

Why won't LinuxCNC run on Windows?  为什么不LinuxCNC在Windows上运行吗?

  LinuxCNC runs in real-time, to give smooth motion.        LinuxCNC 实时运行,给 流畅 的动作。

  This is critical to accuracy and machine life.          这是至关重要的 准确度 和 机器寿命。

  Hard real-time is not available on Windows in a price range many can afford... especially those interested in using a PC-based control.
        硬实时不适用于Windows在一个价格范围内,许多能买得起...特别是那些有兴趣在使用基于PC的控制。

  LinuxCNC is intended to control machine tools.        
        LinuxCNC的目的是控制机床。

  Machine tools are DANGEROUS and reliability/consistent behavior is extremely important.
        机床是  危险  并且 可靠性/一致的行为   是极其重要的。

  
  Compared to Windows, few viruses affect Linux. Even without consideration of viruses, Linux is far more stable.
        少数病毒会影响到Windows相比,Linux操作系统。即使不考虑病毒,Linux是更稳定。

  The above also apply to virtual machines (e.g., VMware or Virtual Box) and emulators. It may be possible to trick LinuxCNC to run on a virtual machine but do so at your own risk!
        以上也适用于虚拟机(例如,VMware的虚拟盒)和模拟器。它可能欺骗LinuxCNC在虚拟机上运行,但这样做在自己的风险!

  The above notwithstanding, one can access a running LinuxCNC machine from a Windows machine, e.g., by running a Windows-based VNC client or X11 server.
        尽管有上述,可以访问Windows机器上,如正在运行的LinuxCNC机,通过运行基于Windows的VNC客户端或者X11服务器。
 楼主| 发表于 2013-10-14 08:06:44 | 显示全部楼层
MACH3 与 LINUXCNC

Traj.h是mach3的公开部分的源代码。
tc.h与tp.h是linuxcnc的代码。

请认真比较以上三个文件,是不是可以说最核心部分,MACH3也是用的是LINUXCNC呢???

source.rar

10.09 KB, 下载次数: 1266

源代码

 楼主| 发表于 2013-10-14 08:22:10 | 显示全部楼层
谢谢mzlo!

主要考虑开环控制。
这板不会很快推出的。

-.看大片的方法。
1.没有计算能力能不看大片。可以的,先把大片倒到胶片上,用胶片放映机放。
2.要整个文件才能看不。不用,有一定稳定宽带,可以边下边看。

二.控制板的做法。
1.没有很强的计算能力能做脱机控制不。有一种方法,先计算生成一个文件,脱机时打开计算结果的文件,跟据文件内容简单控制输出就行了。
2.要有完整的文件才能输出吗。不一定只要稳定宽带,可以边下边输出。
发表于 2013-10-14 20:01:26 | 显示全部楼层
本帖最后由 mzlo 于 2013-10-14 20:02 编辑

WINDOWS 让人伤脑筋的问题就是他开环也不稳
主要问题就是程序状态的 更新时间(Update Time)没办法有一个较精准的时序, 这好像叫时基误差吧(Jitter)

快慢到还好, 主要时基是不要飘移, 不然脉冲发出去是会乱跑的, 严重点驱动器收到有可能会失步的
MACH3 如果不装他的驱动, 有的机子是飘的蛮利害的

这个问题主要反馈在刀路光不光洁,抖动与顿挫感 , 至于刀路的准确, 以步进来说到是不会偏差太大.
步序时间越准确, 刀路越连贯, 抖动与顿挫感也越小了, 容我相信一般易断刀的主要是这个毛病
机器速度上不上去的,这点也是一大关键

能搞定这个关卡,那这软件就好用了

--------------------
之前翻过不少论坛, 总的来说
EMC2 除了MACH3 以外 , 也很多人用的原因
1. 真的 FreeWare 自由软件, 原代码都开放了
2. 在小规模下(不用轴卡,与其他串列或USB的方式) 性能几乎是最好的
3. 要升级进阶版控制(DSP-FPGA发送脉冲+ ENCODER 闭回路, 或是模拟值控制AI/AO), 有现成的行业界的人士支援 (MESA 控制卡)
4. 扩充方面 MODBUS ASCII/RTU/TCP 也是可以用的, 还有其他论坛提供的物件
当然缺点也是有的, 蝌蚪文, 还有目前不太友善的 Linux 介面
真要用起来都是有点难度的



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

有没有其他的问题这我还要再想想



 楼主| 发表于 2013-10-28 09:33:44 | 显示全部楼层
mzlo,您好!
WINDOWS不是实时系统。如果不运行别的程序,windows的响应在百毫秒级还是有一定保障的。
目前主要还是想提高线程的优先级,做测试,看控制板的数据缓存区是不是会空掉。
 楼主| 发表于 2013-10-28 09:35:30 | 显示全部楼层
坛上高手很多,请不要客气!
能指点一二,十分感谢!
发表于 2013-10-30 13:18:32 来自手机 | 显示全部楼层
友情帮顶!
发表于 2013-10-30 16:06:16 | 显示全部楼层
说一下我的建议,感觉楼主的路子不对,这个东西要普及不外乎好用低价,要想专业用户用不太可能 现在国内廉价的数控系统  车床才2000块  铣床在3000块
性能虽然不怎么样 但是一般场合下足够用,主要是稳定性基本能达要求
在linux下的东西在国内注定只有小众用户,楼主既然已经对源码做了功课 ,还是把它移植到arm平台吧 搞一个精简版的linux   重新做个界面 然后做点专用键盘 这样用户回去根据自己情况就可以搞个看起来赏心悦目的控制平台了,以前在他的论坛看过有移植arm成功的  还有用类似浏览器做的界面,现在那个界面操作太不方便,只要能定制界面他能变成好多专用控制器
发表于 2013-10-30 16:14:04 | 显示全部楼层
楼主可以烧好程序的核心板 加液晶屏 加专业键盘
 楼主| 发表于 2013-10-30 18:16:35 | 显示全部楼层
数控铣,谢谢!
跟LINUXCNC这师傅学,还是在PC的平台下学了有点样子了,再想别的平台了。
跟LINUXCNC师傅还有不小差距呢。
发表于 2013-11-8 17:15:13 | 显示全部楼层
建議 LZ 透過 EtherCAT 即時通訊協定與 LinuxCNC 連結,這是個人認為最有彈性的做法.控制卡扮演 ESC(EtherCAT Slave Controller) 透過以太網路連結 LinuxCNC.
能避免掉 Parallel port 退出歷史舞台的困境,又能保有 LinuxCNC 的即時性. EtherCAT 的彈性是可透過以太網路視需要串接多個 ESC 設備都還能保證即時性.

建議 LZ 可設計 4 軸卡,上面提供 +-10V 的Analog 輸出(控制伺服)或 Step Pulse(控制步進),加上 4 個 Encoder 輸入 與各 16 個數位輸入輸出. 價格控制在 1000 人民幣左右. 這樣的控制卡應該對需要工業級穩定性又價格敏感的客戶是有吸引力的.

鎖定的對象應該是 Mesa 5i25+7i77 六軸伺服控制卡(PCI介面) 239 美金.
 楼主| 发表于 2013-11-8 21:00:30 | 显示全部楼层
rayhu 发表于 2013-11-8 17:15
建議 LZ 透過 EtherCAT 即時通訊協定與 LinuxCNC 連結,這是個人認為最有彈性的做法.控制卡扮演 ESC(EtherCA ...

rayhu,thanks!

目前是这样在进行!

“增之一分则太长,减之一分则太短;著粉则太白,施朱则太赤”
用linuxCNC的代码,最好是不要修改代码,可是有些地方还是
要修改的。

还是能做出一个来看看的。
发表于 2013-11-8 22:27:25 | 显示全部楼层
EasyControl 发表于 2013-11-8 21:00
rayhu,thanks!

目前是这样在进行!

若只是為了能在 Windows 上執行而修改,那真是買牘還珠了.
EMC2 在 NIST 開發的最早版本是有考慮支援多個作業系統的,實際上測試時用的就是 Windows NT 不過是即時的版本.
開源後,為了讓系統更好維護才鎖定 Linux 去除了支援其他平台的程式碼.

我看了文件,HAL 是整個的核心而這個核心是建立在即時作業系統的基礎上的.沒了即時作業系統那....
另外,即時並不是指電腦快,而是指可預期(Deterministic)在下一個時點會做什麼事.不會因為 Time-Slice 的關係而無法預期.

另外,如果怕使用者不會用 Linux,那就賣它一套裝了 Linux 的系統(用類似 BeagleBone 的單晶片系統),讓開機後畫面就是 LinuxCNC (其實 LiveCD 已經差不多這樣了).
讓使用者認為這是專機專用,他就不會去管這是不是 Linux 了(現在的網路分享器不都是 linux,誰擔心了?).而你又多了個賺錢來源,呵呵!
最重要是讓 Community 來支援維護這個系統對你才是最有力的.

小小意見! 別見怪!

 楼主| 发表于 2013-11-10 17:35:37 | 显示全部楼层
rayhu 发表于 2013-11-8 22:27
若只是為了能在 Windows 上執行而修改,那真是買牘還珠了.
EMC2 在 NIST 開發的最早版本是有考慮支援多個 ...

rayhu,您好!

做这个控制系统,能解决一两个问题就不错了。

有个问题是:雕刻PCB板时,PCB是不平的,要校正。当然已经有方法了。
这有一种方法,是不是可行的:
用一个摄像头对准刀头,计算加工时刀头与PCB板进刀的实时情况,对Z轴进行调整。
用PC来做比较好做。windows的驱动比linux要好一点吧。
发表于 2013-11-11 10:21:46 | 显示全部楼层
EasyControl 发表于 2013-11-10 17:35
rayhu,您好!

做这个控制系统,能解决一两个问题就不错了。

LZ 何不考慮以 Mach3 的 Plug-in 方式?
 楼主| 发表于 2013-11-11 11:36:30 | 显示全部楼层
rayhu 发表于 2013-11-11 10:21
LZ 何不考慮以 Mach3 的 Plug-in 方式?

对Mach3 是否能这样做,现在没时间去看了。

有待Mach3的高手了。
 楼主| 发表于 2014-1-10 21:39:12 | 显示全部楼层
http://v.youku.com/v_show/id_XNjYwMDYwNDQ4.html

摄像头激光校正PCB雕刻,刀路走两遍: 第一遍走用摄像头激光测距记录刀路上Z轴要校正的数据。 第二遍用第一遍的数据校正Z轴加工。
 楼主| 发表于 2014-3-20 06:04:07 | 显示全部楼层
做个调查。

楼主虽然学习EMC2略有心得,但愿与大家交流。收费1000元/人/天。

大家觉得怎样?
 楼主| 发表于 2014-4-11 06:47:48 | 显示全部楼层
发表于 2014-4-11 16:53:51 | 显示全部楼层
LINXCNC,大家都在搞这个啊,哈哈,哥N年前也接触过
发表于 2014-4-11 16:58:45 | 显示全部楼层
2005~2007年做的产学研项目,哥那时才开始接触LINUX

LINUX开机界面

LINUX开机界面

CNC

CNC

FPGA插补板

FPGA插补板
 楼主| 发表于 2014-4-15 12:40:26 | 显示全部楼层
hilam 发表于 2014-4-11 16:58
2005~2007年做的产学研项目,哥那时才开始接触LINUX

大哥很早就用emc2,做的是linux,兄弟晚些,就用用windows.
 楼主| 发表于 2014-4-15 12:42:29 | 显示全部楼层
http://v.youku.com/v_show/id_XNjk5MDY1ODU2.html

摄像头激光测距校正PCB雕刻(改进版)

第一遍在140mm*90mm的面内平均测11*11=121个点,用了十分钟。 第二遍用第一遍的数据实时计算z轴校正加工。
 楼主| 发表于 2014-4-15 12:46:01 | 显示全部楼层
市场能用的激光位移传感器都要3000元,在这小的雕刻机上安装也是个问题。楼主DIY这个传感器好安装,USB接口也好用。
 楼主| 发表于 2014-4-19 11:22:54 | 显示全部楼层
万能的坛啊!

在坛上看了很长时间了,这搞雕刻机的人才多啊!

有人对这套控制系统感兴趣,愿意测试的网友吗?
发表于 2014-4-21 18:54:46 | 显示全部楼层
mark下,以后多学习……
 楼主| 发表于 2014-4-22 09:53:16 | 显示全部楼层
论坛广告区:

以太网接口雕刻机运动控制系统,您测试,就送控制系统
http://www.amobbs.com/thread-5577983-1-1.html
发表于 2014-5-16 15:43:34 | 显示全部楼层
hilam 发表于 2014-4-11 16:58
2005~2007年做的产学研项目,哥那时才开始接触LINUX

我们在做一个刻字机,看到您的linuxcnc,能否探讨合作一下。QQ653402647
发表于 2014-5-20 01:08:46 | 显示全部楼层
rayhu 发表于 2013-11-8 17:15
建議 LZ 透過 EtherCAT 即時通訊協定與 LinuxCNC 連結,這是個人認為最有彈性的做法.控制卡扮演 ESC(EtherCA ...

mark
 楼主| 发表于 2014-5-20 06:21:12 | 显示全部楼层

这可能涉及一个通用的问题。

软件往底层就与硬件越靠近,底层反应会快,但操作系统很多东西会有限制不能用。
有可能网卡的驱动,要自己重新写的。对ARM芯片网口的驱动还好了,对PC太多网卡了,操作系统又太大了。

要费很大力,开发出来可能只能在一种PC主板上运行,不太通用啊。
发表于 2015-3-20 17:39:25 | 显示全部楼层
linuxcnc 和emc2是一回事吗
 楼主| 发表于 2015-3-20 22:20:11 | 显示全部楼层
cnzhoujin 发表于 2015-3-20 17:39
linuxcnc 和emc2是一回事吗

官网上的解释是:开始时称为EMC,后来有个公司叫EMC的有意见了,不让叫EMC,就称为LinuxCNC了。
发表于 2015-3-30 23:42:21 | 显示全部楼层
EasyControl 发表于 2015-3-20 22:20
官网上的解释是:开始时称为EMC,后来有个公司叫EMC的有意见了,不让叫EMC,就称为LinuxCNC了。 ...

哦,怪不得,我看晕了~,这东西很感兴趣,但是FPGA一点不懂!
发表于 2015-3-30 23:43:20 | 显示全部楼层
EasyControl 发表于 2015-3-20 22:20
官网上的解释是:开始时称为EMC,后来有个公司叫EMC的有意见了,不让叫EMC,就称为LinuxCNC了。 ...

哦,怪不得,我看晕了~,这东西很感兴趣,但是FPGA一点不懂!Linux懂一点点~
发表于 2015-4-1 11:44:18 | 显示全部楼层
LInuxcnc 好难懂的一堆代码,真不知谁能全部理解,并且移植到arm上去,那叫厉害。
发表于 2015-4-4 21:59:45 | 显示全部楼层
EasyControl 发表于 2013-10-13 19:02
提供linuxcnc+控制板完整方案。linuxcnc可在window下运行,控制板由STM32F207,FPGA ep1c3t100,DP83848,光耦 ...

真的厉害啊,高手
发表于 2015-12-19 19:12:54 来自手机 | 显示全部楼层
mark linux cnc
发表于 2016-1-18 13:35:38 | 显示全部楼层
兄弟,你怎么不玩了?找不到你的网店啊
 楼主| 发表于 2016-1-19 21:43:12 | 显示全部楼层
minrod_2012 发表于 2016-1-18 13:35
兄弟,你怎么不玩了?找不到你的网店啊

还在继续,回到linux系统来用LinuxCNC.

要做好这个系统,只能要跟紧Linux了。
发表于 2016-5-24 20:50:01 | 显示全部楼层
最近在研究这个EMC2,有朋友聊聊   qq :1242138773
发表于 2016-5-25 13:56:22 来自手机 | 显示全部楼层
用树莓派跑linux
发表于 2016-6-27 10:37:37 | 显示全部楼层
最近研究源码,有些许进展,不知有人同研吗?交流一下更好。
发表于 2016-10-23 17:14:25 | 显示全部楼层
linuxcnc 源码看了一遍,大体架构已清晰,目前正在做硬件接口问题,hal硬件抽象层有人做 吗,交流
发表于 2016-10-23 17:15:54 | 显示全部楼层
只能linux下,不能Windows下,这个是我看了的结论,不是绝对而是不合适。
 楼主| 发表于 2016-10-23 20:01:14 | 显示全部楼层
Linux???
Bash,make,python,tcl/tk这些怎样呢?说起来比C,C++是简单了。要都会才行的呢,在linux上。
发表于 2016-10-25 19:54:36 | 显示全部楼层
这个能搞定就爽了
发表于 2017-3-6 17:38:04 | 显示全部楼层
不知楼主现在坚持win还是linux,做的板子有网店吗?
 楼主| 发表于 2017-3-8 09:56:07 | 显示全部楼层
cnzhoujin 发表于 2017-3-6 17:38
不知楼主现在坚持win还是linux,做的板子有网店吗?

向大哥学习。

在用Linux,主要是安装使用。
Linux在手机上可以超过windows不是偶然的。

有做HAL的板子可以发图看看吗?

EasyControl 可以在TB上search "EasyControl" 。
发表于 2017-11-12 15:23:24 | 显示全部楼层
学习了
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2018-12-12 19:18

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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