100% menganggap dokumen ini bermanfaat (1 suara)
601 tayangan

Tutorial Ldmicro

Tutorial ini menjelaskan cara menulis program logika tangga sederhana menggunakan LDmicro untuk mengontrol LED berdasarkan tombol tekan. Program terdiri dari tiga negara (mati, nyala stabil, berkedip) yang diatur oleh counter melingkar yang dipicu oleh tombol tekan.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
601 tayangan

Tutorial Ldmicro

Tutorial ini menjelaskan cara menulis program logika tangga sederhana menggunakan LDmicro untuk mengontrol LED berdasarkan tombol tekan. Program terdiri dari tiga negara (mati, nyala stabil, berkedip) yang diatur oleh counter melingkar yang dipicu oleh tombol tekan.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

Tutorial LDmicro

Dalam tutorial ini, saya akan menunjukkan cara untuk menulis sebuah program yang sangat sederhana. Saya mengasumsikan bahwa Anda telah menulis logika tangga sebelumnya, dan bahwa Anda memiliki beberapa keakraban dasar dengan mikrokontroler, tetapi Anda tidak pernah menggunakan LDmicro. Jika Anda tidak tahu banyak tentang logika tangga atau PLC, maka tutorial plcs.net mungkin bisa membantu Anda. Perangkat kami akan memiliki satu tombol tekan, dan satu LED. Pada startup, LED akan dimatikan. Ketika Anda menekan tombol tekan sekali, LED akan menyala stabil pada. Kedua kalinya Anda menekan tombol tekan, LED akan mulai berkedip.Ketiga kali Anda menekan tombol, LED akan mati lagi. Pada menekan berikutnya, siklus akan mengulangi.

Seleksi mikrokontroler dan Skema


Kami akan menggunakan PIC16F876, yang mudah tersedia dari Digikey atau distributor online lainnya. Muncul dalam sejumlah paket yang berbeda, saya memilih DIP. Perhatikan bahwa mulai November 2009, PIC16F876 tidak lagi dianjurkan untuk desain baru. Ini berarti bahwa hal itu mungkin akan mendapatkan dihentikan di beberapa titik dalam beberapa tahun ke depan. Anda dapat memilih untuk bukan menggunakan PIC16F886, yang pin-kompatibel. Jika Anda melakukannya, maka pastikan untuk menentukan bagian yang benar ketika Anda mengkompilasi, karena 'F886 tidak kode-kompatibel.

Ini adalah skema kami:

Mikrokontroler (IC1) adalah nomor bagian PIC16F876-20I/SP-ND di Digikey. Hampir setiap tiga terminal resonator (U1) akan dilakukan, Anda dapat mencoba 535-9356-ND atau X909-ND. Satu-satunya hal yang mungkin membingungkan Anda adalah bahwa tombol tekan pergi ke Vdd, dan ada pull-down. Anda mungkin akan lebih terbiasa melihat tombol tekan ke tanah dengan pull-up. Untuk TTL, ini penting. Untuk CMOS modern yang tidak, dan saya menemukan ini aktif `TINGGI 'pengaturan kurang membingungkan daripada tradisional` RENDAH aktif' sirkuit. Juga, saya memilih untuk menggunakan resonator keramik dengan kapasitor internal U1, bukan kristal dan dua ~ 20 pF topi.Sebuah kristal akan bekerja sama dengan baik dan itu akan menjadi lebih akurat, tapi itu akan menjadi sedikit lebih mahal, dan Anda akan membutuhkan lebih banyak bagian. Anda bisa membangun sirkuit ini dalam berbagai cara. Aku dibangun pada solderless papan tempat memotong roti, dan akhirnya tampak seperti ini:

(Nilai resistor yang digambarkan tidak cukup sama dengan skema, tidak satupun dari mereka adalah penting.)

Ladder Diagram untuk Program


