VB6 实时 串口通信 数据采集代码

VB6 实时 串口通信 数据采集代码
VB6 实时 串口通信 数据采集代码

VB6 实时串口通信数据采集代码

介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。

----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C 串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。

----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x 则为负数;第八位为0,即:0 x x x x x x x 则为正数。

----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示-26.87 34.62。

----通信传输速率为9600bps,则最快速度1.04ms发送一帧数据。

9600bps = 1200Bps这样计算出来的结果相当于8bits/Frame,现在串口中协议是10bits/Frame,求解方程1200 * 8 = x * 10得到x = 960Frame/s。1000/960 = 1.04167Frame/ms。仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下:

RThreshold = 1 接收缓冲区收到一个字节产生OnComm事件

InputLen = 1 每次读取一个字节

----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms 时间(1000/50=20),然后再进行数据处理。①如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;②如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情

况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,以保证数据处理的实时性。

----设置接收数据模式采用二进制形式,即InputMode=comInputModeBinary,但用Input属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

----VB中有Byte类型变量,但没有字节的位处理语句,符号字节的位处理要判断符号字节的值是否大于127,大于127则为负数;压缩的BCD码存入Byte类型变量。VB系统中16进制数只按十进制数处理,这要通过一个简单算法换算,解压BCD码才能还原成十进制表示数值。假如a是Byte类型变量,将一个压缩的BCD 码存入a中,如0x81=129,D是Single类型变量0x81的转换结果为81。整个BCD转10进制算法是:D=(a\16)*10 +a - (a\16)*16 ,其中(a\16)*10是BCD的十位部分,[a-(a\16)*16]是个位部分,将个位部分和十位部分提取公因式合并在一起有最终的转换算法D= a- (a\16)*6 如:a=0x81=129,D=129-(129\16)*6=81。

----程序清单:

----在通用声明中定义程序所用变量:

Dim ab(4) As Byte ‘字节数据类型数组,用来存储接收到的一组字节数据

Dim av As Variant ‘用来从接收缓冲区读取数据

Dim i As Integer

Dim j As Integer

Dim w As Integer ‘接收数据个数计数器

Dim b1 As Single

Dim b2 As Single

Dim WW As Single ‘十进制检测值

Dim MaxW As Single ‘最大值

Dim MinW As Single ‘最小值

----在窗体中添加名为Command1的[开始]按钮和名为MSComm1的MSComm控件。

---- [开始]按钮的Click事件处理程序主要是对MSComm1控制的参数初始化设置,程序中大部分参数在设计时可在MSComm1控制的属性窗口中设置:

Private Sub Command1_Click() ‘开始按钮

With MSComm1

.CommPort=2 ‘使用COM2

.Setting=“9600,N,8,1"‘设置通信口参数

.InBufferSize=40 ‘设置MSComm1接收缓冲区为40字节 .OutBufferSize=2 ‘设置MSComm1发送缓冲区为2字节 .InputMode = comInputModeBinary ‘设置接收数据模式为二进制形式

.InputLen = 1 ‘设置Input 一次从接收缓冲读取字节数为1

.SThreshold = 1 ‘设置Output 一次从发送缓冲读取字节数为1

.InBufferCount = 0 ‘清除接收缓冲区

.OutBufferCount = 0 ‘清除发送缓冲区

MaxW = 99 ‘最大值赋初值

MinW = -99 ‘最小值赋初值

w = 0 ‘数据个数计数器清零

.RThreshold = 1 ‘设置接收一个字节产生OnComm事件If .PortOpen = False Then ‘判断通信口是否打开

.PortOpen = True ‘打开通信口

If Err Then ‘错误处理

MsgBox “串口通信无效"

Exit Sub

End If

End If

End With

End Sub

----为了达到实时数据采集目的,实时数据采集处理程序采用MSComm事件驱动方式。

----MSComm1_OnComm的事件处理程序只处理comEvReceive事件,首先判断帧数据的开始字节,关闭OnComm接收事件,然后接收数据字节,将压缩BCD进行还原转换,再接收符号字节,判断数

据符号,判断数据最大最小值,最后打开OnComm接收事件,等待下一次OnComm事件产生:

Private Sub MSComm1_OnComm()

With MSComm1

Select Case .CommEvent

‘判断MSComm1通信事件

Case comEvReceive ‘收到Rthreshold个字节产生的接收事件

av = .Input ‘读取一个接收字节

ab(1) = av(0) ‘转换保存到字节数据类型数组

If ab(1) = &HF0 Then ‘判断是否为数据开始标志

RThreshold = 0

‘关闭OnComm事件接收

Do

DoEvents ‘响应其他事件,Delphi中是Application.ProcessMessages;否则循环中不会响应其他事件,如同死机

Loop Until .InBufferCount >= 3 ‘循环等待MSComm1接收缓冲区>=3个字节

w = w +1 ‘计数器累加计数

av = .Input ‘读取第二个数据字节(BCD码高位字节)

ab(2) = av(0) ‘转换保存到字节数据类型数组

av = .Input ‘读取第三个数据字节(BCD码低位字节)

ab(3) = av(0) ‘转换保存到字节数据类型数组

