Rabu, 09 November 2011

keterangan timer listrik

MODE TIMER PADA SISTEM KENDALI LISTRIK


Gambar Snapshoot Menu Program Timer Sistem Kendali Listrik
fungsi tambahan dari Program Sistem Kendali Listrik ini merupakan sebuah fungsi Timer, sintaks dari fungsi tambahan ini masih sama seperti dengan sintaks program utama (main program), yaitu berupa sebuah struktur dari  perintah Switch yang bersarang atau  di ulang-ulang (looping). Yang mana setiap case dari dari perintah switch ini melakukan prosedur tersendiri, dalam struktur switch ini terdiri dari 3 buah case, case yang pertama adalah sebuah fungsi timer yang mengatur waktu kondisi 0 pada data register D4 yang berakibat pada  kondisi pin no. 6 yang dihubungkan dengan hardware sistem kendali listrik yaitu dengan rangkaian kontaktor elektronik, yakni dengan kontaktor listrik 5. Disini software meminta pengguna  masukan angka sebagai durasi waktu kondisi 0 pada bit data register D4. Adapun batas maksimal jumlah angka yang dapat pengguna masukan adalah 19 digit presisi atau setara dengan nilai 9999999999999999999, hal ini dikarenakan penggunaan variabel tipe long double  pada variabel penampung data timer pada bagian inisialisasi program.  Kemudian karena sistem pewaktuan dalam software ini adalah dalam detik maka disini sedangkan durasi waktu yang dikehendaki dari semula dalam satuan menit, maka data angka dari inputan pengguna taditerlebih dahulu di kalikan dengan 60. Kemudian nilai tersebut dijadikan sebagai prasyarat untuk pengulangan penundaan waktu dalam hal ini  mengunakan perintah for untuk melakukan metoda perulangan.
Pada case berikutnya, pada prinsipnya cara kerja dari case ini sama dengan case yang pertama, hanya saja  selain berfungsi sama seperti  case yang pertama yang mana adalah sebuah fungsi timer yang mengatur waktu kondisi 0 pada data register D4 yang berakibat pada  kondisi pin no. 6 yang dihubungkan dengan hardware sistem kendali listrik yaitu dengan rangkaian kontaktor elektronik, yakni dengan kontaktor listrik 5, maka dalam case ini program di intruksikan agar dapat  juga mengatur waktu kondisi 1 pada data register D4, beserta banyaknya perulangan dari kedua kondisi tersebut. Yaitu kondisi 1 atau 0 pada bit data register D4 yang berakibat pada  kondisi pin no. 6 yang dihubungkan dengan hardware sistem kendali listrik yaitu dengan rangkaian kontaktor elektronik, yakni dengan kontaktor listrik 5.
SYNTAX MODE TIMER SISTEM KENDALI LISTRIK:
#include <iostream>
#include <conio.h>
using namespace std;
int emergency_stop;
int opsi_awal;
int opsi_timer;
int nilai_port;
int temp_value;
long double  durasi_timer1;
long double  durasi_timer2;
long double  durasi_timer2_on;
long double  durasi_timer2_off;
long double  durasi_timer2_ulang;
long double  ulang;
long double  ulang1;
long double   temp1;
long double  temp2;
long double  temp3;
int main() {
nilai_port=0, temp_value=0;
temp_value=nilai_port;
nilai_port=(temp_value | 255);
_outp(0×378,nilai_port); // Matikan semua Kontaktor Listrik
main_looping:
cout <<”\t”;cout <<”\t”;
cout<<”***************************************”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”*****TUGAS AKHIR DASAR PEMROGRAMAN*****”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”—————————————”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”******** SISTEMATIKA MODE TIMER *******”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”—————————————”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”******** SISTEM KENDALI LISTRIK *******”<<endl ;
cout <<”\t”;cout <<”\t”;
cout<<”***************************************”<<endl ;
cout<<”\n”;
timer_looping:
cout<<”1. MODE TIMER 1″<<endl;
cout<<”2. MODE TIMER 2″<<endl;
cout<<”3. Keluar Dari Program”<<endl;
cout<<”\n”;
cout<<”Silahkan pilih mode Program, dengan menekan angka sesuai nomor (1-3):”;cin>>opsi_timer;
cout<<”\n”;
switch(opsi_timer) {
case 1:
cout<<”Masukan nilai durasi waktu untuk kondisi kontaktor 5 ON (dalam Menit):”;cin>>durasi_timer1;
cout<<’\n’;
cout<<”Status Kontaktor Listrik 5 ON”<<endl;
cout<<’\n’;
//cout<<”Untuk Mematikan Kontaktor listrik 5 secara langsung, tekan tombol 0, lalu ENTER “<<endl;
temp_value=nilai_port;
nilai_port=(temp_value & ~16);
_outp(0×378,nilai_port); // Nyalakan Kontaktor Listrik 5
durasi_timer1=60*durasi_timer1;
//_sleep(durasi_timer1); //tunggu sebanyak waktu yg telah di kehendaki
for (ulang=0; ulang<=durasi_timer1-1 ; ulang++) {
_sleep(1000);
//cin>>emergency_stop;
//if (emergency_stop ==0)
//{goto OFF_dulu;}
//if (ulang==durasi_timer1)
//{goto OFF_dulu;}
}
goto OFF_dulu;
break;
case 2:
cout<<”Masukan nilai durasi waktu untuk kondisi kontaktor 5 ON (dalam Menit):”;cin>>durasi_timer2_on;
cout<<”Masukan nilai durasi waktu untuk kondisi kontaktor 5 OFF (dalam Menit):”;cin>>durasi_timer2_off;
cout<<”Masukan nilai jumlah perulangan kondisi ON-OFF yang di kehendaki:”;cin>>durasi_timer2_ulang;
if (durasi_timer2_ulang==0)
{
cout<<’\n’;
cout<<”Angka perulangan yang anda masukan salah”<<endl;
cout<<”Tekan sembarang tombol untuk mengulang!”<<endl;
getch();
system(“cls”);
goto timer_looping;
}
durasi_timer2_on=60*durasi_timer2_on;
durasi_timer2_off=60*durasi_timer2_off;
temp1=durasi_timer2_on;
temp2=durasi_timer2_off;
perulangan_timer_2:
durasi_timer2_on=temp1;
durasi_timer2_off=temp2;
cout<<’\n’;
cout<<”Status Kontaktor Listrik 5 ON”<<endl;
cout<<’\n’;
temp_value=nilai_port;
nilai_port=(temp_value & ~16);
_outp(0×378,nilai_port); // Nyalakan Kontaktor Listrik 5
//_sleep(durasi_timer1); //tunggu sebanyak waktu yg telah di kehendaki
for (ulang=0; ulang<=durasi_timer2_on-1 ; ulang++) {
_sleep(1000);
}
cout<<’\n’;
cout<<”Status Kontaktor Listrik 5 OFF”<<endl;
cout<<’\n’;
temp_value=nilai_port;
nilai_port=(temp_value | 16);
_outp(0×378,nilai_port); // Matikan Kontaktor Listrik 5
//_sleep(durasi_timer1); //tunggu sebanyak waktu yg telah di kehendaki
for (ulang=0; ulang<=durasi_timer2_off-1 ; ulang++) {
_sleep(1000);
}
durasi_timer2_ulang–;
if (durasi_timer2_ulang==0)
{goto OFF_dulu;}
goto perulangan_timer_2;
break;
/*BAGIAN INI MERUPAKAN SET INTRUKSI UNTUK KELUAR DARI PROGRAM*/
case 3 :
temp_value=nilai_port;
nilai_port=(temp_value | 255);
_outp(0×378,nilai_port); // Matikan semua Kontaktor Listrik
break;
default:cout<<”Angka yang anda masukan salah”<<endl;
cout<<”Tekan sembarang tombol untuk mengulang!”<<endl;
getch();
system(“cls”);
goto main_looping;
OFF_dulu:
temp_value=nilai_port;
nilai_port=(temp_value | 16);
_outp(0×378,nilai_port);
system(“cls”);
goto main_looping;
}
return 0;
/* ——————————————————————
——————————Coding by:—————————–
Kelompok 9:
1. Aziza Januar        (1000368)
2. Gebyar Gumelar    (1005373)
3. Iman Fushshilat    (1005173)
——————————————————————–*/
}
SKEMA HARDWARE :

Tidak ada komentar:

Posting Komentar