基于Windows的实时扩展 RTX 应用于CNC的数控系统
1.1 开放式数控系统
基于PC机的数控系统(CNC)分为以下几种类型:
. PC机嵌入NC型, 属于初步开放的数控系统
. NC嵌入PC型, 在上位机层面上实现了开放性
. 全软件型, 这是一种完全采用工控机而不需要定制运动控制板卡的数控系统,它把运动控制器以应用软件的形式实现,这是一种最新开放体系结构的数控系统,能够提供给用户很高的灵活性,已经成为新一代CNC的主流。
1.2 Windows 与实时控制
Windows 操作系统应用广泛, 使用 Windows 进行实时控制时有以下几点不足, 如线程优先级太少, 不透明、不确定的线程调度机制, 定时器分辨率比较低以及中断延迟比较大等。
1.3 RTX 特点
RTX是基于Windows操作系统而专门设计的实时性扩展系统,在广泛的应用中证明其具有高可靠性,可控性和可预测性特点。
图1 RTX 系统架构
1.3.1 高可靠性:
RTX构架是一个真正的扩展,因为其不是对Windows的封装,也不影响和修改Windows底层构架。由于这种分离性,RTX实时系统确保了基于RTX的应用不会因为Windows的死机或者蓝屏而受到影响
1.3.2 实时性能
. RTX 提供了三个时钟, 可以精确到 1 微秒
. RTX定时器间隔支持100, 200, 500和1000 微秒
. 30KHz 持续中断触发频率, 第一个中断响应的延迟平均小于1微秒
. RTX 确保线程切换的时间在 500 纳秒至 2 微秒之间
. RTX 提供高性能的 TCP/UDP/IP 网络协议栈
1.3.3 开发环境
RTX SDK 是世界上唯一 一款与 MicroSoft Visual Studio 无缝集成的开发环境。
1.4 RTX SMP 优点
基于 x86 架构的多核处理器的 RTX SMP 有以下优点:
. 提升性能 – 使用多核处理
. 良好的扩展性 – 基于 RTX SMP 的应用程序与处理器数目无关。增减 RTX 处理器数目不需要重写代码
. 高可靠性 - 关键任务运行在多个处理器上
. 线程/进程与处理器绑定
. IRQ/ISR/IST与处理器绑定
. 提供精确的线程时序 API
1.5 RTX 实时以太网
RTX2009结合普通网卡即可实现实时以太网。 RTX 实时以太网可以代替如 Profinet, SERCOSIII, EtherCAT, Powerlink, Ethernet/IP 等工业实时以太网。
1.6 传统的CNC 控制系统
传统的 CNC 控制系统一般是基于上下位机的架构。上位机运行人机界面,下位机进行实时控制, 运动控制则通过基于 FPGA/DSP的运动控制板卡实现。
图 2 传统的CNC 控制系统
1.7 基于SMP & RTE的CNC控制系统
基于SMP & RTE的CNC控制系统可以全软件型控制。基于 x86 架构的多核处理器, 人机界面运行在其中一个处理器核上, RTX 应用比如 PLC,运动控制和实时以太网运行在其它处理器核上, 对外的控制接口则通过普通的以太网卡实现。
图3 基于SMP & RTE的CNC控制系统
1.8 RTX 在数控机床的成功应用
意大利 ISAC 公司主要业务: 数控机床, PAC, PLC, 众多的软硬件维护和升级耗时、成本昂贵, 同时也无法为工业自动化提供标准、灵活的解决方案
解决方案: Windows PC + RTX。
该解决方案的优点:
. 标准 PC 降低了硬件成本和维护、升级成本
. 原来的 C 代码可以移植到 Windows 平台
. RTX 提高了系统确定性和实时性
. 使用 MS Visual Studio 开发降低 30% 的开发成本
更多信息可以联系北京石竹科技有限公司 http://www.vme.cn
1.5 RTX 实时以太网
RTX2009结合普通网卡即可实现实时以太网。 RTX 实时以太网可以代替如 Profinet, SERCOSIII, EtherCAT, Powerlink, Ethernet/IP 等工业实时以太网。
==============================================================================================
有没有更详细的介绍?
内容的回复:关于RTX 普通网卡通信问题。当 一方是win32 程序, 另一方是rtss程序时,收发数正常,但是当把win32程序也换为rtss程序(相应的网卡也转换为RTX下设备)通信失败,为什么?谢谢楼主
内容的回复:
INtime基本功能和RTX一样,但体系结构和RTX不同,不像RTX的应用全部在Ring 0级,不稳定。INtime的应用在Ring 3级。
或:http://www.sr-business.com/intime
Ring0 1 2 3,具体都干什么忘记了,反正数字越小,越底层越内核。Ring0跑的东西,windows认为是可靠的,像驱动程序一样,不做任何限制。Ring3是纯应用程序了,能做的事情有限,当然windows对其保护也完善。所以,Ring0的东西,要是写的有问题,系统直接完蛋,比如蓝屏甚至更糟。Ring3的东西,有点问题,windows能给你看住,比如内存越界什么,这类问题用指针的时候经常出现。
好像如此,好久不搞windows驱动了,呵呵。