av = .Input ‘读取第四个数据字节(符号位字节)

ab(4) = av(0) ‘转换保存到字节数据类型数组

b1 = ab(2) -6 *(ab(2)\16) ‘高位字节压缩BCD码转换为实数

b2 = ab(3) -6 *(ab(3)\16) ‘低位字节压缩BCD码转换为实数

WW = b1 +b2 / 100 ‘数值组合,标定小数点

If ab(4) > 127 Then WW = -WW ‘判断数据符号位

Label1(0) = Format(WW, “0.00")‘显示毫米单位数值,2位小数

Label1(1) =Format(WW /25.4, “0.000") '显示英寸单位数值,3位小数

If WW > MaxW Then

----判断最大值,仪表在刚开始工作时有干扰,会传导一些乱码,位移传感器有参数偏差,最大值一般都略大于50毫米,所以取51为极限最大值,取-51为极限最小值。

MaxW = 51

Label1(2) = Format(MaxW, “0.00")

‘显示毫米单位最大值,2位小数

Label1(3) = Format(MaxW/25.4,“0.000")

‘显示英寸单位最大值,3位小数

End If

If WW < MinW Then

‘判断最小值

MinW = -51

Label1(4) = Format(MinW, “0.00")

‘显示毫米单位最小值,2位小数

Label1(5) = Format(MinW/25.4,“0.000")

‘显示英寸单位最小值,3位小数

End If

.RThreshold = 1 ‘打开MSComm1事件接收End If ' 对应If ab(1) = &HF0 Then ‘判断是否为数据开始标志

Case Else

End Select

End With

End Sub

数据库数据采集标准2020.9.8

数据库录入项目数据采集标准 2020.9.8 为建立标准化的数据库,在进行数据加工前需筛选历史项目。筛选原则为挑选企业典型、具有代表意义的工程进行数据加工,分析。典型工程要具有代表性、普遍性、真实性和完整性。具体筛选标准如下: (一)项目类型 1、房屋建筑项目(住宅、写字楼、酒店、商业、学校、体育馆、图书馆、博物馆、医院、物流仓储等); 2、市政项目(城镇道路工程、城市桥梁工程、城市给水排水工程、城市管道工程、生活垃圾处理工程); 3、仿古建筑项目; 4、机场项目; 5、公路项目; 6、水利项目; 7、煤炭项目; 8、电力项目; 9、城市轨道交通项目; 10、标志性构筑物等。 (二)项目规模 1、地产项目规模要求:总建筑面积在50000平米以上,具有完整的项目业态组合;纯别墅类项目总建筑面积应在10000平米以上;仅园林景观工程的项目,造价应在1000万元以上;仅幕墙工程的项目,造价应在500万元以上。 2、市政项目规模要求:项目总造价1500万元以上。 3、仿古建筑工程规模要求:项目总造价3000万元以上。 4、机场项目规模要求:项目总造价1000万元以上。 5、公路项目规模要求:项目总造价5000万元以上或里程在5KM以上新建项目。 6、水利项目规模要求:项目总造价1000万元以上。 7、煤炭项目规模要求:矿建工程总投资在5000万元以上;选煤厂工程总投资在3000万元以上;煤化工项目总投资3000万元以上。

8、电力项目规模要求:项目总投资在2000万元以上。 9、城市轨道交通项目规模要求:项目总投资1亿元以上。 地标性构筑物及服务项目获得省级及以上优秀建筑工程奖的不受上述规模限制。 (三)项目的时效性 数据库录入项目应选择在截止录入时间节点前三年内的已完项目。 (四)项目的资料要求 拟选择录入数据库的项目须具备以下资料: (1)计价源文件。 (2)完整的图纸资料(包含总说明、建筑、结构、电气、给排水、暖通等图纸),图纸资料主要用于复核单项特征,如建筑面积、结构形式、檐口高度、层数、层高、楼层剖面形状、抗震设防烈度等信息。 (3)项目编制报告或审核报告,需有明确的材价取定期和工程概况说明。(4)算量文件,例如广联达GGJ,GCL,GTJ2018等。主要进行深度的指标加工:如柱墙梁板的钢混比,主楼混凝土单方含量、裙楼混凝土单方含量、地下室车库钢筋单方含量,地下室主楼钢筋单方含量等(非必备资料)。 1、项目的计价源文件格式要求: (1)合格的工程项目结构(需按国标标准,具有清晰的单项单位标准层级结构)。 ●项目的单项工程及每个单位工程应单独建立。 ●房屋建筑工程中地下室部分应单独作为一个单项工程,地下室的建筑工程、 装饰工程、强电工程、给排水工程等安装工程均应包含在在地下室单项中。 ●市政工程中的每一个道路工程、桥梁工程、隧道工程、涵洞工程等都应作为 单独的单项工程并有建筑规模,对应的单位工程也应随单项均应划分。 例如房建: 单项工程和单位工程设置标准 房屋建筑工程的地上、地下及总平工程应分别拆分成不同的单项工程。

双通道同步数据采集系统的设计与实现

双通道同步数据采集系统的设计与实现 作者:徐灵飞, 李健, Xu Lingfei, Li Jian 作者单位:成都理工大学工程技术学院,四川,乐山,614007 刊名: 自动化仪表 英文刊名:PROCESS AUTOMATION INSTRUMENTATION 年,卷(期):2011,32(1) 参考文献(14条) 1.周立功ARM嵌入式系统基础教程 2005 2.项志遴.俞昌旋高温等离子体诊断技术 1982 3.渠海青;孙艳萍;朱正伟数字示波表中超高速数据采集系统的设计[期刊论文]-自动化仪表 2009(11) 4.李亚磊.邓新绿.俆军.丁万昱高信噪比Langmuir探针系统 2006(4) 5.曹军军;陈小勤;吴超基于USB2.0的数据采集卡的设计与实现[期刊论文]-仪器仪表用户 2006(01) 6.黄新财.佃松宜.汪道辉基于FPGA的高速连续数据采集系统的设计 2005(2) 7.张健;刘光斌多通道测试数据采集处理系统的设计与实现[期刊论文]-计算机测量与控制 2005(10) 8.张健.刘光斌多通道测试数据采集处理系统的设计与实现 2005(10) 9.黄新财;佃松宜;汪道辉基于FPGA的高速连续数据采集系统的设计[期刊论文]-微计算机信息 2005(02) 10.曹军军.陈小勤.吴超.何正友基于USB2.0的数据采集卡的设计与实现 2006(1) 11.李亚磊;邓新绿;徐军高信噪比Langmuir探针系统[期刊论文]-核聚变与等离子体物理 2006(04) 12.渠海青.孙艳萍.朱正伟数字示波表中超高速数据采集系统的设计 2009(11) 13.项志遴;俞昌旋高温等离子体诊断技术 1982 14.周立功ARM嵌入式系统基础教程 2005 本文链接:https://www.360docs.net/doc/2117331969.html,/Periodical_zdhyb201101021.aspx

用C#一步步写串口通信分析解析

我们来看具体的实现步骤。 公司要求实现以下几个功能: 1):实现两台计算机之前的串口通信,以16进制形式和字符串两种形式传送和接收。 2):根据需要设置串口通信的必要参数。 3):定时发送数据。 4):保存串口设置。 看着好像挺复杂,其实都是纸老虎,一戳就破,前提是你敢去戳。我尽量讲的详细一些,争取说到每个知识点。 在编写程序前,需要将你要测试的COM口短接,就是收发信息都在本地计算机,短接的方式是将COM口的2、3号针接起来。COM 口各针的具体作用,度娘是这么说的:COM口。记住2、3针连接一定要连接牢固,我就是因为接触不良,导致本身就不通,白白花掉了一大半天时间调试代码。 下面给出主要的操作界面,如下:

顺便,我将所有控件对应的代码名字也附上了,相信对初学者来说,再看下面的代码会轻松很多。控件名字命名的方法是“控件名+作用”的形式,例如“打开串口”的开关按钮,其名字是btnSwitch (btn就是button的简写了)。我认为这种命名控件的方式比较好,建议大家使用,如果你有好的命名方式,希望你能告诉我! 下面我们将各个功能按照从主到次的顺序逐个实现。(我分块给出代码实现,详细代码见链接:《C#串口通信工具》)

一、获取计算机的COM口总个数,将它们列为控件cbSerial的候选项,并将第一个设为cbSerial的默认选项。 这部分是在窗体加载时完成的。请看代码: (很多信息代码的注释里讲的很清楚,我就不赘述了。) [csharp]view plaincopyprint? 1.//检查是否含有串口 2. string[] str = SerialPort.GetPortNames(); 3. if (str == null) 4. { 5. MessageBox.Show("本机没有串口!", "Error"); 6. return; 7. } 8. 9. //添加串口项目 10. foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) 11. {//获取有多少个COM口 12. cbSerial.Items.Add(s); 13. } 14. 15. //串口设置默认选择项

野外数据采集与巡护信息系统

5.5.1.2 野外数据采集与巡护信息系统 5.5.1.2.1 需求分析 野外考察是获取数据资源的重要方法之一,它是保护自然保护区物种免受 人为破坏和开展大熊猫等物种的生态生物学研究的基础。卧龙及周边其它大熊 猫自然保护区每年都需要开展定期和不定期的野外调查,以获取物种分布和人 为干扰等数据。自然保护区的野外调查分为野外监测和野外巡护,获取的数据 包括动物生境信息、大熊猫粪便咬节、样线调查、竹子样方和植被样方等。 目前,卧龙以及其它大熊猫自然保护区的野外调查数据获取方式是科研人 员提前准备好一定格式的纸质报表,在野外考察过程中手写录入。待回到办公 室后,再将获取的数据录入计算机系统。这种方法的缺点:(1)需要录入两次,效率较低,而且容易出错;(2)实时性差;(3)格式不规范;(4)无法集成采集多信息源(文本、图片、音频、视频等);(5)纸质材料在野外环境下容易破损和丢失,不便保存,也影响到数据的有效长期保存。另外在卧龙保护区 的保护和科研工作中,都要进行野外巡护,通常来说工作人员都是携带相关的 设备去野外进行调研,然后记录下这次野外巡护过程中经过的地点,在这些地 点拍的照片或者记录的信息,作为这次巡护过程的信息保存下来。目前这种记 录过程都是靠人工完成,而且无法把巡护的路径和照片等信息进行自动集成整合,实现野外巡护多源信息的自动化集成和保存。所以需要一套野外观测数据 的自动化采集与巡护信息系统。 5.5.1.2.2 标准规范 《全球定位系统(GPS)测量规范(GBT18314-2001)》 《全球定位系统城市测量技术规程(CJJ 73-97)》

《国家三角测量规范(GB/T 17942-2000)》 《数字地形图系列和基本要求(GB/T 18315-2001)》 《数字测绘产品质量要求第1 部分(GB/T 1794.1-2000)》 《软件工程术语(GB/T 11457)》 《计算机软件开发规范(GB 8566)》 《计算机软件产品开发文件编制指南(GB 8567)》 《计算机软件质量保证计划规范(GB/T 12504)》 《计算机软件配置管理计划规范(GB/T 12505)》 《软件配置管理计划(CADCSC)》 5.5.1.2.3 建设方案 野外数据采集与巡护信息系统主要是根据自然保护区科研人员野外监测和巡护的需求,能够动态定制数据采集信息,在野外考察过程中通过携带的移动 设备实现数据的数字化采集,并能够将采集到的科学数据通过网络或者存储卡自动导入后台数据库系统中。同时实现巡护路径和巡护信息获取与保存、无缝集成和可视化展现,实现保护区巡护信息的有效管理,为巡护工作提供参考,更好的促进保护工作。该系统应主要实现如下功能: (1)野外数据采集: 1)基础数据维护:维护野外采集点的信息。 2)采集任务管理:生成采集任务,并将其发送到采集终端上。 3)采集数据管理及分析:接受采集到的信息,并根据业务需要进行分析和管理。 4)身份认证:完成野外作业人员的身份认证管理。保证调查结果真实有效。

