Thursday, August 11, 2011

Pemrograman dengan bahasa LADDER untuk Microcontroller PIC atau AVR

Pemrograman dengan bahasa LADDER untuk Microcontroller PIC atau AVR
Written by Mujahidin   
Friday, 15 August 2008
Artikel berikut akan memudahkan anda untuk memprogram microcontroller PIC atau AVR dengan bahasa pemrograman Ladder, sehingga seolah – olah anda seperti memprogram PLC.  Compiler yang disediakan berikut akan menghasilkan kode Hexa untuk microcontroller AVR atau PIC yang anda pilih. Beberapa fitur yang telah tersedia pada compiler seperti berikut :
  • Digital Input / Output
  • Timer (TON, TOF, RTO)
  • Counter (CTU, CTD, “Circular Counter” yang biasa digunakan untuk proses Sequencer)
  • Analog Input, Analog (PWM) output
  • Komunikasi serial (Yang bisa digunakan komunikasi dengan PC, LCD, Modem, atau device lain)
  • Variable Integer dan operasi arithmetic
  • Shift Register dan Look-Up Table
  • Fasilitas penyimpanan data dengan EEPROM
  • Simulator, untuk mengetes program yang anda buat sebelum di generate ke Code PIC/AVR
Program yang disediakan adalah 100% Free,Source Code & Executables nya bisa didownload di bagian DOWNLOAD
Anda tentu tidak asing lagi dengan PLC. Untuk memprogram PLC metode yang paling banyak digunakan adalah dengan menggunakan metode pemrograman Ladder. Sebenarnya PLC sendiri digunakan untuk menggantikan Relay pada beberapa system control di era 40-an tahun yang lalu. PLC sebenarnya sama dengan microprocessor, yaitu akan menjalankan instruksi secara berurutan yang diberikan padanya. Anda dapat memprogram PLC dengan mem-wiring kontak relay dan coilnya pada monitor computer, dan kemudian PLC akan mensimulasikan circuit yang anda wiring di monitor computer anda. Beberapa coil relay dapat anda hubungkan di bagian input yang akan mengambil signal dari luar PLC, dan untuk contact relay dapat anda hubungkan ke bagian output yang akan digunakan untuk mendrive signal di luar PLC. Dengan cara seperti ini PLC akan dapat mensimulasikan rangkaian yang anda buat untuk berinteraksi dengan device lain untuk melakukan suatu tugas tertentu, seperti pengontrolan terhadap suatu system.
Sebenarnya artikel berikut lebih dari sekedar pernyataan diatas, karena anda dapat menggabungkan Timer, Counter dan opersai arithmetic yang dapat dengan mudah digunakan untuk menggerakkan relay. Konsep pemrogramannya tetap masih sama dengan pemrograman ladder pada PLC.
Coba perhatikan ragkaian ladder berikut :

Ini adalah contoh sederhana logika kombinsai dengan pemrograman ladder. Ada 3 input yaitu Xa, Xb, dan Xc. Dan hanya ada satu output yaitu  Yout. Formula / fungsi dari logika kombinasi ladder diatas bisa dituliskan dalam bentuk persamaan :
 Yout = Xa and (Xb or (not Xc))
 Dari contoh ladder dan formula diatas bisa kita lihat bahwa Xa dan Xb adalah Kontak relay Normally Open, sedangkan Xc adalah Kontak relay Normally Close, dan Yout adalah Coil Relay.

Gambar Ladder diatas contoh sederhana untuk pengontrolan Thermostat, terdapat dua analog input, Analog 1 digunakan sebagai Setpoint, mungkin user bisa menghubungkan Analog 1 dari Variable Resistor / Potentio untuk mengeset temperature yang diinginkan, sedangkan untuk Analog 2 untuk pembacaan temperature yang berasal dari sensor temperature. Ada satu output yaitu Yheater yang akan mengontrol elemen pemanas dengan switch yang cocok (Triac, Relay, atau Solid State Relay).
Dari ladder diatas bisa kita lihat sistem kerjanya, Ketika suhu berada dibawah -20 derajat maka heater/pemanas akan ON,  dan ketika heater diatas +20 derajat maka heater/pemanas akan OFF.
Contoh diatas adalah contoh sepele, dan diekspresikan secara jelas pada bahasa pemrogramannya. Ladder Logic sebenarnya bukan bahasa pemrograman yang general, akan tetapi diterima banyak di sistem industri, karena kemudahan pemrogramannya.
 Ladder Logic Compiler untuk PIC16 dan AVR 