Pertama, kita akan membutuhkan sebuah osilator untuk menghasilkan sinyal `berkedip 'untuk LED. Ada cara standar untuk melakukan hal ini dalam logika tangga:
| | Rosc Tosc_on Tosc_off Rosc | | 1 | | -------] [-------- [TON 250,0 ms] -- [TOF 250,0 ms] --------- (/) ------- | |

Ini akan berkedip pada 1 / ((250 +250) ms), atau 2 Hz, atau dua kali per detik. Siklus akan menjadi 50% -250 ms, kemudian 250 ms off. Sirkuit ini dapat membuat segala jenis osilator, dengan periode atau siklus yang Anda butuhkan, sehingga adalah satu yang baik untuk diingat. Juga perhatikan bahwa kita telah memilih untuk menggunakan relay internal (`Rfoo ') bukan satu dilampirkan ke I / O pin (` Yfoo' atau `Xfoo '). Ini masuk akal, karena tidak ada alasan khusus untuk membawa sinyal yang keluar ke pin. LDmicro secara otomatis akan memberikan memori untuk relay internal.

Program kami akan memiliki tiga negara: off, stabil pada, dan berkedip. Program ini harus mengubah keadaan pada setiap tepi naik dari sinyal dari tombol tekan. Ini adalah aplikasi yang baik untuk counter melingkar. Kami akan mengatakan bahwa `state 0 'adalah` off,' `state 1 'adalah` stabil pada,' dan `state 2 'adalah` berkedip. " Penghitung jumlah 0, 1, 2, 0, 1, 2, ..., jadi jika kita hanya membiarkan anak tangga-in kondisi counter menjadi masukan tombol tekan, maka semuanya akan bekerja seperti yang kita inginkan:
| | Xbutton cstate | | 2 | | -------] [-------------------------------------- ------- {CTC 00:02} --- | |

Sekarang satu-satunya hal yang tersisa adalah dengan menggunakan program negara untuk mengatur keadaan LED. Kita bisa melakukannya seperti ini:
| 3 | | | | | | | | | [Cstate --- [1] | | | [Cstate --- [2] ==] Yled | | ------------------- + --------------------- --- () ------- | | ==] Rosc | | | ----------] [------ + | |

Hal ini akan mudah untuk meyakinkan diri sendiri bahwa ini tidak apa yang kita inginkan. Jika program ini dalam keadaan 1, maka `cstate == 1 'instruksi energi` Yled', seperti yang diinginkan. Dalam keadaan 2, `cstate == 2 'instruksi energi` Yled', tapi hanya jika `Rosc 'juga benar. Karena `Rosc 'adalah berosilasi, itu berarti bahwa LED akan berkedip, seperti yang diinginkan.Akhirnya, dalam keadaan 0, baik dari sama dengan instruksi akan menjadi kenyataan, jadi tidak ada cara yang `Yled 'pernah bisa menyala.

Memasuki Diagram Ladder


Sekarang bahwa kita memiliki sirkuit kami, kita dapat menarik dalam LDmicro. Ketika Anda mulai LDmicro, Anda akan melihat anak tangga yang kosong tunggal:

Kami ingin memasukkan anak tangga pertama dari daftar di atas. Kami akan mulai dengan coil, jadi pilihlah Instruksi -> Insert Coil. Ini akan membuat kumparan bernama `Ynew. ' Ini adalah apa yang kita inginkan, kecuali bahwa nama adalah salah, dan harus menegasikan. Klik dua kali koil, hal ini akan memunculkan dialog di mana kita bisa mengisi bahwa dalam:

Sekarang kita dapat memasukkan sisa anak tangga itu dengan cara yang sama. Klik pada tepi kiri kumparan, sehingga kursor vertikal, dan ke kiri dari koil. Sekarang pilih Instruksi -> Insert TON (Tertunda Turn On). Sekali lagi klik dua kali timer untuk mengubah nama itu dan mengatur periode. Tambahkan timer FPT dan kontak dengan cara yang sama. Sekarang kita ingin memasukkan anak tangga kedua, jadi pilih Edit -> Insert Rung Setelah. Kemudian klik pada anak tangga kedua untuk memindahkan kursor di sana:

Anak tangga kedua mudah: hanya mengisi dua instruksi dalam urutan yang benar, dengan menempatkan kursor di mana Anda ingin menyisipkan dan kemudian memilih Instruksi -> Insert .... Ingatlah untuk menetapkan nama (`Xbutton ') ke kontak, dan mengatur batas nama dan atas meja. Kemudian pilih Edit -> Insert Rung Setelah lagi. Program Anda akan terlihat seperti ini:

Ketiga anak tangga akan menjadi sedikit lebih sulit, karena memiliki cabang paralel. Itu berarti bahwa Anda harus berpikir tentang urutan di mana Anda memasukkan instruksi. Pertama, masukkan koil, dan nama itu:

Sekarang masukkan pertama sama instruksi di sebelah kiri kumparan, seperti biasa, dan mengisi nama variabel yang benar dan nilai. Setelah Anda melakukan itu, tambahkan cabang paralel. Anda dapat melakukan ini dengan mengklik di tepi bawah sama dengan instruksi, kursor akan horizontal dan di bawah itu sama dengan instruksi:

