基于VC++的制瓶机微机控制系统的串口通信

[09-12 18:28:48]   来源:http://www.88dzw.com  EDA/PLD   阅读:8953

文章摘要:dcb.Parity=NOPARITY;//无校验dcb.StopBits=ONESTOPBIT;//一个停止位3.2 存取串口命令数据当上位机与PIC24FJ64GA单片机通过一系列应答联络后,单片机将开始向上位机发送存在EEPROM中的数据,从而将按照设定的协议组成的每帧11个字节由上位机一帧一帧地接收,并按字段存人数据库的相应表中,直到数据通信结束。在数据传输过程中,可通过一个循环结构并以查询方式从串口读取数据。为了避免因线路不通或通信过程中断而造成死机,程序中可加入自动退出机制,即在1秒钟之内没收到数据,程序自动提示没有接到数据。在设定好数据库db.mdb后,可由ADO访问数据库来进

基于VC++的制瓶机微机控制系统的串口通信,标签:eda技术,eda技术实用教程,http://www.88dzw.com
  dcb.Parity=NOPARITY;//无校验

  dcb.StopBits=ONESTOPBIT;//一个停止位

  3.2  存取串口命令数据

  当上位机与PIC24FJ64GA单片机通过一系列应答联络后,单片机将开始向上位机发送存在EEPROM中的数据,从而将按照设定的协议组成的每帧11个字节由上位机一帧一帧地接收,并按字段存人数据库的相应表中,直到数据通信结束。在数据传输过程中,可通过一个循环结构并以查询方式从串口读取数据。为了避免因线路不通或通信过程中断而造成死机,程序中可加入自动退出机制,即在1秒钟之内没收到数据,程序自动提示没有接到数据。在设定好数据库db.mdb后,可由ADO访问数据库来进行串口数据的存取。具体步骤如下:

  (1)在窗体类中引用串口类

  在窗体类中引用串口类时,如果本窗体类是第一次引用,则定义CcomPort Obj_Commpon;如果在其它的窗口类已经定义过,则定义为extern CCommPort obj_Commport。调用串口类的函数可进行串口的初始化。

  (2)发送控制命令给下位机

  按照通讯协议发送控制命令给下位机,可告知下位机要跟上位机传送数据。下位机收到上位机的控制命令数据后,先进行校验,以检测上位机的命令是否正确。如果接到的数据是正确的。则返回正确的电磁阀开闭值;如果不正确,下位机则返回控制命令给上位机,告知上位机发送的数据不正确,此后上位机会再次发送控制命令给下位机,如果仍然不正确,则提示通讯出错,退出本次通信,然后再发送下一个命令。

  (3)打开数据库并进行数据存取

  首先打开数据库的连接。若m_pConnection在程序初始化中已经打开,则可在窗体类中直接调用,然后进行数据的存储。代码如下:


  保存数据后,上位机再发控制命令给下位机,并开始接收下一条下位机传递过来的数据。上位机给下位机发送数据的过程与下位机给上位机发送数据的过程和步骤一样。退出程序时,关闭串口即可。

  4结束语

  串行通信具有实现简单、使用灵活方便、数据传输可靠等优点,因而在工业监控、数据采集和实时控制系统中得到了广泛应用。本文讲述在制瓶机控制系统中,在VC++环境下利用windows-API函数的串口编程技术和ADO数据库编程技术来实现和控制PIC单片机,以进行数据采集的具体方法。该方法同时会对通讯出错或通讯堵塞现象进行处理。实践证明,该方法可提高定时的精确性,从而提高产品的质量和产量。(苏义鑫,苏明霞,张清勇 武汉理工大学自动化学院)


上一页  [1] [2] [3] 


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD
分类导航
最新更新
热门排行