Kontrol dan Monitoring Putaran Motor Stepper Melalui Jaringan LAN Menggunakan Visual Basic

Print
Category: Listrik & Elektronika
Last Updated on Wednesday, 11 February 2015 Published Date Written by Agus Putranto

KONTROL DAN MONITORING PUTARAN MOTOR STEPPER MELALUI JARINGAN LAN MENGGUNAKAN VISUAL BASIC

 

Oleh : Agus Putranto, S.Pd., M.Sc.

(Widyaiswara Departemen Elektro - PPPPTK BOE Malang)

 

Abstrak:

Keberadaan peralatan mesin produksi (plant) yang tersebar luas di berbagai lokasi dalam satu wilayah industri memerlukan adanya suatu sistim yang dapat mengontrol dan memonitor plant dari jarak jauh. Dengan memanfaatkan jaringan LAN dengan komputer yang sudah tersedia, suatu plant dapat dikontrol dan dimonitor langsung dari tempat lain melalui komputer di meja kerja tanpa harus mendatangi lokasi plant atau menunggu kertas laporan dari operator setiap akhir pergantian shift.

Pada eksperimen ini dibangun suatu model sistim kontrol dan monitoring melalhu jaringan LAN dengan plant berupa motor stepper. Motor stepper dipasang pada komputer server melalui antarmuka (interface) ke port serial USB. Dua buah program aplikasi dibangun menggunakan Integrated Development Environmen (IDE) Visual Basic 6 untuk server dan client. Komunikasi data antara komputer dengan motor stepper yang tersambung melalui serial port menggunakan fasilitas yang sudah tersedia pada Visual Basic yaitu MSComm dan untuk komunikasi data antar komputer melalui jaringan LAN menggunakan komponen Winsock.

Dari hasil ekesperimen, putaran motor stepper dapat dikontrol dan dimonitor baik dari komputer server maupun dari komputer client yang tersambung pada jaringan LAN baik menggunakan kabel Ethernet maupun tanpa kabel (Wi-Fi). Banyaknya komputer client yang tersambung pada server tidak dibatasi. Data monitoring putaran motor stepper dikirim secara switching dengan interval timer 0.001 detik per client.

 

Kata kunci:  Kontrol dan monitoring, LAN, Motor stepper, Visual Basic

 

 

PENDAHULUAN

 

Local Area Network (LAN) adalah jaringa komputer yang mencakup wilayah kecil seperti misalnya satu kantor, satu kampus, satu perusahaan. Pada umumnya setiap komputer yang tersambung pada jaringan LAN dihubungkan melalui kabel Unshielded twisted-pair (UTP) ke perangkat yang disebut Switch dengan teknologi Ethernet atau dengan teknologi tanpa kabel kabel dengan sebutan Hotspot menggunakan perangkat wirelessfidelity (Wi-Fi).

Tersedianya jaringan LAN pada suatu institusi atau perusahaan selain sebagai sarana koneksi internet dan sumberdata, dapat pula dimanfaatkan untuk keperluan lain yaitu untuk sistim kontrol dan monitoring peralatan proses produksi misalnya mesin. Pada industri yang besar, mesin produksi tersebar pada lokasi yang luas bahkan untuk mendatanginya memerlukan kendaran. Pengoperasian mesin produksi dilakukan oleh operator yang tugasnya mulai mengoperasikan mesin, mengawasi jalannya mesin, mencatat setiap kejadian kesalahan dan mencatat hasil produksi dalam suatu format laporan yang tertulis pada kertas. Pelaporan catatan dalam kertas ini biasanya dibuat untuk setiap pergantian operator pada setiap shift. Dengan demikian kalau dalam sehari terdapat tiga pergantian maka waktu yang diperlukan untuk medapatkan informasi operasional mesin harus menunggu setiap 8 jam sekali atau kalau memrlukan informasi aktual saat itu harus mendatangi operator di lokasi mesin berada.

Dari pengalaman dilapangan, banyak dikehendaki adanya sistim yang memungkinkan mengontrol dan memonitor suatu operasional mesin dengan sedikit menggunakan kertas (paperless). Pada saat kapanpun pimpinan dapat mengontrol dan memonitor jalannya mesin dari ruang kerjanya tau dari mana saja tanpa harus menghubungi operator atau dating ke lokasi mesin. Keinginan itulah yang banyak ditemukan di perusahaan besar dan permasalahan itulah yang banyak disampaikan industri.

Tulisan pada artikel ini akan memberikan inspirasi bagaimana mengatasi masalah di atas dengan memanfaatkan jaringan LAN yang tersedia. Sistim kontrol dan monitoring suatu mesin dapat dilakukan dengan membuat program aplikasi komputer dengan Integrated Development Envirement Visual Basic 6. Pada artikel ini sebagai contoh kasus peraalatan yang akan dikontrol dan dimonitoring adalah sebuah motor stepper yang disambungkan ke salah satu computer yang tersambung ke jaringan LAN. Sambubungan motor stepper ke komputer melalui interface ke saluran Universal Serial Bus (USB) seperti pada gambar berikut.

 

 

Gambar 1. Sistim control dan monitoring melalui jaringan LAN

 

Seprti disampaikan di atas, untuk menhubungkan komputer pada suatu jaringan LAN terdapat dua macam cara, yaitu mengunakan koneksi Ethernet dengan kabel UTP antara computer dengan Switch/hub atau dengan  koneksi Wi-Fi sambungan tanpa kabel (wireless) ke Access Point.

 

Motor stepper yang terhubung pada salah satu komputer dapat dikontrol dan dimonitor putarannya oleh komputer manasaja yang tersambung pada jaringan LAN. Dua macam program aplikasi harus dibangun untuk memenuhi fungsi control dan monitoring ini, yaitu server dan client.

 

SERVER

 

Komputer tempat motor stepper dipasang disebut komputer server yang nantinya dipasang program aplikasi server. Program aplikasi server melayani hubungan antarmuka (interfacing) antara komputer dan motor stepper dan hubungan antara komputer server dengan komputer lain yatu client.

Untuk melayani komunikasi data antara komputer dengan motor stepper melalui port serial USB digunakan komponen MSComm yang sudah disediakan pada Visual Basic 6. Beberapa instruksi penting untuk mengakses port serial menggunakan MSComm adalah :

 

MSComm1.CommPort

Untuk menentukan nomor port serial yang digunakan

MSComm1.Settings

Untuk menentukan parameter komunikasi, meliputi : baud rate, parity, lebar data bit dan stop bit

MSComm1.PortOpen

Membuka/menutup port

MSComm1.Output

Mengeluarkan data ke port serial

 

Untuk melayani komukasi data antara komputer server dan client melalui jaringan LAN, digunakan komponen Winsock yang juga sudah tersedia pada Visual Basic 6.

 

Program aplikasi dibuat dengan Visual Basic untuk komputer server tampak pada gambar berikut

 

 

 

 

Gambar 2. Screen shoot program aplikasi server

 

Koneksi ke motor stepper melalui port komunikasi serial dapat dipilih nomor portnya melalui combox. Nomor port serial dapat diketahui dengan melihat pada properties komputer – Device Manager – Ports (Com & LPT) – Virtual Communication (COM …). Tombol “Connect” untuk membuka serial port dan tombol “Disconnect” untuk menutup sambungan.

Pada frame “Kontrol” tersedia tiga buah tombol untuk mengontrol putaran motor stepper, yaitu “Putar kiri”, “Stop” dan “Putar kanan”. Apabila motor stepper sudah tersambung ke komputer server melalui interface USB, setelah tombol “Putar kiri” di tekan maka rentetan data akan dikeluarkan oleh komputer melalui serial port ke motor stepper dan motor akan berputar kearah kiri atau berlawanan dengan arah jarum jam. Apabila tombol “Stop” ditekan, maka motor stepper akan berhenti. Sedangkan jika tombol “Putar kanan” ditekan, maka motor akan berputar ke arah kanan atau searah dengan jarum jam.

