基于VC++的制瓶机微机控制系统的串口通信
引言
制瓶机微机控制系统的基本功能是控制制瓶机的各个机械动作,使其按照设定程序进行工作。为了实现主机与下位机之间的控制操作和数据管理,需要通过串口连接具有数据采集和自动控制功能的下位机,然后由操作员通过操作上位机管理软件将操作命令传递给下位机来完成各种控制和管理工作,因此,串口通信技术是制瓶机微机控制系统开发的关键技术之一。
在VC环境下的制瓶机微机控制系统中,对于PC上位机的通信程序来说,其串口通信编程方法主要有三种:使用VC++提供的MSComm控件实现串口通信、基于某个串口通信C++类、基于API的串口通信。对于简单的串行口操作来说,前两种实现起来相对容易,使用也较方便、控制简单。但是,对于较为复杂的串行口操作,它则不够灵活。而基于API的串口编程方法则功能强大,控制手段更为自由灵活,可以编写出高效、功能强大的通信程序。对下位机来说,由于存储量有限,如果要存储大量数据必定会产生丢失现象,而将数据存储到上位机的数据库中,则可以弥补这个问题。因为VC++提供了多种数据库访问技术,例如ODBC、OLEDB、ADO等,其中ADO技术是基于OLEDB的访问接口,它继承了OLEDB技术的优点,并对OLEDB的接口作了封装,且定义了ADO对象,故可使程序开发得到简化,且基于ADO技术的应用程序可以通过一致的接口来访问各种各样的数据,同时也有利于程序的移植和扩充。
基于以上分析考虑,笔者重点论述了在VC++下如何使用API函数和ADO数据库编程技术来实现数据的实时采集,同时将数据实时保存到数据库中,从而完成制瓶机微机控制系统的主机与下位机间数据的实时操作与显示的具体方法。
1 利用WindowsAPI函数实现串口通信
在Windows环境下,串口是系统资源的一部分,当数据从CPU经过串行端口发送出去时,字节数据将转换为串行位;在接收数据时,串行的位又将被转换为字节数据。应用程序要使用串口进行通信,就必须在使用之前向操作系统提出资源申请(打开串口),还要设置通讯的串口地址、波特率、奇偶校验、数据位和停止位等相关配置,通信完成后,还必须释放资源(关闭串口)。
1.1打开串口
串口通信程序以调用CreatFile()函数开始,该函数的返回值是一个句柄。可在随后的其它端口操作中使用。一旦端口处于打开状态,就可以自动分配一个发送/接收缓冲区,当然,也可以通过调SetComm()函数来改变发送/接收缓冲区的大小。
1.2配置串口
串口打开成功后。接着应进行串口的初始化,以配置串口的通信参数,如波特率、数据位数、停止位、校验位等。修改这些参数可使用设备控制块DCB(Device Control Block)。DCB是个复杂的结构,有近30个数据成员;但是,对于采用3线方式的串行通信来说,DCB结构中的大部分参数可以不用,只需要设置如波特率、数据位数、停止位、校验位等几个关键的参数就可以正常工作了。同时Windows提供有GetCommState()函数以获取串行接口的当前配置,故可使用SetCommState ()来重新配置串行接口的各个参数。
相关文章
- 2024-04-08水温测量系统设计
- 2024-02-18关于火车轴的超声波探伤
- 2022-12-26基于DSP的谐波控制器的设计
- 2022-12-23浅淡火电厂烟气连续排放监测系统
- 2024-01-19树形存储在热工计量检定管理系统中的应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。