Compiler / Program yang akan kita pakai namanya adalah LDmicro. Compiler/Program ini bisa didownload secara Free dari website ini atau website asalnya baik source code ataupun executablenya. Anda dapat memulai memprogram dengan ladder/rung kosong yang pertama. Anda dapat menambah Kontak (input) dan juga Coil (output) sesuai yang anda inginkan. Timer (TON, TOF, RTO) juga support pada compiler ini. Durasi maksimum dan minimum dari timer tergantung dari siklus time/waktu yang dikonfigurasi, timer yang disedikan support mulai dari millisecond sampai 10 menit. Selain timer, compiler ini juga dilengkapi dengan Counter, dan operasi arithmetic (Tambah, Kurang, Kali, Bagi).
Anda dapat menambahkan Coil atau Contact secara seri / parallel pada rangkaian yang telah ada. Daftar  I/O diperoleh dari ladder yang anda gambar. Anda dapat menambah Internal Relay Rf00 (secara otomatis program akan mengalokasikan penggunaan memorinya), atau menambah input (Xf00) , atau output (Yf00) dan anda juga harus menentukan letak Pin – Pin di microcontrollernya. Pemilihan pin tergantung pemilihan jenis microcontroller yang dipilih, dan sangat beruntung jenis microcontroller yang support dengan compiler ini adalah jenis – jenis yang umum dipakai dan banyak dijumpai.
Untuk mencoba membuat program anda bisa memulai dengan membuka contoh program yang sudah ada, bisa juga anda download di bagian bawah atau bisa juga anda buat sendiri. Tampilan dari Compiler / Program ini bisa anda lihat pada gambar berikut:

 
 
 
Anda dapat mengetes program yang anda buat dengan cara mensimulasikan secara real time. Program akan nampak pada screen bahwa cabang yang mendapat supply akan ter”Hightlight” / disoroti. Semua keadaan variable bisa diamati perubahannya di bagian bawah.
Ketika program yang anda buat berjalan sesuai keinginan pada saat simulasi, langkah berikutnya yaitu anda bisa menentukan Pin – Pin pada microcontrollernya dan kemudian meng-generate ke dalam code PIC atau AVR. 
Seperti yang dijelaskan sebelumnya, compiler ini juga support untuk A/D converter, PWM, dan juga UART yang disediakan oleh microcontroller. Hal ini berarti anda dapat menulis dengan Ladder Logic untuk membaca analog input dan kemudian mengirimnya melalui Serial ke computer. Kemampuan yang lain yaitu dengan ladder logic anda bisa menyimpan data ke dalam EEPROM apabila anda inginkan data yang anda simpan tidak boleh hilang ketika power mati. 
Limitations & Disclaimer
Bagaimanapun,  microcontroller dengan compiler ini tidak bisa melakukan tugas yang semua bisa dikerjakan oleh PLC. PLC menawarkan banyak keistimewaan yang sudah banyak dikenal luas. 
Sebagai catatan code yang dihasilkan jauh dari optimal, oleh karena itu segala report bug yang anda temui bisa anda kirimkan sebagai feedback pada pembuat programnya di http://cq.cx/ladder.pl
Paling tidak dengan adanya artikel ini, bagi anda para pecandu mikrokontroller bisa terbuka wawasannya untuk membuat sendiri PLC dari mikrokontroller, source code (Visual C++) bisa anda download untuk kemudian bisa anda sempurnakan jika diinginkan.
Download
Software telah ditest dan runing pada operating system Windows XP. Belum pernah di test dengan windows 98 atapun Wine pada Linux. Compiler yang anda download dalam bentuk executable sehingga tidak diperlukan file lain. Anda tinggal download kemudian simpan di computer anda, dan kemudian run maka program akan langsung bekerja. Manual operationnya bisa anda lihat pada menu HELP-nya.
Compiler ini akan menghasilkan file Hexa sesuai dengan tipe microcontroller yang dipilih. Kemudian anda bisa memasukkan / mendownload file Hexa ini ke microcontroller, untuk alat downloadernya bisa anda lihat di bagian lain pada website ini. Untuk jenis PIC anda bisa klik link ini , sedangkan untuk jenis AVR anda bisa klik link ini
Beberapa chip mikrokontroller yang support dengan compiler ini (dan telah ditest) adalah  :
  • PIC16F877
  • PIC16F876
  • PIC16F628
  • ATMega64
  • ATMega128
Untuk chip mikrokontroller berikut ini juga support tetapi belum ditest :
  • PIC16F88
  • PIC16F819
  • ATMega162
  • ATMega32
  • ATMega16
  • ATMega8
 File dan Source yang bisa didownload:

No comments:

Post a Comment