VC一个MSComm如何接收两组数据

VC一个MSComm怎么接收两组数据
本帖最后由 arrowzhang 于 2012-07-12 16:51:44 编辑 VC一个MSComm怎么接收两组数据,采用modbus协议,怎么判断是哪个数组
------解决方案--------------------
modbus略知一二。
不过描述的不清楚,只能猜测,你这一端是主机?两组数据来自不同设备?如果是严格的modbus协议,
可通过将要通讯的从设备的地址放入地址域来选通从设备。当从设备给出应答,它应当把自己的地址放入回应的地址域中,你的主机就可从地址域中解析出是哪一套设备作出回应。从而区分数组。

具体的,你可查询详细的modus规范,按其操作即可。
------解决方案--------------------
to fronz
我这边是主机,要从下位机接收电流和对应的电压,也是根据地址来?怎么判断哪个是电压,哪个是电流?
------解决方案--------------------
modbus协议我看得不是很明白哎
------解决方案--------------------
引用:
to fronz
我这边是主机,要从下位机接收电流和对应的电压,也是根据地址来?怎么判断哪个是电压,哪个是电流?

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

当然如果几台机子的通讯协议你能做主,那就不需要想modbus那么严格,可通过自定义的通讯协议即简略又方便。
------解决方案--------------------
我觉得是由于你的缓冲区没有及时清空所致
------解决方案--------------------
仔细分析MODEBUS协议里面返回数据有地址信息
------解决方案--------------------
该回复于2012-07-14 09:50:13被版主删除
------解决方案--------------------
嗯,有点明白了,下位机是别人写的,我想我要去问问他定义的电压电流地址。
------解决方案--------------------
// 下位机的电流电压的存放地址
------解决方案--------------------
发现网上用mscomm处理接收数据的资料不是很多,大多很简单的
------解决方案--------------------
你好,我现在也需要用vc来写一个上位机软件,用来接收PLC通过串口发送过来的协议。下位机采用modebus协议传送。我需要使用modebus协议接收。请问我该怎么办啊?我以前没弄过。想请教下