Abstrak

advertisement
1. Abstrak
Penggunaan jaringan internet kini telah semakin meluas dan dipergunakan sebagai
sarana pertukaran informasi akademis, bisnis, hiburan dan lain-lain, termasuk
penggunaan untuk sistem kendali jarak jauh. Pada project “Web Based I/O
Control” akan diaplikasikan pengendalian input output melalui jaringan internet.
Sebuah rangkaian simulasi input output pada komputer server akan dikendalikan
dengan sebuah PC yang terhubung ke jaringan internet. Pengendalian dapat
dilakukan secara remote melalui jaringan internet menggunakan web browser
seperti Internet Explorer, Netscape..
2. Pendahuluan
Pada masa sekarang, tingkat kesibukan masyarakat semakin meningkat. Batasan
ruang dan waktu selalu menjadi kendala untuk melakukan suatu kegiatan yang
terkadang sangat penting dan tidak dapat ditunda. Dengan adanya batasan ruang
dan waktu tersebut, maka untuk melakukan suatu kegiatan, manusia harus
berpindah tempat ke tempat dimana kegiatan tersebut akan dilakukan. Misalnya
untuk mengontrol suatu proses produksi dengan adanya batasan ruang dan waktu
maka seorang operator harus hadir di tempat proses produksi berlangsung. Tetapi
sekarang dengan adanya jaringan internet maka ruang dan waktu tidak lagi
menjadi masalah yang cukup penting. Untuk mengendalikan suatu system dapat
dilakukan melalui jaringan internet dengan menggunakan web browser. Dengan
adanya web browser maka penggunanya dapat lebih mudah mendapatkan dan
membaca data sesuatu dari jarak jauh. Proses pengendalian, pengawasan dapat
dilakukan dimana saja asalkan terhubung dengan jaringan internet.
Saat ini banyak aplikasi internet yang sudah digunakan sehari-hari seperti email,
IRC (Internet Relay Chat) dan masih banyak lainnya. Aplikasi yang paling luas
cakupannya adalah WWW (World Wide Web), dimana dengan menggunakan
web browser seperti Internet Explorer, atau Netscape, pengguna dapat mengakses
informasi dengan berbagai tujuan baik untuk pendidikan, akademik, hiburan,
bahkan bisnis.
Melalui project “Web Based I/O Control” penulis mencoba untuk menggunakan
aplikasi web untuk mengendalikan suatu rangkaian input output sederhana.
1
Pengendalian I/O ini dilakukan dari jarak jauh dengan menggunakan jaringan
internet. Komputer client akan mengirimkan request ke web server melalui
jaringan internet dan web server akan mengolah request yang masuk dan
mengirimkan data response ke client. Dalam hal ini karena yang digunakan adalah
aplikasi web maka data yang dikirimkan web server ke web client adalah data
dalam
bentuk
HTML,
sehingga
lebih
mudah
bagi
browser
untuk
menggunakannya, sedangkan rangkaian yang akan dikendalikan berada di
komputer server.
3. Ruang lingkup pembahasan
Pada project berjudul “Web Based, I/O Control” disimulasikan pengendalian
input output dengan mengakses parallel port pada komputer PC, pengendalian
tersebut dilakukan melalui jaringan internet dengan aplikasi CGI (Common
Gateway Interface) sebagai interface antara web client dengan web server.
Internet
Request
Web Server
Web Client
Response
Paralel Port
I/O Hardware
Gambar 1. Pengontrolan I/O Paralel Port melalui internet
4. Spesifikasi software dan hardware project
4.1. Pengendalian I/O melalui Paralel Port
4.1.1. Parallel Printer Port
Port yang satu ini, dipastikan selalu ada pada setiap komputer. Tercermin
dari namanya, saat ini parallel port lebih banyak dimanfaatkan untuk
urusan pencetakan data. Sebenarnya, port inipun bisa dimanfaatkan untuk
2
hal lain, karena memiliki input/output (I/O) data. Tata-letak dari ke-dua
puluh lima pin (D-type 25-female) parallel printer port, diperlihatkan
dalam Gambar 2.
Gambar 2. Tata-letak pin parallel printer port.
Adapun tabel signal dan fungsi dari setiap pin pada parallel printer port,
terlihat pada Gambar 2. Dari situ diketahui pin 2 s/d 9 (Data D0-D7)
berfungsi sebagai output, yang selanjutnya dapat kita manfaatkan untuk
mengontrol peralatan luar. Pin 10 s/d 13 dan pin 15 (Status S3-S7)
berfungsi sebagai input, yang dapat dijadikan untuk mendeteksi status
peralatan luar.
3
Gambar 3. Signal dan fungsi parallel printer port.
4.1.2. Rangkaian input output
Untuk keperluan uji-coba, kita bisa menghubungkan LED (Light Emitting
Diode) lewat resistor 220 ohm, langsung dihubungkan ke pin output dari
parallel port. Bisa juga hanya dengan mengukur tegangan 5 volt yang
timbul, saat data port dalam keadaan high (TTL high). Tetapi perlu
diperhatikan tegangan yang keluar dari parallel port 5 volt, sedangkan
arusnya sangat kecil yaitu 4 mA pada logic 1 dan – 0.4 mA pada logic nol.
Nilai arus negative artinya sink ke dalam parallel port.
4
Gambar 4. Skema untuk pengujian sementara.
Besarnya resistor yang digunakan tidak boleh terlalu besar karena arus dari
parallel port sangat kecil (sekitar 4 mA). Target untuk hardware sampai UTS
adalah sebagai berikut :
 Kendali 8 pin output yang terdiri dari:

