一区二区三区成人-一区二区三区www-一区二区三区 日韩-一区二区日韩欧美-一区二区日韩精品中文字幕-一区二区日韩

趙云龍
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 6 個
工控威望: 53 點
下載積分: 256 分
在線時間: 8(小時)
注冊時間: 2023-11-23
最后登錄: 2024-12-03
查看趙云龍的 主題 / 回貼
樓主  發(fā)表于: 2024-09-17 16:49
Option Explicit

Private Sub Form_Load()

  '設(shè)置本地任意可用端口,這樣系統(tǒng)會自動分配一個未被占用的端口

  Winsock1.LocalPort = 0

  Winsock2.LocalPort = 0

  '設(shè)置通信協(xié)議為 TCP 協(xié)議

  Winsock1.Protocol = sckTCPProtocol

  Winsock2.Protocol = sckTCPProtocol

  '開始監(jiān)聽,等待客戶端連接

  Winsock1.Listen

  Winsock2.Listen

  '初始化PLC地址,IP,端口數(shù)據(jù)

  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 處于已連接狀態(tài)

  If Winsock1.State = sckConnected Then

    '構(gòu)造 Modbus TCP 請求數(shù)據(jù)

    Dim PLC_Add As Long

    Dim dataToSend As Integer

    Dim dataToSend1 As Integer

    Dim dataToSend2 As Integer

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

    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)

      '發(fā)送構(gòu)造好的請求數(shù)據(jù)給 PLC

      Winsock1.SendData request

    Exit Sub

  

  Else

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

    MsgBox "Not connected to PLC."

  End If

  

End Sub


Private Sub Timer1_Timer()

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

  If Winsock1.State = sckConnected Then

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

    connection.BackColor = &HC000&

  Else

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

    connection.BackColor = &HFF&

  End If

    

End Sub



Private Sub Timer2_Timer()

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

  If connection.BackColor = &HFF& Then

  '檢查 Winsock 的狀態(tài),如果不是已關(guān)閉狀態(tài)

  If Winsock1.State <> sckClosed Then

    '關(guān)閉當(dāng)前連接,以便重新連接到 PLC

    Winsock1.Close

    '確認(rèn)連接IP地址及端口

    Timer3.Interval = 1

  End If

  If Winsock2.State <> sckClosed Then

    '關(guān)閉當(dāng)前連接,以便重新連接到 PLC

    Winsock2.Close

    '確認(rèn)連接IP地址及端口

    Timer3.Interval = 1

  End If

  

    '變量

    Dim plc_ip As String

    Dim plc_port As Integer

    '讀取IP及端口參數(shù)

    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地址及端口確認(rèn)

    Timer3.Interval = 0

  End If

End Sub



Private Sub Command1_Click()

    '打開通訊設(shè)置窗口

    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

  '開關(guān)量轉(zhuǎn)換

  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

  '開關(guān)量轉(zhuǎn)換

  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

  '開關(guān)量轉(zhuǎn)換

  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

  '開關(guān)量轉(zhuǎn)換

  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

  '開關(guān)量轉(zhuǎn)換

  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

  '開關(guān)量轉(zhuǎn)換

  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


powtiger
狂人日妓
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 314 個
工控威望: 450 點
下載積分: 3358 分
在線時間: 124(小時)
注冊時間: 2014-03-04
最后登錄: 2025-02-20
查看powtiger的 主題 / 回貼
1樓  發(fā)表于: 2024-09-18 08:28
VB工程發(fā)一個上來學(xué)習(xí)啊
科技創(chuàng)造未來,人才決定明天!

主站蜘蛛池模板: 青青青国产成人久久111网站 | 日本xxx在线观看免费播放 | 日本乱子| 国产精品欧美日韩一区二区 | 欧美不卡一区二区三区免 | 国产一成人精品福利网站 | 被夫上司强迫中文 | 男男playh片在线观看 | mm在线 | 亚洲国产免费观看视频 | 美女张开下身让男人桶 | 日本大尺度激情做爰叫床 | 极品91| 亚洲激情视频在线 | 日韩免费在线视频观看 | 亚洲区视频在线观看 | 岛国虐乳紧缚媚药调教 | julia ann黑人巨大 | 亚洲第一区欧美日韩精品 | 国产精品久久久久久久久免费观看 | 亚洲乱亚洲乱妇41p国产成人 | 成人小视频在线观看免费 | 久久伊人中文字幕有码 | 久久综合中文字幕佐佐木希 | 免费国产高清精品一区在线 | 恩不要好大好硬好爽3p | 日本精品人妖shemale人妖 | 91九色jiuse006 | 女女性恋爱视频入口 | 四虎永久免费地址 | 精品国产香蕉 | 亚洲四虎永久在线播放 | 国产91在线精品狼人 | 成人免费观看在线视频 | 国产人成精品午夜在线观看 | 91高清国产经典在线观看 | 亚洲国产cao| 国产成人精品曰本亚洲77美色 | 2020韩国三级理论在线观看 | 狠狠色综合久久婷婷色天使 | 精品日韩二区三区精品视频 |