基于PDA的地下管线数据采集系统

基于PDA的地下管线数据采集系统 1、管线普查现状存在的主要问题 1)目前管线普查所采用的基本流程图(图1) 2)管线普查中目前存在的主要问题 (1)手工纸质记录维护难度大、查找困难: 由于纸质记录的局限性,当数据量增大时,对图纸记录维护和查询将变得越来越来困难,如果作业小组的草图没有及时的建立成内业数据库,则重号、错连、漏入等人为出错几率会直线增加。 (2)由外业管线探测到内业建立数据库,中间环节多,出错几率大:现有的管线普查流程可以看出,由外业管线探测到内业建立数据库,白天外业采集作业,晚上内业加班录入数据,现在还有的做法是同一管线属性(如埋深、管径数值型属性)事先记录在草图上,再由草图抄写管线探测手簿,然后根据管线探测手簿由内业人员建立成管线数据库,管线属性和连接关系至少经过两到三道工序才能建立到数据库中,在不同人员,不同工序的影响下,加大了的数据出错的几率。 (3)填写管线探测手簿与内业建库加大了内业处理工作量: 由于管线外业探测的不确定性,同一管线属性可能会多次进行修改,此过程在整个管线普查的过程持续存在。因此对每一项管线属性的修改必须同时修改草图、数据库、管线探测手簿,特别是对管线探测手簿的填写,平均必须抄写两遍以上或更多,加大了内业处理工作量。 (4)项目部无法对作业进度和各物探小组的作业情况进行全面跟踪掌握:对于纸质记录的外业管线探测手簿,如果没有及时进行整理或内业没有及时录入到数据库中,则项目部无法对实际已经完成的物探外业工作量进行情细的统计与查询,也无法对各物探小组每天的工作情况进行细致全面的进行跟踪了解。 2、系统总体介绍 1)为什么要采用PDA方式进行数据采集

