• Tidak ada hasil yang ditemukan

Implementasi CPU PLC (Programmable Logic Control) menggunakan Mikrokontroller Atmega32 - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Implementasi CPU PLC (Programmable Logic Control) menggunakan Mikrokontroller Atmega32 - USD Repository"

Copied!
214
0
0

Teks penuh

(1)

untuk memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Disusun oleh: EDI GUNAWAN

045114070

PROGRAM STUDI TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2009

(2)

CONTROL) USED MICROCONTROLLER ATMEGA32

In partial fulfilment of the requirements

For the degree of Sarjana Teknik

Electrical Engineering Study Program

Electrical Engineering Departement

Science and Technology Faculty Sanata Dharma University

By :

EDI GUNAWAN 045114070

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTEMENT

SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2009
(3)
(4)
(5)
(6)

Karya ini ku persembahkan kepada :

 Ku ucapkan syukur kepada Tuhan Yang Maha Esa.

 Kedua orang tuaku yang sudah memberikan kepercayaan untuk melanjutkan studi di Yogyakarta.

 Mbak Rinawati yang selalu memberikan semangat untuk segera menyelesaikan skripsi ini dan aku mensyukuri keberadaan mu di sisi ku.

 Teman-teman yang sudah membantu.

Hidup itu tidak semudah membalikkan telapak tangan.

Ada kemauan pasti ada jalan

Terus berjuang tiada henti

.

(7)
(8)

Pada CPU PLC data kiriman akan diolah dan dieksekusi hingga didapatkan output dari CPU PLC.

CPU PLC ini bekerja setelah mendapatkan kode kiriman dan, kode kiriman berupa intruksi-intruksi PLC. Kode kiriman akan dieksekusi dan dibandingkan dengan kode yang tersimpan di dalam CPU PLC. Pengkodean intruksi-intruksi logika PLC dalam bentuk biner dan heksa. Kode kiriman yang diterima akan diproses oleh CPU PLC dan CPU PLC dari memori mikrokontroler ATmega32.

Dari hasil penelitian dan percobaan, CPU PLC ini telah bekerja sesuai dengan perancangan. Hal ini dapat dibuktikan dari hasil pengujian kode kiriman dari konsol atapun dari PC berupa bahasa mnemonic LD 001 AND 002 OUT 101, LD 001 OR 002 ANDNOT 003 OUT 101, LD 001 TIM #100 LD TIM 001 OUT 101, LD 001 OR 002 OUT 101, LD 001 CNT #05 LD CNT 001 OUT 101, LD 005 OUT NOT 105. Program TIM mencacah 100 detik dan program CNT mencacah dari luar sebanyak 5 kali. Untuk semua modul input dan output dapat berfungsi sesuai dengan perancangan. Kegagalan komunikasi dikarenakan penerimaan data komunikasi masih belum sempurna, sehingga CPU PLC mengalami kegagalan pengiriman data.

Kata kunci: Bahasa Mnemonik, CPU PLC, Intruksi-intruksi PLC.

(9)

From result of research and this attempt, CPU PLC have worked as according to plane. This matter can be provable from result of examination of consignment code from console and PC form of programe and mnemonic language LD 001 AND 002 OUT 101, LD 001 OR 002 AND NOT 003 OUT 101, LD 001 TIM # 100 LD TIM 001 OUT 101, LD 001 OR 002 OUT 101, LD 001 CNT # 05 LD CNT 001 OUT 101, LD 005 OUT NOT 105. Programe of count TIM start 100 second and programe the CNT count from outside as much 5 rivers. For all module of input and output can function agree with of scheme. Communications failure because of acceptance of communications date not yet complete, so that CPU PLC experience of the failure of date delivery.

Keyword: Mnemonic Language, CPU PLC, Instrucsion-Instrucsion PLC.

(10)

dan rahmat-Nya sehingga penulis dapat menyelesaikan karya tulis berjudul

“Implementasi CPU PLC (POGRAMMABLE LOGIC CONTROL) Menggunakan

mikrokontroler ATMEGA32”.

Karya tulis ini merupakan salah satu syarat untuk memperoleh gelar Sarjana

Teknik pada Program Studi Teknik Elektro Universitas Sanata Dharma. Penulisan

skripsi ini didasarkan pada hasil-hasil yang penulis dapatkan selama tahap

perancangan, pembuatan dan pengujian alat.

Penulisan skripsi ini tidak terlepas dari bantuan berbagai pihak. Untuk itu,

penulis mengucapkan terima kasih kepada:

1. Yosef Agung Cahyanta, S.T.,M.T.. Selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.

2. B. Wuri Harini, S.T.,M.T.. selaku Ketua Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta.

3. Bapak Martanto, S.T., M.T., selaku dosen pembimbing I karya tulis

yang telah meluangkan waktu, tenaga, dan pikirannya untuk

membimbing penulis.

4. Ibu Wiwien Widyastuti, S.T., M.T., selaku dosen pembimbing II karya tulis yang telah meluangkan waktu, tenaga, dan pikirannya untuk

membimbing penulis.

5. Segenap karyawan sekretariat Fakultas Sains dan Teknologi.

6. Segenap dosen dan laboran Teknik Elektro Universitas Sanata

Dharma.

(11)
(12)

Halaman Pengesahan oleh Pembimbing... iii

Halaman Pengesahan oleh Penguji... iv

Halaman Pernyataan Keaslian Karya... v

Halaman Persembahan dan Moto Hidup... vi

Halaman Pernyataan Persetujuan Publikasi Karya Ilmiah Untuk... Kepentingan Akademis... vii

Intisari... viii

Abstract... ix

Kata Pengantar... x

Daftar Isi ... xii

Daftar Gambar ...xviii

Daftar Tabel ... xxv

Daftar Lampiran ...xxvi

BAB I PENDAHULUAN ... 1

1.1Judul ... 1

1.2Latar Belakang Masalah ... 1

1.3Tujuan dan Manfaat Penelitian ... 2

1.4Batasan Masalah ... 2

1.5Metodologi Penelitian ... 3

1.6Sistematika Penulisan ... 4

(13)

2.1.1.1 Normally Open ... 8

2.1.1.2 Normally Close ... 9

2.1.1.3 Keluaran (Output) ... 9

2.1.2 Instruksi-instruksi Logika dalam PLC ... 9

2.1.2.1 Instruksi LOAD (LD) dan LOAD Not (LDNOT) ... 10

2.1.2.2 Instruksi AND dan AND NOT ... 10

2.1.2.3 Instruksi OR dan ORNOT ... 12

2.1.2.4 Instruksi END ... 14

2.2 Mnemonic ... 15

2.3 Mikrokontroller ATmega32 ... 16

2.3.1 Fitur ATmega32 ... 17

2.3.2 Organisasi Memori ... 20

2.3.2.1 Memori Program ... 21

2.3.2.2 Memori Data ... 21

2.3.2.3 EEPROM ... 22

2.3.2.3.1 Register EEARH and EEARL ... 22

2.3.2.3.2 Register EEDR ... 23

2.3.2.3.3 Register EECR ... 23

2.3.3 Register Serbaguna ... 24

(14)

2.3.5 Register I/O dan Port I/O ... 26

2.3.6 Timer/Counter ... 29

2.3.6.1 TIMSK (Timer/Counter Interrupt Mask Register) ... 30

2.3.6.2 TIFR ... 31

2.3.6.3 Special Function Register I/O ... 31

2.3.7 SPI (Serial Peripheral Interface) ... 32

2.3.8 USART ... 33

2.4 Komunikasi Serial ... 37

2.5 Relay ... 40

2.6 Driver Relay ... 41

BAB III PERANCANGAN PENELITIAN ... 42

3.1 Diagram Blok Perancangan CPU PLC ... 42

3.2 Perancangan Perangkat Keras ... 43

3.2.1 Rangkaian Mikrokontroller ... 43

3.2.1.1 Konstruksi Rangkaian Mikrokontroller ... 43

3.2.1.2 Rangkaian Reset ... 44

3.2.1.3 Rangkaian Osilator ... 44

3.2.1.4 Indikator LED ... 45

3.2.1.4.1 Indikator Error ... 46

3.2.1.4.2 Indikator Komunikasi Serial RS-232 ... 46

3.2.1.4.3 Indikator Supplay CPU PLC ... 47

3.2.1.4.4 Indikator Input ... 48

(15)

3.3.2 Diagram Alir Utama pada Mikrokontroller ... 55

3.3.2.1 Subrutin Pembacaan Isi Alamat Memori PLC ... 57

3.3.2.2 Subrutin Pemilihan Kode ... 58

3.3.2.3 Subrutin Logika LD ... 62

3.3.2.4 Subrutin Logika LDNOT ... 63

3.3.2.5 Subrutin Logika AND ... 65

3.3.2.6 Subrutin Logika ANDNOT ... 66

3.3.2.7 Subrutin Logika OR ... 67

3.3.2.8 Subrutin Logika ORNOT ... 68

3.3.2.9 Subrutin Logika Timer ... 69

3.3.2.10 Subrutin Logika LD TIM ... 73

3.3.2.11 Subrutin Logika LD TIM NOT ... 74

3.3.2.12 Subrutin Logika AND TIM ... 75

3.3.2.13 Subrutin Logika AND TIM NOT ... 76

3.3.2.14 Subrutin Logika OR TIM ... 78

3.3.2.15 Subrutin Logika OR TIM NOT ... 79

3.3.2.16 Subrutin Logika OUT ... 80

3.3.2.17 Subrutin Logika OUTNOT ... 81

