Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Mengubah Tabel Kebenaran menjadi Ekspresi Boolean

Dalam mendesain sirkuit digital, perancang sering kali memulai dengan tabel kebenaran yang menjelaskan apa yang harus dilakukan sirkuit.

Tugas desain sebagian besar untuk menentukan jenis sirkuit apa yang akan melakukan fungsi yang dijelaskan dalam tabel kebenaran.

Sementara beberapa orang tampaknya memiliki kemampuan alami untuk melihat tabel kebenaran dan segera membayangkan gerbang logika yang diperlukan atau sirkuit logika relai untuk tugas tersebut, ada teknik prosedural yang tersedia untuk kita semua.

Di sini, aljabar Boolean membuktikan kegunaannya dengan cara yang paling dramatis.

Untuk mengilustrasikan metode prosedural ini, kita harus mulai dengan masalah desain yang realistis.

Misalkan kita diberi tugas merancang sirkuit pendeteksi api untuk insinerator limbah beracun.

Panasnya api yang hebat dimaksudkan untuk menetralkan racun dari limbah yang dimasukkan ke dalam insinerator.

Teknik pembakaran seperti itu biasanya digunakan untuk menetralisir limbah medis, yang mungkin terinfeksi virus atau bakteri mematikan:

Selama api tetap menyala di insinerator, limbah yang disuntikkan ke dalamnya aman untuk dinetralkan.

Namun, jika nyala api dipadamkan, tidak aman untuk terus menyuntikkan limbah ke ruang bakar, karena akan keluar dari knalpot tanpa dinetralisir, dan menimbulkan ancaman kesehatan bagi siapa pun yang berada di dekat knalpot.

Yang kita butuhkan dalam sistem ini adalah cara yang pasti untuk mendeteksi keberadaan nyala api, dan mengizinkan limbah untuk disuntikkan hanya jika nyala api “dibuktikan” oleh sistem pendeteksi nyala api.

Ada beberapa teknologi pendeteksi api yang berbeda:optik (pendeteksian cahaya), termal (pendeteksian suhu tinggi), dan konduksi listrik (pendeteksian partikel terionisasi di jalur api), masing-masing dengan kelebihan dan kekurangan yang unik.

Misalkan karena tingkat bahaya yang tinggi terkait dengan kemungkinan membuang limbah yang tidak dinetralkan keluar dari knalpot insinerator ini, diputuskan bahwa sistem pendeteksi api dibuat berlebihan (beberapa sensor), sehingga kegagalan satu sensor tidak menyebabkan untuk emisi racun keluar knalpot.

Setiap sensor dilengkapi dengan kontak normal-terbuka (terbuka jika tidak ada nyala api, tertutup jika nyala api terdeteksi) yang akan kita gunakan untuk mengaktifkan input dari sistem logika:

Tugas kita sekarang adalah merancang sirkuit sistem logika untuk membuka katup buang jika dan hanya jika ada nyala api yang baik yang dibuktikan oleh sensor.

Namun, pertama-tama, kita harus memutuskan seperti apa perilaku logis dari sistem kontrol ini.

Apakah kita ingin katup dibuka jika hanya satu dari tiga sensor yang mendeteksi nyala api? Mungkin tidak, karena ini akan mengalahkan tujuan memiliki banyak sensor.

Jika salah satu dari sensor gagal sedemikian rupa sehingga secara salah menunjukkan adanya nyala api padahal tidak ada, sistem logika berdasarkan prinsip "salah satu dari tiga sensor yang menunjukkan nyala api" akan memberikan keluaran yang sama bahwa sistem sensor tunggal akan dengan kegagalan yang sama.

Solusi yang jauh lebih baik adalah merancang sistem sehingga katup diperintahkan untuk membuka jika dan hanya jika ketiga sensor mendeteksi nyala api yang bagus.

Dengan cara ini, setiap sensor yang gagal dan salah menunjukkan nyala api tidak dapat menjaga katup dalam posisi terbuka; sebaliknya, ketiga sensor tersebut harus gagal dengan cara yang sama—skenario yang sangat tidak mungkin—agar kondisi berbahaya ini terjadi.