关于数据采集技术的内容

关键词:声卡数据采集MATLAB 信号处理 论文摘要:利用数据采集卡构建的数据采集系统一般价格昂贵且难以与实际需求完全匹配。声卡作为数据采集卡具有价格低廉、开发容易和系统灵活等优点。本文详细介绍了系统的开发背景,软件结构和特点,系统地分析了数据采集硬件和软件设计技术,在此基础上以声卡为数据采集卡,以MATLAB为开发平台设计了数据采集与分析系统。 本文介绍了MATLAB及其数据采集工具箱, 利用声卡的A/ D、D/ A 技术和MATLAB 的方便编程及可视化功能,提出了一种基于声卡的数据采集与分析方案,该方案具有实现简单、性价比和灵活度高的优点。用MATLAB 语言编制了相应软件,实现了该系统。该软件有着简洁的人机交互工作界面,操作方便,并且可以根据用户的需求进行功能扩充。最后给出了应用该系统采集数据的应用实例。 1绪论 1.1 课题背景 数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据采集,又称数据获取,就是将系统需要管理的所有对象的原始数据收集、归类、整理、录入到系统当中去。数据采集是机管理系统使用前的一个数据初始化过程。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。 数据采集(Data Acquisition)是将被测对象(外部世界、现场)的各种参量(可以是物理量,也可以是化学量、生物量等)通过各种传感元件作

