Kithara快速入门
文章平均质量分 88
Kithara 软件是一种实时操作系统扩展,专为满足工业自动化、机器人控制、测试和测量等领域中对实时性能和精确性要求较高的应用而设计。Kithara 可以使基于 Windows 的计算机系统具备实时控制能力。
易码智能
公司专注于开放式、总线化、软件化运动控制平台研发、生产和销售。为多领域和多行业提供开放、易用、优质、可靠的PAC(programmable Automation Control)平台和系统解决方案。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KRTS 帮助文档(中文)
Kithara RealTime Suite是Windows的实时扩展,目前包含20多个不同的功能模块。在本教程中,我们会尽可能详细的解释每个功能和使用方法,从简单的程序开始逐步变的复杂。尽管Kithara RealTime Suite在大多数情况下是以用户定义的名称进行自定义驱动程序,但在本教程中我们称其为KrtsDemo,就像您可以在我们的下载页面上请求的测试版本一样。翻译 2024-04-12 16:27:50 · 729 阅读 · 0 评论
-
KRTS驱动切换至Windows驱动
在使用KRTS应用软件时,为保证数据传输的实时性,Kithara会接管Windows中的设备驱动包括不限于网卡驱动、CAN驱动、XHCI驱动等。想要解除驱动KRTS提供两种解决方案一种是注册表动态切换,动态切换在程序启动时接管,程序退出时解除。有两种方法可以实现自动切换驱动, 包括但不限于网卡驱动、XHCI驱动等。下面以网卡为例展示如何切换。4. 切换驱动完成。原创 2025-02-14 11:22:49 · 271 阅读 · 0 评论 -
KRTS有关【KSERROR APPLICATION LAYER ERROR】的错误信息查询?
下表显示了特定错误代码或状态的较低16位中的附加信息。EtherCAT错误代码。原创 2025-01-13 14:06:13 · 687 阅读 · 0 评论 -
KRTS 安装指南
将\RuntimeInstallation文件夹中的所有文件以及\bin文件夹中的Kactivate.exe复制到目标计算机。现在启动Kactivate.exe(“Kithara产品激活”),并按照与开发者安装相同的方式操作说明。在目标计算机上启动Ksetup9.exe并运行驱动程序安装。前往Kithara网站的服务门户,并安装您的定制驱动程序。现在您的定制驱动程序的各种模块将显示出来。请插入您的定制驱动程序安装码。重新启动您的计算机。继续进行许可证激活。原创 2024-04-12 16:34:47 · 1404 阅读 · 5 评论 -
“Hello KRTS!” - 第一个项目
在我们开始之前,让我们先来看看编程环境和操作方式。原创 2024-04-17 11:00:52 · 1893 阅读 · 7 评论 -
KRTS如何进行错误处理?
可以使用创建自己的错误代码。原创 2024-04-20 12:17:55 · 1227 阅读 · 1 评论 -
KRTS创建线程以及它们的优先级排序
线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程。⼀个进程中是可以有多个线程的,这个应⽤程序也可以称之为多线程程序。线程可能是通过时间片调度器准虚拟并行执行,或者通过在不同CPU核心上真正并行执行。Kithara RealTime Suite提供了一些用于线程处理的函数。原创 2024-04-25 11:29:14 · 923 阅读 · 1 评论 -
KRTS内核模式简介
为了使用实时机制,需要使用内核模式。我们开发 Kithara RealTime Suite 的第一个重要尝试就是内核编程。这需要在应用程序内定义所需的代码。因此,一般的开发环境即可开发内核层代码,并且不需要创建内核驱动程序。通常,应用程序的响应时间是对抗性的,因为即使在非常高的确定优先级下,它也不能保证的响应时间(典型的变化在几十微秒,但在某些情况下可能是几毫秒)。唯一的解决方案是在内核级别上执行代码序列,以通过高优先级获得更短的延迟。原创 2024-04-30 16:42:36 · 507 阅读 · 2 评论 -
KRTS创建并使用内核 DLL
一般来说,每个符合 PE(portable executable)标准的 DLL 都可以作为内核 DLL 加载。为什么要将 DLL 加载为内核 DLL 时有一些限制的原因,是它将 DLL 加载到内核地址空间(ring0)。原创 2024-05-10 10:44:05 · 1154 阅读 · 0 评论 -
KRTS共享内存的相关知识
在 32 位和 64 位 Windows 操作系统中,将使用所谓的虚拟内存管理。一方面,通过这种机制,可以确保保护不同的地址空间免受未经授权的访问。另一方面,对于每个应用程序,都提供了 2 GB 的逻辑地址空间(32 位)或 8 TB(64 位)。应用程序中用于数据和代码的地址始终是虚拟地址。它们将通过操作系统的内存管理转换为物理内存地址。由于每个应用程序都提供了一个单独的地址空间,因此一个进程通常不可能访问另一个进程的内存。此外,您通常无法从应用程序访问内核内存,因为内核级别的内存受到保护。原创 2024-05-10 15:48:07 · 1091 阅读 · 0 评论 -
KRTS使用管道轻松安全地进行数据交换
实际上,只有第一个调用“KS_createPipe”的实例正在创建管道,所有具有相同名称的调用都只提供管道的句柄。确定消息的长度,该消息应存储在当前调用“KS_putPipe”的管道中。有两种不同类型的管道:数据管道和消息管道。如果请求的数据多于存储的数据,则返回“KSERROR_FUNCTION_FAILED”,并将已读取的元素数返回到。函数“KS_readPipe”可用于查询存储的元素数(数据管道)或下一条消息的长度(消息管道)。返回存储的数据元素数(数据管道)或下一条消息(消息管道)的大小。原创 2024-05-16 09:22:44 · 1270 阅读 · 0 评论 -
KRTS事件同步
事件非常有价值,它是多线程应用程序中经常使用的同步工具。在Kithara RealTime Suite中,事件是必需的,它们也必须从内核级别进行设置。普通 Windows 事件不支持内核功能。除此之外,你还可以创建Kithara事件来同步实时任务。原创 2024-05-20 10:34:26 · 1135 阅读 · 0 评论 -
KRTS使用C#语言及环境配置
尽管用 C# 编写的应用程序在 .NET 环境中运行,但可以访问 Kithara 驱动程序。若要使用 Kithara 驱动程序正确运行 C# 项目,必须进行一些准备工作。原创 2024-05-21 13:22:06 · 1139 阅读 · 0 评论 -
32位和64位Windows、驱动程序/内核、应用程序和动态链接库,以及使用KiK64和限制
今天,Windows 的当前版本既有 32 位版本,也有 64 位版本。虽然对于功能强大的台式计算机或服务器,在大多数情况下,由于其内存限制,使用 32 位版本是没有意义的,但仍有许多较旧或功能较弱的计算机或嵌入式系统具有资源限制。这就是为什么许多软件仍然仅以 32 位版本开发的原因之一。对于在 32 位和 64 位系统上执行的 32 位应用程序,Microsoft 为 32 位应用程序提供了一种操作模式,即使在 64 位平台上也能运行。然而,对于开发者来说,事实并非如此。原创 2024-05-21 13:39:20 · 1282 阅读 · 0 评论 -
KRTS使用互斥锁同步
QuickMutex 是一个同步对象,它针对高效执行进行了优化。但它可以在应用程序级别上保护不同的程序部分,也可以在内核级别保护不同的程序部分!使用 QuickMutex 对象无法实现应用程序级和内核级之间的同步!原创 2024-05-29 11:26:54 · 618 阅读 · 0 评论 -
KRTS回调函数的创建
回调是由某个事件发出信号的函数。因此,如果出现这样的事件,则调用回调函数。例如,在计时器上。回调函数可以在应用程序上下文(ring 3)或内核或实时上下文(ring 0)中执行。这提供了在应用程序上下文中轻松编程中断服务例程的可能性,或者实时性要求高的代码中执行。当然,在内核级别执行的代码有一些限制。原创 2024-06-13 09:30:05 · 1297 阅读 · 0 评论 -
KRTS实时定时器
因此,在实时定时器可能出现抖动的情况下,必须考虑安装的其他实时定时器例程的执行时间。在这种情况下,准备好的计时器处于休眠状态,将等待函数"KS_startTimer"的调用。只需一次计时器调用:标志"KSF_ONE_SHOT"可用于"KS_createTimer"和"KS_startTimer"功能,以确保计时器只会发射一次(“一发”)。如果句柄指向回调或任务对象,则当计时器触发时,将执行此对象的例程。如果创建的计时器不是一次性计时器,它将一直运行,直到计时器函数返回不等于 0 的值(例如错误值)。原创 2024-06-20 15:32:22 · 1424 阅读 · 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 · 703 阅读 · 0 评论 -
KRTS常见问题解答
是的,这是可以的。在此文件夹中插入一个名为“HideInfo”的DWORD值(32位),其值为1。这样,介绍窗口一天只会出现一次,并且仅在使用开发者许可证时。在运行时安装中,介绍窗口将永远不会出现。原创 2024-07-04 10:12:49 · 1495 阅读 · 0 评论 -
KRTS中EtherCAT 从站热插拔
热插拔描述了在不关闭 EtherCAT 主站的情况下更换、添加或移除 EtherCAT 从站的功能。为了支持热插拔EtherCAT从站,Kithara EtherCAT主站提供了一些功能。最值得注意的是函数,其事件为 ‘KS_TOPOLOGY_CHANGE’。安装了带有“KS_TOPOLOGY_CHANGE”的事件回调后,上下文使用类型为,并且字段reason- 连接到拓扑的主站- 主设备与拓扑断开连接- 从站在线数量更改- 先前创建的从站在线- 之前创建的从站离线通过这些事件并调用。原创 2024-08-06 16:08:27 · 1108 阅读 · 0 评论 -
KRTS中Task的使用
调度器会考虑每个 CPU 内核的优先级,例如,优先级较低的任务可以在特定的 CPU 内核上运行,而不会被另一个 CPU 内核上优先级较高的任务打断。如果任务已请求信号量的优先级低于请求信号量的任务,则请求任务将从已请求信号量的任务中继承较高的优先级。因此,一个任务永远不会被优先级较低的另一个任务打断。另一方面,优先级较低的任务可能会被优先级较高的任务打断。如果不存在具有相同优先级的任务,则使用刚刚准备就绪的最高任务。此外,还支持动态优先级,即根据更改其他任务的优先级,可以阻止或启动任务。原创 2024-08-08 09:57:33 · 887 阅读 · 0 评论 -
KRTS 高速以太网:网络模块
对于工业应用,通常需要实时操作以太网接口。KRTS网络模块可以提供这一点。它允许传输任何以太网数据包,包括 IP 数据包。也可以使用其他基本协议或原始以太网。在任何情况下,用户都可以创建数据包。对于 UDP 和 TCP 等更高级别的协议,请参阅本教程的第二部分 (原创 2024-08-14 09:21:13 · 909 阅读 · 0 评论 -
KRTS 高速以太网:网络模块套接字 API
Socket模块基于Packet模块,实时提供更高的协议,如RAW-IP、TCP 和 UDP(参见。原创 2024-08-20 09:26:04 · 1068 阅读 · 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 · 1055 阅读 · 0 评论 -
KRTS 如何查找设备并切换到 Kithara 驱动
在本教程中,您将学习如何使用查找设备,以及如何使用获取更多设备信息。此外,还解释了 Kithara 设备实例字符串。最后,描述了如何将设备切换到 Kithara 驱动程序以使用它。原创 2024-08-27 11:02:07 · 1277 阅读 · 0 评论 -
KRTS虚拟网络适配器和 Windows 连接
在本教程中,我们将了解使用网络模块和 Windows NDIS 连接进行通信的几个用例。我们假设您已经熟悉网络模块的基本功能。使用网络模块,可以创建多个虚拟网络适配器,这些适配器在内部与实际物理适配器或空适配器连接。此外,还可以打开与 Windows 网络堆栈连接的虚拟网络适配器。对于支持 Ethernet-over-EtherCAT (EoE) 的 EtherCAT 从站,也可以打开与数据包接口或 Windows 的连接。基于此功能,有几个用例。其中一些将在后面介绍。原创 2024-09-27 10:10:29 · 1391 阅读 · 0 评论 -
与 UART API 的串行通信
除了 USB 或以太网等更强大、更快速的通信接口外,串行通信仍然具有其优势。便宜的成本和较小的控制器空间以及简单性是串行通信仍在使用的一些原因。原创 2024-12-11 10:47:09 · 1136 阅读 · 0 评论 -
访问 USB 设备
作为 USB 设备或端点的句柄、指向数据缓冲区的指针以及要传输的数据长度作为参数。作为 USB 设备句柄的参数,需要端点地址、USB 数据包的大小和数量。与"KS_xmitUsb"USB 设备或端点的句柄类似,需要指向数据缓冲区的指针和要传输的数据的长度。作为参数,需要 USB 设备/端点的句柄、命令、可选对象索引、指向数据的指针和缓冲区大小。作为参数,需要 USB 设备/端点的句柄和事件代码。可以发出信号的对象句柄是可选的。传递多个参数,例如传输的字节数或错误的接收字节数以及 USB 数据包大小。原创 2024-12-09 16:06:49 · 421 阅读 · 0 评论 -
KRTS实时处理 LIN 消息
在打开 LIN 端口之前,您必须创建一个 LIN properties 结构并在调用之前分配结构的大小。函数 ‘KS_xmitLinHeader’ 有一个 LIN 句柄、一个没有奇偶校验的 LIN 标识符、一个有效载荷长度(可选)和作为参数的标志。结构和作为参数的标志。函数 ‘KS_xmitLinReponse’ 有一个 LIN 句柄、一个包含响应数据的缓冲区、数据的大小和作为参数的标志。函数 ‘KS_openLin’ 有一个指向 LIN 句柄的指针、一个设备名称、一个端口、一个属性结构和作为参数的标志。原创 2024-12-17 13:24:31 · 1139 阅读 · 0 评论 -
KRTS 教程XHCI 模块
在本教程中,您将学习如何通过 XHCI 模块访问 USB 设备。我们假设您已经知道如何设置项目并打开驱动程序以开始工作。如果你不熟悉这个,你应该看看第一个项目教程。XHCI(可扩展主机控制器接口)是通用串行总线 (USB) 主机控制器的接口规范,能够访问 USB 1.x、2.0 和 3.x 兼容设备。原创 2024-12-19 12:57:55 · 1085 阅读 · 0 评论
分享