3.3.2.18 Subrutin Logika Counter ... 83

(16)

3.3.2.20 Subrutin Logika LD CNT NOT ... 87

3.3.2.21 Subrutin Logika AND CNT ... 88

3.3.2.22 Subrutin Logika AND CNT NOT ... 89

3.3.2.23 Subrutin Logika OR CNT ... 90

3.3.2.24 Subrutin Logika OR CNT NOT ... 91

BAB IV HASIL PENGAMATAN dan PEMBAHASAN... 93

4.1Model CPU PLC ... 93

4.2Prinsip dan Cara Kerja CPU PLC ... 94

4.3Analisa Perangkat Lunak ... 96

4.3.1 Inisialisasi... 96

4.3.2 Komunikasi ... 96

4.3.3 Pembacaan kode Kiriman Pada memori CPU PLC ... 98

4.3.4 Pembandingan Kode Kiriman dengan Kode Yang Disimpan... Pada Memori CPU PLC ... 99

4.4 Analisa Perangkat Keras(komunkasi console dengan CPU PLC) ... 100

4.4.1 Logika LD dan Logika AND ... 100

4.4.2 Logika LD dan Logika OR ... 104

4.4.3 Logika Counter... 107

4.4.4 Logika Timer... 112

4.4.5 Logika ON-OFF ... 117

4.4.6 Logika LD NOT dan Logika OR NOT ... 119

4.4.7 Logika LD dan logika OUT ... 121

(17)

5.1 Kesimpulan ... 133

(18)

Gambar 2.3 Konfigurasi Simbol NC ... 9

Gambar 2.4 Konfigurasi Simbol Output ... 9

Gambar 2.5 Diagram Ladder Instruksi LD dan LDNOT ... 10

Gambar 2.6 Diagram Ladder Instruksi AND dan ANDNOT ... 10

Gambar 2.7 Diagram Ladder Instruksi OR dan ORNOT ... 13

Gambar 2.8 Diagram Ladder Instruksi END ... 15

Gambar 2.9 Konfigurasi Pin ATmega32 ... 18

Gambar 2.10 Arsitektur ATmega32 ... 19

Gambar 2.11 Organisasi Memori ATmega32 ... 20

Gambar 2.12 Peta Memori data AVR ATmega32 ... 21

Gambar 2.13 Register EEARH dan EEARL ... 22

Gambar 2.14 Register EEDR ... 23

Gambar 2.15 Register EECR ... 23

Gambar 2.16 Register Serbaguna dari ATmega32 ... 25

Gambar 2.17 Register Serbaguna ... 25

Gambar 2.18 Stack Pointer ... 26

Gambar 2.19 Register I/O dan Port I/O ... 27

Gambar 2.20 Register SFIOR ... 27

Gambar 2.21 Port A,B,C,D ... 28

Gambar 2.22 Lanjutan gambar Port A,B,C,D sebagai register I/O... 29

(19)

Gambar 2.26 SPI (Serial Pheripheral Interface) ... 33

Gambar 2.27 USART ... 34

Gambar 2.28 UBRRH dan UBRRL ... 35

Gambar 2.29 UCSRC ... 35

Gambar 2.30 Komunikasi Serial DB9 ... 38

Gambar 2.31 IC MAX232 ... 39

Gambar 2.32 Relay ... 40

Gambar 2.33 IC ULN2803 Driver Relay... 41

Gambar 3.1 Diagram Blok Sistem CPU PLC ... 42

Gambar 3.2 Konfigurasi Rangkaian Reset ... 44

Gambar 3.3 Konfigurasi Rangkaian Osilator ... 44

Gambar 3.4 Indikator Error CPU PLC ... 46

Gambar 3.5 Indikator Komunikasi Serial RS-232 dengan CPU PLC ... 47

Gambar 3.6 Indikator Supply CPU PLC ... 47

Gambar 3.7 Indikator Input ... 49

Gambar 3.8 Indikator Output dan Relay ... 51

Gambar 3.9 Konfigurasi Komunikasi RS-232 ... 53

Gambar 3.10 Subrutin Komunikasi Serial ... 54

Gambar 3.11 Aktivasi Komunikasi Serial ... 55

(20)

Gambar 3.13 Diagram alir Pembacaan Isi Alamat Memori PLC ... 58

Gambar 3.14 Subrutin Pemilihan Kode ... 59

Gambar 3.15 Lanjutan Subrutin Pemilihan Kode ... 60

Gambar 3.16 Lanjutan Subrutin Pemilihan Kode ... 61

Gambar 3.17 Lanjutan Subrutin Pemilihan Kode ... 62

Gambar 3.18 Diagram Alir Subrutin LD ... 63

Gambar 3.19 Diagram alir Subrutin LD NOT ... 64

Gambar 3.20 Diagram alir Subrutin AND ... 65

Gambar 3.21 Diagram Alir Subrutin ANDNOT ... 66

Gambar 3.22 Diagram Alir Subrutin OR ... 67

Gambar 3.23 Diagram Alir Subrutin ORNOT ... 69

Gambar 3.24 Aktivasi Timer ... 70

Gambar 3.25 Subrutin Timer ... 72

Gambar 3.26 Logika LD TIM ... 73

Gambar 3.27 Logika LD TIM NOT ... 74

Gambar 3.28 Logika AND TIM ... 75

Gambar 3.29 Logika AND TIM NOT ... 77

Gambar 3.30 Logika OR TIM ... 78

Gambar 3.31 Logika OR TIM NOT ... 79

Gambar 3.32 Diagram alir Logika OUT ... 81

Gambar 3.33 Diagram alir Logika OUT NOT ... 82

Gambar 3.34 Logika Counter ... 83

(21)

Gambar 3.39 Logika AND CNT NOT ... 89

Gambar 3.40 Logika OR CNT ... 91

Gambar 3.41 Logika OR CNT NOT ... 92

Gambar 4.1 Model CPU PLC ... 93

Gambar 4.2 Potongan Program Komunikasi ... 96

Gambar 4.3 Program Menyimpan Pada Memori CPU PLC ... 97

Gambar 4.4 Hasil komunikasi disimpan pada memori CPU PLC ... 97

Gambar 4.5 Program pembacaan memori ... 98

Gambar 4.6 kode yang terbaca pada memori CPU PLC... 99

Gambar 4.7 potongan program kode yang akan dibandingkan... 99

Gambar 4.8 diagram ladder 1... 100

Gambar 4.9 logika LD 001 aktif dan logika AND 002 tidak aktif ... 101

Gambar 4.10 logika LD 001 tidak aktif dan logika AND 002 aktif ... 101

Gambar 4.11 program eksekusi logika LD ... 102

Gambar 4.12 hasil eksekusi yang tersimpan di memori CPU PLC ... 102

Gambar 4.13 program logika AND 002... 103

Gambar 4.14 program logika OUT 101 ... 103

Gambar 4.15 hasil diagram ladder 1 ... 104

Gambar 4.16 diagram ladder 2... 104

(22)

Gambar 4.18 hasil diagram ladder 2 logika LD ... 106

Gambar 4.19 hasil diagram ladder 2 logika OR ... 107

Gambar 4.20 diagram ladder 3 logika counter ... 107

Gambar 4.21 pembacaan logika LD untuk logika counter ... 109

Gambar 4.22 alur kerja logika counter... 109

Gambar 4.23 logika LD CNT untuk memanggil hasil eksekusi CNT ... 110

Gambar 4.24 hasil dari logika counter ... 111

Gambar 4.25 logika CNT tidak mendapat input ... 111

Gambar 4.26 hasil diagram ladder 3 dari logika counter... 111

Gambar 4.27 diagram ladder 4 logika timer... 112

Gambar 4.28 hasil diagram ladder 4 dari logika timer 100ms... 112

Gambar 4.29 hasil pengujian TIM 50ms... 114

Gambar 4.30 hasil pengujian TIM 150ms... 114

Gambar 4.31 hasil pengujian TIM 200ms... 115

Gambar 4.32 hasil pengujian TIM 250ms... 115

Gambar 4.33 hasil pengujian TIM 50ms... 115

Gambar 4.34 hasil pengujian TIM 150ms... 115

Gambar 4.35 hasil pengujian TIM 200ms... 116

Gambar 4.36 hasil pengujian TIM 250ms... 116

Gambar 4.37 diagram ladder 5 logika ON OFF... 117

Gambar 4.38 logika ON-OFF untuk logika LD 01 ... 118

Gambar 4.39 logika ON-OFF untuk logika OR 02... 118

(23)

dan logika OR NOT 005 aktif... 120

Gambar 4.43 hasil logika LD NOT 004 tidak aktif ...

dan logika OR NOT 005 aktif ... 120

Gambar 4.44 logika LD NOT 004 aktif ...

dan logika OR NOT 005 tidak aktif ... 120

Gambar 4.45 hasil logika LD NOT 004 aktif ...

dan logika OR NOT 005 tidak aktif ... 120

Gambar 4.46 logika LD NOT 004 aktif dan logika OR NOT 005 aktif ... 120

Gambar 4.47 hasil logika LD NOT 004 aktif ...

dan logika OR NOT 005 aktif ... 121

Gambar 4.48 diagram ladder 7 logika LD dan logika OUT ... 121

Gambar 4.49 hasil dari diagram ladder 7 logika LD 001 dan OUT 101... 122

Gambar 4.50 hasil dari diagram ladder 7 logika LD 002 dan OUT 102... 123

Gambar 4.51 hasil dari diagram ladder 7 logika LD 003 dan OUT 103... 123