适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储记录的过程。 被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,都以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,包括对连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量数据。 在智能仪器、信号处理以及自动控制等领域,都存在着数据的测量与控制问题,常常需要对外部的温度、压力、流量、位移等模拟量进行采集。数据采集技术是一种流行且实用的技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展态势。 数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

C语言串口通信助手代码

该程序全部由C写成没有C++ 更没用MFC 完全是自娱自乐给需要的人一个参考 #include "stdafx.h" #include #include "resource.h" #include "MainDlg.h" #include #include #include HANDLE hComm;//用于获取串口打开函数的返回值(句柄或错误值)OVERLAPPED m_ov; COMSTAT comstat; DWORD m_dwCommEvents;

TCHAR cRecs[200],cSends[100]; //接收字符串发送字符串 char j=0,*cCom; //接收用统计数据大小变量端口选择 BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } /*系统初始化函数*/ BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndCombo1=GetDlgItem(hwnd,IDC_COMBO1); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM1")); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM2"));

工业实时数据库功能及案例介绍

工业实时数据库KingHistorian功能及案例 北京亚控科技发展有限公司

目录 一.工业库KingHistorian主要特性 (3) 1. 性能参数及对比 (3) 2. 变量数值与时间戳的高分辨率 (4) 3. 更加丰富的数据类型 (4) 4. 高效的数据压缩算法 (4) 5. 强大的计算引擎 (4) 6. 事务、复制、DML命令和版本跟踪 (4) 7. 功能强大可视化的管理和数据分析工具 (5) 8. 支持多个节点同时运行各种接口类型的数据源 (5) 9. 开放的数据访问接口 (5) 10. 开放的变成借口和开发工具包 (6) 11. 全面的本地化(国际化)语言支持和时区 (6) 12. 良好的安全性,提供严格的用户认证、权限管理和审计手段 (6) 13. 高可用性、高容错性(健壮性)和高可靠性,支持双机冗余配置 (6) 14. 良好的集成能力、伸缩性和可扩展性 (6) 15. 分布式客户机/服务器体系结构,跨越所有支持TCP/IP的网络 (6) 二.案例介绍 (6) 1. 煤矿企业综合自动化系统 (7) 2. 台湾中港泵站监控系统 (10) 3. 上海白龙港污水处理长污水处理系统 (14) 4. 奉贤排水运营中心远程监控系统 (15) 5. 三一重工实时数据库项目 (18) 6. 浙江盾安人工环境客户服务系统 (20) 7. 上海青草沙水原地工程5号沟部分 (23)

工业库KingHistorian主要特性 1)性能参数及对比?: 存储速度:每秒可存储(插入)超过300,000个输入值; 检索速度:单点检索每秒查询多达100,000条记录;并发检索每秒查询多达20,000条记录; 数据点数:单台服务器可最多存储1,000,000个数据点的历史数据; 数据容量:可以保存长达数月甚至数年的历史数据保存和归档,最长保存10年历史数据,数据文件占有的磁盘空间可高达几十TB; 并发客户:支持最多256个并发客户同时存储和检索实时及历史数据; 三一集团测试项目:测试数据60万点,数据量240亿条记录(客户半年的真实数据3万多点,207万条关系记录进行数据迁移,复制20份)。 ?数据迁移过程迅速、稳定,迁移数据完全正确,单采集器平均插入速度为158,736条/s,,工业 库平均插入速度为3,046,220条/s。 ?测试数据查询5万条记录,2秒以内完成;30万条记录,5秒以内完成;200万条记录,14秒 完成,1900万条记录,240秒完成。 ?并发测试300-500客户端,测试插入、查询,性能稳定。 与PI性能的对比: 2)变量数值与时间戳的高分辨率?: 时间戳分辨率:毫秒 整型变量:64位 模拟变量:双精度(64位) 3)更加丰富的数据类型?:

数据采集系统

湖南工业大学科技学院 毕业设计(论文)开题报告 (2012届) 教学部:机电信息工程教学部 专业:电子信息工程 学生姓名:肖红杰 班级: 0801 学号 0812140106 指导教师姓名:杨韬仪职称讲师 2011年12 月10 日

