Sunday - May 18, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 7 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Mendeteksi Perubahan Struktur Pada SQL Server 2000 Dengan Lumigent Schema Alert (2799)

»

Tips SQL Server: Mempercepat Proses INSERT (1403)

»

Menggunakan Alias Untuk File PHP (4812)

»

Mempelajari Dasar-dasar Shell (Operasi File & Direktori) (6525)

»

Manajemen Proses dan Manajemen Memori Linux Mandrake 8.2 (8807)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Mengakses Perangkat Luar Melalui Serial Port Menggunakan Borland Delphi

Author: Novian Christanto
Published: August 20, 2004
Visits: 7391 - Category: Borland Delphi
 
     
 

Mengenal Port di Komputer
Serial port merupakan standar interface untuk komputer, selain serial port ada juga paralel port yang dapat digunakan untuk mengakses hardware. Perbedaan antara serial dan paralel port tersebut yaitu cara port tersebut untuk mengirim dan menerima data. Serial port pada komputer sering digunakan untuk mouse (model lama), modem dan lain-lain sedangkan paralel port sering digunakan untuk printer, scanner dan lain sebagainya.

Perbedaan serial dan paralel port

Metode Pengaksesan Perangkat Luar
Disini saya akan menggolongkan metode akses perangkat luar dengan 2 (dua) golongan yaitu Aktif dan Pasif ditinjau dari komputer yang mengaksesnya.

- Aktif 
Metode ini mengharuskan komputer untuk mengirim data ke perangkat luar terlebih dahulu sebelum perangkat luar mengirimkan datanya ke komputer.Data yang dikirimkan komputer dapat berupa kata atau huruf. Kata atau huruf yang akan dikirim ke perangkat luar ini tidak memiliki standar baku karena tiap perangkat luar memiliki susunan masing, untuk dapat mengetahui kata atau huruf yang akan dikirimkan dapat dilihat dalam buku manual yang telah disertakan oleh tiap perangkat. Contohnya PH meter digital, beberapa model barcode, instrumen pengendalian dan lain-lain.

- Pasif
Metode ini perangkat luarlah yang aktif mengirimkan data sedangkan komputer hanya menerima data. Contohnya mouse.

Konfigurasi
Untuk dapat mengakses perangkat lunak kita harus mengetahui terlebih dahulu konfigurasi dari perangkat luar tersebut antara lain:

- Port yang akan digunakan, komputer yang sekarang terdapat 2 port serial
- Baud rate, kecepatan data yang akan digunakan 
- Data bit, bit data 
- Stop bit, bit untuk memisahkan data 
- Parity, bit untuk validasi data yang telah dikirim
- Flow control

Konfigurasi tiap perangkat berbeda-beda sehingga kita harus memiliki buku manual untuk dapat mengaksesnya.

Studi Kasus
Disini studi kasus yang dihadapi yaitu mengakses DO (Dissolved Oxygen) meter yaitu alat yang digunakan untuk mengetahui kadar oksigen di dalam larutan dengan konfigurasi sebagai berikut.

- Port: COM 1
- Baud Rate: 9600
- Data Bit: 8
- Stop Bit: 1 
- Parity: odd
- Flow Control: software

Perangkat ini menggunakan metode aktif dengan pengaktifan data dengan huruf D (perangkat akan mengirimkan data jika komputer mengirimkan huruf D). Perangkat DO ini akan menampilkan struktur data sebagai berikut:

Data ke + spasi + nilai DO + % +'DO' + suhu + C + tanggal perangkat

Contohnya: 218 30%DO25%C08/11/04

Software yang diinginkan dapat menampilkan data pada sebuah grid dan grafik dengan interval waktu 1 detik.

Software yang akan digunakan untuk mengakses perangkat luar yaitu:

- Borland Delphi 7 
- Comport, component ini bersifat freeware dan dapat Anda download pada situs www.sourceforge.net/projects/comport (besarnya sekitar 224 KB). Thank's to Dejan Crnila

Pembuatan Software
Setelah kita install Component Comport, akan terlihat seperti dibawah ini:

Design Tampilan

Langkah petama kita akan membuat procedure untuk setting konfigurasi.

procedure TForm1.Button_SettingsClick(Sender: TObject);
begin
  ComPort.ShowSetupDialog;
end;