Gambar 4.52 hasil dari diagram ladder 7 logika LD 004 dan OUT 104... 123

Gambar 4.53 hasil dari diagram ladder 7 logika LD 005 dan OUT 105... 123

Gambar 4.54 hasil dari diagram ladder 7 logika LD 006 dan OUT 106... 124

Gambar 4.55 hasil dari diagram ladder 7 logika LD 007 dan OUT 107... 124

Gambar 4.56 hasil dari diagram ladder 7 logika LD 008 dan OUT 108... 124

(24)

Gambar 4.58 logika LD 002 aktif dan logika OUT 102 aktif... 125

Gambar 4.59 logika LD 003 aktif dan logika OUT 103 aktif... 126

Gambar 4.60 logika LD 004 aktif dan logika OUT 104 aktif... 126

Gambar 4.61 logika LD 005 aktif dan logika OUT 105 aktif... 127

Gambar 4.62 logika LD 006 aktif dan logika OUT 106 aktif... 127

Gambar 4.63 logika LD 007 aktif dan logika OUT 107 aktif... 128

Gambar 4.64 logika LD 008 aktif dan logika OUT 108 aktif... 128

Gambar 4.65 hasil komunikasi antara PC dengan CPU PLC ... 129

Gambar 4.66 Diagram ladder 8 logika LD 001 dan logika OUT 101... 129

Gambar 4.67 diagram ladder 8 logika LD 001 aktif ...

dan logika OUT 101 aktif ... 129

Gambar 4.68 hasil pengujian CPU PLC ... 130

Gambar 4.69 Data error saat komunikasi... 130

Gambar 4.70 diagram ladder logika 9 OUT NOT ... 131

Gambar 4.71 diagram ladder logika OUT NOT mendapat input LD 005 ... 131

Gambar 4.72 hasil diagram ladder 9 logika OUT NOT... 131

(25)

Tabel 2.6 Pengaturan prescaler ... 31

Tabel 2.7 Pengaturan Baud Rate ... 36

Tabel 2.8 Komunikasi Serial DB9 ... 38

Tabel 4.1 Hasil Pengujian CPU PLC dari diagram ladder 1 ... 100

Tabel 4.2 Hasil Pengujian CPU PLC dari diagram ladder 2 ... 105

Tabel 4.3 Hasil Pengujian CPU PLC dari diagram ladder 5 ... 116

Tabel 4.4 Hasil Pengujian CPU PLC dari diagram ladder 6 ... 119

Tabel 4.5 Hasil Pengujian CPU PLC dari diagram ladder 7 ... 121

Tabel 4.6 Perbandingan PLC umum dengan CPU PLC ... 131

Tabel 4.7 hasil logika OUT NOT... 131

(26)

1. Kode intruksi dan data ... 134

2. Listing Program... 139

(27)

1.2

Latar Belakang Masalah

Pada masa kini, perkembangan teknologi sangat pesat. Hal ini berdampak

pada pola hidup manusia yang menuntut segala sesuatunya bergerak cepat,

praktis, dan serba instan. Dalam industri sistem pengontrolannya masih dengan

elektromekanik yang menggunakan relay-relay, yang masih mempunyai banyak

kelemahan, diantaranya kontak-kontak yang dipakai mudah aus karena

panas/terbakar atau karena hubung singkat, serta membutuhkan biaya yang cukup

besar untuk instalasi, pemeliharaan dan modifikasi dari sistem yang telah dibuat

jika di kemudian hari diperlukan modifikasi. Dengan menggunakan PLC hal-hal

ini dapat diatasi, karena sistem PLC mengintegrasikan berbagai macam komponen

yang berdiri sendiri menjadi suatu sistem kendali terpadu dan dengan mudah

merenovasi tanpa harus mengganti semua instrumen yang ada[1].

PLC (Programmable Logic Controller) adalah suatu sistem elektronika

yang dirancang untuk industri, yang menggunakan memori yang dapat diprogram

sebagai penyimpanan internal dari instruksi-instruksi untuk menjalankan

fungsi-fungsi logika, sequence, waktu, pencacah, dan aritmatika untuk mengontrol

berbagai jenis mesin atau proses melalui input dan output digital atau analog[1].

(28)

Seiring perkembangan teknologi yang semakin maju terutama pada

peralatan elektronika baik PLC ataupun mikrokontroler, penulis berencana akan

merancang PLC dengan menggunakan mikrokontroler. Pada mikrokontroler

tersebut akan dibuat master program dari fungsi-fungsi logika PLC. Alat ini sering

disebut dengan CPU. Master program fungsi-fungsi logika PLC tersebut akan

disimpan dalam EEPROM mikrokontroler ATmega32, dan CPU itu akan bekerja

sebagai PLC jika CPU itu diprogram sebagai fungsi-fungsi logika PLC. Alat yang

digunakan untuk memprogram CPU itu adalah Konsol dan PC.

1.3

Tujuan dan Manfaat Penelitian

Tujuan dari pembuatan alat ini adalah merancang dan membuat sebuah

PLC baik perangkat keras dan perangkat lunak dengan menggunakan kontrol dari

komputer maupun konsol yang dihubungkan ke mikrokontroler sebagai CPU.

Dalam mikrokontroler akan dibuat master program yang sesuai dengan

fungsi-fungsi logika PLC yang di implementasikan pada mikrokontroler ATmega32.

Penelitian ini dapat memberikan manfaat:

1. Sebagai dasar untuk mengembangkan aplikasi selanjutnya.

2. Sebagai referensi yang dapat mendukung penelitian selanjutnya

yang berkaitan aplikasi mikrokontroler, komunikasi serial dan

PLC.

1.4

Batasan Masalah

Alat ini mempunyai batasan masalah seperti:

(29)

3. 8 Port Input dan 8 Port Output yang digunakan dalam CPU PLC.

4. Proses komunikasi data menggunakan komunikasi serial dan

komunikasinya hanya satu arah.

5. Fungsi-fungsi logika PLC meliputi: LD, LDNOT, AND,

ANDNOT, OR, ORNOT, TIMER, COUNTER, OUT, OUT NOT,

END.

6. Hanya 1 macam timer saja yang digunakan dalam CPU PLC.

7. Hanya 1 counter saja yang digunakan dalam CPU PLC.

1.5

Metodologi Penelitian

Agar dapat melakukan perancangan alat dengan baik, maka penulis

membutuhkan masukan serta referensi yang didapatkan dengan metode :

1. Studi kepustakaan yang mencakup literatur-literatur,

gambar-gambar, dan manual.

2. Mencari informasi dari berbagai media termasuk dari dunia maya

(internet).

3. Membuat perencanaan dan merancang perangkat keras dan

perangkat lunak.

4. Melakukan pengamatan dan pengujian dengan alat yang sudah

dirancang terlebih dahulu untuk mengetahui alat sudah bekerja

(30)

1.6

Sistematika Penulisan

Sistematika penulisan tugas akhir ini terbagi menjadi lima bab yang

disusun sebagai berikut:

BAB I. PENDAHULUAN

Berisi latar belakang masalah, tujuan dan manfaat penelitian,

batasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB II. DASAR TEORI

Berisi dasar teori komponen-komponen yang akan digunakan

dalam penelitian.

BAB III. RANCANGAN PENELITIAN

Berisi diagram blok dan penjelasan cara kerja secara singkat

rancangan perangkat keras dan perangkat lunak.

BAB IV. HASIL PENELITIAN DAN PEMBAHASAN

Berisi pengamatan kerja dari perangkat keras dan perangkat lunak

yang telah dibuat.

BAB V. PENUTUP

Berisi kesimpulan dan saran untuk perbaikan alat dan penelitian

(31)

Mikrokontroller ATmega32”. Dalam perancangan dan pembuatan PLC ini, harus mengetahui terlebih dahulu prinsip kerja dasar dan piranti atau komponen

yang akan digunakan.

2.1

PLC

PLC atau kendali logika terprogram merupakan suatu piranti elektronik yang

dirancang untuk dapat beroperasi secara digital dengan menggunakan memori

sebagai media penyimpanan intruksi-intruksi internal untuk menjalankan

fungsi-fungsi logika, seperti fungsi-fungsi pencacah, fungsi-fungsi urutan proses, fungsi-fungsi pewaktu,

fungsi aritmatika, dan fungsi yang lainnya dengan cara memprogramnya.

Program-program dibuat kemudian dikirim ke PLC melalui programmer/monitor.

Pembuatan program dapat digunakan komputer sehingga dapat mempercepat hasil

pekerjaan. Fungsi lain pada PLC dapat digunakan untuk memonitor jalannya

proses pengendalian yang sedang berlangsung, sehingga dapat dengan mudah

dikenali urutan kerja proses pengendalian yang terjadi pada saat itu. Seperti

halnya komputer, PLC juga mempunyai kelengkapan yaitu CPU (Central

Processing Unit), memori (RAM dan ROM), programmer/monitor dan modul I/O

(input/output)[2].

(32)

Dalam sistem PLC ini terdapat 4 (empat) komponen bagian utama, keempat

komponen bagian utama tersebut adalah:

1. Central Processing unit (CPU), merupakan otak dari PLC yang terdiri

dari 3 bagian, yaitu:

a. Mikroprosesor merupakan otak dari PLC yang difungsikan untuk

operasi matematika dan opersi logika.

b. Memori, merupakan daerah CPU yang digunakan untuk melakukan

proses penyimpanan dan pengiriman data pada PLC.

c. Catu daya, berfungsi untuk mengubah sumber masukan tegangan

