Tutorial Ldmicro
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.
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.)
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.
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.
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.