Delphi实现远程串口的数据采集

摘要:本文介绍了在Windows平台下串口开发的方法,并给出一个使用Delphi设计的远程数据采集的实例。

关键词:远程数据采集 AcitiveX MSComm控件

1 引言

在工业生产实践中,使用PC机对Inprise公司推出的Delphi是一种功能强大的高级编程语言,其具有可视化面向对象的特征,特别适合Windows平台下的图形界面和用户程序的编制。本文就介绍在Windows平台下用Delphi开发串口的方法和使用Delphi设计的一个实现远程串行数据采集的实例。

2 串口工作原理及软件实现方法

串口进行通信的方式有两种:同步通信方式和异步通信方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

在Windows平台下,Win32 API支持同步和异步两种I/O操作。同步操作的方式的程序设计相对比较简单,但是I/O操作函数在I/O操作结束前不能返回,这将挂起调用线程,直到I/O操作结束;异步操作方式要相对复杂一些,但是可以让I/O操作在后台运行,而不会挂起调用线程,这在大数据量通信情况下对改善调用线程的响应速度是相当有效的。同时由于Win9x和WinNT下对串行通信的处理不同,这就导致了在Win9x下开发的同步方式串行通信程序在NT下会发生工作线程之间的协作阻塞,即当读线程在等待WaitCommEvent的时候,写线程不能正常工作,停在那里,整个程序处于瘫痪状态。这个问题是Windows的API函数处理串行通信的一个BUG,所以对于适应性强的程序都是选择异步方式。下面,本文对在Windows平台下对串口进行开发的方法进行介绍:

时间: 2024-10-31 17:03:38

Delphi实现远程串口的数据采集的相关文章

串口 枚举注册表-delphi中spccom串口通讯问题

问题描述 delphi中spccom串口通讯问题 /串口接收数据 //------------------------------------------------------------------------------ procedure TFormMain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); var CRC:Word; pbuf:pchar; idx:integer; begin

远程串口权限

问题描述 向有过串口经验的前辈请教:服务器的COM4接受另一台PC送进串口的数据的同时,通过客户端的浏览器向那个PC返回一条信息.出现以下错误:服务器端:Accesstotheport'COM4'isdenied,COM4都不能open().客户端:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerror

Delphi远程连接Mysql的实现方法_Delphi

本文实例讲述了Delphi远程连接Mysql的实现方法,是Delphi数据库程序设计中非常重要的技巧.分享给大家供大家参考之用.具体方法如下: Delphi 通过ADOConnection链接远程Mysql数据库,要在安装软件的电脑上安装Mysql 驱动,没有的在百度下载,搜索mysql ODBC驱动就出来了 主要的链接代码如下: var srstring:string; srstring:='DRIVER={MySQL ODBC 3.51 Driver};SERVER='+Trim(SERVE

第十八章-Delphi客户服务器应用开发(一)(1)

客户/服务器的开发工作涉及定义客户/服务器的体系结构, 然后再将该结构与其它一些对于客户/服务器的实现至关重要的系统结构和技术集成起来.Delphi 2.0的Client/Sever版支持用户开发客户/服务器结构的应用程序.本章中我们将阐述客户服务器体系结构原理.如何用Delphi构建客户/服务器的环境和Delphi存取远程SQL服务器的编程和注意事项. 18.1 Delphi客户/服务器应用开发原理 18.1.1 客户/服务器体系结构 18.1.1.1 体系结构概述 客户/服务器系统的体系结构

第十三章-Delphi开发数据库应用程序概述(一)(2)

13.2.1 Delphi的数据库特性 跟其他的应用程序一样,Delphi提供了许多部件以方便地创建数据库应用程序.数据库对象的数据成员既可在设计阶段设置,也可在运行阶段通过程序代码进行设置.Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件: 数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表. 数据控制页(Data Control Page)上的部件用来与用户交互,显示.修改数据库中的数据. 数据库应用程序首先是利用Delphi提供的数据库部

串口转TCP/IP实用程序

关键字:SerialPort 转 TCP/IP.串口编成.远程串口调试 我正是从VCKBASE 开始学习VC++ 的,没有他我进步不会如此迅速,一直想给VCKBASE贡献点什么,正好今天有空,就把早些时候写的一个串口转TCP/IP的程序发上来,希望对初学者学习串口编程有点帮助. 程序的最大缺陷: Windows把硬件驱动的接口都进行了抽象和标准化,串口也不例外,大部分的设备都可以通过文件操作API进行存储控制,如:CreateFile.ReadFile.WriteFile等,其实很简单.网上有个

⑱云上场景:施耐德,基于OTS的海量数据存储

世界500强企业之一.全球能效管理专家的施耐德电气自1987年在天津成立第一家合资厂,施耐德电气在中国已走过20余年的历程.多年来,施耐德电气在企业级数据中心全生命周期的江湖地位,牢不可破. 施耐德电气结合阿里云的云服务器.开放结构化数据服务.负载均衡服务,关系型数据库服务,开发施耐德远程能源管理系统(REM), 面向楼宇.厂房.酒店.医院.电信等全球行业客户提供灵活扩展.按需付费的远程海量能源数据采集.存储.分析及咨询服务.  施耐德架构部署图 施耐德REM远程能源管理平台利用阿里云弹性计算的

系统架构-做为一个没有任何编程基础菜鸟,怎样实现数据的采集,监测分析,然后存入数据库?

问题描述 做为一个没有任何编程基础菜鸟,怎样实现数据的采集,监测分析,然后存入数据库? 由于导师想让做一个 旋转机械的振动状态监测与故障诊断系统 出来,做为一个没有任何编程基础的菜鸟,怎样实现数据的采集,监测分析,然后存入数据库? 由于是零基础,请问大家我需要学习哪方面的东西? 导师说 让用C++Builder进行开发,具体需要重点掌握CB里的哪些东西啊?非常感谢! 解决方案 掌握 C++Builder,这个只是工具.如果对其它的开发工具有兴趣,也可以考虑. C++Builder 现在用的人比较

html app 安卓 苹果-如果做一个html页面通过app来访问,怎么样使app的显示能够同时适配在安卓和苹果系统?

问题描述 如果做一个html页面通过app来访问,怎么样使app的显示能够同时适配在安卓和苹果系统? 如果做一个html页面通过app来访问,怎么样使app的显示能够同时适配在安卓和苹果系统? 解决方案 可以使用bootstrap来构建你的web app.它支持响应式布局,是开发现代化web的好框架. 解决方案二: 有没有其他方式呢?我不会bootstrap啊 解决方案三: jquery mobile 可以 解决方案四: <!doctype html> 武当七侠 武当七侠 2015-07-17