打印

在做一个多点测温项目的上位机部分,希望朋友们给予意见!

[复制链接]
2104|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuse|  楼主 | 2009-11-4 11:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yuse 于 2009-11-4 21:14 编辑

这个项目的下位机硬件平台很简单,就是检测监控多台冷柜的温度,利用温度传感器DS18B20多点测温,每一秒检测一个读一个并可以通过串口发送到上位机(经串口调试助手验证单片机通过串口发送数据部分正常)。

上位机需要满足的最基本功能就是:可以按顺序实时循环更新显示所有的温度值以方便用户查看。

现在的问题是:我找到一个类似的资源,也是利用vb的MSComm1控件,但是是需要定时采集时间间隔,我试了下这样的话好像很难完全实时捕获到所有的温度值,出现错乱。我想能不能不定时,而可以自动捕获检测显示,也就是说只要上位机接收到串口数据就立刻自动执行并显示。这样的话应怎样具体设置才可以满足呢?

以上是我的思路,因为vb上位机部分第一次接触,如果这个思路不可行,有别的好思路还望朋友们不吝赐教!谢谢!

0911031612b8e151663dfff0a6.jpg (99.24 KB )

0911031612b8e151663dfff0a6.jpg

相关帖子

沙发
宇容创行| | 2009-11-4 11:31 | 只看该作者
从你传的数据看,你没有订协议,这样是不好处理的

使用特权

评论回复
板凳
chunyang| | 2009-11-4 13:05 | 只看该作者
确实需要协议的介入,不能只靠串口侦听,应引入双向协议,测温点用一片最简单的MCU就可以了。

使用特权

评论回复
地板
yuse|  楼主 | 2009-11-4 17:35 | 只看该作者
本帖最后由 yuse 于 2009-11-4 17:39 编辑

恩 确实没有考虑协议的问题  但是把温度在1602液晶上循环显示是没问题的,也就是说多点的温度传感器18B20到单片机是没问题的,问题出在了上位机捕获不到全部数据

使用特权

评论回复
5
mohanwei| | 2009-11-4 19:43 | 只看该作者
通信协议,上位机是主,下位机是从。主机发个查询命令,从机才回传数据……

使用特权

评论回复
6
yuse|  楼主 | 2009-11-4 20:12 | 只看该作者
本帖最后由 yuse 于 2009-11-4 20:13 编辑

按LS所说,这个项目中似乎已有通信协议:
51下位机:
if (RI)                                                         // 是否有数据到来
                {
                        RI = 0;
                        receive = SBUF;

                        if (receive == 's')             // 是否开始采集温度
                        {
                                send_char();                            // 传送采集的温度
                        }
                }        
vb上位机:
'-----------------------------------------------
'    定时发送采集标志
'-----------------------------------------------
'每隔 x ms向仪表发送读数据命令串
'每台仪表有一个仪表号,PC机通过仪表号来识别网上的多台仪表
'程序中仪表号(即地址代号)要与仪表设定值一致,否则不能返回数据。

Private Sub Timer1_Timer()

    MSComm1.Output = "s"           ' 发送开始标志
   
End Sub

但是结果就是出现帖子中我所说的问题(截图)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

152

主题

453

帖子

0

粉丝