Real-time Multi-tasking
基于PC的自动化的Windows实时扩展的期望是:
-
单任务执行的确定性
-
多个应用程序的协调行为
-
高精度时间戳
-
即刻反应外部事件
-
循环记录的测量数据有很小的偏差(抖动)
-
实时精确监测过程状态
-
不仅是“相对快的计算机”,而且是“硬”实时
Real-time for Windows
Kithara实时套件是一个提供一些机制来很好解决这些问题的一个模块化的实时扩展。以下是一些基本特点:
-
使用系统最高的优先级(高于其他Windows应用程序)
-
对于重要的任务不可以被其他优先级函数打断
-
对外部事件的高精确度反应(例如,定时器,中断,通信接口等)
-
可编程高频率的周期定时器(时间等距)
-
基于优先级的抢占式实时多任务
-
硬件的并行性利用(多核CPU,实时任务分配)
-
实时任务执行的可扩展性,为了让实时任务最大限度的独占CPU内核
-
支持 Windows 10和11(32位和64位)以及 Windows Server 2016,2019 和 2022
Windows 高频定时器广泛应用于机器人、机器视觉、测量、控制和自动化。Kithara 的软件环境达到了与纯实时系统相同的性能水平,并提供了特殊的实时定时器,可以用高达几千赫兹的频率对其进行编程,偏差(抖动)仅为几微秒。而在专用的 CPU 内核上,实时功能可以进一步提高,定时器的最大抖动仅为 1 微秒左右。因此,可以对频率高达 20 kHz 的精确循环定时器进行编程和使用。对于实时和应用程序级之间的快速数据交换,可以使用事件、共享内存、管道机制和套接字。
许多应用程序只能通过使用复杂的过程模型来实现,这需要强大的工具来支持。最合适的方法是基于优先级的抢占式多任务系统,该系统可以提供多达 255 个不同优先级的实时任务,可靠地确保仅执行具有最高优先级的任务。
模块
Windows下的实时环境包括以下Kithara实时套件组件:
Timer Module
具有时钟功能的Timer模块是所有实时任务的基础。 它提供对系统中所有硬件时基的校准访问。 时间信息可以自由转换成任何时间格式,甚至是用户特定的时间格式。 根据所使用的硬件,短时间延迟在几纳秒内是准确的。 此外,它还可以基于 Windows 机制以毫秒分辨率实时生成简单的计时器。
-
检测系统中的所有操作时间基准
-
校准不同的定时器/时钟
-
与系统时钟长期同步
-
以不同的时间和用户特定格式监控系统时间,分辨率高达0.1μs
-
高精度的短时间延迟,步长为0.1μs
-
用户特定时间格式的编程
-
可靠地防止由内部96位操作引起的溢出
-
基于 Windows 机制(非实时)以毫秒分辨率生成简单计时器
RealTime Tasking Module
高频实时定时器例程和优先级驱动的抢占式实时多任务编程
RealTime Tasking Module 补充了 Timer Module 并启用定时器编程,可以以不同方式触发应用程序代码。 可以选择程序执行的上下文。 可发出信号的对象可以是应用程序或内核级别的事件或回调,以及实时任务。 还包括一个优先级驱动的抢占式实时多任务处理系统,用于单个实时任务的相互优先级排序。 这允许详细处理哪些进程先于其他进程,停止不太重要的进程以及哪些任务可以被更重要的进程中断,这相当于纯实时操作系统 (RTOS) 的机制。
最多两个专用 CPU,以上需要专用 CPU 扩展。
即时的
-
高频实时定时器例程的开发
-
循环或一次性定时器可编程
-
在应用程序级别带有回调的简单调试和测试选项
-
定时器直接启动、退出或终止的选项
-
易于实施看门狗机制
-
开始时间可以设置为 0.1 µs 分辨率(例如,用于与其他进程同步)
-
定时器频率高达 20 kHz 或更高
-
一位数微秒范围内的抖动
-
定时器周期动态可调
多任务处理
-
抢占式实时系统
-
具有多达 255 个不同优先级可编程的实时任务
-
动态修改优先级
-
与“循环”具有相同优先级的多个任务
-
包括优先级继承以避免优先级倒置
-
用于实时任务之间同步的实时信号量
-
用于触发外部任务的实时事件
-
任务可以暂停、继续、触发、退出和终止
-
任务可以延迟(分辨率为 0.1 µs)
-
CPU 内核仅在实时模式下运行以避免 Windows 影响
-
任務切換時間非常短
-
用于高精度循环执行的速度循环模式
需要
Timer Module
Dedicated CPU Extension
使用附加逻辑专用 CPU 的扩展
-
扩展级别:最多8级
-
最高级别(需要扩展级别):最高 47(更多可应要求提供)
PTP Module
PTP模块允许分布式系统中的多个网络参与者彼此准确同步并进行实时控制。 Kithara实时系统可以生成精确的时间戳以匹配所有参与者的时钟,偏差在亚微秒范围内。 该API提供对BMCA(最佳主时钟算法)的访问,该BMCA根据可配置的参数确定主时钟。 另外,可以手动设置主站和从站。
-
多个网络参与者的精确同步
-
精确的时间戳,偏差在亚微秒范围内
-
可配置的BMCA(最佳主时钟算法)
-
手动设置主站和从站
-
需要
Network Module
NMEA扩展
与 NMEA 0183 进行实时通信和同步。
gPTP扩展
gPTP扩展对PTP模块进行了补充,它支持简化的PTP配置文件“通用精确时间协议”(在IEEE 802.1AS中定义)。 gPTP扩展允许在分布式系统中高度精确地同步所有时钟,但将其自身限制为更直接的功能集,使其适用于更广泛的应用。 例如,时钟不必单独配置,而是全部标准化。
-
多个网络参与者的精确同步
-
简化的PTP配置文件
-
所有时钟标准化
-
简化BMCA(最佳主时钟算法)的配置
Further features
为了获得“硬”实时能力,就必须在系统的内核模式运行应用程序代码。
-
在内核层执行的代码支持C/C++和Delphi 和 C#(通过将代码转移到 DLL 中
由于系统库对客户开放,由于通过向导和按需编程,开发人员不必关心太多内部 细节。因此通过与“黑箱子”对比用户可以很容易的改编。通过我们捆绑的技术向导实现复杂的应用程序。使用多任务和高达1 Gbit/s 实时以太网通信在为各种各样的自动化应用,如EtherCAT或基于总线应用的CANopen。与之对应的功能强大的开发工具,如实现所有进程微秒级精确监测的
Kithara Kernel Tracer 或用于图形可视化主”监视器“和连接的I/O端子的控制,传感器和执行器的完成观念。