各位朋友大家好,最近工程遇到这样一个问题,我要实时读取传感器数据,然后对采集到的数据来控制阀门的开关,压力大就要关几个,高又要开几个阀门,反复循环等等。想法:
1.想用自带的OnTimer定时器,感觉这个会比较慢,读取数据是要延迟。2.目前想采用多媒体定时器,精度1ms,应该就不会出现跳帧现象。这种项目可以不用多线程来完成吗?没有做过多线程的程序。一个线程去读取传感器数据,一个线程来根据数据来开关电磁阀。高精度多媒体定时器不知道能不能实现这样的功能呢?

解决方案 »

  1.   


    谢谢你的建议,我是这样做的,你看看1.先点按钮,按钮里先发命令(3条命令),很快的,这样就开了3个阀门。2.在OnTimer里实读取数据
      if(a>2)
      {关掉一个或2个阀门}3.到达一定的数值后,关闭剩下的阀门最后这个按钮工作完成。
      

  2.   

    工控软件一般都用多线程来弄的
    我一般专门用一个线程来监测传感器(数字输入)的变化,监测到跳变后,立即触发另外一个阀门开关执行的线程(该线程启动后一直处于等待状态,WaitforSignal(eventExecute,INFINIT))
      

  3.   


    谢谢你的好建议,这种方案我也想想看。目前用onTimer到时可以完成,精度不高,得换多媒体定时器
      

  4.   

    用OnTimer是肯定不行的,因为WM_TIMER的优先级很低,肯定会出现阻塞,可以采用多媒体时钟定时器循环检测,不会发生阻塞,可以用在工业生产场合,精度为1ms。