bolak-balik menjadi tegangan searah.

2. Programmer/monitor

3. Input/Output Modules

Secara blok diagram, hubungan bagian utama dari PLC secara umum dapat

di lihat pada gambar 2.1.

Programmer/Monitor

Mikroprosesor memori

Catu Daya

Modul keluaran Modul

masukkan

(33)

2. Deteksi dan koreksi kesalahan lebih mudah

3. Harga relatif murah

4. Pengamatan visual

5. Kecepatan operasi yang tinggi

6. Implementasi proyek lebih singkat

7. Lebih sederhana dan mudah dalam penggunaannya, memodifikasi lebih

mudah tanpa tambahan biaya

8. Dokumentasi mudah

Syarat-syarat yang harus dimiliki oleh sebuah PLC :

1. Hardware harus mudah diprogram ulang.

2. Semua komponen mampu beroperasi tanpa alat bantu dan memenuhi

persyaratan lingkungan.

3. Sistem yang dipakai mudah dirawat dan diperbaiki, beberapa indikator

dan alat bantu harus tersedia sebagai bagian dari sistem untuk

memudahkan pelacakan kerusakan.

4. Hardware hanya membutuhkan ruang dan daya yang kecil dibandingkan

dengan sistem elektromekanis.

5. PLC mampu berkomunikasi dengan pusat untuk pemantauan proses

(34)

6. Sistem kontrol menerima catu daya AC standar melalui push-button dan

limit switch yang ada pada sistem[2].

7. Sinyal output PLC mampu menjalankan motor stater dan solenoid valve

yang bekerja dengan catu daya AC, setiap output mampu memutuskan

atau mengalirkan arus sebesar 2A.

8. Hardware memiliki konfigurasi yang dapat dikembangkan dengan

minimal perubahan pada sistem maupun downtime.

9. Struktur memory PLC mudah dikembangkan.

2.1.1

Diagram Ladder

Pada PLC diagram kontrol dinamakan dengan diagram ladder (tangga).

Dinamakan diagram tangga dikarenakan bentuknya menyerupai tangga (bersusun

seperti tangga), seperti berjalan menuruni tangga mulai tangga atas dan perlahan

kebawah. Pada penggambaran diagram tangga dikenal simbol-simbol yang hampir

sama dengan relai-relai mekanik, yaitu: Normally Open (NO), Normally Close

(NC), Keluaran(output).[2]

2.1.1.1

Normally Open

NO merupakan salah satu jenis saklar yang dalam keadaan normal

berkondisi OFF , berupa satu kutub (berasal dari satu sumber) dan menghantarkan

arus hanya ke satu beban. Penghantaran arus dan tegangan (kondisi ON) dari

suatu sumber terjadi jika saklar terhubung, dan pemutusan arus dan tegangan

(kondisi OFF) terjadi saat saklar tidak terhubung atau ketika tidak mendapat arus,

(35)

2.1.1.2

Normally Close

Saklar ini menandakan keadaan saklar yang normalnya pada keadaan

ON/tertutup, jadi jika saklar tersebut diaktifkan akan menjadi OFF/terbuka.

Gambar konfigurasi simbol NC dapat dilihat pada gambar 2.3.

2.1.1.3

Keluaran (Output)

Keluaran dapat berupa relai yang akan mengaktifkan kontak-kontak NO

dan NC. Gambar konfigurasi simbol output dapat dilihat pada gambar 2.4. Gambar 2.3konfigurasi simbol NC[2]

Gambar 2.4konfigurasi simbol output[2]

2.1.2

Instruksi-instruksi Logika dalam PLC

Instruksi-instruksi tangga atau ladder instruction adalah instruksi-instruksi

yang terkait dengan kondisi-kondisi di dalam diagram tangga. Instruksi-instruksi

tangga, baik yang independen maupun kombinasi atau gabungan dengan blok

(36)

2.1.2.1

Instruksi LOAD (LD) dan LOAD Not (LDNOT)

Instruksi LD digunakan untuk memasukkan masukan yang awal dari

tangga. Sedangkan NOT untuk menandakan kontak NC. Intruksi LD dan LDNOT

dibutuhkan hanya satu kondisi logika saja pada awal program. Bentuk diagram

ladder perintah tersebut dapat dilihat pada gambar 2.5.

LD

LDNOT

Gambar 2.5 Diagram ladder instruksi LD dan LDNOT[2]

2.1.2.2

Instruksi AND dan ANDNOT

Instruksi AND digunakan untuk memasukkan masukan yang di seri

dengan masukkan yang sebelumnya. Tentunya instruksi yang di seri harus

terpenuhi semuanya untuk mengeluarkan satu keluaran. Dalam bentuk ladder

perintah tersebut dapat dilihat pada gambar 2.6.

LD AND

ANDNOT

(37)

a. Kemungkinan pertama, masukan A = 0 dan B = 0. Dengan kata lain

tidak ada masukan, maka keluarannya Q = 0.

b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat

masukan hanya di A dan tidak ada masukan pada B, maka

keluarannya Q = 0.

c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat

masukan hanya di B dan tidak ada masukan pada A, maka

keluarannya Q = 0.

d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat

masukan pada A dan B, maka keluarannya Q = 1.

Tabel 2.1. Tabel kebenaran gerbang AND A B Q

0 0 0 1 0 0 0 1 0 1 1 1

Untuk menganalisa gerbang ANDNOT dengan 2 buah masukan A dan B

dengan keluaran Q, maka terdapat 4 (empat) kemungkinan dan dapat dilihat pada

tabel 2.2.

a. Kemungkinan pertama, masukan A = 0 dan B = 0. Dengan kata lain

(38)

b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat

masukan hanya di A dan tidak ada masukan pada B, maka

keluarannya Q = 1.

c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat

masukan hanya di B dan tidak ada masukan pada A, maka

keluarannya Q = 1.

d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat

masukan pada A dan B, maka keluarannya Q = 0.

Tabel 2.2. Tabel kebenaran gerbang ANDNOT

A B Q 0 0 1 1 0 1 0 1 1 1 1 0

2.1.2.3

Instruksi OR dan ORNOT

Instruksi OR digunakan untuk memasukkan masukan yang diparalelkan

dengan masukkan yang sebelumnya. Beberapa instruksi memungkinkan terletak

pada garis terpisah secara paralel, maka kondisi pertama merupakan instruksi load

(LD) dan sisanya berhubungan dengan instruksi OR atau ORNOT, gambar

(39)

ORNOT

Gambar 2.7 Diagram ladder instruksi OR dan ORNOT[2]

Untuk menganalisa gerbang OR, terdapat 4 (empat) kemungkinan dan

dapat dilihat pada tabel 2.3.

a. Kemungkinan pertama, masukan pada A = 0 dan B = 0. Dengan kata

lain tidak ada masukan, maka keluarannya Q = 0.

b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat

masukan pada A = 1 dan tidak ada masukan pada B, maka

keluarannya Q = 1.

c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat

masukan pada B dan tidak ada masukan A, maka keluarannya Q = 1.

d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat

masukan pada A dan B, maka keluarannya Q = 1.

Tabel 2.3. Tabel kebenaran gerbang OR A B Q

(40)

Untuk menganalisa gerbang ORNOT, terdapat 4 (empat) kemungkinan

dan dapat dilihat pada tabel 2.4.

e. Kemungkinan pertama, masukan pada A = 0 dan B = 0. Dengan kata

lain tidak ada masukan, maka keluarannya Q = 1.

f. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat

masukan pada A = 1 dan tidak ada masukan pada B, maka

keluarannya Q = 0.

g. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat

masukan pada B dan tidak ada masukan A, maka keluarannya Q = 0.

h. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat

masukan pada A dan B, maka keluarannya Q = 0.

Tabel 2.4. Tabel kebenaran gerbang ORNOT

A B Q 0 0 1 0 1 0 1 0 0 1 1 0

2.1.2.4

Instruksi END

Instruksi terakhir yang harus dituliskan atau digambarkan dalam diagram

tangga adalah instruksi END. CPU pada PLC akan mengerjakan semua instruksi

dalam program dari awal (baris pertama) hingga ditemui instruksi END yang

pertama, sebelum kembali lagi mengerjakan instruksi dalam program dari awal

(41)

END

Gambar 2.8 Diagram ladder instruksi END[2]

2.2

Mnemonic

Secara umum bahasa pemrograman yang digunakan pada PLC ada dua,

yakni bahasa kode dan bahasa gambar. Bahasa kode sering kita jumpai dengan

istilah kode mnemonic atau STL (statement list). Sedangkan bahasa gambar sering

kita jumpai dengan istilah ladder diagram atau diagram tangga.

Untuk berkomunikasi dengan PLC atau memprogram PLC digunakan suatu

alat yang disebut programmer/monitor. Dengan menggunakan

programmer/monitor ini dapat dimasukkan program ke dalam PLC dan juga dapat

memonitor proses yang dilakukan oleh PLC. Programmer/monitor sering juga

disebut hand held programmer danmempunyai beberapa fungsi yaitu:

1. Off, difungsikan untuk mematikan PLC sehingga program yang dibuat

tidak dapat dijalankan

2. Run, difungsikan untuk pengendalian suatu proses pada saat program

dalam kondisi diaktifkan.

3. Monitor untuk mengetahui keadaan suatu proses yang terjadi pada PLC

4. Program yang menyatakan suatu keadaan dimana programmer/monitor

(42)

Kode mnemonik juga bahasa teknik yang merupakan sarana perantara untuk

