tugas



Nama                    : Andara A. Rachman (20113835)
                                  Billy P. Putra (21113733)
                                  Felix Reinhart (23113397)
Kelas                     : 3KB03
Mata Kuliah       : Pengantarmukaan Periperal Komputer

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.
 
Description: http://www.vedcmalang.com/pppptkboemlg/images/gbartikeldep50/agusputranto/lan01.JPG

Gambar 1. Sistem control dan monitoring melalui jaringan LAN

Seperti 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

Description: http://www.vedcmalang.com/pppptkboemlg/images/gbartikeldep50/agusputranto/lan02.JPGUntuk 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.
Description: http://www.vedcmalang.com/pppptkboemlg/images/gbartikeldep50/agusputranto/lan03.JPG
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



Sumber:
http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/listrik-electro/1259-kontrol-dan-monitoring-putaran-motor-stepper-melalui-jaringan-lan-menggunakan-visual-basic

Komentar

Postingan Populer