用VB通过Rs232采集下位机10路通道的数据,现想对每一路通道的数据进行曲线绘制和保存。目前对单一通道的数据采集、绘制和保存成功。10个通道可通过手动选择,当回选到一个通道时(比如,刚开始是1通道,后来换到2通道)能够观察到这一段时间内的数据曲线。
请问,我应该怎样设计才能实现每换一个通道显示一张曲线图?并且能够通过保存对话框来存储该曲线图?

解决方案 »

  1.   

    这得看你的数据采样是怎么做的了,如果你的设备无法做到同时采集所有通道的数据,那么再高明的设计也帮不上忙。(我估计你的PC本身也不大可能同时插着10个串口数据线吧)
    所以只能猜测你的232外设是否如同一个USB HUB那样可以接这么多路输入。
    如果你有这么样一个外部设备,那你只要在切换的时候把该设备换存的串口数据画成曲线就行了。
    当然,如果你的设备本身也只能一次一个得通讯,那么再怎么设计也是白搭了,因为除了你的程序正在“关照”的那个端口以外的其他串口数据根本就进不到你的PC。
      

  2.   

    刚开始是1通道,后来换到2通道,再回到一通道时,你能够观察到这一段时间内的一通道数据曲线的话,说明数据接收方面你已经完成。对于你提出的问题,建议如下:1将各路接收到的数据保存。2窗体上的同一位置放置多个大小相等的PictureBox控件多个,该控件属数组控件,用来显示各路曲线视图。3建立内存画图DC环境,并用某路曲线数据在内存里画好曲线图后BitBlt到相应的某个PictureBox里即可。4多路曲线数据时,只要用路数值分别对应Picture的下标即可,利用类模块实现时如同画单个曲线一样简单。5利用Printer.PaintPicture可以分别打印各个PictureBox里的各路曲线图形。6保存PictureBox里面的曲线图形倒文件还要我说吗?呵呵
      

  3.   

    呵呵,谢谢大家都回复。我的下位机不能控制,是买的。下位机与PC只有一个RS232串口连接。下位机能够显示通道切换后这段时间的数据(比如当1通道时,开始显示1通道的曲线,当换到2通道后显示2通道的曲线,再切换到1通道时,显示2通道这段时间的1通道的数据仍然连续的显示。)但现在的问题是关机后不能保存我此次的数据,所以需要通过RS232把数据传输到PC,然后绘出与之相对应的曲线,并保存,以供下一次实验参照比较。
      

  4.   

    我想通过一个数组来保存采集得到的制,用一个Picturebox显示曲线,我首先获得通道号,并且每次判断通道号是否有改变,如果改变清数组,和清图。这样可实现吗?
      

  5.   

    1)10通道同时有数据传上来吗?
    2)切换到当前通道时在干什么?为什么要切出去,再切回来看变化.
    3)是看最近一个切出去的,还看哪个无所谓.你这里问题太多了.
    画图 或 用数据装数据 都是简单的事. (逻辑第一,数据第二)dim a() as single
    redim a(100,100)
    pic1.cls
    ...画Pic1....
      

  6.   

       也在做这个曲线显示,我想问的是:你画曲线是用的是Line方法,还是MSCHart控件;两者都是将接收到的数据保存,然后绘图是吧?不知道两者有什么优缺点?