【版主按】:google一下原帖,发现原文出自清华大学周凯教授手笔,由于楼主未经原文作者允许,擅自转载,且未注明出处,故做全文删除处置!有对原文感兴趣的网友可参见:http://www.st35.com/article/likelunwen/qitalike/2174.html。
令,goolge结果表明原文已被各色论文网大量引用,无非是想骗取想拿克莱登大学文凭的懒人嘴里的白来之食,悲夫!
不过,原文标题却是个不错的坑,愿者上钩,想填无妨来填两下。
楼上看来没拆过. 西门子840D的HMI是X86,但运动控制部分是定制的专用控制芯片. (插不了图,无奈.)
虽然一部分通用控制算法由HMI部分(X86)完成,但重要的一部分还是要由专用控制器完成,这样实时性较强,同步性较好
这个我同意!
西门子的所有数控系统都是相同的内核, 针对不同的产品开放不同的功能!当然了后期的产品会对原来的功能进行了改进和提高!
什么意思呢?
801 802 804 内核的东西都是一样的, 最多就是根据HMI等修改外部的东西!
运动控制部分应该是由专门的ASIC芯片来完成的, actel的FPGA之类的。
这一块国内只有西门子数控在做, 做的也都是HMI之类的东西, 核心技术在德国!
西门子840D是十几年前设计出来的产品,经过多年的应用,强大而且可靠,被大家所信赖。
而用PC来做数控系统的概念还比较新,没有被大规模的应用过,大家也都有所怀疑。
其实用PC做数控的好处还是很大的,尤其是今天,有了多核处理器的出现。现在,一个双核的E5400才400多块钱,但是器运算能力却及其强大。
我想,如果在当初设计840D的时候,要是有多核处理器的话,西门子可能也会选择使用多核处理器,单独用一个核来做NC,另一个核来做HMI。结构简单而且功能强大。
此外,对中国的公司来说,使用PC做数控还有一个好处,就是降低开发难度。windows大家都会用,会用VC++做开发的人多的是。从而,可以减少开发时间,降低风险。
大家争论最多的就是windows的实时的问题,其实,这个问题也很容易解决。RTX和Intime都能很好的完成这项工作。德国的PA和3S也有其自己的实时内核。就是国内,现在也有人已经做好了。
像840D那样,NCU和HMI相分离,直接在一块P3处理器上做NC软件。其开发难度是非常大的,不是国内的中小型企业所能做的了得。
我觉得西门子840D的运动控制部分应该就是用通用X86处理器来做的,没有用专业控制器。
840D手册上列出了不同版本的840D之间的处理器(K62,P3)和内存的不同,没有提到其他的不同。以X86处理器的运算能力,用来做数控系统,应该没有任何问题。
包括海德汉的I530也是这样的配置,两个P3处理器,一个跑NC,一个跑windows+HMI。
至于实时性,用单独的一个处理器来做NC,也没有任何问题。即使是一个CPU把NC+HMI+PLC都做了,现在也没有任何问题。
这个真的建议你拆个840看看, 里面的FPGA或者ASIC芯片至少有三四块
X86做运动控制肯定不行, 不仅X86不行, 所有处理器都不行,除非你不用操作系统!
商用的实时操作系统vxworks, 时间片是10ms, 10ms的时间对运动控制来说太长了!
有较真的朋友或许会说可以把时间片改成0.1或1ms, 在操作系统里, 用这个时间片就是找死, 操作系统的任务切换需要的时间就要几十微秒!
好的系统架构肯定是通过PCI或者其他总线方式扩展专用的处理卡, 或者将FPGA或ASIC芯片通过PCI总线挂到处理器上, 处理器队负责解析命令等, 然后将运动轨迹通过PCI总线写入共享内存, 由FPGA等实现运动控制!
商用的实时操作系统vxworks, 时间片是10ms, 10ms的时间对运动控制来说太长了!
有较真的朋友或许会说可以把时间片改成0.1或1ms, 在操作系统里, 用这个时间片就是找死, 操作系统的任务切换需要的时间就要几十微秒!
-------------------------------------------------------------
黄历了! 有兴趣的话“征”不妨看看B&R和Beckhoff基于x86 IPC的总线控制系统,据说B&R用的是VxWorks,Beckhoff可能用的是CoDeSys捆绑的实时内核,至少这两家的运控刷新周期都可以做到小于10ms,乃至1ms或100us。