
Artikel ini akan membahas langkah-langkah yang diperlukan untuk membuat perangkat yang memenuhi persyaratan umum untuk keselamatan fungsional (FB). Dan juga arsitektur generator tegangan "keselamatan" yang paling sederhana akan diusulkan. Karena mengendalikan tegangan, Anda dapat mengontrol hampir semua perangkat.
Situs ini memiliki
artikel bagus (
satu ,
dua ) tentang topik ini dan sebuah
buku di mana saya dibesarkan sebagai seorang insinyur di FB.
Serangkaian standar GOST R IEC 61508 (IEC 61508) adalah dasar untuk standar Rusia yang menentukan urutan pengembangan perangkat yang persyaratan FB diberlakukan. Seperti yang Anda ketahui, ketika mengembangkan perangkat yang terkait dengan FB, ada standar industri yang mengatur prosedur pengembangan (untuk kereta api, ini adalah GOST R 52980-2015 "Persyaratan Perangkat Lunak", GOST R 34012-2016 "Persyaratan umum untuk peralatan kereta api", dll. e).
Menurut standar GOST R IEC 61508 dan IEC 61508, kegagalan dibagi menjadi 2 jenis: sistematis dan acak.
Kegagalan sistematis ditentukan oleh kesalahan dalam spesifikasi, desain, pengkodean perangkat lunak, perlindungan terhadapnya dibangun dengan cara mengatur siklus hidup, ini meliputi: verifikasi semua tahap siklus hidup untuk kepatuhan dengan persyaratan, dan validasi (pengujian validasi) produk akhir.
Kegagalan acak dihitung sebagai probabilitas kegagalan perangkat keras, perlindungan terhadapnya biasanya ditentukan oleh keputusan arsitektur.
Menurut standar, semua metode dapat dibagi menjadi dua kelompok: organisasi dan teknis. Metode organisasi meliputi: menerapkan siklus hidup, menerapkan standar pengkodean, memantau produksi perangkat keras. Metode teknis meliputi: sabotase (dari keanekaragaman bahasa Inggris - keanekaragaman), redundansi, perlindungan dari pengaruh lingkungan, independensi dan pemisahan komponen, diagnosa diri (masing-masing metode ini harus dijelaskan dalam artikel terpisah).
Metode organisasi utama untuk melindungi dari kesalahan sistematis dijelaskan dalam lampiran GOST R IEC 61508. Sebagai contoh, kami mempertimbangkan komponen sistematis perangkat lunak. Saat menulis kode, perhatian besar harus diberikan pada aturan pengkodean dan standar yang digunakan dalam pengkodean. Salah satu standar yang terkenal untuk pemrograman dalam bahasa SI adalah MISRA-C, penggunaannya meningkatkan keamanan sistem. Selain itu, ada penganalisa statis (umumnya berguna bagi penganalisa untuk memeriksa kode kesalahan) yang dapat memeriksa kepatuhan dengan standar MISRA-C, salah satunya adalah
PVS-Studio .
Pengalihan perangkat lunak parsial dapat dicapai melalui penggunaan berbagai algoritma pengembangan perangkat lunak. Sistem diversifikasi perangkat lunak yang lengkap dicapai hanya ketika ada dua spesifikasi persyaratan perangkat lunak yang berbeda, tim pemrogram yang berbeda, berbagai cara perangkat pemrograman dalam produksi yaitu: program-program ini harus sepenuhnya berbeda dan proses perangkat pemrograman juga harus berbeda. Juga, ketika mengembangkan alat perangkat lunak, perlu untuk melindungi terhadap kesalahan alat. Perangkat lunak yang paling penting dalam hal alat adalah kompiler bersama dengan pustaka standar dan tautan. Berbagai alat dapat dicapai dengan menggunakan kompiler ARMCC dan GCC. Namun, beberapa versi ARMCC memiliki sertifikasi TUV untuk kepatuhan SIL-3 menurut IEC 61508, dan GCC berhasil digunakan dalam pengembangan
perangkat lunak Falcon 9 .
Pertimbangkan hasil kompilasi perintah "Write to Port":
Perintah dalam bahasa SI (ISO / IEC 9899): MDR_PORTE-> CLRTX = 0x0040 |
---|
GCC | "ARMCC" |
---|
LDR r3, [pc, # 20] | MOVS r0, # 0x40 |
MOVS r2, # 64; 0x40 | LDR r1, [pc, # 16]; @ 0x0000072C |
STR r2, [r3, # 36] | STR r0, [r1, # 0x24] |
Bahkan dengan contoh perintah sederhana seperti itu (seperti yang dapat dilihat dari tabel), urutan perintah mikrokontroler berbeda dan register kerja yang berbeda digunakan. Yang dalam beberapa bentuk memberi kita "keragaman", dengan demikian mengurangi kemungkinan kesalahan karena
penyebab umum kesalahan alat.
Pertimbangkan metode perlindungan terhadap kesalahan yang tidak disengaja pada contoh perangkat yang mengendalikan relai elektromagnetik, yang ditunjukkan pada gambar. Untuk menentukan metode perlindungan, perlu untuk mengidentifikasi kegagalan peralatan berbahaya. Seperti yang Anda ketahui, relai dikendalikan dengan memasok tegangan ke belitannya, dalam hal ini, kegagalan berbahaya untuk perangkat ini adalah penampilan tegangan yang tidak sah yang cukup untuk relai beroperasi. Perangkat ini didasarkan pada arsitektur 2 dari 2. Dalam arsitektur ini, MCU_A dan MCU_B harus menerima perintah melalui jaringan yang terpisah secara fisik.
Gambar - Diagram Pemasangan AmanDalam kerangka artikel ini, kami tidak akan sepenuhnya menggambarkan pohon kesalahan, oleh karena itu, kami menganggap salah satu rantai peristiwa yang paling mungkin menyebabkan kegagalan berbahaya:
- Optocoupler U1 menerobos
- Kunci K2 menerobos
- Transformer menerobos
Intensitas timbulnya peristiwa jenis ini ditentukan oleh rumus

. Karena ketiga kegagalan terkait, intensitas rantai ini akan ditentukan oleh rumus

. Di bawah asumsi kasar, tingkat kegagalan rantai ini kurang dari (10e-15) 1 / jam, dengan asumsi bahwa kegagalan dapat terakumulasi dalam waktu 24 jam.
Mari kita pertimbangkan satu lagi kegagalan: kegagalan MCU_A dan MCU_B sehingga mereka "secara acak" menghasilkan urutan pulsa pada output.
"Acak" berarti pelaksanaan setidaknya sembilan perintah oleh mikrokontroler (tiga entri ke port), sedangkan tegangan output akan terdeteksi oleh dua mikrokontroler dan kesalahan akan dihasilkan antara perintah yang diterima dan "perintah yang dikeluarkan". Intensitas peristiwa ini sangat rendah karena: dua MK harus menjalankan 9 perintah secara bersamaan (belum lagi bahwa MK harus menulis nilai yang berlawanan dengan port, pada interval tertentu untuk menghasilkan tegangan yang diperlukan agar relai beroperasi pada output).
Sebagai kesimpulan, perlu dicatat bahwa sebagai metode untuk meningkatkan keselamatan fungsional, disarankan untuk menerapkan:
- diversifikasi perangkat lunak dan perangkat keras;
- diagnosis sendiri dari semua sumber daya mikrokontroler (RAM, ROM, ALU, register kerja, dll.), serta simpul perangkat;
- pengurangan parameter elemen rangkaian relatif terhadap nilai batas (De-rating), untuk memastikan karakteristik operasional yang lebih baik dan mengurangi kemungkinan kegagalan.
Semua metode ini dapat digunakan dalam pengembangan perangkat yang memenuhi persyaratan FB.
P.S. Dalam contoh yang dipertimbangkan, untuk mengurangi kemungkinan kegagalan karena alasan umum, salah satu mikrokontroler dapat diganti dengan FPGA.
Terima kasih atas perhatian Anda (ini artikel pertama saya)!