Kithara快速入门
文章平均质量分 90
Kithara 软件是一种实时操作系统扩展,专为满足工业自动化、机器人控制、测试和测量等领域中对实时性能和精确性要求较高的应用而设计。Kithara 可以使基于 Windows 的计算机系统具备实时控制能力。
易码智能
加油,少年!
展开
-
KRTS 帮助文档(中文)
Kithara RealTime Suite是Windows的实时扩展,目前包含20多个不同的功能模块。在本教程中,我们会尽可能详细的解释每个功能和使用方法,从简单的程序开始逐步变的复杂。尽管Kithara RealTime Suite在大多数情况下是以用户定义的名称进行自定义驱动程序,但在本教程中我们称其为KrtsDemo,就像您可以在我们的下载页面上请求的测试版本一样。翻译 2024-04-12 16:27:50 · 335 阅读 · 0 评论 -
KRTS 如何查找设备并切换到 Kithara 驱动
在本教程中,您将学习如何使用查找设备,以及如何使用获取更多设备信息。此外,还解释了 Kithara 设备实例字符串。最后,描述了如何将设备切换到 Kithara 驱动程序以使用它。原创 2024-08-27 11:02:07 · 1012 阅读 · 0 评论 -
KRTS实时处理 CAN 报文
用户定义的 CAN 报文过滤器可以通过安装事件代码为 ‘KS_CAN_FILTER’ 的 CAN 处理程序来实现。波特率由常数指定,例如 ‘KS_CAN_BAUD_125K’ 或 ‘KS_CAN_BAUD_1M’。使用事件代码 ‘KS_CAN_XMIT_EMPTY’ 可以安装’Transmit Empty’ 处理程序,如果发送方缓冲区为空,则会发出信号。对于 ‘KS_CAN_RECV’、‘KS_CAN_XMIT_RTR’ 和 ‘KS_CAN_FILTER’ 事件代码,相应的上下文结构为。原创 2024-08-27 10:27:38 · 841 阅读 · 0 评论 -
KRTS 高速以太网:网络模块套接字 API
Socket模块基于Packet模块,实时提供更高的协议,如RAW-IP、TCP 和 UDP(参见。原创 2024-08-20 09:26:04 · 956 阅读 · 0 评论 -
KRTS 高速以太网:网络模块
对于工业应用,通常需要实时操作以太网接口。KRTS网络模块可以提供这一点。它允许传输任何以太网数据包,包括 IP 数据包。也可以使用其他基本协议或原始以太网。在任何情况下,用户都可以创建数据包。对于 UDP 和 TCP 等更高级别的协议,请参阅本教程的第二部分 (原创 2024-08-14 09:21:13 · 746 阅读 · 0 评论 -
KRTS中Task的使用
调度器会考虑每个 CPU 内核的优先级,例如,优先级较低的任务可以在特定的 CPU 内核上运行,而不会被另一个 CPU 内核上优先级较高的任务打断。如果任务已请求信号量的优先级低于请求信号量的任务,则请求任务将从已请求信号量的任务中继承较高的优先级。因此,一个任务永远不会被优先级较低的另一个任务打断。另一方面,优先级较低的任务可能会被优先级较高的任务打断。如果不存在具有相同优先级的任务,则使用刚刚准备就绪的最高任务。此外,还支持动态优先级,即根据更改其他任务的优先级,可以阻止或启动任务。原创 2024-08-08 09:57:33 · 715 阅读 · 0 评论 -
KRTS中EtherCAT 从站热插拔
热插拔描述了在不关闭 EtherCAT 主站的情况下更换、添加或移除 EtherCAT 从站的功能。为了支持热插拔EtherCAT从站,Kithara EtherCAT主站提供了一些功能。最值得注意的是函数,其事件为 ‘KS_TOPOLOGY_CHANGE’。安装了带有“KS_TOPOLOGY_CHANGE”的事件回调后,上下文使用类型为,并且字段reason- 连接到拓扑的主站- 主设备与拓扑断开连接- 从站在线数量更改- 先前创建的从站在线- 之前创建的从站离线通过这些事件并调用。原创 2024-08-06 16:08:27 · 782 阅读 · 0 评论 -
KRTS常见问题解答
是的,这是可以的。在此文件夹中插入一个名为“HideInfo”的DWORD值(32位),其值为1。这样,介绍窗口一天只会出现一次,并且仅在使用开发者许可证时。在运行时安装中,介绍窗口将永远不会出现。原创 2024-07-04 10:12:49 · 1080 阅读 · 0 评论 -
KRTS设置专用CPU
要选择另一个专用 CPU,请使用函数 [KS_setTargetProcessor](https://kithara.com/cn/docs/krts:api:ks_settargetprocessor “KS_setTargetProcessor”),它是多任务处理模块的一部分。如果激活名为“处理器数量”的复选框,则可以在下面的下拉列表中选择 Windows 应使用的 CPU 数量。注意:如果要再次将专用CPU内核传输回Windows,请取消选中“处理器数量”,单击“确定”,然后重新启动系统。原创 2024-06-27 09:40:34 · 541 阅读 · 0 评论 -
KRTS实时定时器
因此,在实时定时器可能出现抖动的情况下,必须考虑安装的其他实时定时器例程的执行时间。在这种情况下,准备好的计时器处于休眠状态,将等待函数"KS_startTimer"的调用。只需一次计时器调用:标志"KSF_ONE_SHOT"可用于"KS_createTimer"和"KS_startTimer"功能,以确保计时器只会发射一次(“一发”)。如果句柄指向回调或任务对象,则当计时器触发时,将执行此对象的例程。如果创建的计时器不是一次性计时器,它将一直运行,直到计时器函数返回不等于 0 的值(例如错误值)。原创 2024-06-20 15:32:22 · 1152 阅读 · 0 评论 -
32位和64位Windows、驱动程序/内核、应用程序和动态链接库,以及使用KiK64和限制
今天,Windows 的当前版本既有 32 位版本,也有 64 位版本。虽然对于功能强大的台式计算机或服务器,在大多数情况下,由于其内存限制,使用 32 位版本是没有意义的,但仍有许多较旧或功能较弱的计算机或嵌入式系统具有资源限制。这就是为什么许多软件仍然仅以 32 位版本开发的原因之一。对于在 32 位和 64 位系统上执行的 32 位应用程序,Microsoft 为 32 位应用程序提供了一种操作模式,即使在 64 位平台上也能运行。然而,对于开发者来说,事实并非如此。原创 2024-05-21 13:39:20 · 886 阅读 · 0 评论 -
KRTS使用C#语言及环境配置
尽管用 C# 编写的应用程序在 .NET 环境中运行,但可以访问 Kithara 驱动程序。若要使用 Kithara 驱动程序正确运行 C# 项目,必须进行一些准备工作。原创 2024-05-21 13:22:06 · 945 阅读 · 0 评论 -
KRTS 安装指南
将\RuntimeInstallation文件夹中的所有文件以及\bin文件夹中的Kactivate.exe复制到目标计算机。现在启动Kactivate.exe(“Kithara产品激活”),并按照与开发者安装相同的方式操作说明。在目标计算机上启动Ksetup9.exe并运行驱动程序安装。前往Kithara网站的服务门户,并安装您的定制驱动程序。现在您的定制驱动程序的各种模块将显示出来。请插入您的定制驱动程序安装码。重新启动您的计算机。继续进行许可证激活。原创 2024-04-12 16:34:47 · 680 阅读 · 1 评论 -
“Hello KRTS!” - 第一个项目
在我们开始之前,让我们先来看看编程环境和操作方式。原创 2024-04-17 11:00:52 · 1305 阅读 · 7 评论 -
KRTS如何进行错误处理?
可以使用创建自己的错误代码。原创 2024-04-20 12:17:55 · 943 阅读 · 1 评论 -
KRTS内核模式简介
为了使用实时机制,需要使用内核模式。我们开发 Kithara RealTime Suite 的第一个重要尝试就是内核编程。这需要在应用程序内定义所需的代码。因此,一般的开发环境即可开发内核层代码,并且不需要创建内核驱动程序。通常,应用程序的响应时间是对抗性的,因为即使在非常高的确定优先级下,它也不能保证的响应时间(典型的变化在几十微秒,但在某些情况下可能是几毫秒)。唯一的解决方案是在内核级别上执行代码序列,以通过高优先级获得更短的延迟。原创 2024-04-30 16:42:36 · 321 阅读 · 2 评论 -
KRTS创建并使用内核 DLL
一般来说,每个符合 PE(portable executable)标准的 DLL 都可以作为内核 DLL 加载。为什么要将 DLL 加载为内核 DLL 时有一些限制的原因,是它将 DLL 加载到内核地址空间(ring0)。原创 2024-05-10 10:44:05 · 956 阅读 · 0 评论 -
KRTS创建线程以及它们的优先级排序
线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程。⼀个进程中是可以有多个线程的,这个应⽤程序也可以称之为多线程程序。线程可能是通过时间片调度器准虚拟并行执行,或者通过在不同CPU核心上真正并行执行。Kithara RealTime Suite提供了一些用于线程处理的函数。原创 2024-04-25 11:29:14 · 658 阅读 · 1 评论 -
KRTS共享内存的相关知识
在 32 位和 64 位 Windows 操作系统中,将使用所谓的虚拟内存管理。一方面,通过这种机制,可以确保保护不同的地址空间免受未经授权的访问。另一方面,对于每个应用程序,都提供了 2 GB 的逻辑地址空间(32 位)或 8 TB(64 位)。应用程序中用于数据和代码的地址始终是虚拟地址。它们将通过操作系统的内存管理转换为物理内存地址。由于每个应用程序都提供了一个单独的地址空间,因此一个进程通常不可能访问另一个进程的内存。此外,您通常无法从应用程序访问内核内存,因为内核级别的内存受到保护。原创 2024-05-10 15:48:07 · 919 阅读 · 0 评论 -
KRTS使用管道轻松安全地进行数据交换
实际上,只有第一个调用“KS_createPipe”的实例正在创建管道,所有具有相同名称的调用都只提供管道的句柄。确定消息的长度,该消息应存储在当前调用“KS_putPipe”的管道中。有两种不同类型的管道:数据管道和消息管道。如果请求的数据多于存储的数据,则返回“KSERROR_FUNCTION_FAILED”,并将已读取的元素数返回到。函数“KS_readPipe”可用于查询存储的元素数(数据管道)或下一条消息的长度(消息管道)。返回存储的数据元素数(数据管道)或下一条消息(消息管道)的大小。原创 2024-05-16 09:22:44 · 1096 阅读 · 0 评论 -
KRTS事件同步
事件非常有价值,它是多线程应用程序中经常使用的同步工具。在Kithara RealTime Suite中,事件是必需的,它们也必须从内核级别进行设置。普通 Windows 事件不支持内核功能。除此之外,你还可以创建Kithara事件来同步实时任务。原创 2024-05-20 10:34:26 · 989 阅读 · 0 评论 -
KRTS使用互斥锁同步
QuickMutex 是一个同步对象,它针对高效执行进行了优化。但它可以在应用程序级别上保护不同的程序部分,也可以在内核级别保护不同的程序部分!使用 QuickMutex 对象无法实现应用程序级和内核级之间的同步!原创 2024-05-29 11:26:54 · 502 阅读 · 0 评论 -
KRTS回调函数的创建
回调是由某个事件发出信号的函数。因此,如果出现这样的事件,则调用回调函数。例如,在计时器上。回调函数可以在应用程序上下文(ring 3)或内核或实时上下文(ring 0)中执行。这提供了在应用程序上下文中轻松编程中断服务例程的可能性,或者实时性要求高的代码中执行。当然,在内核级别执行的代码有一些限制。原创 2024-06-13 09:30:05 · 1160 阅读 · 0 评论