memasukkan program ke dalam PLC khususnya menggunakan Personal

Computer atau konsole. Kode ini memuat keterangan mengenai instruksi dan data operand. Deskripsi suatu proses kerja dari sebuah sistem yang dikontrol dapat

dituangkan ke dalam sebuah kode mnemonic yang memuat keterangan-keterangan

mengenai alamat dan tanggapan dari input-output, serta fungsi-fungsi program

pengontrol. Contoh tabel mnemonic dapat dilihat pada table 2.5 mnemonic PLC.

Tabel 2.5 Mnemonic PLC

LD 00

AND 01

OUT 102

END

2.3

Mikrokontroller

ATmega32

Mikrokontroler ATmega32 memiliki fitur yang cukup lengkap. Mulai dari

dari kapasitas memori program dan memori data yang cukup besar, interupsi,

timer/counter, PWM, RTC, USART, TWI, SPI, analog comparator, EEPROM

internal dan juga ADC internal semuanya ada dalam ATmega32. Sehingga dengan

fitur yang cukup lengkap kita dapat merancang suatu sistem untuk kepentingan

komersial mulai dari sistem yang sederhana sampai dengan sistem yang relative

kompleks hanya dengan menggunakan satu IC saja, yaitu dengan IC

(43)

siklus clock.

b. 328-bit register serba guna.

c. Kecepatan mencapai 16 MIPS dengan clock 16MHz.

d. 32 KByte Flash Memori, yang memiliki fasilitas in-system

Programming.

e. 1024 Byte internal EEPROM dan 2 KByte SRAM.

f. Programming Lock, fasilitas untuk mengamankan kode program.

g. 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-bit.

h. 4 channel output PWM

i. 8 channel ADC 10-bit dan serial USART.

1. 8 singgle-ended channel

2. 7 differential channel hanya pada kemasan TQFP

3. 2 differential channel dengan programmable gain 1x, 10x, atau

200x.

j. Master/Slave SPI serial interface dan serial TWI

k. Tegangan :

1. 2.7-5.5V untuk ATmega32L

(44)

Gambar 2.9 Konfigurasi pin ATmega32[4]

Pada gambar 2.9 menunjukkan konfigurasi pin ATmega32 , sehingga pin

tersebut dapat di deskripsikan sebagai berikut:

a. Power, VCC dan GND (ground)

b. PORTA (PORTA07), merupakan pin IO dua arah dan berfungsi khusus

sebagai pin masukan ADC

c. PORTB (PORTB07), merupakan pin IO dua arah dan fungsi khusus

sebagai pin timer/counter, komparator analog dan SPI

d. PORTC (PORTC07), merupakan pin IO dua arah dan fungsi khusus

e. PORTD (PORTD07), merupakan pin IO dua arah dan fungsi khusus

f. RESET adalah pin untuk me-reset mikrokontroler

(45)

Gambar 2.10 Arsitektur ATmega32[4]

Pada gambar 2.10 Mikrokontroler ATmega32 memiliki Hardvard, yaitu

memisahkan memori untuk kode program dan memori untuk data sehingga dapat

memaksimalkan unjuk kerja dan paralelisme. Instruksi-instruksi dalam memori

program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi

dikerjakan instruksi berikutnya sudah diambil (pre-fetched) dari memori program.

Konsep inilah yang memungkinkan instruksi-instruksi dapat dieksekusi dalam

setiap satu siklus clock[3].

32 x 8-bit register serba guna digunakan untuk mendukung operasi pada

Arithmetic Logic Unit (ALU) yang dapat dilakukan dalam satu siklus. 6 dari

(46)

mode pengalamatan tak langsung untuk mengambil data pada ruang memori data.

Ketiga register pointer 16-bit ini disebut dengan register X (gabungan R26 dan

R27), register Y (gabungan R28 dan R29), dan register Z (gabungan R30 dan

R31).

Hampir semua instruksi AVR memiliki format 16-bit (word). Setiap alamat

memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serbaguna

diatas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O

selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain

sebagai register kontrol Timer/Counter, Interupsi, ADC, UASRT, SPI, EEPROM

dan fungsi I/O lainnya. Register-register ini menempati memori pada alamat

0x20h-0x5Fh[3].

2.3.2

Organisasi Memori

(47)

2.3.2.1

Memori Program

ATmega32 memiliki kapasitas memori program sebesar 32 Kbyte yang

terpetakan dari alamat 0000h-3fffh dimana masing-masing alamat memiliki lebar

data 16 bit. Sehingga organisasi memori program seperti ini sering dituliskan

dengan 16K x 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian

program boot dan bagian program aplikasi. Jika kita tidak menggunakan fitur

Boot Loader Flash maka semua kapasitas memori programdiatas dapat digunakan

untuk program aplikasi. Tetapi jika kita menggunakan fitur Boot Loader Flash

maka pembagian ukuran kedua bagian ini ditentukan oleh BOOTSZ fuse[3].

2.3.2.2

Memori Data

(48)

ATmega32 memiliki 2144 alamat memori data yang terbagi menjadi 3

bagian, yaitu 32 buah register file, 64 buah IO register file dan 2048byte internal

SRAM. Peta Memori Data AVR ATmega32 dapat dilihat pada gambar 2.12.

Tampak pada peta memoti data diatas bahwa alamat $0000-$001F ditempati oleh

register file. I/O register menempati alamat dari $0020-$005F. Sedangkan sisanya

sebagai internal SRAM sebesar 2048 byte ($0060-$085F)[3].

2.3.2.3

EEPROM

ATmega32 juga memliki memori data berupa EEPROM 8 bit sebesar

1024 byte yang terpisah dari memori program maupun memori data. Memori

EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu

register EEPROM. Untuk mengakses memori EEPROM ini diperlakukan seperti

mengakses data eksternal sehingga waktu eksekusinya relatif lebih lama bila

dibandingkan dengan mengakses data dari SRAM[3].

2.3.2.3.1

Register EEARH and EEARL

Gambar 2.13 Register EEARH dan EEARL[4]

Register EEARH dan EEARL digunakan untuk menyimpan alamat

memori EEPROM yang akan diakses. Dengan kapasitas EEPROM sebesar 1024

Kbyte maka dibutuhkan 9-bit alamat (EEAR8...EEAR0)[3]. Gambar register

(49)

Gambar 2.14 Register EEDR[4]

Bits 7..0 – EEDR7.0: data EEPROM

Pada proses penulisan EEPROM, register ini berisi data yang akan

dituliskan pada alamat EEPROM yang ditunjuk dalam register EEAR, sedangkan

pada opersi pembacaan EEPROM, register ini berisi data yang dibaca dari alamat

EEPROM yang ditunjuk dalam EEAR[3]. Gambar register EEDR dapat dilihat

pada gambar 2.14.

2.3.2.3.3

Register EECR

Gambar 2.15 Register EECR[4].

Gambar 2.15 merupakan register EECR. Register EECR merupakan

register yang mengontrol proses akses terhadap EEPROM. Bit yang digunakan

dalam register ini adalah bit EEMWE, EEWE, dan EERE yang masing-masing

menempati bit 0, bit 1, bit 2, dalam register tersebut.

Bits 7..4 – Res: Reserved Bits

Pada bit 7..4 ini akan selalu dibaca 0 (tidak digunakan)

(50)

Bit EERIE digunakan untuk mengaktifkan interupsi EEPROM jika

bernilai ’1’ maka aktif dan jika bernilai ’0’ maka tidak aktif.

Bit 2 – EEMWE: EEPROM Master Write Enable

Bit EEMWE digunakan untuk mengaktifkan operasi tulis. Jika bit

EEMWE bernilai ’1’ maka pada saat bit EEWE diset ’1’ akan

menyebabkan data pada register EEDR dituliskan ke memori

EEPROM dengan alamat sesuai isi register EEAR dalam 4 siklus

clock. Tetapi jika bit EEMWE bernilai ’0’ maka pada saat bit EEWE

diset ’1’ tidak akan berpengaruh terhadap operasi tulis[3].

Bit 1 – EEWE:EEPROM Write Enable

Bit EEWE digunakan untuk memulai proses menulis data ke

EEPROM. Jika alamat dan data yang akan ditulis sudah ditentukan

maka data tersebut akan dituliskan ke EEPROM segera setelah bit

EEWE ini diset ’1’. Setelah proses menulis data selesai maka secara

otomatis bit EEWE akan bernilai ’0’.

Bit 0 – EERE: EEPROM Read Enable

Bit EEWE digunakan untuk memulai proses membaca data dari

EEPROM. Jika alamat dan data yang akan dibaca sudah ditentukan

maka data tersebut akan segera dibaca setelah bit EERE ini diset

’1’[3].

2.3.3

Register serbaguna

ATmega32 memiliki 32 byte register serbaguna yang terletak pada awal

(51)

Gambar 2.16. Register Serbaguna dari ATmega32[4]

Dari 32 byte register serbaguna diatas, 6 byte terakhir juga digunakan

sebagai register pointer yaitu register pointer X, register pointer Y dan register

pointer Z[3].

(52)

2.3.4

Stack Pointer

Gambar 2.18 Gambar stack pointer[4]

Stack pointer digunakan untuk menyimpan data sementara (data variabel)

atau untuk menyimpan alamat program yang sedang dikerjakan pada saat terjadi

instruksi percabangan atau interupsi. Stack pointer menempati alamat memori

RAM paling atas dan akan turun semakin kebawah dengan bertambahnya data

yang disimpan. Instruksi PUSH digunakan untuk menyimpan data ke stack

