欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
VBA的妙用:串口通訊程序與EXCEL相結合

  

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

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

3 EXCEL-VBA串口通訊實(shí)例
  軟件:EXCEL。
  硬件:艾默生EC10 PLC。
  功能:通過(guò)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 "串口打開(kāi)錯誤!"
  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 結束語(yǔ)
  由上可見(jiàn),VBA已經(jīng)廣泛應用于微軟的應用軟件當中,所以為更好的完善二次開(kāi)發(fā)功能,眾多的組態(tài)軟件都在VBA支持上做了努力,世紀星組態(tài)軟件開(kāi)發(fā)語(yǔ)言已與VBA非常相似,相信在未來(lái)的版本中,世紀星將全面支持VBA,它的二次開(kāi)發(fā)功能會(huì )邁上一個(gè)新的臺階。

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
EXCEL高手如何用VBA實(shí)現10秒后關(guān)閉
教你如何設置讓Excel窗口總是在最前面,保證登錄后才可以做其它事
vba打開(kāi)網(wǎng)頁(yè)的四種方法
Excel中響應鍵盤(pán)事件(VBA)
等用Shell調用的程序執行完成后再執行其它程序(VBA)
如?何在vba中用mouse_event操作鼠標?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久