Jadi, tabel kebenaran kita akan terlihat seperti ini:

Tidak perlu banyak wawasan untuk menyadari bahwa fungsi ini dapat dihasilkan dengan gerbang AND tiga masukan:keluaran rangkaian akan "tinggi" jika dan hanya jika masukan A AND masukan B DAN masukan C semuanya “tinggi:”

Jika menggunakan rangkaian relai, kita dapat membuat fungsi AND ini dengan menyambungkan tiga kontak relai secara seri, atau hanya dengan menyambungkan ketiga kontak sensor secara seri, sehingga satu-satunya cara daya listrik dapat dikirim untuk membuka katup buang adalah jika ketiga sensor menunjukkan api:

Meskipun strategi desain ini memaksimalkan keamanan, hal ini membuat sistem sangat rentan terhadap kegagalan sensor dari jenis yang berlawanan.

Misalkan salah satu dari tiga sensor gagal sedemikian rupa sehingga menunjukkan tidak ada nyala api ketika benar-benar ada nyala api yang baik di ruang bakar insinerator.

Kegagalan tunggal itu akan mematikan katup limbah yang tidak perlu, yang mengakibatkan hilangnya waktu produksi dan pemborosan bahan bakar (menyalakan api yang tidak digunakan untuk membakar limbah).

Akan lebih baik untuk memiliki sistem logika yang memungkinkan kegagalan semacam ini tanpa mematikan sistem secara tidak perlu, namun tetap memberikan redundansi sensor untuk menjaga keamanan jika ada satu sensor gagal "tinggi" (menunjukkan nyala api setiap saat , apakah ada yang terdeteksi atau tidak).

Strategi yang akan memenuhi kedua kebutuhan tersebut adalah logika sensor “dua dari tiga”, di mana katup buang dibuka jika setidaknya dua dari tiga sensor menunjukkan nyala api yang baik.

Tabel kebenaran untuk sistem seperti ini akan terlihat seperti ini:

Menggunakan Jumlah Produk

Di sini, belum tentu rangkaian logika seperti apa yang memenuhi tabel kebenaran.

Namun, metode sederhana untuk merancang rangkaian seperti itu ditemukan dalam bentuk standar ekspresi Boolean yang disebut Jumlah Produk , atau SOP , membentuk.

Seperti yang Anda duga, ekspresi Boolean Sum-Of-Products secara harfiah adalah sekumpulan istilah Boolean yang ditambahkan (dijumlahkan ) bersama-sama, setiap suku menjadi perkalian (produk ) kombinasi variabel Boolean.

Contoh ekspresi SOP akan seperti ini:ABC + BC + DF, jumlah produk “ABC,” “BC,” dan “DF.”

Ekspresi Sum-Of-Products mudah dibuat dari tabel kebenaran.

Yang harus kita lakukan adalah memeriksa tabel kebenaran untuk setiap baris di mana outputnya "tinggi" (1), dan menulis suku produk Boolean yang akan sama dengan nilai 1 dengan kondisi input tersebut.

Misalnya, pada baris keempat ke bawah dalam tabel kebenaran untuk sistem logika dua-dari-tiga kita, di mana A=0, B=1, dan C=1, suku hasilkalinya adalah A'BC, karena suku tersebut akan memiliki nilai 1 jika dan hanya jika A=0, B=1, dan C=1:

Tiga baris lain dari tabel kebenaran memiliki nilai keluaran 1, sehingga baris tersebut juga membutuhkan ekspresi produk Boolean untuk merepresentasikannya:

Terakhir, kita gabungkan keempat ekspresi produk Boolean ini bersama-sama dengan penambahan, untuk membuat ekspresi Boolean tunggal yang menjelaskan tabel kebenaran secara keseluruhan:

