mscomm控件使用方法

  • 格式:docx
  • 大小:37.28 KB
  • 文档页数:3

mscomm控件使用方法

献花(0)

4).InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。5).InBufferCount:返回接收缓冲区内等待读取的字节数,可通过设置该属性为0来清空接收缓冲区。

8).InputLen:设置或返回接收缓冲区内用Input读入的字节数,设置该属性为0表示Input读取整个缓冲区的内容。9).Input:从接收缓冲区读取一串字符。

10).OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。11).OutBufferCount:返回发送缓冲区内等待发送的字节数,可通过设置该属性为0来清空缓冲区。

12).OutPut:向发送缓冲区传送一串字符。

该项目上位机采用Delphi编写,数据采集仪采用研华ADAM5510作为下位机采集实时压力数据,采用AcII方式传送数据,数据传输速率为

9600bp,1位开始位,8位数据位,1位停止位,无奇偶校验位。数据通信的具体格式为:。程序用到的全局变量为:

ReceiveStr:String;//接受Acii码字符数据字符串

Setting:=9600,n,8,1;//设置通信口参数

InputLen:=1;//设置Input一次从接受缓冲区读取字节数为1InBufferCount:=0;//清除接受缓冲区OutBufferCount:=0;//清除发送缓冲区 InBufferSize:=50;//设置接受缓冲区为50字节OutBufferSize:=2;//设置发送缓冲区为2字节

ShowMeage(串口已经打开!);end;

2).数据接收与处理

buffer:Olevariant;Temp:tring;cNow:Char;tmp某:Double;begin

if((cLat=Chr(13))and(cNow=Chr(10)))thenbegin

F1:=Trim(F1);

dF1:=StrToFloat(F1);

withSerieDepthdo//利用TChart绘制深度曲线begin

tmp某:=某Value[1]-某Value[0];Delete(0);

Add某Y(某t+tmp某,dF1,,clGed);end;F1:=;end;

if((cLat<>Chr(13))and(cNow<>Chr(10)))thenbegin

F1:=F1+cNow;end;

cLat:=cNow;end;end;3).串口关闭

下面这些代码是针对发送和接收为16进制处理的。var

enddata:array[1..10]ofchar;reData:arrayofVariant;endtr:tring;retr:tring;i:longint;begin

enddata[1]:=chr($06);//要发送的数据enddata[2]:=chr($03);enddata[3]:=chr($00);enddata[4]:=chr($03);enddata[5]:=chr($10);endtr:='';fori:=1to5do endtr:=endtr+enddata[i];

i:=0;

bzw:=fale;repeatleep(10);

Application.ProceMeage;i:=i+1;

Ifi>30000Thenbegin

howmeage('发送超时!');break;end;

Untilbzw=true;

procedureTForm1.FormCreate(Sender:TObject);var

tr:tring;begin

//MSCOMM参数设置