Ralat Perangkap Limpahan SLC 500 0020: Membetulkan Selak S:5/0
Diagnosis ralat utama SLC 500 0020H sebelum mengosongkan S:5/0. Ketahui cara promosi akhir imbasan berfungsi, kenal pasti arahan pertama yang menyebabkan ralat, tetapkan dasar pemulihan, dan buktik...
SLC 500 major error 0020H biasanya diterangkan sebagai kerosakan limpahan, tetapi kod ini lebih luas daripada satu arahan ADD yang bermasalah. Rockwell mentakrifkannya sebagai keadaan ralat kecil yang masih aktif apabila pemproses mencapai END, TND atau REF, lalu dinaik taraf menjadi ralat besar. Tugas diagnostik adalah mengenal pasti bit status yang menyebabkan peningkatan tersebut, menentukan operasi yang menetapkannya, dan memutuskan sama ada pemulihan terkawal selamat dilakukan.
Ralat 0020H sepatutnya membawa kepada penyiasatan fail status, bukannya kesimpulan automatik bahawa perkakasan pemproses telah gagal.
Baca fail status sebelum mengosongkan apa-apa
Rekodkan kod ralat, nombor katalog pemproses, mod operasi, masa, keadaan pengeluaran serta nilai S:5 dan S:6 sebelum menetapkan semula pengawal. S:5/0 ialah perangkap limpahan matematik. S:5/2 menunjukkan ralat daftar kawalan daripada arahan seperti FIFO, anjakan bit atau operasi pensiri. Bit S:5 yang lain juga boleh dinaik taraf pada akhir imbasan. Mengosongkan pemproses sebelum merekodkan nilai ini memusnahkan bukti dan menyebabkan kegagalan yang sama berulang.
Manual Rujukan Set Arahan Rockwell SLC 500 menyatakan bahawa S:5/0 ditetapkan apabila limpahan matematik berlaku dan ralat besar 0020H diisytiharkan jika bit tersebut masih ditetapkan apabila END, TND atau REF dilaksanakan. Manual itu mengesyorkan pemeriksaan bit selepas arahan yang berkaitan, mengambil tindakan yang sewajarnya, dan hanya kemudian mengosongkan S:5/0 dengan OTU atau mengosongkan perkataan status yang berkenaan.
Fahami hasil matematik serta perangkap
Untuk ADD, SUB, MUL, DIV atau NEG, hasil yang tidak dapat diwakili dalam destinasi akan menetapkan bit limpahan aritmetik S:0/1 dan perangkap S:5/0. Dengan keadaan lalai S:2/14, hasil positif dihadkan kepada 32767 dan hasil negatif kepada -32768. Apabila S:2/14 ditetapkan, 16 bit paling rendah boleh ditempatkan dalam destinasi. Tetapan itu mengubah tingkah laku destinasi; ia tidak membuktikan bahawa hasil aplikasi adalah sah.
DDV serta sesetengah arahan penukaran atau penskalaan mempunyai peraturan tambahan, jadi penyiasatan mesti merujuk rujukan arahan yang tepat. Pembahagian dengan sifar, panjang kawalan yang tidak sah atau alamat tak langsung di luar julat sah boleh menghasilkan laluan status yang berbeza. Jangan kumpulkan setiap kejadian 0020H di bawah “limpahan integer” tanpa memeriksa S:5 dan arahan yang dilaksanakan sejurus sebelum bit tersebut ditetapkan.
Cari operasi pertama yang menyebabkan masalah
Semak perubahan terkini dan rujuk silang setiap arahan yang mampu menetapkan bit status yang diperhatikan. Untuk limpahan matematik, periksa pengiraan penskalaan, jumlah pengeluaran, penukaran unit, nilai masa operasi terkumpul, had bertanda serta destinasi perantaraan. Pengiraan mungkin sah dari segi matematik dalam unit kejuruteraan tetapi tidak selamat apabila langkah perantaraan disimpan dalam integer 16 bit.
Rekod atau jejak arah aliran operand sumber, nilai destinasi, S:0/1 dan S:5/0 di sekitar arahan yang disyaki. Dalam sistem ujian luar talian, ulang hasilkan keadaan sempadan sedikit di bawah, tepat pada dan melebihi julat sah. Jika beberapa arahan boleh menetapkan perangkap dalam satu imbasan, tambah selak diagnostik sementara yang mengenal pasti lokasi pertama. Bit diagnostik ini hendaklah disemak, dinamakan dan dibuang atau dikekalkan secara rasmi selepas punca sebenar diketahui.
Gunakan logik pemulihan hanya dengan dasar yang jelas
OTU S:5/0 secara menyeluruh pada rung terakhir boleh menghalang peningkatan pada akhir imbasan, tetapi ia juga menyekat penutupan tanpa mengira pengiraan yang mengalami limpahan. Ini mungkin boleh diterima untuk pembilang tidak kritikal yang dihadkan nilainya dan dicetuskan penggera. Namun, ia tidak boleh diterima apabila hasilnya mempengaruhi pergerakan, tekanan, suhu, pendosaan, perlindungan peralatan atau keputusan berkaitan keselamatan.
Logik yang kukuh memeriksa hasil arahan di tempat arahan itu berlaku. Sahkan operand sebelum pelaksanaan, pilih destinasi dengan julat yang mencukupi, hadkan nilai hanya apabila maksud proses menyokongnya, tetapkan penggera diagnostik, gantikan dengan nilai selamat yang didokumenkan, kemudian kosongkan perangkap. Jika tindak balas yang betul ialah menghentikan urutan, kekalkan ralat tersebut dan bukannya memaksa pemproses untuk terus berjalan.
Rutin ralat pengguna boleh menyokong pemulihan terkawal untuk kejadian terpilih, dan manual Rockwell menyertakan contoh yang mengira kejadian 0020H berulang lalu akhirnya membenarkan penutupan. Corak itu lebih bermaklumat daripada pengosongan tanpa syarat kerana ia membezakan kejadian terpencil yang telah dikendalikan daripada kecacatan berulang. Rutin ralat itu sendiri mesti diuji dengan teliti; ralat kedua di dalamnya boleh menulis ganti maklumat diagnostik atau menghalang pemulihan.
Asingkan ralat perisian daripada kebimbangan perkakasan
Perangkap limpahan biasanya menunjukkan data program dan tingkah laku arahan, bukannya casis yang gagal. Namun, bekalan kuasa tidak stabil, masalah memori atau perubahan program yang tidak disengajakan boleh mengubah data dan wajar disiasat apabila bukti menyokongnya. Sahkan bateri pengawal dan sejarah kuasa, bandingkan program yang sedang berjalan dengan arkib yang diluluskan, serta semak sama ada HMI, mesej atau sistem luaran menulis operand yang terlibat.
Jangan gantikan pemproses SLC sebagai tindak balas pertama terhadap sempadan matematik yang boleh dihasilkan semula. CPU gantian yang menjalankan program sama dengan data sama akan menghasilkan semula ralat tersebut. Jika platform itu sudah usang, urus alat ganti dan penghijrahan berdasarkan pelan kitar hayat sistem PLC dan PAC tapak, tetapi asingkan keputusan itu daripada analisis punca sebenar yang segera.
Buktikan pembetulan
Uji logik yang telah dibetulkan pada nilai normal, kedua-dua had julat, input tidak sah, kehilangan komunikasi, imbasan pertama serta sebarang keadaan tetapan semula. Pastikan penggera mengenal pasti pengiraan yang terjejas, nilai gantian adalah selamat dan kejadian berulang dikira. Perhatikan S:5/0 dan S:0/1 sepanjang kitaran pengeluaran yang mewakili keadaan sebenar, dan sahkan bahawa pemproses tidak sekadar menyembunyikan limpahan yang berulang.
Arkibkan fail RSS sebelum dan selepas, bukti ralat, keputusan ujian serta rasional bagi sebarang logik pemulihan. Padankan rekod itu dengan panduan penghijrahan penskalaan SLC tapak apabila memodenkan aplikasi. Ralat 0020H menjadi lebih mudah diurus apabila pasukan menganggapnya sebagai masalah status dan kualiti data yang tepat, bukannya sebagai bit yang perlu dinyahselak sebaik sahaja dilihat.