Sekarang kita memiliki ekspresi Boolean Sum-Of-Products untuk fungsi tabel kebenaran, kita dapat dengan mudah merancang gerbang logika atau rangkaian logika relai berdasarkan ekspresi itu:

Sayangnya, kedua sirkuit ini cukup kompleks, dan dapat mengambil manfaat dari penyederhanaan.

Menggunakan teknik aljabar Boolean, ekspresi dapat disederhanakan secara signifikan:

Sebagai hasil dari penyederhanaan, sekarang kita dapat membangun rangkaian logika yang lebih sederhana dengan fungsi yang sama, baik dalam bentuk gerbang atau relai:

Salah satu dari sirkuit ini akan menjalankan tugas pengoperasian katup limbah insinerator berdasarkan verifikasi nyala api dari dua dari tiga sensor nyala api.

Setidaknya, inilah yang kita perlukan untuk memiliki sistem insinerator yang aman.

Namun, kami dapat memperluas fungsionalitas sistem dengan menambahkan sirkuit logika yang dirancang untuk mendeteksi jika salah satu sensor tidak sesuai dengan dua lainnya.

Jika ketiga sensor beroperasi dengan benar, mereka akan mendeteksi nyala api dengan akurasi yang sama.

Jadi, mereka semua harus mendaftar "rendah" (000:tidak ada nyala) atau semua mendaftar "tinggi" (111:nyala bagus).

Kombinasi keluaran lainnya (001, 010, 011, 100, 101, atau 110) merupakan ketidaksepakatan antara sensor, dan karena itu dapat berfungsi sebagai indikator kegagalan sensor potensial.

Jika kami menambahkan sirkuit untuk mendeteksi salah satu dari enam kondisi "sensor ketidaksepakatan", kami dapat menggunakan output sirkuit tersebut untuk mengaktifkan alarm.

Siapa pun yang memantau insinerator kemudian akan menilai apakah terus beroperasi dengan kemungkinan sensor gagal (input:011, 101, atau 110), atau mematikan insinerator agar benar-benar aman.

Juga, jika insinerator dimatikan (tidak ada nyala api), dan satu atau lebih sensor masih menunjukkan nyala api (001, 010, 011, 100, 101, atau 110) sedangkan yang lain menunjukkan tidak ada nyala api, akan diketahui bahwa ada masalah sensor yang pasti.

Langkah pertama dalam merancang rangkaian deteksi “sensor ketidaksepakatan” ini adalah menulis tabel kebenaran yang menjelaskan perilakunya.

Karena kita sudah memiliki tabel kebenaran yang menjelaskan output dari rangkaian logika “api yang baik”, kita cukup menambahkan kolom output lain ke tabel untuk mewakili sirkuit kedua, dan membuat tabel yang mewakili seluruh sistem logika:

Meskipun dimungkinkan untuk menghasilkan ekspresi Sum-Of-Products untuk kolom tabel kebenaran baru ini, ini akan membutuhkan enam suku, masing-masing terdiri dari tiga variabel!

Ekspresi Boolean seperti itu akan membutuhkan banyak langkah untuk disederhanakan, dengan potensi besar untuk membuat kesalahan aljabar:

Menggunakan Product-Of-Sums

Alternatif untuk menghasilkan ekspresi Sum-Of-Products untuk memperhitungkan semua kondisi output "tinggi" (1) dalam tabel kebenaran adalah dengan menghasilkan Product-Of-Sums , atau POS , ekspresi, untuk memperhitungkan semua kondisi output "rendah" (0) sebagai gantinya.

Karena ada lebih sedikit contoh keluaran "rendah" di kolom tabel kebenaran terakhir, ekspresi Product-Of-Sums yang dihasilkan harus berisi lebih sedikit istilah.

Seperti namanya, ekspresi Product-Of-Sums adalah sekumpulan istilah tambahan (jumlah ), yang dikalikan (produk ) bersama.

Contoh ekspresi POS adalah (A + B)(C + D), produk dari jumlah "A + B" dan "C + D".

