[Tutorial] Cara Akses Instrument Lab Mitov pada Visual Basic 2013

Pada kali ini saya akan menerangkan bagaimana cara mengakses library intrument lab dari mitov pada visual studio 2013. Namun sebelum mulai ke program, instrument lab yaitu sebuah framework/library yang berbasis net framework dan digunakan untuk simulasi berbasis peralatan laboratorium, dan lain sebagainya. Pada pemrograman kali ini saya menggunakan bahasa basic jadi jika anda ingin merubahnya ke bahasa lain sangat mudah sekali. Namun kalian harus terlebih dahulu mendownload library instrument lab pada website nya sendiri disini atau menggunakan file yang saya gunakan yaitu versi Instrument lab 6.0 disana. Setelah itu buah project baru pada Visual Basic 2013 dan jangan lupa setting net framework versi 4.5 agar library mitov dapat muncul.

pertama kalian choose item pada kotak toolbox dan pilih mitov


kemudian kalian pilih ok


setelah itu kalian mulai buat komponen pada gui seperti gambar dibawah ini :


Berikut listing program VB :

Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
Public Class Form1
    'Variabel Untuk Data Serial
    Private readBuffer As String = String.Empty
    Private Bytenumber As Integer
    Private ByteToRead As Integer
    Private byteEnd(2) As Char
    Dim strinput As String
    Dim prosesoff As Boolean = False
    Dim disconnect As Boolean = False
    Dim nilai As Integer

    'Variabel Penampung Port
    Dim myPort As Array  'COM Ports detected on the system will be stored here
    Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'When our form loads, auto detect all serial ports in the system and populate the cmbPort Combo box.
        myPort = IO.Ports.SerialPort.GetPortNames() 'Get all com ports available
        cmbBaud.Items.Add(9600)     'Populate the cmbBaud Combo box to common baud rates used
        cmbBaud.Items.Add(19200)
        cmbBaud.Items.Add(38400)
        cmbBaud.Items.Add(57600)
        cmbBaud.Items.Add(115200)

        For i = 0 To UBound(myPort)
            cmbPort.Items.Add(myPort(i))
        Next
        cmbPort.Text = cmbPort.Items.Item(0)    'Set cmbPort text to the first COM port detected
        cmbBaud.Text = cmbBaud.Items.Item(0)    'Set cmbBaud text to the first Baud rate on the list
        btnDisconnect.Enabled = False           'Initially Disconnect Button is Disabled
        Led1.Color = Color.Red
    End Sub

    Private Sub btnConnect_Click(sender As Object, e As EventArgs) Handles btnConnect.Click
        SerialPort1.PortName = cmbPort.Text         'Set SerialPort1 to the selected COM port at startup
        SerialPort1.BaudRate = cmbBaud.Text         'Set Baud rate to the selected value on

        'Other Serial Port Property
        SerialPort1.Parity = IO.Ports.Parity.None
        SerialPort1.StopBits = IO.Ports.StopBits.One
        SerialPort1.DataBits = 8            'Open our serial port
        SerialPort1.Open()

        btnConnect.Enabled = False          'Disable Connect button
        btnDisconnect.Enabled = True        'and Enable Disconnect button

        System.Threading.Thread.Sleep(10)
        Timer1.Enabled = True
        Led1.Color = Color.Green
    End Sub

    Private Sub btnDisconnect_Click(sender As Object, e As EventArgs) Handles btnDisconnect.Click
        'SerialPort1.Close()             'Close our Serial Port
        Timer1.Enabled = False
        btnConnect.Enabled = True
        btnDisconnect.Enabled = False
        System.Threading.Thread.Sleep(10)
        disconnect = True
        Timer2.Enabled = True
        rtbReceived.Text = "   "
        Led1.Color = Color.Red
    End Sub

    Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        If SerialPort1.IsOpen Then
            Try
                '================Default Coding Data Serial===========================
                byteEnd = SerialPort1.NewLine.ToCharArray
                Bytenumber = SerialPort1.BytesToRead
                readBuffer = SerialPort1.ReadLine()

                Me.Invoke(New EventHandler(AddressOf DoUpdate))
            Catch ex As Exception
                'MsgBox("read " & ex.Message)
            End Try
        End If
    End Sub

    Public Sub DoUpdate(ByVal sender As Object, ByVal e As System.EventArgs)
        'Pada TextBox1.Text sudah dapat menampilkan data dari SerialPort1

        Timer1.Enabled = True

        'Jika membaca boolean disconnect maka mengirim perintah true ke prosesoff
        If disconnect Then
            prosesoff = True
        End If
    End Sub

    Private Sub cmbPort_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbPort.SelectedIndexChanged
        If SerialPort1.IsOpen = False Then
            SerialPort1.PortName = cmbPort.Text         'pop a message box to user if he is changing ports
        Else                                                                               'without disconnecting first.
            MsgBox("Valid only if port is Closed", vbCritical)
        End If
    End Sub

    Private Sub cmbBaud_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbBaud.SelectedIndexChanged
        If SerialPort1.IsOpen = False Then
            SerialPort1.BaudRate = cmbBaud.Text         'pop a message box to user if he is changing baud rate
        Else                                                                                'without disconnecting first.
            MsgBox("Valid only if port is Closed", vbCritical)
        End If
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If SerialPort1.IsOpen Then
            rtbReceived.Text = readBuffer
            LinearGauge1.Value = Val(rtbReceived.Text)
            AngularGauge1.Value = Val(rtbReceived.Text)
            SegmentGauge1.Value = Val(rtbReceived.Text)
            Thermometer1.Value = Val(rtbReceived.Text)
            nilai = Val(rtbReceived.Text)

        End If
    End Sub

    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        If prosesoff Then
            SerialPort1.Close()
            Timer2.Enabled = False
            rtbReceived.Text = "   "
        End If
    End Sub
End Class

Ini hasil dari running aplikasinya :


Terima kasih dan semoga bermanfaat :)



Post a Comment

Previous Post Next Post