亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plc.bas

?? 用模塊寫的plc通信,用于計算機與三菱plc通信
?? BAS
字號:
Attribute VB_Name = "PLC"
 Option Explicit
   Public RcvData() As Byte        '接收數組
   Public RcvLen As Integer        '接收數組長度
   Public Flag As Integer          '狀態標志
   Public Num As Integer           '重發次數計數器
   Public RcvFinFlag As Boolean    '接收完成標志
   Public SaveString As String     '輸入命令暫存字符串
 Public Sub Dread(instring As String, ByteCount As Integer)        '讀 D
  Dim s As String
  Flag = 0
  s = "0" & TransAd(instring) & Format(ByteCount, "00")
  Send s
 End Sub
  Public Sub Dwrite(instring As String, ByteCount As Integer, Data As String)        '寫 D
  Dim str1 As String
  Dim s As String
  Flag = 1
 Select Case ByteCount
 Case 2
    str1 = Exchange(Data)
 Case 4
    str1 = Exchange(Mid(Data, 1, 4)) & Exchange(Mid(Data, 5, 4))
 End Select
    s = "1" & TransAd(instring) & Format(ByteCount, "00") & str1
   Send s
 End Sub
 Public Sub BitForce(instring As String, AtOn As Boolean)         'Bit元件置位/復位
   Dim s As String
   If AtOn = True Then
     Flag = 7
     s = "7" & TransAd(instring)
   Else
     Flag = 8
     s = "8" & TransAd(instring)
   End If
   Send s
 End Sub
 Public Sub BitSearch(instring As String)             'Bit元件查詢狀態
    Dim s As String
    Flag = 9
    s = "0" & TransAdForSearch(instring) & "01"
    Send s
 End Sub
 Private Sub Send(Xstring As String)    '發送子程序
    Dim OutData() As Byte              '發送數組
    Dim length As Integer, i As Integer
 If RcvFinFlag = True Then
    SaveString = Xstring              '***保存發送字符串,為出錯重發做準備
    RcvLen = -1                       '接收數組長度初始化
    RcvFinFlag = False
    length = Len(Xstring)
    ReDim Preserve OutData(0 To length + 1) As Byte
    OutData(0) = &H2                    'STX
    For i = 1 To length
       OutData(i) = AscB(Mid(Xstring, i, 1))
    Next i
    OutData(length + 1) = &H3               'ETX
    Call FcSCheck(OutData)                  '加校驗和
    Form1.MSComm1.Output = OutData
    Call OutTxt(OutData)              '顯示數據
    Form1.Timer2.Enabled = True          '準備接收,打開定時器
Else
    MsgBox "前一個命令尚未執行完", vbExclamation, "操作提示"
End If
End Sub
Private Function Exchange(str1 As String) As String      '高低字節換位
    Dim i As Integer
    Dim Temp(3) As String
    Dim str2 As String
    str2 = ""
     Temp(0) = Mid(str1, 3, 1)
     Temp(1) = Mid(str1, 4, 1)
     Temp(2) = Mid(str1, 1, 1)
     Temp(3) = Mid(str1, 2, 1)
     For i = 0 To 3
     str2 = str2 & Temp(i)
     Next
     Exchange = str2
   End Function
 Private Function TransAd(Component As String) As String          ' Component地址轉換(5位格式)
    Dim Temp(4) As String
    Dim i As Integer, XY As Integer
    Dim str1 As String
    Dim value As Integer
    For i = 0 To 4
    Temp(i) = Mid(Component, i + 1, 1)
    Next
    value = Val(Temp(1) & Temp(2) & Temp(3) & Temp(4))
  Select Case Temp(0)
  Case "D"
     value = 2 * value + &H1000                      'D0 ,1 0 0 0
     str1 = Hex(value)
     TransAd = str1
  Case "M"
     value = value + &H800                            'M0, 0 0 0 8
     str1 = IIf(Len(Hex(value)) = 3, "0" & Hex(value), Hex(value))
     TransAd = Exchange(str1)
  Case "Y"
     If Temp(4) = "8" Or Temp(4) = "9" Then MsgBox "輸入錯誤,將改變Y" & value + 2 & "的值!", vbInformation
     XY = Fix(value / 10) * 2
     value = value + &H500 - XY                         'Y0, 0 0 0 5
     str1 = IIf(Len(Hex(value)) = 3, "0" & Hex(value), Hex(value))
     TransAd = Exchange(str1)
  Case "X"
    If Temp(4) = "8" Or Temp(4) = "9" Then MsgBox "輸入錯誤,將改變X" & value + 2 & "的值!", vbInformation
     XY = Fix(value / 10) * 2
     value = value + &H400 - XY                         'X0, 0 0 0 4
     str1 = IIf(Len(Hex(value)) = 3, "0" & Hex(value), Hex(value))
     TransAd = Exchange(str1)
  Case Else
     MsgBox "沒有定義!"
  End Select