题目:基于单片机的数据采集系统的控制器设计 1.结合课题任务情况,查阅文献资料,撰写1500~2000字左右的文献综述。 近年来,数据采集及其应用技术受到人们越来越广泛的关注,数据采集系统在各行各业也迅速的得到应用。如在冶金、化工、医学、和电器性能测试等许多场合需要同时对多通道的模拟信号进行采集、预处理、暂存和向上位机传送、再由上位机进行数据分析和处理,信号波形显示、自动报表生成等处理,这些都需要数据采集系统来完成。但很多数据采集系统存在功能单一、采集通道少、采集速率低、操作复杂、并且对操作环境要求高等问题。人们需要一种应用范围广、性价比高的数据采集系统,基于单片机的数据采集系统具有实现处理功能强大、处理速度快、显示直观,性价比高、应用广泛等特点,可广泛应用于工业控制、仪器、仪表、机电一体化,智能家居等诸多领域。总之,无论在那个应用领域中,数据采集与处理越及时,工作效率就超高,取得的经济效益就越大。 数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。 数据采集系统的市场需求量大,特别是随着技术的发展,可用数据器为核心构成一个小系统,而目前国内生产的主要是数据采集卡,存在无显示功能、无记忆存储功能等问题,其应用有很大的局限性,所以开发高性能的,具有存储功能的数据采集产品具有很大的市场前景。 随着电子技术的迅速发展,,一些高性能的电子芯片不断推出,为我们进行电子系统设计提供的更多的选择和更多的方便,单片机具有体积小、低功耗、使用方便、处理精度高、性价比高等优点,这些都使得越来越广泛的选用单片机作为数据采集系统的核心处理器。一些高性能的A/D转换芯片的出现也为数据采集系统的设计提供了更多的方便,无论是采集精度还是采样速度都比以前有了较大的提高。其中一些知名的大公司如MAXIM公司、TI公司、ADI公司都有推出性能比效突出的 A/D转换芯片,这些芯片普通具有低功耗、小尺寸的特点,有些芯片还具有多通道的同步转换功能。这些芯片的出现,不仅因为芯片价格便宜,能够降低系统设计的成本,而且可以取代以前繁琐的设计方法,提高系统的集成度。 数据采集器是目前工业控制中应用较多的一类产品,数据采集器的研制已经相当成熟,而且数据采集器的各类不断增多,性能越来越好,功能也越来越强大。 在国外,数据采集器已发展的相当成熟,无论是在工业领域,还是在生活中的应用,比如美国FLUKE公司的262XA系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,它既可单独使用又可和计算机连接使用,它具有多种测量

VC与c51串口通讯程序

跟着步骤学习 1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest 2.在项目中插入MSComm控件选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了), 这时在ClassView视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw 文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标 将此图标拖到对话框中,程序运行后,这个图标是看不到的。 3.利用ClassWizard定义CMSComm类控制对象打开ClassWizard ->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1 添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件中自动 加入了//{{AFX_INCLUDES() #include "mscomm.h" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。 4.在对话框中添加控件向主对话框中添加两个编辑框,一个用于接收显 示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为 IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框中的内 容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑 框的Properties->Styles中把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。 再打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_EDIT_RXDATA 添加CString变量m_strRXData,为IDC_EDIT_TXDATA添加CString变量m_strTXData。说明: m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。 5.添加串口事件消息处理函数OnComm()打开ClassWizard->Message Maps,选择类CSCommTestDlg,选择IDC_MSCOMM1,双击消息OnComm,将弹出的对话框中将函数名改为OnComm,(好记而已)OK。 这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数中加入如下代码: void CSCommTestDlg::OnComm() { // TODO: Add your control notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed. CString strtemp; if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符 { ////////以下你可以根据自己的通信协议加入处理代码 variant_inp=m_ctrlComm.GetInput(); //读缓冲区 safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量 len=safearray_inp.GetOneDimSize(); //得到有效数据长度 for(k=0;k

野外数据采集方法

野外数据采集方法 野外数据采集包括两个阶段:控制测量、碎部点采集。控制测量的方法与传统的测图中的控制测量基本相似,但以导线测量为主的方式测定控制点位置。碎部点数据采集与传统的作业方法有较大的差别。这里主要介绍采用全站仪进行碎部点数据采集的两种方法。 一、测记法数据采集 碎部点的数据采集每作业组一般需要仪器观测员1人、绘草图领尺(镜)员1人、立尺(镜)员1~2人,其中绘草图领尺员是作业组的核心、指挥者。作业组的仪器配备:全站仪1台、电子手簿1台、通讯电缆1根、对讲机1副、单杆棱镜1~2个,皮尺1把。 数据采集之前,先将作业区的已知点成果输入电子手簿。绘草图领尺员了解测站周围地形、地物分布,并及时勾绘一份含主要地物、地貌的草图(也可在放大的旧图上勾绘),以便观测时标明所测碎部点的位置及点号。仪器观测员在测站点上架好仪器、连接电子手簿,并选定一已知点进行观测以便检查。之后可以进行碎部点的采集工作。采集碎部点时,观测员与立镜员或绘草图员之间要及时联络,以便使电子手簿上记录的点号和草图上标注的点号保持一致。绘草图员必须把所测点的属性标注在草图上,以供内业处理、图形编辑时用。草图的勾绘要遵循清晰、易读、相对位置准确、比例一致的原则。一个测站的所有碎部点测完之后,要找一个已知点重测进行检查。 二、电子平板数据采集 测图时作业人员一般配备:观测员1人、电子平板(便携机)操作员1人、立尺(镜)员1~2人。 进行碎部测图时,在测站点安置全站仪,输入测站信息:测站点号、后视点号及仪器高,然后以极坐标法为主,配合其它碎部点测量方法施测碎部点。例如电子平板测 绘系统中,常用的方法有极坐标法、坐标输入法,它们的数据输入 可以通过通信方式由全站仪直接传送到计算机,也可以采用设计友 好、清晰的图形界面对话框输入,如图6-31。 对于电子平板数字测图系统,数据采集与绘图同步进行,即 测即绘,所显即所测。 图6-31 碎部点测量输入对话框

