基于VC++的現(xiàn)場總線控制系統(tǒng)在水處理系統(tǒng)中的應(yīng)用
圖1 上、下位機數(shù)據(jù)通訊流程圖
軟件編制如下:
do{//查詢can總線狀態(tài)(1為空閑,0為忙)
ret=can_inquiry_trans( );}
while(ret==0);
ret=can_ptrans((byte)address,sznumber,(lp -byte)szdata);//發(fā)送特征字符
if(ret==0)
{messagebox(“數(shù)據(jù)下裝錯誤!”,“數(shù)據(jù)下裝”,mb_ok|mb_iconstop);
return;}
do{//查詢有無下位機返回的數(shù)據(jù)(1為有數(shù)據(jù),0為無
//數(shù)據(jù))
ret=can _inquiry_rece( );}
while(ret==0);//如果有下位機返回的數(shù)據(jù),接收數(shù)據(jù)
ret=can_rece((lpbyte)&m_dtype,( lpbyte)&m_address,( lpbyte)&m_data);
if((ret==0fxx00)||(ret==0fxxff))
{ messagebox (“無數(shù)據(jù)包收到或數(shù)據(jù)包錯誤”,“接收錯誤”mb_ok|mb_iconstop);
return; }
for(i=0;i4;i++) //數(shù)據(jù)包接收正確,處理接收的數(shù)據(jù)
db[250+i]=m_data[i]; //判斷回送的特征字符是否
//與無發(fā)送的特征字符相同
if(!(m_data[0]==0x61hm_data[1]==0x61hm_data[2]==m_ptime m_data[3]==m_ptemp))
{ messagebox(“下位機回送特征字符錯誤!”,“特征字符下裝”, mb_ok);
return; }
messagebox (“下位機回送特征字符正確!”,“在線參數(shù)下裝”, mb_ok);
評論