<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于VC環(huán)境的變頻器聯(lián)網(wǎng)控制

基于VC環(huán)境的變頻器聯(lián)網(wǎng)控制

作者: 時(shí)間:2011-03-26 來(lái)源:網(wǎng)絡(luò ) 收藏

4 計算機串口通訊編程

對于的計算機串口通信編程可以用多種方法實(shí)現。MSComm控件通過(guò)串行端口傳輸和接收數據,因此,可在編寫(xiě)計算機串口通信程序時(shí)使用MSComm控件。MSComm控件使用時(shí)比較方便,只要完成簡(jiǎn)單的串口初始化設置,然后調用相應的讀寫(xiě)函數即可完成計算機串口通信操作。但是,使用MSComm控件在設置通信參數時(shí)是成批進(jìn)行的,即數據傳輸速率、奇偶校驗、數據位數和停止位數是作為一個(gè)參數進(jìn)行設置的。這樣使通信參數的設置和修改不太靈活自如,因此,不采用MSComm控件進(jìn)行串行通信編程。利用Windows通信API函數進(jìn)行串口通信編程可以非常靈活地進(jìn)行串口參數的配置,但編程非常復雜,專(zhuān)業(yè)化程度較高,因此也沒(méi)有采用。利用的標準通信函數inp,inpw,inpd,outp,outpw,outpd等直接對串口進(jìn)行操作編程需要對硬件電路的結構原理非常了解,但這里并不需要對計算機的串口電路非常了解,因此同樣沒(méi)有采用。最終程序中應用的是第三方編寫(xiě)的串行通信Cserial類(lèi)。下面對CSerial類(lèi)進(jìn)行解釋。

CSerial::CSerial是類(lèi)構造函數,不帶參數,負責初始化所有類(lèi)成員變量。

CSerial::Open是打開(kāi)通信端口的成員函數,帶兩個(gè)參數,一個(gè)是串行端口號,另一個(gè)是波特率。

CSerial::Close是關(guān)閉通信端口的成員函數。類(lèi)析構函數調用這個(gè)函數,因此可不用顯式調用這個(gè)函數。

CSerial::SendData函數把數據從一個(gè)緩沖區寫(xiě)到串行端口。它所帶的第一個(gè)參數是緩沖區指針,其中包含要被發(fā)送的資料。這個(gè)函數返回一些到端口的實(shí)際字節數。

CSerial::ReadDataWaiting函數返回等待在通信端口緩沖區中的數據,不帶參數。

CSerial::ReadData函數從端口接收緩沖區讀入數據。第一個(gè)參數是緩沖區指針,第二個(gè)參數是個(gè)整數值,給出緩沖區的大小。

將CSerial.cpp和CSerial.h添加入源程序,在串口通信程序部分調用CSerial類(lèi)的函數,可以很方便地完成通信功能。下面是在程序中用CSerial類(lèi)編寫(xiě)通信程序,完成的功能是按既定的通信協(xié)議向網(wǎng)絡(luò )下傳查詢(xún)指令,并接收從站返回的信息。如果連發(fā)三次都沒(méi)有接收到的應答信息就顯示為離線(xiàn)狀態(tài)。

CSerialSerial;

inti;

CStringm_mes;

Unsignedcharsend[14]={0x02,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x80,0x00,0x00,0x00};

for(i=1;i=m_slname;i++)

{

send[2]=i;

unsignedcharu=send[0];

for(intl=1;l13;l++)

{

u=u^send[l];

}

send[13]=u;

showaf=send[10];

if(Serial.Open(m_port,m_baudrate))

{

Serial.SendData(send,14);

}

Sleep(200);

if(Serial.ReadDataWaiting())

{

Serial.ReadData(recieve,14);

}

else

{

Serial.SendData(send,14);

Sleep(200);

if(Serial.ReadDataWaiting())

{

Serial.ReadData(recieve,14);

}

else

{

Serial.SendData(send,14);

Sleep(200);

if(Serial.ReadDataWaiting())

{

Serial.ReadData(recieve,14);

}

else

{

m_mes.Format(%disoffline,i);

m_recc.InsertString(-1,m_mes);

}

}

}

在與變頻器的通信中要求計算機的串口號和通信速率是可變的。Open函數的兩個(gè)參數就是計算機的串口號和通信速率,在調用該函數初始化串口時(shí),將這兩個(gè)參數按所希望的數賦值就可以正常通信了。如果要修改這兩個(gè)參數,只要將修改值賦給這兩個(gè)參數的變量,再調用一次Open函數從新初始化計算機串口即可。在Open函數中僅初始化了串口號、通信速率和8位數據位這三個(gè)參數,其它參數采用上一次串口初始化形成的參數數據。但是,在通信中還要求傳送的數據為二進(jìn)制數據、偶校驗和有1位停止位,這就要求對Open函數進(jìn)行修改。對Open函數的修改主要是對其中設備快(DCB)的修改。只要將舊的DCB結構改寫(xiě)為以下結構即可。

GetCommState(m_hIDComDev,&dcb);

dcb.BaudRate=nBaud;

dcb.ByteSize=8;

dcb.fParity=1;

dcb.fBinary=1;

dcb.Parity=EVENPARITY;

dcb.StopBits=ONESTOPBIT;

經(jīng)過(guò)上述修改后,用Open函數初始化的串口就符合傳送二進(jìn)制數、偶校驗、8位數據位、1位停止位和波特率及端口可變的要求,計算機可以和變頻器進(jìn)行正常的通信了。

5 組網(wǎng)實(shí)驗

遠程軟件完成后進(jìn)行組網(wǎng)實(shí)驗。網(wǎng)絡(luò )上用一臺計算機連接兩臺變頻器,對其中一臺變頻器執行正轉起動(dòng)到30Hz的命令,軟件控制界面顯示如圖5所示。

圖5 變頻器器起動(dòng)控制界面

6 結語(yǔ)

本文主要介紹了實(shí)現變頻器遠程網(wǎng)絡(luò )控制的計算機控制軟件如何編寫(xiě)。從軟件的功能框架,數據庫的操作和計算機串口通信3個(gè)方面進(jìn)行了闡述,詳細說(shuō)明了在下來(lái)編寫(xiě)合乎我們要求的控制軟件的方法,具有一定的實(shí)際參考價(jià)值。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>