⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vfp下的串口通讯.txt

📁 Vfp 文档 一些经典编程文章 可供初学者学习编程时使用
💻 TXT
字号:
实用技巧 

用VFP解决串行口通讯问题 
[请作者提供详细的邮政地址] 
---- 近来,笔者在工作中解决了一个串行口通讯问题。我公司用一台火车静态秤进行进出货物的检斤计量工作。现在,计划让计量数据在网络上共享,实现计量工作的制度化,规范化,现代化。但是原先现场计算机执行DOS平台应用软件,为实现网络共享带来不便。经过一段时间的实验,找到了用VFP Microsoft Comm 控件来解决串行口读数据这一关键问题的简便方法。首先介绍一下Microsoft Comm 控件。 

---- 一、 Microsoft Comm 控件的简介 

---- 在VFP 5.0 中添加Microsoft Comm 控件到表单中必须要ACTIVE X控件中的通讯控件(MSCOMM32.OCX)。我们首先介绍Microsoft Comm 控件的几个重要属性。 

CommPort   属性:设置与返回通讯端口数
Settings	   属性:设置与返回波特率,奇偶校验位,
          字符串的停止位和数据位
PortOpen	   属性:设置与返回通讯端口的状态,
          并可开放、关闭端口
Input      属性:返回和删除接收缓冲区的字符
Output     属性:写字符串到发送缓冲区
---- 二、实现通讯口读数据 

---- 工业中,用MICROSOFT VFP编写串行口通讯程序与现场二次仪表紧密相连。在编程之前我们必须查阅二次仪表的内部资料,清楚它发送给计算机什么数据,以及数据的具体含义,以便编出适用的程序来。 

---- 本程序涉及的二次仪表是静态秤显示终端。它的主要功能是重量显示及用串行输出接口发送称重数值到COM口接收缓冲区。如果现场用不同的二次仪表,程序的实现将有不同。但程序的流程图基本上是一致的。流程图显示如下(略) 

---- 以下是程序清单,本程序在我厂运行一段时间后,性能一直比较稳定,取数准确。并能在网络上实现数据共享,减少了计量员的工作量,提高了工作效率。 

#define COM2  2
#define CR  13
#define MAXCOUNT  14 
//创建Microsoft Comm 控件对象
comm1=createobject("mscommlib.mscomm.1")
comm1.commport=COM2 //指定COM2口工作
comm1.portopen=.t. //打开COM2口
//设置传输速率,奇偶校验,数据位,停止位
comm1.settings="1200,n,7,1"
indata1="" //变量初始化
//从接收缓冲区读出字符串
do while comm1.inbuffercount<=MAXCOUNT
  comm1.inbuffercount=0 //清缓冲区
  comm1.inputmode=0 //设置字符输入输出方式
  comm1.inputlen=1 //仅输入输出一个字符
  //判断头一个字符是否正确,如不正确循环判断
  do while .t.
    indata=comm1.input
    if asc(indata)=CR
      exit
    endif
  enddo
  //从缓冲区读字符
  indata=comm1.input
  //生成字符串
  indata1=indata1+indata
enddo
//取出符合标准的计量数据
indate=substr(indata1,6,4)+'.'+substr(indata1,11,2)
@1,2 say indata //在VFP主屏幕输出变量
comm1.portopen=.f //关闭串行端口

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -