• <cite id="uwv89"></cite>
      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        趙云龍
        級別: 正式會員
        精華主題: 0
        發帖數量: 7 個
        工控威望: 55 點
        下載積分: 264 分
        在線時間: 10(小時)
        注冊時間: 2023-11-23
        最后登錄: 2025-08-21
        查看趙云龍的 主題 / 回貼
        樓主  發表于: 2024-09-17 16:49
        Option Explicit

        Private Sub Form_Load()

          '設置本地任意可用端口,這樣系統會自動分配一個未被占用的端口

          Winsock1.LocalPort = 0

          Winsock2.LocalPort = 0

          '設置通信協議為 TCP 協議

          Winsock1.Protocol = sckTCPProtocol

          Winsock2.Protocol = sckTCPProtocol

          '開始監聽,等待客戶端連接

          Winsock1.Listen

          Winsock2.Listen

          '初始化PLC地址,IP,端口數據

          Open App.Path & "\data\add.ini" For Binary As #1

          Add = StrConv(InputB$(LOF(1), 1), vbUnicode)

          Close #1

          Open App.Path & "\data\ip.ini" For Binary As #1

          ip = StrConv(InputB$(LOF(1), 1), vbUnicode)

          Close #1

          Open App.Path & "\data\port.ini" For Binary As #1

          port = StrConv(InputB$(LOF(1), 1), vbUnicode)

          Close #1

          reg.Text = "0"

          high.Text = "0"

          low.Text = "0"

        End Sub



        Private Sub SendData_Click()

          '如果 Winsock 處于已連接狀態

          If Winsock1.State = sckConnected Then

            '構造 Modbus TCP 請求數據

            Dim PLC_Add As Long

            Dim dataToSend As Integer

            Dim dataToSend1 As Integer

            Dim dataToSend2 As Integer

            'Add PLC起始地址,reg:寄存器地址,high/low高低字節位(數據)。

            PLC_Add = Val(Add.Text)

            To_reg = Val(reg.Text)

            To_high = Val(high.Text)

            To_low = Val(low.Text)

            'MODBUSTCP報文

             Dim request As String

            request = Chr(&H0) & Chr(&H1) & Chr(&H0) & Chr(&H0) & Chr(&H0) & Chr(&H6) & Chr(&H1) & Chr(&H6) & Chr(PLC_Add - 40001) & Chr(To_reg) & Chr(To_high) & Chr(To_low)

              '發送構造好的請求數據給 PLC

              Winsock1.SendData request

            Exit Sub

          

          Else

            '如果未連接到 PLC,彈出消息提示

            MsgBox "Not connected to PLC."

          End If

          

        End Sub


        Private Sub Timer1_Timer()

          '定時器事件,用于周期性檢查連接狀態并更新界面

          If Winsock1.State = sckConnected Then

            '如果連接成功,將標簽的背景色設置為綠色(十六進制顏色值 &HC000&)

            connection.BackColor = &HC000&

          Else

            '如果未連接,將標簽的背景色設置為紅色(十六進制顏色值 &HFF&)

            connection.BackColor = &HFF&

          End If

            

        End Sub



        Private Sub Timer2_Timer()

          '定時器事件,用于周期性檢查連接狀態并重新連接

          If connection.BackColor = &HFF& Then

          '檢查 Winsock 的狀態,如果不是已關閉狀態

          If Winsock1.State <> sckClosed Then

            '關閉當前連接,以便重新連接到 PLC

            Winsock1.Close

            '確認連接IP地址及端口

            Timer3.Interval = 1

          End If

          If Winsock2.State <> sckClosed Then

            '關閉當前連接,以便重新連接到 PLC

            Winsock2.Close

            '確認連接IP地址及端口

            Timer3.Interval = 1

          End If

          

            '變量

            Dim plc_ip As String

            Dim plc_port As Integer

            '讀取IP及端口參數

            plc_ip = ip.Text

            plc_port = port.Text

            '連接到指定的 PLC IP 地址和端口號,這里需替換為實際的 PLC IP 和端口

            Winsock1.Connect plc_ip, plc_port

            Winsock2.Connect plc_ip, plc_port

            '停止IP地址及端口確認

            Timer3.Interval = 0

          End If

        End Sub



        Private Sub Command1_Click()

            '打開通訊設置窗口

            Form2.Show

        End Sub



        Private Sub ConnectToPLC_Click()

          '判斷通訊是否啟動連接

          If Timer2.Interval = 0 Then

             '開始連接

            Timer2.Interval = 1

          ElseIf Timer2.Interval = 1 Then

            '判斷通訊是否啟動連接

            If Winsock1.State <> sckClosed Then

            '停止連接

            Timer2.Interval = 0

            '斷開連接

            Winsock1.Close

            Winsock2.Close

            

            End If

            

          End If



        End Sub



        Private Sub Timer3_Timer()

            '讀取起始地址

            Open App.Path & "\data\add.ini" For Binary As #1

            '更新起始地址

            Add = StrConv(InputB$(LOF(1), 1), vbUnicode)

            Close #1

            '讀取IP地址

            Open App.Path & "\data\ip.ini" For Binary As #1

            '更新IP地址

            ip = StrConv(InputB$(LOF(1), 1), vbUnicode)

            Close #1

            '讀取端口

            Open App.Path & "\data\port.ini" For Binary As #1

            '更新端口

            port = StrConv(InputB$(LOF(1), 1), vbUnicode)

            Close #1

            '停止更新

            Timer3.Interval = 0

        End Sub





        Private Sub TCP0_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 0 Then

            reg.Text = 0

          End If

          '開關量轉換

          If reg.Text = 0 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If



        End Sub



        Private Sub TCP1_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 1 Then

            reg.Text = 1

          End If

          '開關量轉換

          If reg.Text = 1 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If



        End Sub



        Private Sub TCP2_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 2 Then

            reg.Text = 2

          End If

          '開關量轉換

          If reg.Text = 2 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If



        End Sub



        Private Sub TCP3_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 3 Then

            reg.Text = 3

          End If

          '開關量轉換

          If reg.Text = 3 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If



        End Sub



        Private Sub TCP4_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 4 Then

            reg.Text = 4

          End If

          '開關量轉換

          If reg.Text = 4 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If



        End Sub



        Private Sub TCP5_Click(Index As Integer)

          '對齊寄存器地址

          If reg.Text <> 5 Then

            reg.Text = 5

          End If

          '開關量轉換

          If reg.Text = 5 Then

            If low.Text = 0 Then

              low.Text = 1

              SendData_Click

            ElseIf low.Text = 1 Then

              low.Text = 0

              SendData_Click

            End If

          End If


        End Sub



        Private Sub end_Click()

        End

        End Sub



        主站蜘蛛池模板: AV极品无码专区亚洲AV| 亚洲精品一区二区美女| 国产性色的免费视频网站| 精选国产av精选一区二区三区| 精品久久久久久无码人妻蜜桃 | 国产高清精品一区二区三区| 精品午夜福利无人区乱码| 日本一区二区三区专线| 国产精品综合一区二区三区 | 性欧美暴力猛交69hd| 亚洲av永久无码精品水牛影视| 高清无码爆乳潮喷在线观看| 久久av中文字幕资源网| 成人亚洲精品一区二区三区| 美欧日韩一区二区三区视频| 亚洲av中文久久精品国内| 国产国语毛片在线看国产| 亚洲区欧美区综合区自拍区| 久久亚洲精品中文字幕波多野结衣| 亚洲综合激情五月色一区| 午夜精品区| 国产高清精品在线91| 97亚洲熟妇自偷自拍另类图片| 精品日韩亚洲av无码| 潘金莲高清dvd碟片| 亚洲欧美中文日韩V日本| 偷拍精品一区二区三区| 91偷自国产一区二区三区| 麻豆一区二区三区蜜桃免费| 国产午夜福利不卡在线观看 | 国内少妇偷人精品免费| 无码国产偷倩在线播放| 欧美老少配性行为| 精品日韩人妻中文字幕| 国产亚洲精品成人av一区| 亚洲精品综合一区二区在线 | 成人啪啪高潮不断观看| 亚洲毛片不卡AV在线播放一区| 少妇午夜啪爽嗷嗷叫视频| 国产精品午夜精品福利| 四虎国产精品永久入口|