仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

各位老师请教下,vb采集温度器上的数据?

aaa一辈子4 2013-05-31 02:14:51 474  浏览
  • 用的是modbus协议:RS-485串口,“9600.n.81”,功能码03读参数,功能码10写参数值。我这有个模拟采集温度的程序,请帮忙看下怎么改才能跟温控表实际采集,我这没有添加MSComm通讯控件... 用的是modbus协议: RS-485串口, “9600.n.81”, 功能码 03 读参数, 功能码 10 写参数值。 我这有个模拟采集温度的程序,请帮忙看下怎么改才能跟温控表实际采集,我这没有添加MSComm通讯控件: Public flag As Boolean '报警标志位 Public saveflag As Boolean '数据保存标志位 Private Sub cancelsave_Click() saveflag = False '取消保存 End Sub Private Sub cancelwarn_Click() flag = False '取消报警,并隐藏相关显示控件。 Label3.Visible = False Label4.Visible = False cancelwarn.Enabled = False End Sub Private Sub Form_Load() stopgetting.Enabled = False '初始状态,非采集状态下“停止采集”不可用 cancelwarn.Enabled = False '初始状态,非采集状态下“取消报警”不可用 Label2.Caption = "" End Sub Private Sub gettting_Click() Timer1.Enabled = True '启动定时器1,定时读取数据。 Timer1.Interval = 1000 '采集时间间隔。 stopgetting.Enabled = True End Sub Private Sub help_Click() Dim res res = MsgBox("本系统在开始采集数据后才能进行数据保存,///掉。", , "帮助") End Sub Private Sub savedata_Click() saveflag = True '置位数据保存标志位,保存数据。 End Sub Private Sub setwarnning_Click() Form2.Show '显示设置窗口。 End Sub Private Sub stopgetting_Click() Timer1.Enabled = False '停止采集 End Sub Private Sub Timer1_Timer() Dim t As Double '温度 Dim a As Integer Dim res Dim str As String str = App.Path + "\数据.txt" '文件保存路径,保存在程序相对路径内。 t = 50 + Rnd * 20 '这里生成50-70之间的随机数,模拟采集到的温度。 a = 100 * t t = a / 100 '保留两位小数 Label2.Caption = t Label3.Caption = Form2.a If flag Then '判断是否超过设定温度 If t > Form2.a Then res = MsgBox("超过设定温度!", vbExclamation, "报警") '超过设定温度弹窗显示报警 flag = False '将报警标志位置0,停止报警。用户需再次启动报警功能。 End If End If If saveflag Then '保存数据 Open str For Append As #405 '在文件尾端写入数据 Print #405, t Close #405 End If End Sub 展开

参与评论

