VB做变频器主板的测试界面,使用common通信控件的timer1和timer2分别实现发送命令和接受数据,可是采集的数据多后就出现错误了,而且也不稳定,请问哪个大侠知道是为什么吗?或者有更好的办法实现变频器和PC机的多数据采集?非常感谢啊

解决方案 »

  1.   

    Private Sub MSComm1_OnComm() 使用这个事件接收 别用timer
      

  2.   

    看看mscomm初始化设置是否恰当,另外定时发送用timer控件是可以,用timer控件定时采集就可能会造成接收错误。比如当接收缓冲地区满timer还没有到下一轮时。oncomm事件是接收的最好方法。
      

  3.   

    用oncomm事件法读取的数据还是不稳定啊
    单独读主板的数据还比较稳定
    但是测试板和主板的数据一起读就乱了
    是什么原因?怎么解决啊?
      

  4.   

        应该不是控件的问题,而是你的过程没处理好,这种过程需要点逻辑思考,如果处理逻辑没处理好很容易出问题。
        个人觉得MSComm控件最大的问题是通讯时的效率,因为通讯时会占用很大的CPU资源,除此之外,其他的稳定性和通讯安全性方面还是不错的。所以你可以看看别人在做的串口通讯时的思路是怎么样的,参考多几个范例总结一下,自己再做这种过程就会顺很多。如果有可能,最好了解得底层一点,看看别人单片机的程序怎么处理的,相信会对你有很大的帮助。    因为单片机程序在做串口通讯时,有很多的硬件限制,如内存不大,MCU运算效率不高,但同样能完成单机、多机,多串口的复杂指令通讯操作,其程序的效率、思路、稳定性都是很值得学习的。同样的思路和过程用到PC的应用程序上,开发起来会更加的稳定和提高效率。
        提供些思路和建议,希望对你有用。