少有人走的路

勇哥的工业自动化技术网站

构建实时运动控制+视觉系统(二):基于windows+实时拓展搭建运动控制系统的方案

勇哥注:

windows下的实时拓展:RTX、INTime、Kithara、VxWin

Linux下的实时拓展:Preempt-RT、RTAI、Xenomai

window下的实时拓展都是商业软件,大部分都是按装机台数授权,成本昂贵。

Linux下的实时拓展都是开源软件,然后软件商集成+改进包装成收费软件,成本低些。



一般可以考虑选择windows+实时拓展+软件主站的方式,详细原因见后面的解释。


image.png

操作系统的选择,在工业控制领域,windows应用的要更广泛一些。
这是有原因的:一是windows的市场占有率高,二是开发工具极其丰富,三是受众面广泛因此带来培训与应用的成本极低,四是微软公司很难倒闭。

不管是windows,还是linux,都有实时拓展可供选择。

对于总线驱动(软驱动),也都有对应的选择。

kithara本身就带总线驱动模块。


image.png

双内核指的是操作系统用几个核,剩下核心交给实时拓展独占使用。

而单内核的实时拓展,是对操作系统进行了改造,把它变成了实时系统,但是对开发者来说,调用接口不会发生改变。

因为windows这样的操作系统是商业产品,闭源的,所以无法修改内核代码完成拓展,只能以双内核方式来实现拓展。


image.png

下图是Kithara的架构:

用户程序把需要实时的代码以(原生机器码编译出来的,只能是c++,delphi)dll方式载入ring0层执行。(下图中竖黄条所示)

用户程序把UI交互、工作逻辑等部分的程序放在ring3层执行(C#代码,用户层执行),但是C#程序可以通过Kithara RTS API,调用Kithara内核提供的功能。

Kithara RTS -Kernel 内核提供了自己的实时驱动:Usb3、CAN、SSD Storeage等。

image.png


下图表示了windows的ring0和ring3层的内存空间。

以及Kithara的内存空间。

ring0如果想和ring3交互数据,一般有共享内存和管道两种方式。

image.png

硬件主站方式时,有些协议并不是标准的以太网网口,例如Rtex,这个时候就得配专用的通信卡。

这对系统的稳定性和成本带来问题。

如果使用软主站的方式,相对来说就没有这些问题。但从成本来说,虽然少了硬件成本,但其实是多了软件成本的。

image.png





发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864