0 End Property
?
Public Property Let ltGetPicture(ByRef lDrawPicBox As PictureBox)
Set pricCurve = lDrawPicBox End Property
Private Sub sDrawTheRealTimeCurve()
Dim ypixels, xpixels, i%
Dim ShowMode As Long, ii As Long, tm As String, hBmp As Long
pricCurve.DrawWidth = 1 hBmp = pricCurve.hDC ShowMode = &HCC0020
ii = BitBlt(hBmp, 0, 0, pricCurve.ScaleWidth - 1, pricCurve.ScaleHeight - 1, hBmp, 1, 0, ShowMode) Dim T As Integer T = Minute(Now()) priDrawNMinute = T
If priDrawNMinute > priDrawTMinute Then
pricCurve.CurrentX = pricCurve.ScaleWidth - 19 pricCurve.CurrentY = pricCurve.ScaleHeight - 11 pricCurve.Print priDrawNMinute End If
priDrawTMinute = priDrawNMinute pricCurve.ScaleMode = vbPixels ypixels = pricCurve.ScaleHeight - 1 xpixels = pricCurve.ScaleWidth - 1
'For 1 to 6 curves
If pCurveNUM > 6 Or pCurveNUM < 1 Then pCurveNUM = 1
For i = 1 To pCurveNUM
priDrawY1(i) = CInt(ypixels - (priCurveData(i) - pCurvemin) / (pCurveMax - pCurvemin) * ypixels)
If priDrawY1(i) = priDrawY0(i) Then priDrawY1(i) = priDrawY1(i) + 1 Next
pricCurve.Line (xpixels - 1, priDrawY0(1))-(xpixels - 1, priDrawY1(1)), vbRed
If pCurveNUM > 1 Then pricCurve.Line (xpixels - 1, priDrawY0(2))-(xpixels - 1, priDrawY1(2)), vbWhite
If pCurveNUM > 2 Then pricCurve.Line (xpixels - 1, priDrawY0(3))-(xpixels - 1, priDrawY1(3)), vbGreen
' If pCurveNUM > 3 Then pricCurve.Line (xpixels - 1, priDrawY0(4))-(xpixels - 1, priDrawY1(4)), spColor(3).FillColor
' If pCurveNUM > 4 Then pricCurve.Line (xpixels - 1, priDrawY0(5))-(xpixels - 1, priDrawY1(5)), spColor(4).FillColor
' If pCurveNUM > 5 Then pricCurve.Line (xpixels - 1, priDrawY0(6))-(xpixels - 1, priDrawY1(6)), spColor(5).FillColor
For i = 1 To 6
priDrawY0(i) = priDrawY1(i) Next End Sub
Public Sub clsInit()
Dim i%
For i = 1 To 6
priDrawY0(i) = pricCurve.Height priDrawY1(i) = pricCurve.Height Next
priTimerDraw.Interval = 1000 priTimerDraw.Enabled = True End Sub
Private Sub priTimerDraw_Timer()
Dim i%
For i = 1 To pCurveNUM
priCurveData(i) = gRealTimeData(priCurvePoint(i)) Next
Call sDrawTheRealTimeCurve End Sub
刷新速度可以调整定时器的时间间隔得到,画出来的效果和Windows任务管理器中的那个CPU工作曲线一样。
修改 删除 举报 引用 回复
加为好友 发送私信 在线聊天
发表于:2007-06-26 09:45:303楼 得分:0 方法就是,先初始化PictureBox控件,然后记住本次的坐标点,下次的坐标点和前一次的连线,然后曲线左移,在曲线最下面写上时间,就OK了。实时曲线诞生!
修改 删除 举报 引用 回复 ? Winters_lee
其实我真的叫迪米亚路? ? ? ? ? ? 等级:
可用分等级:中农 总技术分:1658 总技术分排名:12870
发表于:2007-06-26 10:14:164楼 得分:0
Inbyte = MSComm1.Input '这地方看不懂,数组可以这样赋值吗?
//可以,因为MScomm的属性之前应该是设置成数组形式接
加为好友 发送私信 在线聊天
收的,如果设置为字符串接收的话就得用String变量接收了。
buffer = buffer + Hex(Inbyte(i)) + Chr(32) 'for语句也没看懂,尤其是buffer这赋的是什么值? //接收完整的信息,一直接收,然后每次用Chr$(32)这个换行符格开。 ’这下面的又是没看懂,应该是将十六进制转换为十进制,怎么转换的呢?
//16进制的表示就是行如: &HXXXX ,其中&H是
等级:
可用分等级:中农 总技术分:1658 总技术分排名:12870
? Winters_lee
其实我真的叫迪米亚路? ? ? ? ? ? 必须的,表示16进制,后面的XXXX为16进制值,所以使用Val,Clng,Cint等强制转换都可以直接将其转换。
修改 删除 举报 引用 回复 发表于:2007-06-26 13:23:505楼 得分:0 Visual Graph是一套强大的交互图形开发平台,她能非常方便地建造基于图形的界面、制作各种图形元
件、实现图形管理、图形建模、制作监控系统、表单系
加为好友 发送私信 在线聊天
统、绘图系统、流程设计、CAD软件等。她提供功能非常强大的ActiveX控件,和其他流行的编程语言共同工作,极大地弥补了这些语言在图形处理方面的不足。也可以嵌入IE浏览器中,实现网上图形编辑和控制等。http://www.visual-graph.com
? hongmosuyier
? ? ? ? ? ? 等级:
可用分等级:长工 总技术分:472 总技术分排名:34749
基于串口通信的远程自动抄表系统实现
作 者:王 鹏
摘 要:对远程抄表系统的方案、系统的组成、硬件的配置、软件设计、工作原理、功能以及技术述。该系统通过下位机(MCU)和无线收发模块(PTR2000)采集、整理数据,通过串口经MODEM通信,水、电、气公司通过上位机(PC机)收集数据,实现远程无线自动抄表的功能。
引言
在人们的日常生活中,水、电、气是不可缺少的必备生活保障,然而对于水、电、气供应公月上门抄取各个用户的三表读数却是非常繁重的工作,需要投入大量的人力和物力。现在许多公抄表系统,但是他们通常采用电话线或者是专线完成与上位机的通讯,成本比较高。详见参考资
针对这种情况,作者设计了一种远程无线自动抄表系统。自动抄表系统,简称ARMS(Automatic RSystem),是供应水、电、气的部门将安装在用户处的水、电、气表所记录的用量等数据通过遥测机系统汇总到营业部门,代替人工抄表及一连串后续工作的系统。该系统的无线通信是采用GSM它的实现是迈向家庭自动化的第一步,并有助于提高水电系统管理的现代化水平。该系统具有两其一系统数据采集点多,成千上万,数据量大;其二系统是一个覆盖面很广的通信网络,采集点对系统的要求,一方面应造价低、经济实惠,另一方面数据的采集要准确及时,又要有一定的环抗干扰能力。随着现代化电子技术的发展,通信技术和计算机技术都有了飞速发展,而两者的结化出许多新的通信方式和通信系统,为ARMS的实现提供了可能。这样可避免抄表员上门抄表带来了上门抄表打扰用户的尴尬问题,对公司、用户都有很大的便利,具有良好的市场前景。特别是在该系统具有很广的推广价值。
1.系统的组成及工作原理
系统组成:数据采集部分;数据发送、无线通信部分;数据接收、处理部分。
工作原理:数据采集装置首先通过传感器采集三表的读数,将采集的数据存入单片机(AT89C片机再通过无线通讯模块PTR2000(发端)将数据发送,用户集中器的PTR2000(收端)将发送来下位机主要完成采集数据、分时存储和同上位机通信的功能,它通过串行接口与GSM/Modem联接,以为平台,通过电信公众网络传输数据。随着GSM移动通信网络的建设和发展,移动通信网日益庞盖地区也日益广泛。因而通过GSM移动通信网络进行数据的传输也成为了一种新式的数据传输手通过GSM的短消息业务发送数据。PC机(上位机)一般设在公司的营业处,它是负责整个系统管理据收集到,然后对接收的数据整理、存储、显示,并计算出各用户需缴纳的费用。还可以将用户印出来,对实行季节电价、分时电价,用经济杠杆实现削峰填谷很有利,可以为国家节约能源。构原理图如图1:
图1 系统的组成结构原理图(点击可看图)
经济分析:本系统的最大容量设计为1000家。规定每100ms采集一家的数据,则一分钟可以的数据。普通的电表是2400转/KWH,采集装置每采集20个脉冲记1个点。每十分钟采集的数据字节,每家的用量数据是按增量采集的,三个表的增量最多占3个字节,所以600家的数据最多每分钟采集一轮,采集到的数据存储在AT89C51的RAM内,在存储器内整理、打包,每十分钟发于夜晚用电水气量比较少,所以在晚上发送的数据包,很多是空包,这样就浪费占用通信信道的在软件设计时,采用越限发送,即每次采集的数据必须超越一定的量才发送,一天最多12小时的是每十分钟发送一次的。基于GSM短消息业务的容量主要是由短消息服务中心的处理能力和无线承载能力决定的,每个短消息的信息量限制为140个八位组(7比特编码,160个字符)不超过每十分钟采集3K数据,需要发送22条短消息,则每月发送约5万条。按照西安市短信费用标准月的费用是2000元/月。平均每家2元/月。因此该系统非常的经济。而且上位机每十分钟就收据,这样就可以在一天里用电高峰期里及时采集用户的用量,并将用量曲线打印出来。
2.硬件配置
2.1数据采集、发送部分