新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VB的計算機與軟起動器的通訊

        基于VB的計算機與軟起動器的通訊

        作者: 時間:2014-02-17 來源:網絡 收藏

        4 通訊程序及監控界面的設計

          vb是一種面向對象的編程語言,應用方便,功能強大,利用microsoft公司提供的activex控件mscomm.ocx就可以方便實現的串口通訊。

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

          以下是主要通訊程序:

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

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

          comm.commport=1 ;使用串口com1

          comm.setting=9600,m,8,1;波特率、奇偶校驗位、8位數據位、1位停止位

          comm.inbuffersize=1024 ;緩沖區大小

          comm.inputlen=0 ;清空接收緩沖區

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

          comm.portopen=true ;打開通訊口

          end sub

          值得注意的是,通訊協議中規定以奇偶校驗位作為地址選擇標志,下面一發送讀狀態指令為例。

          讀狀態字

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

          mscomm1.output=command_s ;發送第一個字節(地址及快速指令讀狀態)

          mscomm1.settings=“9600,s,8,1” ;將奇偶校驗位設 ;為0,即接收響應狀態

          mscomm1.output=outdatabyte_l;發送低8位

          delay(10) ;延時10ms

          call recieverespond(y) ;接收從機握手信 ;號(y為接收狀態)

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

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

          mscomm1.output= command_s+ outdatabyte_l+ outdatabyte_h+fh ;發送校驗碼

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

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

          callrecievedata ;如果正確,調用接收狀態字子程序

          call verifys1 ;接收并驗證校驗和

          end sub

          收到的狀態字為二進制雙字節(dl,dh),每一位含義如表5和表6所示。

          上位機收到狀態字后,判斷該機的狀態,進而根據狀態字和工況要求,對該機進行適當的遠程控制。

        5 結束語

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 唐海县| 会东县| 元氏县| 罗定市| 托里县| 宣汉县| 鱼台县| 绥江县| 靖州| 连平县| 白河县| 清河县| 乌苏市| 磴口县| 广昌县| 嘉善县| 绍兴县| 怀柔区| 敖汉旗| 河东区| 华坪县| 新干县| 临汾市| 保山市| 黑龙江省| 邯郸县| 盐边县| 海门市| 冕宁县| 炎陵县| 牙克石市| 叙永县| 米泉市| 青阳县| 双柏县| 延长县| 页游| 通榆县| 凤凰县| 萨迦县| 丁青县|