Sunday 14 December 2014

VB6.0 :: Tutorial PLC ke Komputer


dalam pengiriman data antara PLC dan komputer maupun keperangkat lain seperti Touchscreen, microcontroller menggunakan format berikut:
– 1 start bit
– 7bit data
– 2stop bits
– even parity
– baudrate 9600

ada dua macam format pengiriman data yaitu :
Command Format ->sebagai format data dari komputer menuju ke PLC.
Response Format ->sebagai format data dari PLC menuju komputer sebagai
contoh Command Format: @ 00 WR 0010 0002 46 + enter
1
2
3
4
5
6
7
8
9
10
@         = karakter pembuka
WR        = (header code) untuk menulis pada alama IR/WR/SR
0010      = (text) sebagai alamat (misalkan alamat output PLC CPM2A saya berada di 0010
0002      = (text) ini jika di biner kan: 0000 0010 maka output no.2 pada PLC CPM2A akan menyala
            (liat gambar dibawah)
46        = (FCS) FCS (Frame Check Sequence)
            adalah hasil konversi 8-bit data ke 2 digit karakter ASCII. Ke 8-bit data merupakan
            hasil dari exclusive OR secara berurut (sequence) karakter pertama hingga karakter
            terakhir pada sebuah frame.
* + enter = karakter penutup

sekarang kita akan memasuki programnya.
Buatlah tampilan pada program VB seperti dibawah ini:
terdiri dari tombol Command1, Command2 dan component MSComm1.

pada source code berisikan ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Dim data 'General Declaration
 
Private Sub Form_Load()
    MSComm1.CommPort = 1     ' port PC comm1,tapi tergantung PC anda
    MSComm1.Settings = "9600, e, 7, 2" ' harus sama PC dan PLC
    MSComm1.PortOpen = True
    data = "@00SC02"         ' pengaturan mode (02)monitor, (00)Program, (03)Run
    Kirim                    ' kirimkan ke PLC
End Sub
 
Private Sub Command1_Click() ' Menghidupkan Output2 pada PLC
    data = "@00WR00100002"   ' Command format tanpa FCS dan *
    Kirim                    ' WRite data 0002 pada alamat 0100
End Sub
 
Private Sub Command2_Click() ' memadamkan semua output pada PLC
    data = "@00WR00100000"   ' Command format tanpa FCS dan *
    Kirim                    ' WRite data 0000 pada alamat 0100
End Sub
 
Private Sub Kirim()          ' disinilah cara pembuatan FCSnya
    Dat$ = data              ' data yang diolah terdapat pada data
    l = Len(Dat$)            ' pengen tau lebih lanjut,
    a = 0                    ' baca Programming Manual hal 239
 
    For I = 1 To l
        Opo$ = Mid$(Dat$, I, 1)
        a = Asc(Opo$) Xor a
    Next I
 
    FCS$ = Hex$(a)
    If Len(FCS$) = 1 Then
        FCS$ = "0? + FCS$"
    End If
 
    DatTX$ = Dat$ + FCS$ + "*" + Chr$(13)
    MSComm1.Output = DatTX$   ' kirimkan data tadi beserta FCSnya
End Sub
sourcecode diambil disini: tutorial PLC VB6.0.zip

Sumber :: https://handritoar.wordpress.com/2011/10/19/tutorial-plc-ke-komputer/#more-356

VB6.0 :: Komunikasi serial PLC ke Komputer

sistem kerja dari program ini adalah:
jika tombol 0.01 ditekan maka lampu 10.00 akan menyala, juga data pada alamat DM100 akan diisi data #0000.
jika tombol 0.00 ditekan maka akan dideteksi Different Upnya.
kemudian data pada DM100 akan berincrement seiring kita menekan tombol 0.00nya. kemudian akan mendeteksi kondisi pada AR08.05. ini untuk mendeteksi apakah serialnya sedang dipakai atau tidak. jika tidak dipakai maka PLC akan mengirimkan data ke komputer melalui serial.
format pengiriman data:
1
2
3
AR08.05 = RS-232C Transmit Ready Flag
          untuk mendeteksi apakah Serial sedang dipakai atau tidak.
@TXD    = perintah untuk mengirimkan ke komputer. leftmost bytes first.
alamat AR08

@TXD DM100 #0000 #0002

DM100 = posisi data yang akan dikirimkan ke komputer, dalam hal ini data pada DM100 yang akan kita kirimkan
#0000 = RS-232C port specification, #0000= RS-232C port, #0001=Peripheral port
#0002 =  jumlah byte yang akan dikirim. dalam hal ini kita kirimkan 2 bytes.
jika kita mengirimkan data sebanyak 10byte maka formatnya
@TXD DM100 #0000 #0010 misalkan datanya: 1234567890
maka kita mesti menyimpan datanya di:
DM100 12
DM101 34
DM102 56
DM103 78
DM104 90
maka outputnya yang akan kita terima dikomputer:
@00EX000100020003000400050006000700080009000032*
pada program VB buatlah tampilan dibawah dengan menggunakan timer1, text1, mscomm1.
dengan sourcecode berikut:
1
2
3
4
5
6
7
8
9
10
Private Sub Form_Load()
    MSComm1.RThreshold = 1
    MSComm1.CommPort = 1 '(port PC comm1,tapi tergantung PC anda)
    MSComm1.Settings = "9600, e, 7, 2" '(harus sama PC dan PLC)"
    MSComm1.PortOpen = True
End Sub
 
Private Sub Timer1_Timer()
    If MSComm1.InBufferCount > 9 Then Text1.Text = MSComm1.Input
End Sub

sumber : https://handritoar.wordpress.com/2011/10/25/komunikasi-serial-plc-ke-komputer/#more-428

VB.NET :: Contoh Program Pendeteksi Wajah Dengan Visual Basic.Net – Source Code


kita bisa saja membuat algoritma pendeteksi wajah itu di program kita. namun itu akan sangat sulit, butuh banyak percobaan dan memakan banyak waktu. tapi, sekarang ada solusinya. ada sebuah program opensource yang mebahas tentang ini. yaitu OpenCV dan EmguCV.
  • OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. 
  • Emgu CV is a cross platform .Net wrapper to the Intel OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Linux / Mac OS X.
Dari pengertian di atas telah diberikan deskripsi dari kedua opensource tersebut. OpenCV itu adalah librari dari fungsi-fungsi pemrograman yang mengenai tentang Computer-Vision. kalau ga salah ini diprakarsai oleh Intel. dan EmguCV adalah perantara dari librari pengolah gambar dari OpenCV agar bisa dipanggil dalam pemrograman [dot]net, salah satunya VB net.
Bentuk dari librari OpenCV dan EmguCV adalah file .dll. file ini harus di sertakan satu folder dengan file .exe program kita. OK. lets Try..
Buka Visual Studio, 2008/ 2010 sama aja. trus buat project baru “Windows Form Application”, lalu masukan sebuah pictureBox.
Attribut PictureBox1
  • Dock: Fill
  • Size Mode: Zoom
Trus, Import references dari Dll milik EmguCV:
- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll
Caranya:
  • lihat pada sisi kiri (jendela Visual Studio), pada solution explorer, klik kanan di “references” -> pilih “Add Reference”
  • Pilih Tab “Browse” (Saya sarankan anda telah mengkopi dll yang diperlukan: cvextern.dll, Emgu.CV.dll, Emgu.CV.UI.dll, dan Emgu.Util.dll ke dalam folder “bin\debug”) tambahkan satu persatu dll nya ke dalam reference, kecual “cvextern.dll“.
cvextern.dll tidak bisa di load ke visual studio karena dll ini tidak di desain untuk itu, tapi dengan dll dari EmguCV, kita jadi bisa dengan mudah menggunakan fungsi-fungsi milik cvextern.dll (milik OpenCV) ke dalam project [dot]net kita.
Tapi kenapa cvextern.dll perlu juga di masukan satu folder dengan dll lainya?? yaitu karena dll milik EmguCV membutuhkan cvextern.dlluntuk meload fungsi-fungsi grafis.
Setelah itu, Masukan code ini di dalam Form1.vb:


Imports Emgu.CV
Imports Emgu.Util
Imports Emgu.CV.Structure
Imports Emgu.CV.UI
Public Class Form1
    Private Sub Form1_Load() Handles MyBase.Load
        Dim p As String = Application.StartupPath
        PictureBox1.Image = Image.FromFile("image.jpg")
        Dim ImageBgr As New Image(Of Bgr, Byte)(PictureBox1.Image)
        Dim HaarXML As NewHaarCascade("haarcascade_frontalface_alt_tree.xml")
        Dim GrayImage As Image(Of Gray, Byte) = ImageBgr.Convert(Of Gray, Byte)()
        Dim ImgGraphics As Graphics =Graphics.FromImage(PictureBox1.Image)
        Dim MPen As New Pen(Brushes.YellowGreen, 8)
        ' Will take a several minute.. please wait..
        For Each m In GrayImage.DetectHaarCascade(HaarXML)(0)
            ImgGraphics.DrawRectangle(MPen, m.rect)
        Next
    End Sub
End Class
 


[!] Aku ingetin lagi, saat menjalankan program percobaan anda, pastikan dll ini berada satu folder dengan exe file anda:
- cvextern.dll 
- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll
Untuk lebih jelas, silahkan DOWNLOAD PROJEKNYA DISINI

link: http://XKom.blogspot.com