End Function
Private Function TransAdForSearch(Component As String) As String 'Bit Component查詢地址轉換(5位格式)
    Dim Temp(4) As String
    Dim i As Integer, j As Integer
    Dim str1 As String
    Dim value As Integer
    For i = 0 To 4
    Temp(i) = Mid(Component, i + 1, 1)
    Next
    value = Val(Temp(1) & Temp(2) & Temp(3) & Temp(4))
  Select Case Temp(0)
   Case "M"
      value = Fix(value / 8)
      value = value + &H100
      str1 = IIf(Len(Hex(value)) = 3, "0" & Hex(value), Hex(value))
      TransAdForSearch = str1
   Case "Y"
     If Temp(4) = "8" Or Temp(4) = "9" Then MsgBox "輸入錯誤,將查詢Y" & value - 8 & "的值!", vbInformation
      value = Fix(value / 10)
      value = value + &HA0
      str1 = Hex(value)
      j = Len(str1)
      str1 = String(4 - j, "0") & str1
      TransAdForSearch = str1
   Case "X"
     If Temp(4) = "8" Or Temp(4) = "9" Then MsgBox "輸入錯誤,將查詢X" & value - 8 & "的值!", vbInformation
      value = Fix(value / 10)
      value = value + &H80
      str1 = Hex(value)
      j = Len(str1)
      str1 = String(4 - j, "0") & str1
      TransAdForSearch = str1
   Case Else
    MsgBox "沒有定義!"
    End Select
 End Function
   Public Function OutTxt(ss() As Byte) '發送記錄
      Dim i As Integer
      Dim vv As String
      Dim str1 As String
        For i = LBound(ss) To UBound(ss)
        str1 = IIf(Len(Hex(ss(i))) = 1, "0" & Hex(ss(i)), Hex(ss(i)))
        vv = vv & str1 & " "
        Next i
        Form1.Text6.Text = Form1.Text6.Text & "發送 " & vv & vbCrLf
     End Function
      Public Function InTxt(ss() As Byte) '接收記錄
       Dim i As Integer
       Dim vv As String
       Dim str1 As String
        For i = LBound(ss) To UBound(ss)
       str1 = IIf(Len(Hex(ss(i))) = 1, "0" & Hex(ss(i)), Hex(ss(i)))
        vv = vv & str1 & " "
        Next i
        Form1.Text6.Text = Form1.Text6.Text & "接收 " & vv & vbCrLf
     End Function
Private Sub FcSCheck(xData() As Byte)             '數組求校驗和
    Dim BufLen As Integer, Buf As String
    Dim i As Integer
    Dim CheckSum As Long
    BufLen = UBound(xData)
    CheckSum = 0
    For i = LBound(xData) + 1 To BufLen
       CheckSum = (CheckSum + xData(i)) And &HFF
    Next i
    Buf = IIf(Len(Hex(CheckSum)) = 1, "0" & Hex(CheckSum), Hex(CheckSum))
    ReDim Preserve xData(BufLen + 2) As Byte
    xData(BufLen + 1) = Asc(Mid(Buf, 1, 1))
    xData(BufLen + 2) = Asc(Mid(Buf, 2, 1))
