我想做检测装置,如果检测到下位机有信号时就让VB的上位机程序停止运行,并且马上跳出来一个窗口!
之后若下位机的信号消失刚程序继续运行,这样的功能VB能实现吗?

解决方案 »

  1.   

    用timer空间 和winsock控件应该能实现。
      

  2.   

    主机与下位机是通过什么物理通道通讯的?串口?并口?USB?还是其他什么?有不同方案。
      

  3.   

    如果你用的是 MSComm 控件,就很简单。利用 OnComm 事件就可以了。不用刻意去停止什么,程序会自动跳到事件代码中,执行完成会重新回到原来代码中断处。
      

  4.   

    能设置几个ONCOMM事件啊,我只用一个MSCOMM控件
    我得检测多个量呢
      

  5.   

    就是相当于在timer时间里面重复做判断你下位机是否正在执行程序。
    如果下位机正在执行,对上位机发出信号,让其暂停运行。
    由于是定时循环判断,下位机执行完毕后会发送结束信号。
    上位机继续执行即可。
      

  6.   

    我不太明白楼上的意思,如果用MSCOMM事件的话,但是别的检测量也得用到这个事件,不知道能不能有多个MSCOMM事件
    另外,我也想知道如果用工控机的话,上面有输入输出口,也有AD,DA口,怎么直接用VB检测IO口?还是说大致思路,谢谢
      

  7.   

    只需一个 ONCOMM 事件。即使你使用了多个 MSComm 控件,只要将其设置成数组,ONCOMM 也会返回 Index 指出是哪个控件。这里跟检测的量无关,因为所有的数据都走同一个端口。你只要监控 MSComm1.CommEvent = comEvReceive '(=2) 事件就可以了。
      

  8.   

    不行,还是不能满足要求,因为这个设计要求实时性较高
    如果利用工控机中的IO板的话,怎么直接用VB检测IO口?还用不用MSCOMM控件了?