GPIB控制權轉移 - System Controller vs. Controller in Charge



主要軟體:
主要軟體版本: 1.0
主要軟體修正版本:
次要軟體: N/A

問題: 我需要將GPIB的控制權從一台儀器轉移至另一台儀器。關於系統管理員(System Controller)以及管理員擔任者(Controller in Charge),它們之間的差異為何?同時我要如何轉移管理員擔任者的角色給另一台儀器?

解答:

GPIB管理員有兩種類型,其相對應的詳細說明如下所述:

系統管理員 (SC) - 擁有最高GPIB bus控制權的硬體裝置。任何支援SC的裝置都可以被設定成為系統管理員。要注意的是一個GPIB bus只能有一個SC,同時不能利用程式撰寫的方法來動態設定硬體裝置成為SC。


管理員擔任者 (CIC) - 現階段擁有GPIB bus控制權的裝置。要注意的是,就如同SC一樣,一個GPIB bus只能有一個CIC,但是可以利用程式撰寫的方式來動態傳遞CIC給另一個硬體裝置。


在許多應用方面上,SC以及CIC通常都是指裝設在電腦上的GPIB介面卡。如果你有一台儀器且其支援GPIB控制的能力,那麼就可以在程式中透過動態設定的方式將CIC的角色傳遞給這台儀器。有好幾種方法可以完成這個傳遞控制權的動作,而最常使用的就是"ibpct" (NI-488)或者是"PassControl" (NI-488.2)這兩個命令。關於這些命令功能的詳細說明,可以查詢488.2的參考說明手冊。


當我們將CIC轉移給另一台儀器後,那台儀器就擁有CIC以及GPIB bus的控制權。問題跟著來了,要如何將控制權轉移回去給原來的GPIB介面卡然後繼續程式的執行呢?有兩種方法可以解決這個問題。


擁有控制權的儀器知道擁有SC的硬體裝置其位址為何,所以當這個儀器結束它的控制動作後,只需執行"ibpct"這個命令就可以將控制權傳遞回去給SC。相較於第二個方法,這個方法較不常被使用。

SC的最主要一個好處就是當硬體裝置被設定成為SC之後,即使目前這個硬體裝置沒有控制權,它也可以將控制權直接從另一台儀器給轉移回來,也就是重新獲得CIC。"ibsic" (NI-488)或者是"SendIFC" (NI-488.2)這兩個命令都可以完成上述的動作,因為這兩個指令都會完成清除GPIB bus的動作,同時不管現在哪一台儀器擁有控制權,都會自動將其控制權解除並傳遞回去給設定成SC的裝置。要使用這個方法,需要事先知道當控制權傳遞給另一台儀器後,那台儀器需要多少擁有控制權的時間。所以經由計時的動作,就可以在另一台儀器完成它的控制動作後,將控制權也就是CIC傳遞回去給SC。



相關連結: KnowledgeBase 2I4E7MXH: Disabling a GPIB Interface as System Controller (SC)
Developer Zone Example: Using a C Program as a GPIB Non-Controller with LabVIEW as the GPIB Controller
Developer Zone Example: How to Use LabVIEW as a GPIB Instrument (Non-controller)

附加檔案:





報告日期: 12/07/2001
最後更新: 09/18/2007
文件偏號: 2G675LEW