本帖最后由 arrowzhang 于 2012-07-12 16:51:44 编辑

解决方案 »

  1.   

    modbus略知一二。
    不过描述的不清楚,只能猜测,你这一端是主机?两组数据来自不同设备?如果是严格的modbus协议,
    可通过将要通讯的从设备的地址放入地址域来选通从设备。当从设备给出应答,它应当把自己的地址放入回应的地址域中,你的主机就可从地址域中解析出是哪一套设备作出回应。从而区分数组。具体的,你可查询详细的modus规范,按其操作即可。
      

  2.   

    to fronz
    我这边是主机,要从下位机接收电流和对应的电压,也是根据地址来?怎么判断哪个是电压,哪个是电流?
      

  3.   

    modbus协议我看得不是很明白哎
      

  4.   

    如果下位机通讯协议不是你能改变的,那你必须看一下详细的modbus协议。记得没错的话,分辨数据就是我说的通过下位机传回的地址来解析,其标准协议中似乎有功能域、地址域、数据域几个方面。欲分辨是哪一组,需要接收一帧数据(每一帧数据的字节是固定的)后,根据其内容,提取关键字节之后才能识别。当然要准确的资料,还是需要你自己网上搜索找协议内容,或联系下位机设备的厂家提供。当然如果几台机子的通讯协议你能做主,那就不需要想modbus那么严格,可通过自定义的通讯协议即简略又方便。
      

  5.   

    仔细分析MODEBUS协议里面返回数据有地址信息
      

  6.   

    发现网上用mscomm处理接收数据的资料不是很多,大多很简单的
      

  7.   

    你好,我现在也需要用vc来写一个上位机软件,用来接收PLC通过串口发送过来的协议。下位机采用modebus协议传送。我需要使用modebus协议接收。请问我该怎么办啊?我以前没弄过。想请教下