本项目聚焦于开发适用于RTX环境下的实时监控与控制系统软件,旨在提供高效、稳定的运行状态监测及灵活的操作控制功能。
在单台计算机上同时运行LabWindows CVI 和RTX 程序, LabWindows CVI程序负责数据的显示、分析和管理等非实时工作, RTX程序则承担设备控制、数据采集等实时任务,二者之间通过共享内存方式通信。
### RTX 的实时测控软件设计
#### 一、引言
随着计算机技术的发展,Windows操作系统因其用户友好性和强大功能成为主流。然而,由于其线程调度机制的不确定性(如有限的线程优先级和优先级倒置),在实时测控行业的应用受到限制。传统的解决方案是采用上下位机结构:上位机使用Windows系统进行图形界面展示和数据处理;下位机则利用具备实时特性的操作系统,例如DOS,来执行设备控制与数据采集任务,并通过网络等方式实现通信。这种双机架构增加了系统的复杂性和成本,同时降低了整体的可靠性和实时性能。
为解决这些问题,美国Ardence公司开发了RTX (RealTime Extension for Windows),该软件在Windows平台上提供了一个实时子系统(RTSS),显著增强了操作系统的实时能力。与此同时,National Instruments公司的LabWindowsCVI是一种高度集成的C语言开发环境,特别适用于数据采集、分析和显示等测控应用。
#### 二、系统构成
本设计主要由硬件部分与软件部分组成:
- **硬件**:包括驱动元件(执行机构)、传感器(用于采集加载力、位移信息)以及调理电路(将信号转换为标准格式,适合于数据采集卡)。控制计算机通过插入的数据采集卡和DA卡实现数模/模数的转换。
- **软件部分**:由RTX实时程序与LabWindowsCVI非实时程序构成。前者负责设备控制、任务调度等实时工作;后者则处理图形界面展示及数据分析管理等功能,两者之间利用共享内存进行高效通信。
#### 三、软件设计
- **RTX 实时程序设计**: RTX基于Windows操作系统的硬实时解决方案,在HAL层增加实时扩展来实现优先级抢占式调度。其线程具有高于所有Windows线程的优先级,并支持对IRQ、IO和内存资源的精确控制,确保了任务执行的一致性和可靠性。
- **LabWindowsCVI 非实时程序设计**: LabWindowsCVI是一种高级C语言开发环境,内置了大量数据采集与分析工具。在本系统中主要用于展示图形界面及非实时的数据处理功能。
#### 四、通信机制
为了实现RTX实时任务和LabWindows CVI之间高效的数据交换,采用共享内存的通信方式。这种方式允许两个程序直接访问同一个内存区域而无需复杂的网络协议支持,从而提高了数据传输效率与实时性。
#### 五、总结
通过将RTX子系统与LabWindowsCVI结合使用,在单台计算机上构建了高性能的实时测控系统。这种设计简化了硬件结构,并提升了系统的实时性能和可靠性。随着未来计算机硬件能力的进步,该技术有望在更多复杂工业应用中得到广泛应用。