Sekarang pilih Instruksi -> Insert EQU (Bandingkan untuk Sama). Karena kursor Anda di bawah yang pertama sama dengan instruksi, yang baru sama dengan instruksi akan dimasukkan di bawah instruksi itu, secara paralel dengan itu. Rename seperti biasa. Untuk menyelesaikan anak tangga, Anda harus memasukkan kontak `Rosc 'di sebelah kanan kedua sama dengan instruksi. Untuk melakukan ini, klik pada tepi kanan kedua sama dengan instruksi:

Pada titik ini Anda dapat memilih Instruksi -> Insert Kontak, kontak akan dimasukkan secara seri dengan kedua sama dengan instruksi, seperti yang Anda butuhkan. Ubah nama dan Anda selesai:

Simulasi Program

Sekarang kita siap untuk mensimulasikan sirkuit kami. Pilih Simulasikan -> Modus Simulasi. Layar akan berubah; diagram tangga akan muncul terutama diklik, tetapi Anda tidak akan melihat sesuatu berubah dengan waktu. Itu karena PLC belum bersepeda.Untuk memulainya bersepeda, pilih Simulasikan -> Mulai Real-Time Simulasi. Sekarang Anda akan melihat hal itu terjadi: osilator jelas berjalan, tetapi LED (`Yled ') masih off, yang adalah apa yang kita inginkan, karena tidak ada yang menekan tombol belum. Untuk mensimulasikan menekan tombol, klik dua kali teks `Xbutton 'dalam daftar di bagian bawah layar. Anda miliki sekarang disimulasikan membawa masukan tombol tekan yang tinggi, ini adalah apa yang akan terjadi jika seseorang tertekan (tapi belum merilis) tombol tekan.

Anda dapat melihat bahwa program ini bekerja: yang cstate `'counter sekarang sama dengan 1, yang sesuai dengan` stabil pada' negara, yang adalah apa yang kita inginkan. Lampu LED output tinggi, Anda dapat melihat bahwa nilainya adalah 1 dalam daftar, dan Yled 'coil `tampak merah pada diagram. Klik dua kali `Xbutton 'teks dalam daftar untuk mensimulasikan melepaskan tombol, kemudian klik dua kali lagi untuk mensimulasikan menekan lagi, yang Yled`' coil akan mulai berkedip, seperti yang dirancang. Jika Anda mensimulasikan tekan tombol ketiga maka output akan pergi rendah stabil.

Kompilasi ke file IHEX


Jadi sekarang kita cukup yakin bahwa program bekerja. Pada titik ini kita siap untuk menghasilkan kode aktual, dan mencobanya di mikro. Pertama, keluar dari mode simulasi dengan memilih Simulasikan -> Modus Simulasi, atau dengan menekan Escape. Selanjutnya kita harus memilih mikrokontroler. Kami memutuskan sebelumnya bahwa kita akan menggunakan PIC16F876, jadi pilih Settings > Microcontroller -> Microchip PIC16F876 28-PDIP atau 28-SOIC. Kami juga harus memberitahu LDmicro apa kristal kita akan menggunakan, dan apa waktu siklus akan. Pilih Settings -> MCU Parameter, dan isi clock speed kami 20 MHz.Biarkan waktu siklus pada 10 ms, yang biasanya akan menjadi nilai yang baik. Sekarang kita dapat menetapkan pin untuk input dan output kami. Klik dua kali `Xbutton 'dalam daftar di bagian bawah layar, dan pilih pin 14 dari PIC, yang sesuai dengan MCU pelabuhan RC3. (Biasanya tidak ada alasan bagi Anda untuk peduli pelabuhan yang Anda gunakan, hanya melihat nomor pin.)

Klik OK `, 'dan kemudian ulangi proses untuk` Yled', yang dapat Anda lihat dari skema harus pergi ke pin 15. Unsur-unsur lain dalam daftar adalah variabel internal dan bit dalam memori, sehingga tidak perlu untuk menetapkan pin untuk mereka. LDmicro akan mengalokasikan memori untuk mereka ketika Anda mengkompilasi. Jadi sekarang Anda siap untuk mengkompilasi. Pilih Kompilasi -> Kompilasi, dan menentukan di mana Anda ingin menempatkan file IHEX. Kemudian gunakan apapun PIC pemrograman peralatan yang telah tersedia untuk memuat itu ke perangkat Anda, dan Anda siap untuk mencobanya. Ini melengkapi tutorial saya. Hal ini dimungkinkan untuk menulis program jauh lebih kompleks dari itu, tentu saja. Sebuah program sederhana ini hanya menggunakan sebagian kecil dari memori prosesor Anda, sehingga ada ruang untuk lebih banyak anak tangga logika. LDmicro juga menawarkan instruksi khusus, untuk hal-hal seperti aritmatika, analog (A / D) input, PWM, dan bahkan teks output ke LCD berbasis karakter. Konsultasikan manual untuk rincian.

Anda mungkin juga menyukai