我有一些数据需要通过USB或者串行通信接口实时采集传送到电脑中,再存储入电脑数据库,在电脑显示器上实时动态显示出来。哪位可以帮助我,给我指点迷津。不甚感激!!!悬赏100分!!显示部分我已经编写好了。在线等!!QQ66257622

zhuhe1117 2008-05-17 02:32:44
仪器分析的数据通过USB接口或串行通信,数据采集到电脑的数据库存储,然后实时动态显示(接受一组数据,显示一组数据),哪位大哥赐教。100分悬赏,在线等!!QQ66257622 相关资料也给分 邮箱zhuhe1219@163.com显示部分我已经编写好了
...全文
373 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbm6666 2008-05-18
  • 打赏
  • 举报
回复
上面是以文本方式接收, 下面这是以二进制接收, 再下面那个,你可以改一改将你的数据以曲线图显示

【CBM666 的二进制串口接收 数组方式】http://hi.baidu.com/cbm666/blog/item/259ff21f5f255460f724e46d.html


【CBM666 的实时动态曲线图演示】随时在移动的曲线图http://hi.baidu.com/cbm666/blog/item/d8efafc3de092756b219a871.html


cbm6666 2008-05-18
  • 打赏
  • 举报
回复
Chen8013 你过奖了, 俺也是在学习中....


请注意一点, 下面代码只是给你一个思路, 也不可能就与你的条件符合, 看看就好, 这代码是用我的代码片段抽出来改的,你能吸收多少算多少吧.


'****** 工程引用Microsoft ActiveX Data Objects 2.5 Library
'添加 MSComm1 List1 Command1
'数据库名与表名自己改,并把它与程序放在同一路径

Option Explicit
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Dim db$, Appdisk$, RcvData$
Private Sub Form_Load()
'********** 打开数据库
Appdisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
db = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Appdisk & "Alarm.mdb"
conn.CursorLocation = adUseClient
conn.Open db '打开数据库连接
rs.Open "Voltage", conn, adOpenKeyset, adLockPessimistic
If rs.recordcount > 0 Then rs.MoveFirst
'********************* 串口初始化
With MSComm1
.CommPort = 1
.Settings = "9600,n,8,1"
.InputLen = 0
.InBufferSize = 1
.RThreshold = 20 '这里是假设你的每一笔数据长度为20个字元
.InputMode = comInputModeText '文本方式接收,一般监控器与电子秤大都是以文本,模式发送的
End With
Command1.Caption = "开始接收"
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.Caption = "警报监控系统"
Command1_Click '开始运行监测端口
End Sub

Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen Then MSComm1.PortOpen = False
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End
End Sub

Private Sub Command1_Click()
If Command1.Caption = "开始接收" Then
List1.Clear
If Not MSComm1.PortOpen Then MSComm1.PortOpen = True '打开串口
MSComm1.InBufferCount = 0
MSComm1.DTREnable = True
Else
If MSComm1.PortOpen Then MSComm1.PortOpen = False
MSComm1.DTREnable = False
End If
Command1.Caption = IIf(Command1.Caption = "开始接收", "停 止", "开始接收")
End Sub

Private Static Sub MSComm1_OnComm() '等侯串口信号进来
Select Case MSComm1.CommEvent
Case comEvReceive '接收缓冲区收到Rthreshold 个字符时触发
RcvData = MSComm1.Input
List1.AddItem RcvData '这个List1只是让你看随时接收到的东西,没啥用处
If Left(RcvData, 1) = Chr(2) Then '这里是假设接收数据的启始符STX是 chr(2)多一个判断较保险
rs.addnew
rs.fields(0) = Mid(RcvData, 2, 7) '添加字段1
rs.fields(1) = Mid(RcvData, 9, 7) '添加字段2
rs.fields(2) = Mid(RcvData, 16, 4) '添加字段3
rs.Update
End If
End Select
End Sub


CathySun118 2008-05-18
  • 打赏
  • 举报
回复
串口通讯,可以使用MSCOMM控件
咸清 2008-05-17
  • 打赏
  • 举报
回复
还是自己动手有点意思!~~~
建议:
1,认真翻阅仪器的接口说明书,最好是英文的。因为英文的一般要详细。
2,研读里面的协议。很多仪器的数据传输协议是很特别的,要仔细研究。
3,焊接相关的串口线。9孔对25针直连、交连线,9孔对9孔交线,9针对9孔直连线等都是常用的线。很少见到USB线。
4,用一些专用软件采集数据,如Bothway等。
5,分析数据,解码信号,转化为记录保存到数据库。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
仅供学习!
zhuhe1117 2008-05-17
  • 打赏
  • 举报
回复
能否告知CBM666的联系方式?邮箱QQ都可以 在论坛上我怎么找他啊?
舉杯邀明月 2008-05-17
  • 打赏
  • 举报
回复
找CBM666帮忙吧,他在这方面是难得的高手!
提问时把问题描述详细一点儿。

Up.....
zhuhe1117 2008-05-17
  • 打赏
  • 举报
回复
显示部分我已经编写好了啊,数据库也已经连接上了,各位只要告诉我怎么可以将数据实时采集并存储进数据库就可以了啊 不甚感激!!!
daisy8675 2008-05-17
  • 打赏
  • 举报
回复
你想问什么啊?你要别人全部帮你写是不可能的啊

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