Lampu AC 5 W dengan menggunakan relay sebagai saklar
antara port parallel dengan sumber teganganAC 220 Volt

Sebuah motor DC 5 Volt

6 buah LED
 Deteksi input digunakan 4 saklar DIP.
5
4.2. Software
Dalam project ini digunakan 2 macam software Hyper Text Markup
Language (HTML) dan bahasa pemrograman Delphi dengan komponen
tambahan CGIExpert.
Pada saat komputer client mengirimkan data request ke komputer server
maka komputer server mengeksekusi program berekstensi EXE pada
direktori cgi-bin. Program ini membentuk file dalam bahasa HTML yang
berisi data-data yang akan diinformasikan ke browser. File tersebut
ditempatkan pada lokasi yang ditentukan oleh server. Dalam hal ini
memakai digunakan server Apache dan file exe disimpan dalam direktori
cgi-bin. Data tersebut akan dikirimkan kembali ke komputer client untuk
diterjemahkan oleh web browser. Seperti ditampilkan pada bagan berikut
ini:
Internet
I/O Hardware
Web Server
Request
Web Client
File HTML
Gambar 5. Alur request dari web browser pada server
Untuk mendukung aplikasi CGI pada Delphi maka diperlukan komponen
tambahan yang didapat dari paket program instalasi CGI-expert versi 6.50.
Selanjutnya akan dibahas penggunaan masing masing software yang ada
sebagai berikut:
4.2.1. Web Server
Salah satu bagian terpenting dari seluruh system ini adalah server.
Pada tugas ini digunakan server Apache, karena dapat berjalan
under windows yang sesuai dengan penggunaan software Delphi
sebagai bahasa pemrogramannya. File HTML akan disimpan di
folder htdocs, supaya program tersebut dapat diakses oleh web
6
browser dari tempat lain. Sedangkan program CGI yang executable
ditempatkan di folder cgi-bin.
HTTP (Web) Server :
Dalam tugas ini kita memilih Web Server Apache dalam modul
PHPTriad ver. 2.2.1. Apache adalah aplikasi Web Server yang
tersedia secara gratis dan disebarkan dengan lisensi “open source”
dan dapat beroperasi pada berbagai platform sistem operasi seperti
Windows NT/9x, Netware, Linux, serta dengan beberapa
keuntungan antara lain : mudah dikonfigurasi dan dapat digabung
dengan modul lain seperti PHP. Web Server Apache digunakan
untuk menjadikan PC sebagai komputer
server. Apache
menyediakan sarana setting direktori Htdocs sebagai tempat
meletakkan program-program HTML yang dapat diakses oleh Web
Browser. Sedangkan file-file executable (*.exe) diletakkan pada
folder cgi-bin.
4.2.2. HTML
Program dalam bentuk HTML hanya sebagai halaman pertama saja
yang diberi nama index.html. Dalam halaman ini, user dapat
memilih metode apa yang akan digunakannya, apakah metode
POST, GET atau PUT. Pemilihan metode ini hanya akan
berpengaruh pada window address.
Setelah melakukan pemilihan metode, maka yang ditampilkan
selanjutnya adalah file exe dalam bahasa Delphi, yang ditempatkan
di folder cgi-bin. File exe yang digunakan menampilkan form
HTML untuk memilih akan menyalakan led yang mana.
Listing program index.html:
7
<HTML>
<HEAD>
<TITLE>Web Based, Input/Output Control</TITLE>
</HEAD>
<BODY BGCOLOR=#9AC8AA>
<TABLE
border=0
cellPadding=0
cellSpacing=0
height=20 style="MARGIN-TOP: -2px" width=779>
<TBODY><TR><TD height=16 width=138>
<P align=center><IMG alt="ukplogo.gif" height=80
src="cgi-bin/ukplogo.gif" width=89></P></TD>
<TD
bgColor=#9AC8AA
height=16
width=629><BIG><FONT face="Bookman Old Style">
<MARQUEE
behavior=alternate
style="FONT-FAMILY:
Comic
Sans
height=43
MS;
FONT-SIZE:
20pt; FONT-STYLE: oblique" width=621 border="0">
WEB BASED, I/O CONTROL</MARQUEE>
</FONT></BIG>
</TD></TR></TBODY>
</TABLE>
<BR><BR>
Masukkan Password Anda:
<FORM METHOD=POST ACTION="cgi-bin/welcome.exe">
<BR><INPUT TYPE=PASSWORD NAME=Pass>
<INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter>
</FORM>
</BODY></HTML>
4.2.3. Pemrograman dengan Delphi
Program bernama FormOuput.exe berfungsi untuk memasukkan
input pengendalian yang didapat dari form HTML. Dari form
HTML, akan didapatkan perintah led mana yang diinstruksikan
untuk menyala. File FormOutput.exe ini yang akan mengeksekusi
dan menyalakan led sesuai dengan data yang ada sebelumnya.
Berikut ini adalah flowchart dari program FormOutput.exe :
8
START
Tampilkan Halaman
HTML
Tombol
View
ditekan
Tidak
Ya
Baca led yang akan
diaktifkan
Data=0
Ya
Kirim data 0h
ke parallel port
Ya
Kirim data 0FE
ke parallel port
Ya
Kirim data 0FDh
ke parallel port
Ya
Kirim data 0FBh
ke parallel port
Ya
Kirim data 0F7h
ke parallel port
Tidak
Data=A
Tidak
Data=B
Tidak
Data=C
Tidak
Data=D
Tidak
9
Data=E
Ya
Kirim data 0EFh
ke parallel port
Ya
Kirim data 0DFh
ke parallel port
Ya
Kirim data 0BFh
ke parallel port
Ya
Kirim data07F
ke parallel port
Tidak
Data=F
Tidak
Data=G
Tidak
Data=H
Tidak
FormInput
Ditekan ?
Tidak
Ya
END
Gambar 6. Flowchart program FormOutput.exe
4.2.4. Komponen CGIExpert
Software untuk komunikasi Internet via CGI (Common Gateway
Interface)
Diperlukan sebuah software yang dapat menangani pembuatan
program CGI pada software Delphi 5.0. Karena itu digunakan
10
komponen-komponen CGI Expert 6.5 yang mendukung VCL
(Visual Component Library) Delphi 5.0.
Proses instalasi CGI Expert 6.5 dilakukan dengan cara mengklik
pada CGIExpert_6.50.EXE. Maka komponen-komponen dan file
help secara otomatis terinstal pada Delphi.
Gambar 7. Icon Setup CGI Expert 6.50
CGIExpert adalah solusi yang dapat kita gunakan untuk
membangun aplikasi CGI. Komponen ini sanagat compatible
dengan software Delphi dan C++ Builder. Aplikasi CGI yang
dihasilkan berupa aplikasi yang berjalan pada lingkungan
Windows, sehingga web server yang kita gunakan juga berjalan
pada lingkungan Windows, seperti Apache.
Komponen yang ada adalah sebagai berikut :

