VERSION 5.00 Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX" Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "comctl32.ocx" Begin VB.Form Form1 BackColor = &H8000000E& Caption = "0" ClientHeight = 7950 ClientLeft = 60 ClientTop = 345 ClientWidth = 11175 Icon = "Form1.frx":0000 LinkTopic = "Form1" Picture = "Form1.frx":014A ScaleHeight = 7950 ScaleWidth = 11175 StartUpPosition = 3 'Windows Default Begin MSWinsockLib.Winsock Winsock1a Left = 7440 Top = 1800 _ExtentX = 741 _ExtentY = 741 _Version = 393216 RemotePort = 502 End Begin VB.CommandButton cmdDisconnecta Caption = "Disconnect" Enabled = 0 'False Height = 375 Left = 3240 TabIndex = 90 Top = 2160 Width = 975 End Begin VB.Timer Tloading Enabled = 0 'False Interval = 1000 Left = 5400 Top = 6240 End Begin VB.Timer Timerconek Enabled = 0 'False Interval = 1000 Left = 4440 Top = 6240 End Begin VB.Timer Timerwaktu Interval = 500 Left = 4920 Top = 6240 End Begin VB.Timer TimerTO Enabled = 0 'False Interval = 1500 Left = 4080 Top = 6240 End Begin VB.Frame Frame2 Caption = "Frame2" Height = 2415 Left = 120 TabIndex = 63 Top = 240 Width = 7095 Begin VB.CommandButton cmdConnecta Caption = "Connect" Height = 375 Left = 2280 TabIndex = 89 Top = 1920 Width = 855 End Begin VB.TextBox txtLengthRega Height = 285 Left = 3240 TabIndex = 87 Text = "6" Top = 1560 Width = 855 End Begin VB.TextBox txtStartRega Height = 285 Left = 2280 TabIndex = 86 Text = "2000" Top = 1560 Width = 855 End Begin VB.TextBox txtIPa Height = 285 Left = 480 TabIndex = 85 Text = "192.168.1.20" Top = 1560 Width = 1695 End Begin ComctlLib.ProgressBar ProgressBar1 Height = 255 Left = 4440 TabIndex = 80 Top = 600 Width = 1935 _ExtentX = 3413 _ExtentY = 450 _Version = 327682 Appearance = 1 Max = 20 End Begin VB.CommandButton cmdRead Caption = "Read" Height = 375 Left = 4440 TabIndex = 73 Top = 1920 Width = 735 End Begin VB.CommandButton cmdRealtime Caption = "Realtime ON" Height = 375 Left = 5160 TabIndex = 72 Top = 1920 Width = 1215 End Begin VB.TextBox txtStartReg Height = 285 Left = 2280 TabIndex = 69 Text = "2000" Top = 600 Width = 855 End Begin VB.TextBox txtLengthReg Height = 285 Left = 3240 TabIndex = 68 Text = "42" Top = 600 Width = 855 End Begin VB.CommandButton cmdConnect Caption = "Connect" Height = 375 Left = 2280 TabIndex = 67 Top = 960 Width = 855 End Begin VB.CommandButton cmdDisconnect Caption = "Disconnect" Enabled = 0 'False Height = 375 Left = 3120 TabIndex = 66 Top = 960 Width = 975 End Begin VB.TextBox txtIP Height = 285 Left = 480 TabIndex = 65 Text = "192.168.1.30" Top = 600 Width = 1695 End Begin VB.Label lb_scan Caption = "0" Height = 255 Left = 5880 TabIndex = 94 Top = 1080 Width = 615 End Begin VB.Label Label6 Caption = "##" Height = 255 Left = 5520 TabIndex = 93 Top = 1080 Width = 255 End Begin VB.Label Label4 Caption = "Status Scan :" Height = 255 Left = 4440 TabIndex = 92 Top = 1080 Width = 1335 End Begin VB.Label lblStatusa BackColor = &H8000000A& Height = 375 Left = 480 TabIndex = 91 Top = 1920 Width = 1695 End Begin VB.Label lblStatus BackColor = &H8000000A& Height = 375 Left = 480 TabIndex = 88 Top = 960 Width = 1695 End Begin VB.Label lbmenitx Caption = "00" Height = 255 Left = 4680 TabIndex = 79 Top = 0 Width = 375 End Begin VB.Label lbdetikx BackColor = &H0000FFFF& Caption = "00" Height = 255 Left = 5160 TabIndex = 78 Top = 0 Width = 375 End Begin VB.Label lbjamx Caption = "00" Height = 255 Left = 4200 TabIndex = 77 Top = 0 Width = 375 End Begin VB.Label lbjam Caption = "00:00:00" Height = 255 Left = 2640 TabIndex = 75 Top = 0 Width = 855 End Begin VB.Label lblTanggal Caption = "00/00/0000" Height = 255 Left = 1080 TabIndex = 74 Top = 0 Width = 1335 End Begin VB.Label Label1 Caption = "Address:" Height = 255 Left = 2280 TabIndex = 71 Top = 360 Width = 735 End Begin VB.Label Label2 Caption = "Length:" Height = 255 Left = 3000 TabIndex = 70 Top = 360 Width = 855 End Begin VB.Label Label3 Caption = "IP Address:" Height = 255 Left = 480 TabIndex = 64 Top = 360 Width = 1095 End End Begin VB.Frame Frame1 Caption = "Data" Height = 3855 Left = 120 TabIndex = 0 Top = 2760 Width = 7095 Begin VB.TextBox txtReg BackColor = &H000000C0& Height = 285 Index = 41 Left = 5040 TabIndex = 62 Top = 3000 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 40 Left = 4320 TabIndex = 61 Top = 3000 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 39 Left = 3600 TabIndex = 60 Top = 3000 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 38 Left = 2880 TabIndex = 59 Top = 3000 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 37 Left = 2160 TabIndex = 58 Top = 3000 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 36 Left = 1440 TabIndex = 57 Top = 3000 Width = 615 End Begin VB.TextBox txtReg BackColor = &H000000FF& Height = 285 Index = 35 Left = 5040 TabIndex = 56 Top = 2640 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 34 Left = 4320 TabIndex = 55 Top = 2640 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 33 Left = 3600 TabIndex = 54 Top = 2640 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 32 Left = 2880 TabIndex = 53 Top = 2640 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 31 Left = 2160 TabIndex = 52 Top = 2640 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 30 Left = 1440 TabIndex = 51 Top = 2640 Width = 615 End Begin VB.TextBox txtReg BackColor = &H000000C0& Height = 285 Index = 29 Left = 5040 TabIndex = 50 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 28 Left = 4320 TabIndex = 49 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 27 Left = 3600 TabIndex = 48 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 26 Left = 2880 TabIndex = 47 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 25 Left = 2160 TabIndex = 46 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 24 Left = 1440 TabIndex = 45 Top = 2280 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 23 Left = 5040 TabIndex = 44 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 22 Left = 3600 TabIndex = 43 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 21 Left = 4320 TabIndex = 42 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 20 Left = 2880 TabIndex = 41 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 19 Left = 2160 TabIndex = 40 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 18 Left = 1440 TabIndex = 39 Top = 1920 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 17 Left = 5040 TabIndex = 38 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 16 Left = 4320 TabIndex = 37 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 15 Left = 3600 TabIndex = 16 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 14 Left = 2880 TabIndex = 15 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 13 Left = 2160 TabIndex = 14 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 12 Left = 1440 TabIndex = 13 Top = 1560 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 11 Left = 5040 TabIndex = 12 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 10 Left = 4320 TabIndex = 11 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 9 Left = 3600 TabIndex = 10 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 8 Left = 2880 TabIndex = 9 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 7 Left = 2160 TabIndex = 8 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 6 Left = 1440 TabIndex = 7 Top = 1200 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 5 Left = 5040 TabIndex = 6 Top = 600 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 4 Left = 4320 TabIndex = 5 Top = 600 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 3 Left = 3600 TabIndex = 4 Top = 600 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 2 Left = 2880 TabIndex = 3 Top = 600 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 1 Left = 2160 TabIndex = 2 Top = 600 Width = 615 End Begin VB.TextBox txtReg Height = 285 Index = 0 Left = 1440 TabIndex = 1 Top = 600 Width = 615 End Begin VB.Label Label5 Caption = "TMA" Height = 255 Index = 23 Left = 5040 TabIndex = 84 Top = 240 Width = 615 End Begin VB.Label Label5 Caption = "TB3" Height = 255 Index = 15 Left = 4320 TabIndex = 83 Top = 240 Width = 615 End Begin VB.Label Label5 Caption = "TB2" Height = 255 Index = 14 Left = 3600 TabIndex = 82 Top = 240 Width = 615 End Begin VB.Label Label5 Caption = "TB1" Height = 255 Index = 13 Left = 2880 TabIndex = 81 Top = 240 Width = 615 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 22 Left = 1320 TabIndex = 36 Top = 3000 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 21 Left = 1320 TabIndex = 35 Top = 1200 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 20 Left = 1320 TabIndex = 34 Top = 1560 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 19 Left = 1320 TabIndex = 33 Top = 1920 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 18 Left = 1320 TabIndex = 32 Top = 2280 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 17 Left = 1320 TabIndex = 31 Top = 2640 Width = 135 End Begin VB.Label Label5 Caption = ":" Height = 255 Index = 16 Left = 1320 TabIndex = 30 Top = 600 Width = 135 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 12 Left = 5040 TabIndex = 29 Top = 960 Width = 855 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 11 Left = 4320 TabIndex = 28 Top = 960 Width = 615 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 10 Left = 3600 TabIndex = 27 Top = 960 Width = 615 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 9 Left = 2880 TabIndex = 26 Top = 960 Width = 615 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 8 Left = 2160 TabIndex = 25 Top = 960 Width = 615 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 7 Left = 1440 TabIndex = 24 Top = 960 Width = 615 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 6 Left = 120 TabIndex = 23 Top = 3000 Width = 1095 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 5 Left = 120 TabIndex = 22 Top = 2640 Width = 975 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 4 Left = 120 TabIndex = 21 Top = 2280 Width = 975 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 3 Left = 120 TabIndex = 20 Top = 1920 Width = 975 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 2 Left = 120 TabIndex = 19 Top = 1560 Width = 975 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 1 Left = 120 TabIndex = 18 Top = 1200 Width = 975 End Begin VB.Label Label5 Caption = "Label5" Height = 255 Index = 0 Left = 120 TabIndex = 17 Top = 600 Width = 975 End End Begin MSWinsockLib.Winsock Winsock1 Left = 7440 Top = 1200 _ExtentX = 741 _ExtentY = 741 _Version = 393216 RemotePort = 502 End Begin VB.Label lbkonek Caption = "0" Height = 375 Left = 3360 TabIndex = 76 Top = 6240 Width = 735 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim MbusQuery(11) As Byte Dim MbusByteArray(255) As Byte Dim MbusResponse As String Dim ModbusTimeOut As Integer Dim MbusRead As Boolean Dim MbusWrite As Boolean Dim ModbusWait As Boolean Dim datefile As String Dim datefiletl As String Dim dataBB As String Dim dataBBx As String Dim dataDCC As String Dim jam As String Dim printxc As Integer Dim printxctl As Integer Private Sub cboReg_Click() If cmdConnect.Enabled = False Then Call cmdRead_Click End If End Sub Private Sub cmdConnect_Click() On Error Resume Next Me.MousePointer = vbHourglass Winsock1.RemoteHost = txtIP.Text Winsock1.Close Winsock1.Connect Dim StartTime StartTime = Timer Do While ((Timer < StartTime + 2) And (Winsock1.State <> 7)) DoEvents Loop If (Winsock1.State = 7) Then lblStatus.Caption = "Connected" lblStatus.BackColor = vbGreen cmdConnect.Enabled = False cmdDisconnect.Enabled = True '--------------------------- cmdRead.Enabled = True cmdRealtime.Enabled = True Timerconek.Enabled = False Else lblStatus.Caption = "Can't connect to " + txtIP.Text lblStatus.BackColor = vbYellow End If 'End If Me.MousePointer = vbDefault End Sub Private Sub cmdConnecta_Click() On Error Resume Next Me.MousePointer = vbHourglass Winsock1a.RemoteHost = txtIPa.Text Winsock1a.Close Winsock1a.Connect Dim StartTimea StartTimae = Timera Do While ((Timera < StartTimea + 2) And (Winsock1a.State <> 7)) DoEvents Loop If (Winsock1a.State = 7) Then lblStatusa.Caption = "Connected" lblStatusa.BackColor = vbGreen cmdConnecta.Enabled = False cmdDisconnecta.Enabled = True '--------------------------- cmdRead.Enabled = True cmdRealtime.Enabled = True Timerconek.Enabled = False Else lblStatusa.Caption = "Can't connect to " + txtIPa.Text lblStatusa.BackColor = vbYellow End If 'End If Me.MousePointer = vbDefault End Sub Private Sub cmdDisconnect_Click() Me.MousePointer = vbHourglass 'If TimerRead.Enabled = True Then 'TimerRead.Enabled = False Winsock1.Close 'If (Winsock1.State <> sckClosed) Then ' Winsock1.Close 'End If 'Dim StartTime 'StartTime = Timer 'Do While ((Timer < StartTime + 2) And (Winsock1.State <> sckClosed)) ' DoEvents 'Loop If (Winsock1.State = sckClosed) Then lblStatus.Caption = "Disconnected" lblStatus.BackColor = vbRed cmdConnect.Enabled = True cmdDisconnect.Enabled = False Else lblStatus.Caption = "Error disconnect!" lblStatus.BackColor = vbYellow End If Me.MousePointer = vbDefault End Sub Sub Printx() On Error Resume Next 'print data permenit '--------------- dataDCC = txtReg(0) & ";" & txtReg(1) & ";" & txtReg(2) & ";" & txtReg(3) & ";" & txtReg(4) & ";" & txtReg(5) dataBB = txtReg(6) & ";" & txtReg(7) & ";" & txtReg(8) & ";" & txtReg(9) & ";" & txtReg(10) & ";" & txtReg(11) dataBLY = txtReg(12) & ";" & txtReg(13) & ";" & txtReg(14) & ";" & txtReg(15) & ";" & txtReg(16) & ";" & txtReg(17) dataKL = txtReg(18) & ";" & txtReg(19) & ";" & txtReg(20) & ";" & txtReg(21) & ";" & txtReg(22) & ";" & txtReg(21) dataART = txtReg(24) & "," & txtReg(25) & "," & txtReg(26) & "," & txtReg(27) & "," & txtReg(28) & "," & txtReg(29) dataBLNG = txtReg(30) & "," & txtReg(31) & "," & txtReg(32) & "," & txtReg(33) & "," & txtReg(34) & "," & txtReg(35) dataRTB = txtReg(36) & "," & txtReg(37) & "," & txtReg(38) & "," & txtReg(39) & "," & txtReg(40) & "," & txtReg(41) Data = lbjam & "|" & dataDCC & "|" & dataBB & "|" & dataBLY namefile = App.Path & "\" & datefile & ".csv" Open namefile For Append As 1 Print #1, Data Close #1 lblStatus.Caption = "" lblStatus.BackColor = &H8000000F End Sub Private Sub cmdDisconnecta_Click() Me.MousePointer = vbHourglass Winsock1a.Close If (Winsock1a.State = sckClosed) Then lblStatusa.Caption = "Disconnected" lblStatusa.BackColor = vbRed cmdConnecta.Enabled = True cmdDisconnecta.Enabled = False Else lblStatusa.Caption = "Error disconnect!" lblStatusa.BackColor = vbYellow End If Me.MousePointer = vbDefault End Sub Private Sub cmdRead_Click() On Error Resume Next If (Winsock1.State = 7) Then Call ReadHolding Else lblStatus.Caption = "Device not connected via TCP/IP!" ' MsgBox ("Device notcccccccccc connected via TCP/IP!") Tloading.Enabled = True End If End Sub Private Sub cmdRealtime_Click() If cmdRealtime.Caption = "Realtime ON" Then If (Winsock1.State <> 7) Then cmdConnect_Click End If Timerwaktu.Enabled = True cmdRealtime.Caption = "Realtime OFF" Tloading.Enabled = False ProgressBar1.Value = 0 Else Timerwaktu.Enabled = False cmdRealtime.Caption = "Realtime ON" cmdDisconnect_Click End If End Sub Private Sub Form_Load() Label5(0).Caption = "DCC" Label5(1).Caption = "Bukit BAtas" Label5(2).Caption = "Bunglay" Label5(3).Caption = "Kalaan" Label5(4).Caption = "Artain" Label5(5).Caption = "Belangian" Label5(6).Caption = "Rantau BAlai" Label5(7).Caption = "Rf ST" Label5(8).Caption = "Rf/menit" Label5(9).Caption = "Batt" Label5(10).Caption = "Temp" Label5(11).Caption = "RH" Label5(12).Caption = "Com" 'cmdRead.Enabled = False cmdRealtime_Click ProgressBar1.Value = 0 End Sub Sub prints() On Error Resume Next dataDCCx = lbjam & "," & txtReg(0) & "," & txtReg(1) & "," & txtReg(2) & "," & txtReg(3) & "," & txtReg(4) & "," & txtReg(5) dataBBx = txtReg(6) & "," & txtReg(7) & "," & txtReg(8) & "," & txtReg(9) & "," & txtReg(10) & "," & txtReg(11) databunglayx = txtReg(12) & "," & txtReg(13) & "," & txtReg(14) & "," & txtReg(15) & "," & txtReg(16) & "," & txtReg(17) datareal = dataDCCx & "," & dataBBx & "," & databunglayx filedataBB = App.Path & "\data.txt" Open filedataBB For Output As 1 Print #1, datareal Close #1 lblStatus.Caption = "" lblStatus.BackColor = &H8000000F End Sub Private Sub Timer1_Timer() End Sub Private Sub Timerconek_Timer() On Error Resume Next If lbkonek <= 10 Then lbkonek = lbkonek + 1 Else lbkonek = 0 cmdConnect_Click End If End Sub Private Sub TimerRead_Timer() End Sub Private Sub TimerTO_Timer() ModbusTimeOut = ModbusTimeOut + 1 If ModbusTimeOut > 2 Then ModbusWait = False ModbusTimeOut = 0 lblStatus.Caption = "Modbus Time Out!" lblStatus.BackColor = vbYellow TimerTO.Enabled = False Timerconek = True End If End Sub Private Sub TimerWaktu_Timer() On Error Resume Next lblTanggal = Format(Date, "dd/mm/yyyy") lbjam = Time lbjamx = Format(Time, "hh") lbmenitx = Format(Time, "nn") lbdetikx = Format(Time, "ss") datefile = Format(Date, "ddmmYYYY") 'print data prmenit If lbdetikx = 0 And printxc = 0 Then Call Printx ' print menit printxc = 1 End If If lbdetikx = 1 Then printxc = 0 End If ' If lbdetikx = 0 Then ' End If Call prints Call ReadHolding End Sub Private Sub Tloading_Timer() If ProgressBar1 > 18 Then ProgressBar1.Value = 0 Else ProgressBar1.Value = ProgressBar1.Value + 1 End If Select Case ProgressBar1 Case 3 cmdDisconnect_Click For i = 0 To 41 txtReg(i).Text = 0 Next i Case 10 cmdRealtime_Click End Select End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) On Error Resume Next Dim bData As Byte Dim j As Byte Dim k As Integer For i = 1 To bytesTotal Winsock1.GetData bData MbusByteArray(i) = bData Next j = 0 For i = 10 To MbusByteArray(9) + 9 Step 2 Data1 = MbusByteArray(i) * 128 txtReg(j).Text = (Data1 * 2) + MbusByteArray(i + 1) 'if txtReg(5)or txtReg(11)ort xtReg(17)or txtReg(23)or txtReg(29)or txtReg(35)or txtReg(41)=0 then Select Case j Case 5 ' txtReg(j).Text = txtReg(j).Text / 1000 Case 11 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If Case 17 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If Case 23 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If Case 29 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If Case 35 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If Case 41 If txtReg(j).Text = 1 Then txtReg(j).Text = "Bad" Else txtReg(j).Text = "OK" End If End Select j = j + 1 Next i lblStatus.Caption = "RX" lblStatus.BackColor = vbGreen ' For k = j To 42 ' txtReg(k).Text = "" 'Next k ModbusWait = False ModbusTimeOut = 0 TimerTO.Enabled = False '----- End Sub Sub ReadHolding() On Error Resume Next lblStatus.Caption = "TX" lblStatus.BackColor = &HFF& 'cek if length is more than 42 If Val(txtLengthReg.Text) > 42 Then MsgBox "Can not read more than 16 registers!" Exit Sub End If Dim StartLow As Byte Dim StartHigh As Byte Dim LengthLow As Byte Dim LengthHigh As Byte If (Winsock1.State = 7) Then StartLow = Val(txtStartReg.Text - 1) Mod 256 StartHigh = Val(txtStartReg.Text - 1) \ 256 LengthLow = Val(txtLengthReg.Text) Mod 256 LengthHigh = Val(txtLengthReg.Text) \ 256 MbusQuery(0) = 0 MbusQuery(1) = 0 MbusQuery(2) = 0 MbusQuery(3) = 0 MbusQuery(4) = 0 MbusQuery(5) = 6 MbusQuery(6) = 1 MbusQuery(7) = 3 MbusQuery(8) = StartHigh MbusQuery(9) = StartLow MbusQuery(10) = LengthHigh MbusQuery(11) = LengthLow MbusRead = True MbusWrite = False Winsock1.SendData MbusQuery ModbusWait = True ModbusTimeOut = 0 TimerTO.Enabled = True Else lblStatus.Caption = "Device not connected via TCP/IP!" End If If lb_scan.Caption >= 2 Then lb_scan.Caption = 0 Else lb_scan = lb_scan + 1 End If End Sub Function SetBit(aByte As Byte, bitId As Integer, outBit As Integer) As Byte If outBit = 1 Then SetBit = aByte Or (2 ^ (bitId And 7)) ElseIf outBit = 0 Then SetBit = aByte And (Not (2 ^ (bitId And 7))) End If End Function Function ValBit(aByte As Byte, bitId As Integer) As Integer If (aByte And (2 ^ bitId)) = 0 Then ValBit = 0 Else ValBit = 1 End If End Function Function SetByte(strBit As String) As Byte For b = 1 To Len(strBit) aByte = Val(aByte) * 2 bitB = Mid(strBit, b, 1) aByte = Val(aByte) + bitB Next b SetByte = aByte End Function