碧波液压网 欢迎你,游客。 登录 注册

微机与8142数字仪表的串口通信

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  1989年我公司引进了一台静态轨道衡称量系统,该系统软件是采用BASIC语言编制的,是在DOS环境下运行的。该系统软件使用日期截止到1999年12月31日,存在着2000年问题,随着Windows98的日益普及,在Windows98下开发应用软件已成必然趋势,为此,我们在Windows98的环境下成功地开发了微机静态轨道衡称量系统。在编制称量程序中,利用Visual Foxpro 6.0所提供的通信控件编制了串行通信程序,实现了微机实时显示所接收的数字仪表数据,并与数字仪表显示保持同步,系统工作原理如图1。

  一般用Visual Foxpro 6.0开发串行通信程序有两种方法,一种是利用Windows的通信API函数;另一种是采用Visual Foxpro 6.0通信控件Mscomm来实现。由于利用Windows的通信API函数编写较为复杂,不但要了解许多复杂的API函数,而且需要掌握大量的通信知识,在此不作介绍。

  1 Visual Foxpro 6.0通信控件Mscomm的简介

  Mscomm控件提供了功能完善的串口数据的接收和发送功能,具有一系列标准通信属性和方法, Mscomm控件具有两种处理方式:

  (1)事件驱动方式:由Mscomm控件的OnComm事件捕获并处理通信错误及事件。

  (2)查询方式:通过检查CommEvent属性的值来判断事件和错误。对于Visual Foxpro 6.0程序开发者只需知道Mscomm控件的属性和事件的用法即可以实现串口的操作。

  1.1 与程序设计有关的Mscomm控件属性

  (1) CommPort:设置或返回串行端口号,其取值范围为1~16,缺省为1。格式为Mscomm.Comm=Port-Number。

  (2) Setting设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。格式为: Mscomm.Setting=ParaString。

  (3) PortOpen:打开或关闭串行端口,格式为:Mscomm.PortOpen= {TRUE|FALSE}。

  (4) InBufferSize:设置或返回接收缓冲区的大小,缺省为1024字节。

  (5) InBufferCount:返回接收缓冲区内的等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。

  (6) RThreshold:该属性为一阈值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件。

  (7) InputLen:设置或返回接收缓冲区内用Input读

  入的个数。若取0,则Input读取整个缓冲区的内容。

  (8) Input:该属性表示从接收缓冲区移走一串字符。

  (9) OutBufferSize:设置或返回发送缓冲区,缺省为512字节。

  (10) OutBufferCount:返回发送缓冲区内等待发送的字符数,可用来清空缓冲区。

  (11) Output:向发送缓冲区传送一字符串。

  (12) EOFEnable:若置TRUE,则当输入中出现EOF,就停止输入并产生OnComm事件。

  1.2 Mscomm控件的OnComm事件

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论