TGeneralHttpEngine
TGeneralHttpEngine merupakan komponen utama yang secara
bersama menggabungkan interface interface-interface shell-CGI,
win-CGI, CGI-bin, ISAPI dan NSAPI. Komponen ini merupakan
basis untuk semua komunikasi dengan www server, jadi sebuah
aplikasi CGI yang kita buat harus mengandung komponen ini.

THttpMaster
THttpMaster komponen ini menyediakan prpperties yang dapat
digunakan untuk tampilan dokumen HTML dari aplikasi CGI yang
dibuat. Kita dapat secara langsung mengeset am[pilan dokumen
11
dengan merubah property, seperti text color dan background yang
tersedia.
Komponen ini akan secara otomatis menghasilkan tag HTML,
HEAD, TITLE dan BODY ke dalam aplikasi CGI yang dibuat.
Jadi kita dapat mengisikan TITLE atau isi dari BODY dokumen
HTML.

THttpFileFilter
THttpFileFilter dignakan sebagai basis untuk membuat Dynamic
HTML. Dengan komponen ini kita bisa membuat sebuah aplikasi
CGI dengan menggunakan sebuah file dalam format HTML yang
telah kita buat sebelimnya menggunakan editor HTML favorit.

THttpMemoFilter
Sama seperti komponen ThttpFileFilter, komponen ini juga
merupakan basis untuk membuat Dynamic HTML, yang mungkin
akan dikirimkan ke client dari aplikasi yang telah dibuat. Bila
ThttpFileFilter menggunakan sebuah file, di dalam komponen ini
disediakan properties text yang dapat diisi dengan menggunakan
format penulisan dokumen HTML.

THttpInput
Komponen ini mempermudah dalam penambahan pengisian field.

THttpSelect
Komponen ini mempermudah dalam menyeleksi daftar field.

THttpDbSelect
Komponen ini mempermudah dalam membangun daftar data
terpilih secara dinamis dari isi database.

THttpDbGrid
Komponen ini akan secara otomatis menghasilkan HTMLTable
dari Tdataset (Table atau Tquery) yang diisikan ke dalam
THttpDbGrid properties dataset, tanpa mengharuskan untuk
menuliskan kode HTML sedikit pun.
Komponen ini juga menyediakan properti yang dapat digunakan
untuk mempercantik tampilan table.
12

THttpCookie
Komponen ini menyediakan alat yang akan memudahkan untuk
mengatur Cookies. Alat ini digunakan oleh aplikasi CGI untuk
menyimpan informasi pada sistem client, sehingga bila sewaktuwaktu diperlukan, kita dapat membukanya kembali.

TSmtpSendMail
Komponen ini digunakan untuk mengirimkan smtp mail dari
aplikasi kita. Kita juga dapat menyertakan file (attachments) ketika
mengirimkan sebuah e-mail.

THttpTeeChart
Komponen ini digunakan untuk menghasilkan Live Graphical
charts di dalam sebuah dokumen HTML.

THttpUrlRequest
Komponen ini digunakan untuk untuk mendapatkan atau membuka
sebuah dokumen dari Web.

Contoh Aplikasi
Berikut adalah cara pembuatan sebuah aplikasi CGI dengan
menggunakan Borland Delphi.
1. Pertama-tama kita buat sebuah tabel bernama Mhs . Kemudian
ditentukan nama field dengan “Nama”.
2. Kita buat sebuah project baru dengan nama siswa, lalu
tempatkan tiga komponen ke dalam form1 (Gambar 2).
3. Kita
beri
nama
ketiga
komponen
tersebut
sebagai
GeneralHttpEngine1, HttpDBGrid1, Query1.
4. Kita isi Dataset Properties HttpDBGrid komponen dengan
nama Query1.
5. Kita isi Sql Properties Query komponen dengan:
Select Nama from mhs where Nama like :Nama
6. Kita isi tipe data parameter Nama sebagai string, pada
parameter properties Query komponen.
13
7. Kita ubah Archive Properties Query komponen menjadi True.
8. Selanjutnya
kita
isi
OnFirstExecRequest
Events
GeneralHttpEngine komponen dengan:
Query1.Databasename:=ExtractFileDir(ExeOrDllPath);
(Digunakan untuk mengeset path database dalam direktori yang sama dengan
aplikasi kita).
9. Isi OnExecRequest Events GeneralHttpEngine komponen
dengan:
putline (‘html><body>’);
putline
(‘<form
method=”post”
action=http://127.0.0.1/cgi-bin/siswa.exe>’);
putline (‘<center>’);
putline (‘Nama <input type=textName=”nama”>’);
putline
(‘<input
type=submit
Name=”search”
value=”search”>’);
putline (‘</center></form></body></html>’);
if FormVar(‘search’,”)=’search’ then
begin
input:=’%’+FormVar(‘nama’,”)+’%’;
query1.params[0].value:=input;
{mengisi
parameter nama pada sql}
query1.open;
httpdbgrid1.put; {Untuk menampilkan tabel}
query1.close;
end;
Jangan lupa menentukan variabel input dengan tipe string.
10. Kita siap untuk mengkompilasi file.
11. Tempatkan file siswa.exe (hasil kompilasi) dan mhs.db (table)
dalam direktori /cgi-bin pada web server yang kita gunakan.
Kemudian kita coba jalankan apikasi yang telah dibuat dengan
menggunakan web browser.
5. Perancangan
Untuk menjalankan pengendalian Input Output melalui jaringan internet dengan
berbasis web maka akan diperlukan spesifikasi tertentu baik itu berada di client
ataupun pada server.
14
Client
Server
Request
Web
Browser
Windows
Respons
e
CGI
Expert
Apache
Web
Server
Windows
Gambar 8. Arsitektur Client dan Server
5.1. Hardware
Digunakan komputer server yang terhubung ke rangkaian led sederhana
melalui parallel port. Server terhubung ke jaringan internet melalui Local
Area Network (LAN) atau dengan gateway ke jaringan internet luar.
Sedangkan komputer client adalah komputer yang terhubung ke jaringan
internet sehingga dapat mengakses ke server, dan semua komputer yang
terhubung dengan Local Area Network yang sama dengan komputer
server.
Rangkaian percobaan output terdiri dari Led, Resistor 220 ohm 8 buah,
dan VCC 4.5 V. pada saat logic nol dari parallel port maka arus sink ke
dalam parallel port sehingga led menyala. Pada saat logic high maka arus
kecil sekali karena beda potensial antara parallel port dan Vcc sangat kecil
sehingga led tidak menyala.
Rangkaian Input digunakan satu saklar VCC 4.5 V dan resistor 470Ω.
Pada saat input high maka arus akan masuk ke parallel port, tetapi pada
saat input low arus akan langsung ke ground karena tidak memiliki
hambatan.
15
Gambar 9. Rangkaian Input
Gambar 10. Rangkaian Output
16
5.2. Program CGI
Terdapat file HTML yang merupakan halaman awal dengan nama
index.html.
Gambar 11. Tampilan index.html
Listing program index.html :
<HTML>
<HEAD>
<TITLE>Web Based, Input/Output Control</TITLE>
</HEAD>
<BODY BGCOLOR=#9AC8AA>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=20
style="MARGIN-TOP: -2px" width=779>
<TBODY><TR><TD height=16 width=138>
<P
align=center><IMG
alt="ukplogo.gif"
height=80
src="cgi-bin/ukplogo.gif" width=89></P></TD>
<TD
bgColor=#9AC8AA
height=16
width=629><BIG><FONT
face="Bookman Old Style">
<MARQUEE
behavior=alternate
height=43
style="FONT-
FAMILY: Comic Sans MS; FONT-SIZE: 20pt; FONT-STYLE:
oblique" width=621 border="0">
WEB BASED, I/O CONTROL</MARQUEE>
</FONT></BIG>
</TD></TR></TBODY>
</TABLE>
<BR><BR>
Masukkan Password Anda:
17
<FORM METHOD=POST ACTION="cgi-bin/welcome.exe">
<BR><INPUT TYPE=PASSWORD NAME=Pass>
<INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter>
</FORM>
</BODY></HTML>
Setelah password diisi dengan benar dan kemudian tombol enter ditekan
maka from akan merujuk pada file welcome.exe yang berada pada folder
cgi-bin (Gambar 12).
Gambar 12. Tampilan welcome.exe
Pada halaman welcome.exe terdapat 2 pilihan yaitu Control Input dan
Control Output. Pada saat Control Input ditekan maka halaman akan
beralih pada file FormInput.exe yang berada pada folder cgi-bin. Berikut
adalah listing program FormInput.exe :
unit FormInputD;
interface
uses
Windows,
Messages,
SysUtils,
Controls, Forms, Dialogs,
HUtils, HttpEng, GenEng;
type
18
Classes,
Graphics,
TDataModule1 = class(TDataModule)
GeneralHttpEngine1: TGeneralHttpEngine;
HttpMemoFilter1: THttpMemoFilter;
procedure
GeneralHttpEngine1ExecRequest(Sender:
TObject);
procedure HttpMemoFilter1HttpEntry(EntryName: String;
var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
{$R *.DFM}
const
AlamatBase
= $378;
DataPort
= AlamatBase + 0; {port 378}
StatusPort
= AlamatBase + 1; {port 379}
ControlPort = AlamatBase + 2; {port 37A}
function BacaPort(PortAddress:Word) : Byte;
var InValue : Byte;
begin
asm
mov
DX, PortAddress
in
AL, DX
and
AL,10111000b//masking
mov
InValue,AL
end;
BacaPort :=InValue;
end;
19
procedure
TulisPort(PortAddress:Word;
ByteToWrite:Byte);
begin
asm
mov
DX, PortAddress
mov
AL, ByteToWrite
out
DX, AL
end;
end;
procedure
TDataModule1.GeneralHttpEngine1ExecRequest(Sender:
TObject);
var
Method : String;
I : Integer;
begin
GeneralHttpEngine1.AutoTrimFormVar:=True;
Method:=AnsiUppercase(FormVar('Method','post'));
//POST method !!!
//Header
PutLine('<HTML><META
HTTP-EQUIV="REFRESH"
CONTENT="5;url=http://localhost/cgibin/FormInput.exe">');
PutLine('<HEAD><TITLE>
Control
Input</TITLE></HEAD><BODY
BGCOLOR=#9AC8AA>');
Putline('<H2>Form Input Paralel Port</H2><HR>');
//Method form
PutLine('<FORM
METHOD="POST"
ACTION=
ScriptName+ '">'); //"POST" method !!!
PutLine('</FORM>');
HttpMemoFilter1.Put; //Send form input fields
PutLine('<BR><BR>');
20
"'
+
PutLine('<A
HREF=http://localhost/cgi-
bin/FormOutput.exe>Lihat Form Output');
//PutLine('<INPUT NAME="Submit" TYPE=submit SIZE=20
VALUE="View">');
PutLine('</FORM>');
PutLine('</BODY></HTML>');
//Log(GeneralHttpEngine1.ServerVariables.Text);
end;
procedure
TDataModule1.HttpMemoFilter1HttpEntry(EntryName:
String; var Handled: Boolean);
var
S : String;
Nilai : Byte;
begin
Nilai := 0;
EntryName:=AnsiUpperCase(EntryName);
if EntryName='INPUT2' then
begin
Put(IntToStr(BacaPort(StatusPort)));
{Convert BacaPort dari type Byte ke type String}
end
else
begin
Handled:=False; // Default=True;
end;
end;
end.
21
Gambar 13. Tampilan FormInput.exe
Kolom value menunjukan status dari rangkaian input. Apabila client
memilih untuk melihat form output maka halaman merujuk pada file
FormOutput.exe yang juga disimpan dalam folder cgi-bin.
Berikut ini listing program FormOutput.exe :
unit FormOutputD;
interface
uses
Windows,
Messages,
SysUtils,
Classes,
Graphics,
Controls, Forms, Dialogs,
HUtils, HttpEng, GenEng;
type
TDataModule1 = class(TDataModule)
GeneralHttpEngine1: TGeneralHttpEngine;
HttpMemoFilter1: THttpMemoFilter;
procedure
GeneralHttpEngine1ExecRequest(Sender:
TObject);
procedure
HttpMemoFilter1HttpEntry(EntryName:
String; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
22
end;
var
DataModule1: TDataModule1;
implementation
{$R *.DFM}
const
AlamatBase
= $378;
DataPort
= AlamatBase + 0;
StatusPort
= AlamatBase + 1;
ControlPort = AlamatBase + 2;
procedure
TulisPort(PortAddress:Word;
ByteToWrite:Byte);
begin
asm
MOV
DX, PortAddress
MOV
AL, ByteToWrite
OUT
DX, AL
end;
end;
procedure
TDataModule1.GeneralHttpEngine1ExecRequest(Sender:
TObject);
var
Method : String;
I : Integer;
begin
GeneralHttpEngine1.AutoTrimFormVar:=True;
Method:=AnsiUppercase(FormVar('Method','post'));//POST
method !!!
//Header
23
PutLine('<HTML><HEAD><TITLE>Form
OutPut</TITLE></HEAD><BODY BGCOLOR=#9AC8AA>');
Putline('<H2>Form Output Paralel Port</H2><HR>');
//Change method form
PutLine('<FORM
METHOD="POST"
ACTION=
"'
+
ScriptName+ '">'); //"POST" method
//Input form
PutLine('<INPUT
TYPE="HIDDEN"
NAME="METHOD"
VALUE="'+FormVar('Method','')+'">');
HttpMemoFilter1.Put; //Send form input fields
PutLine('<INPUT
NAME="Submit"
TYPE=submit
SIZE=20
VALUE="View/Reset">');
PutLine('<BR><BR>');
PutLine('<A
HREF=http://localhost/cgi-
bin/FormInput.exe>Lihat Form Input');
PutLine('</FORM>');
PutLine('</BODY></HTML>');
//
Log(GeneralHttpEngine1.ServerVariables.Text);
end;
procedure
TDataModule1.HttpMemoFilter1HttpEntry(EntryName:
String;
var Handled: Boolean);
var
S : String;
I : Integer;
Nilai : Byte;
begin
Nilai:=0;
EntryName:=AnsiUpperCase(EntryName);
if EntryName='INPUT1' then
begin
S:=FormVar('INPUT1','');
if S='' then
24
begin
Nilai:=0;
Put('no value');
end;
if S='A' then Nilai := Nilai or $01;
if S='B' then Nilai := Nilai or $02;
if S='C' then Nilai := Nilai or $04;
if S='D' then Nilai := Nilai or $08;
if S='E' then Nilai := Nilai or $10;
if S='F' then Nilai := Nilai or $20;
if S='G' then Nilai := Nilai or $40;
if S='H' then Nilai := Nilai or $80;
TulisPort(DataPort, Nilai);
Put(S);
end
else
begin
Handled:=False; // Default=True;
end;
end;
end.
Pada bagian awal program dijelaskan prosedur tentang addressing parallel
port dan metode untuk mengeluarkan data ke parallel port. Setelah itu
dilakukan pengecekan data yang akan dikeluarkan. Setelah memasuki
program utama maka akan langsung dijalankan led yang akan menyala
seperti yang diinginkan user.
25
Gambar 14. Tampilan FormOutput.exe
6. Pengembangan dan Kerja Lanjutan
Setelah mengerjakan tugas matakuliah project sampai periode uts ini,
kelompok kami akan melakukan beberapa pengembangan yang berhubungan
dengan hardware dan software yang tujuan akhirnya adalah pengendalian
Input Output untuk spesifikasi 8 output dan satu input.
6.1. Hardware
Untuk pengembangan hardware akan dilakukan dengan mengembangkan
output tidak hanya led saja, tetapi dengan delapan buah output yang terdiri
dari :
26
6.1.1. Relay sebagai saklar tegangan AC 220 volt.
Gambar 15. Rangkaian Relay
Gambar 15. diatas adalah rangkaian relay yang menggunakan logic
low untuk mengaktifkan relay. Digunakan logic low disebabkan
oleh kondisi tegangan parallel port yang tidak stabil pada saat start
komputer. Sehingga tegangnnya mengambang dan menyalakan
rangkaian. Sedangakan apabila kita menggunakan logic low maka
rangkaian akan aktif apabila arus dari parallel port sink sebesar 4
mA seperti TTL. Karena menggunakan logic nol untuk
mengaktifkan relay maka digunakan transistor PNP untuk
memperkuat arus yang keluar dari parallel port. Untuk hardware ini
sudah dilakukan analisa rangkaian tetapi belum merangkai
hardware, dan akan diselesaikan untuk periode UAS.
27
Komponen
Tipe
Jumlah
Resistor
1 kΩ
1
Transistor
PNP
9012
1
Diode
1N4002
1
Relay
12 V
1
VCC
12 V
1
Beban
220V
Tegangan
AC
1
220 V
50Hz
1
Tabel 1. Komponen rangkaian Relay
PNP
Transistor
9012
Vcb max
25 v
Vce max
25 v
Veb max
3v
Ic max
400 mA
Power total
400 mW
Hfe
64/202
Hfe bias
500mA
Tabel 2. Spesifikasi Transistor PNP 9012
6.1.2. Sebagai Saklar motor DC
Sebagai saklar motor DC pada prinsipnya hampir sama dengan
pengendalian relay. Hanya saja dengan menggunakan penguat arus
dan sumber tegangan 12 V dc dan motor dc.
6.1.3. LED
Penggunaan led sama saja dengan rangkaian sederhana yang
didemokan, hanya akan dicoba untuk dapat menayala lebih dari
satu Led pada saat yang bersamaan. Akan dikembangkan juga
untuk simulasi Led
28
6.1.4. Input
Rankaian input hanya akan menggunakan saklar biasa dengan
teganan +5 V dc dan R untuk mengatur besarnya arus. Pada
parallel port arus input adalah sebesar 10 mA sehingga dengan
VCC 5 volt akan didapatkan perhitungan R =V/I = 5 V / 10 mA ,
sehingga didapatkan R sebesar 500Ω, dan digunakan resistor
470Ω. Pada saat switch tertutup maka arus akan langsung mengalir
ke ground, dan ada juga arus dari parallel port berupa Iil karena
parallel port input berlogic low sehingga ada arus input low sebesar
-400 uA, atau dengan kata lain arus dari Vcc dan arus dari parallel
port akan menuju ground. Sedangkan pada saat switch terbuka
maka arus akan mengalir ke parallel port (sink) sebesar 20 uA
karena parallel port berlogic high.
Gambar 16. Rangkaian input parallel port
6.2. Software
Pengembangan software akan mengarah pada penggunaan data base untuk
history seperti kapan terakhir diakses, atau untuk menyimpan data yang
penting. Akan ditelusuri lebih lanjut apakah akan menggunakan My-SQL
atau Delphi dengan komponen CGIexpert untuk pengolahan database.
29
7. Kesimpulan
1. Penggunaan jaringan internet tidak terbatas oleh ruang dan waktu sehingga
menjadi salah satu pilihan komunikasi yang menghubungkan seluruh
dunia.
2. Alternatif baru dalam perkembangan dunia internet adalah digunakan
sebagai pengendalian suatu system, dalam hal ini dihubungkan antara
pemanfaatan jaringan internet dengan system input output.
3. Hasil akhir dari tugas ini dapat dikembangkan untuk pengembangan ke
arah internet networking controller terutama pada pengontrolan mesin
industri.
30
Download