End Sub
Public Sub ErrorHandle()                 ' 通信錯誤處理子程序
    If Num >= 0 And Num < 2 Then         '***重發次數2
        Num = Num + 1
        RcvFinFlag = True
        Call Send(SaveString)
        Exit Sub
    Else
        Form1.Timer2.Enabled = False
        MsgBox "請檢查硬件連接及報文設置", vbExclamation, "通信超時或通信過程出錯"
        Num = 0
        RcvFinFlag = True
        Exit Sub
     End If
 End Sub
       Public Function RcvDataChk(cData() As Byte) As Boolean     '校驗子程序
          Dim CheckFlag As Boolean
          CheckFlag = False
          Dim i As Integer, EndNo As Integer
          For i = 0 To UBound(cData)
          If cData(i) = &H3 Then                    '"ETX"
             EndNo = i
             Exit For
          End If
          Next i
          Dim dData() As Byte
          ReDim Preserve dData(0 To EndNo) As Byte
          For i = 0 To EndNo
          dData(i) = cData(i)
          Next i
          Call FcSCheck(dData)
          If dData(EndNo + 1) = cData(EndNo + 1) And dData(EndNo + 2) = cData(EndNo + 2) Then
          CheckFlag = True
          End If
          RcvDataChk = CheckFlag
        End Function
        Public Function RcvDataDisplay(xRcv() As Byte) As String    '顯示子函數
           Dim str1 As String
           Dim i As Integer
           str1 = ""
          If xRcv(0) = &H2 Then                           '"STX"
             For i = 1 To UBound(xRcv)
             If xRcv(i) <> &H3 Then                       '"ETX"
             str1 = str1 & Chr(xRcv(i))
             Else
             Exit For
             End If
             Next i
            Select Case Len(str1)
             Case 4
             RcvDataDisplay = Exchange(str1)
             Case 8
             RcvDataDisplay = Exchange(Mid(str1, 1, 4)) & Exchange(Mid(str1, 5, 4))       '十六進制
            End Select
            'Form1.txtview = Format((Val("&h" & ShwTemp) / 10), "# #0.0")  '十進制
           End If
        End Function
        Public Sub BitDisplay(xRcv() As Byte)    '顯示子函數
           Dim str1 As String
           Dim i As Integer, j As Integer
           Dim value As Integer
           Dim Binary(7) As Byte
            str1 = Chr(xRcv(1))
            str1 = str1 & Chr(xRcv(2))
               value = Val("&h" & str1)
               j = 128
               For i = 7 To 0 Step -1
               Binary(i) = Fix(value / j)
               value = value Mod j
               j = j / 2
               Next i
            If Form1.Combo1.Text = "M" Then
               value = Val(Form1.Text5.Text)
               i = 0
                 For j = 0 To 7
                  If value Mod 8 = 0 Then Exit For
                  i = i + 1
                  value = value - 1
                 Next
            Else
                i = Val(Mid(Form1.Text5.Text, 4, 1))
                If i = 8 Then i = 0
                If i = 9 Then i = 1
            End If
            If Binary(i) = 1 Then
                  Form1.Shape1.FillColor = vbRed
                Else
                  Form1.Shape1.FillColor = vbBlack
            End If
        End Sub
        Public Sub ConFirm(CodeByte As Byte)
            Dim OutData(0) As Byte              '發送數組
            OutData(0) = CodeByte
            Form1.MSComm1.Output = OutData
            Call OutTxt(OutData)              '顯示數據
        End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九精品视频在线看| 91精品国产综合久久婷婷香蕉| 中文字幕 久热精品 视频在线 | 国产日韩精品久久久| 91丨porny丨国产入口| 韩国视频一区二区| 亚洲成人av电影在线| 国产精品人成在线观看免费| 日韩亚洲欧美成人一区| 在线观看免费一区| 成人免费黄色在线| 国产在线一区观看| 日韩电影一二三区| 亚洲bdsm女犯bdsm网站| 亚洲天堂久久久久久久| 亚洲国产精品黑人久久久| 欧美xxxxx牲另类人与| 欧美老肥妇做.爰bbww视频| 色伊人久久综合中文字幕| 国产91精品入口| 国产一区不卡在线| 九九热在线视频观看这里只有精品| 亚洲成人av资源| 亚洲综合一区在线| 亚洲免费大片在线观看| 中文字幕一区免费在线观看| 国产拍揄自揄精品视频麻豆| 久久综合久久综合久久| 久久综合五月天婷婷伊人| 精品少妇一区二区三区免费观看| 欧美一区2区视频在线观看| 欧美欧美欧美欧美首页| 欧美色图在线观看| 欧美色图一区二区三区| 欧美性猛片aaaaaaa做受| 在线看日韩精品电影| 欧美午夜理伦三级在线观看| 欧美午夜精品一区二区三区| 欧美日韩精品一区视频| 欧美日韩国产综合一区二区三区| 欧美日韩国产成人在线免费| 欧美日韩国产高清一区二区三区| 欧美区在线观看| 日韩视频在线永久播放| 精品国产一区二区三区不卡 | 欧美日韩精品欧美日韩精品一 | 精品一区二区综合| 麻豆一区二区三| 国模冰冰炮一区二区| 国产又粗又猛又爽又黄91精品| 国产一区在线不卡| 成人午夜看片网址| 色www精品视频在线观看| 色av综合在线| 欧美一级午夜免费电影| 久久―日本道色综合久久| 中文字幕的久久| 亚洲免费观看高清完整| 日韩激情视频网站| 国产美女娇喘av呻吟久久| 成人污污视频在线观看| 色激情天天射综合网| 91精品在线观看入口| 久久精品在这里| 亚洲免费观看高清完整版在线观看熊 | 欧美精品三级日韩久久| 91精品国产福利在线观看| 久久亚洲一区二区三区明星换脸| 亚洲国产激情av| 亚洲综合在线免费观看| 久久精品国产99国产精品| 东方aⅴ免费观看久久av| 色婷婷av久久久久久久| 日韩精品一区二区三区在线观看| 欧美国产日韩在线观看| 亚洲国产日韩精品| 国产米奇在线777精品观看| 色婷婷狠狠综合| 日韩欧美中文字幕制服| 《视频一区视频二区| 成人国产精品免费观看| 欧美三级一区二区| 国产欧美日韩三区| 午夜欧美视频在线观看 | 蜜臀国产一区二区三区在线播放| 国产一区二区三区在线看麻豆| 99re亚洲国产精品| 日韩免费性生活视频播放| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲免费看黄网站| 精品一区二区影视| 欧美在线观看视频在线| 久久精品欧美日韩| 人人狠狠综合久久亚洲| 91蜜桃网址入口| 久久精子c满五个校花| 亚洲gay无套男同| 91丝袜国产在线播放| 精品久久一二三区| 首页亚洲欧美制服丝腿| 91蝌蚪porny| 国产欧美久久久精品影院| 日韩av在线免费观看不卡| 91免费国产在线观看| 久久精品无码一区二区三区| 日韩激情视频在线观看| 在线免费观看一区| 中文字幕一区二区三区在线播放| 精品一区二区精品| 日韩一级完整毛片| 午夜a成v人精品| 欧美伊人久久大香线蕉综合69| 亚洲国产精品黑人久久久| 国产一区欧美一区| 日韩欧美亚洲一区二区| 日韩电影在线一区二区| 欧美吞精做爰啪啪高潮| 亚洲精选视频免费看| 99久久伊人久久99| 国产精品嫩草影院av蜜臀| 国产麻豆精品在线| 久久亚洲一区二区三区四区| 青青草成人在线观看| 欧美精品自拍偷拍| 无码av中文一区二区三区桃花岛| 91久久精品一区二区三| 亚洲日本va午夜在线影院| eeuss鲁片一区二区三区在线看| 国产免费成人在线视频| 国产suv一区二区三区88区| 国产欧美日韩亚州综合| 成熟亚洲日本毛茸茸凸凹| 国产精品热久久久久夜色精品三区| 国产激情视频一区二区三区欧美| 久久久久久久久久久久电影 | 精品粉嫩aⅴ一区二区三区四区| 日韩黄色小视频| 宅男噜噜噜66一区二区66| 午夜精品一区二区三区电影天堂 | 久久久蜜桃精品| 国产一区二区三区综合| 国产目拍亚洲精品99久久精品| 国产suv精品一区二区883| 国产精品久久久久永久免费观看| 国产成人99久久亚洲综合精品| 国产欧美精品一区| 99r国产精品| 亚洲电影在线播放| 91精品国产综合久久久久| 免费成人结看片| 久久夜色精品国产欧美乱极品| 国产成人午夜电影网| 亚洲欧洲精品一区二区精品久久久| 91免费国产视频网站| 亚洲高清在线精品| 亚洲精品日产精品乱码不卡| 欧美三级韩国三级日本一级| 美女网站一区二区| 欧美经典一区二区| 欧美影院一区二区三区| 天使萌一区二区三区免费观看| 欧美成人高清电影在线| 国产福利一区在线| 有码一区二区三区| 欧美一区二区三区的| 国产91在线|亚洲| 亚洲一区二区不卡免费| 欧美成人乱码一区二区三区| 成人午夜激情在线| 亚洲香肠在线观看| 精品成人免费观看| 91色porny| 日本va欧美va欧美va精品| 国产欧美一区在线| 欧美日韩国产另类一区| 国产成人三级在线观看| 亚洲一区二区3| 久久久精品国产99久久精品芒果| 91免费在线播放| 国内精品自线一区二区三区视频| 亚洲欧洲av在线| 欧美一区二区视频在线观看 | 亚洲综合一二三区| 久久久99精品久久| 欧美精品日韩精品| 成人免费视频免费观看| 视频一区中文字幕| 欧美高清在线精品一区| 欧美日韩成人综合| va亚洲va日韩不卡在线观看| 轻轻草成人在线| 亚洲精品中文在线| 国产丝袜美腿一区二区三区| 欧美日韩一卡二卡三卡| 成人一二三区视频| 激情综合五月天| 午夜精品影院在线观看| 亚洲女性喷水在线观看一区| 精品国产乱码久久久久久老虎 | 欧美一级欧美一级在线播放|