新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VB的計(jì)算機(jī)與軟起動器的通訊

基于VB的計(jì)算機(jī)與軟起動器的通訊

作者: 時間:2014-02-17 來源:網(wǎng)絡(luò) 收藏

4 通訊程序及監(jiān)控界面的設(shè)計(jì)

  vb是一種面向?qū)ο蟮木幊陶Z言,應(yīng)用方便,功能強(qiáng)大,利用microsoft公司提供的activex控件mscomm.ocx就可以方便實(shí)現(xiàn)的串口通訊。

  主機(jī)發(fā)送兩種形式的命令,一是周期性命令,一是非周期性命令。周期性命令即主機(jī)以輪詢的方式周期性讀取從機(jī)的狀態(tài)字,判斷從機(jī)運(yùn)行狀況及通訊情況;非周期性命令即主機(jī)發(fā)出的控制命令,如起動、停止、編輯參數(shù)報警查詢等。

  以下是主要通訊程序:

  首先要初始化串行通訊端口

  private sub initcomport() ;初始化通訊端口子程序

  comm.commport=1 ;使用串口com1

  comm.setting=9600,m,8,1;波特率、奇偶校驗(yàn)位、8位數(shù)據(jù)位、1位停止位

  comm.inbuffersize=1024 ;緩沖區(qū)大小

  comm.inputlen=0 ;清空接收緩沖區(qū)

  comm.rtsenable=false ;無須硬件握手

  comm.portopen=true ;打開通訊口

  end sub

  值得注意的是,通訊協(xié)議中規(guī)定以奇偶校驗(yàn)位作為地址選擇標(biāo)志,下面一發(fā)送讀狀態(tài)指令為例。

  讀狀態(tài)字

  private sub readstatusword() ;讀狀態(tài)字子程序

  mscomm1.output=command_s ;發(fā)送第一個字節(jié)(地址及快速指令讀狀態(tài))

  mscomm1.settings=“9600,s,8,1” ;將奇偶校驗(yàn)位設(shè) ;為0,即接收響應(yīng)狀態(tài)

  mscomm1.output=outdatabyte_l;發(fā)送低8位

  delay(10) ;延時10ms

  call recieverespond(y) ;接收從機(jī)握手信 ;號(y為接收狀態(tài))

  if y《》0 then call dealerror ;如果握手信號不 ;正確,調(diào)用故障處理子程序

  mscomm1.output=outdatabyte_h;如果握手信號正 ;確,發(fā)送高8位

  mscomm1.output= command_s+ outdatabyte_l+ outdatabyte_h+fh ;發(fā)送校驗(yàn)碼

  call recieverespond(y) ;接收從機(jī)握手信號

  if y《》0 then call dealerror ;如果握手信號不正 ;確,調(diào)用故障處理子程序

  callrecievedata ;如果正確,調(diào)用接收狀態(tài)字子程序

  call verifys1 ;接收并驗(yàn)證校驗(yàn)和

  end sub

  收到的狀態(tài)字為二進(jìn)制雙字節(jié)(dl,dh),每一位含義如表5和表6所示。

  上位機(jī)收到狀態(tài)字后,判斷該機(jī)的狀態(tài),進(jìn)而根據(jù)狀態(tài)字和工況要求,對該機(jī)進(jìn)行適當(dāng)?shù)倪h(yuǎn)程控制。

5 結(jié)束語

  strc可靠性高,中文液晶顯示,容易操作,易于實(shí)現(xiàn)與的聯(lián)網(wǎng),本文的程序是用vb6.0編寫的簡單的單機(jī)通訊程序,已調(diào)試成功,用于軟起動器的上位機(jī)控制,在實(shí)踐中應(yīng)用正常。在此基礎(chǔ)上,可以用vb、vc++等高級語言編程,將監(jiān)控和管理報表與其溶為一體,做出更靈活,功能更強(qiáng)大的控制軟件,進(jìn)而實(shí)現(xiàn)對電機(jī)靈活而可靠的控制。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