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