pointer kemudian secara otomatis stack pointer berkurang 1. Sebaliknya instruksi

POP digunakan untuk mengambil data dari stack pointer kemudian secara

otomatis stack pointer bertambah 1[3]. Gambar stack pointer dapat dilihat pada

gambar 2.18.

2.3.5

Register I/O dan Port I/O

ATmega32 memiliki 64 byte register I/O yang dapat diakses sebagai

bagian dari memori RAM (menggunakan instruksi LD atau ST) atau dapat juga

diakses sebagai I/O (menggunakan instruksi IN atau OUT). Jika register I/O

diakses seperti mengakses data pada memori RAM maka register I/O di atas

menempati alamat 0020-005F, tetapi jika register I/O diakses seperti mengakses

I/O maka register I/O menempati alamat memori 0000-003F. Gambar register I/O

(53)

Gambar 2.19 gambar register I/O dan port I/O[4]

Semua port keluarga AVR bersifat bi-directional (dua arah) pada saat

berfungsi sebagai port I/O digital. Bahkan setiap pin dapat dikonfigurasikan baik

sebagai input maupun output secara individu tanpa mempengaruhi pin-pin yang

lain. Hal ini dapat dilakukan dengan perintah SBI dan CBI. Pengaturan pull-up

resistor internal. Meskipun demikian pengaturan pull-up resistor bisa saja

dinon-aktifkan melalui bit PUD pada register SFIOR. Jika bit PUD diset ’1’ maka berarti

konfigurasi pull-up port I/O non-aktif[3]. Register SFIOR dapat dilihat pada

gambar 2.20.

Gambar 2.20 gambar register SFIOR[4]

Tiga alamat memori I/O dialokasikan untuk mengatur konfigurasi setiap

port I/O yaitu:

1. Data Register (PORTx)

2. Data Direction Register (DDRx)

3. Port Input Pin (PINx)

Data Direction Register (DDRx) digunakan untuk mendefinisikan port

sebagai input atau sebagai output. Jika DDRx diisi ’1’ berarti sebagai output dan

(54)

menyimpan data yang akan ditulis/dikeluarkan ke port I/O pada saat dikonfigurasi

sebagai output sedangkan Port Input Pin (PINx) digunakan untuk menyimpan data

yang terbaca dari port I/O pada saat dikonfigurasi sebagai input. Gambar port A,

B, C, D sebagai port I/O dapat dilihat pada gambar 2.21 dan gambar 2.22.

(55)

Gambar 2.22 lanjutan gambar port A,B , C, D sebagai register I/O[4]

2.3.6

Timer/Counter

ATmega32 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter

8-bit dan 1 buah timer/counter 16-bit. Ketiga modul timer/counter ini dapat diatur

dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu

sama lain. Selain itu semua timer/counter juga dapat difungsikan sebagai sumber

interupsi. Masing-masing timer/counter ini memiliki register tertentu yang

digunakan untuk mengatur mode dan cara kerjanya tetapi ada 2 register yang

digunakan secara bersama-sama yaitu register TIMSK dan register TIFR. Gambar

(56)

2.3.6.1

TIMSK (Timer/Counter Interrupt Mask Register)

Gambar 2.23 TIMSK (Timer/Counter Interupt Mask Register)[4]

Bit 7 – OCIE2: Timer/Counter 2 Output compare Match Interupsi

Enable. OCIE2 digunakan untuk mengaktifkan interupsi Output

Compare Match Timer/Counter 2.

Bit 6 – TOIE2: Timer/Counter 2 Overflow Interrupt Enable. TICIE0

digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 2.

Bit 5 – TICIE1: Timer/Counter 1 Input Capture Interrupt Enable.

TICIE1 digunakan untuk mengaktifkan interupsi Input capture

Timer/Counter 1.

Bit 4 – OCIE1A: Timer/Counter 1 Output Compare A Match Interrupt

Enable. OCIE1A digunakan untuk mengaktifkan interupsi Output

Compare A Match Timer/Counter 1.

Bit 3 – OCIE1B : Timer/Counter 1 Output Compare B match interrupt

Enable. OCIE1B digunakan untuk mengaktifkan interrupsi Output

Compare B Match Timer/Counter 1.

Bit 2 – TOIE1: Timer/Counter 1 Overflow Interrupt Enable. TOIE0

digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 1.

Bit 1 – OCIE0: Timer/Counter 0 Output Compare Match Interrupt

Enable. OCIE0 digunakan untuk mengaktifkan interupsi Output

(57)

Gambar 2.24 TIFR[4]

TIFR merupakan register yang digunakan untuk mengetahui apakah

terjadi permintaan interupsi timer/counter atau tidak. Jika bernilai ’1’ berarti

terdapat permintaan interupsi, dan jika layanan interupsi diaktifkan maka program

akan melompat ke alamat vektor interupsi yang sesuai. Untuk mengatur semua

timer dibutuhkan prescaler, pengaturan prescaler dapat dilihat pada tabel 2.6

Tabel 2.6 pengaturan prescaler

CS12 CS11 CS10 Description

0 0 0 No clock source (timer/counter stopped) 0 0 1 ClkIO/1 (No prescaling)

0 1 0 ClkIO/8 (No prescaling)

0 1 1 ClkIO/64 (No prescaling)

1 0 0 ClkIO/256 (No prescaling)

1 0 1 ClkIO/1024 (No prescaling)

1 1 0 Ekternal clock source on T1 pin. Clock on falling edge 1 1 1 Ekternal clock source on T1 pin. Clock on rising edge

2.3.6.3

Special Function Register I/O

Gambar 2.25 Special Function Register I/O[4]

(58)

Bit PSR10 digunakan untuk mereset skala clock pada timer/counter 1

dan timer/counter 0. jika bit PSR10 diset ’1’ maka akan mereset skala

clock timer/counter 1 dan timer/counter 0 menjadi 0.

Bit 1 – PSR2: Prescalar Reset Timer/Counter 2

Bit PSR2 digunakan untuk mereset skala clock pada timer/counter 2. jika

bit PSR2 diset ’1’ maka akan mereset skala clock timer/counter 2

menjadi 0. gambar special function register I/O dapat dilihat pada

gambar 2.25.

2.3.7

SPI (Serial Peripheral Interface)

Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega32. Komunikasi

SPI membutuhkan 3 jalur yaitu MOSI, MISO dan SCK. Melalui komunikasi SPI

ini data dapat saling dikirimkan baik antar mikrokontroler maupun antara

mikrokontroler dengan peripheral lain di luar mikrokontroler. Gambar SPI dapat

dilihat pada gambar 2.26.

1. MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai

master maka pin MOSI ini sebagai output tetapi jika dikonfigurasi

sebagai slave maka pin MOSI ini sebagai input.

2. MISO : Master Input Slave Output Artinya berkebalikan dengan MOSI

di atas, jika dikonfigurasi sebagai master maka pin MISO ini sebagai

input tetapi jika dikonfigurasi sebagai slave maka pin MISO ini

(59)

dari master)[3].

Gambar 2.26 SPI (Serial Pheripheral Interface)[4]

2.3.8

USART

Universal Synchronous and Asynchronous Serial Receiver and

Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang

memiliki fleksibilitas tinngi, yang dapat digunakan untuk melakukan transfer data

baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC

(60)

Gambar 2.27 USART[4]

USART memungkinkan transmisi data baik secara synchronous maupun

asynchronous sehingga dengan demikian USART pasti kompatibel dengan

UART. Pada Atmega32, secara umum pengaturan mode komunikasi baik

synchronous maupun asynchronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode asynchronous masing –masing peripheral

memiliki sumber clock sendiri maka pada mode synchronous hanya ada satu

sumber clock yang digunakan secara bersama-sama. Dengan demikian secara

hardware untuk mode asynchronous hanya membutuhkan 2 pin yaitu TXD dan

RXD sedangkan untuk mode synchronous harus 3 pin yaitu TXD, RXD dan XCK.

(61)

baud rate menggunakan register UBRRL-UBRRH.

UBRRL dan UBRRH atau sering disebut sebagai UBRR merupakan

register yang digunakan untuk mengatur kecepatan/baudrate transmisi data pada

komunikasi USART. UBRR sebetulnya berupa register 16-bit tetapi untuk upper

bytenya yaitu register UBRRH digunakan bersama-sama dengan register UCSRC.

Sehingga untuk mengaksesnya diperlukan pemilihan register dengan

menggunakan bit URSEL[3].

Gambar 2.28 UBRRH dan UBRRL[4]

Gambar 2.29 UCSRC[4]

1. Bit 15-URSEL: Register Select

Jika bit URSEL, bernilai ’1’ berarti mengakses register UCSRC dan

jika bit URSEL benilai ’0’ berarti mengakses register UBRRH.

2. Bit 14:12-Tidak digunakan

(62)

UBRR11:0 adalah register dengan lebar 12-bit yang digunakan untuk

menentukan baudrate komunikasi USART. Pengaturan baudrate dan

penentuan nilai register UBBR dapat dihitung dengan rumus pada

tabel 2.7.

Tabel 2.7 Pengaturan Baud Rate[3]

Keterangan:

BAUD : Baudrate (bps)

Fosc : Frekuensi Osilator (Frekuensi kristal)

UBRR : Nilai register UBRR (UBRRH-UBRRL)

Pada tabel 2.7 pengaturan Baud Rate dapat dilihat perhitungan baudrate

sering dilakukan pendekatan terhadap hasil perhitungan rumus. Sebagai hasil