Pada frame “Monitorig” tampak motor stepper dengan jarum berwarna merah dipergunakan untuk memonitor arah putaran motor. Jika motor berputar ke kiri maka jarum ikut bergerak ke kiri, jika motor berputar ke kanan maka jarum akan berputar ke kanan dan jika motor berhenti maka jarum juga akan bergenti.

Komputer server dapat melakukan kontrol dan monitoring putaran motor stepper.

 

Pada Frame1 tersedia isian textbox untuk menentukan nomor port yang akan didengar. Sebelum tombol “Start Listening” ditekan, maka koneksi ke jaringan LAN belum dibuka dan computer client tidak dapat menghubungsi server, Sehingga kontrol dan monitoring putaran motor stepper hanya dapat dilakukan oleh komputer server saja.

Ketika tombol “Start Listening” ditekan, maka komputer server siap melayani hubungan ke client. Tampak pada gambar di atas bahwa setelah koneksi ke jaringan dibuka, satu komputer client terhubung. Tampak pula bahwa komputer Client1 ini telah mengontrol motor stepper untuk berputar ke kanan. Setiap kejadian pada jaringan LAN selalu dicatat pada memo yaitu setiap ada komputer client yang tersambung akan dicatat nomor alamat IP-nya (Internet Protocol) , data kontrol apa yang dikirim dan ketika komputer client memutus hubungan juga akan dicatat sehingga jumlah komputer client yang tersambung saat itu dapat dihitung dan dimonitor.

Pada bagian bawah memo ditampilkan jumlah Client yang online saat itu. Program aplikasi kontrol dan montoring ini dapat berjalan untuk banyak Client. Setiap komputer client dapat mengontrol motor yang sama dan akan mendapatkan data informasi monitoring putaran motor stepper yang sama pula.

 

CLIENT

 

Komputer client dapat berupa laptop atau desktop harus tersambung ke jaringan LAN dan suatu program aplikasi client harus dipasang pada komputer client untuk mengontrol dan atau memonitor putaran motor stepper yang terpasang pada komputer server.

 

 

 

Gambar 3. Screen shoot program aplikasi client.

 

Tampak pada gambar di atas, yang harus diketahui adalah alamat IP dan port dari komputer server tempat motor stepper dipasang. Karena perangkat yang akan dikontrol dan dimonitoring dapat dipasang pada computer atau laptop mana saja yang tersambung pada jaringan, maka alamat IP harus disesuaikan dengan computer yang dipakai. Pada eksperimen ini alamat IP dari komputer yang dipergunakan sebagai server adalah 192.168.50.100 dan alamat port adalah 123.  Untuk menyambung ke komputer server dilakukan dengan meng-click tombol “Sambung”. Apabila program aplikasi server tidak dijalankan atau “Start Listening” tidak dijalankan maka sambungan tidak akan terjadi dan pada frame “Status” akanm muncul informasi “Disconnect”.  Tetapi apabila program aplikasi server telah dijalankan maka pada frame “Status” akan muncul informasi bahwa sudah tersambung ke alamat IP yang dimaksukkan. Begitu computer client tersambung ke computer server, data monitoring putaran motor stepper yang paling aktual kan dikirim dari komputer server ke komputer client. Data ini kemudian ditampilkan pada frame “Monitoring” berupa teks yaitu “kanan”. Visualisasi data monitoring dapat disesuaikan dan diganti dengan yang lain. Visualisasi data monitoring yang tampil pada program aplikasi server berupa lingkaran dengan jarum merah yang berputar sesuai dengan kondisi motor.

