《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > VBA的妙用:串口通訊程序與EXCEL相結合
VBA的妙用:串口通訊程序與EXCEL相結合
徐向農
摘要: VisualBasic的應用程序版(VBA)是Microsoft公司長期追求的目標,使可編程應用軟件得到完美的實現,它作為一種通用的宏語言可被所有的Microsoft可編程應用軟件所共享。
Abstract:
Key words :

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,它的二次開發功能會邁上一個新的臺階。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          精品动漫3d一区二区三区免费版| 在线免费观看日本欧美| 国产亚洲精品久久久久婷婷瑜伽| 国产区在线观看成人精品| 国产毛片精品视频| 亚洲精品一区二区三区福利| 一区在线电影| 免播放器亚洲| 国产日韩欧美夫妻视频在线观看| 国产亚洲欧美日韩在线一区| 夜夜嗨av色综合久久久综合网| 国产精品一区免费视频| 一区二区亚洲精品| 在线观看国产日韩| 欧美日韩理论| 亚洲精品国产精品国自产观看浪潮| 欧美精品激情在线观看| 裸体一区二区三区| 久久激情综合网| 香蕉尹人综合在线观看| 国产情人综合久久777777| 亚洲国产一区二区三区青草影视| 欧美mv日韩mv国产网站app| 亚洲无亚洲人成网站77777| 欧美另类视频| 国产真实精品久久二三区| 99re6热只有精品免费观看| 欧美刺激午夜性久久久久久久| 最新高清无码专区| 欧美在线免费观看| 亚洲人成7777| 国内精品美女在线观看| 亚洲私人影吧| 香蕉久久一区二区不卡无毒影院| 久久精品夜色噜噜亚洲a∨| 欧美国产在线观看| 伊人成年综合电影网| 欧美在线观看视频一区二区| 亚洲激精日韩激精欧美精品| 国产精品99久久久久久久久| 欧美激情欧美激情在线五月| 国产曰批免费观看久久久| 欧美久久九九| 国产亚洲一区在线| 亚洲人成艺术| 欧美刺激午夜性久久久久久久| 99视频日韩| 亚洲国产精品一区| 亚洲欧洲在线观看| 极品少妇一区二区三区| 国产精品一国产精品k频道56| 亚洲欧美综合精品久久成人| 精品成人国产在线观看男人呻吟| 性8sex亚洲区入口| 影音先锋成人资源站| 国产精品久久久久免费a∨大胸| 精品999在线观看| 亚洲国产毛片完整版| 亚洲一区在线视频| 新片速递亚洲合集欧美合集| 国产精品成av人在线视午夜片| 久久久久久有精品国产| 一区二区三区免费观看| 这里是久久伊人| 亚洲图片欧美一区| 99国产精品久久| 欧美日韩www| 亚洲国产日韩在线一区模特| 久久久噜噜噜| 欧美三级在线视频| 亚洲天堂偷拍| 欧美日韩一区在线视频| 亚洲免费黄色| 亚洲成色777777在线观看影院| 国产精品久久久久aaaa| 国产欧美欧洲在线观看| 亚洲精品之草原avav久久| 亚洲视频专区在线| 欧美国产一区在线| 国产美女一区| 老鸭窝亚洲一区二区三区| 136国产福利精品导航| 亚洲福利视频一区二区| 亚洲一区二区欧美| 99日韩精品| 久久久最新网址| 亚洲欧美综合网| 欧美日韩一区在线视频| 亚洲欧美日韩高清| 国产精品sss| 日韩系列欧美系列| 国模一区二区三区| 国产日本欧美视频| 国产伊人精品| 午夜精品成人在线视频| 亚洲图片自拍偷拍| 在线观看视频一区二区| 亚洲国产清纯| 国产偷自视频区视频一区二区| 欧美日本一区二区高清播放视频| 国产精品国产a级| 亚洲欧洲精品一区| 欧美一区二区精品久久911| 亚洲一级电影| 中文网丁香综合网| 久久婷婷久久一区二区三区| 99国产成+人+综合+亚洲欧美| 欧美精品成人在线| 国产精品国产三级国产aⅴ无密码| 在线成人小视频| 欧美jizzhd精品欧美喷水| 最新亚洲一区| 亚洲在线1234| 欧美精品久久久久久久久老牛影院| 国产日韩亚洲欧美精品| 西西裸体人体做爰大胆久久久| 国产精品久久久久av免费| 国产午夜精品福利| 欧美日韩在线一区二区三区| 欧美日本一区二区高清播放视频| 欧美激情免费观看| 亚洲欧美一级二级三级| 欧美日韩在线第一页| 欧美日韩a区| 欧美国产综合一区二区| 欧美视频免费在线观看| 亚洲一区在线免费观看| 亚洲尤物精选| 亚洲欧美日韩国产成人| 免费精品99久久国产综合精品| 欧美成人精品在线观看| 亚洲欧美国产精品桃花| 久久久久在线| 欧美在线视频在线播放完整版免费观看| 欲香欲色天天天综合和网| 另类成人小视频在线| 国产丝袜美腿一区二区三区| 国产精品国产三级国产aⅴ无密码| 国产资源精品在线观看| 国产精品扒开腿做爽爽爽软件| 一区二区三区产品免费精品久久75| 欧美日韩精品久久久| 亚洲一区二三| 欧美影院久久久| 亚洲一区二区三区午夜| 亚洲电影在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲欧洲精品成人久久奇米网| 亚洲天堂网在线观看| 久久视频这里只有精品| 欧美xxxx在线观看| 欧美福利电影在线观看| 亚洲美女毛片| 久久精品道一区二区三区| 欧美中文字幕第一页| 欧美国产在线视频| 国产在线乱码一区二区三区| 国产婷婷色综合av蜜臀av| 午夜精品国产精品大乳美女| 亚洲美女黄网| 亚洲专区免费| 久久天天躁夜夜躁狠狠躁2022| 久久久www免费人成黑人精品| 欧美一区二区三区四区夜夜大片| 欧美精品福利视频| 午夜精品久久久久久久99水蜜桃| 看片网站欧美日韩| 一本久久知道综合久久| 国产精品久久久一区二区| 国产精品一区二区视频| 免费不卡在线观看av| 国产一区二区三区四区三区四| 亚洲伊人一本大道中文字幕| 亚洲字幕在线观看| 亚洲国产精品尤物yw在线观看| 亚洲一区二区三区久久| 国产日本欧美一区二区| 亚洲欧洲三级电影| 欧美精品xxxxbbbb| 欧美国产激情二区三区| 亚洲自拍另类| 一区二区三区精密机械公司| 亚洲卡通欧美制服中文| 亚洲精选久久| 亚洲欧美日本视频在线观看| 国产在线精品一区二区中文| 91久久综合亚洲鲁鲁五月天| 欧美在线视频日韩| 麻豆精品在线视频| 欧美亚州一区二区三区| 欧美激情第1页| 国产在线乱码一区二区三区| 欧美精品九九| 国产综合欧美在线看| 欧美aⅴ99久久黑人专区| 国产精品家庭影院| 亚洲第一色中文字幕| 欧美日韩国产精品| 亚洲国产视频一区二区| 亚洲欧洲精品一区二区| 亚洲欧洲精品成人久久奇米网| 国产欧美日韩不卡免费| 猛男gaygay欧美视频| 亚洲欧洲综合另类| 国产精品成人一区| 这里只有精品视频在线| 国产精品黄页免费高清在线观看| 久久精品2019中文字幕| 国产日韩一区欧美| 欧美精品久久99久久在免费线| 夜夜嗨av一区二区三区四区| 亚洲影视在线| 国产情侣久久| 欧美有码在线观看视频| 欧美福利一区二区| 欧美91精品| 国产精品www994| 欧美日韩在线亚洲一区蜜芽| 国产精品久久7| 欧美三级欧美一级| 亚洲欧洲一区二区天堂久久| 伊人久久亚洲热| 亚洲永久精品大片| 好吊色欧美一区二区三区四区| 国内精品嫩模av私拍在线观看| 欧美日韩国产一中文字不卡| 国产精品久久久久久久电影| 久久这里有精品视频| 精品1区2区| 在线看片欧美| 国产精品久久看| 久久久久久久国产| 国产一区 二区 三区一级| 美女国产精品| 香蕉久久夜色精品国产| 国产精品美女主播| 欧美一级专区| 欧美一级在线亚洲天堂| 国产日韩精品久久久| 一片黄亚洲嫩模| 亚洲欧美中文日韩在线| 一区二区三区亚洲| 在线观看一区视频| 免费观看一级特黄欧美大片| 亚洲视频一区在线观看| 农村妇女精品| 欧美日韩123| 欧美成人高清视频| 欧美天天影院| 欧美高清在线视频| 亚洲欧美一区二区视频| 欧美99在线视频观看| 精品99一区二区三区| 国产一区二区三区视频在线观看| 一本色道综合亚洲| 樱桃成人精品视频在线播放| 国产无一区二区| 国产精品久久久久久久午夜片| 久久综合狠狠综合久久综青草| 亚洲综合首页| 亚洲高清不卡av| 性久久久久久久久久久久| 欧美中文在线观看国产| 一本大道久久a久久精品综合| 老牛影视一区二区三区| 久久夜色撩人精品| 欧美亚洲一区三区| 激情自拍一区| 午夜精品在线视频| 欧美天堂亚洲电影院在线观看| 亚洲精品国产品国语在线app| 亚洲国产高清一区二区三区| 国产精品久久综合| 久久久噜噜噜久久人人看| 久久精品一区二区三区中文字幕| 亚洲第一成人在线| 欧美一区二区三区四区在线| 久久国产主播精品| 免费国产一区二区| 亚洲综合社区| 99精品视频免费观看视频| 国产美女精品免费电影| 亚洲第一综合天堂另类专| 欧美色综合天天久久综合精品| 国产精品人成在线观看免费| 欧美日韩高清免费| 欧美日本不卡视频| 99re亚洲国产精品| 日韩一级裸体免费视频| 欧美一区二区三区电影在线观看| 久久精品麻豆| 亚洲精品美女在线| 亚洲国产精品高清久久久| 欧美精品免费播放| 国产一区二区三区精品久久久| 亚洲视频国产视频| 美女主播精品视频一二三四| 久久精品国产69国产精品亚洲| 亚洲精品美女在线观看播放| 欧美精品黄色| 亚洲视频一区二区免费在线观看| 精品福利av| 性欧美18~19sex高清播放| 欧美久久久久| 精品51国产黑色丝袜高跟鞋| 国产精品免费观看视频| 欧美一区二区精美| 亚洲乱码国产乱码精品精可以看| 亚洲欧美国产77777| 欧美新色视频| 亚洲国产欧美日韩另类综合| 亚洲美女中文字幕| 一区二区欧美激情| 狠狠色噜噜狠狠色综合久| 日韩一级成人av| 欧美国产第一页| 日韩亚洲不卡在线| 亚洲无限乱码一二三四麻| 在线免费精品视频| 久久噜噜噜精品国产亚洲综合| 欧美国产极速在线| 永久免费精品影视网站| 香蕉成人伊视频在线观看| 欧美日韩精品中文字幕| 久久精品系列| 亚洲欧美成人综合| 国产婷婷一区二区| 黑人巨大精品欧美一区二区|