<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        VBA的妙用:串口通訊程序與EXCEL相結合
        北京世紀長秋科技有限公司
        收藏本文     查看收藏

        1 VBA簡介
          Visual Basic的應用程序版(VBA)是Microsoft公司長期追求的目標,使可編程應用軟件得到完美的實現,它作為一種通用的宏語言可被所有的Microsoft 可編程應用軟件所共享。在沒有VBA以前,一些應用軟件如Excel、Word、Access、Project等都采用自己的宏語言供用戶開發使用,但每種宏語言都是獨立的,需要用戶專門去學習,它們之間互不兼容,使得應用軟件之間不能在程序上互聯。擁有一種可跨越多個應用軟件,使各應用軟件產品具有高效、靈活且一致性的開發工具是至關重要的。VBA作為一種新一代的標準宏語言,具有上述跨越多種應用軟件并且具有控制應用軟件對象的能力,使得程序設計人員僅需學習一種統一的標準宏語言,就可以轉換到特定的應用軟件上去,程序設計人員在編程和調試代碼時所看到的是相同的用戶界面,而且VBA與原應用軟件的宏語言相兼容,以保障用戶在代碼和工作上的投資。有了VBA以后,多種應用程序共用一種宏語言,節省了程序人員的學習時間,提高了不同應用軟件間的相互開發和調用能力。

        2 串口通訊程序
          簡單的串口通訊程序一般是先由上位機向下位機發送讀(write)或寫(read)數據命令,然后等待下位機應答;下位機接受到命令之后,首先要對數據命令進行校驗,對于符合校驗約束的命令下位機會將相應的數據回復到上位機,對于不符合校驗約束的命令下位機或將其拋棄或回復錯誤信息;上位機接收到下位機的響應之后,首先要對接收到的回復信息進行校驗,對不符合校驗約束的數據進行異常處理,對符合校驗約束的信息進行解碼,解碼之后的信息便是上位機從下位機獲得的有效信息了。
          上位機向串口發送讀命令之后需要等待下位機應答并讀取回復信息,常用的等待有3種方式:
        1) 輪詢式
          上位機向串口發送讀命令之后一直等待下位機應答,通訊程序處于一個等待循環中。
          優點:速度快、誤碼率低(幾乎不存在誤碼)。
          缺點:消耗CPU。(解決辦法:使用Sleep()API函數)。
        2) 消息式
          消息式通訊是采用響應WINDOWS消息的辦法讀取串口。
          優點:節省CPU、誤碼率低。
          缺點:發送接收機制過于繁瑣。
        3) 定時接收式
          定時接收式通訊是根據預設的定時器時間進行讀取數據。
          優點:發送接收機制相對簡單、節省CPU。
          缺點:誤碼率太高,不同的硬件需要配置不同的通訊時間參數,需要嚴格的校驗運算。

        3 EXCEL-VBA串口通訊實例
          軟件:EXCEL。
          硬件:艾默生EC10 PLC。
          功能:通過EXCEL中的按鈕控制PLC的輸出繼電器Y0。
          界面:RUN(運行通訊)、STOP(停止通訊)、Y0(Y0 ON/OFF控制)。

        世紀星組態軟件

          主程序:
          Option Explicit
          Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
          Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
          Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
          Public com1 As New MSCommLib.MSComm
          Public y0Stt As Boolean
          Public y0_on As Boolean
          Public tmrFlag As Boolean
          Public tmr As Long
          Sub runn()
            On Error GoTo ed
            com1.Settings = "9600,e,8,1"
            If com1.PortOpen = False Then
              com1.PortOpen = True
            End If
            tmr = SetTimer(0, 0, 500, AddressOf ontimer)
            Exit Sub
          ed:
          MsgBox "串口打開錯誤!"
          End Sub
          Sub stopp()
            If com1.PortOpen = True Then
              com1.PortOpen = False
              KillTimer 0, tmr
            End If
          End Sub
          Public Function ontimer() 
          Dim a(7) As Byte
          Dim add As Long
          On Error GoTo ed
          If tmrFlag = False Then
            tmrFlag = True
            If y0_on = True Then
              y0_on = False
              If y0Stt = True Then
              a(0) = &H1
              a(1) = &H5
              a(2) = &H0
              a(3) = &H0
              a(4) = &HFF
              a(5) = &H0
              a(6) = &H8C
              a(7) = &H3A
              com1.Output = a
              add = 0
              Do
                DoEvents
                Sleep 10
                add = add + 1
                If add >= 100 Then
                  Exit Do
                End If
              Loop Until com1.InBufferCount >= 8
              Else
              a(0) = &H1
              a(1) = &H5
              a(2) = &H0
              a(3) = &H0
              a(4) = &H0
              a(5) = &H0
              a(6) = &HCD
              a(7) = &HCA
              com1.Output = a
              add = 0
              Do
                DoEvents
                Sleep 10
                add = add + 1
                If add >= 100 Then
                  Exit Do
                End If
              Loop Until com1.InBufferCount >= 8
              End If
            End If
          End If
          tmrFlag = False
          Exit Function
          ed: MsgBox "串口錯誤!"
          tmrFlag = False
          End Function


          界面程序:
          Private Sub cmd1_Click()
          y0_on = True
          y0Stt = Not y0Stt
          End Sub
          Private Sub cmdRun_Click()
          runn
          CheckBox1.Value = 1
          End Sub
          Private Sub cmdStop_Click()
          stopp
          CheckBox1.Value = 0
          End Sub


        4 結束語
          由上可見,VBA已經廣泛應用于微軟的應用軟件當中,所以為更好的完善二次開發功能,眾多的組態軟件都在VBA支持上做了努力,世紀星組態軟件開發語言已與VBA非常相似,相信在未來的版本中,世紀星將全面支持VBA,它的二次開發功能會邁上一個新的臺階。 ■


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 北京世紀長秋科技有限公司
        聯 系 人: 徐向農
        電  話: 010-84645656
        傳  真: 010-84646515
        地  址: 北京市朝陽區惠新東街8號設計大廈14層
        郵  編: 100029
        主  頁:
         
        該廠商相關技術文摘:
        世紀星油庫進出油量監測方案
        《世紀星組態軟件》的獨特功能
        世紀星:罐區安全 全面監控
        世紀星實現彈簧按鈕功能升級
        世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件 實現PID控制
        世紀星組態軟件完美的時間轉換函數:DateTimeConvert
        世紀星組態軟件強大的數據庫查詢函數
        建立完美通信:世紀星與西門子S7-200以太網
        怎樣通過OPC Client與世紀星交互
        世紀星與硬件設備的連接秘笈
        世紀星組態軟件新技術:短息報警功能
        世紀星組態軟件的數據存儲策略
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 国产精品极品美女免费观看| 色爱av综合网国产精品| 亚洲av色香蕉一区二区| 熟妇女人妻丰满少妇中文字幕| 国产精品成人观看视频国产| 九九热免费在线播放视频| 亚洲性日韩精品一区二区| 精品无码成人久久久久久| 国产初高中生视频在线观看| 爱豆传媒md0181在线观看| 亚洲精品韩国一区二区| 国产精品久久久久电影网| 国产精品三级国产精品高| 中文字幕第一页国产| 日韩亚洲AV无码一区二区不卡| 日韩人妻无码一区二区三区| 午夜成人无码免费看网站| 在线国产你懂的| 麻豆精品一区二区综合av| 色综合天天综合网国产人| 国产综合色在线精品| 国内精品伊人久久久久影院对白| 亚洲中文字幕日产无码2020| 国产精品美女一区二三区| av免费一区二区三区不卡| 久久精品激情亚洲一二区| 成全影视大全在线观看| 亚洲性日韩精品一区二区三区| av永久天堂一区| 日本视频精品一区二区| 久9视频这里只有精品| 91国内精品久久久久影院| 亚洲综合精品第一页| 99国产精品自在自在久久| 18禁视频一区二区三区| 亚洲精品国产一二三无码AV| 国产老熟女一区二区三区| 日韩在线视频网| 久久亚洲色www成人| 偷偷做久久久久免费网站| 无码专区视频精品老司机|