数据采集系统数据库.

create table treaty_table ( TID INT identity(1,1, Tname varchar(20, F-route varchar(50, period int, filename varchar(50, Type_ID INT, constraint PK_TREATY_TABLE primary key (TID create table type_table ( Type_ID INT identity(1,1, typename varchar(20, bourse varchar(40, constraint PK_TYPE_TABLE primary key (Type_ID ; create table CY_table ( CY_ID INT identity(1,1, MF varchar(20, pt datetime, Type_ID INT, constraint PK_CY_TABLE primary key (CY_ID ; create table Time_table ( Time_ID INT identity(1,1, DATE DATETIME, constraint PK_TIME_TABLE primary key (Time_ID ; create table K_table ( Root_ID INT identity(1,1, Type_ID INT, period INT, date datetime, rootnum INT, constraint PK_K_TABLE primary key (Root_ID ; create table Min1_table ( Min1_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min1_ID ; create table Min5_table ( Min5_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min5_ID ; create table Min15_table ( Min15_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min15_ID ; create table Min30_table ( Min30_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min30_ID ; create table Hour1_table ( H our1_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Hour1_ID ; create table Hour4_table ( Hour4_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Hour4_ID ; create table Day_table ( Day_ID INT identity(1,1, treaty_name

C语言串口通信-源代码

#include #include #include #include #define COM232 0x2f8 #define COMINT 0x0b #define MaxBufLen 500 #define Port8259 0x20 #define EofInt 0x20 static int comportaddr; static char intvectnum; static unsigned char maskb; static unsigned char Buffer[MaxBufLen]; static int CharsInBuf,CircIn,CircOut; static void (interrupt far *OldAsyncInt)(); static void interrupt far AsyncInt(void); void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity) { unsigned char High,Low; int f; comportaddr=ComPortAddr; intvectnum=IntVectNum; CharsInBuf=0;CircIn=0;CircOut=0; f=(Baud/100); f=1152/f; High=f/256; Low=f-High*256; outp(ComPortAddr+3,0x80); outp(ComPortAddr,Low); outp(ComPortAddr+1,High); Data=(Data-5)|((Stop-1)*4); if(Parity==2) Data=Data|0x18; else if(Parity==1) Data=Data|0x8; outp(ComPortAddr+3,Data);

基于STM及的通道同步数据采集系统设计

基于S T M及的通道同步数据采集系统设计 文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

基于STM32及AD7606的16通道同步数据采集系统设计 摘要: 介绍了基于STM32及AD7606的同步数据采集系统的软硬件设计。主控芯片采用基于ARMCortex-M4内核的STM32F407IGT6,实现对AD采集数据的实时计算并通过以太网络进行数据传输。A7606为16位、8通道同步采样模数数据采集系统[],利用两片AD7606,可以实现对16路通道的实时同步采样。经过测试,该系统可以实现较高精度的实时数据采集。 0引言 [此处找书介绍STM32],该芯片主频可达168MHz,具有丰富的片内外设,并且与前代相比增加了浮点运算单元(FloatingPointUnit,FPU),使其可以满足数据采集系统中的 [介绍AD7606] 1系统总体方案设计 整个系统由传感器模块、信号调理模块、数据采集模块、处理器STM32、及通信模块及上位机系统组成。系统整体结构框图如图1所示。本系统是为液态金属电池性能测试设计,需要测量电池的充放电电压、电流以及交流加热系统的电压、电流,并以此计算出整个液态金属电池储能系统的效率。因此两片AD7606的16个通道分为两组,每组8个通道,这两组分别测量4路直流、交流的电压和电流信号。AD7606通过并行接口与STM32连接,STM32读取AD采样数据后进行计算,并将数据通过网络芯片DP83848通过UDP协议发送给上位机。上位机负责显示各通道采集信息、绘制波形以及保存数据等。 图1系统整体结构框图 2系统硬件设计 2.1模拟信号采集电路设计

串口通信

一. 实验目的及实验环境 <1>实验环境 Java eclipse下 <2>实验目的 了解串行通信的背景知识后,通过三线制制作一条串口通信线(PC-PC),并编程实现两台PC间通过RS-232C通信。要求两台PC机能进行实时的字符通信,并了解工业自动化控制中的基本通信方式。 二.实验内容 1、检查PC是否具有串行通信接口,并按其针脚类准备一条串口通信线缆。 2、串口包的安装,下载javacomm20-win32.zip并解压,将win32com.dll复制到\bin目录下;将comm.jar复制到\lib;把https://www.360docs.net/doc/2117331969.html,m.properties 也同样拷贝到\lib目录下,再将上面提到的文件放到JRE相应的目录下就可以了。 三、方案设计 1、将实验所需RS-232缆线准备好,并将JAVA串口包复制到相应地目录下。 2、查找有关串口通信的书籍以及在网上查找相应地串口通信代码。 3、用JAVA编程软件JCreator编写代码。 四.测试数据及运行结果 图一主界面

图二发送消息 图三接收消息 五.总结 1、实验过程中遇到的问题及解决办法; 串口包的安装配置比较难完成,最后在网上看各种博客和论坛,才将问题解决。还有一些代码问题,最后找同学调试好了。 2、对设计及调试过程的心得体会。 通过本次串口实验,我对串口通信的知识了解的更透彻,这是在刚开始对串口通信知识不了解的情况下就编程而造成许多错误之后才得到的结果。在网上查找资料的时候也接触到了不少其他的编程语言例如VB,delphi,C#等,这也让我对这些从没有学过的语言有所了解,我想这些知识对以后的实验工作都有帮助。我也进一步发现了自己动手能力和自学能力都得到很多的进步,同时也对串口的发送与接收信息有了进一步的了解。 六.附录:源代码

组态王通过数据库实现数据的采集与输出

组态王通过数据库实现数据的采集与输出 The Standardization Office was revised on the afternoon of December 13, 2020

组态王通过数据库实现数据的采集与输出 作者:蒋妤媜 版本:.1 前提: ?数据库用Microsoft Office Access 2003,数据库路径为D:\历史记录.mdb ?组态王版本为 ?PC机系统为XP 一、创建数据库表 1. 新建名为“历史记录”的数据库,新建完成后,打开数据库 2. 创建表,点击使用设计器创建表,进入设计视图对话框,输入字段名 日期时间、毫秒、污泥浓度、溶氧仪、进水COD、电磁流量计、超声波流量计、二在线COD,其中字段名日期时间的数据类型为日期/时间、毫秒的数据类型为数字长整型、其他字段名数据类型为数字单精度型。 3. 保存名为:10分钟记录 二、创建ODBC

打开控制面板→管理工具→数据源(ODBC),弹出“ODBC数据管理器”,在用户DSN标签下,点击添加 弹出“创建数据库源” 选择此创建数据库源完成后弹出“ODBC Access 安装”

输入数 选择之前 确定完成。 三、组态王内部设置 1. 新建变量 在数据词典中创建本地变量,,变量名称分别为日期时间、DeviceID、nReturnValue。

2. 打开到组态王工程浏览器,新建记录体 创建名为“历史记录”的记录体 3. 创建事件命令语言 点击创建,弹出事件命令语言对话框 事件描述为:(((\\本站点\$分)%10==0)&&((\\本站点\$秒-1)%60==0))==1 输入记 字段名称要与数据库中 添加数据词典 显示已增

实时数据库之数据采集及全球DCS索引

实时数据库之数据采集及全球DCS索引 实时数据库(RTDB-Real Time DataBase)是数据库系统发展的一个分支,是数据库技术结合实时处理技术产生的。实时数据库系统是开发实时控制系统、数据采集系统、CIMS 系统等的支撑软件。在流程行业中,大量使用实时数据库系统进行控制系统监控,系统先进控制和优化控制,并为企业的生产管理和调度、数据分析、决策支持及远程在线浏览提供实时数据服务和多种数据管理功能。实时数据库已经成为企业信息化的基础数据平台。 实时数据库的一个重要特性就是实时性,包括数据实时性和事务实时性。数据实时性是现场IO数据的更新周期,作为实时数据库,不能不考虑数据实时性。一般数据的实时性主要受现场设备的制约,特别是对于一些比较老的系统而言,情况更是这样。事务实时性是指数据库对其事务处理的速度。它可以是事件触发方式或定时触发方式。事件触发是该事件一旦发生可以立刻获得调度,这类事件可以得到立即处理,但是比较消耗系统资源;而定时触发是在一定时间范围内获得调度权。作为一个完整的实时数据库,从系统的稳定性和实时性而言,必须同时提供两种调度方式。 针对不同行业不同类型的企业,实时数据库的数据来源方式也各不相同。总的来说数据的主要来源有DCS控制系统、由组态软件+PLC建立的控制系统、数据采集系统(SCADA)、关系数据库系统、直接连接硬件设备和通过人机界面人工录入的数据。根据采集的方式方法可以分为:支持OPC协议的标准OPC方式、支持DDE协议的标准DDE通讯方式、支持MODBUS 协议的标准MODBUS通信方式、通过ODBC协议的ODBC通信方式、通过API编写的专有通信方式、通过编写设备的专有协议驱动方式等等。 由于实时数据库主要是为大型企业服务的,大部分情况是采集DCS系统的数据,到目前为止全球主要的DCS系统列表如下: 序号 DCS类型生产厂家 1 S9000 HONEYWELL 2 TDC3000 - CM50 HONEYWELL US HONEYWELL 3 TDC3000 – 4 TDC3000X - UxS HONEYWELL 5 TDC3000X - AxM HONEYWELL 6 TDC2000 HONEYWELL 7 R150 HONEYWELL 8 PlantScape HONEYWELL 9 TPS - GUS HONEYWELL APP HONEYWELL - 10 TPS 11 UMC800 HONEYWELL Hc900 HONEYWELL 12 Plant Vista 13 PKS HONEYWELL 14 STARDOM横河(YOKOGAWA) 15 CENTUM B 横河(YOKOGAWA) V 横河(YOKOGAWA) 16 CENTUM 17 CENTUM uXL 横河(YOKOGAWA) XL 横河(YOKOGAWA) 18 CENTUM

相关文档
最新文档