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参数设置