CVI提供了线程池和异步定时器机制实现多线程的方法。静脉显示仪线程池适用于不连续地执行多次或在循环中执行的任务,而异步定时器适用于在固定时间间隔内执行的任务。另外,测控系统本身对采集频率的要求较高,需要高精度的定时器。
多线程实时采集处理相对于CVI的Timer控件,异步定时器基于多线程处理,以Windows多媒体定时器来执行定时操作,具有较高的优先级。但是不同的机器可设置的小间隔是不同的博山消防泵,如果设置一个比系统可用的大分辨率还小的时间间隔,则行为不可预知。同时,一个多媒体定时器线程来运行单个程序中注册的所有异步定时器回调函数,要使用多个线程,必须使用线程池。
上位机软件的控制流程包括了3个副线程。其中,主线程的优先级高,其次考虑到要实时接受总控机的指令和下位机接收到并传送给上位机的报警信号,通讯模块优先级仅次于主线程。显示并绘图线程优先级低,在CPU空闲时才给与执行,既能满足系统的要求,也更好的保证了测控系统的实时性要求。