pendekatan akan menyebabkan terjadinya error, error yang muncul akibatnya

pendekatan ini dirumuskan:

% 100 1

  

BaudRate BaudRate

Error ClosestMatch

Keterangan:

Error :prosentase error yang dihasilkan

(63)

Komunikasi serial adalah pengiriman data secara serial (data dikirim satu per satu

secara berurutan) sehingga komunikasi serial jauh lebih lambat daripada

komunikasi parallel. Serial Port lebih sulit ditangani karena peralatan yang

duhubungkan ke serial port harus berkomunikasi menggunakan transmisi serial,

sedangkan data dikomputer diolah secara paralel. Oleh karena itu, data dari serial

port harus dikonversikan kebentuk paralel untuk bisa digunakan jika

menggunakan perangkat keras. Kelebihan serial port adalah jangkauan panjang

kabel yang lebih jauh dibandingkan paralel karena serial port mengirimkan logika

1 dengan kisaran tegangan – 3 volt sampai - 25 volt dan logika 0 sebagai + 3 volt

hingga + 25 volt, sehingga kehilangan daya karena panjangnya kabel bukan

masalah utama. Komunikasi serial port bersifat asinkron sehingga sinyal detak

tidak dikirim bersama data. Setiap word (kata) disinkronkan dengan start bit dan

satu pulsa detak (clock) internal di kedua sisi menjaga bagian data saat

pewaktuan.

Spesifikasi elektris dari serial port adalah sebagai berikut:

1. “Space” (logika 0) adalah tegangan antar +3 hingga + 25 volt.

2. “Mark” (logika 1) adalah tegangan antara – 3 hingga – 25 volt.

3. Daerah antara +3 volt hingga – 3 volt tidak didifinisikan atau tidak

terpakai.

(64)

5. Arus hubungan singkat tidak boleh melebihi 500 mA.

Gambar 2.30 Komunikasi Serial DB9

Konektor serial port terdiri atas 2 (dua) jenis yaitu konektor 25 pin (DB 25)

dan 9 pin (DB9) yang berpasangan (jantan dan betina). Bentuk dari konektor

DB-25 sama persis dengan port paralel [5]. Konfigurasi komuniksai serial dapat

dilihat pada tabel 2.8.

Tabel 2.8 Komunikasi Serial DB9

PIN SIGNAL 1 Data Carrier Detect

2 Received Data

3 Transmitted Data

4 Data Terminal Ready

5 Signal Ground

6 Data Set Ready

7 Request To Send

8 Clear to Send

9 Ring Indicator

MAX232 adalah multichannel RS232 driver / receiver yang hanya

membutuhkan single supply sebesar 5V. MAX232 memiliki jalur komunikasi RX

dan TX namun yang digunakan hanya bagian TX (Transmiter) saja dengan

(65)

microcontroller, mengolahnya dan mengirimkan sinyal. Antarmuka serial merupakan pintu gerbang komunikasi antara mikrokontroler dengan Base

Terminal (telepon seluler). Terminal memiliki gerbang serial yang dapat

digunakan untuk berkomunikasi dengan perangkat-perangkat yang lain.

Komunikasi serial tersebut menggunakan standar komunikasi serial UART

dengan 1 start-bit, 8 data-bit, dan 1 stop-bit. Pada antarmuka serial ini dibutuhkan

sebuah IC MAX232 sebagai pengkonversi tegangan digital yang dikeluarkan

gerbang serial yang dimiliki mikrokontroler dari tegangan standar 0-5 volt. Kaki

RXD merupakan kaki yang akan menerima data-data serial, sedangkan TXD

berfungsi mentransmisikan data-data serial dari mikrokontroler [5]. IC MAX232

dapat dilihat pada gambar 2.31.

(66)

2.5

Relay

Relay adalah suatu komponen elektronika yang akan bekerja bila ada arus yang melalui kumparannya. Sebuah relay terdiri dari kumparan yang dililitkan

pada inti besi dan kontak-kontak penghubung. Apabila kumparan yang melilit inti

besi dilalui arus listrik maka akan menimbulkan induksi medan magnet, dan

induksi ini akan menarik kontak-kontak penghubung relay. Diagram relay

ditunjukkan pada gambar 2.32 berikut ini.

Gambar 2.32 Relay

Kontak penghubung relay terdiri dari dua bagian, yaitu :

1. Kontak NC (Normally Close)

Kontak penghubung dalam kondisi menutup atau terhubung bila relay

tidak mendapat masukan tegangan pada kumparannya. Tetapi bila

diberi tegangan yang mencukupi pada kumparannya maka kontak

penghubung menjadi terbuka.

2. Kontak NO (Normally Open)

Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat

tegangan pada kumparannya. Tetapi bila diberi tegangan yang

mencukupi pada kumparannya maka kontak penghubung menjadi

(67)

berfungsi untuk menghubungkan atau memutus aliran arus listrik yang dikontrol

dengan memberikan tegangan dan arus tertentu pada koilnya dengan memberikan

tegangan dan arus tertentu pada koilnya. Pada IC ULN2803 ini terdapat transistor

darlington yang digunakan untuk menguatkan arus dari mikrokontroler yang

terhubung dengan relay[7], gambar IC ULN 2803 sebagai driver relay dapat

dilihat pada gambar 2.33.

(68)

3.1

Diagram Blok Perancangan CPU PLC

CPU PLC dapat diprogram menggunakan 2 alat pemrogram yaitu PC dan

konsol. Untuk komunikasi konsol dengan CPU PLC menggunakan komunikasi

serial 232 dan juga PC dengan CPU PLC menggunakan komunikasi serial

RS-232. Dalam pembuatan CPU PLC ini diperlukan perancangan perangkat keras

maupun perangkat lunak. Penulis disini merancang pada bagian CPU PLC,

komunikasi RS232, input, output. Input terdiri dari 8 saklar on/off dan indikator

led. Output terdiri dari 8 port output yang masing-masing port terhubung dengan

IC driver relay dan output dari IC tersebut terhubung dengan indikator led dan

relay. Perancangan peralatan yang dibuat meliputi penyusunan diagram blok,

rancangan perangkat keras dan bagan alir program (flow chart). Diagram blok

Sistem PLC dapat ditunjukkan pada gambar 3.1.