Pada bagian frame “Kontrol” tersedia tiga tombol dengan fungsi yang berbeda. Tombol “Putar kiri” untuk memutar motor stepper kea rah kiri atau berlawanan arah jarum jam. Tombo “Stop” untuk menghentikan putaran dan tombol “Putar kanan” untuk memutar kea rah kanan atau searah jarum jam. Apabila tombol tombol tersebut ditekan, suatu data request akan dikirim dari komputer client ke komputer server. Selanjutnya data ini diterima oleh komputer server dan dipergunakan untuk mengontrol putaran motor stepper yang tersambung pada port serial USB.  

Jumlah komputer client yang dapat tersambung pada server tidak dibatasi, dan semua komputer client dengan program aplikasi yang sama dapat mengontrol dan memonotor motor stepper yang sama.  Seprti tampak pada gambar 2 di atas, pada saat yang bersamaan terdapat tiga komputer yang mengontrol dan memonitor motor stepper. Setelah tersambung, komputer dengan alamat IP 192.168.50.100 memutar motor stepper kea rah kanan, kemudian komputer dengan IP192.168.50.112 menghentikan motor dam berikutnya komputer dengan IP 192.168.50.180 memutar motor kearah kiri.

 

METODOLOGI

 

Penelitian ini dilakukan dengan metode eksperimen, yaitu dengan membuat dua buah program aplikasi server dan client menggunakan Integrated Development Enviroment (IDE) Visual Basic 6 yang kesuluruhan kode programnnya disertakan pada bagian akhir artikel ini. Tujuan eksperimen ini adalah untuk mendapatkan suatu model sistim control dan monitoring plant melalui jaringan LAN. Plant yang dipergunakan pada eksperimen ini dipilih sebuah motor stepper dengan pertimbangan keamanan. Motor stepper sangat aman apabila diubah-ubah puatarannya oleh banyak client tanpa harus menunggu keadaan berhenti. Dari hasil eksperimen ini diharapkan dapat dijadikan acuan dan dasar untuk merancang sistim kontrol dan monitoring plant berupa mesin produksi yang tersebar di suatu wilayah industri melalui jaringan LAN sehingga proses control dan monitoring tersebut dapat dilakukan jarak jauh dengan memanfaatkan fasilitas komputer dan jaringan yang sudah ada. Eksperimen ini dilakukan di PPPPTK/VEDC dengan menggunkan jaringan LAN yang tersedia baik melalui sambungan kabel maupun Wi-Fi

 

HASIL DAN PEMBAHASAN

 

Dari hasil eksperimen telah dibuat dua buah program aplikasi untruk server dan client dengan screen shoot seprti tampak pada gambar 2 dan 3 di atas. Motor stepper dipasang pada komputer server melalui perangkat antarmuka yang disambung ke port serial USB. Kecepatan motor stepper pada eksperimen ini ditetapkan konstan. Putaran motor stepper dapat dikontrol oleh komputer server maupun client dangan cara meng-click tombol pilihan: Putar kiri, Stop dan Putar kanan. Kondisi aktual putaran motor stepper dikirim sebagai data monitoring ke setiap client yang on-line saat itu dengan metode switching dengan interval timer 0,001 detik.

 

KESIMPULAN

 

Sistim kontrol dan monitoring putaran motor stepper melalui jaringan LAN memerlukan dua program aplikasi masing masing untuk server dan client.

 

Motor stepper dipasang pada komputer server dan dapat dikontrol dan di-monitoring putarannya oleh semua komputer baik server maupun client yang tersambung pada jaringan LAN pada lokasi yang berbeda baik menggunakan sambungan kabel maupun melalui Wi-Fi.

 

 

DAFTAR RUJUKAN

Mark Gibbs, Durchblick im Netzwerk, IWT Verlag, Bonn, 1995

Steve Brown, “VISUAL BASIC 5 The 15 Essential Skills”, BPB Publications, New Delhi., 1997

 

 