Untuk memulai, kami mengidentifikasi baris mana dalam kolom tabel kebenaran terakhir yang memiliki keluaran “rendah” (0), dan menulis suku jumlah Boolean yang akan sama dengan 0 untuk kondisi masukan baris tersebut.

Misalnya, pada baris pertama tabel kebenaran, di mana A=0, B=0, dan C=0, suku penjumlahannya adalah (A + B + C), karena suku tersebut akan bernilai 0 jika dan hanya jika A=0, B=0, dan C=0:

Hanya satu baris lain di kolom tabel kebenaran terakhir yang memiliki keluaran “rendah” (0), jadi yang kita butuhkan hanyalah satu suku penjumlahan lagi untuk melengkapi ekspresi Product-Of-Sums kita.

Suku jumlah terakhir ini mewakili keluaran 0 untuk kondisi masukan A=1, B=1 dan C=1.

Oleh karena itu, suku tersebut harus ditulis sebagai (A’ + B’+ C’), karena hanya jumlah pelengkap variabel input akan sama dengan 0 untuk kondisi itu saja:

Ekspresi Product-Of-Sums yang lengkap, tentu saja, adalah kombinasi perkalian dari dua istilah penjumlahan ini:

Sedangkan ekspresi Sum-Of-Products dapat diimplementasikan dalam bentuk satu set gerbang AND dengan outputnya terhubung ke satu gerbang OR, ekspresi Product-Of-Sums dapat diimplementasikan sebagai satu set gerbang OR yang dimasukkan ke dalam satu Gerbang DAN:

Sejalan dengan itu, sementara ekspresi Sum-Of-Products dapat diimplementasikan sebagai kumpulan paralel dari kontak relai terhubung seri, ekspresi Product-Of-Sums dapat diimplementasikan sebagai kumpulan seri kontak relai terhubung paralel:

Dua sirkuit sebelumnya hanya mewakili versi berbeda dari sirkuit logika "sensor ketidaksepakatan", bukan sirkuit deteksi "nyala api yang baik".

Seluruh sistem logika akan menjadi kombinasi dari sirkuit “nyala api yang baik” dan “ketidaksepakatan sensor”, yang ditunjukkan pada diagram yang sama.

Diimplementasikan dalam Programmable Logic Controller (PLC), seluruh sistem logika mungkin menyerupai sesuatu seperti ini:

Seperti yang Anda lihat, baik formulir Boolean standar Sum-Of-Products dan Products-Of-Sums adalah alat yang ampuh bila diterapkan pada tabel kebenaran.

Mereka memungkinkan kita untuk memperoleh ekspresi Boolean—dan akhirnya, rangkaian logika aktual—dari apa pun kecuali tabel kebenaran, yang merupakan spesifikasi tertulis untuk apa yang kita inginkan agar dilakukan oleh rangkaian logika.

Untuk dapat beralih dari spesifikasi tertulis ke sirkuit aktual menggunakan prosedur deterministik sederhana, berarti memungkinkan untuk mengotomatisasi proses desain untuk sirkuit digital.

Dengan kata lain, komputer dapat diprogram untuk merancang rangkaian logika khusus dari spesifikasi tabel kebenaran!

Langkah-langkah yang diambil dari tabel kebenaran ke rangkaian akhir sangat jelas dan langsung sehingga hanya membutuhkan sedikit, jika ada, kreativitas atau pemikiran orisinal lainnya untuk mengeksekusinya.

TINJAUAN:

LEMBAR KERJA TERKAIT:


Teknologi Industri

  1. Kiat Pemecahan Masalah Umum
  2. Pengelompokan Bit
  3. Desain Aman-Gagal
  4. Pengantar Aljabar Boolean
  5. Aritmatika Boolean
  6. Identitas Aljabar Boolean
  7. Aturan Boolean untuk Penyederhanaan
  8. Pengantar Pemetaan Karnaugh
  9. Hubungan Boolean pada Diagram Venn
  10. Sistem Pemadam Kebakaran Tahan Lama