当前位置:网站首页 >> 产品/行业资讯 >>

VC串行通信数据采集系统的设计

1简介串行通信是计算机和其他设备交换数据时经常使用的方法之一。

具有实现简单,使用灵活方便,数据传输可靠的优点。

因此,它广泛用于工业监控,数据采集和实时监控系统。

应用。

高速串行数据采集软件的设计不同于普通的串行通信。

它需要实时存储接收到的数据,同时从数据采集设备接收大量数据。

如果两者之间的关系处理不当,将导致数据丢失甚至程序崩溃。

这要求应用程序能够同时处理两个或多个不同的任务。

Win32是基于线程的抢占式多任务操作系统,使应用程序可以同时执行多个任务,即在一个进程中可以同时运行多个线程。

线程是指程序的执行路径,并且系统不断在多个线程之间切换。

由于时间短,似乎多个线程正在同时运行。

对于通信而言,需要花费大量时间来测试I / O操作,同时维持对应用程序其他用户操作的响应,创建多线程是最佳选择。

2系统结构系统的组成结构如图1所示。

中央控制PC为系统核心要求数据采集软件具有良好的稳定性和兼容性。

因此,独立设计了一套基于Visual C ++ 6.0的多线程通信软件。

这是与前端扫描仪串行端口的典型主从通信。

MOXA公司的串口卡实现了500K波特率的采集。

3使用MSComm控制实现高速串行数据收集的问题。

MSComm控制在串行编程中非常方便。

程序员无需花费时间来了解更复杂的API功能,只需要在串行通信资源(ProperTIes)的属性中配置串行端口即可。

波特率,数据位,停止位,奇偶校验,发送缓冲区大小,接收缓冲区大小和串行通信的超时设置都在这里。

串口配置完成后,可以打开串口进行数据读写。

对于常规数据交换和串行通信,MSComm控件可以完全满足要求。

但是,由于控件自身的接收缓冲区大小设置的限制,因此是高速的。

数据采集软件的设计带来了麻烦。

如果接收缓冲区不能满足设计要求,则当缓冲区中的数据达到消息响应值并响应存储命令时,新收集到的数据的传输速度将大于接收到的数据的存储速度,这将导致接收缓冲区溢出并直接导致系统崩溃。

在程序设计的早期阶段就对此深有理解。

在程序设计中,当缓冲区达到响应消息的阈值时,它还会尝试在消息响应中启动新线程。

,首先将缓冲区中接收到的数据取出到新打开的存储单元中,然后再存储该数据。

该程序可以运行,但是出现了一个新问题,即某些数据帧中的数据丢失了。

分析产生此结果。

数据丢失的原因仍然是由于控制所致。

接收缓冲区的大小受到限制。

4程序设计创新4.1多线程编程思想在32位Windows系统中,术语多任务意味着系统可以同时运行多个进程,并且每个进程也可以同时执行。

多线程。

该进程是应用程序的运行实例。

每个进程都有自己的专用虚拟地址空间,每个进程都有一个主线程,但是可以创建其他线程。

进程中的线程是并行执行的,每个线程占用系统CPU的时间除以系统。

可以被视为分配CPU时间的操作系统的基本实体。

系统会在线程之间不断切换,并且对线程的中断是汇编语言级别。

系统为每个线程分配了一个CPU时间段,并且一个线程仅在分配的时间段内对CPU拥有控制权。

进程中的所有线程共享进程的虚拟地址空间,这意味着所有线程都可以访问进程的全局变量和资源。

一方面,它给编程带来了便利,但另一方面,它也容易引起冲突。

尽管过程中耗时的工作不会导致系统挂起,但会导致过程挂起。

所以,如果公关

欢迎您的咨询