自动化行业为啥对实时性有要求,有关实时操作系统和windows系统比较的讨论

勇哥注:

为啥需要实时操作?你得先在项目中发现需求,否则就不可能明白实时性的重要性。


勇哥先讨论一下为啥在自动化领域对操作系统的实时性有要求。

我们从几个需求说起:

(1)怎么做到精准的定时扫描IO呢?

     通过线程扫描IO的方式,会受到windoows调度的不及时的影响(windows是抢占式多任务,也称为分时系统)。

     你无法确保能以5ms这样的固定调期去扫描IO。

(2)能否自定义飞拍?

     飞拍就是比较轴的位置,到指定的范围内就输出一个IO(这个IO用于触发相机)

     因此这个工作是在FPEGA芯片内部进行的(运动卡内部)。

     如果靠windows上的代码来进行,速度是不够的,因为你一条取轴位置api的执行时间就要1-2ms了。

     然后处理飞拍任务的线程还会被windows的调度机制限制实时性(无规律会被打断执行),无法定时连续的处理。

(3)怎么避免你的运动逻辑进程受到沉重的视觉任务的影响。

     工控机经常运行沉重的视觉任务、AI任务等。这些程序的进程等级往往设得很高。windows会为其分配更多的时间片。

     这个时候的表现就是cpu占用率极高,系统出现卡顿现象。

     此时运控进程得到的时间片就会更少,被windows调度打断就会更频繁并且是无固定周期性的。

     运控进程的线程间就会丧失实时性,造成A、B线程不是同时取得结果,而是有先后的时间差,这种时间差有时候会到夸张的地步,造成动作逻辑时序错乱。

     这种情况下,避免运控进程受到觉重后台其它任务的影响就是必要的。

 (4)怎么多相机同步拍照

    10个相机,希望能同时拍照,它们之间的同步误差小于0.1毫秒。

    这是在windows中无法完成的任务,没有这么高精度的定时器,即使有也无法确保能同时输出。

  


那为啥在工业自动化领域,windows用的如此广泛,而实时操作系统较少呢?

这是因为:

  • windows普及范围广泛,用户已经熟悉它的UI操作

  • 现代化,通讯接口极其丰富

  • 高效的生产力,开发工具平台极其成熟丰富

  • 因为前面几点,实施与培训成本非常低廉

  • windows因为高市场占有率,可以预计会持续发展而不会中断(微软公司不容易嗝屁)


其实,上面的问题本身也是不严谨的,如果我们把plc和单片机也算为实时的系统的话,那么在工业制造业领域,实时系统就算是非常常见的。

plc和单片机是硬件+软件的组合,它们是具有实时性的特点的。

plc里的程序,只要固定不变,其扫描周期也会固定下来,单片机也是一样的。它们可以看成是专用的实时系统,而不是通用的实时系统。



那么实时性的要求都有哪些共通点呢?

。确定性的改变表现

   表现在可以周期性的去干一件事,例如上面的扫描IO的任务。

   windows去干这种事,就谈不上固定周期性,在执行开始时间上不确定,在执行中被打断也是常见的。

。极低的最大响应时间

   windows中,你想每隔0.1ms去做一件事,是不可能的。因为它根本没有这个精度的订时器。

   另外在windows程序的循环中,线程释放cpu Sleep(1),并不是一个精确的1ms,而是要看windows调度器的脸色。

   并且你还不能小于1, 也就是你不能低于1ms的响应时间去处理循环。



那么除了使用实时操作系统,windows中有什么办法提高实时性呢?

这个问题勇哥之前研究过,见下面贴子:


windows下c#程序提高实时性   http://www.skcircle.com/?id=1915


有些公司也推出了产品: 

例如Kithara

这个国产的windows下提升实时性的方案,采用的是驱动程序方式工作。

因为驱动程序是工作在windows内核下的,具备了一定的实时性。

然后这款产品可以把你的应用端的dll,拉到内核内进行执行。这样就让用户层的程序具备了实时响应性。


其实这个方案,也是之前勇哥考虑过的,但是隔行如隔山,内核编程对于我来说是跨界了。


注:关于驱动程序工作在系统内核下,因此具备了一定的实时性,这一点勇哥是有体会的。
多年以前有一款电脑遥控器,它可以遥控关机,它就是工作在驱动层。
即使电脑在高负载、系统卡顿(连鼠标都卡顿)、白屏假死的情况下,一样可以正常关机成功。





下面则是实时操作系统的一些知识点的摘抄:

