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