Minggu, 05 Juni 2011

Program Scada menggunakan Winsock

11.  Buka program Visual Basic 6.0

  2.  Pilih “Standard EXE” pada form New Project


3. Buat tampilan Form Server seperti gambar berikut :


Keterangan:

TextBox

a.      Name           : Text1

b.      Name           : Text2

d.      Name           : Text3

e.       Name           : Text4



Shape

c.       Name           : Shape1

Fillcolor  : &H000000FF&

f.        Name           : Shape2

Fillcolor  : &H000000FF&



Command Button

g.      Name           : Command1

                       Command2

  4.  Masukkan script berikut pada form Server:

Dim data As String

Dim data1 As String

Dim data2 As String

Private intsockcnt As Integer



Private Sub Command1_Click()

     On Error GoTo Err

   

    Dim intcnt As Integer

    For intcnt = 1 To intsockcnt

        If Winsock1(intcnt).State = sckConnected Then Winsock1(intcnt).GetData data1

        Text1.Text = data1 & vbCrLf

        DoEvents

        Text2.Text = data2 & vbCrLf

    Next intcnt

    Exit Sub



Err:

    MsgBox "Error : " & Err.Description

 

End Sub





Private Sub Form_Load()

    On Error GoTo Err

    Winsock1(0).Close

    Winsock1(0).LocalPort = 250

    Winsock1(0).Listen

    Exit Sub

Err:

    MsgBox "Error : " & Err.Description, vbCritical

End Sub






Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)

    intsockcnt = intsockcnt + 1

 

    Load Winsock1(intsockcnt)

    Winsock1(intsockcnt).Accept requestID

    Shape1.BackColor = &HC0C000 & vbCrLf

   

End Sub



Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)



    Dim strdata As String

    Dim intcnt As Integer

   

    Winsock1(Index).GetData strdata, vbString

    Text1.Text = data1 & vbCrLf

    Text2.Text = data2 & vbCrLf

   

    For intcnt = 1 To intsockcnt

    If Winsock1(intcnt).State = sckConnected Then Winsock1(intcnt).SendData strdata

    End If

   

    Next intcnt



End Sub
 


 5. Buat pula tampilan Form Client seperti gambar dibawah:



Keterangan :

Textbox

a.       Name    : txInput

c.       Name    : txRH

d.      Name    : txPort


                                HScrollbar

b.      Name    : HScr1



Command Button

e.      Name    : command1



Option Button

f.        Name    : Option1

g.       Name    : Option2


Shape

h.      Name    : Shape1

Fillcolor : &H000000FF&

6. Masukkan script berikut pada form Client:


Dim data1 As String

Dim data2 As String

Dim data3 As String



Private Sub Command1_Click()

    On Error GoTo err



    Winsock1.Close

    Winsock1.RemoteHost = txRH.Text

    Winsock1.RemotePort = txPort.Text

    Winsock1.Connect

    Shape1.BackColor = &HC0C000

    Form1.Caption = "Anda terhubung ke Server"

    Exit Sub

err:

    MsgBox "Error : " & err.Description, vbCritical

End Sub



Private Sub Form_Load()

    HScr1.Enabled = False

End Sub



Private Sub HScr1_Change()

    txInput.Text = HScr1.Value

    data1 = HScr1.Value

End Sub



Private Sub HScr1_DragDrop(Source As Control, X As Single, Y As Single)

    HScr1_HScroll

End Sub



Private Sub HScr1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)

    HScr1_HScroll

End Sub




Private Sub Option1_Click()

    txInput.Enabled = True

    HScr1.Enabled = True

    data2 = Option1.Caption

    End Sub

Private Sub Option2_Click()

    txInput.Enabled = False

    HScr1.Enabled = False

    data3 = Option1.Caption

    MsgBox "Status alat sedang rusak ...!!", vbInformation + vbOKOnly, "PrjClient"

End Sub



Private Sub HScr1_HScroll()

    Winsock1.SendData data1

    DoEvents

End Sub




Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    Dim data As String

    Winsock1.GetData data, vbString

    txInput = txInput & data & vbCrLf

End Sub

7. Selamat mencoba !! ~('-'~)(~'-')~




1 komentar:

  1. Vika..very good kamu udh berusaha mencoba, tp masih ada yang perlu diperbaiki dan di sederhanakan..
    U di client…kapan data2 dan data3 nya di send…?? Pantesen server nda pernah dapat tuh datanya…Knp ga pada saat Option1.Click() dan Option2.Click() saja send data2 dan data3
    Trus untuk pengukuran gunakan saja 1 event HScr1.Change() sj. Didalamnya sekalian bisa send data1.
    Nanti server yang melihat apa isi teks data yang datang di Winsock1.DataArrival dengan menggunakan fungsi if, misalnya jika isinya OK atau NOK, masukkan data ke variable status, trus selain itu masukkan ke variable pengukuran selanjutnya dimasukkan ke komponen vb yang bersesuaian.
    Untuk multi clientnya gunakan indeks, berlaku untuk winsock termasuk juga textbox, command dan shapenya jg pake indeks spy code programnya menjadi simple tapi berlaku untuk banyak client..
    Ok kamu pasti bisa..!! Silahkan disempurnakan….

    BalasHapus