====================================================


(一)实时操作系统可以做到的事,但是windows做不到的

实时操作系统(RTOS)与Windows操作系统在设计目标、功能和特性上存在显著差异。
以下是实时操作系统可以做到,但Windows操作系统可能难以或无法做到的一些事项:


实时响应:

实时操作系统的主要特点是能够在规定的时间内对外部事件或数据做出快速响应。
RTOS能够在毫秒级甚至微秒级的时间内处理关键任务,确保操作的实时性。

相比之下,Windows操作系统虽然也具备多任务处理能力,
但其响应时间通常较长,不适用于需要极高实时性的应用。

硬实时保证:

实时操作系统分为硬实时和软实时两种。硬实时操作系统要求在规定的时间内必须完成操作,
这是通过操作系统设计时的严格保证来实现的。

在硬实时操作系统中,如果不能在允许时间内完成操作,系统可能会因错误结束或采取其他紧急措施。
而Windows操作系统没有硬实时的要求,其响应时间可能会受到系统负载、资源争用等因素的影响。

优先级调度:

实时操作系统包含一个实时任务调度器,它严格按照优先级来分配CPU时间,确保关键任务能够得到及时处理。

Windows操作系统虽然也支持优先级调度,但其主要目标是优化用户交互和多任务处理,而不是实时性。
因此,在实时性要求极高的应用中,Windows的优先级调度可能无法满足需求。

资源管理和确定性:

实时操作系统能够精确控制和管理系统资源,如CPU、内存、I/O设备等,确保实时任务能够按照预定的时间和顺序执行。

Windows操作系统虽然也提供了一定的资源管理能力,
但其资源分配和调度策略可能受到系统负载、进程优先级、用户交互等多种因素的影响,无法保证实时任务的确定性执行。

错误处理和恢复:

实时操作系统通常具有强大的错误处理和恢复能力,能够在系统出现故障时迅速做出响应,确保关键任务的连续性和可靠性。

Windows操作系统虽然也提供了错误处理和恢复机制,
但其主要目标是保护用户数据和系统稳定性,而不是确保实时任务的连续性。

综上所述,实时操作系统在实时响应、硬实时保证、优先级调度、
资源管理和确定性以及错误处理和恢复等方面具有Windows操作系统难以或无法比拟的优势。
这些优势使得实时操作系统在航空航天、国防、汽车和工业自动化等需要极高实时性和可靠性的领域得到广泛应用。




image.png


image.png


image.png

image.png


image.png


https://www.bilibili.com/video/BV15a4y1J73x/?spm_id_from=333.337.search-card.all.click&vd_source=96e36d0c4638992f2ce92aad0dbb1882


image.png

image.png

https://www.bilibili.com/video/BV1tz4y1Q7RB/?vd_source=96e36d0c4638992f2ce92aad0dbb1882


image.png

https://www.bilibili.com/video/BV1zA411j7GT/?vd_source=96e36d0c4638992f2ce92aad0dbb1882


www.straton-plc.com/en/download/



EtherCAT&EtherNet/IP基础知识讲解合集:【工业通讯】EtherCAT&EtherNet/IP基础知识讲解合集
认识工业通讯技术:【工业通讯】认识工业通讯技术
CANopen讲解合集:【工业通讯】CANopen讲解合集
PROFINET协议基础知识:【工业通讯】PROFINET协议基础知识
ROS机器人应用浅析:【工业通讯】ROS机器人应用浅析
CC-Link IE TSN:【工业通讯】CC-Link IE TSN
OPC UA over TSN-面向未来的工业通信:【工业通讯】OPC UA over TSN-面向未来的工业通信
工业机器人驱控一体化解决方案-技术趋势与应用案例:【工业通讯】工业机器人驱控一体化解决方案-技术趋势与应用案例
TSN时间敏感型网络技术综述:【工业通讯】TSN时间敏感型网络技术综述
国产实时操作系统SylixOS的工业应用:【工业通讯】国产实时操作系统SylixOS的工业应用
面向工业4.0的软件平台-straton SoftPLC方案:【工业通讯】面向工业4.0的软件平台-straton SoftPLC方案
TSN时间敏感型网络技术综述:TSN时间敏感型网络技术综述-虹科云课堂
初识EtherCAT协议:初识EtherCAT协议-虹科云课堂
EtherCAT主站方案:EtherCAT主站方案
认识工业通讯技术:认识工业通讯技术



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

发表评论:

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

会员中心
搜索
«    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