`

CPU PLC Mikrokontroler

ATmega32 RS 232 untuk

komunikasi INPUT dan

INPUT CNT, TIM

OUTPUT PC atau

KOMPUTER

CONSOLE

Gambar 3.1 Diagram blok sistem CPU PLC

(69)

menggunakan komunikasi serial RS-232.

3.2.1

Rangkaian Mikrokontroler

3.2.1.1

Konstruksi Rangkaian Mikrokontroler

Pada perancangan rangkaian CPU PLC yang menggunakan

mikrokontroler ATmega32 ini digunakan untuk menerima data yang masuk,

melalui TX dan RX, yang dikirim lewat PC (personal computer) atau konsol. Di

dalam rangkaian CPU PLC itu akan diolah datanya dan menjalankan subrutinnya

sesuai perintah dari konsol atau PC (personal computer). Dalam pengiriman dan

penerimaan data mikrokontroler menggunakan komunikasi serial RS-232. Untuk

rangkaian utama sistem CPU PLC dapat dilihat pada lampiran. Dari PC data

dikirim melalui konektor DB9 secara serial dan dihubungkan dengan IC max232,

dari IC dihubungkan ke mikrokontroler. Prosesor yang digunakan IC ATmega32

dengan kapasitas memori 32Kbyte terdiri dari 1Kbyte EEPROM dan 2Kbyte

SRAM. Supply untuk mikro sebesar 5 volt. Dalam rangkaian mikro terdapat

indikator-indikator, macam indikator adalah indikator error dihubungkan dengan

pin PD6, indikator RUN dihubungkan dengan pin PD4, indikator supply

dihubungkan dengan pin VCC. Kristal yang digunakan sebesar 4MHz dengan

kapasitor 22pF. Input dan output dihubungkan dengan konektor 10 kaki dengan 2

kaki VCC dan ground dan yang lainnya sebagai penghubung hardware yang

(70)

3.2.1.2

Rangkaian Reset

Gambar rangkaian reset dapat dilihat pada gambar 3.2. Reset digunakan

untuk mengembalikan keseluruhan sistem (program) ke awal. Reset terjadi

dengan adanya logika 1 selama minimal 2 cycle (2μ detik) pada kaki reset (pin 9)

berdasarkan datasheet. Pada perancangan, waktu pengosongan dipilih sebesar 10

ms dengan asumsi waktu reset telah lebih dari 2 µs. Bila nilai hambatannya (R)

dipilih 10 kΩ, maka nilai C adalah:

C R

T  

0,1 = 10.000 x C

C = 10 µF

C4 10uF

SW1

SW PUSHBUTTON

RESET PIN 9

GND

VCC R

10k

Gambar 3.2 Konfigurasi Rangkaian Reset

Saat tombol push button ditekan rangkaian reset akan memberikan

masukan ke mikrokontroler dengan logika low, sedangkan saat tombol reset

dilepas akan berlogika high.

3.2.1.3

Rangkaian Osilator

C2 22pF C1 22pF

GND

Y 1

4MHz

XTAL1 XTAL2

(71)

Dalam perancangan, kristal yang digunakan adalah kristal 7.2 MHz, karena

dengan kristal ini detak limpahan yang diperoleh berupa bilangan bulat. Gambar

rangkaian osilator dapat dilihat pada gambar 3.3. Untuk perancangan ini, baud

rate kecepatan serial yang digunakan adalah 9600bps dan frekuensi osilator yang

digunakan 7.2MHz, maka dapat diperoleh dengan perhitungan sebagai berikut

dengan menggunakan rumus yang ada pada tabel 2.6:

a. Untuk U2X = 0

46 1 9600 16 7200000     UBRR UBRR

b. Untuk U2X = 1

93 1 9600 8 7200000     UBRR UBRR

Nilai UBRR di atas akan digunakan pada pemrograman mikrokontroler

sebagai inisialisasi komunikasi serial.

3.2.1.4

Indikator LED

Indikator LED berperan penting dalam CPU PLC. Seperti halnya CPU

PLC yang lainnya juga membutuhkan indikator/penanda. Indikator-indikator yang

dibutuhkan CPU PLC berupa indikator Error, indikator untuk komunikasi serial,

(72)

3.2.1.4.1

Indikator Error

Indikator Error digunakan untuk mendeteksi bila ada data

instruksi-instruksi yang tidak cocok dengan data yang dituliskan di dalam memori CPU

PLC. Pada gambar 3.4 yang menunjukkan rangkaian LED yang digunakan

sebagai indikator error. Untuk menghidupkan LED pada indikator ini, pin PD7

harus bernilai low yang menyatakan error. VCC bernilai sebesar 5V yang

digunakan untuk menghidupkan LED.

VCC R1 330 D1 LED PD7

Gambar 3.4 Indikator Error CPU PLC

I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED

menyala).             

 330.76 330

10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R

3.2.1.4.2

Indikator Komunikasi Serial RS-232

Indikator Komunikasi serial digunakan untuk mendeteksi bila ada

program dari Konsol atau PC yang dikirim ke CPU PLC. Pada gambar 3.5 yang

(73)

menyala).             

 330.76 330 10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R R1 RESISTOR D1 LED

RX MAX MIKRO

GND TX MAX232

Gambar 3.5 Indikator Komunikasi Serial RS-232 dengan CPU PLC

3.2.1.4.3

Indikator Supply CPU PLC

Indikator Supply CPU PLC digunakan untuk mendeteksi CPU PLC

sudah keadaan ON. Pada gambar 3.6 yang menunjukkan rangkaian indikator

supply, indikator ini mendapatkan VCC 5V dan terhubung ke pin VCC pada

mikrokontroler.

(74)

I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED menyala).             

 330.76 330

10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R

3.2.1.4.4

Indikator Input

Input pada CPU PLC terdiri dari 8 port input, 8 port terhubung dengan

saklar on/off dan indikator led. Jika saklar keadaan on mikro akan aktif dan

memberi inputan data. Indikator Input digunakan untuk memberi tanda ke CPU

PLC, ketika CPU PLC membutuhkan masukkan sesuai dengan program yang

dikirim oleh konsol atau PC. Indikator itu dihubungkan ke pin PA0-7. dan VCC

yang digunakan 5V untuk menghidupkan LED dan saklar on/off yang

dihubungkan ke pin PA0-7 dengan logika high. Pada gambar 3.7 adalah gambar

indikator input.

I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED

menyala).             

 330.76 330

(75)

Gambar 3.7 Indikator Input

3.2.1.4.5

Indikator Output dan Relay

Indikator Output digunakan untuk memberikan tanda keadaan port

output aktif tinggi dan aktif rendah yang nanti akan dihubungkan dengan relay.

Indikator itu dihubungkan ke pin PC0-7

I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED

menyala).             

 330.76 330

(76)

Port output dari CPU PLC menggunakan 8 port output, tiap port output

akan dihubungkan dengan IC driver relay. IC yang digunakan yaitu IC

ULN2803A. IC disini adalah sekumpulan transistor Darlington Array dengan

konfigurasi darlington sehingga mempunyai β (penguatan arus) yang besar. IC ini

mampu menguatkan arus dari keluaran mikro untuk mengaktifkan relay. Pada

gambar 3.8 adalah gambar indikator output yang terhubung dengan relay dan

driver relay.

(77)
(78)

3.2.2

Komunikasi Serial RS-232

Komunikasi secara serial (serial communications) merupakan cara

menghantar data yang lebih mudah dikendalikan berbanding dengan komunikasi

parallel (parallel communications) disebabkan sistem komunikasi parallel terlalu

mahal untuk kegunaan jarak jauh. Data yang bernilai 8 bit dikirim secara satu bit

demi satu bit ke mikrokontroler. Pengiriman data pada IC mikrokontroler fasilitas

yang digunakan untuk komunikasi serial adalah UART (Universal Asynchronous

Receiver Transmitter). Komunikasi serial juga boleh disifatkan sebagai simpleks

(simplex), dupleks setengah (half duplex), dan dupleks penuh (full duplex). Port

serial yang terdapat pada PC (personal computer) biasanya berfungsi sebagai port

dupleks penuh. Tegangan pada level RS-232 menjadi level logika “1”

didefinisikan -3 volt sampai -15 volt, dan logika “0” didefinisikan +3 volt sampai

+15 volt. Pada level TTL yang didefinisikan untuk kondisi “0” volt sampai 0,4

volt dan untuk kondisi “1” tegangannya 2,4 volt sampai 5 volt. Dalam

perancangan ini untuk mengubah level tegangan tersebut digunakan IC MAX-232

dengan 5 buah kapasitor sebesar 1uF/25volt, dengan tegangan catunya sebesar 5

volt. Dengan perangkat tersebut diharapkan dapat digunakan untuk mengirimkan

data/karakter dari komputer ke mikrokontroler dengan sempurna. Baud rate yang

digunakan adalah 9600 Bps, dengan frekuensi osilator 7.2MHz pada

mikrokontroler. Pada gambar 3.9 adalah gambar konfigurasi komunikasi serial

(79)

C4 1u F /2 5V C3 1u F /2 5v C2 1uF/25V GND C1 1uF/25v VCC +5v 3 4 5 6 7 8 9 GND MAX232_0 8 11 10 1 3 4 5 2 6 9 14 7 16 15 R1IN R2IN T1IN T2IN C+ C1-C2+ C2-V+ V-R1OUT R2OUT T1OUT T2OUT VCC GND C5 1u F /2 5v GND VCC

Gambar 3.9 Konfigurasi Komunikasi RS-232

3.3

Perancangan Perangkat Lunak

Mikrokontroler adalah bentuk minimum dari komputer pada sebuah IC yang

berfungsi sebagi unit pengontrol suatu aplikasi tertentu. Mikrokontroler terdiri

dari perangkat keras dan perangkat lunak. Oleh karena itu agar mikrokontroler

dapat dipakai sebagai unit pengontrol tentunya harus diprogram terlebih dahulu.

3.3.1

Komunikasi Serial

Komunikasi data secara serial pada perangkat lunak mikrokontroller

ATmega32 dimulai dengan inisialisasi penggunaan port serial dengan menentukan

mode operasi port serial, pengaturan baudrate, mode komunikasi serial. Dalam

penerimaan data dan pengiriman data secara serial melibatkan USART (Universal

Synchronous and Ashincrounous Serial Receiver and Transmitter), USART

merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan

(80)

modul-modul eksternal termasuk PC yang memiliki fitur UART. Untuk mengatur mode

dan prosedur komunikasi USART dilakukan melalui register UCSRA, UCSRB,

UCSRC, UBRRH, UBRRL, dan UDR. Pada gambar 3.10 adalah subrutin

komunikasi serial.

Inisialisasi USART (USART keadaan default)

Ada data masuk ?

Tampung di UDR dan kirim ke memori PLC (memori EEPROM)

Data selesai kirim ? Tidak

Baca data di memori CPU PLC

Ya

Ya

Tidak

End Start

Gambar 3.10 Subrutin komunikasi serial

Inisialisasi USART

Dalam proses inisialisasi ada beberapa buah regis

Gambar

Gambar 2.1 Sistem layout dan hubungan PLC[2]
Gambar 2.6 Diagram ladder instruksi AND dan NOT AND[2]
Gambar 2.21 Gambar port A, B, C, D sebagai register I/O[4]
Gambar 2.27 USART[4]
+7

Referensi

Dokumen terkait

Prostesis cochlear implant dirancang untuk menciptakan rangsangan pendengaran dengan langsung memberikan stimulasi elektrik pada syaraf pendengaran (Laughton, 1997). Akan

Pada bagian ini akan membahas mengenai Landasan Hukum Dana Rintisan Operasional Sekolah, Pengertian Dana Rintisan Operasional sekolah di Kota Medan, Tujuan Program Dana

Anak dilatih untuk bersikap objektif, dan menghargai diri sendiri, mengenal diri sendiri, dengan selalu berfikir positif untuk diri mereka sendiri, dengan

5.9.3 Kesesuaian Sistem Distribusi Karbon Dioksida pada Gas Turbin, Generator , Auxiliary PLTGU dan Gudang 4 PLTU

Besi merupakan mineral mikro yang paling banyak terdapat didalam tubuh.. manusia

Pada kegiatan ini Saudara diharapkan telah melakukan analisis konteks sesuai dengan kondisi nyata di sekolah Saudara berdasarkan panduan yang dikeluarkan BSNP berkaitan

TARGET UNIT PENANGG UNG- JAWAB PRAKIRAAN MAJU 2020 2021 2022 2023 2024 Memperkuat stabilitas keamanan nasional Koordinasi, Sinkronisasi, dan Pengendalian Bidang

bertujuan untuk mengembalikan komponen - komponen dan material untuk diproses ulang dan digunakan kembali, serta mengurus bahan berbahaya dan materi lain yang