全部评论(2条)

  • Nqfxcr 2013-06-01 00:00:00
    不明白你这是什么意思!你只是保存了数据了,你想要做什么?

    赞(6)

    回复(0)

    评论

  • mm13981nk47 2013-06-01 00:00:00
    我做过VB与温控器的通迅, 给你的程序看看, 用Mscomm控件, 你的程序为什么不用,不用又怎么可以接收数据? Public Sub ReadTempr(Addr As Byte) '读取温度值 Dim SendDat(7) As Byte Dim Crc_Dat As Long SendDat(0) = Addr '温控器地址, 在温控器上可以设置 SendDat(1) = 3 '功能码3表示读寄存器 SendDat(2) = 71 '7100温度寄存器地址 SendDat(3) = 0 SendDat(4) = 0 '0002读两个寄存器 SendDat(5) = 2 Crc_Dat = Crc_Check(SendDat, 6) Mod 65536 SendDat(6) = Crc_Dat Mod 256 'CRC校验码 SendDat(7) = Crc_Dat \ 256 Form7.MSComm.Output = SendDat Form7.MSComm.InBufferCount = 0 End Sub Public Function Crc_Check(Dat() As Byte, LenDat As Integer) As Long Dim Crc As Long Dim count As Integer Dim Num As Integer Crc = &HFFFF& For Num = 0 To LenDat - 1 Crc = Crc Xor Dat(Num) For count = 0 To 7 If (Crc Mod 2) > 0 Then Crc = Crc \ 2 Crc = Crc Xor &HA001& Else Crc = Crc \ 2 End If Next count Next Num Crc_Check = Crc End Function Private Sub MSComm_OnComm() '串口接收事件 Dim Num As Integer Dim Rdata(9) As Byte Dim Crc As Long Dim Crc_H As Byte, Crc_L As Byte Dim strReceive As String ReReceive: Num = 0 If MSComm.CommEvent = comEvReceive Or MSComm.InBufferCount > 0 Then MSComm.RThreshold = 0 '关闭串口接收中断 Timer1.Enabled = False Timer1.Interval = 10 '规定在10ms内接收完所有数据 Timer1.Enabled = True Do While Timer1.Enabled = True If MSComm.InBufferCount > 0 Then Rdata(Num) = AscB(MSComm.Input) Num = Num + 1 If Num = 9 Then Exit Do End If DoEvents Loop If Num = 9 Then '接收到温度数据 If Rdata(0) = 201 Or Rdata(0) = 202 Then Crc = Crc_Check(Rdata, 7) Mod 65536 Crc_H = Crc \ 256 Crc_L = Crc Mod 256 If Crc_L = Rdata(7) And Crc_H = Rdata(8) Then '接收成功 Form3.XTemPV(Rdata(0) - 201).Text = Format(((Rdata(3) * 256 + Rdata(4)) / 10), "##0.0") Form3.XTemPV(Rdata(0) - 201).ToolTipText = "Z近更新时间:" & Now Form3.XTemSV(Rdata(0) - 201).Text = Format(((Rdata(5) * 256 + Rdata(6)) / 10), "##0.0") Form3.XTemSV(Rdata(0) - 201).ToolTipText = "Z近更新时间:" & Now End If End If End If End If If MSComm.InBufferCount > 0 Then GoTo ReReceive '如果此时接收缓冲区中仍有数据,就返回去再次开始接收 MSComm.RThreshold = 1 End Sub Private Sub Timer1_Timer() '通迅超时检测 Timer1.Enabled = False End Sub

    赞(13)

    回复(0)

    评论

热门问答

各位老师请教下,vb采集温度器上的数据?
用的是modbus协议:RS-485串口,“9600.n.81”,功能码03读参数,功能码10写参数值。我这有个模拟采集温度的程序,请帮忙看下怎么改才能跟温控表实际采集,我这没有添加MSComm通讯控件... 用的是modbus协议: RS-485串口, “9600.n.81”, 功能码 03 读参数, 功能码 10 写参数值。 我这有个模拟采集温度的程序,请帮忙看下怎么改才能跟温控表实际采集,我这没有添加MSComm通讯控件: Public flag As Boolean '报警标志位 Public saveflag As Boolean '数据保存标志位 Private Sub cancelsave_Click() saveflag = False '取消保存 End Sub Private Sub cancelwarn_Click() flag = False '取消报警,并隐藏相关显示控件。 Label3.Visible = False Label4.Visible = False cancelwarn.Enabled = False End Sub Private Sub Form_Load() stopgetting.Enabled = False '初始状态,非采集状态下“停止采集”不可用 cancelwarn.Enabled = False '初始状态,非采集状态下“取消报警”不可用 Label2.Caption = "" End Sub Private Sub gettting_Click() Timer1.Enabled = True '启动定时器1,定时读取数据。 Timer1.Interval = 1000 '采集时间间隔。 stopgetting.Enabled = True End Sub Private Sub help_Click() Dim res res = MsgBox("本系统在开始采集数据后才能进行数据保存,///掉。", , "帮助") End Sub Private Sub savedata_Click() saveflag = True '置位数据保存标志位,保存数据。 End Sub Private Sub setwarnning_Click() Form2.Show '显示设置窗口。 End Sub Private Sub stopgetting_Click() Timer1.Enabled = False '停止采集 End Sub Private Sub Timer1_Timer() Dim t As Double '温度 Dim a As Integer Dim res Dim str As String str = App.Path + "\数据.txt" '文件保存路径,保存在程序相对路径内。 t = 50 + Rnd * 20 '这里生成50-70之间的随机数,模拟采集到的温度。 a = 100 * t t = a / 100 '保留两位小数 Label2.Caption = t Label3.Caption = Form2.a If flag Then '判断是否超过设定温度 If t > Form2.a Then res = MsgBox("超过设定温度!", vbExclamation, "报警") '超过设定温度弹窗显示报警 flag = False '将报警标志位置0,停止报警。用户需再次启动报警功能。 End If End If If saveflag Then '保存数据 Open str For Append As #405 '在文件尾端写入数据 Print #405, t Close #405 End If End Sub 展开
2013-05-31 02:14:51 474 2
关于Q235钢焊接试样的金相制备问题,请教下各位高手
Z近在做毕业设计,手上有一个已经焊完的对接Q235钢的焊接试样 尺寸是 150MM 75MM 5MM 现在想截取一部分下来做金相试块 尽量能观察到几个区的组织 。请教下改怎么取样的好?
2011-05-24 13:24:20 557 1
请教下这个电机的参数
这个电机的电流3.2A是指60HZ,380V下才是吗?这4个电流该怎么理解,请求高手指教
2013-07-07 04:53:06 366 6
请教下印刷机刮刀问题
我想问下做凹版印刷的朋友们,那个印刷机的刮刀调节究竟是怎么一回事,我就是有些弄不懂,就是在刮刀刮去印刷版面的油墨后,如何根据版面刮去油墨的程度调节刀架高低以及刮刀与版面的距离?刀架上有两个调节刀架的转轴,有时候我明明感觉刮的干净了,可是有人... 我想问下做凹版印刷的朋友们,那个印刷机的刮刀调节究竟是怎么一回事,我就是有些弄不懂,就是在刮刀刮去印刷版面的油墨后,如何根据版面刮去油墨的程度调节刀架高低以及刮刀与版面的距离?刀架上有两个调节刀架的转轴,有时候我明明感觉刮的干净了,可是有人说左端离的近了,我真的有些不解。请热心网友们解答,谢谢了。 展开
2014-10-26 08:01:25 624 1
采样保持器的保持电容对采集数据的影响?
 
