博文
在VB下设计开发实时的数据采集曲线 (2006-04-09 22:05:00)
摘要:
在VB下设计开发实时的数据采集曲线
加入日期: 2005-6-6 关键字: 数据采集曲线
文章来源: 互联网 文章作者: 不详 责任编辑: 第七乐章
添加收藏夹 打印此页 关闭窗口
收藏此页到 365Key网摘 天极网摘 博采文摘 和讯网摘 人人网摘
1. 引言
在笔者参与过的开发的机组轴瓦控制系统中,要求能够实时采集轴瓦转动速度值V,并能根据实时采集到的数据绘制出V在10分钟内变化的短期趋势图和一日内变化的长期趋势图,以便观测轴瓦转动的趋势情况,查看控制效果。该系统在VB6.0环境下进行开发,开始时采用了VB包含的Activex控件技术绘制曲线,在效果不理想的情况下,笔者利用VB绘画函数,最终成功实现了实时数据采集曲线的绘制与显示。笔者将以轴瓦实时采集速度值V的短期趋势图为例,谈一下实时采集曲线的设计与实现过程。
2. 绘图控件的选择
系统开发初期,采用VB内所含的Activex控件技术来解决实时采集曲线的绘制问题。VB控件中提供了外部Activex控件Mschart来给该应用程序添加图表功能,用它能创建包括条形、饼形、线形等不同类型的三维图表。利用该控件,可对表中的所有项目进行完全控制,例如标题、图表、脚注、轴、数据点系列等等,甚至还能旋转图表,为每一元素加上背景、设置光源,把它们放在想要的地方。
本系统中需要实时测量轴瓦速度V的实际值,并根据实时更新的短期速度数据数组、长期速度数据数组分别绘制短期趋势曲线图与长期趋势曲线图,这两个趋势图均是速度值(Y轴)和时间(X轴)的关系曲线,并随着时间变动实时更新,以便观测。
短期趋势图的绘制,由于测量10分钟内的数据,每一秒测量一次,因此每10分钟内都有600个数据,为绘制曲线,还要赋予一个初值,所以速......
女孩与小偷(记得带纸巾进来) (2006-04-09 12:17:00)
摘要:正 文
小偷被人追赶,他跑进一个小巷,跳进一座老宅.老宅很大,很静,也很荒凉.正当他想该藏在什么地方时,一个柔弱的声音在他身后响起.“你是谁呀,你找谁?“
小偷吓了一跳.转身一看,只见一个少女正睁着一双大眼睛盯着他问呢.
“砰......“院外传来急促的敲门声,小偷的脸都吓白了.
少女一把抓住小偷的手,拉着他来到门口,打开了门,一群人闯了进来.
“你看见一个小偷进来了吗?“
“没有呀“.
“我和我男朋友在院子里,没见到什么小偷呀.“少女一脸天真的样子.
为首的男子仔细打量了少女,看她不像是在说谎.但他的目光却紧紧地盯着小偷.“他是你男朋友?“
“那还有假?“少女说着,把身子靠在小偷身上.
那些人看没什么异样,就都走了.
“你,你为什么帮我?“小偷不解地望着少女.
“你一定由你自己的苦衷,谁都不是天生就想作小偷的.“
居然有人会为小偷辩护,小偷不禁又仔细地打量了一下少女,她不像一个脑子有问题的人.
“你坐一会吧,他们估计还没走远“.少女居然邀请他坐一会.
“就你一个人在这?“
“是的,我家不在这儿,房子是我外祖父留下来的.“少女伤感地说.“我身体又不好,很少外出的,你能常来陪我吗?“
“好吧“.小偷犹豫一下答应了.
以后的日子里,小偷没事就去老宅陪少女.他后来才知道她患的是尿毒症,虽然是早期,但那却是个令人心惊胆寒的绝症啊!他能作是只是抽时间陪她,给她讲外面的世界,小偷的出现让少女黑白的世界变得多彩起来,她每天都盼望他的出现.
这年情人节,小偷带着一朵玫瑰出现在少女面前,向她示爱.她虽然知道那天以后他再也没有偷过东西,但她却是身患绝症的人,怎么能接受他的爱呢.
每个情人节,小偷都会带来一朵玫瑰向她求爱.
日子一天天地过去,小偷一天天地消瘦.
一天,小偷惊喜地告诉少女,她有救了,他为她找到了肾脏.
这年情人节前夕,少女换肾手术的准备工作已就绪.这时少女才知道,她要换的是小偷的肾.他瘦的那么快是因为他每天不仅要卖血,而且还要......
意大利医生眼中触目惊心的中国医生之黑!(2006-04-03 19:41:00)
摘要:意大利医生眼中触目惊心的中国医生之黑!转自81.china.com
西陆观察社区转自81.china.com
转自81.china.com
我被请到北京房山,去给一个当时只有11岁的男孩看病。他的家人从孩子一出生就带他到各个医院治了10年,花了很多的钱。居然就没有一个医生告诉孩子的家人患的是什么病,告诉家长这种病根本无法治。这是非常不道德的。你们习惯打吊针,好让孩子的体温降下来,那是靠药物强制性降体温,对孩子的恢复没有积极的意义。我再强调一遍,如果患儿没有出现细菌感染,就不要使用抗生素。 转自81.china.com
转自81.china.com
在你们这里还给孩子做“心脏瓣膜手术”,其实根本没有必要做这种手术,孩子长大了自然就会好了。在西方,医生是不给孩子做这类手术的。一个医生不应让患者花太多的钱去做无谓的治疗,这一点很重要。我认为一个好医生应该是诚实的、谦虚的。 转自81.china.com
转自81.china.com
彼路易.切奇博士是一位有着30多年临床经验的意大利儿科专家。两年前,他受意大利政府派遣,作为意方负责人到北京执行两国卫生合作项目。在北京儿童医院特需门诊坐诊的两年间,切奇先生以一位西方医生诚实、敏锐的眼光,观察到了目前在中国医学界普遍存在的难以理解的现象,而其中的某些现象决不能简单归结为是由中国的国情或中西方文化的差异造成的。以下为他在接受记者数次采访时所谈到的主要内容。 转自81.china.com
转自81.china.com
为什么不用药或少用药 转自81.china.com
转自81.china.com
世界上的妈妈都害怕自己的孩子生病,一生病就吓得不得了,一有病就带孩子看医生。方才,一个小孩的姥姥带着她的外孙急急忙忙来看皮肤病,你们的儿科医生要给孩子抽血检验。我检查一看,那是蚊子咬的一个包,不用抽血。最后老太太给在香港工作的孩子妈妈打了一个长途电话,孩子的妈妈坚决反对给孩子抽血,才算了事。结果我也没给孩子开药。这就是属于患者家属的无知。 转自81.china.com
转自81.china.com
意大利的妈妈在30年前,也是这样想的,认为用一根针扎到身体里(输液),要比口服的药物药效发生得更快。不是我不用药或......
十进制,八进制,十六进制,二进制相互转换大全(2006-04-03 19:29:00)
摘要:' 用途:将十进制转化为二进制
' 输入:Dec(十进制数)
' 输入数据类型:Long
' 输出:DEC_to_BIN(二进制数)
' 输出数据类型:String
' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)
Public Function DEC_to_BIN(Dec As Long) As String
DEC_to_BIN = ""
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function
' 用途:将二进制转化为十进制
' 输入:Bin(二进制数)
' 输入数据类型:String
' 输出:BIN_to_DEC(十进制数)
' 输出数据类型:Long
' 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
For i = 1 To Len(Bin)
BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
Next i
End Function
' 用途:将十六进制转化为二进......
UTF-8 and Unicode FAQ(2006-04-02 20:23:00)
摘要:UTF-8 and Unicode FAQ
by Markus Kuhn 中国LINUX论坛翻译小组 xLoneStar[译] 2000年2月
这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 Latin-1 编码的位置了. 它不仅允许你处理处理事实上存在于地球上的任何语言文字, 而且提供了一个全面的数学与技术符号集, 因此可以简化科学信息交换.
UTF-8 编码提供了一种简便而向后兼容的方法, 使得那种完全围绕 ASCII 设计的操作系统, 比如 Unix, 也可以使用 Unicode. UTF-8 就是 Unix, Linux 已经类似的系统使用 Unicode 的方式. 现在是你了解它的时候了.
什么是 UCS 和 ISO 10646?
国际标准 ISO 10646 定义了 通用字符集 (Universal Character Set, UCS). UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息.
UCS 包含了用于表达所有已知语言的字符. 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及 平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其他数也数不清的语. 对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入. 这些语言包括 Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如 Tengwar, Cirth 和 克林贡语(Klingon). UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由 TeX, Pos......
程序员趣味读物:谈谈Unicode编码 出处:CSDN (2006-04-02 14:23:00)
摘要:这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:
问题一:
使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?
我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢?
问题二:
最近在网上看到一个ConvertUTF.c,实现了UTF-32、UTF-16和UTF-8这三种编码方式的相互转换。对于Unicode(UCS2)、GBK、UTF-8这些编码方式,我原来就了解。但这个程序让我有些糊涂,想不起来UTF-16和UCS2有什么关系。
查了查相关资料,总算将这些问题弄清楚了,顺带也了解了一些Unicode的细节。写成一篇文章,送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂,但要求读者知道什么是字节,什么是十六进制。
0、big endian和little endian
big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。还是将49写在前面,就是little endian。
“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。
我们一般将endian翻译成“字节序”,将big endian和little endian称作“大尾”和“小尾”。
1、字符编码、内码,顺带介绍汉字编码
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设......
非access数据库在vb中的编程及应用(2006-04-02 14:20:00)
摘要:visual basic有着强大的数据库存取能力,不仅能够直接支持ms access数据库,而且通过其内部安装的isam驱动程序使它能间接支持foxpro、dbase等外来数据库。本文不仅从vb数据库体系结构的角度探讨了vb对这些外来数据库的支持,还结合了一些实例具体阐述了使用数据库存取对象变量的方法实现这些外来数据库的新建、库结构修改、显示及其运行环境设置。
存取对象变量库结构
在vb中,将非access数据库称为外来数据库。对于foxpro、dbase、paradox等外来数据库。虽然借助vb的datamanager能够对这些数据库进行new、open、design、delete等操作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非access格式数据库(以foxpro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补vb对这些外来数据库支持不足的可行性。
一、vb数据库的体系结构具体的vb的数据库结构。
vb数据库的核心结构是所谓的microsoft jet数据库引擎,jet引擎的作用就像是一块“面板”,在其上可以插入多种isam(indexed sequential access method,即索引顺序存取方法)数据驱动程序。jet引擎为access格式数据库提供了直接的内部(build-in)支持,这就是vb对access数据库具有丰富支持的真正原因。vb专业版中提供了foxpro、dbase(或xbase)、paradox、btrieve等数据库的isam驱动程序,这就使得vb能支持这些数据库格式。
二、使用非access数据库时的参数设置及配置文件的参数读取
如果在vb的程序中使用了数据库的操作,将应用程序生成exe文件或打包生成安装程序后,则必须提供一个配置(.ini)文件,在ini文件中可以对不同类型的数据库进行设置。如果找不到这个ini文件,将会导致不能访问数据库。通常情况下,ini文件的文件名和应用程序的名称相同,所以如果没有指明,vb的程序会在windows子目录中去找和应用程序同名的ini文件。可以使用vb中的setdataaccessoptions语句来......
自己动手做一个数学函数作图器(2006-04-02 14:16:00)
摘要:自己动手做一个数学函数作图器
学习中我们经常会遇到一些要求作图的题目,数学就是一个很好的例子,君不见,哪一个学生不是整天拿着一根尺子几只笔在画啊画的?要是能有一个作图的软件该有多好啊!虽然拿来主义是我们一向的作风,可是只顾拿来而从不动一下脑筋又有点儿说不过去,所以,今天的课题就是——用VB做一个数学函数作图器!
我们先来了解一下VB的坐标系统,VB的坐标系统可分为“窗体的坐标系统”和“对象的坐标系统”两种,但是这两种坐标系统均是以屏幕的左上角为原点(0,0),这和我们平时所选取的以中心为原点显然很不相符,而且使用起来也很不方便。所以,我们要用VB提供的Scale来自定义坐标系,格式如: Picture1.Scale(-10,10)-(10,-10),意思就是把整个Picture1控件定义为一个20×20的区域用于绘图,以Picture1的中心为原点(0,0)。
有了上面的基础,我们就可以用Pset(画点)、Line(画线)等,轻轻松松地来画函数的图像了。
启动VB,建立一标准EXE工程,再在窗口上如图所示地布置5个Command Button控件和1个PictureBox控件,输入以下的代码就OK了。
Const Pi = 3.1415926535 '定义圆周率
Dim a, wor
'定义用于在Picture1上的一个位置打印字符函数
Private Function PrintWord(X, Y, Word As String)
With Picture1
.CurrentX = X
.CurrentY = Y
.ForeColor = RGB(0, 0, 255)
End With
Picture1.Print Word
End Function
'定义画点函数
Private Function DrawDot(Px, Py, Color)
Picture1.PSet (Px, Py), Color
End Function
Sub XY() '建立直角坐标系
Picture1.DrawWidth = 1 '设置线条宽度
Picture1.Cls
'设定用户坐标系,坐标原点......
VB基础:认识VB的文件系统对象FSO(2006-04-02 13:40:00)
摘要:
VB基础:认识VB的文件系统对象FSO
出处:CSDN
责任编辑:ljx
[04-3-16 15:14]
作者:zhangking
在 VB 编程中经常需要和文件系统打交道,比如获取硬盘的剩余空间、判断文件夹或文件是否存在等。在VB 推出文件系统对象(File System Object)以前,完成这些功能需要调用 Windows API 函数或者使用一些比较复杂的过程来实现,使编程复杂、可靠性差又容易出错。使用 Windows 提供的的文件系统对象,一切变得简单多了。以下笔者举出一些编程中比较常用的例子,以函数或过程的形式提供给大家,读者可在编程中直接使用,也可以改进后实现更为强大的功能。
要应用 FSO 对象,须要引用一个名为 Scripting 的类型库,方法是,执行 VB6.0 的菜单项“工程/引用”,添加引用列表框中的“Microsoft Scripting Runtime”一项。然后我们在“对象浏览器”中就可以看到 Scripting 类型库下的众多对象及其方法、属性。
1、判断光驱的盘符:
Function GetCDROM() ' 返回光驱的盘符(字母)
Dim Fso As New FileSystemObject '创建 FSO 对象的一个实例
Dim FsoDrive As Drive, FsoDrives As Drives '定义驱动器、驱动器集合对象
Set FsoDrives = Fso.Drives
For Each FsoDrive In FsoDrives '遍历所有可用的驱动器
If FsoDrive.DriveType = CDRom Then '如果驱动器的类型为 CDrom
GetCDROM = FsoDrive.DriveLetter '输出其盘符
Else
GetCDROM = ""
End If
Next
Set Fso = Not......
一个利用随机数加密字串的算法(2006-04-02 13:29:00)
摘要:首先这个算法没什么特殊之处,只是怕以后找不到,所以放到了这上面.
每个字节加密后有6种结果(占两个字节,如果需要大于6种的话,就要多用1个字节,即占3 个字节),也就是说如果字串占n个字节的话,可能产生的结果为6的n次方个,这个算法破解的强度不大,大家可以完善一下:
'窗体上一个按钮,两个listbox
Option Explicit
Private Sub Command1_Click()
Dim i As Long
Dim s As String
For i = 1 To 100
s = encode("这是一个测试 hello world")
List1.AddItem s
s = decode(s)
List2.AddItem s
Next
End Sub
Private Function encode(ByVal s As String) As String '加密
If Len(s) = 0 Then Exit Function
Dim buff() As Byte
buff = StrConv(s, vbFromUnicode)
Dim i As Long
Dim j As Byte
Dim k As Byte, m As Byte
Dim mstr As String......