首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求高人指点:VB串口大流量数据处理导致数据不响应有关问题(工控方向)

2012-02-05 
求高人指点:VB串口大流量数据处理导致数据不响应问题(工控方向)具体情况是这样的:程序运作:PC发送请求或命

求高人指点:VB串口大流量数据处理导致数据不响应问题(工控方向)
具体情况是这样的:

程序运作:
  PC发送请求或命令字节,经由数据转换器到达目标设备,目标设备返回响应的数据,之后PC处理目标设备回传的数据并给出相应的动作和结论;

PC数据发送特性:
  1、接收每次从目标设备发送过来的数据并分析,获取部分并发送(因为字节发送格式里要求进行发送前后设备状态分析);
   
目标设备特性:
  1、目标设备始终以 10 ms/次得速度发送数据,未接受请求或命令时发送循环自我检测数据,接受命令后按要求回传;

目前状况:
  1、堆栈空间溢出。
  2、串口可以及时接收到数据,但发送数据延时严重,甚至不发送数据。

我尝试动作:
  1、因为数据要进行递归分析之后才能发送字节,我将递归处理部分统统注释之后,程序正常收发,无延时现象(此时相应的状态对比部分用固定字节)。

求高人指点思路,不胜感激先!

[解决办法]
看你的问题应该是你的程序分析数据上出问题,你应该搞清楚,你的程序理念本身是否有问题,还是开发工具的效率不能满足需求,或者是硬件配置跟不上要求。

1、可以尝试优化程序。
2、也可以尝试更换开发工具提高效率。
3、还可以尝试用更加高性能的PC来处理。

但个人认为你先检查你的程序思路是否正确,是否有其他的模型或方法可以优化过程,再去考虑其他的解决方案。
[解决办法]
应该是递归导致的,vb的多线程貌似不好,把处理部分放在另外一个程序来做
[解决办法]
如用VC来写个API接口,VB调用这样效率会高很多
[解决办法]
轮询方式处理。
[解决办法]
刷分刷分
[解决办法]
大流量和什么通讯方式无关,这完全是自己程序的数据处理问题,因为在Windows中所有的硬件层通讯都是以一小段一小段数据的文件读写方式进行的。所以无论是网络、USB、串口在数据的处理上都可以用类以的方式去处理,所以是否是大量的数据进行串口传输处理方式都可以是一种过程来处理。你可以参考一些网络处理过程来处理这种数据,相信会对你有所帮助。
[解决办法]
本人对串口通讯还算有点研究,
根据你的描述,你的目标设备10ms/每次发送数据,是不是就是每10ms发送一次,每次数据量有很大,如果是这样的话,速度太快了,PC估计来不及处理的,VB本身不能多线程来优先处理到来的信息,堆栈肯定溢出。再说了,优先处理到来的信息,但是你的递归还未完成,最终信息就在那儿堆砌。系统永远处理不完,最终还算崩溃。

也就是说 你的问题应该无解。

你能把问题描述再清晰一点吗?

热点排行