Hal tersebut akan memunculkan form sebagai berikut.

Procedure Timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Str: String;
begin
  edit1.text :='';
  Str := 'D';
  Str := Str + #13#10;
  ComPort.WriteStr(Str);
end;

Waktu pengambilan data dapat kita tempatkan pada ComboBox.

Untuk Tombol Proses 
Algoritma dari event ini yaitu:

- Menghapus suluruh data yang telah ditampilkan 
- Mengaktifkan comport
- Mengaktifkan timer

procedure TForm1.BitBtn1Click(Sender: TObject);
var a : integer;
begin
  TabSheet2.show;
  Timer1.Interval := strtoint(ComboBox1.text);
  if BitBtn1.Caption = 'Proses' then
  begin
    if y > 0 then
    for a := 1 to y do
    begin
      StringGrid1.Cells[0,a]:= ' ';
      StringGrid1.Cells[1,a]:= ' ';
      StringGrid1.Cells[2,a]:= ' ';
      StringGrid1.Cells[3,a]:= ' ';
    end;
    y:=0;
    Chart1.SeriesList.Series[0].Clear;
    ComPort.Open;
    Timer1.Enabled := true;
    BitBtn1.Caption := 'Stop';
  end
  else
  begin
    ComPort.Close;
    Timer1.Enabled := false;
    BitBtn1.Caption := 'Proses'
  end;
end;

Untuk menerima data dari perangkat dapat kita ambil pada event RXChart.

Algoritma dari event ini yaitu:

- Mengetahui struktur data dan mengetahui bahwa data terakhir adalah #13, #13 dipakai sebagai acuan bahwa 1 (satu) data secara keseluruhan telah terkirim
- Memecah data dan mengambil data yang kita inginkan dalam hal ini data DO dan suhu 
- Menampilkan data di StringGrid dan Chart

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str,dtinput,kata,data: String;
  z:integer;
  a,b :integer;
  suhu,panas,data_piece : string;
  FData,FSuhu : single;
begin
  ComPort.ReadStr(Str, Count);
  edit1.text := edit1.text+str;
  data_com := edit1.text;
  if str=#13 then
  begin
    dtinput := trim(edit1.Text);
    a := pos(' ',dtinput);
    b := pos('%',dtinput);
    data := copy(dtinput,a+1,b-a-1);
    Fdata := StrToFloat(trim(data));

    a := pos('O',dtinput);
    b := pos('C',dtinput);
    suhu := copy(dtinput,a+3,b-a-4);
    FSuhu := StrToFloat(trim(suhu));
    
    inc(y);
    
    StringGrid1.Cells[1,y]:= FormatDateTime('dd/mm/yyyy',date)+' '+FormatDateTime('hh:mm:ss',time);
    StringGrid1.Cells[2,y]:= FloatToStr(Fdata);
    StringGrid1.Cells[3,y]:= trim(suhu);
    StringGrid1.Cells[0,y]:= inttostr(y);
    if y=StringGrid1.RowCount then
      StringGrid1.RowCount := StringGrid1.RowCount+1;
    Label10.caption := suhu;
    Chart1.SeriesList.Series[0].AddY(FData);
  end;
end;

procedure make_decision(a: integer; b: string);
begin
  if data = '5' then
  begin
    writeln('hebat banget');
    writecommand('hebat sekali');
    for i := 1 to 5 do
    begin
      a := i + n;
    end;
  end;
end;

Demikianlah tulisan sederhana mengenai pengaksesan serial port dengan menggunakan Borland Delphi. Semoga bermanfaat bagi Anda semua. Jika ada saran atau komentar bisa dikirimkan ke v1an.tok@gmail.com. Untuk membaca tulisan menarik lainnya silakan menuju ke www.sony-ak.com.

Source code contoh di atas bisa di download di serialport1.zip.

Terimakasih.




 Recommended articles
 

»

Tips PHP: Menampilkan IP Pengakses Situs Anda (3316)

»

Tips dalam Penggunaan Instant Messaging untuk Bisnis (1469)

»

Trik Shutdown/Restart Otomatis Pada Windows 9x/Me Tanpa Menggunakan Software (5111)

»

Tips Mendirikan Website dengan Peralatan Serba Gratis (7129)

»

Instalasi QReport pada Delphi 7 (3451)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com