KODE PROGRAM SERVER

 

Dim lampu, lamp, c As Byte

Dim SocketCounter As Long

Dim i, j, k, t, tol As Integer

Dim dout, din As String

Dim dLED, sd, sr, A, B, R, dm, f As Double

 

Private Sub bntListen_Click()

On Error Resume Next

For n = 1 To SocketCounter

    sock1(n).Close

    Unload sock1(n)

Next

On Error GoTo t

sock1(0).Close

sock1(0).LocalPort = txtPort

sock1(0).Listen

List3.AddItem "Listening on Port " & txtPort

Exit Sub

t:

MsgBox "Error : " & Err.Description, vbCritical

End Sub

 

Private Sub bntExit_Click()

End

End Sub

 

Private Sub Command1_Click()

MSComm1.CommPort = Combo1.Text

MSComm1.Settings = "19200,N,8,1"

On Error Resume Next

MSComm1.PortOpen = True

If Err Then

   MsgBox "COM" + Str(MSComm1.CommPort) + " tidak bisa dipakai, ganti COM yang lain"

   Command1.Enabled = True

   Command2.Enabled = False

   Combo1.Enabled = True

   Exit Sub

End If

Combo1.Enabled = False

Command1.Enabled = False

Command2.Enabled = True

Timer3.Enabled = True

End Sub

 

Private Sub Command2_Click()

On Error Resume Next

MSComm1.PortOpen = False

If Err Then

   Command1.Enabled = False

   Command2.Enabled = True

   Combo1.Enabled = False

   Exit Sub

End If

Combo1.Enabled = True

Command1.Enabled = True

Command2.Enabled = False

Timer3.Enabled = False

End Sub

 

Private Sub Command6_Click()

din = "kiri"

End Sub

 

Private Sub Command7_Click()

din = "stop"

End Sub

 

Private Sub Command8_Click()

din = "kanan"

End Sub

 

Private Sub Form_Load()

Label11.Caption = "Data arrival = "

Line1.X1 = 1400

Line1.Y1 = 400

Line1.X2 = 1400

Line1.Y2 = 1400

Timer2.Interval = 100

din = "stop"

dm = 1

Timer3.Interval = 50

Timer3.Enabled = False

c = 0

dLED = 0

t = 0

MSComm1.Settings = "19200,n,8,1"

Combo1.Clear

For i = 1 To 99

    Combo1.AddItem Str(i)

Next i

Combo1.Text = Combo1.List(0)

Command2.Enabled = False

Label14.Caption = ""

List1.Clear

List2.Clear

Label3.Caption = "Jumlah client yang online :"

Timer1.Interval = 10

Timer4.Interval = 10

Timer4.Enabled = False

End Sub

 

Private Sub sock1_Close(Index As Integer)

sock1(Index).Close

Unload sock1(Index)

List1.List(Index - 1) = ""

List3.AddItem "Client" & Str(Index) & " -> *** Disconnected"

End Sub

 

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

SocketCounter = SocketCounter + 1

Load sock1(SocketCounter)

sock1(SocketCounter).Accept requestID

List3.AddItem "Client Connected. IP : " & sock1(SocketCounter).RemoteHostIP & " , Client Nick : Client" & Str(SocketCounter)

sock1(SocketCounter).SendData "Your Nick is ""Client" & Str(SocketCounter)

List1.AddItem Str(SocketCounter)

End Sub

 

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

Dim dat As String

sock1(Index).GetData dat, vbString

din = dat

Label11.Caption = "Data arrival = " & dat

List3.AddItem "Client" & Str(Index) & " : " & dat

End Sub

 

Private Sub sock1_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

List3.AddItem "*** Error ( Client" & Index & ") : " & Description

sock1_Close Index

End Sub

 

Private Sub Timer1_Timer()

dout = "~" & Format(dLED, "000")

List2.Clear

