构建实时运动控制+视觉系统(二):基于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





本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-07-09 11:15:40 编辑

发表评论:

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

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864