2010-04-05 21:36:45 260 2
频谱仪上采集的数据是IQ数据,怎么不是解析信号的数据
 
2018-11-27 01:34:03 397 0
急急急,vb:编写器
要求:单击“开始”按钮,标签中的数字为60,每隔一秒减1,当标签中的数字为0时,则停止减1,标签中显示“时间到”
2011-06-13 00:25:07 416 2
室内多点采集温度数据用什么算法
 
2017-01-03 13:51:25 492 1
如何用火车采集器采集国家知识产权局上的数据
 
2015-11-15 22:06:27 366 1
你好,想请教下,用玻璃匀浆器能破碎酵母细胞吗?
 
2010-12-16 07:51:37 449 3
名词解释(数据)采集
管理系统中计算机应用名词解释(数据)采集... 管理系统中计算机应用 名词解释(数据)采集 展开
2016-07-14 06:04:27 782 2
如何将传感器采集的数据上传到web服务器中
 
2018-03-06 00:07:47 354 1
工业上多路温度采集用什么仪器?
 
2018-11-27 16:45:55 343 0
请问一下各位老师,汽车继电器上30.85.86.87.87a.等一些数字什么意思?
 
2018-11-11 18:10:34 402 0
请教下 简易低频信号发生器的 问题呀 !!
 
2012-04-26 17:51:41 409 3
温度采集的原理
 
2017-12-15 09:00:28 321 1
数据采集仪采集到的温度数据波动大是怎么回事
使用的是pt100磁吸附式温度传感器测量机床主轴温度,加了温度变送器输出0-10v的电压信号后接入数据采集仪,然而数据采集仪采集到的温度信息波动太大,但是关掉机床电动机时,温度则比... 使用的是pt100磁吸附式温度传感器测量机床主轴温度,加了温度变送器输出0-10v的电压信号后接入数据采集仪,然而数据采集仪采集到的温度信息波动太大,但是关掉机床电动机时,温度则比较稳定,求助,机床工作过程中怎样才能使得测得的温度更加平稳。。。 展开
2018-12-04 19:18:28 320 0
各位老师土壤酸碱度如何测定
 
2018-07-18 09:30:53 408 1
各位老师:盐碱性地怎么改良
 
2018-07-11 10:23:13 340 1

1月突出贡献榜

推荐主页

最新话题