For i = 0 To List1.ListCount

    If List1.List(i) <> "" Then

        List2.AddItem List1.List(i)

    End If

Next i

Label3.Caption = "Jumlah client yang online :" & Str(List2.ListCount)

If List2.ListCount > 0 Then

     Timer4.Enabled = True

Else:

    Timer4.Enabled = False

End If

End Sub

 

Private Sub Timer2_Timer()

If din = "kanan" Then

    sd = sd + 1.8

    If (dm = 1) And (f = 0) Then

        dm = 2

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 2) And (f = 0) Then

        dm = 4

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 4) And (f = 0) Then

        dm = 8

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 8) And (f = 0) Then

        dm = 1

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

End If

If din = "kiri" Then

    sd = sd - 1.8

    If (dm = 1) And (f = 0) Then

        dm = 8

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 2) And (f = 0) Then

        dm = 1

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 4) And (f = 0) Then

        dm = 2

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

    If (dm = 8) And (f = 0) Then

        dm = 4

        dLED = (dLED And &HF0) Or dm

        f = 1

    End If

End If

 

If sd > 360 Then sd = 0

If sd < 0 Then sd = 360

sr = Sin(sd * (3.14 / 180))

R = 1000

A = sr * R

B = Sqr((R * R) - (A * A))

If sd <= 90 Then

Line1.X1 = 1400 + A

Line1.Y1 = (1000 - B) + 400

End If

If ((sd > 90) And (sd <= 180)) Then

Line1.X1 = 1400 + A

Line1.Y1 = 1400 + B

End If

If ((sd > 180) And (sd <= 270)) Then

Line1.X1 = 1400 + A

Line1.Y1 = 1400 + B

End If

If ((sd > 270) And (sd <= 360)) Then

Line1.X1 = (1000 + A) + 400

Line1.Y1 = (1000 - B) + 400

End If

If MSComm1.PortOpen = True Then MSComm1.Output = "c" + Format(dLED, "000") + vbCr

Line1.X2 = 1400

Line1.Y2 = 1400

f = 0

End Sub

 

Private Sub Timer3_Timer()

    Label14.Caption = "c" + Format(dLED, "000")

End Sub

 

Private Sub Timer4_Timer()

    On Error Resume Next

    sock1(Val(List2.List(k))).SendData din

    Label15.Caption = Str(k)

    k = k + 1

    If k >= List2.ListCount Then k = 0

End Sub

 

 

KODE PROGRAM CLIENT

 

Dim lampu, lamp As Byte

Dim c, i, j As Integer

 

Private Sub bntConnect_Click()

On Error GoTo t

sock1.Close

sock1.RemoteHost = txtIP

sock1.RemotePort = txtPort

sock1.Connect

Exit Sub

t:

MsgBox "Error : " & Err.Description, vbCritical

End Sub

 

Private Sub bntExit_Click()

End

End Sub

 

Private Sub Command1_Click()

sock1.SendData "kiri"

End Sub

 

Private Sub Command2_Click()

sock1.SendData "kanan"

End Sub

 

Private Sub Command3_Click()

sock1.SendData "stop"

End Sub

Private Sub Form_Load()

Label4.Caption = ""

End Sub

Private Sub sock1_Close()

sock1.Close

txtLog = txtLog & "*** Disconnected" & vbCrLf

End Sub

 

Private Sub sock1_Connect()

txtLog = "Connected to " & sock1.RemoteHostIP & vbCrLf

End Sub

Private Sub sock1_DataArrival(ByVal bytesTotal As Long)

Dim dat As String

sock1.GetData dat, vbString

Label4.Caption = dat

c = InStr(dat, "~")

If c <> 0 Then

End If

End Sub

 

Private Sub sock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

txtLog = txtLog & "*** Error : " & Description & vbCrLf

sock1_Close

End Sub

Copyright 2019. Powered by Humas. PPPPTK BOE MALANG