if intADAMCly<1 then exit;
qii:=MSCommA.CommEvent;//读串口故障号(1004-帧错误)
if qii=1008 then MScommA.InBufferCount :=0; //接收溢出
if qii=1010 then MScommA.OutBufferCount :=0;//发送溢出
//if qii<>2 then exit;//=2接收到预定数的字,中断时用此句
//读串口数据
sss:=MScommA.Input;
MScommA.InBufferCount :=0;//清接收缓冲区
//数据和接收显示
ci:=intADAMCly;//模块号
EditData.Text :=sss;
ADAMGrid.Cells[13,ci]:=sss;//显示
if length(sss)<2 then exit;
labelRead.Tag :=labelRead.Tag+1;
if labelRead.Tag mod 2=1 then labelRead.Color :=clOlive
else labelRead.Color :=clLime;
//AD、DI数据转换、显示
if (ci<1) or (ci>CONS_ModnAD+CONS_ModnDI) or (sss='') then exit;
if sss[1]='!' then pADAMDataChange_DI(ci,sss);//DI数字量
if sss[1]='>' then pADAMDataChange_AD(ci,sss);//AD模拟量
end;
系统的上位机软件采用Delphi开发平台,移植微软的MSCOMM控件,利用它可以方便地对串口操作,加快了开发进度。在设计上位机软件时需要考虑到PC机速度比单片机速度快的因素,在传送数据时要适当加入延时,以确保系统的正常运行。
四、结语
本文阐述的系统结构和通讯方法已在广西工学院汽车工程系中得到实际应用,取得了良好的效果,具有很好的实用性。
参考文献:
[1]范逸之,陈立元.Delphi与RS-232串行通讯控制.清华大学出版社.
[2]ADAM4000系列说明书.台湾研华工控.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机基于Delphi开发平台的分布式数据采集系统(2)在线全文阅读。