請問錯誤訊息 "Insane Object" 代表什麼意思,應該如何解決?



主要軟體: LabVIEW Development Systems>>Full Development System
主要軟體版本: 7.1
主要軟體修正版本:
次要軟體: LabVIEW Development Systems

問題: 請問錯誤訊息 "Insane Object" 代表什麼意思,應該如何解決?

此訊息表示 LabVIEW 中的物件例如接線或是迴圈通道無法通過稱為 sanity check 的內部測試。 如果遭遇到足夠嚴重的錯誤,LabVIEW 將會因為此嚴重的錯誤而結束程式。 Sanity checks 在每次存檔前都會執行以確保損壞的 VIs 不會複寫過正常的 VIs。 Sanity checks 也會在編譯的過程中執行。 因此,sanity checks 是經常執行的。 許多 insanities 的錯誤實際上在對話視窗出現之後就被修復了並且不會再出現,因此在收到 insane object error 後的第一件事就是將您的 VI 備份, 執行之, 並且針對此 VI 做一些額外的編輯以檢驗此問題是否自動被修復。

VI 的損壞並不會經常發生。可能發生的原因為硬碟的損壞, 此損壞經常會導致一個檔案無法再被載入。 損壞也可能因為程式設計師做了某些事情而導致 LabVIEW 的資料型態受損, 例如呼叫外部的函式。 下列是一個 insane object errors 的例子:

上述的第一個錯誤, 錯誤訊息中告知哪一個物件產生錯誤。 BDHP 表示引起問題的物件存在程式區的堆疊中, 而非人機介面的 FPHP 堆疊所造成。 +4D50 是堆疊中物件所在的 HEX offset。 文字 "Wire Segment" 代表物件為接線。 文字 "graphics" 代表 insanity 與圖形有關, 意即此問題並不嚴重並且很可能會自動被修復。

上述的第二項訊息也是類似的情況,但是指的是迴圈的通道 (意即, 在迴圈邊緣接線所產生的資料輸出通道) 而非指接線。

解答: 如果您收到一個 insane object 訊息, 最好的方式為刪除並且在人機介面與程式區中重新產生最近產生的物件, 根據錯誤訊息中的 "FPHP" 或 "BDHP" 而定。 藉由錯誤訊息中的文字來決定要重建的物件。 在上述的第二種情況下, 最好的方式為刪除並重新產生最近所產生的迴圈通道。

如果 VI 檔案很小, 另外一種更好的解決方式為選取整個程式區並將之複製至新的 VI 下。 在儲存新的 VI 之後, 有很高的機會 insane object 的錯誤將不再出現。. 如果 VI 檔案太大導致上述的方式有所困難,但是手邊有另一台電腦安裝有相同版本的 LabVIEW , 您可以複製此 VI 到磁碟 (或是網路) 並且在第二台電腦上開啟之。 如果 insane object 錯誤沒有出現, 儲存此 VI (在第二台電腦上) 並且將之轉回原本的電腦上 (藉由磁碟或是網路)。 新的未受損的 VI 應可正確的運作並且不會產生 insane object 錯誤。

如果您發現一組固定的編輯動作會造成 insane object 錯誤或是您無法自行解決此問題, 請聯絡 NI 技術支援部門 (見以下連結) 以尋求幫助。

相關連結:

Building an Executable with a VI Created from State Diagram Toolkit Crashes LabVIEW 7.0

Insane Object Errors When Adding or Removing Needles or Sliders in Properties Dialog Box

My VI Will Not Run Correctly, But No Errors Are Reported And There is No Error On the Block Diagram.

Contact National Instruments Technical Support

附加檔案:





報告日期: 11/04/1998
最後更新: 02/12/2007
文件偏號: 1F398NU0