ようこそ!

Agilent VEE Proヘルプにようこそ。読みたい項目を検索するには、上の[Contents]または[Index]ボタンをクリックしてください。

Agilent VEE Pro Helpは、他の言語でも提供されています。インストール・ディレクトリにあるvee.chmの名前をveeEnglish.chmに変更し、使用したいローカライズ・バージョンの名前をvee.chmに変更してください。例えば、veeJapanese.chmをvee.chmに変更します。

Agilent VEE Pro 8.5の新機能

本リリースでの修正内容

Microsoft, MS-DOS, Windows, MS Windows, Windows NT, Excel, Word, .NET, Outlook, ActiveX, Visual Basic, Visual C#は、Microsoft Corporationの米国における登録商標です。

MATLABはThe MathWorks, Incの登録商標です。

National Instruments, NI, LabVIEW and SCXI はNational Instruments Corporationの商標です。

ArialおよびTimes New RomanはMonotype Corporationの米国における登録商標です。

PXI は PXI System Alliance の登録商標です.

IVI and IVIplug&play は IVI Foundation の登録商標です.

Pentium はIntel Corporationの米国における登録商標です.

PostScriptはAdobe Systems Incorporatedの商標です。


Agilent VEE Pro 8.5の新機能

下の図はIDEのデフォルト・レイアウトで、Program Explorerと[Properties]ウィンドウがワークスペースの左側にドッキングされ、Function & Object BrowserとInstrument Managerが右側にドッキングされて自動的に隠すように設定され、[Output]ウィンドウと[Find Results]ウィンドウが下側にドッキングされて自動的に隠すように設定されています。このデフォルト・レイアウトは、[Window] => [Reset Tool Bar / Window layout]コマンドを使うことでいつでも復元できます。

また、メニュー項目やツールバーのボタンを必要に応じてカスタマイズしたり、ツールバーとツール・ウィンドウの独自のレイアウトを保存してロードしたりできます。このためには、[Window]メニューの[Save Tool Bar / Window layout]または [Load Tool Bar / Window layout]コマンドを使用します。

下の図はカスタムIDE設定で、Instrument Manager、Function & Object Browser、[Output]ウィンドウがAgilent VEEメイン・ウィンドウの外側にフローティングしています。

関連項目

ツール・ウィンドウを整列／ドッキングするには ツール・ウィンドウをドッキングして自動的に隠す方法と、ウィンドウ・レイアウトをリセットする方法を説明します。

Agilent VEEツールバーをカスタマイズするにはツールバーのレイアウト、位置、内容を変更する方法と、ツールバーのレイアウトをリセットする方法を説明します。

Agilent VEE 8.5は、Microsoft Windows Vista（32ビット）、Windows XP SP2、Windows 2000 SP4をサポートします。Agilent VEE 8.5がサポートするのは、Windows Vista Business、Windows Vista Ultimate、Windows Vista Enterpriseだけです。Windows Vista Home BasicおよびHome Premiumエディションはサポートされません。

注記: Agilent VEEは32ビット・バージョンのOSだけをサポートします。

インストールとアンインストール

Windows Vista、Windows XP、Windows 2000が動作しているコンピュータにAgilent VEEをインストールするには、システム管理者権限が必要です。

Agilent VEEは、各ユーザ、各バージョンごとに設定ファイルを保存します。すなわち、各ユーザはVEEの異なるバージョンに対応する複数の設定ファイル・セットを持つ場合があります。詳細情報については、VEE for Windowsの設定を参照してください。

I/O設定ファイルについては、VEE環境変数が存在する場合、すべてのユーザとすべてのエディション（Agilent VEE Pro、Agilent VEE Express、Agilent VEE Student）に対するグローバル設定ファイルが、Agilent VEEの各バージョンごとに作成されます。詳細については、埋込みI/O構成とマージおよびI/O設定の手法を参照してください。

Agilent VEE 8.5では、Microsoft Office 2007およびMicrosoft Excel 12.0オブジェクト・ライブラリのサポートが追加されています。Agilent VEEに付属するExcelライブラリは、Agilent VEE 8.5でも正常に動作し、従来と同じ機能を果たします。すなわち、Agilent VEE Excelライブラリを使用して開発された既存のプログラムは、MS Office 2007およびMS Excel 12.0オブジェクト・ライブラリとの組合わせでも動作します。

ただし、Excelオートメーション・コードを直接Formulaに書き込んでいる既存のプログラムでは、問題が生じる可能性があります。これは、MS Excel 11.0オブジェクト・ライブラリなどの従来のオブジェクト・ライブラリの機能の一部が、MS Excel 12.0オブジェクト・ライブラリで使用できないためです。オブジェクト・モデルの変更の詳細については、Microsoft Webサイトを参照してください。

どのバージョンのMATLABを使用するかを、[Default Preferences]（[File] => [Default Preferences]）ダイアログ・ボックスで容易に変更できます。

この機能により、ユーザは個々のAgilent VEEオブジェクトまたはオブジェクトのグループに別々の色を設定できるので、Agilent VEEプログラムが読みやすくかつコーディングしやすくなります。また、オブジェクトがどの型に属するかをオブジェクトの色だけで判定できます。下の図は2つのプログラムを示します。上のプログラムはカラー・コードを使用したもの、下のプログラムは同じプログラムでカラー・コードを使用していないものです。

カラー・コード・テーマの変更、エクスポート、インポートは、[Default Preferences]（[File] => [Default Preferences]）ダイアログ・ボックスで容易に実行できます。.

詳細については、カラー・コードを使用するにはを参照してください。

詳細については、不確かなデータ・フローのコンパイラ警告を参照してください。

Instrument Managerで計測器に対するI/Oオブジェクトを作成する4つの方法:

  1. 計測器リスト中の計測器をダブルクリックして、Direct IOオブジェクトを直接作成します。

  2. 計測器リストから計測器をワークスペースにドラッグ・アンド・ドロップします（その計測器に対して複数の種類のI/Oオブジェクトが作成可能な場合、作成するI/Oオブジェクトをポップアップ・メニューから選択します）。

  3. コンテキスト・メニューを使用します。計測器リスト中の計測器を右クリックして、コンテキスト・メニューを開きます。

  4. ツールバー・ボタンを使用します。

詳細については、Instrument Managerを参照してください。

I/O Monitorは、次の機能を持つスタンドアロンのツールです。

  • Agilent IO LibraryのAPIコール・スタックをトレースします。

  • 選択したAgilent IO Libraryレイヤの表示をオン／オフします。

  • レポートされたデータをフィルタして表示内容を制御します。

  • トレース情報をファイルに記録して後で参照できるようにします。

Agilent I/O Monitorの詳細については、Agilent I/O Monitorのオンライン・ヘルプを参照してください。

Function & Object Browserは、便利なツールバー・ボタンとコンテキスト・メニューを持つツール・ウィンドウです。

Function & Object Browserで選択した項目に対するFormulaオブジェクトを作成する4つの方法:

  1. メンバ枠で項目をダブルクリックして、Formulaオブジェクトを直接作成します。

  2. メンバ枠から項目をワークスペースにドラッグ・アンド・ドロップします（その項目に対して複数の種類のFormulaオブジェクトが作成可能な場合、作成するFormulaオブジェクトをポップアップ・メニューから選択します）。

  3. コンテキスト・メニューを使用します。メンバ枠中の項目を右クリックして、コンテキスト・メニューを開きます。

  4. ツールバー・ボタンを使用します。

詳細については、Function & Object Browserを参照してください。

[Output]ウィンドウの警告またはエラーをダブルクリックすると、警告またはエラーの原因となったオブジェクトがワークスペースのどこにあるかが示されます。

詳細については、[Output]ウィンドウを参照してください。

この機能により、ユーザは計測器のVISAアドレスをGPIB、USB、TCP/IPインタフェースの間で動的に変更できます。また、計測器のVISAアドレスを同じインタフェース内で動的に変更できます。

この機能を使うと、計測器の検出と設定を簡単にできるだけでなく、プログラムの複雑さが大幅に減少します。通信したい計測器をInstrument Managerであらかじめ追加して設定しておかなくても、通信相手の計測器を動的に変更できるからです。理論的には、複数のGPIB、USB、TCP/IP計測器に対して同じテストを実行したい場合、それらの計測器のうち1つだけをInstrument Managerで追加しておけば、接続した任意のGPIB、USB、TCP/IP計測器と（その計測器のVISAアドレスがわかっている限り）通信できます。この新機能の使用法の詳細については、VISAインタフェースおよびアドレスを動的に変更するにはを参照してください。

この機能が使用できるのはGPIB、USB、TCP/IP計測器だけであり、ASRL、レガシGPIBなどで接続された他の計測器は対象となりません。

VISAアドレスが通信相手の計測器の正しい物理アドレスであることを確認してください。そうでないと、通信の問題が発生するおそれがあります。

例: DynamicChangeVisaAdress.vee

この新機能を使うと、Main UserObjectを、C/C++、 VB、C#、Microsoft Officeのスクリプトとマクロ（VBA）などの言語で作成された他の市販または独自のテスト・システムに組み込むことができます。Callable Serverを通じて、MainおよびUserFunctionを含むAgilent VEEプログラム全体を制御できます。詳細については、Callable VEE ActiveX Automation Serverを参照してください。

詳細については、[File Open]ダイアログ・ボックスを参照してください。

Agilent VEE 8.5には、新しいデータ型UInt16と、旧バージョンとの互換性のための新しい実行モードVEE 8.5が導入されています。詳細については、実行モードの変更: VEE 8からVEE 8.5へを参照してください。

詳細については、UInt16を参照してください。

UInt16に対して追加された新しいメニュー項目と組み込み関数:

  • Data => Constant => UInt16

  • Data => Constant => UInt16 Array

  • Data => Alloc Array => UInt16

  • asUInt16(x)

Agilent VEE Pro 8.5の新機能

Modern Integrated Development Environment（MIDE） -- バージョン8.5の統合開発環境は、最新の効率的なプログラミング環境を提供します。この機能により、さらにニーズに適合した開発環境のカスタマイズなど、機能性と柔軟性が一段と高まります。バージョン 8.5では、Instrument Manager、Function & Object Browser、Program Explorer、[Properties]ウィンドウ、[Watch]ウィンドウ、[Output]ウィンドウ、ミニマップ、コール・スタック、プロファイラなどのすべてのツール・ウィンドウのドック、フロート、非表示、移動が可能です。

Microsoft Windows Vistaのサポート -- Agilent VEE 8.5を使用すると、セキュリティが強化され、操作性が向上した最新Microsoftオペレーティング・システムの機能を活用できます。Windows Aeroインタフェース、Windows Instant Search、WindowsサイドバーといったMicrosoft Windowsの新しい機能が利用可能です。User Account Control （UAC）およびその他のセキュリティ関連機能を使用すると、PCのヘルスとセキュリティをより簡単に保持できます。

ユーザごと、バージョンごとのVEE設定ファイル -- バージョン8.5以降、Agilent VEEは設定ファイルをバージョンごと、ユーザごとに保存します。これにより、バージョンやユーザごとの設定の違いから問題が生じるのを防ぐことができます。

Microsoft Office 2007のサポート -- Agilent VEE 8.5はMicrosoft Office 2007をサポートし、内蔵のExcelメニューもアップデートされています。

MATLAB 2007aのサポート -- Agilent VEE Pro 8.5は、MATLABサポートをMATLAB 2007aにアップグレードします。サポートされるMATLAB関数の数は1800に増え、頻繁に使用される1200の関数がFOBに表示されます。また、どのMATLABバージョンを使用するかを、[Default Preferences]ダイアログの[MATLAB]タブで簡単に選択できます。

カラー・コード -- この機能によりオブジェクトがタイプごとに自動的に色分けされるので、Agilent VEEのプログラムが一層読みやすくなります。必要に応じてオブジェクトに色を付けたり、カラー・テーマをエクスポート／インポートして他のユーザと共有したりすることもできます。

不確かなデータ・フローのコンパイラ警告 -- Agilent VEE 8.5は、Agilent VEEプログラムに潜在的なコンパイラの問題が発見されたときに警告を発します。コンパイラ警告の詳細は、Agilent VEEオンライン・ヘルプに記載されています。

グラフィック表示オブジェクトの機能拡張 -- Agilent VEE 8.5では、XYトレース、ストリップ・チャートなどのすべてのグラフィック表示オブジェクトで最大255のトレースを表示できます。

Instrument Manager -- バージョン 8.5のInstrument Managerは、一新されたUIを備えた、ドック、自動非表示、フロートが可能なツール・ウィンドウというだけではありません。コンテキスト・メニューとツールバーを含め、測定器の検出、追加、削除、構成やI/Oオブジェクトのすばやい作成のためのさらに便利な機能が装備されています。Instrument Managerでは、計測器をダブルクリックするか、計測器をワークスペースにドラッグ・アンド・ドロップすることにより、I/Oオブジェクトを作成できるようになりました。

Agilent IO Monitorを使用した即時通信のモニタ -- Agilent VEE 8.5では、旧いBus I/O Monitorオブジェクトが、よりパワフルで使いやすいAgilent IO Monitorと置き換わっています。

Function & Object Browser (FOB) -- この新たにデザインされたFunction & Object Browserを使用すると、プログラムで使用できる機能とオブジェクトを簡単に参照し、選択できます。メンバ枠（右上の枠）で項目をダブルクリックするかドラッグ・アンド・ドロップすることにより、適切なFormulaオブジェクトを作成することもできます。

[Output]ウィンドウ -- この機能を使用すると、実行中と設計中の警告メッセージとエラー・メッセージを記録して、プログラムのデバッグに利用できます。

VISAインタフェースとアドレスの動的変更 --バージョン 8.5では、VISAインタフェースとアドレスをプログラムで変更することにより、同じ計測器との通信を、 構成やコーディングを追加せずに、別のインタフェースとアドレス経由で実行できます。

Callable ServerからのMainの利用 -- Callable Serverインタフェースを通じて、C#、Visual Basic、C++、Excelマクロなどの他の言語で作成されたプログラムから、Main UserObjectを呼び出せるようになりました。

M icrosoft標準の[File Open]ダイアログ -- Agilent VEE 8.5では、To/From File、To/From Dataset、またはImport Libraryオブジェクトを使用するときに表示される旧いファイル・オープン・ダイアログ・ボックスが、標準のWindowsファイル・オープン・ダイアログ・ボックスに置き換わっています。

新しい実行モードと新しいデータ型 -- バージョン 8.5から、Agilent VEEは新しいデータ型UInt16と新しい実行モードVEE 8.5をサポートします。

ViReal32に対するVISAの変更 -- Agilent VEE 8.5は、最新のVISA仕様に従って、ViReal32、ViReal32 []、pViReal32をサポートします。

関連項目

過去のVEEバージョンの新機能と機能拡張


Agilent VEEのインストール

Agilent VEEをインストールするには

Agilent VEE およびI/Oライブラリのインストール

VEEの評価バージョンをダウンロードするか、オーダできます。評価バージョンは、フル機能の製品バージョンです。評価バージョンをインストールすると、製品キーの入力を求められるので、"eval"と入力してください（引用符は入力しません）。

製品キーを購入すると、評価バージョンをフルにアクティブにすることができます。メールで製品キーを受信したら、メインメニューの[Help] [image] [Product Key]からキーを入力してください。完全な製品もオーダまたはダウンロードできます。製品キー認証は、製品に付属しているか、WWWからダウンロードした場合には別途送信されます。

VEEは以下のオペレーティング・システムで動作します:Windows 2000 SP4、Windows XP.SP1およびWindows Vista。

  • CD-ROMからVEEをインストールする手順:管理者権限を持つユーザとしてログインします。CD-ROMをCD-ROMドライブに入れます。インストールが自動的に開始します。実行しない場合は、[スタート]メニューに進み、[ファイル名を指定して実行]を選択します。以下を入力します。

[CD-ROMドライブ文字]:\setup.exe

  • WWWダウンロードからVEEをインストールする手順:VEE自己解凍実行可能ファイルをダウンロードします。ダウンロードした自己解凍ファイルは、選択したダウンロード・ディレクトリに格納されます。自己解凍実行可能ファイルを実行して、VEEインストールファイルを解凍します。ファイルは、選択したディレクトリに解凍されます。このディレクトリから、setup.exeを実行します。

セキュリティニーズを満足するため、PCの全ユーザ用にインストールするか、1人のユーザ用にインストールするかを選択するよう求められます。セキュリティニーズに合ったオプションを選択します。

I/Oライブラリの詳細については、付属のインストールマニュアルを参照してください（I/Oライブラリは、VEEと計測器との通信に使用されます）。

「Installing and Distributing VEE Pro RunTime」（[Help] [image] [Contents and Index] [image] [Installing and Distributing VEE Pro RunTime]）に、VEE Pro RunTime版のインストール方法と配布方法が説明されています。RunTime版は、VEEソフトウェアがインストールされていないPC上でVEEプログラムを実行するために使用します。RunTime環境については、オンライン・ヘルプを参照してください。[Help]、[Contents and Index]、[Installing and Distributing Agilent VEE Pro RunTime]を選択します。

関連項目

Windows版VEEの設定


Windows版VEEの設定

Agilent VEEを設定するには

VEEのウィンドウのプロパティの多くは、VEEの[Default Preferences]ダイアログ・ボックス（[File] [image] [Default Preferences]）で変更できます。これらのプロパティは、デフォルトの場所にあるデフォルト・ファイルVEE.RCおよびuser.configに保存されます。ツール・ウィンドウとツールバーのレイアウトもカスタマイズでき、レイアウト情報も同じデフォルトの場所に保存されます。

設定ファイルのデフォルトの場所は次のとおりです。

%Appdata%\ShortCompanyName\ProductName\MajorVersionNumber + "." + FirstDigitofProductMinorNumber

-- %Appdata%はEnvironment.SpecialFolder.ApplicationDataから得られます。

-- ShortCompanyNameはAgilentです。

-- ProductNameはAgilent VEEのバージョン名で、VEE Pro、VEE Runtime、VEE Expressなどです。

-- ProductMajorNumberは製品番号の整数部分です。例えば、VEE 8.0の場合、8が製品メジャー番号です。

-- FirstDigitofProductMinorNumberは製品マイナー番号の1桁目です。製品マイナー番号とは、製品番号の小数部分です。例えば、VEE8.51の場合、51が製品マイナー番号で、1桁目は5です。

例えば、Windows XP/2000/VistaでのVEE Pro 8.5のデフォルトの場所は、%Appdata%\Agilent\VEE Pro\8.5です。

上記のデフォルトの場所は、各ユーザおよび各バージョン専用のディレクトリです。各ユーザは、使用するAgilent VEEの各バージョンごとに異なる設定ファイル群を持ちます。例えば、Agilent VEE Pro 8.5とAgilent VEE Runtime 8.5の両方を使用している場合、設定ファイル群は2セットあります。VEEの各バージョンごとに1つずつです。

色とフォントの設定

File ﾞ Save Asを選択することにより、色とフォントをプログラムに保存できます。

色とフォントに関しては、変更した設定だけがデフォルト・ファイルVEE.RCに保存されます。

アイコンのカスタマイズ ビットマップ

アイコン化したオブジェクトに対して表示されるアイコンを、ビットマップまたはpixmapに変更できます。VEEに付属する多数のファイルから選択することも、独自のファイルを作成することもできます。Windows版VEEは、 24ビットの.BMPビットマップ・ファイル、.GIF87、.GIF89a、.PNG（Portable Network Graphics）、.WMF（Windows Meta Files）をサポートします。オブジェクトのアイコンを選択するには、オブジェクトをダブルクリックして[Properties]ウィンドウを表示し、[Properties]ウィンドウの[Icon Appearance]タブを使用します。

オブジェクト・アイコン用の独自のビットマップを作成するには、VEEがサポートするグラフィックス・フォーマットを出力する任意のエディタ、例えばWindowsのPaintなどが使用できます。アイコンのサイズは48x48と指定します。大きいアイコンはVEEのプログラム領域を余分に消費し、小さいアイコンは見にくくなります。Print Screenなどの画面キャプチャ・ユーティリティをPaintと組み合わせて使用することもできます。

パネル・ビュー用のビットマップの選択

パネル・ビューの背景アイコンとして使用するビットマップを選択できます。これは、UserObjectと、パネル・ビューに表示されるVEEプログラムに使用されます。パネル・ビュー・アイコンはVEEがサポートするフォーマットを使用する必要があります。前の項目で説明したように、ユーザが作成したアイコンを使用することもできます。

パネル・ビューのアイコンとしてビットマップを選択するには、パネル・ビューを有効にし（オブジェクトをパネルに追加し）、タイトル・バーにパネル・ビューと詳細ビューのボタンが表示されるようにします。[Properties]ウィンドウを開き、[PanelBackgroundPicture]アイテムを使ってビットマップを選択します。

関連項目

デフォルトの色を変更するには, デフォルトのフォントを変更するには、I/O設定の手法


VEEサンプル・プログラムの使用法

VEEサンプル・プログラムを使用するには

VEEには、VEEの動作を理解するための参考となる多数のサンプル・プログラムが付属しています。サンプル・プログラムは、VEEのインストール時にインストールされています。

サンプル・ディレクトリ

サンプルのデフォルト・ディレクトリは次のとおりです。

C:\Program Files\Agilent\VEE Pro 8.5\examples\

サンプルの実行

サンプル・プログラムは[Help]メニューから次のようにロードして実行できます。

1 メニュー・バーの[Help] => [Open Example] をクリックします。これにより、類似したサンプルをグループにまとめたサブディレクトリのリストが表示されます（ [File] => [Open] => [Examples] を使ってVEEサンプルをロードすることもできます）。

2 そのグループ内のプログラムを見るには、目的のサブディレクトリをダブルクリックします。

3 目的のサンプルが見つかるまでリストをスクロールします。

4 サンプル名をクリックし、 [OK] をクリックしてプログラムを開きます。作業領域に既存のプログラムがある場合は、保存するためのプロンプトが表示されます。

5 プログラムを実行するには、ツールバーの[Run]ボタンを押します。


Windows版Agilent VEEを起動するには

Agilent VEEを起動するには

同じPCでVEEの複数のコピーを起動することができます。ただし、VEEの2つのコピーが同じシステム・リソース（I/Oインタフェースなど）に同時にアクセスしようとすると、予期しない結果が発生する可能性があります。

VEE Pro RunTimeを使ってプログラムを実行する方法については、プログラムの変更の防止とWindowsでアプリケーション・アイコンを作成するにはを参照してください。

Windowsの[スタート]ボタンの使用

1. [スタート]ボタンをクリックし、[プログラム] [image] [Agilent VEE Pro 8.5].を選択します。

Windowsデスクトップからの起動

1. Windowsヘルプの説明に従って、Windowsエクスプローラを使ってAgilent VEEアプリケーション・ファイルのショートカットをデスクトップに配置します。

デフォルトではVEEは次の場所にインストールされています。

C:\Program Files\Agilent\VEE Pro 8.5\vee.exe

ただし、別の場所にインストールされている可能性もあります。

2. ショートカットが配置されたら、ショートカット・アイコンをダブルクリックしてAgilent VEEを起動します。

関連項目

コマンド・ライン・オプション付きでAgilent VEEを起動するには


コマンド・ライン・オプション付きでAgilent VEEを起動するには

Agilent VEEには、VEEおよびVEE Pro RunTimeの起動に使用できるいくつかのコマンド・ライン・オプションが用意されています。例えば、VEEの起動時にロードするVEEプログラム・ファイルを指定できます。また、VEE Pro RunTimeでロードして実行するプログラムを選択できます。

コマンド・ライン・オプションを使ってVEEおよびVEE Pro RunTimeを起動するには

1. Windowsの[スタート]ボタンをクリックし、[ファイル名を指定して実行...]をクリックします。

2. veeまたはveerunの後に必要なオプションを入力し、Enterキーを押します。veerunコマンドでは、オプションの後ろにプログラム・ファイル名を指定する必要があります。

または

1. コマンド・プロンプト・ウィンドウを開きます。

2. start vee.exe または start veerun.exeの後に必要なオプションを入力し、Enterキーを押します。veerunコマンドでは、オプションの後ろにプログラム・ファイル名を指定する必要があります。

使用可能なオプションとその例については、この項目の後の方を参照してください。

ヒント

デスクトップ上にVEEのショートカットを置いてある場合、ショートカットのプロパティを変更してコマンド・ライン・オプションを指定できます。

使用可能なオプションとその例については、この項目の後の方を参照してください。

使用可能なオプション

下の表は、VEEまたはVEE Pro RunTimeを使用する際に各プラットフォームで使用できるオプションを示します。各オプションの説明は、表の下に記載されています。

オプション | Windows
 | VEE | VEE Runtime
-d directory | X | X
-disallowclose |  | X
-enablewarnings |  | X
filename | X | X
-geometry | X | X
-help | X | X
-iconic | X | X
-ioconfig |  | X
-maximize | X | X
-noerrdisp | X |
-nologo | X |
-prefconfig |  | X
-r filename | X |
-secure ProgramName | X |
-stderr:filename ProgramName | X | X
-stdout:filename ProgramName | X | X
-veeio path to filename | X | X

オプションの説明

-d directory

-dは、VEEを起動し、デフォルトのVEEインストール・ディレクトリの代わりに指定されたディレクトリにある計測器ドライバなどの関連ファイルを使用します。

-disallowclose

プログラム実行中にユーザがVEE Pro RunTimeのウィンドウを閉じられないようにします。

-enablewarnings

VEE Pro RunTimeにプログラムをロードする際に、エラーおよび注意ダイアログ・ボックスの表示を有効にします。このオプションを指定しない場合、VEE Pro RunTimeはプログラムのロード中の通常のエラーおよび注意ダイアログをすべて表示しません。通常のエラー表示をオフにしていると、ロードが失敗した場合には"File format is invalid"といった一般的な（情報量の少ない）メッセージだけが表示されます。-enablewarningsが指定されている場合、問題の原因がより具体的にわかります。

filename

これはveeコマンドではオプションであり、veerunコマンドでは必須です。veeコマンドは、VEEを起動し、filenameで指定されたVEEプログラムをVEE作業領域で開きます。veerunコマンドは、VEE Pro RunTimeを起動し、filenameで指定されたVEEプログラムを実行します。Windowsで、filenameにスペースが含まれる場合、パスを含むファイル名全体を引用符で囲む必要があります。

-geometry widthXheight+/-xoffset+/-yoffset
または
-geometry +/-xoffset+/-yoffset（デフォルトのウィンドウ・サイズを使用する場合）

デフォルトのサイズと位置の代わりに使用するウィンドウの初期サイズと位置を指定します。サイズと位置の値はピクセル単位です。正のオフセット値は、ウィンドウの左上隅を画面の左上隅を基準として配置します。負のオフセット値は、ウィンドウの右下隅を画面の右下隅を基準として配置します。

オフセット+0+0は画面の左上隅です。

例: -geometry 640X480+20+20は、幅640ピクセル、高さ480ピクセルで、画面の左上隅から20ピクセル右、20ピクセル下に配置されたウィンドウでVEEを起動します。

-help

VEEのコマンド・ライン・オプションを表示します（VEEのオンライン・ヘルプ・システムとは異なります。オンライン・ヘルプ・システムはVEE内部から起動されます）。

-iconic

-iconicオプションは、ウィンドウでなくアイコンでVEEを起動します。アイコンをダブルクリックすると、ウィンドウが開きます。

-ioconfig

このオプションは、VEE Pro RunTimeウィンドウで[Instrument Manager]ダイアログ・ボックスを開いて、I/O構成ファイルvee.ioを変更できるようにします。このコマンドにプログラム・ファイル名を指定しても無視されます。

[Instrument Manager]ダイアログがVEEウィンドウ内部に収まらない場合、-geometryオプションを使うことでVEEまたはVEERunウィンドウを拡大できます。

-maximize

画面全体に拡大されたウィンドウでVEEを起動します。

-noerrdisp

このオプションは、-rと組み合わせて使用できます。-rと組み合わせた場合、指定されたプログラムがエラーで実行できないと、VEEはエラー・メッセージを表示せずにただちに終了します。

-nologo

このオプションは、VEEの実行開始前に表示される起動情報を表示させないようにします。Windowsでは、起動情報ボックスが表示されません。

-prefconfig

このオプションは、VEE Pro RunTimeウィンドウで[Default Preferences]ダイアログ・ボックスを開いて、デフォルト設定を変更できるようにします。このコマンドにプログラム・ファイル名を指定しても無視されます。

[Default Preferences]ダイアログがVEEウィンドウ内部に収まらない場合、-geometryオプションを使うことでVEEまたはVEERunウィンドウを拡大できます。

-r filename

-rオプションは、VEEを起動し、filenameで指定されたVEEプログラムを実行します。プログラムの実行が終了すると、VEEはただちに終了します。エラーが発生した場合、VEEが終了する前にエラー・メッセージが表示されます。ファイル名を指定しない場合、-rオプションは無視されます。filenameにスペースが含まれる場合、パスを含むファイル名全体を引用符で囲む必要があります。一般的には、-rオプションよりもveerunコマンドを使うほうが適切です。

-secure ProgramName

ProgramNameをソース・ファイルとして保護されたプログラムを作成します。次のコマンドは、ソース・ファイルと同じディレクトリにファイルmyProg.vxeを作成します。

vee -secure myProg

-stderr:filename ProgramName

filenameという名前の標準エラー・ログ・ファイルを作成し、ProgramNameのロードと実行の間にVEEで発生したエラー情報（エラーが発生した場合）を記録します。filenameにはディレクトリ・パスを含めることができます。

-stdout:filename ProgramName

filenameという名前の標準出力ファイルを作成し、ProgramNameのロードと実行の間にVEEから出力された情報（情報が出力された場合）を記録します。filenameにはディレクトリ・パスを含めることができます。

-veeio path to filename

VEEでは、複数のI/O構成ファイル（vee.io）を使用できます。このオプションでは、VEEを起動する際に使用するファイルを指定できます。

例:ファイル名を使ったWindows版VEEの起動

Windows版Agilent VEEを起動し、プログラムmyprog.veeを自動的に開く手順:

1. Windowsの[スタート]ボタンをクリックし、[ファイル名を指定して実行...]をクリックします。

2. vee myprog.veeと入力し、Enterキーを押します。ファイル名にスペースが含まれる場合は引用符で囲みます。

または

1. コマンド・プロンプト・ウィンドウを開きます。

2. start vee myprog.veeと入力し、Enterキーを押します。プログラムが現在のディレクトリにない場合は、パスを指定します。ファイル名にスペースが含まれる場合は引用符で囲みます。

例:-disallowcloseを使ったWindows版VEE RunTimeの起動

Windows版VEE RunTimeでプログラムmyprog.veeを実行し、実行ウィンドウを閉じられないようにする手順:

1. Windowsの[スタート]ボタンをクリックし、[ファイル名を指定して実行...]をクリックします。

2. veerun -disallowclose myprogと入力し、Enterキーを押します。ファイル名にスペースが含まれる場合は引用符で囲みます。

または

1. コマンド・プロンプト・ウィンドウを開きます。

2. start veerun -disallowclose myprogと入力し、Enterキーを押します。プログラムが現在のディレクトリにない場合は、パスを指定します。ファイル名にスペースが含まれる場合は引用符で囲みます。

関連項目

Windowsでアプリケーション・アイコンを作成するには、Agilent VEEを起動するには


Agilent VEEの対話型操作

このセクションでは、VEEのグラフィカル・プログラミング言語の使用法を説明します。 また、対応システム、マウスとメニューの使用法、ヘルプの利用方法、VEEウィンドウでの操作方法についても説明します。

対応システム

本バージョンのVEEは、次のオペレーティング・システムに対応しています。

Windows 2000 SP4以上、Windows XP SP2以上およびWindows Vista以上

以下の追加ソフトウェアが必要です。

Agilent IOライブラリ・スイート15.0以上またはNI Librariesバージョン3.0

マウスとメニュー

プルダウン・メニュー、ツールバー、マウスとキーボードで制御するダイアログ・ボックスなど、マウスとメニューを駆使したコンピュータのインタフェースについては、よくご存知と思います。VEEでは、このコンピュータのインタフェースを使用します。次は、マウスを使ってメニュー、アイコン、ボタン、オブジェクトを操作するときの一般的な手法です。

アイテムを「クリック」するには、マウス・ポインタを目的のアイテムに合わせて、マウスの左ボタンをすばやく押して離します。

アイテムを「ダブルクリック」するには、マウス・ポインタを目的のアイテムに合わせて、マウスの左ボタンを2回、すばやく続けてクリックします。

アイテムを「ドラッグ」するには、マウス・ポインタを目的のアイテムに合わせて、マウスの左ボタンを押したまま、アイテムを適切な位置まで移動します。次にマウスのボタンを離します。

注記

マウスの右ボタンはあまり使用しません。マウスの右ボタンをクリックする必要がある場合は、そのことを明記します。また、中央ボタンを備えたマウスもありますが、VEEでは中央ボタンを使用しません。

Agilent VEEウィンドウ

VEEをインストールして起動すると、下図のようなVEEウィンドウが表示されます。

次に、VEEウィンドウの各部について説明します。

画面の領域名 | 説明
タイトル・バー | ウィンドウの最上部の行には、VEEアイコン、ウィンドウ名、[最小化]ボタン、[最大化]ボタン、[閉じる]ボタンが表示されます。タイトル・バーをドラッグすると、ウィンドウが移動します。VEEアイコンをクリックすると、ウィンドウ・メニューが表示されます。
メニュー・バー | 2行目にはメニュー項目があり、それぞれVEEのコマンドまたはオブジェクトを提供します。
ツールバー | 3行目にはアイコンまたはボタンが並びます。 これらのボタンから、使用頻度が高いメニュー・コマンドに直接アクセスできます（ショートカット）（ボタン上にマウス・ポインタを置くと、そのボタンの機能が表示されます）。
作業領域 | メイン・ウィンドウ、UserObject編集ウィンドウ、UserFunction編集ウィンドウなど、オブジェクトを配置して結線するプログラミング（編集）ウィンドウの領域です。
プログラム・エクスプローラ | VEEウィンドウの左側の領域には、VEEプログラムの構造が表示されます。上隅には、現在のプログラム名がmyprog.veeまたはUntitledなどと表示されます。 プログラム・エクスプローラを使ってプログラミング・ウィンドウ間を移動できます。プログラム・エクスプローラのサイズを変更するには、右境界上でノーマル・ポインタが垂直分割線に変わるまでポインタを動かし、クリックして移動します。
メイン・ウィンドウ | VEEプログラムを開発して編集する作業領域を含むウィンドウです。UserObject編集ウィンドウなどのほかのプログラミング／編集ウィンドウも、ここに表示されます。
ステータス・バー | 一番下の行には、VEEの状態に関するメッセージが表示されます。 また、右隅には4つの状態インジケータが表示されます。インジケータは左から右に次の事柄を示しています。 実行モード プロファイラのステート プログラムが変更されたときにMODと表示 Webサーバがオン

ヘルプの利用

VEEは、VEE環境全体と、個々のオブジェクトおよびトピックについてのオンライン・ヘルプ・システムを提供します。また、コンピュータとオペレーティング・システムに付属するマニュアルを利用することもできます。PCのオンライン・ヘルプには、次の情報が記載されています。

  • メニュー・バー上のコマンドの選択方法

  • メニュー項目の選択方法と閉じ方

  • ツールバーの使用法

  • タイトル・バーとステータス・バーの理解

  • アイコンとボタンのクリック方法

  • ダイアログ・ボックスの扱い方

  • さまざまなウィンドウの扱い方

  • オンライン・ヘルプの使用法

まず[Help] [image] [Welcome] 画面から開始することをお勧めします。 この画面からVEEマルチメディア・チュートリアルにアクセスできます。[Welcome]画面を下に示します。

VEEのオンライン・ヘルプは、お使いのオペレーティング・システムに合わせて設計されています。[Help]をクリックすると、下のようなメニューが表示されます。[Help]メニューでは、目次と索引、チュートリアルがある[Welcome]メニューのほか、計測器ドライバ、Webサイト情報、サンプル、バージョン情報などが提供されます。

この入門トレーニングは、VEEのマニュアルを見なくても実行できます。 しかし、特定の機能や概念についてより詳しく知りたい場合は、製品のマニュアルを参照してください。特定のVEEトピックを検索するには、ヘルプ・システムを使用します。ヘルプ・システムでは、関連するトピックに「ジャンプ」することができます。

[Contents and Index]を選択すると、VEEヘルプが表示されます。

ヘルプの[目次]タブには、次のトピックがあります。

VEEの新機能 | 説明
「使用法」 | 基本的な操作方法を説明します。
「以下の項目についての説明」 | VEEの概念を説明します。
「Agilent VEEサンプル・プログラム・ガイド」 | VEEに搭載されているサンプル・プログラムの要約です。
「リファレンス」 | すべての関数およびオブジェクトに関するリファレンス情報を提供します。
「Agilent VEEサポートについて」 | VEEサポートの利用方法についての情報を提供します。
「Agilent VEE Pro Runtime製品のインストールと配布方法」 | VEE Pro RunTime環境の配布方法を説明します。

注記

選択したオブジェクトやダイアログ・ボックスについてのヘルプを簡単に表示するには、キーボードのF1キーを押します。また、オブジェクト・メニューの[Help]をクリックして、そのオブジェクトについての情報を得ることもできます。

プログラム開発時にオンライン・ヘルプの特定の機能を使用する方法については、オンライン・ヘルプの使用法を参照してください。


オブジェクトの操作

オブジェクトを操作するには

VEEプログラムは、接続されたオブジェクトで構成されます。プログラムを作成するには、Flow、Data、Display などのVEEメニューからオブジェクトを選択します。オブジェクトを接続するには、オブジェクトのピンにラインを結びます（ピンの詳細については、[ピンと端子について]を参照してください）。接続されたオブジェクトのグループでプログラムが作成されます。

このセクションでは、プログラム中のオブジェクトを選択して使用する方法を説明します。

1 VEEを起動します。Windowsで[スタート] [image]  [プログラム]  [image] [Agilent VEE Pro] をクリックします。

2 このセクションの説明に従ってオブジェクトを操作します。

作業領域へのオブジェクトの追加

適切なプルダウン・メニューを開き、目的のオブジェクトをクリックし、オブジェクトを作業領域内の適切な位置までドラッグし、クリックします（輪郭線が消え、オブジェクトが表示されます）。

1 例えば、Function Generatorオブジェクトを作業領域に追加するには、下の図に示すように、メニュー・バーから[Device] [image] [Virtual Source]  [image] [Function Generator] を選択します。オブジェクトの輪郭線が作業領域に表示されます。

注記

[Virtual Source]メニューの右側にある矢印は、サブメニューがあることを示します。メニュー項目名の後に続く3つのピリオドは、そのメニューを選択するとダイアログ・ボックスが表示されることを示します。例えば、[File] [image] [Save As...] はこのように動作します。

2 Function Generatorを作業領域の中心まで移動し、クリックしてオブジェクトを配置します。Function Generatorが表示されます。

作業領域にオブジェクトを配置したら、オブジェクトのタイトル・バーをドラッグしてオブジェクトを移動できます。 これは、ウィンドウを移動するときと同じ操作です。

注記

このオンライン・ヘルプでは、手順を説明するために簡略な記法を使用します。例えば、Function Generatorオブジェクトの選択は、次のように簡略化して表記します。
[Device] [image] [Virtual Source] [image] [Function Generator]

オブジェクトの表示の変更

VEEでは、オブジェクトは「アイコン・ビュー」または「オープン・ビュー」で表示されます。

オープン・ビュー アイコン・ビュー

アイコン・ビューは作業領域内のスペースを節約し、プログラムを読みやすくします。オープン・ビューではオブジェクトの詳細を表示し、プロパティと設定を編集できます。

1 オープン・ビューからアイコン・ビューに切り替えるには、[最小化] ボタン（オブジェクトのタイトル・バーの右端にある四角形）をクリックします。

2 オープン・ビューに戻るには、オブジェクトのアイコン・ビュー（オブジェクトの任意の位置）をダブルクリックします。

オブジェクトごとに構造やパーツは異なりますが、オープン・ビューではオブジェクトを編集でき、アイコン・ビューではスペースを節約できます。

注記

オブジェクト・メニューでも、[Minimize]と[Restore]を選択することができます。オブジェクト・メニューを表示するには、タイトル・バーの左端にあるオブジェクト・メニュー・ボタンをクリックするか、オブジェクト上でマウスの右ボタンをクリックします。

オブジェクト・メニューの選択

VEEのオブジェクトにはそれぞれオブジェクト・メニューがあり、オブジェクトに対して [Clone]、[Size]、[Move]、[Minimize] などの操作を実行できます。オブジェクトのほとんどが同様の属性を持っていますが、オブジェクトの機能によって違いがあります。

1 オブジェクト・メニューを選択するには、オブジェクト・メニュー・ボタンを1度だけクリックします（オブジェクト・メニューはすべて同じ方法で開くことができます）。オブジェクト・メニューが下に示すように表示されます（オブジェクト・メニュー・ボタンをダブルクリックしないでください。ダブルクリックすると、オブジェクトが削除されます）。

2 次に、いずれかのオブジェクト・メニュー項目をクリックして、目的の操作を実行します。メニューを閉じるには、メニュー以外の何もない領域をクリックします。

マウス・ポインタをオブジェクト上に置いてマウスの右ボタンをクリックしても、オブジェクト・メニューを選択できます。この操作は、オープン・ビューとアイコン・ビューのどちらでも実行できます。

オブジェクトの移動

1 Function Generatorオブジェクトを移動するには、オブジェクト・メニューで[Move]を選択します。 次にマウスの左ボタンをクリックし、押したままにします。オブジェクトの輪郭線が表示されます。

2 マウスのボタンを押したまま、輪郭線を新しい位置まで移動します。マウスのボタンを離すと、オブジェクトが新しい位置に移動します。

オブジェクトの移動は、次の方法でも行うことができます。

オブジェクトのオープン・ビューのタイトル領域をクリックし、オブジェクトを新しい位置までドラッグします。

オープン・ビューで表示されているオブジェクトの、ボタン、入力フィールド、ピン、端子、四隅（オブジェクトのサイズ変更に使用）以外の場所をクリックして、オブジェクトを新しい位置までドラッグします。

アイコン・ビューで表示されているオブジェクトの四隅近く（オブジェクトのサイズ変更に使用）以外の場所をクリックして、アイコンを新しい位置までドラッグします。

注記

VEEウィンドウ最下部のステータス・バーに表示されるオブジェクトの位置情報は、輪郭線の左上隅の位置をワークスペースの左上隅を基準としたX座標とY座標（ピクセル単位）で表したものです。オブジェクトの正確な位置を表示するには、オブジェクト上でマウスの左ボタンをクリックしてオブジェクトを選択し、マウスの左ボタンを押したままにします。ステータス・バーに位置が表示されます。オブジェクトを正確に配置する必要がある場合は、この情報を使用します。

オブジェクトの複製作成（クローン）

クローン 操作により、サイズや名前の変更などオブジェクトに対して行った変更内容も含めて、オブジェクトの正確な複製を作成できます。クローンは、コピー・アンド・ペースト操作のショートカットです。

1 オブジェクト・メニューを開き、[Clone]を選択します。複製されたオブジェクトの輪郭線が表示されます。

2 輪郭線を目的の位置まで移動し、クリックしてオブジェクトを配置します。複製されたオブジェクトが表示されますが、元のオブジェクトも残ります。下の図では、Function Generatorを1つ複製した後で、さらにオブジェクト・メニューからクローンを実行するコマンドが選択されています。

オブジェクトのコピー

この操作は、オブジェクトをクリップボードにコピーします。 コピーしたオブジェクトは、VEEまたはMS PaintやMS Wordなどのほかのアプリケーションにコピーできます。

オブジェクトをクリックして強調表示し、[Edit] [image]  [Copy]をクリックします。

-または-

オブジェクトをクリックしてオブジェクトを強調表示し、Ctrl+Cキーを押します。

オブジェクトの削除

作業領域からオブジェクトを削除するには、削除するオブジェクトのオブジェクト・メニューを開き、[Delete]をクリックします。たとえば、Function Generatorのオブジェクト・メニューを開いて[Delete]をクリックします。オブジェクトは作業領域から消え、バッファに保存されます。

オブジェクト・メニューを開き、[Delete]を選択します。

-または-

オブジェクトを選択（クリック）し、Ctrl+Xキーを押します。

-または-

マウス・カーソルをオブジェクト・メニュー・ボタンに合わせて、ダブルクリックします。

注記

注意すべきことがあります。オブジェクト・メニュー・ボタンをダブルクリックしてオブジェクトを不用意に削除してしまうことがよくあります。誤ってオブジェクトを削除してしまった場合は、ツールバーの[Undo]ボタン（または[Edit] [image] [Undo]）を使用します。 これにより、オブジェクトと接続がすべて復元されます。

オブジェクトの貼付け

コピーしたオブジェクトを作業領域に貼り付けるには、次の手順を実行します。

オブジェクトのクローン、コピー、削除（Ctrl-X）のいずれかを実行した後で、

[Edit]  [image] [Paste]をクリックします。オブジェクトの輪郭線が表示されます。オブジェクトを配置した後、クリックしてオブジェクトを離します。

-または-

Ctrl+Vキーを押します。

オブジェクトのサイズの変更

マウス・ポインタをオブジェクトの四隅のいずれかに置き、サイズ変更矢印が表示されたら、クリックして目的の大きさになるまでドラッグします。ボタンを離してサイズを変更します。下の図は、サイズ変更矢印でオブジェクトのサイズを変更しているところです。

-または-

オブジェクト・メニューを開き、[Size]をクリックします。マウス・ポインタが右下隅の角かっこの形になります。この角かっこを、サイズ変更後のオブジェクトの右下隅が位置する場所に移動し、クリックしてサイズを変更します。

オブジェクトの名前（タイトル）の変更

1 オブジェクト・メニューを開き、[Properties...]を選択します。プロパティ・ウィンドウが画面の左側に現われます。Titleプロパティを選択し、適切な値に変更します。

2 タイトル領域に新しいタイトルが表示されます。オブジェクトを最小化すると、アイコンに新しいタイトルが表示されます。

-または-

オブジェクトのタイトル・バーをダブルクリックして[Properties]ダイアログ・ボックスを直接開きます。

注記

標準的なキーボードとマウスによる編集テクニックを使用すると、時間を短縮できます。たとえば、[Properties]ダイアログ・ボックスの[Title]フィールドで、編集領域の一番左端でクリックすると、そこにカーソルが表示されます。これにより、既存のタイトルを削除せずに新しいテキストを追加できます。

オブジェクトの選択／選択解除

1 オブジェクトを選択するには、そのオブジェクトをクリックします。 オブジェクトに影が付きます。例えば、下の図ではFor Countオブジェクトが選択されています。

2 オブジェクトの選択を解除するには、マウス・ポインタを何もない領域に移動してクリックします。影が消えます。例えば、下の図ではFormulaオブジェクトは選択されていません。

注記

「選択する」という言葉はメニュー項目の選択にも用いられますが、文脈を見れば意味は明らかです。

複数オブジェクトの選択

オブジェクトをクリックして選択する場合、オブジェクトは1つしか選択できません。別のオブジェクトをクリックして選択すると、前のオブジェクトは選択解除されて影が消えます。複数のオブジェクトを選択し、選択したすべてのオブジェクトにまとめて[Delete]などの操作を実行するには、次のようにします。

Ctrl ボタンを押したまま、選択するオブジェクトのそれぞれをクリックします。選択したいオブジェクトがすべて強調表示されたら、Ctrl キーを離します。

-または-

Ctrlキーを押しながら、マウス・ボタンを押してドラッグし、選択したいオブジェクトの周りに長方形を描きます。選択されたオブジェクトに影が付きます。

すべてのオブジェクトの選択／選択解除

1 すべてのオブジェクトを選択するには、[Edit] [image] [Select All]を選択します（またはCtrl+Aキーを押します）。

2 すべてのオブジェクトの選択を解除するには、ウィンドウ内の何もない領域でクリックします。

複数オブジェクトのコピー

選択されたオブジェクトをコピーするには、どれかのオブジェクトの上にカーソルを置きます。Ctrlキーを押したままで、マウスの左ボタンを使って複数のオブジェクト（輪郭線）を目的の位置までドラッグします。目的の位置にそれぞれのオブジェクトの新しいインスタンスが表示されます。

-または-

または、[Edit] [image] [Copy]を使用して、選択されたオブジェクトをバッファにコピーします。[Paste]（[Edit]メニューまたはツールバー）をクリックし、オブジェクト（輪郭線）を目的の位置まで移動し、マウスの左ボタンをクリックします。下の図はコピー中のオブジェクトを示します。

注記

VEEでは、切り取ったオブジェクトやコピーしたオブジェクトは、クリップボードにも格納されます。これらはWindowsのクリップボードをサポートするほかのWindowsアプリケーションに貼り付けることができます。

オブジェクトの編集

VEEでオブジェクトを編集するにはいくつかの方法があります。表示される選択肢は編集メニューによって異なります。編集メニューまたは編集アイコンを選択するには、次のようにします。

VEEのメニュー・バー上で[Edit] をクリックして[Edit]メニューを表示し、実行する操作を選択します。[Edit]メニューのコマンドは、VEE全体で共通です。

-または-

VEEのツールバー上のアイコンをクリックします。VEEのツールバーには、[Cut]、[Copy]、[Paste]などの使用頻度が高い編集コマンドのアイコンが表示されます。

-または-

オブジェクトのオブジェクト・メニュー・ボタンをクリックしてオブジェクト・メニューを開き、実行する操作を選択します。オブジェクト・メニューには、[Properties]メニューなど、メインの[Edit]メニューには表示されないオブジェクト固有の編集操作が含まれます。オブジェクト・メニューのコマンドは、オブジェクトの種類によって異なります。例えば、[Device] [image] [Formula]オブジェクトと[I/O] [image] [To] [image] [File]オブジェクトのオブジェクト・メニューを比較してみてください。この2つのメニューには、それぞれのオブジェクトに固有の、異なる選択肢が表示されます。

-または-

マウス・ポインタを作業領域の何もないスペースに置き、マウスの右ボタンをクリックします。[Edit]ポップアップ・メニューが表示されます。

注記

アクティブでないメニュー項目には、アクティブな項目とは異なる影が付きます（淡色表示）。たとえば、[Edit]メニューの[Cut]、[Copy]、[Clone]操作は、オブジェクトが作業領域内で強調表示されないかぎり、アクティブなメニュー項目とは異なる影が付いて表示されます。

オブジェクト間のデータ・ラインの作成

1 次に示すように、一方のオブジェクトのデータ出力ピンの上またはそのすぐ外側でクリックし、次に、もう一方のオブジェクトのデータ入力ピンをクリックします（1つのピンから別のピンまで移動する間に、ポインタの下にラインが表示されます）。

2 カーソルを離すと、2つのオブジェクトの間にラインが引かれます。オブジェクトの位置を変更しても、オブジェクト間のラインは維持されます。

ピンの詳細については、[ピンと端子について]を参照してください。

オブジェクト間のデータ・ラインの削除

Shift+Ctrlキーを押したままで、削除するラインをクリックします。

-または-

[Edit]  [image] [Delete Line]を選択し、削除するラインをクリックします。

作業領域全体の移動

作業領域内に少なくとも1つのアイコンがあることを確認します。マウス・ポインタを作業領域の背景に合わせて、マウスの左ボタンを押したまま、作業領域を目的の方向へ移動します。

プログラムが作業領域より大きい場合は、下のようにスクロール・バーが表示されます。

注記

端子の近くでクリックすると、ライン（ワイヤ）が表示される場合があります。その場合は、ポインタを空き領域に移動してダブルクリックします。

作業領域のクリア

[Edit] [image] [Select All]をクリックし、ツールバーの[Cut]ボタンをクリックします。これにより、アクティブ・ウィンドウ内のすべてのオブジェクトが削除され、カット・バッファに格納されます。

-または-

[File] [image] [New],を選択するか、ツールバーの[New]ボタンをクリックします。VEEは変更を保存するかどうかを確認します。

-または-

オブジェクトをクリックしてアクティブにした後、ツールバーの[Cut]ボタンをクリックして、オブジェクトを1つずつクリアします。

デフォルト設定の変更

[Default Preferences]ダイアログ・ボックスで、VEE環境のデフォルト設定を変更できます。

ツールバーの[Default Preferences]ボタンをクリックします。

-または-

[File] [image] [Default Preferences]をクリックします。[Default Preferences]ダイアログ・ボックスが表示されます。

このダイアログ・ボックスにはタブがあり、編集するオプションを選択できます。

タブ名 | 説明
General | 先ほど示した方法で[Default Preferences]ダイアログ・ボックスを表示したとき、一番手前に表示されるデフォルトのタブです。[Environment]、[Execution Mode]などのパラメータ値を変更します。
Colors | VEE環境の色をカスタマイズします。
Fonts | VEE環境のフォントをカスタマイズします。
Number | 数のデフォルト書式を変更します。
Printing | プリンタに関するパラメータ値を設定します。
Web Server | 内蔵のWebサーバをオンにしてリモートのWebブラウザからプログラムのモニタとトラブルシューティングを実行できます。

詳細については、VEEメニュー・バーから[Help] [image] [Contents and Index] を選択してください。その後、「使用法」、「以下の項目についての説明」、「リファレンス」のいずれかを参照します。

関連項目

オブジェクトの動作の仕組み、 Agilent VEEプログラムの動作


ピンと端子について

VEEプログラムは、作業領域内のオブジェクトとそのオブジェクトを接続するラインで構成されます。オブジェクトを接続するラインは、各オブジェクトのピン間で接続されます。各オブジェクトにはいくつかのピンがあります。ここでは、Formulaオブジェクトを例に取ります。任意のオブジェクトが使用できます。

ピンの種類 | 説明
データ入力ピン | オブジェクトの左側にあるピン
データ出力ピン | オブジェクトの右側にあるピン
シーケンス入力ピン | オブジェクトの上辺にあるピン
シーケンス出力ピン | オブジェクトの下辺にあるピン

オブジェクト間でデータを伝達するには、データ入力ピンとデータ出力ピンを接続します。特に指定しないかぎり、ピンは上から下に実行されます。シーケンス・ピンによる接続はオプションです。シーケンス・ピンを使用すると、実行順序を制御できます。

詳細については、「オブジェクト内部のイベントの順番を追跡する」を参照してください。

オブジェクトをオープン・ビューで表示すると、データ入力／出力ピンは入力／出力端子として表示されます（オブジェクトがアイコン・ビューで表示されている場合は、アイコンをダブルクリックしてオープン・ビューに切り替えます）。端子は、端子名や伝達されるデータの種類と値などの詳細情報を持ちます。端子のラベルは、オブジェクトがオープン・ビューで表示されており、オブジェクトの[Show Terminals]オプションが選択されている場合にのみ表示されます（オブジェクト・メニューの[Properties...]を参照してください）。

たとえば、下の図には2つのFormulaオブジェクトがあります。左側のFormulaオブジェクトには、端子ラベルAとResultが表示されています。右側のFormulaオブジェクトは[Show Terminals]がオフになっているので、ラベルは表示されていません。

[Show Terminals]がオン [Show Terminals]がオフ

[Show Terminals]オプションのオン／オフを切り替えるには、オブジェクト・メニューから[Properties]を選択します。プロパティ・ウィンドウが画面の左側に現われます。プロパティ[Show Terminals]を選択し、Trueに設定します。

プロパティを選択し、[Show Terminals]をFalseに設定します。再びプロパティを選択し、[Show Terminals]をTrueに設定します。

端子の追加

オブジェクトに端子を追加できます。たとえば、Formulaオブジェクトに2番目のデータ入力端子を追加できます。

オブジェクト・メニューを開き、[Add Terminal] [image] [Data Input]を選択します。

-または-

[Show Terminals]がオンの状態で、マウス・ポインタを「端子領域」（オープン・ビュー・オブジェクトの左側の余白）に置いて、Ctrl+Aを押します（CtrlキーとAキーを同時に押します）。

下の図に、データ入力端子を追加するために開かれたFormulaオブジェクト・メニューと、2番目の端子がすでに追加されている別のFormulaオブジェクトを示します。新しい端子にはラベル「B」が付けられています。データ入力が計測器ドライバのような特定の機能に結び付けられている場合は、その機能のメニュー名が付けられます。それ以外の場合、端子にはA、B、Cなどの名前が付けられます。 .

端子情報の編集

端子についての情報を表示するには、ラベル領域をダブルクリックします。たとえば、Bをダブルクリックすると、ダイアログ・ボックスが表示されます。

これで、端子を編集できます。ダイアログ・ボックスには3種類のフィールドがあります。

フィールドの種類 | 説明
入力フィールド | 背景が白く矢印の付いていないフィールドです。クリックすると入力フィールドになります。たとえば、[Name]フィールドのBをクリックすると、端子の名前を変更できます。
ステータス・フィールド | 灰色の背景のフィールドで、編集できません。たとえば、[Mode]フィールドは編集できません。
選択フィールド | 背景が白で、右側に矢印が付いているフィールドです。フィールドまたは矢印をクリックするとドロップダウン・リストが表示されます。たとえば、[Required Type]フィールドのAny（または矢印）をクリックすると、下のようなリストが表示され、リストをクリックすることによって別のデータ型を選択できます。

データ入力端子にAny以外のデータ型を選択すると、端子は、指定したデータ型またはその型に変換できるデータだけを受け入れるようになります。通常は、[Required Type]および[Required Shape]フィールドをAnyに設定しておくことをお勧めします。詳細については、VEEメニュー・バーで [Help] [image] [Contents and Index]を選択してください。その後、 [使用法]、[以下の項目についての説明]、[リファレンス]のいずれかを参照します。

端子の削除

オブジェクト・メニューを開き、[Delete Terminal] [image] [Input...]または[Delete Terminal] [image] [Output]を選択し、削除する入力または出力を選択し、[OK]をクリックします。たとえば、下の図は、[Delete Terminal] [image] [Input....]を選択した場合に表示されるダイアログ・ボックスです。

-または-

マウス・ポインタを端子の上に置き、CTRL+Dキーを押します。

端子を削除しないことを決めた場合は、タスクバーから[Undo]ボタンを選択します。

関連項目

オブジェクトの接続によるプログラムの作成


オブジェクトのメニューの位置を探す

オブジェクトのメニューの位置を探すには

オブジェクトのメニュー内での位置を探して、そのオブジェクトについての情報を表示するには、[Help] => [Contents and Index]を選択し、[Index] タブをクリックしてオブジェクト名を入力し、[Display]をクリックします。

たとえば、[Help] => [Contents and Index]を選択して、[Index] タブをクリックし、「Collector」と入力します。[Display]をクリックすると、Collectorオブジェクトについてのヘルプのトピックが表示されます。


ツールバーをカスタマイズするには

VEEツールバーをカスタマイズするには

Agilent VEE統合開発環境（IDE）では、ツールバーの作成／削除や、ツールバーのレイアウト／位置／内容の変更が可能です。ツールバーのボタンを追加／削除したり、ボタンの表示スタイルを変更したりすることもできます。

新規ツールバーの作成

新規ツールバーを作成するには

1. ツールバーを右クリックするか、VEEメニュー・バーで[Tools]メニューを開きます。

2. [Tools]メニューで[Customize...]を選択します。

3. [Customize]ダイアログ・ボックスで[Toolbars]タブを選択します。

4. [New]を選択します。

5. [New Toolbar]ダイアログ・ボックスで、ツールバーの名前を入力します。

6. [OK]を選択します。

ツールバーにコマンド・ボタンを追加するには

1. ツールバーを右クリックするか、VEEメニュー・バーで[Tools]メニューを開きます。

2. [Tools]メニューで[Customize...]を選択します。

3. [Customize]ダイアログ・ボックスで、[Commands]タブを選択します。

4. カテゴリを選択し、コマンドをこのダイアログ・ボックスからツールバーにドラッグします。

ツールバー・ボタンのカスタマイズ

ツールバー・ボタンの名前、イメージ、表示スタイルなどのプロパティをカスタマイズできます。

ツールバー・ボタンをカスタマイズするには

1. ツールバーを右クリックするか、VEEメニュー・バーで[Tools]メニューを開きます。

2. [Tools]メニューで[Customize...]を選択します。

3. [Customize]ダイアログ・ボックスで、[Commands]タブを選択します。

4. ツールバーでカスタマイズしたいツールバー・ボタンを選択します。

5. [Customize]ダイアログ・ボックスの[Command]タブにある[Modify Selection]ボタンをクリックして、 メニュー・リストを開きます。

6. リストから目的のコマンドを選択します。

リストで[Delete]を選択すると、ツールバーからボタンを削除できます。

注記

[Customize]ダイアログ・ボックスを使って、メニューをカスタマイズすることもできます。プロセスはツールバー・ボタンのカスタマイズと同じですが、ステップ4でツールバー・ボタンの代わりにメニュー項目を選択する点だけが異なります。

ツールバーの追加／削除

1. ツールバーを右クリックするか、VEEメニュー・バーで[Tools]メニューを開きます。

2. ツールバーのチェックをオン／オフして追加または削除します。

関連項目

Agilent VEEメニューをカスタマイズするには、ツール・ウィンドウを整列／ドッキングするには


VEEメニューをカスタマイズするには

VEE開発環境のメニューはカスタマイズできます。ファイルcustomMenu.mnuに、頻繁に使用する特殊なオブジェクトや関数に対する項目をメニューに追加する方法が説明されています。また、新しい組込み関数help()を使って、ユーザが開発したプログラムに対するカスタムHelp項目へのリンクを追加する方法も説明されています。

ファイルcustomMenu.mnuは、VEEインストール・ディレクトリのlibの下にあります。これはASCIIテキスト・エディタで開くことができます。

関連項目

help()、VEEツールバーをカスタマイズするには、ツール・ウィンドウを整列／ドッキングするには


ツール・ウィンドウを整列／ドッキングするには

IDEでツール・ウィンドウを整列するには、次のようなさまざまなオプションがあります。

  • IDEの枠の端にツール・ウィンドウをドッキングします。

  • IDEの端に沿ってツール・ウィンドウを隠します。

  • ウィンドウの配置をデフォルトのレイアウトにリセットします。

Agilent VEEのツール・ウィンドウには、[Function & Object Browser]ウィンドウ、[Instrument Manager]ウィンドウ、[Program Explorer]ウィンドウ、[Properties]ウィンドウ、[Output]ウィンドウ、[Minimap]ウィンドウ、[Watch]ウィンドウ、Call Stack、Profilerがあります。

ツール・ウィンドウをドッキングするには

ツール・ウィンドウがドッキング可能な場合、IDEの枠の1つの辺に結合することができます。ツール・ウィンドウを現在の位置からIDE内の別の位置にドラッグする際には、ガイドの菱形が表示されます。下の図を参照してください。赤い正方形に囲まれた4つの青い長方形がガイドの菱形です。

ガイドの菱形を使うと、ツール・ウィンドウをIDEの四辺のどれかに簡単に再ドッキングできます。ツール・ウィンドウがドッキングされていないかドッキング不可の場合、ウィンドウは他のウィンドウの上にフローティングします。フローティングしているウィンドウは、Agilent VEEワークスペースの外に移動できます。

ツール・ウィンドウをドッキングするには

ドッキングしたいツール・ウィンドウをクリックしてフォーカスを設定します。

ツール・ウィンドウのタイトル・バーを右クリックして[Window]メニューを開きます。

[Window]メニューで[Dockable]をクリックします。

ツール・ウィンドウを現在の位置からIDEの中央付近へドラッグします。

ガイドの菱形が表示されます。菱形の4つの矢印は、IDEの四辺を指しています。

ドラッグしているウィンドウがドッキング可能な位置に達したら、ガイドの菱形の対応する部分にポインタを移動します。ウィンドウの輪郭線が指定した領域に表示されます。

指定した位置にウィンドウをドッキングするには、マウス・ボタンを離します。

例えば、Program ExplorerがIDEの右端にドッキングされていて、左端にドッキングし直したい場合、Program ExplorerをIDEの中央付近にドラッグし、ガイドの菱形の左側にポインタを移動し、マウス・ボタンを離します。

ヒント

ドッキング可能なウィンドウを移動するときにスナップさせたくない場合は、CTRLを押しながらドラッグします。

ツール・ウィンドウを隠すには

ツール・ウィンドウは、「自動的に隠す」機能をサポートします。「自動的に隠す」機能を使うと、使用していないときはIDEの端に沿ってツール・ウィンドウを最小化することにより、一度に表示できるコードを増やすことができます。

「自動的に隠す」機能をオンにするには

隠したいウィンドウをクリックしてフォーカスを設定します。

ツール・ウィンドウのタイトル・バーを右クリックして[Window]メニューを開きます。

[Window]メニューで[Auto-Hide]をクリックします。

- または -

ウィンドウのタイトル・バーの画鋲アイコン [image] をクリックします。

自動的に隠すウィンドウからフォーカスが外れると、ウィンドウは自動的にIDEの端のタブ表示に戻ります。ウィンドウが自動的に隠されているときには、ウィンドウの名前とアイコンがIDEの端のタブに表示されます。自動的に隠されているウィンドウを表示するには、ポインタをタブの上に移動します。ウィンドウは自動的に表示され、使用可能になります。

「自動的に隠す」機能をオフにするには

常に表示したいウィンドウをクリックしてフォーカスを設定します。

ツール・ウィンドウのタイトル・バーを右クリックして[Window]メニューを開きます。

[Window]メニューで、[Dockable]/[Hide]をクリックしてチェック・マークを消します。

- または -

ウィンドウのタイトル・バーの画鋲アイコン [image] をクリックします。

ヒント

「自動的に隠す」機能がオンになっているウィンドウは、ウィンドウにフォーカスが設定されると一時的に表示されます。ウィンドウを再び隠すには、現在のウィンドウの外部の項目を選択します。フォーカスを失ったウィンドウは自動的に隠れます。

ツール・ウィンドウのレイアウトをリセットするには

IDEをVEEの出荷時のデフォルトIDEレイアウトに戻すには、[Window] => [Reset Tool Bar / Window Layout]コマンドを使用します。このコマンドを実行すると、次の動作が実行されます。

  • すべてのツールバーとウィンドウが、デフォルトの位置に移動されます。

  • デフォルトのIDEレイアウトで閉じられているツールバーとウィンドウはコマンドによって閉じられます。

  • デフォルトのIDEレイアウトで開かれているツールバーとウィンドウはコマンドによって開かれます。

ユーザのツール・バー／ウィンドウ・レイアウトを保存／ロードするには

現在のIDEレイアウトを保存するには、[Window] => [Save Tool Bar / Window Layout]コマンドを選択します。保存したIDEレイアウトをロードするには、[Window] => [Load Tool Bar / Window Layout]コマンドを使用します。

関連項目

VEEメニューをカスタマイズするには、VEEツールバーをカスタマイズするには


VEEサンプル・ファイルを開くには

サンプル・プログラム・ファイルを開くには

ヒント

VEE Helpの以下の項目には、サンプル・プログラムの説明と、プログラムを新しいVEEウィンドウにロードするためのリンクが記載されています。

VEEサンプル・プログラム・ガイド

Agilent VEE

VEEにはいくつかのサンプル・プログラムが付属しています。これらのサンプルは、 C:\Program Files\Agilent\VEE Pro 8.5\examplesの下のサブディレクトリにあります。
例えば、VEEでMATLAB Scriptを使用するためのサンプルは、次のサブディレクトリにあります。

C:\Program Files\Agilent\VEE Pro 8.5\examples\MATLAB

サンプルを含めて任意のプログラム・ファイルを開くには、VEEツールバーの[Open]ボタンをクリックします。ただし、便宜のために、Helpからもサンプル・プログラムを開くことができます。

1. [Help] [image] [Open Example]を選択します。[Open File]ダイアログ・ボックスがサンプル・ディレクトリを対象として表示されます。

2. サブディレクトリ名をダブルクリックします。

3. 開きたいサンプル・ファイルのファイル名をクリックし、[Open]をクリックします。


VEEプログラム・ファイルを開くには

1. VEEツールバーの[Open]ボタンをクリックします。[Open File]ダイアログ・ボックスが表示されます。

[Open File]ダイアログ・ボックスは、プログラム・ファイルをデフォルト・ディレクトリC:\Documents and Settings\[your username]\My Documents\VEE Programsで検索します（デフォルトでは、[Save]ボタンをクリックするとプログラムはこのディレクトリに保存されます）

[Open]ボタン

[Save]ボタン

2. 開きたいプログラム・ファイルのファイル名をクリックし、[Open]をクリックします。または、ファイル名を[File name]入力フィールドに入力して[Open]をクリックします。


ライブラリ・ファイルからオブジェクトやプログラムをマージするには

VEEにはいくつかのライブラリ・オブジェクト（作成済みのUserObject）と豊富なライブラリ・プログラムが用意されており、ユーザのVEEプログラムにマージできます。

1. [File] [image] [Merge]を選択します。[Merge]ダイアログ・ボックスが表示されます。

デフォルトでは、[Merge]ダイアログ・ボックスはライブラリ・オブジェクトとプログラムを
C:\Program Files\Agilent\VEE Pro 8.5\libディレクトリで検索します。
ディレクトリを変更すれば、任意のVEEプログラム・ファイルを作業領域にマージできます。

2. 開きたいライブラリ・ファイルのファイル名をクリックし、[Open]をクリックします。オブジェクトがワークスペースにマージされます。このオブジェクトは他のVEEオブジェクトと同様にプログラムに接続できます。


VEEプログラムを開始するには

Agilent VEEには、プログラムを実行するためのいくつかの実行モードがあります。VEE 3、VEE 4、VEE 5、VEE 6、VEE 8モードです。モードの設定にはDefault Preferencesを使用します。VEE 8.0で作成されたプログラムは、デフォルトではVEE 8実行モードで動作します。VEE 7.XまたはVEE 6.0で作成されたプログラムは、デフォルトではVEE 6実行モードで動作します。VEE 5.0で作成されたプログラムは、デフォルトではVEE 5実行モードで動作します。VEE 4.xで作成されたプログラムは、デフォルトではVEE 4実行モードで動作します。それより前のプログラムはVEE 3実行モードで動作します。古いプログラムを新しいモードで実行することはできますが、予期したとおりに動作せず、変更が必要になる可能性があります。VEE 3モードのプログラムをVEE 5以上のモードで実行する場合は、まずVEE 4モードで正しく動作するように必要に応じて変更する必要があります。

VEEプログラムのすべてのスレッドを含むプログラム全体を開始するには、VEEツールバーの[Run]ボタンを押します。

[Run]ボタン

作業領域のすべてのスレッドが、Startオブジェクトがあるかどうかに関わらず開始されます。

プログラムの個々のスレッドを独立に開始したい場合は、そのスレッドにStartオブジェクト（Flowメニューの下）を追加します。Startオブジェクトのボタンをクリックすると、Startオブジェクトを含むスレッドだけが開始されます。

スレッドにフィードバックがある場合、スレッドのフィードバック・サイクル内にJunctionオブジェクトがないと、VEE 4以上の実行モードでは動作しません。これは、Junctionオブジェクトが必要な唯一の場合です。フィードバック付きのスレッドにJunctionオブジェクトがないプログラムを実行しようとすると、エラーが報告されます。

例:それぞれStartオブジェクトを持つ2つのスレッド

上のスレッドだけを実行したい場合は、そのStartボタンをクリックします。スレッドが動作し、図のようにAlphaNumericオブジェクトに"Now is the time"と表示します。しかし、下のスレッドは動作しません。

下のスレッドのStartをクリックすると、このスレッドが動作しますが、上のスレッドは動作しません。

Runボタンをクリックすると、プログラムの2つのスレッドがともに実行されます。それぞれのスレッドで、伝達はStartオブジェクトから始まります。

ショートカット

キーボードでCtrl+Gを押すと、VEEプログラムが実行されます。

関連項目

Default Preferences


VEEプログラム内で分岐するには

VEEプログラムで実行フローを分岐するには、[Flow]メニューにあるIf/Then/ElseまたはConditional [image] オブジェクトを使用します。

If/Then/Elseオブジェクトを使用して条件分岐を作成するには

1. If/Then/Elseオブジェクトを（[Flow]メニューから）作業領域に追加します。

2. 必要に応じて条件テスト式を変更します。例えば、「0..5以上、0.6未満」という範囲内に値があるかどうかをテストするには、.5<=A AND A<.6という式を使用します（If/Then/Elseの式フィールドでは、VEEでサポートされるすべての論理／関係演算子が使用でき、UserFunctionを呼び出したりグローバル変数を参照したりすることもできます）。

3. 新しい式にデータ入力端子が必要な場合は追加します。デフォルトでは、データ入力端子は1つだけ（A）です。値AとBをテストしたい場合（例、A<=B）、Bという名前のデータ入力端子を追加します。

4. テストするデータのソースをデータ入力端子に接続します。

5. 最後に、ThenおよびElse出力端子を、それぞれの場合にアクティブにしたいプログラムの異なるオブジェクトまたはサブスレッドに接続します。

例:If/Then/Elseの使用

Random Numberオブジェクトから出力された値は、式.5<=A AND A<.6でテストされます。値が指定された範囲内にある場合、Then出力端子が上のAlphaNumericオブジェクトをアクティブにし、上の図のように乱数が表示されます。値が指定された範囲内にない場合、Else出力端子が下のAlphaNumericオブジェクトをアクティブにし、Try Againが表示されます。この例は単純ですが、ThenおよびElse端子はあらゆる種類のプログラム・スレッドをアクティブにするために使用できます。この例は、manual01.veeとして保存されています。 このプログラムはmanualサンプル・ディレクトリにあります（[Help] [image] [OpenExample]）。

Conditionalオブジェクトを使用するには

[Flow] [image] [Conditional] [image] の下のオブジェクト（If A == B、If A ~= B、If A != B、If A < B、If A > B、If A <= B、If A >= B）は、実際には定義済みのIf/Then/Elseオブジェクトです。これらには、2つのデータ入力端子（AとB）があり、Aの値をBの値と比較する定義済みのテストを実行します。ThenおよびElse出力端子は、If/Then/Elseオブジェクトの場合と同じ動作をします。If/Then/Elseオブジェクトと同様に、端子を追加または削除したり、式を変更したりすることもできます。例えば、If A == BオブジェクトにC端子を追加して、テストをA == B OR B <= Cに変更することができます。

例:Else If条件の追加

If/Then/ElseおよびConditionalオブジェクトには、Else If条件と呼ばれるもう1つの機能があります。1つまたは複数のElse If条件を追加できます（オブジェクト・メニュー [image] [Add Else/If]）。各Else If条件は、前の条件が満たされなかった場合にテストされます。例えば、次のIf/Then/Elseオブジェクトには2つのElse If条件があります。

このオブジェクトは次のように動作します。

1. 式0<=A AND A<10が評価され、式が真の場合は結果がThen端子に出力されます（式が真になるのは、0でない値に評価された場合です）。

2. それ以外の場合、式A<20が評価され、式が真の場合は結果が対応するElse If端子に出力されます。

3. A<20が偽の場合、式A<30が評価され、A<30が真の場合は結果が対応するElse If端子に出力されます。式が偽の場合、結果がElse端子に出力されます。

関連項目

If/Then/Else


VEEプログラムの一部をループするには

以下のリストにある繰り返しオブジェクトを使って、VEEプログラムの一部をループ（繰り返し）することができます。これらのオブジェクトから開始されるループ中には、NextおよびBreakオブジェクトを含めることができます。これらはすべて[Flow] [image] [Repeat]メニューの下にあります。

この下にプログラミング例があります。

繰り返しオブジェクト一覧

For Count

カウントを出力、0から開始、入力フィールドで指定された回数だけ繰り返し。デフォルトは10で、カウントは0から9まで10回繰り返されます。

For Range

値Fromから開始し、繰り返しのたびにStepの値だけ増加する値をデータ出力ピンに繰り返し出力します。For Rangeは、Stepが正の場合は出力値がThruの値より大きくなるまで、Stepが負の場合は出力値がThruの値より小さくなるまで繰り返します。

For Log Range

For Rangeに似ていますが、対数スケールを使用します。最初の出力値はFromですが、n番目の値はFrom*exp10(n/(/Dec))です。For Log Rangeは、/Decが正の場合は出力値がThruの値より大きくなるまで、/Decが負の場合は出力値がThruの値より小さくなるまで繰り返します。

For Each

VEE配列サポートとしては、For Eachステートメントは、任意の数（1～10）の次元、任意の次元サイズ、任意の型のVEE配列を処理します。これはすべてのExecModeで動作します。COMサポートとしては、For Eachステートメントは列挙またはループ可能な任意のCOM（ActiveX）オブジェクトを処理します。この型のオブジェクトには通常、コレクションであることを示すために"Count"プロパティと"Item()"メソッドがありますが、厳密に言うとこれは必須ではありません。COM/ActiveXはExecMode 5以上で動作します。.NETサポートとしては、For Eachステートメントは列挙またはループ可能な任意の.NETオブジェクトオブジェクトを処理します。例えばStringCollectionなどです。この型のオブジェクトにも通常、コレクションであることを示すために"Count"プロパティと"Item()"メソッドがありますが、厳密に言うとこれは必須ではありません。.NETオブジェクトはExecMode 6/7以上で動作します。

Until Break

スレッド内でBreakオブジェクトが動作するまでデータ出力ピンを連続的にアクティブにします。

On Cycle

スレッド内でBreakオブジェクトが動作するまで、現在時刻の値を周期的に（デフォルトの周期は1秒）出力します。

Next

ループにただちに次の反復を開始させます。

Break

ループをただちに終了させます。

例:For Countループ

次の例で、For CountオブジェクトはRandom Numberオブジェクトを10回動作させます。For Countオブジェクトのシーケンス出力ピンは、For Countの実行が終了したこと（ループの繰り返しが終了したこと）を示します。Collectorは、10個のランダムな値を配列に収集しますが、For Countのシーケンス出力ピンがCollectorのXEQピンをアクティブにするまで配列を出力しません。

例:測定値を1秒ごとに読み取る

次の例では、On Cycleオブジェクトが1秒ごとに動作し、Agilent 34401Aマルチメータ用の計測器パネル・オブジェクトに測定値を毎秒出力させます。Agilent 34401Aに対してライブ・モードがOFFになっているので、このプログラムはシミュレートされた測定値を生成します。各測定値は、Logging AlphaNumeric表示とIf/Then/Elseオブジェクトに出力されます。If/Then/Elseオブジェクトは、7以上の最初の値でBreakオブジェクトを動作させ、ループを停止させます。Logging AlphaNumeric表示からIf/Then/Elseオブジェクトへのシーケンス出力ラインにより、ループが停止する前に最後の測定値が表示されます。AlphaNumericオブジェクトはTime Stampフォーマットに設定されており、各測定値の取得時刻を表示します。この例はmanual02.veeとして保存されています。 このプログラムはmanualサンプル・ディレクトリにあります（[Help] [image] [Open Example]）。

例:並列ループとネストされたループ

次の例では、並行して動作する並列ループと、ネストされたループがプログラムに含まれています。Thread 1とThread 2は並列ループです。Subthread 1aはThread 1の中にネストされています。複数レベルのネストが可能です。

ループを使用する際には、以下の条件を避けてください。これらは伝達の矛盾を生じ、予期しない結果につながるおそれがあります。このようなプログラムをVEE 4以上の実行モードで実行すると、エラーが発生します。

1. 並列ループを交差接続しないでください。

2. ループを（JCTやMathオブジェクトなどで）併合しないでください。

関連項目

manual03.vee


VEEプログラムを停止するには

VEEプログラムを開始すると、プログラムは伝達規則に従って終了するまで動作した後、停止します。

伝達が終了する前にVEEプログラムを停止する方法

VEEツールバーの[Stop]ボタンをクリックします。

[Stop]ボタン

プログラムを一時的に停止するには[Pause]ボタンをクリックします。その後、[Resume]ボタンをクリックしてプログラムを継続するか、[Stop]ボタンをクリックして停止します。

[Pause]ボタン

[Resume]ボタン

StopおよびExit Threadオブジェクトを使用します。StopまたはExit Threadオブジェクトをプログラムに入れることにより、プログラムをいつ終了するかを決めることができます。例えば、If/Then/Elseオブジェクトを使ってStopまたはExit Threadオブジェクトに条件分岐することができます。これらのオブジェクトが動作した場合、プログラムは[Stop]ボタンを押した場合と同様に永久的に停止します。

Raise Errorオブジェクトを使用します。Raise Errorオブジェクトを使うと、エラーを発生させてプログラムを休止することができます。

ショートカット

キーボードでCtrl+Pを押すと、VEEプログラムが休止（停止ではなく）されます。

キーボードでCtrl+Gを押すと、休止中のVEEプログラムが再開されます。

注記

VEE 4以上の実行モードでは、Default PreferencesでDisable Debug Featuresがオンになっている場合、Pauseコマンドは使用できなくなります。

関連項目

Default Preferences Exit Thread Stop エラーをトラップするには


デフォルトの色を変更するには

プログラム全体に対してデフォルトの色を変更できます。

1. VEEツールバーで[Default Preferences]ボタンをクリックし、ダイアログ・ボックスで[Colors]タブを選択します。

[Default Preferences]ボタン

2. [Screen Element]フィールドまたはその矢印をクリックします。ドロップダウン・リストに画面要素の選択肢が表示されます。

3. リスト中の変更したい画面要素をクリックします。ドロップダウン・リストが消え、その画面要素の現在の色が[Color Value]フィールドに表示されます。

4. [Color Value]ボタンをクリックします。[Select Color]ダイアログ・ボックスに、使用可能な色のパレットが表示されます。画面要素に対して現在選択されている色が、パレット中で破線の輪郭で強調表示されます。この色は[Preview]領域にも表示されます。

5. 新しい色を選択するには、パレットで別の色をクリックし、[OK]をクリックして[Default Preferences]ダイアログ・ボックスに戻ります。

6. 必要なすべての画面要素の色を選択してから、選択を保存します。

7. 画面要素に対する色の選択を保存する方法を選択します。

a. 選択した色を永久的なデフォルト色として保存するには、[Save]をクリックします。これにより、新しいデフォルト色がvee.rcファイルに保存されます。この新しい色が（再び変更するまで）今後のVEEセッションのデフォルトとなります。

b. 新しい設定を現在のVEEセッションだけで（[File] [image] [New]、[Open]、[Exit]を選択するまで）使用するには、[OK]をクリックします。

c. 新しく選択した色を使用し、VEEプログラムに保存するには、[OK]をクリックし、[File] [image] [Save As…]を選択して、[Options]領域で[Save colors and fonts with program]ボックスをチェックします。

d. 新しい色の選択をキャンセルするには、[Cancel]をクリックします。

e. 現在の設定を破棄し、デフォルト・ファイルvee.rcの設定に戻すには、[Reset]をクリックします。

関連項目

Default Preferences、色の使用、色を選択する方法、To Change Default Color Coding Pattern


カラー・コードを使用するには

カラー・コードを使うと、Agilent VEEプログラムのさまざまなスタイルを指定でき、プログラムの読み書きを容易にできます。

カラー・コードをオン／オフするには

カラー・コードはデフォルトでオンになっています。これはいつでもオフにできます。カラー・コードをオフにするには、

  1. [File]メニューで、[Default Preference]をクリックします。

  2. [Default Preference]ダイアログ・ボックスで、[Color]タブをクリックします。

  3. [Color]タブで[Enable Color Coding]のチェックを外します。下の図を参照してください。

カラー・コードをオンにすると、Agilent VEEは、詳細ビュー・オブジェクトのタイトル・バーとアイコン・ビュー・オブジェクトの背景を、現在のカラー・コード・テーマに基づいてカラー表示します。Agilent VEEは、パネル・ビューと詳細ビューの両方のオブジェクトをカラー表示します。

カラー・コード・テーマを変更するか、[Enable Color Coding]をチェックしてカラー・コード機能をオンにすると、Agilent VEEは現在開いているVEEプログラムを自動的に更新します。[Enable Color Coding]のチェックを外すと、VEEは通常の青のテーマを使ってオブジェクトのカラーを表示します。

ユーザは、Agilent VEEに付属するデフォルトのカラー・コード・テーマを使用することも、独自のテーマを設定することもできます。詳細については、カラー・コード・テーマを変更するにはを参照してください。

カラー・コード・テーマをインポート／エクスポートするには

カラー・コード・テーマを他の開発者と共有するには、カラー・コード・テーマをエクスポートまたはインポートする必要があります。カラー・コード・テーマをエクスポートすると、テーマはXMLファイルに保存され、他のユーザはそのXMLファイルをインポートすることでそのテーマを使用できます。XMLファイルの名前と保存場所はユーザが指定できます。

カラー・コード・テーマをエクスポートまたはインポートするには

  1. [File]メニューで[Default Preferences]をクリックします。

  2. [Default Preferences]ダイアログ・ボックスで[Color]タブをクリックします。

  3. [Color]タブで、[Import Color Coding...]ボタンまたは[Export Color Coding...]ボタンをクリックします。

  4. 開かれたダイアログ・ボックスで、インポートする構成ファイルを選択するか、構成ファイルを保存するディレクトリを選択します。

関連項目

カラー・コード・テーマを変更するには、カラーの使用、カラーを選択する方法、デフォルト・カラーを変更するには


オブジェクトの色を変更するには

すべてのオブジェクトにはPropertiesウィンドウがあり、オブジェクト・メニューから表示できます。特定のオブジェクトの色を変更するには、このウィンドウのAppearanceカテゴリを使用します。

1. マウスの右ボタンでオブジェクトをクリックして、オブジェクト・メニューを開きます。オブジェクト・メニューから[Properties]を選択し、PropertiesウィンドウからAppearanceカテゴリを選択します。

変更できる色は、オブジェクトのクラスによって異なります。通常は、オブジェクトのタイトル・バーとオープン・ビューの背景とテキストを変更できます。

2. 変更したいプロパティを選択します。

3. 新しい色を選択するには、リスト中の別の色をクリックします。

4. 新しく選択した色が、デフォルトの色の代わりにオブジェクトに表示されます。変更は選択したオブジェクトだけに適用され、プログラムとともに保存されます。

ショートカット

オブジェクトのタイトル・バーをダブルクリックするとPropertiesウィンドウが開きます。

注記

メイン・ウィンドウ、UserObject、UserFunctionのパネル・ビューの色を変更するには、それぞれのオブジェクト・メニューの[Properties]を使用します。色を変更するには、各コンテキストのパネル・ビューが存在する必要があります。メイン・ウィンドウのパネルの色は、プログラムが実行されるときの実行ウィンドウにも適用されます。UserObjectおよびUserFunctionのパネル・ビューの色を設定するには、それぞれの編集ウィンドウが開いている必要があります。パネル・ビューの作成の詳細については、VEE ヘルプの[使用法]の下の[オペレータ・インタフェースの構築]を参照してください。

関連項目

色の使用、色を選択する方法、To Change Default Color Coding Pattern


カラー・コード・テーマを変更するには

1. カラーを変更したいグループを選択し、隣にあるカラー正方形をクリックするか、

グループ名を右クリックし、[Change Color...]を選択します。

[Select Color]ダイアログ・ボックスが表示されます。

2. 目的のカラーを選択します。

3. [Select Color]ダイアログ・ボックスで[OK]ボタンをクリックします。

4. グループ名を右クリックし、[Apply to Sub Nodes]を選択します。

5. 必要に応じて他のグループのカラーを変更します。

6. [Change Color Coding Theme]ダイアログ・ボックスで[OK]ボタンをクリックします。

1. [Change Color Coding Theme]ダイアログ・ボックスで、プラス記号をクリックしてリストを展開し、 カラーを変更したいオブジェクトを選択します。

2. オブジェクトの隣の正方形をクリックするか、

オブジェクト名を右クリックし、[Change Color...]を選択します。

[Select Color]ダイアログ・ボックスが表示されます。

3. 目的のカラーを選択します。

4. [Select Color]ダイアログ・ボックスで[OK]ボタンをクリックします。

5. 必要に応じて他のオブジェクトのカラーを変更します。

6. [Change Color Coding Theme]ダイアログ・ボックスで[OK]ボタンをクリックします。

カラー・コード・テーマを変更するには

Agilent VEEで提供されているデフォルトのカラー・コード・テーマを使用することも、独自のカラー・コード・テーマを設定することもできます。

カラー・コード・テーマを変更するには

  1. VEEツールバーで[Default Preferences]ボタン [image] をクリックし、ダイアログ・ボックスで[Colors]タブを選択します。

  2. [Enable Color Coding]がチェックされていなければチェックします。

  3. [Change Color Coding...]ボタンをクリックします。[Change Color Coding Theme]ダイアログ・ボックスが表示されます。

  4. [VEE Objects]リストの隣のプラス記号をクリックして開きます。

すべてのVEEオブジェクトがメニューの場所に応じてリストされ、次の5つのグループに分けられます: Flow Controls、Device Controls、I/O Controls、Data Controls、Display Controls。下の図を参照してください。

グループまたは個々のオブジェクトのカラーを変更できます。

  • グループのカラーを変更するには

  • 個々のオブジェクトのカラーを変更するには

新しいカラー・コード・テーマを破棄するには、Cancelボタンをクリックします。これにより、[Change Color Coding Theme]ダイアログ・ボックスが閉じます。

VEEの出荷時のカラー・コード・テーマにリセットするには、[Reset]ボタンをクリックします。

コンテキスト・メニュー

[Change Color Coding Theme]ダイアログ・ボックスでは、オブジェクトの各グループに4つのコマンドを持つコンテキスト・メニューがあります。コマンドは、[Change Color...]、[Apply to Sub Nodes]、[Copy Color]、[Paste Color]です。下の図を参照してください。

[Change Color...]は、[Select Color]ダイアログ・ボックスを開き、選択したグループまたはオブジェクトのカラー選択を可能にします。

[Apply to Sub Nodes]は、現在のカラーを選択したグループのすべてのサブノードに適用します。

[Copy Color]は、選択したグループまたはオブジェクトのカラーをコピー／貼り付けバッファにコピーします。

[Paste Color]は、選択したグループまたはオブジェクトのカラーを、コピー／貼り付けバッファ内のカラーを使って設定します。

ヒント:

[Select Color]ダイアログ・ボックスを使ってグループまたはオブジェクトのカラーを変更する代わりに、コンテキスト・メニューの[Copy Color]および[Paste Color]コマンドを使えばカラーを簡単に設定できます。

新しいカラー・コード・テーマの保存方法を選択するには:

カラー・コード・テーマを設定したら、新しいカラー・コード・テーマの保存方法を[Default Preferences]ダイアログ・ボックスで選択できます。

  1. カラー・コード・テーマを継続的に使用するデフォルトのカラー・コード・テーマとして保存するには、[Save]をクリックします。これにより、新しいカラー・コード・テーマがvee.rcファイルに保存されます。この新しいカラー・コード・テーマが（再び変更するまで）今後のVEEセッションのデフォルトとなります。

  2. 新しいカラー・コード・テーマを現在のVEEセッションだけで（[File] [image] [New]、[Open]、[Exit]を選択するまで）使用するには、[OK]をクリックします。

  3. 新しいカラー・コード・テーマの選択をキャンセルするには、[Cancel]をクリックします。

  4. 現在のカラー・コード・テーマを破棄してVEEの出荷時のカラー・コード・テーマに戻すには、[Reset]をクリックします。

注記

デフォルトのカラー・コード・テーマを変更するもう1つの方法は、既存のカラー・コード・テーマをインポートし、上記の方法で保存することです。

注記

Agilent VEEオブジェクトのグループのカラーを[Default Preferences]ダイアログ・ボックスで設定すると、Agilent VEEはそのグループ内のすべてのオブジェクトのカラーをそのカラー・コード・テーマに基づいて設定します。個々のオブジェクトのカラーを設定するには、オブジェクトの[Properties]ウィンドウで[Title BackColor]を変更します。

関連項目

カラー・コードを使用するには、カラーの使用、カラーを選択する方法、デフォルト・カラーを変更するには


デフォルトのフォントを変更するには

作業領域の画面要素のデフォルトのフォントを変更できます。

注記

1. VEEツールバーで[Default Preferences]ボタンをクリックし、ダイアログ・ボックスで[Fonts]タブを選択します。

[Default Preferences]ボタン

2. [Screen Element]フィールドまたはその矢印をクリックします。ドロップダウン・リストに画面要素の選択肢が表示されます。

3. 変更したい画面要素をクリックします。ドロップダウン・リストが消え、その画面要素のフォント値が表示されます。

4. [Font Value]ボタンをクリックします。[Select Font]ダイアログ・ボックスが表示されます。

5. 対応するフィールドかその矢印をクリックして、2つのドロップダウン・リストからフォント名とサイズを選択します。チェックボックスをクリックして[Bold]と[Italic]を選択することもできます。[OK]をクリックして、[Default Preferences]ダイアログ・ボックスに戻ります。

フォント・リストでは、システムにインストールされているすべてのフォントを選択できます。

6. 必要なすべての画面要素のフォントを選択してから、選択を保存します。

7. フォントの選択を保存する方法を選択します。

a. 新しく選択したフォントを永久的なデフォルト・フォントとして保存するには、[Save]をクリックします。これにより、新しいデフォルト・フォントがvee.rcファイルに保存されます。この新しいフォントが（再び変更するまで）今後のVEEセッションのデフォルトとなります。

b. 新しい設定を現在のVEEセッションだけで（[File] [image] [New]、[Open]、[Exit]を選択するまで）使用するには、[OK]をクリックします。

c. 新しく選択したフォントを使用し、VEEプログラムに保存するには、[OK]をクリックし、[File] [image] [Save As…]を選択して、[Options]領域で[Save colors and fonts with program]ボックスをチェックします。

d. 新しいフォントの選択をキャンセルするには、[Cancel]をクリックします。

e. 現在の設定を破棄し、デフォルト・ファイルvee.rcの設定に戻すには、[Reset]をクリックします。

関連項目

Default Preferences フォントの使用


オブジェクトのフォントを変更するには

すべてのオブジェクトにはPropertiesウィンドウがあり、オブジェクト・メニューから表示できます。特定のオブジェクトのフォントを変更するには、このウィンドウを使用します。

注記

1. マウスの右ボタンでオブジェクトをクリックして、オブジェクト・メニューを開きます。オブジェクト・メニューから[Properties]を選択し、変更したいFontプロパティを選択します。

変更できるフォントは、オブジェクトのクラスによって異なります。通常は、TitleテキストとObjectテキストのフォントを変更できます。

2. 変更したいテキストのプロパティをクリックします。[Select Font]ダイアログ・ボックスが表示されます。

3. 対応するフィールドかその矢印をクリックして、2つのドロップダウン・リストからフォント名とサイズを選択します。フォント・リストでは、システムにインストールされているすべてのフォントを選択できます。チェックボックスをクリックして[Bold]と[Italic]を選択することもできます。

Default Preferencesで設定されたデフォルト・フォントを使用するには、[Default]チェックボックスをクリックします。

[OK]をクリックして[Properties]ウィンドウに戻ります。.

新しく選択したフォントが、デフォルトのフォントの代わりにオブジェクトに表示されます。変更はこのオブジェクトだけに適用され、プログラムとともに保存されます。

ショートカット

オブジェクトのタイトル・バーをダブルクリックするとPropertiesウィンドウが開きます。

関連項目

フォントの使用


オブジェクトのタイトルを変更するには

1. オブジェクト・メニューから[Properties]を選択します。Properties Windowが表示されます。

2. リストからタイトルを選択し、新しいタイトルを入力します。

ショートカット

オブジェクトのタイトル・バーをダブルクリックするとPropertiesウィンドウが開きます。

注記

実行ウィンドウのタイトルを変更するには、メイン・ウィンドウのオブジェクト・メニューのPropertiesを使用します。メイン・ウィンドウのパネル・ビューがあらかじめ存在している必要があります。このタイトルは、プログラム・エクスプローラでプログラム名として用いられます。パネル・ビューの作成の詳細については、[使用法…] [image] [オペレータ・インタフェースの構築]を参照してください。


操作を繰り返すには

操作を繰り返すためのEditメニューの選択肢。

使用法

Undoコマンドは、操作の結果を取り消します。Redoコマンドを使うと、Undo操作の前の状態に戻すことができます。

注記

Redoが使用できるのは、Undoでサポートされる操作だけです。他の操作に対しては淡色表示になります。

すべての操作をUndoして新しい操作を開始した場合、Redo操作のリストはクリアされます。

Redoスタックの制限と既知の問題については、Undoを参照してください。

場所

オブジェクトのPropertiesメニューでRedoを選択

メイン・メニューでEdit > Redoを選択するか、CTRL+Yを押す

タスク・バーの

関連項目

Undo


操作を元に戻すには

VEEで実行した操作を取り消すためのEditメニューの選択肢。元に戻せない操作もあります。

使用法

詳細ビューでは、メイン、UserObject、UserFunctionで以下の操作が元に戻せます。

  • ラインの切り取り

  • 端子の追加／削除／変更

  • UserObjectまたはUserFunctionの端子の追加／削除

  • オブジェクトの移動、整列

  • オブジェクトの置換

  • オブジェクトの切り取り／貼り付け

  • オート・スクロール

パネル・ビューでは、パネル、UserObject、UserFunctionで以下の操作が元に戻せます。

  • オブジェクトの整列

  • オブジェクトの削除

注記

Undoが使用できるのは一部の操作だけです。アイコンが淡色表示になっている場合、元に戻す操作がないか、操作がUndoでサポートされていません。

Undoは場所によって異なる働きをします。例えば、Formulaオブジェクトの削除は元に戻すことができます。式を入力していて一部を削除した場合、この削除を元に戻すこともできます。このように、オブジェクトの操作だけでなく、オブジェクト内のテキストの操作も元に戻すことができます。

Undoにはまた、非常に役に立つツールヒント（ [image] ）が用意されており、使用可能なUndo操作を知ることができます。

すべての操作が元に戻され、新しい操作が実行された場合、最新の操作だけを元に戻すことができます。それより前のすべての操作は、元に戻すことができなくなります。

現在の詳細ビューまたはパネル・ビューのUndoスタックを無効にする操作

対応するビューがパネル・ビュー上にある詳細ビューでオブジェクトを削除するか切り取ると、パネル・ビューのUndoスタックが無効になります。

詳細ビューで選択されたオブジェクトからUserFunctionを作成すると、詳細ビューのUndoスタックは無効になります。ソース詳細ビューに対応するパネル・ビューが存在する場合、それも無効になります。

詳細ビューで選択されたオブジェクトからUserObjectを作成すると、詳細ビューのUndoスタックは無効になります。ソース詳細ビューに対応するパネル・ビューが存在する場合、それも無効になります。

UserObjectを詳細ビューにアンパックすると、その詳細ビューのUndoスタックは無効になります。

UserFunctionをUserObjectに変換すると、UserObjectが配置された詳細ビューのUndoスタックは無効になります。UserFunctionに対応するパネル・ビューが存在する場合、そのUndoスタックは元のままです。

UserObjectからUserFunctionを作成すると、ソース詳細ビュー（UOCarrierの場所）のUndoスタックは無効になります。UserObjectに対応するパネル・ビューが存在する場合、そのUndoスタックは元のままです。

1つのコンテキストから別のコンテキストにオブジェクトを移動すると、移動元と移動先の両方の詳細ビューのUndoスタックが無効になります。移動元のコンテキストに対応するパネル・ビューが存在し、移動されたオブジェクトのどれかがパネル上にあった場合、移動元のパネル・ビューのUndoスタックも無効になります。

パネル・ドライバに出力を追加したために複数の出力が作成された場合、対応するコンテキストのUndoスタックは無効になります。

入力または出力端子を何らかの方法で（追加、削除、名前／型／種類の変更など）変更した場合、UserObjectのUOCarrierを含むコンテキスト・ビューのUndoスタックが無効になります。

既知の異常

Declare Variable、ActiveX Control、XYGraphのいずれかの型のオブジェクトを詳細ビューにドロップしてからクローンします。オブジェクトの1つを削除します。残りのオブジェクトの名前を変更して、削除されたオブジェクトの名前と同じにします。Undoを押します。この場合、復元されたオブジェクトの名前はすでに使用されているため、別の名前が用いられます。新しい固有の名前が警告なしに割り当てられます。

1つのコンテキストが選択されている場合、Pasteを押してオブジェクトを貼り付け、次に別のコンテキストにオブジェクトを貼り付けると、Undo操作は登録されません。別のコンテキストへのドラッグ・クローンでも同じことが起こります。

場所

Edit > UndoまたはCTRL+Z

タスク・バーの

関連項目

Redo、Paste


テキストを検索してオブジェクトを見つけるには

オブジェクトを検索するには、[Find]ダイアログ・ボックス（[Edit] [image] [Find]）を使用します。Findを使うと、多数のオブジェクト、UserObject、UserFunctionを含む大規模なプログラムでオブジェクトを見つけるのが容易になります。テキストと検索を制限するオプションを指定できます。Findはツールバーのボタンからも使用できます。

[Find]ボタン

1. [Find]ダイアログ・ボックスを開きます（[Edit] [image] [Find]またはツールバーのボタンを使用）。ダイアログ・ボックスが表示されます。

2. [Find]:編集フィールドに、検索するテキストを入力します。

3. [General]タブで、テキスト検索の制限を定義します。

4. 制限を設定したら、[Find]をクリックします。ただちに検索が始まります。

実行中の検索を停止するには[Stop]をクリックします。その時点までに見つかった結果が表示されます。

5. 検索が終了すると、[Find]ダイアログ・ボックスが閉じ、[Find Results]ダイアログ・ボックスが表示されます。[Find Results]には、検索基準に一致したオブジェクトのリストが表示されます。リスト中のオブジェクトを表示する方法については、検索操作の結果を表示するにはを参照してください。

下の図は、テキストupperを検索するように設定した[Find]ダイアログ・ボックスを示します。[General]タブで設定されたオプションは、検索結果がネストされたUserObject中のすべてのオブジェクトを含み、テキスト文字列中のどこかにupperを含むすべての対象を表示することを示します。

ショートカット

キーボードでCtrl+Fを押すと、[Find]ダイアログ・ボックスが開きます。

注記

[Search in]で検索の範囲を制限するには、プログラム・エクスプローラのコンテキスト・メニューを使用します。マウスの右ボタンでUserObject、関数、フォルダ名をクリックすると、コンテキスト・メニューが表示されるので、[Find]をクリックします。[Find]ダイアログ・ボックスは[Search in]フィールドにコンテキスト名が設定された状態で開きます。

Findは以下のものは検索しません。

パネルやパネル上のオブジェクト

ラインやラインの値

端子の値

関連項目

プログラム構造を探索するには

プロパティを検索してオブジェクトを見つけるには

検索操作の結果を表示するには

Find

Find Results


プロパティを検索してオブジェクトを見つけるには

オブジェクトを検索するには、[Find]ダイアログ・ボックス（[Edit] [image] [Find]）を使用します。Findを使うと、多数のオブジェクト、UserObject、UserFunctionを含む大規模なプログラムでオブジェクトを見つけるのが容易になります。テキストやオブジェクトのプロパティを検索基準に指定したり、検索を制限するオプションを設定したりできます。Findはツールバーのボタンからも使用できます。

[Find]ボタン

1. [Find]ダイアログ・ボックスを開きます（[Edit] [image] [Find]またはツールバーのボタンを使用）。ダイアログ・ボックスが表示されます。

2. [Find]:編集フィールドに、検索するテキストを入力します。オブジェクトのプロパティだけを検索する場合は、このフィールドは空白にしておきます。

3. [General]タブで、[Search nested UserObjects]を設定して、検索の制限を設定します。前のステップでテキストを入力した場合、テキスト検索のその他の制限を定義します。

4. [Advanced]タブでは、3つのプロパティとその値を設定できます。これにより、指定されたプロパティと値を持つオブジェクトに検索結果が制限されます。

a. [Property]の下のボタンをクリックしてプロパティ名を設定します。[Property Name]ダイアログ・ボックスが表示され、使用可能なすべてのオブジェクト・プロパティが表示されます。

リストをスクロールし、プロパティ名をダブルクリックして選択します。プロパティ名がボタンの上に表示されます。

b. 選択されたプロパティに応じて、[Value]の下のボタンのモードが変化します。値の選択方法には次のものがあります。

ドロップダウン・リストから値を選択します。

ダイアログ・ボックスから値を選択します。

カラー・パレットから色を選択します。

テキストまたは数値を入力します。

c. 必要な場合、[Reset]をクリックして、[Property]（[Object Type]）と[Value]（[All Types]）だけのデフォルト設定に戻すこともできます。

5. 検索基準を設定したら、[Find]をクリックします。ただちに検索が始まります。

実行中の検索を停止するには[Stop]をクリックします。その時点までに見つかった結果が表示されます。

6. 検索が終了すると、[Find]ダイアログ・ボックスが閉じ、[Find Results]ダイアログ・ボックスが表示されます。[Find Results]には、検索基準に一致したオブジェクトのリストが表示されます。リスト中のオブジェクトを表示する方法については、検索操作の結果を表示するにはを参照してください。

下の図は、テキストupperを検索するように設定した[Find]ダイアログ・ボックスを示します。[Advanced]タブでは、指定したプロパティ値を持つオブジェクトだけを検索するように指定しています。検索にプロパティ値を指定すると、Advステータス・インジケータ（右上隅）が強調表示されます。

ショートカット

キーボードでCtrl+Fを押すと、[Find]ダイアログ・ボックスが開きます。

注記

[Search in]で検索の範囲を制限するには、プログラム・エクスプローラのコンテキスト・メニューを使用します。マウスの右ボタンでUserObject、関数、フォルダ名をクリックすると、コンテキスト・メニューが表示されるので、[Find]をクリックします。[Find]ダイアログ・ボックスは[Search in]フィールドにコンテキスト名が設定された状態で開きます。

Findは以下のものは検索しません。

パネルやパネル上のオブジェクト

ラインやラインの値

端子の値

関連項目

プログラム構造を探索するには

テキストを検索してオブジェクトを見つけるには

検索操作の結果を表示するには

Find

Find Results


検索操作の結果を表示するには

Findを使って特定のテキストやプロパティを含むオブジェクトを検索すると、[Find Results]ツール・ウィンドウに一致に関する情報が表示されます。Find Resultsでは、見つかったオブジェクトを簡単に表示できます。結果は新たにFindを実行するか[Clear]ボタンをクリックするまで保持されるので、必要に応じてFind Resultsを開いたり閉じたりできます（[Edit] [image] [Find Results]）。

[Find Results]ボタン

下の図は、テキストupperを含むオブジェクトを表示したFind Resultsの例です。

[Find Results]ツール・ウィンドウの使用

リスト中の行をダブルクリックすると、リスト中のオブジェクト、UserObject、UserFunctionがワークスペースに表示されます。UserObjectおよびUserFunctionは編集ウィンドウが開き、個々のオブジェクトは強調表示されます。

列の見出しをクリックすると、リストの順序を変更できます。

左右の矢印ボタンをクリックすると、前後の項目を表示できます。

[前へ]および[次へ]ボタン

[Find]ボタンをクリックすると、[Find]ダイアログ・ボックスが開き、新しい検索を開始できます。この場合、Find Resultsは閉じ、その内容はクリアされます。

[Find]ボタン

[Clear]ボタンをクリックするとリストがクリアされます。

[Clear]ボタン

[Adv]ステータス・インジケータは、[Find]ダイアログ・ボックスの[Advanced]タブのプロパティ値が検索で指定されている場合に強調表示されます。

[Find Results]ツール・ウィンドウを開く方法

[Find]ダイアログ・ボックスのほかに、[Find Results]ツール・ウィンドウはProgram ExplorerおよびWatchウィンドウからも開くことができます。

Program Explorerから

  • 変数を右クリックして[References]を選択します。[Find Results]ツール・ウィンドウが表示され、その変数を含むすべてのオブジェクトがリストされます。

  • UserFunctionを右クリックして[Calls]または[Called by]を選択します。[Find Results]ツール・ウィンドウが表示され、そのUserFunctionを呼び出す、またはそのUserFunctionから呼び出されるすべてのUserFunctionがリストされます。

Watchウィンドウから

  • 変数を右クリックして[References]を選択します。[Find Results]ツール・ウィンドウが表示され、その変数を含むすべてのオブジェクトがリストされます。

ショートカット

キーボードでCTRL+Rを押すと、[Find Results]ダイアログ・ボックスが開きます。

注記

[Find Results]メニュー項目とツールバー・ボタンは、Findが実行されるまでは淡色表示になっています。

前回のFind操作によるFind Resultsの内容は、Findダイアログ・ボックスを再び開くとクリアされます。

関連項目

プロパティを検索してオブジェクトを見つけるには

テキストを検索してオブジェクトを見つけるには

Find

Find Results

Copyright (c) 1991-2007 Agilent Technologies, Inc.


プログラム構造を探索するには

プログラム全体の構造を探索するには、VEEのプログラム・エクスプローラ（View [image] Program Explorer）を使用します。プログラム・エクスプローラを使うと、情報にアクセスしたり、プログラム中を移動したり、プログラムの内容を変更したりすることが容易になります。プログラム・エクスプローラは、ツールバーのボタンを使って簡単に開いたり閉じたりできます。

[Program Explorer]ボタン

プログラム構造を表示するには

1. プログラム・エクスプローラを開きます。ウィンドウはVEEワークスペースの左側に開きます。

2. コントロール（+と-）をクリックすると、ツリー・ビューを展開したり収納したりすることができます。プログラムの内容に応じて、プログラム・エクスプローラには以下の情報の完全なリストが表示されます。

Main UserObjectに始まるUserObjectの階層。

ローカルUserFunction。

インポートされたUserFunctionライブラリとそれに対応する関数。

インポートされたコンパイル済みライブラリとそれに対応する関数。

インポートされたリモートUserFunctionライブラリとそれに対応する関数。

宣言された／宣言されないグローバル変数。

各コンテキストの下の宣言されたローカル変数。

各ライブラリの下の宣言されたライブラリ・グローバル変数。

下の図とリストは、プログラム・エクスプローラがさまざまなコンテキストや変数を表すために使用するアイコンを示します。

1. プログラム全体を表します。

2. UserObjectを表します。

3. ローカル／インポート／リモートUserFunctionを表します。

4. コンパイル済み関数を表します。

5. 宣言された／宣言されないグローバル変数および宣言されたライブラリ変数を表します。

6. ローカル変数を表します。

7. ライブラリ名、グローバル、UserFunctionなどのカテゴリのコンテナを表します。

8. イベント・ハンドラを表します。

コンテキスト・メニューを使用するには

プログラム・エクスプローラのコンテキスト・メニューからは、プログラム中のオブジェクトや情報にアクセスできます。コンテキスト・メニューを開くには、リスト中の項目をマウスの右ボタンでクリックし、メニュー項目をクリックします。メニューの内容は項目に応じて異なります。

プログラム情報を表示したりドキュメント化したりするには、コンテキスト・メニューの以下の項目（使用可能な場合）を使用します。メニューに表示される動作は、プログラム構造中の項目の位置によって異なります。

Printは、プログラム、UserObject、関数を印刷します（Print ProgramおよびPrint Objectsを参照）。

Documentは、プログラム、UserObject、関数のドキュメントを保存します（Save Documentationを参照）。

Callsは項目が呼び出しているUserFunctionを検索します。

Called Byは項目を呼び出しているUserObjectまたは関数を検索します。

Viewは、変数の現在値を表示するダイアログ・ボックスを開きます。

プログラムの内容にアクセスして変更を行うには、コンテキスト・メニューの以下の項目（使用可能な場合）を使用します。

Openは項目をワークスペースに表示します。これは項目をダブルクリックするのと同じです。

FindはFindダイアログ・ボックスを開きます（Findを参照）。この場合、検索の範囲は、プログラム全体でなく、強調表示された項目の境界内に限定されます。

Generate [image] は、UserFunctionタイトルを参照する式を含む以下のいずれかのオブジェクトを作成するために使用します。作成したオブジェクトは、プログラムの別の部分に配置できます（Call、Formula、If/Then/Else、ShowPanel、HidePanelを参照）。

Cutは、プログラムから項目を削除するためのConfirmダイアログ・ボックスを開きます。

Descriptionは、項目のDescriptionダイアログ・ボックスを開きます（Descriptionを参照）。

Propertiesは、項目のPropertiesウィンドウを開きます（Properties（オブジェクト）を参照）。

Referencesは変数を使用しているオブジェクトを検索します。

ショートカット

ワークスペース中のUserObject、UserFunction、またはその他のコンテキストを表示するには、プログラム・エクスプローラでコンテキスト名をダブルクリックします。

変数の現在の値を見るには、変数名をダブルクリックします。変数の型、種類、データを示すダイアログ・ボックスが表示されます。

[Program Explorer]ボタン

関連項目

Default Preferences


ミニマップ

Viewメニューの項目で、Minimapウィンドウをオン／オフします。ミニマップは、詳細ビュー全体の概要を示すマップで、赤い長方形のボックスが、現在表示されている部分を表します。赤い長方形は、表示されている部分が詳細ビュー全体のどこに位置するかを示します。

使用法

ミニマップは詳細ビュー全体の概要を示し、赤い長方形が、現在表示されている部分を表します。

ミニマップを使うと、詳細ビューの任意の場所にすばやく移動できます。詳細ビューの特定の場所に移動するには、

  • ミニマップ上で目的の場所をクリックします。

-または-

  • 長方形をミニマップ上の目的の場所にドラッグします。

コンテキスト・メニュー

Print... -- 詳細ビュー全体のビットマップをプリントします。Minimapウィンドウをサイズ変更することにより、ビットマップのプリント・サイズを変更できます。

Print Auto Fit ... -- 詳細ビュー全体のビットマップを1ページに収まるように自動的にサイズ変更して、ビットマップをプリントします。サイズ変更されたビットマップの幅はページ幅と一致し、ビットマップの高さは幅に比例して調整されます。

Copy To Clipboard ... -- 詳細ビュー全体のビットマップをクリップボードにコピーします。

Send By Email ... -- 詳細ビュー全体のビットマップを添付ファイルとして電子メールで送信します。

Save To File ... -- 詳細ビュー全体のビットマップをビットマップ・ファイルに保存します。

注記

ミニマップは詳細ビューだけで使用できます。パネル・ビューにいる場合と実行中には自動的に非表示になります。

例

ショートカット

VEEツールバーの [image] ボタンを押します。

場所

View [image] Minimap

関連項目

プログラム中を移動するには


オンライン・ヘルプの使用法

VEEに関して詳しく知りたい場合は、次の方法があります。

1 まず、[Help] [image] [Welcome]メニューにあるマルチメディア・チュートリアルを実行します。チュートリアルは、VEEの主な機能を説明しています。これにより、短時間でVEEに慣れることができます。チュートリアルは、VEEプログラムの構築と実行を画面でデモンストレーションし、表示される内容について解説します。チュートリアルでは、VEEを効果的に使用するためのポイントとなる概念についても紹介しています。

2 VEEに慣れてきたら、オブジェクト・メニューのヘルプでさらに詳しい情報を探します。オブジェクトの動作について理解できるまで、オブジェクトを試してみることができます。オブジェクトについてさらに知識が必要になったら、オブジェクト・メニューでオブジェクトに固有の情報を入手することができます。最初にその情報を参照してください。

3 ヘルプの目次、索引、検索機能を使用するには、メイン・ウィンドウのVEEメニュー・バーから[Help]を開きます。

注記

メイン・ウィンドウのヘルプ機能を開いてヘルプの目次リストを表示する方法については、「ヘルプの使用」を参照してください。

ヘルプ機能の使用法

オンライン・ヘルプでは次のトピックに関する情報を提供します。

すべてのメニュー項目、および主なメニューのショートカット

計測器ドライバ情報

使用頻度の高い処理とプログラム例

VEE用語の定義

ヘルプ機能の使用法

VEEのバージョン

ヘルプにはブラウズ機能のほか、キーワード索引、関連するトピックへのハイパーリンク、検索などの機能があります。VEEには、プログラム開発時に使用できるヘルプ機能が数多く装備されています。

注記

VEEには、Line Probeのような、プログラムの開発およびデバッグに役立つ機能もあります。詳細については、「Agilent VEEにおけるプログラムのデバッグ方法」を参照してください。

オブジェクトについてのヘルプの表示

オブジェクトに関するヘルプを表示するには、オブジェクト・メニュー・ボタンをクリックしてヘルプを選択します。

[Flow] [image] [Repeat] [image] [For Count]を選択して、For Countオブジェクトを作成します。オブジェクト・メニュー・ボタンをクリックして[Help]を選択します。For Countオブジェクトについてのヘルプのトピックが表示されます。

[Device] [image] [Formula]を選択して、Formulaオブジェクトを作成します。オブジェクト・メニュー・ボタンをクリックして[Help]を選択します。Formulaオブジェクトに表示される特定の式についてのヘルプのトピックが表示されます。

[Device] [image] [Function & Object Browser]を選択します。選択項目を任意の組合わせで選択して[Help]をクリックします。選択した特定のオブジェクトについてのヘルプのトピックが表示されます。

オブジェクトのメニューの位置を探す

オブジェクトのメニュー内での位置を探して、そのオブジェクトについての情報を表示するには、[Help] [image] [Contents and Index], を選択します。 次に、[Index] タブをクリックしてオブジェクト名を入力し、[Display]をクリックします。

たとえば、[Help] [image] [Contents and Index] を選択して、[Index] タブをクリックし、「Collector」と入力します。[Display]をクリックすると、Collectorオブジェクトについてのヘルプのトピックが表示されます。

ヘルプ機能使用のための追加の練習問題

オブジェクトを削除するためのショートカットを調べる

[Help] [image] [Contents] および [Index] [image] [How Do I...] [image] [Use the Keyboard Shortcuts] [image] [Editing Programs] [image] [To Cut an Object or Text]を選択します。

「端子」という言葉を調べる

[Help] [image] [Contents] [image] [Reference] [image] [Glossary] [image] [Terminal]を選択します。

VEEのバージョンを調べる

[Help] [image] [About VEE Pro]を選択します。

このバージョンのVEEの新機能を知る

[Help] [image] [Contents and Index] [image] [What&rsquo;s New in Agilent VEE Pro]を選択します。


Agilent VEEプログラムのドキュメント作成

[File] [image] [Save Documentation...]コマンドを使用して、プログラムのドキュメントを自動的に生成できます。VEEは、すべてのオブジェクトを基本設定、デフォルト名、ユーザ名、Descriptionで入力したテキスト、「ネスト情報」とともにリストします。たとえば、UserObject 内のオブジェクトは、メインのVEE環境から1レベルだけネストされていますが、これらのレベルが数字で示されます。

また、Descriptionを使用して個々のオブジェクトのドキュメントを作成することもできます。

関連項目

[Description]ダイアログ・ボックスでのオブジェクトのドキュメント作成

ドキュメントの自動生成


[Description]ダイアログ・ボックスでのオブジェクトのドキュメント作成

すべてのオブジェクトのオブジェクト・メニューにはDescription項目があり、ダイアログ・ボックスにその特定のオブジェクトについてのドキュメントを入力できます。このドキュメント・ファイルで、ドキュメントを画面コピーに関連付けることもできます。このセクションでは、[Description]ダイアログ・ボックスへの入力を行います。

1 Random.veeプログラムを開きます。

2 下に示すように、[Description]からテンプレート情報を削除します。

3 [Description]ボックスは、リッチ・テキスト・フォーマット(RTF)ボックスです。任意のプログラムで作成したRTFファイルを読み込むことができます。RTFフォーマットによって、テキスト・データの表示方法を柔軟に指定できます。

4 [Main]オブジェクト・メニューで[Description]をクリックします。ダイアログ・ボックスにテキスト「The Random.vee program generates random numbers.（Random.veeプログラムはランダムな数値を生成します。）」を入力します。入力を終えたら[OK]をクリックします。

注記

[Description]ダイアログ・ボックスに入力した内容は、オブジェクト・メニューからアクセスしないと、ユーザには表示されません。このダイアログ・ボックスにはファイルも挿入できます。

関連項目

ドキュメントの自動生成


ドキュメントの自動生成

ドキュメントを自動生成するには

プログラムのドキュメントのファイルを生成するには、次の手順に従います。

1 Random.veeを開きます。[File] [image] [Save Documentation....]をクリックします。拡張子に*.txtを使用してファイル名を入力します(たとえばRandom.txt)。 次に、[Save]をクリックします。特に指定しないかぎり、ファイルはPC上のフォルダ「C:\My Documents\VEE Programs」に保存されます。

2 ファイルを表示または印刷するには、テキスト・エディタでファイルを開きます。以下の3つの図は、Windowsのメモ帳を使用してドキュメント・ファイルを表示したところを示しています。

最初の図は、ファイルの開始部分を示しています。 ファイルについての情報、更新日時、システムのI/O設定などが記述されています。

ドキュメント・ファイルの開始部分

Source file:"C:\\ My Documents \\ VEE Programs \\ Random.vee

Date documented: Wed Sep 27 10:31:08 2006

VEE revision: 8.0

Execution Mode:VEE 8

Convert Infinity on Binary Read: no

I/O Configuration

My Configuration (C:\vee.io)

ドキュメント・ファイルの中間部分

M:Main

Device Type :Main

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :Main

Declared Scope :Local to Context

Context is secured : off

TrigMode : Degrees

PopupPanelTitle :Untitled

PopupMoveable :on

Delete Globals at Prerun :off

上の図には、VEEオブジェクトとその設定が記述されています。各オブジェクトの前にある数値は、そのオブジェクトの位置を示します。たとえば、メイン・プログラムにある最初のオブジェクトは「M1」としてリストされます。 参考までに、最後の図にこのドキュメント・ファイルの残りの部分を示します。

ドキュメント・ファイルの残り部分

M.0:Main/Int32

Device Type :Constant

Output pin 1 :Int32

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope :Local to Context

Wait For Input :off

AutoExecute :off

InitializeAtPrerun :off

InitializeAtActivate :off

InitialValue : 0

EnableStepping :off

DetentSize : 1

DataShape :Scalar

ArraySize : 10

ArraySizeFixed :off

ShowArrayIndices :on

EnableEditing :on

Int32 Value : 0

M.1:Main/Int32

Device Type :Constant

Output pin 1 :Int32

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope :Local to Context

Wait For Input :off

AutoExecute :off

InitializeAtPrerun :off

InitializeAtActivate :off

InitialValue : 0

EnableStepping :off

DetentSize : 1

DataShape :Scalar

ArraySize : 10

ArraySizeFixed :off

ShowArrayIndices :on

EnableEditing :on

Int32 Value : 1

M.2:Main/random(low,high)

Device Type :Formula

Input pin 1 :low (Any, Any)

Input pin 2 :high (Any, Any)

Output pin 1 :Result

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope :Local to Context

Formula :random (low,high)

M.3:Main/AlphaNumeric

Device Type :AlphaNumeric

Input pin 1 :Data (Any, Any)

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope :Local to Context

ClearAtPrerun :on

ClearAtActivate :on

ShowArrayIndices :on

M.4:Main/Note Pad

Device Type :Note Pad

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope :Local to Context

Note Contents :{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Times New Roman;}}\r\n{\\colortbl ;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs24 This program , Random, generates a real number between 0 and 1, then displays the results.\\par\r\n}\r\n

注記

[Save Documentation]コマンドを実行後は、[File]⇒[Print Program]コマンドを実行してオブジェクトに識別番号を付けます。 これにより、ドキュメントのテキストとプリンタ出力とを一致させることができます。

関連項目

[Description]ダイアログ・ボックスでのオブジェクトのドキュメント作成


Agilent VEEプログラムのマージ

Agilent VEEプログラムをマージするには

既存のプログラムを流用する一番簡単な方法は、過去のプログラムを現在のテストとマージすることです。プログラムを再使用するには、プログラムをマージし、現在のニーズに合うよう編集します。

[File] [image] [Merge...] コマンドは、作業領域の既存の内容を保持しながら、プログラムまたは保存されたオブジェクト・セットの内容を作業領域に追加します。デフォルトでは、[File] [image] [Merge...] はVEEに付属しているプログラムのディレクトリを表示します。このディレクトリには、棒グラフ表示、（ID番号などの）ユーザ入力用のデータ入力キーパッドなど、一般に必要とされるプログラムが格納されています。

関連項目:

例題9-4：棒グラフ表示プログラムのマージ方法


ライブラリ・オブジェクトの使用法

ライブラリ・オブジェクトを使用するには

VEEにはオブジェクトのライブラリが用意されており、プログラムにマージして使用できます。ライブラリ・オブジェクトは、VEEのインストール時に次のディレクトリにインストールされています。

C:\Program Files\Agilent\VEE Pro 8.5\Lib\

ほとんどのライブラリ・オブジェクトは、個別のオブジェクトを包摂したUserObjectです。ライブラリ用のUserObjectを作成して、次の場所に保存できます。

C:\Program Files\Agilent\VEE Pro 8.5\Lib

Formulaオブジェクト

プログラムにマージできるFormulaオブジェクトも用意されています。各オブジェクトは、度からラジアンへの変換など、便利な変換機能を実行します。

ファイルは次の場所にあります。

C:\Program Files\Agilent\VEE Pro 8.5\Lib\convert\


キーボード・ショートカットの使用

VEEの一般的な作業の多くは、キーボード・ショートカットで実行できます。キーボード・ショートカットでは大文字と小文字は区別されません。

VEEの作業 | ショートカット
ファイル制御
作業領域をクリアするには | CTRL+N
VEEプログラム・ファイルを開くには | CTRL+O
VEEプログラムをファイルに保存するには | CTRL+S
VEEプログラムを新規ファイルに保存するには | CTRL+W
VEEウィンドウを印刷またはコピーするには | Alt+Print Screen
VEEを終了するには | CTRL+E
プログラムの編集
VEEメニューを操作するには | Alt+...
Function & Object Browserを起動するには | CTRL+H
オブジェクトを選択するには | CTRL、CTRL+A
ポップアップ編集メニューを表示するには | 右マウス・ボタン
ポップアップ・オブジェクト・メニューを表示するには | 右マウス・ボタン
Formulaオブジェクトの式を編集するには | Enter、Delete、Backspace、上/下矢印、右／左矢印、Shift+End、Home+Shift、Page Up、Page Down、ダブルクリック、トリプルクリック
トランザクションを編集するには | CTRL+C、CTRL+X、CTRL+V、CTRL+Z、CTRL+Y、CTRL+上、CTRL+下、 Shift+上/下
テキスト・カーソルを移動するには | 上矢印、下矢印、左矢印、右矢印
入力フィールドの編集をキャンセルするには | Esc
ダイアログ・ボックスの編集をキャンセルするには | Esc
オブジェクトまたはテキストをコピー／クローンするには | CTRL+C、CTRL+ 左ボタンでドラッグ
オブジェクトまたはテキストを切り取るには | CTRL+X
オブジェクトにデータ入力端子を追加するには | CTRL+A
オブジェクトにデータ出力端子を追加するには | CTRL+A
オブジェクトから端子を削除するには | CTRL+D
ラインを削除するには | Shift+CTRL+左ボタン
VEEウィンドウをリフレッシュするには | CTRL+Q
プログラム中の移動
メイン・ウィンドウを表示するには | CTRL+M
ウィンドウを選択して作業領域をスクロールするには | CTRL+TabまたはCTRL +F6、CTRL+Shift+TabまたはCTRL+Shift+F6、Page Down/Up、Shift+Page Down/Up、Home、Shift+Home
[Find]ダイアログ・ボックスを表示するには | CTRL +F
[Find Results]ダイアログ・ボックスを表示するには | CTRL +R
オペレータ・インタフェース・パネルを操作するには | Tab、Shift+Tab
プログラムのデバッグ
VEEプログラムを実行、休止、ステップ実行、再開するには | CTRL+G（またはF5）、CTRL+P、F10、CTRL+TまたはF11、Shift +F11
ライン上のデータを表示するには | Shift+左ボタン
オブジェクトへの接続を表示するには | Shift+左ボタン
オブジェクトへの下流接続を表示するには | CTRL+Shift+左ボタン
ブレークポイント設定を切り替えるには | CTRL+B
オブジェクトやダイアログ・ボックスのヘルプを見るには | F1
その他
Instrument Managerで計測器リスト全体を展開するには | *
オブジェクト端子の表示／非表示を切り替えるには | CTRL+U
実行中のプログラムを停止するには | Shift + F5


作業領域をクリアするには

CTRL+Nを押します。現在のプログラムに変更を保存するためのプロンプトが表示されます（ツールバーのNewボタン、およびFile [image] Newのショートカット）。


VEEプログラム・ファイルを開くには

CTRL+Oを押します。開くファイル名を指定するためのプロンプトが表示されます（ツールバーの[Open]ボタン、および[File] [image] [Open]のショートカット）。


VEEプログラムをファイルに保存するには

CTRL+Sを押します。プログラムが現在のファイルに再保存されるか、ファイル名を指定するためのプロンプトが表示されます（ツールバーの[Save]ボタン、および[File] [image] [Save]のショートカット）。

注記

保存されたファイルは、旧バージョンとの互換性を持たない場合があります。バージョン5のファイルをバージョン6に読み込んでから保存すると、バージョン5との互換性はなくなります。


VEEプログラムを新規ファイルに保存するには

CTRL+Wを押します。新規ファイル名の入力プロンプトが表示され、プログラムがそこに保存されます（[File] [image] [Save As]のショートカット）。

注記

保存されたファイルは、旧バージョンとの互換性を持たない場合があります。バージョン5のファイルをバージョン6に読み込んでから保存すると、バージョン5との互換性はなくなります。


VEEウィンドウを印刷またはコピーするには

VEEウィンドウをMS Windowsのクリップボードにコピーするには、VEEをアクティブ・ウィンドウにしてAlt+Print Screenを押します（ツールバーのPrint Screenボタンと、File [image] Print Screenのショートカット）。クリップボードから、クリップボードが使用できる他のWindowsアプリケーションにVEEウィンドウを貼り付けることができます。

これらのショートカットでは、ダイアログ・ボックスが表示されている場合でもVEE画面をキャプチャできます。


VEEを終了するには

VEEを終了するには、CTRL+Eを押します（File [image] Exitのショートカット）。


オブジェクトにデータ入力端子を追加するには

入力端子領域にポインタを置いてCTRL+Aを押すと、ポインタ位置に新しいデータ入力端子が追加されます（オブジェクト・メニュー [image] Add Terminal [image] Data Inputのショートカット）。直前にオブジェクトのフィールドを編集した場合は、左マウス・ボタンを1回クリックしてから、CTRL+Aを押します。

CTRL+Aを使って端子を追加するには、オブジェクトのShow Terminalsプロパティがアクティブであり、オブジェクト左側の入力端子領域にポインタが置かれている必要があります。


オブジェクトにデータ出力端子を追加するには

出力端子領域にポインタを置いてCTRL+Aを押すと、ポインタ位置に新しいデータ出力端子が追加されます（オブジェクト・メニュー [image] Add Terminal [image] Data Outputのショートカット）。直前にオブジェクトのフィールドを編集した場合は、マウスの左ボタンを1回クリックしてから、CTRL+Aを押します。

CTRL+Aを使って端子を追加するには、オブジェクトのShow Terminalsプロパティがアクティブであり、オブジェクト右側の出力端子領域にポインタが置かれている必要があります。


入力フィールドの編集をキャンセルするには

キー入力フィールドの編集をキャンセルするには、Escキーを押します。


ダイアログ・ボックスの編集をキャンセルするには

ダイアログ・ボックスのすべての編集をキャンセルするには、Escキーを押します（Cancelボタンをクリックしても同じです）。


オブジェクトまたはテキストをコピー／クローンするには

コピーするオブジェクトまたはテキストを選択してCTRL+Cを押します。オブジェクトまたはテキストは切り取り／コピー／貼り付けバッファに格納されます（ツールバーのCopyボタンと、Edit [image] Copyのショートカット）。注記:テキストはCTRL+Cだけでコピーできます。ツールバーのボタンやメニューからはできません。

コピーしたオブジェクトを作業領域に貼り付けるには、CTRL+Vを使用します（ツールバーのPasteボタンと、Edit [image] Pasteのショートカット）。その後、オブジェクトを配置したい位置をクリックします。コピーしたオブジェクトを接続しているラインは保持されます。注記:テキストはCTRL+Vだけで貼り付けることができます。ツールバーのボタンやメニューからはできません。

選択したオブジェクトをクローンするには、CTRLキーを押しながら、マウスの左ボタンでオブジェクトをクリックし、クローンされたオブジェクトを新しい位置にドラッグします。

1つの作業領域からコピーしたオブジェクトやテキストを、別の作業領域に貼り付けることができます。Windowsの場合、VEEの1つのインスタンスでコピーして、VEEの別のインスタンスに貼り付けることもできます。オブジェクトやテキストは、クリップボードが使用できる他のWindowsアプリケーションにコピーできます。


オブジェクトまたはテキストを切り取るには

切り取るオブジェクトまたはテキストを選択してCTRL+Xを押します。オブジェクトまたはテキストは切り取り／コピー／貼り付けバッファに格納されます（ツールバーのCutボタンと、Edit [image] Cutのショートカット）。注記:テキストはCTRL+Xだけで切り取ることができます。ツールバーのボタンやメニューからはできません。

間違って切り取ったオブジェクトは、CTRL+Vを使って復元できます（ツールバーのPasteボタンと、Edit [image] Pasteのショートカット）。その後、オブジェクトを配置したい位置をクリックします。オブジェクトとその接続が復元されます。切り取りを元に戻すには、メイン・メニューからEdit > Undoを選択する方法もあります。注記:テキストはCTRL+Vだけで貼り付けることができます。ツールバーのボタンやメニューからはできません。

1つの作業領域から切り取ったオブジェクトやテキストを、別の作業領域に貼り付けることができます。また、VEEの1つのインスタンスから切り取ったオブジェクトやテキストを、VEEの別のインスタンスに貼り付けることができます。オブジェクトやテキストは、クリップボードが使用できる他のWindowsアプリケーションに貼り付けることができます。


ラインを削除するには

Shift+CTRLを押したまま、削除したいラインの上または近くでマウスの左ボタンをクリックします（ツールバーのDelete Lineボタンと、Edit [image] Delete Lineのショートカット）。この操作にはUndoが使用できます。


オブジェクトから端子を削除するには

削除する端子にポインタを置いてCTRL+Dを押します（オブジェクト・メニュー [image] Delete Terminal [image] Inputまたはオブジェクト・メニュー [image] Delete Terminal [image] Outputのショートカット）。直前にオブジェクトのフィールドを編集した場合は、左マウス・ボタンを1回クリックしてから、CTRL+Dを押します。

CTRL+Dを使って端子を削除するには、オブジェクトのShow Terminalsプロパティがアクティブであり、削除する端子にポインタが置かれている必要があります。

削除を元に戻すには、CTRL+Zを押します。


Formulaオブジェクトの式を編集するには

以下では、Formulaオブジェクトに式を入力する際に使用可能な編集操作について説明します。一般的に、RTF文書で可能な操作はFormulaオブジェクトでも可能です。

Enterキーを押すと、キャリッジリターンが挿入され、カーソルが次の行に移ります。行の途中でこれを行うと、行が分割され、カーソルの後ろの文字が次の行に挿入されます。行の先頭でこれを行うと、その行の上に空行が挿入されます。

行末でDeleteキーを押すと、次の行が現在の行に結合され、カーソル位置はそのまま保持されます。

行頭でBackspaceキーを押すと、現在の行が上の行に結合され、カーソル位置はそのまま保持されます。

上下の矢印キーを押すと、カーソルが上または下の行に移動し、カーソルの水平位置はそのまま保持されます。カーソルが最後の行にある場合、下矢印キーを押すと新しい行が追加されます。左右の矢印キーはカーソルを左右に移動します。

行頭でShift Endキーを押すと、行全体が強調表示されます。行末でShift Homeキーを押すと、行全体が強調表示されます。

Page upおよびPage downキーは、通常通りに動作します。

語をダブルクリックすると、その語が強調表示されます。行をトリプルクリックすると、行全体が強調表示されます。

関連項目

Code Completion、Code Insight


トランザクションを編集するには

トランザクションを含むオブジェクト（Sequencer、To Fileなど）にマウス・ポインタが置かれているときに使用できるショートカットを以下に示します。

CTRL+Vは、「切り取り／貼り付け」バッファ中のトランザクションをトランザクション・リストの末尾に貼り付けますオブジェクト・メニュー [image] Paste Trans）。

Insertは、トランザクション・リストの末尾にトランザクションを挿入します。

トランザクション・ベース・オブジェクトの編集ボックスにフォーカスがある場合、次のショートカットが使用できます。

CTRL+Xは、選択されているトランザクションを切り取って「切り取り／貼り付け」バッファに入れます（オブジェクト・メニュー [image] Cut Trans）。

CTRL+Vは、「切り取り／貼り付け」バッファ中のトランザクションをポインタ位置に貼り付けますオブジェクト・メニュー [image] Paste Trans）。

CTRL+Cは、選択されているトランザクションをコピーして「切り取り／貼り付け」バッファに入れます（オブジェクト・メニュー [image] Copy Trans）。

Deleteは、リスト中の選択されているトランザクションを削除します（オブジェクト・メニュー [image] Delete Trans）。

Insertは、選択されているトランザクションの前にトランザクションを挿入します（オブジェクト・メニュー [image] Insert Trans）。

CTRL+Zは、直前の操作を元に戻します。

CTRL+Yは、直前の操作を繰り返します。

CTRL+Upは、選択されているトランザクションを上に移動します（オブジェクト・メニュー [image] Move Trans Up）。

CTRL+Downは、選択されているトランザクションを下に移動します（オブジェクト・メニュー [image] Move Trans Down）。

注記

Move操作は、単一トランザクション操作だけをサポートします。

トランザクションの詳細については、[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [I/Oトランザクション]を参照してください。


テキスト・カーソルを移動するには

英数字テキスト入力領域（Note Padオブジェクトなど）では、カーソル制御矢印キー（上矢印、下矢印、左矢印、右矢印）を押すと、カーソルが矢印の方向に移動します。


VEEメニューを操作するには

VEEメニューはキーボード・メニュー・アクセラレータを使って操作できます。各メニュー項目には下線付きの文字があります。この文字はAltキーといっしょに押すことでアクセラレータの役割を果たします。キーボード・アクセラレータ文字は大文字と小文字のどちらでもかまいません。すなわち、下線付きの文字が大文字で表示されていても、対応する小文字をアクセラレータとして使用できます。例を見てみましょう。

[Device]メニューではDに下線が付いています（しかし、dもアクセラレータとして使用できます）。[Data]メニューではtに下線が付いています。

PCでは、Alt+dを押すことで[Device]メニューを選択でき、Alt+tを押すことで[Data]メニューを選択できます。

各サブメニューにもそれぞれのアクセラレータがあり、これを使ってメニュー・ツリーの下の階層に進むことができます。例えば、[Data] [image] [Continuous] [image] [Real64 Slider]を選択するには:

PCの場合、Alt+t、Alt+i、Alt+rを押します。


Function & Object Browserを起動するには

CTRL+Hを押します（ツールバーのfxボタンと、Device [image] Function & Object Browserのショートカット）。


ポップアップ編集メニューを表示するには

メイン・ウィンドウの作業領域の空白部分でマウスの右ボタンを押します（UserObjectおよびUserFunctionの作業領域でも可能です）。


ポップアップ・オブジェクト・メニューを表示するには

オブジェクトの任意の部分でマウスの右ボタンを押します。


VEEウィンドウをリフレッシュするには

VEEウィンドウをリフレッシュするにはCTRL+Qを押します。


オブジェクトを選択するには

1つのオブジェクトを選択するには、オブジェクトの上にポインタを置いてマウスの左ボタンをクリックします。選択されたオブジェクトは陰影で強調表示されます。

オブジェクトを選択または選択解除するには、CTRLキーを押しながら、オブジェクトの上にポインタを置いてマウスの左ボタンをクリックします。現在選択されていないオブジェクトは選択されます。現在選択されているオブジェクトは選択解除されます。

複数のオブジェクトを選択するには3つの方法があります。

  • CTRLキーを押しながら、選択したい各オブジェクトの上でマウスの左ボタンをクリックします。

  • CTRLキーを押しながら、マウスの左ボタンをクリックして押し続け、選択したいオブジェクト群の周りに輪郭線ボックスを描きます。オブジェクトの選択／非選択が切り替わります。

  • CTRL+Aを押して、現在の作業領域（メイン・ウィンドウ、UserObject、UserFunction）のすべてのオブジェクトを、現在選択されているかいないかに関わらず選択します（[Edit] [image] [Select All]のショートカット）。


メイン・ウィンドウを表示するには

CTRL+Mを押します（View [image] Mainのショートカット）。


ウィンドウを選択して作業領域をスクロールするには

VEEワークスペースで開いているウィンドウのスタック内を移動するには、次の手順を実行します。

CTRL+TabまたはCTRL +F6を押すと、ウィンドウのスタック内を先頭から下に移動します。

CTRL+Shift+TabまたはCTRL+Shift+F6を押すと、ウィンドウのスタック内を末尾から上に移動します。

メイン、UserObject、UserFunctionウィンドウの作業領域のどこかにポインタを置いて、次の手順を実行します。

Shift+上矢印、Shift+下矢印、Shift+左矢印、Shift+右矢印を押すと、作業領域が矢印の方向にスクロールします。

Page Downを押すと、作業領域が上に1画面分スクロールします。

Page Upを押すと、作業領域が下に1画面分スクロールします。

Shift+Page Downを押すと、作業領域が左に1画面分スクロールします。

Shift+Page Upを押すと、作業領域が右に1画面分スクロールします。

Homeを押すと、プログラムの左上隅が作業領域の左上隅に移動します。

Shift+Homeを押すと、プログラムの右下隅が作業領域の右下隅に移動します。


Findダイアログ・ボックスを表示するには

CTRL+Fを押します（ツールバーのFindボタンと、Edit [image] Findのショートカット）。


Find Resultsダイアログ・ボックスを表示するには

CTRL+Rを押します（ツールバーのFind Resultsボタンと、Edit [image] Find Resultsのショートカット）。このコマンドは、Find操作が成功した後で使用できます。


オペレータ・インタフェース・パネルを操作するには

VEEプログラムにオペレータ・インタフェース・パネル・ビューが作成されている場合、次のキーを使ってパネルを操作できます。

TabおよびShift+Tabを使って、オペレータ・インタフェース・パネルのフィールドの間を移動できます。Tabキーはフォーカスを次のフィールドに移動し、Shift+Tabキーはフォーカスを前のフィールドに移動します。入力フィールドにフォーカスがある場合（反転表示されている場合）、編集が可能です。ボタンにフォーカスがある場合（破線の輪郭が表示されている場合）、以下の方法でボタンを押すことができます。

スペース・バーを押すと、現在フォーカスのあるボタンを押すことができます。

適切な英数字キーを使って、現在フォーカスのある入力フィールドを編集できます。EnterまたはReturnキーを押すと、編集が終了し、内容が確定されます。Escを押すと編集が中止されます。

オペレータ・インタフェース・パネルにデフォルト・ボタンがプログラマによって定義されている場合、EnterまたはReturnキーを押すことによってデフォルト・ボタンを押すことができます。

オペレータ・インタフェース・パネル・ビューとその使用法の詳細については、VEEヘルプの[使用法] [オペレータ・インタフェースの構築]を参照してください。


VEEプログラムを実行、休止、ステップ実行、再開するには

VEEプログラムを実行するには、CTRL+G（またはF5）を押します（ツールバーの[Run]ボタンおよび[Debug] [image] [Run/Resume]のショートカット）。

実行中のVEEプログラムを休止するには、CTRL+Pを押します（ツールバーの[Pause]ボタンおよび[Debug] [image] [Pause]のショートカット）（プログラムを停止するには、ツールバーのStopボタンを押す必要があります）。

休止中のVEEプログラムをステップ実行するには、F10を押します（ツールバーの[Step Over]ボタンおよび[Debug] [image] [Step Over]のショートカット）。

休止中のVEEプログラムをステップ実行するには、CTRL+T（またはF11）を押します（ツールバーの[Step Into]ボタンおよび[Debug] [image] [Step Into]のショートカット）。

休止中のVEEプログラムをステップ実行するには、Shift-F11を押します（ツールバーの[Step Out]ボタンおよび[Debug] [image] [Step Out]のショートカット）。

実行中のVEEプログラムを再開するには、CTRL+Gを押します（ツールバーの[Resume]ボタンおよび[Debug] [image] [Run/Resume]のショートカット）。


ライン上のデータを表示するには

プローブしたいラインにポインタを置いて、マウスの左ボタンをクリックします（Debug [image] Line Probeのショートカット）。ライン上の最新のデータ・コンテナに関する情報が表示されます。


オブジェクトへの接続を表示するには

Shiftキーを押したまま、プローブしたいオブジェクトにポインタを置いて、マウスの左ボタンをクリックします（[Debug] [image] [Object Probe]のショートカット）。プローブしたオブジェクトに接続されているすべてのラインとオブジェクトが強調表示されます。


ブレークポイント設定を切り替えるには

1つまたは複数のオブジェクトを選択して、CTRL+Bを押します（ツールバーのToggle Breakpointボタンと、Debug [image] Toggle Breakpointのショートカット）。

選択された各オブジェクトに対するブレークポイントが、逆の状態に切り替えられます。


オブジェクトやダイアログ・ボックスのヘルプを見るには

オブジェクトが選択された状態でF1を押すと、そのオブジェクトに関するヘルプ項目が開きます（オブジェクト・メニュー [image] Helpのショートカット）。複数のオブジェクトが選択されている場合、最初に選択されたオブジェクトのヘルプ項目が開きます。選択されているオブジェクトがない場合、総合ヘルプ目次のウィンドウが開きます。

Default Preferencesなどのダイアログ・ボックスが開いている状態でF1を押すと、そのダイアログ・ボックスに関するヘルプ項目が開きます（Helpボタンのショートカット）。


印刷設定を変更するには

プログラムの印刷に使用されるデフォルトの設定を変更できます。

File >Default Preferencesを選択して、Default Preferencesダイアログ・ボックスを表示します。次に、Printingタブをクリックします。

設定を変更した後、設定を保存する方法を選択します。

a. 設定を新しいデフォルト値として保存するには、Saveをクリックします。これにより、新しい値がvee.rcファイルに保存されます。この設定が（再び変更するまで）今後のVEEセッションのデフォルトとなります。

b. 新しい設定を現在のVEEセッションだけで（File [image] New、Open、 Exitを選択するまで）使用するには、OKをクリックします。

c. 設定をデフォルト値に戻すには、Resetをクリックします。

d. 変更をキャンセルするには、Cancelをクリックします。

プリンタ・パレットを変更するには

1. Screen ElementおよびB&W Printer Darknessフィールドには、どちらもドロップダウン・リストがあります。Detail Viewの色の濃さ（グレースケール値）を変更するには、B&W Printer Darkness（または矢印）をクリックします。

2. 次に、目的の色の濃さをクリックします。Detail Viewの背景を白にするには、0 % (White)をクリックします（ほとんどのVEE要素はデフォルトでAutomatic grayscaleに設定されています。スクリーン・パレットの色は、適切なグレーの階調に自動的に変換されます）。

印刷内容を変更するには

1. Print Magnification（印刷倍率）の値を変更するには、フィールドをクリックして値を編集します（デフォルトは75%です。値を100より大きく、または小さく設定することにより、印刷されるイメージのサイズを変更できます）。

2. 他の印刷オプションを選択して、レポート・パッケージをカスタマイズできます。

Print Header and Index Pageは、各ページの先頭に、ファイルの場所と日付／時刻、レポートのセクションとページ番号を記載したインデックスからなるヘッダを印刷します。

Print Program Explorerは、プログラム・エクスプローラを拡大して印刷します。

Print Cover Pageは、プログラムのファイル名、リビジョン日付、実行モード、保存ファイル・フォーマット、VEEリビジョン番号を含めます。

Print I/O Configurationは、計測器構成の拡大されたツリー・ビューを印刷します。計測器構成はI/O [image] Instrument Manager…で見ることができます。

関連項目

デフォルトのフォントを変更するには


プリンタを設定するには

VEEの印刷およびプロット操作では、HP LaserJet、HP DeskJet、およびほとんどのPostScriptプリンタがサポートされています。さらに、VEEはほとんどのHP-GL互換プロッタをサポートします。

VEEのプリンタ設定を変更するには、次の手順に従います（ほとんどの場合はデフォルトのプリンタ設定が使用できます）。

1. [File] [image] [Print Setup]を選択します。[Print Setup]ダイアログ・ボックスが表示されます。

2. [Print Setup]ダイアログ・ボックスで、Windowsの標準の方法を使って必要なプリンタ設定を選択します。

3. 他の印刷オプションを設定するには[Properties]をクリックし、選択を確定するには[OK]をクリックします。


VEEワークスペースを印刷するには

VEEウィンドウに現在表示されているワークスペースの内容を印刷できます。

1. ワークスペースをただちに印刷するには、ツールバーの[Print Screen]ボタンをクリックします。

[Print Screen]ボタン

または

1. [File] [image] [Print Screen]を使用します。[Print]ダイアログ・ボックスが表示されます。

2. 印刷設定が適切なら、[OK]をクリックしてVEEワークスペースを印刷します。または、パラメータを変更して[OK]をクリックします。ツールバー とステータス・バーを含めてワークスペースが印刷されます。.

ヒント

ワークスペース全体をプログラムで印刷するには、[Print Screen]オブジェクトを使用します。

ショートカット

以下のショートカットを使えば、ダイアログ・ボックスが表示されていてツールバーのボタンとメニューが使用できない場合でも、VEE画面をキャプチャできます。

キーボードのAlt+Print Screenを押せば、VEEウィンドウをMicrosoft Windowsのクリップボードにいつでもキャプチャできます（プログラムが実行中の場合、プログラムは一時的に休止します）。その後、イメージをMicrosoft Paintやその他のWindowsグラフィックス・アプリケーションに貼り付けることができます。

関連項目

Print Screenオブジェクト


VEEプログラムを印刷するには

現在VEEウィンドウで開いているプログラムの表示を印刷できます。プログラム全体またはその一部を印刷できます。

プログラム全体を印刷するには

1. [File] [image] [Print Program]を選択します。[Print Options]ダイアログ・ボックスが表示されます。オプションを使って、印刷するプログラムの詳細レベルを指定できます。

Print Nested UserObjectsを選択すると、プログラムに含まれるすべてのUserObjectの内容が印刷されます。

Print Object Viewsを選択すると、有用な情報を含むオブジェクトのオープン・ビューが印刷されます。

残りのオプションは、印刷設定を変更するにはで説明されているデフォルト設定に基づいて設定されます。これらはプログラムを印刷するたびに変更できます。

2. [OK]をクリックします。[Print]ダイアログ・ボックスが表示されます。必要なら印刷設定を変更します。

3. もう一度[OK]をクリックして、プログラムの表示を印刷します。

プログラム・エクスプローラから印刷するには

プログラム全体またはその一部を、プログラム・エクスプローラから印刷できます。.

1. プログラム・エクスプローラを表示するには、ツールバーの[Program Explorer]ボタン（または[View] [image] [Program Explorer]）を使用します。

2. マウスの右ボタンを使って、印刷したいコンテキスト名をプログラム・エクスプローラでクリックします。使用可能なすべての名前を見るために、必要ならプログラム・エクスプローラのツリーを展開します。

プログラム全体を印刷するには、いちばん上のプログラム名またはファイル名をクリックします。

プログラム中のメイン、UserObject、UserFunctionなどの1つのコンテキストを印刷するには、該当する名前をクリックします。

3. 表示されるコンテキスト・メニューで、Printをクリックします。[Print Options]ダイアログ・ボックスが表示されます。オプションは上で説明されています。

4. 必要なオプションを設定し、[OK]をクリックします。

5. [Print]ダイアログ・ボックスが表示されます。必要なら印刷設定を変更します。

6. [OK]をクリックしてプログラムを印刷します。

下の図は、プログラム・エクスプローラでUserObjectを印刷するためのコンテキスト・メニューを開いたところです。


VEEプログラム中のオブジェクトを印刷するには

VEEプログラム中の選択したオブジェクトを印刷できます。

1. プログラム中の1つまたは複数のオブジェクトを選択します。オブジェクトをクリックして選択します。複数のオブジェクトを選択するには、CTRLキーを押しながらオブジェクトをクリックするか、CTRLキーを押しながらマウスを使ってオブジェクトの周りに長方形を描きます。

2. [File] [image] [Print Objects]を選択します。[Print]ダイアログ・ボックスが表示されます。必要なら印刷設定を変更します。

3. [OK]をクリックして選択したオブジェクトを印刷します。

ヒント

オブジェクトにPrintコントロール入力を追加することにより、プログラムでオブジェクトを印刷することもできます。これは、グラフィカルXY表示オブジェクトを印刷する場合に便利です。


プリンタにデータを送るには

VEEプログラムからプリンタに直接データを送ることができます。

1. To Printerオブジェクトをプログラムに追加し（[I/O] [image] [To] [image] [Printer]）、データ入力ピンをプリントしたいデータのソースに接続します。

2. To Printerアイコンをダブルクリックして、データを出力するI/Oトランザクションを含むオープン・ビューを表示します。

3. デフォルトの出力トランザクションはWRITE TEXT a EOLです。必要な場合、データを他の形式で出力するようにトランザクションを変更します。

4. プログラムを実行します。To Printerオブジェクトが動作すると、データがプリンタに出力され、現在の印刷設定を使って印刷されます。

ヒント

To Printerオブジェクトは、Windowsのプリンタ・ドライバを使ってデータを出力します。これはヘッダを追加し、フォントを変更します。Windows版VEEでASCIIテキストをそのままプリンタに出力するには、To Fileオブジェクトを使用し、ファイル名をLPT1（あるいは使用している他のプリンタ・ポート）に変更します。

関連項目

ファイルI/Oトランザクションを編集するには

ファイルにデータを書き込むには


グラフをプロットするには

グラフを印刷するには

XY PlotやWaveform (Time)などのXY表示オブジェクトからグラフを印刷する方法が1つあります。

XY表示オブジェクトのオブジェクト・メニューからPrintコマンドを選択します。


計測器ドライバをロードするには

Agilent VEEでは、計測器ドライバとDirect I/Oによる計測器制御をサポートしています。計測器ドライバには、パネル・ドライバ（Panel DriverおよびComponent Driverオブジェクトで制御）、VXIplug&playドライバ（Plug&play Driverオブジェクトで制御）、IVI-COMドライバ（IVI-COM Driverオブジェクトで制御）があります。Direct I/Oオブジェクトは、計測器との間の低レベル・トランザクションに使用します。

計測器ドライバ・オブジェクトを使用するには、対応する計測器ドライバ・ファイルがインストールされている必要があります。計測器ドライバが計測器と通信するために、Agilent I/Oライブラリもインストールされている必要があります。

Agilent VEEには多数のパネル・ドライバが付属しています。Agilent VEEをインストールするときに、インストールするドライバのグループを選択できます。いくつかのドライバは、一部のサンプル・プログラムの実行に必要なため、デフォルトでインストールされます。ドライバを追加でインストールする必要がある場合は、VEEのsetup.exeプログラムを実行し、必要なドライバ・オプションを選択します。

注記

VXIplug&playドライバは、計測器メーカから提供されます。Agilentでは、多くのAgilent計測器用にVXIplug&playドライバを提供しています。場合によっては、計測器ドライバ・ファイルの新しいバージョンやアップデートが入手できることがあります。これらのファイルはAgilentから電子的に入手できます。ファイルをダウンロードする方法については、サポートを受けたり、計測器ドライバをダウンロードしたりするにはを参照してください。


TCP/IP計測器を追加するには

USBまたはLANベースの計測器を追加するには

USB/LANベースの計測器をVEEで使用できるように設定するには、AgilentのI/Oドライバ・ライブラリに付属するAgilent IOライブラリ・スイートを使用する必要があります。VEEには、IOライブラリ・スイート14.2以上が必要です。

USBベースの計測器の場合

  1. USBの場合、計測器の電源をオンにし、USBケーブルを接続します。USB計測器をInstrument Managerから削除してしまった場合は、USBケーブルをいったん計測器から抜いて再び差し込む必要があります。

  2. Agilent Connection Expertを実行します。USBデバイスは自動的に検出されます。

  3. 必要ならエイリアスを編集します。エイリアスを使うと、USBの標準識別子である長いシリアル番号の代わりにわかりやすい名前を使用でき、名前の管理が容易になります。

  4. Find Instrumentsを実行すると、USBデバイスがエイリアスで識別されます。

LANベースの計測器の場合

  1. Agilent Connection Expertを実行します。

  2. 設定済みのインタフェースにはTCPIP0が含まれるはずです。

  3. このリストを強調表示し、"Refresh this LAN interface"を選択します。LANデバイスが正しく接続されていれば、自動的に検出されます。

Instrument Managerを起動し、Find Instrumentsを選択します。TCP/IPアドレスが正しく、計測器がオンラインであれば、Instrument Listに表示されます。


計測器設定を追加するには

計測器がInstrument Managerツール・ウィンドウにリストされたら、計測器制御オブジェクトを使用するのは簡単です。

計測器を自動的に追加するには

Instrument Managerを使えば、計測器を簡単に追加して設定できます。この方法を使用するには、計測器がコンピュータに接続されており、計測器の電源がオンになっている必要があります。

1. [I/O] [image] [Instrument Manager…]を選択します。[Instrument Manager]ツール・ウィンドウが表示され、現在の設定がInstrument List領域に表示されます。

2. 計測器リストのルート・ノードを右クリックしてコンテキスト・メニューを開き、Auto Discovery Settingsコマンドを選択します。[Auto Discovery Settings]ダイアログが表示されます。

[Detect, identify, and configure drivers...]のラジオ・ボタンをクリックします。次に、[OK]をクリックします。

4. [Find Instruments] [image] ツールバー・ボタンをクリックします。[Find Instruments] [image] ツールバー・ボタンが使用できない場合、ルート・ノード（My Configuration）またはインタフェース・ノードを選択します。

Auto Discoveryプロセスが実行され、ステータスが表示されます。Auto Discoveryが終了すると、現在の設定が更新され、"newInstrument".という名前の新しい計測器エントリができています。このエントリには、計測器のVISAアドレスも示されます。ここでSave [image] ツールバー・ボタンをクリックしてこの設定を保存することも、新しい計測器エントリの詳細を編集することもできます（通常は計測器名を変更します）。計測器設定を編集するにはを参照してください。

5. [Save] [image] ツールバー・ボタンをクリックして新しい設定を保存します。

計測器を手動で追加するには

1. [I/O] [image] [Instrument Manager…]を選択します。[Instrument Manager]ツール・ウィンドウが表示され、現在の設定がInstrument List領域に表示されます。

2. [Add instruments...] [image] をクリックします。[Instrument Properties]ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、新しい計測器に必要な基本的な設定情報を入力できます。

3. [Name]に表示されたデフォルトの名前を使用するか、新しい固有の名前を入力します。

4. Interfaceを変更するには、インタフェース名をクリックして、サポートされるインタフェースのリストを表示します。計測器に接続されているインタフェースをクリックします。

5. [Board Number]ボックスで、ボード番号を入力するか選択します。

6. [VISA Alias]ボックスで、VISAエイリアスを入力します。このVISAエイリアスは、Agilent IO libraryで設定されたものと一致する必要があります。

7. [VISA Address]フィールドをクリックして、計測器アドレスを設定します。特定の機器に対して使用するアドレスを判定する方法については、計測器のマニュアルを参照してください。

ヒント

[VISA Address]ボックスの下の青色のサンプル・アドレスをダブルクリックすると、サンプル・アドレスを[VISA Address]ボックスにコピーできます。

8. オプション: その他のデバイス属性を設定するには、[Advanced...]ボタンをクリックします。詳細プロパティについては、計測器設定を編集するにはを参照してください（基本と詳細の[Instrument Properties]ダイアログ・ボックスの使用法は、新しいエントリを追加する場合でも既存のエントリを編集する場合でも同じです）。

9. [Save] [image] ツールバー・ボタンをクリックして新しい設定を保存します。

注記

システムで使用するインタフェース・カードを追加または削除した場合、Agilent Connection Expertを実行してI/O_configファイルを更新する必要があります。インタフェースのインストールと設定の詳細については、Agilent I/O Libraries Suiteのオンライン・ヘルプを参照してください。

関連項目

計測器ドライバをロードするには

計測器設定を編集するには

Instrument Manager

計測器のマニュアル


計測器設定を削除するには

計測器はInstrument Managerツール・ウィンドウから削除できます。

1. [I/O] [image] [Instrument Manager...]を選択します。次に、削除したい計測器設定名をクリックして選択します。

2. 計測器名を右クリックし、コンテキスト・メニューの[Delete Instrument]を選択します。選択した項目がリストから削除されます。

3. [Save]ツールバー・ボタンをクリックして、新しい設定を保存します。

注記

システムで使用するインタフェース・カードを追加または削除した場合、Agilent Connection Expertを実行してI/O_configファイルを更新する必要があります。インタフェースのインストールと設定の詳細については、Agilent I/O Libraries Suiteのオンライン・ヘルプを参照してください。

関連項目

計測器設定を編集するには

Instrument Manager


計測器設定を編集するには

現在のInstrument Listから、任意の計測器の設定を編集できます。

1. [I/O] [image] [Instrument Manager…]を選択します。[Instrument Manager]ツール・ウィンドウが表示され、現在の設定がInstrument List領域に表示されます。

2. 目的の計測器を[Instrument List]で右クリックしてコンテキスト・メニューを開き、[Instrument Properties...]を選択します。[Instrument Properties]ダイアログ・ボックスが表示されます。以下の各セクションで説明するプロパティが変更できます。

基本計測器プロパティを編集するには

[Instrument Properties]ダイアログ・ボックスでは、次の基本プロパティを指定できます。

Name: 計測器を識別するための任意の名前です。名前の先頭は英文字で、スペースを含まないものにすることをお勧めします。

Interface: 計測器に接続されているインタフェースの種類を選択します。

VISA Alias: VISAアドレス文字列に対するエイリアスを入力します。

VISA Address: 計測器のVISAアドレスを入力します。

Board Number: インタフェース・ボードのボード番号を入力します。ボード番号のインデックスは}0から始まり、デフォルトは}0です。

Gateway: ローカル・インタフェースの場合、This hostを選択します。LANゲートウェイを経由するインタフェースの場合、リモート・ゲートウェイのホスト名（またはIPアドレス）を入力します。

1. [Instrument Properties]ダイアログ・ボックスで、目的のフィールドをクリックします。新しい値を入力（または選択）します。必要に応じて他のフィールドを変更します。

2. [Save]ボタンをクリックすると、ダイアログ・ボックスが閉じ、新しい設定が保存されます。

詳細計測器プロパティを編集するには

1. [Instrument Properties]ダイアログ・ボックスで、[Advanced...]ボタンをクリックします。[Advanced Instrument Properties]ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、選択されているインタフェースの種類に応じて、さまざまなタブ・シートのセットが表示されます。下の表は、各インタフェース・タイプの[Advanced Instrument Properties]ダイアログ・ボックスに存在するタブを示します。

タブ インタフェース | General Driver | Direct I/O Driver | Plug&play Driver | IVI-COM Driver | Panel Driver | serial Driver | A16 Space Driver | A24/A32 Space Driver
GPIB | あり | 可 | 可 | 可 | 可 | なし | 不可 | 不可
ASRL | 可 | 可 | 不可 | 不可 | 可 | 可 | 不可 | 不可
TCP/IP | 可 | 可 | 可 | 可 | 可 | 不可 | 不可 | 不可
USB | 可 | 可 | 可 | 可 | 可 | 不可 | 不可 | 不可
NIDAQ | [Advanced]ダイアログ・ボックスなし
VXI | 可 | 可 | 可 | 可 | 可 | 不可 | 可 | 可
GPIO | 可 | 可 | 不可 | 不可 | 可 | 不可 | 不可 | 不可

2. タブをクリックし、必要に応じてデフォルト設定を変更します。設定を変更するには、フィールドに新しい値を入力するか、ボタンをクリックして状態を変更します。指針として、計測器と、使用する計測器制御オブジェクトの種類、例えばPanel Driver、Plug&play Driver、Direct I/Oなどに応じて、設定を変更します。

計測器ドライバを使用するには、[Panel Driver]、[IVI-COM]または[Plug&play Driver]タブでドライバ・ファイルを指定する必要があります。ドライバ・ファイルはハード・ディスク上に存在する必要があります。

各設定の詳細を見るには、ダイアログ・ボックスの[Help]ボタンをクリックしてください。

3. [Save]ボタンをクリックすると、ダイアログ・ボックスが閉じ、新しい設定が保存されます。

注記

NIDAQインタフェースの場合、[Instrument Properties]ダイアログ・ボックスでDriver Typeを選択できます。

関連項目

計測器設定を追加するには

Instrument Manager


埋込みI/O設定とマージ

VEE Proでは、埋込みI/O設定を持つプログラム・ファイルからプログラム要素をマージ／インポートできます。ただし、埋込みI/O設定自体はマージしたりインポートしたりできません。マージ（インポート）するオブジェクトが設定された計測器を必要とする場合、ローカルI/O設定にこれらの計測器の設定を追加する必要があります。

1つの方法は、現在のI/O設定に計測器を追加し、それを「メイン」プログラムとともに保存することです（メイン・プログラムとは、マージされたすべての要素を含むプログラム・ファイル、またはImport Libraryを実行するプログラム・ファイルです）。もう1つの方法として、プログラムが実行されるコンピュータのI/O設定ファイル（vee.io）に、必要なすべての計測器を含めることもできます。

VEEはI/O設定ファイルを次のように検索します。

1. Agilent VEEをコマンドラインから- vee.io path to filenameを使って起動した場合、VEEは常にpath to filenameで指定された場所でI/O設定ファイルを検索します 。その場所にvee.ioファイルが存在しない場合、VEEは空のvee.ioファイルをpath to filenameに作成します。

2. Agilent VEEをコマンドラインから - vee.io path to filenameを使って起動しなかった場合、すなわちAgilent VEEをWindowsから起動したか、Agilent VEEをコマンドラインから-vee.io optionを使用せずに起動した場合。VEE環境変数が存在する場合、VEEはVEE環境変数で指定された場所でI/O設定ファイルを検索します。その場所にvee.ioファイルが存在しない場合、VEEはVEE環境変数に指定されたディレクトリに空のvee.ioファイルを作成します。

3. VEE環境変数が存在しない場合、VEEはI/O設定ファイルを次のデフォルトの場所で検索します。

%Appdata%\ShortCompanyName\ProductName\MajorVersionNumber + "." + FirstDigitofProductMinorNumber

%Appdata%はEnvironment.SpecialFolder.ApplicationDataから得られます。例えば、Windows XP/2000/VistaでのVEE Pro 8.5のデフォルトの場所は、%Appdata%\Agilent\VEE Pro\8.5です。

また、VEE製品を最初に起動したときに、VEEは前のバージョンのパスからデフォルトの場所にvee.ioファイルをコピーします。

その場所にvee.ioファイルが存在しない場合、VEEは空のvee.ioファイルをデフォルトの場所に作成します。

関連項目

I/O設定の手法


ダイナミックI/Oオートメーション・サーバ

VEEの以前のバージョンでは、VEE I/O設定ファイルの計測器バス・アドレスは静的（固定）でした。バージョン6.0では、ダイナミックI/Oオートメーション・サーバにより、計測器をプログラムで検索して認識できるようになりました。これにより、柔軟性が大幅に高まりました。例えば、すべての計測器を検索し、Programmable Instrument Propertiesを使ってDirect I/Oオブジェクトを設定できます。

使用法

VEEからダイナミックI/Oオートメーション・サーバを使用するには:

Device [image] ActiveX Automation Referencesを選択して、ActiveX Automation Referencesダイアログ・ボックスを表示します。Agilent VEE DynamicIO 1.0 Type Libraryをチェックし、OKをクリックします。

Device [image] Function & Object Browserを選択して、Function & Object Browserを表示します。ActiveX Objectsを選択して、DYNAMICIOLibをライブラリとして表示します。

例

VEEの例は、Help [image] Open Example… InstrumentIOディレクトリにあります。

関連項目

このユーティリティはスタンドアロンのActiveXオートメーション・サーバなので、C++やVisual Basicなどの他のアプリケーションからも使用できます。


インタフェースを動的に変更するには

VISAインタフェースおよびアドレスを動的に変更するには

Agilent VEEでは、Instrument Managerにリストされた各仮想計測器は、固有のVISAアドレスおよびそのVISAアドレス上の計測器と関連付けられます。VISAアドレスを変更した場合、仮想計測器はその新しいVISAアドレス上の別の計測器と関連付けられます。VISAアドレス変更後のVEEと仮想計測器との間のすべての通信は、VEEと新しいVISAアドレス上の計測器との間で行われます。

計測器のVISAアドレスは、GPIB、USB、TCP/IPインタフェースの間で、または同じインタフェース内で動的に変更できます。この機能を使えば、異なるインタフェースを通じて計測器を容易に使用できます。

VISAインタフェースおよびアドレスを動的に変更するには

VISAインタフェースおよびアドレスを変更するには、Formulaボックスを使用します。

例えば、GPIB計測器があり、その名前が AGDMMで、そのVISAアドレスをUSB0::2391::1031::US432109::0::INSTRに変更したい場合、Formulaボックスに次のように入力します。

IO.AGDMM.VISAAddress = "USB0::2391::1031::US432109::0::INSTR";

注記

計測器のVISAアドレスは、Instrument Managerから手動で変更できます。Instrument Managerで、インタフェースとアドレスを変更したい計測器を右クリックし、[Properties...]を選択します。[Instrument Properties]ダイアログ・ボックスが表示されます。[VISA Address]を必要に応じて変更します。インタフェースは次にこのダイアログ・ボックスを開いたときに自動的に変更されます。[OK]をクリックしてダイアログ・ボックスを閉じます。Instrument Managerの計測器リストは自動的に更新されます。

VISAインタフェースとアドレスの動的変更のいくつかのシナリオ

1. VEEプログラムを他のエンジニアと共有するには

計測器をテストするために、開発するVEEプログラムを他のエンジニアと共有する必要があるとします。他のエンジニアは、GPIB、USB、TCP/IPなど、異なるインタフェースを通じて計測器に接続する可能性があります。

この機能がない場合、異なるインタフェースに接続された計測器と通信するには、コードを別々に作成し、各インタフェースに対してInstrument Managerで設定を行う必要があります。

この機能を使うと、同じコードをすべてのインタフェースに対して使用できます。異なるインタフェースを通じて計測器と通信するには、FormulaオブジェクトでVISAアドレスを動的に変更するだけでよく、Instrument Managerでの設定は不要です。

例 DynamicaShareVEEProgram.vee.

2. 計測器とVEEプログラムを他のエンジニアと共有するには

GPIB経由でPCに接続された計測器をテストするVEEプログラムを開発したとします。別のエンジニアがこのVEEプログラムを使用したいといっていますが、そのエンジニアは計測器を持っていないので、ここにある計測器をTCP/IP経由でそのエンジニアに使用させる必要があります。

この機能がない場合、そのエンジニアはInstrument Managerを使って計測器を検出して設定し、VEEプログラム中の計測器関連のコードを書き直す必要があります。

この機能を使えば、そのエンジニアは計測器のVISAアドレスを変更するFormulaボックスを1つVEEプログラムに追加するだけですみます。Instrument Managerでの操作は不要です。

例 DynamicShareVEEProgramInstr.vee.

3. 異なるインタフェースを通じて接続された同じ計測器をテストするには

5台のAgilentデジタル・ マルチメータ 34410Aに対して一群のテストを実行する必要があるとします。うち2台はGPIBインタフェースを通じてローカルに接続されており、残り3台はTCP/IPインタフェースを通じてリモートで接続されています。

この機能がない場合、5台のAgilent 34410AすべてをInstrument Managerで検出して設定し、それぞれに対してテストを実行するコードを別々に作成する必要があります。

この機能を使えば、1台の計測器をInstrument Managerで追加し、テストする計測器のVISAアドレスを実行時に変更するだけで、すべてのAgilent 34410Aと通信できます。

例 DynamicTestInstr.vee.

注記

プログラムをステップ実行または休止すると、Instrument Managerで計測器の VISA Addressの動的変更を観察できます。ただし、プログラムが停止すると、VISA Addressはデザイン値、すなわちInstrument Managerで手動で設定したVISA Addressに戻ります。

関連項目

Instrument Manager

例の参照 Dynamicallychangevisaddress.vee.


Direct I/Oを使ってデータを読み取るには

この手順では、Direct I/Oオブジェクトを使ってHP 34401Aマルチメータからデータを読み取る方法を説明します。

1. Direct I/Oオブジェクトを使用するにはの手順で、Direct I/Oオブジェクトを作業領域に追加し、アドレスを722に設定します。

2. Direct I/Oオブジェクトは、トランザクションを使って計測器と通信します。オブジェクトの中の空白のトランザクション（強調表示されたフィールド）をダブルクリックします。[I/O Transaction]ダイアログ・ボックスが表示され、変数aが強調表示されます。文字列"MEAS:VOLT:DC?"を（引用符を含めて）正しい位置に入力します。[OK]をクリックして、トランザクションWRITE TEXT "MEAS:VOLT:DC?" EOLを作成します。

3. オブジェクト・メニューから[Add Trans]を選択するか、次の空白のトランザクションをダブルクリックして、2番目のトランザクションを追加します。トランザクション・ダイアログ・ボックスの操作をREADに、エンコードをTEXTに変更します。[OK]をクリックします。

4. Direct I/Oオブジェクトには次の2つのトランザクションがあります。

a. WRITE TEXT "MEAS:VOLT:DC?" EOLは、コマンド文字列"MEAS:VOLT:DC?"をアドレス722の計測器に書き込みます。HP 34401Aマルチメータの場合、コマンド文字列MEAS:VOLT:DC?は「DC電圧測定値を1つ出力する」という意味になります。

b. READ TEXT x REAL64は、アドレス722の計測器からテキスト・データを実数フォーマットで読み取り、Xデータ出力端子にデータを出力します。

5. プログラムを完成するために、AlphaNumeric表示オブジェクトを作業領域に追加し、下記のように接続します（HP 34401AマルチメータがGPIBアドレス722に接続されていれば、このプログラムを実行できます）。

関連項目

Direct I/O

MultiDevice Direct I/O

例題3-3:Direct I/Oの使用法

[Help] [image] [Contents and Index] [image] [以下の項目についての説明] [image] [I/Oトランザクション]

使用する計測器のプログラミング・マニュアル


Direct I/Oオブジェクトを使用するには

Direct I/Oオブジェクトを追加するには、[Instrument Manager]を使用します。HP 34401Aマルチメータの設定を例に取ります。

1. [I/O] [image] [Instrument Manager...]を選択します。ダイアログ・ボックスに設定済みの計測器のリストが表示されます。

2. 作業領域に追加したい計測器をクリックします。例として、dmm(hp34401a@(NOT LIVE))をクリックします。

3. [Properties]ボタンをクリックし、[Instrument Properties]ダイアログ・ボックスで、[Advanced…]ボタンをクリックします。[Advanced Instrument Properties]ダイアログ・ボックスの[General]タブで、[Live Mode]をONに設定します。[OK]ボタンをクリックして、[Instrument Manager]に戻ります。

4. [Direct I/O]ボタンをクリックします。Direct I/Oオブジェクトの輪郭線が表示されます。輪郭線を作業領域の適切な位置に配置し、マウス・ボタンをクリックします。オブジェクトのタイトル・バーには、計測器の設定済みの名前が表示されます。

5. トランザクション領域をダブルクリックして、計測器に対するコマンドを入力します。

関連項目

Direct I/Oを使ってデータを読み取るには

Direct I/O

MultiDevice Direct I/O

例題3-3:Direct I/Oの使用法


Plug&playドライバ・オブジェクトを使用するには

VXIplug&play Driverオブジェクトを作業領域に追加するには、[Instrument Manager]を使用します。

注記

VXIplug&play Driverオブジェクトとその他の計測器制御オブジェクト（Panel Driver、Component Driver、Direct I/O）の両方を、同じプログラムで同じ計測器と通信するために使用することはできません。

1. [I/O] [image] [Instrument Manager...]を選択します。ダイアログ・ボックスに設定済みの計測器のリストが表示されます。

2. 作業領域に追加したい計測器をクリックします。計測器にVXIplug&playドライバが設定されている場合、[Plug&play Driver]ボタンがアクティブになります。

3. [Plug&play Driver]ボタンをクリックして、[To/From VXIplug&play]オブジェクトを作業領域に配置します。

4. 空のトランザクションをダブルクリックします（または、オブジェクト・メニューから[Add Trans]または[Insert Trans]を選択します。[Select a Function Panel]ダイアログ・ボックスが表示されます。関数パネルが論理カテゴリ別に表示されます。カテゴリはドライバごとに異なります。

[+]および[-]アイコンをクリックすると、フォルダと関数の階層構造の表示／非表示を切り替えられます。

[f(x)]アイコンをクリックして、使用する関数パネルを選択します。

5. [Select a Function Panel]ダイアログ・ボックスで[OK]をクリックします。[Edit Function Panel]ダイアログ・ボックスが表示されます。

6. [Edit Function Panel]の設定を必要な値に変更します。計測器ドライバに関する詳細を見るには、[Help]ボタンを使用します。

7. [OK]をクリックします。計測器に対して別の関数を設定するには、To/From VXIplug&playオブジェクトの次のトランザクションをダブルクリックします。

関連項目

To/From VXIplug&play


VEEでのNIデータ収集の使用法

サポートされるPXIブリッジは一度に1つだけで、そのPCIバス番号は0～9の範囲内でなければなりません。

VEEでサポートされるNational Instrumentsドライバ・ライブラリは、niDMM、niSCOPE、niDAQ、niDAQmx、niSWITCH、niFGENの6種類です。

ライブラリ | リビジョン番号
NI-DAQ | 7.3以降（リビジョン7.4.1までテスト済み）
NI-DMM | 2.3.1以降（リビジョン2.5までテスト済み）
NI-SCOPE | 2.7以降（リビジョン3.0までテスト済み）
NI-FGEN | 2.2.1以降（リビジョン2.4までテスト済み）
NI-SWITCH | 2.3以降（リビジョン3.1までテスト済み）
NI-DAQmx | 8.1以降

これらのライブラリを使用して定義された計測器は、サポートされている他の計測器と同様に、Insturment Managerによって設定／検出されます。

1[I/O] [image] [Instrument Manager]

2 [Add]を選択し、計測器の名前を入力し、[Interface]ドロップダウン・ボックスを使って&ldquo;NIDAQ&rdquo;を選択します。

3 計測器を指定し、ドロップダウン・リストからドライバ・タイプを選択します。

4 計測器にアドレスを割り当て、Live Modeを設定します。

  • SCXIの場合、アドレスはSCXI{ケージ番号}::スロット番号

  • PXIの場合、アドレスはPXI{ケージ番号}::スロット番号

  • 従来のNIDAQの場合、アドレスは1～64

これらのドライバ・ライブラリの関数への呼び出しは、下に示すように、実際にはNIライブラリに対する直接呼び出しです。

各ライブラリの関数すべてに、NIヘルプを使用できます。また、NI関数呼び出しに伴う複雑な作業を単純化するために、いくつかの高レベルのAgilent関数が用意されています。

SCXIサポート

現在、1つのシステムでサポートされるのは一度に1つのSCXIカードケージだけで、そのシャーシ番号は、NI-MAXに定められているように、1～5の範囲内でなければなりません。

VEEから見ると、SCXIモジュールには2種類あります。この種類は主に、SCXIカード・ケージのシステムへの接続方法によって判定されます。Instrument Managerから&lsquo;Find Instruments&rsquo;を使用した場合、NI-DAQデバイスとして表示されるSCXIモジュールはNI-DAQドライバを使用します。これらのモジュールの場合、このドライバのSCXI_xxxxトランザクションだけが使用できます。他のトランザクション（Analog In、Analog Out、Digital Inなど）を使用すると、次のようになります。

NI-SWITCHデバイスとして表示されているSCXIモジュールは、NI-SWITCHドライバを使用します。SCXIモジュールの中には、NI-DAQとNI-SWITCHの両方のタイプとして表示されるものもあります。これらのモジュールは、NI-DAQデバイスとして使用することもNI-SWITCHデバイスとして使用することもできます。どちらのドライバを使用するかは、必要な機能に基づいて決定します。

NI-DAQの非同期性の問題

VEEのTo/From Plug&Playオブジェクトは非同期トランザクションを処理できないため、DAQ_Start()、SCAN_Start()、Lab_ISCAN_Start()の使用は推奨されません。同等の機能を同期的に実行するには、これらに対応するトランザクションDAQ_Op()、SCAN_Op()、Lab_ISCAN_Op()を使用します。Lab_ISCAN_Op()およびSCAN_Op()の場合、SCAN_Setup()などの追加のセットアップ／構成トランザクションをXXX_Op()トランザクションの前に使用する必要があります。.

テスト済み計測器

以下の計測器は、VEEで動作することが物理的にテストされています。

  • PXI-5411任意波形発生器（NI-FGEN）

  • PXI-5112 100 MHzデジタル・オシロスコープ（NI-SCOPE）

  • PXI-2503リレー・マルチプレクサ（NI-SWITCH）

  • NI-4050 PCMCIA 5 ?桁DMM（NI-DMM）

  • PXI-4060 5 ?桁マルチメータ（NI-DMM）

  • PXI-4070 6 ? Digit FlexDMM（NI-DMM）

  • PXI-6025EマルチファンクションI/O（NI-DAQ）

  • PCI-MIO-16XE-10マルチファンクションI/O（NI-DAQ）

  • PCI-6503デジタルI/O（NI-DAQ）

  • NI SCXI-1100 32チャネル±10Vアナログ入力モジュール（NI-DAQ）

  • NI SCXI-1163 32チャネル・デジタル出力モジュール（NI-DAQ）

  • NI SCXI-1161リレー・モジュール（NI-DAQ）

  • NI SCXI-1161リレー・モジュール（NI-DAQmx）

  • PCI-MIO-16XE-10マルチファンクションI/O（NI-DAQmx）

  • PXI-2503リレー・マルチプレクサ（NI-DAQmx）

  • PXI-6025EマルチファンクションI/O（NI-DAQmx）

  • PCI-6503デジタルI/O（NI-DAQmx）

一部の機器は、VEEから複数のドライバで通信できるため、2回以上記載されています。

注記

  • 一部の新しいPXI/CompactPCIカードは、National Instruments VISAがプライマリVISAとしてインストールされていないとVEEで使用できません。

  • NI VISAと、NI-DMM、NI-SCOPE、NI-FGEN、NI-SWITCHなどのそれに依存する製品を削除します。

  • NI VISA、NI-DMM、NISCOPE、NI-FGEN、NI-SWITCHなどを再インストールします。インストーラはAgilent VISAがすでにインストールされているという警告を発します。インストールを継続すると、Agilent VISA DLLの名前がvisa32.Agilent Technologies.dllに変更されます。

関連項目

To/From NIDAQ、NI-FGEN、NI-SCOPEのFetch/Read関数、NI-DAQmx


IVI-COMおよびInstrument Manager

IVIは、IVI Foundationによって開発されている新しい計測器ドライバ標準です。IVI Foundationは、テスト計測器のプログラミングの仕様を広めるために設立されたコンソーシアムです。これらの仕様は、さまざまな利点を備えていますが、重要な点として、計測器の相互交換性を容易にします。IVI Foundationの概要については、http://www.ivifoundation.org/をご覧ください。

IVI標準の長所は、計測器の互換性です。ベンダ2社がそれぞれのDMMに対してIVI-COMドライバを提供しているとします。IVI標準を満足するには、基本クラスのドライバに互換性がなければなりません。つまり、どちらのドライバをシステムに搭載しても、どちらのベンダのDMMも動作します。コードは、変更することなく再使用可能です。

IVI-COMドライバの使用法については、4つのシナリオがあります。いずれの場合でも、使用する計測器用のIVIドライバをまずダウンロードしてインストールする必要があります。次に、以下の4つのシナリオのうちの1つを適用します。

1 計測器の互換性は重要でなく、デバイス・ドライバを使用するだけで十分な場合は、このシナリオを用います。

Instrument Managerを起動し、計測器を追加します。計測器をダブルクリックして[Properties]ページを表示し、[Advanced]を選択します。[IVI-COM Driver]タブを選択し、計測器に対応するIVIドライバ名を選択します。これで、ご使用の計測器に合った機器固有のドライバをセットアップできました。機器固有のデバイス・ドライバはメーカ独自の機能を備えているため、同じクラスの他の計測器ドライバとは異なります。

この時点で、Instrument Managerに戻って計測器を選択し、[IVI-COM Driver]ボタンを選択してTo/Fromトランザクション・オブジェクトを作成することができます。

2 計測器の互換性が重要で、デバイス・ドライバを使用するだけで十分な場合は、このシナリオを用います。

Instrument Managerを起動し、計測器を追加します。計測器をダブルクリックして[Properties]ページを表示し、[Advanced]を選択します。[IVI-COM Driver]タブを選択し、計測器に対応するIVIドライバ名を選択します。[Instrument Interchangeability]ボックスで、[Use Class Complieant Interface]チェックボックスにチェックマークを付けます。このボックスにチェックマークを付けることにより、計測器ドライバのクラス対応のインタフェースだけを使って計測器とトークするように、VEEに指示します。これにより、DMMやオシロスコープなどのそのクラスの他の計測器と互換性を持つようになります。

3 計測器の互換性は重要でなく、IVIセッション名が重要な場合は、このシナリオを用います。

Instrument Managerを起動し、計測器を追加します。計測器をダブルクリックして[Properties]ページを表示し、[Advanced]を選択します。[IVI-COM Driver]タブを選択し、計測器に対応するIVIセッション名を選択します。IVIセッション名によってIVI Config Storeから計測器の設定情報が収集されるため、リソース文字列は淡色表示されます。

セッション名を定義していない場合は、[Instrument Interchangeability]ボックスに移動して、[Configure IVI Driver Session]ボタンを選択します。[Use Class Compliant Interface]チェックボックスにチェックマークを付けないでください。表示されたアプリケーションを使って、IVI Config Store情報を管理します。左上のアイコンは、コンピュータに直接接続されている計測器を検出し、IVI Config Storeで識別されている他の計測器を読み取ります。

計測器が検出されたら、セッションを追加したい計測器を右クリックして、[Add Instrument Session]を選択します。このウィザードを起動する前に、IVIドライバをコンピュータにインストールする必要があります。ウィザードが完了したら、作成したセション名を選択できます。

機器固有のドライバとIVIセッション名を使用します。

4 計測器の互換性とIVIセッション名の使用の両方が重要な場合は、このシナリオを用います。

Instrument Managerを起動し、計測器を追加します。計測器をダブルクリックして[Properties]ページを表示し、[Advanced]を選択します。[IVI-COM Driver]タブを選択し、計測器に対応するIVIセッション名を選択します。

セッション名を定義していない場合は、[Instrument Interchangeability]ボックスに移動して、[Configure IVI Driver Session]ボタンを選択します。いずれの場合も、[Use Class Compliant Interface]チェックボックスにチェックマークを付けます。

表示されたアプリケーションを使って、IVI Config Store情報を管理します。左上のアイコンは、コンピュータに直接接続されている計測器を検出し、IVI Config Storeで識別されている他の計測器を読み取ります。

計測器が検出されたら、セッションを追加したい計測器を右クリックして、[Add Instrument Session]を選択します。このウィザードを起動する前に、IVIドライバをコンピュータにインストールする必要があります。ウィザードが完了したら、作成したセション名を選択できます。

クラス対応のドライバとIVIセッション名を使用します。

関連項目

.NETおよびIVIドライバ、IVIドライバのサンプル


Panel Driverオブジェクトを使用するには

Panel Driverオブジェクトを作業領域に追加するには、[Instrument Manager]を使用します。HP 34401Aマルチメータの設定を例に取ります。

1. [I/O] [image] [Instrument Manager...]を選択します。[Instrument Manager]が表示され、Instrument List領域に設定済みの計測器のリストが表示されます。

2. 作業領域に追加したい計測器をクリックします。計測器に計測器ドライバ・ファイルが設定されている場合、[Create I/O Object]領域の[Panel Driver]ボタンがアクティブになります。例として、dmm(hp34401a@(NOT LIVE))をクリックします。

3. [Panel Driver]ボタンをクリックします。計測器パネル・オブジェクトの輪郭線が表示されます。輪郭線を作業領域の適切な位置に配置し、マウス・ボタンをクリックします。

4. ライブ・モードがOFF（デフォルト）の場合、hp34401a計測器パネルはシミュレートされたデータを生成します。表示フィールドの[?]をクリックしてみてください。シミュレートされた測定値が表示されます。ライブ・モードはパネル・ドライバだけで使用できます。

ライブ・モードがOFFの場合、計測器が存在しなくてもI/Oプログラムを実行できます。プログラムをテストして計測器を接続したら、ライブ・モードをONにできます。

5. Measure Panelはデフォルトで表示され、Function、Rangeなどを選択できます。Function設定を変更するには、DC Voltsというラベルの[Function]ボタンをクリックします。

6. 機能をDC Ampsに変更するには、リスト中のDC Ampsをダブルクリックします。DC Voltsに戻すには、ラベルがDC Ampsに変更された[Function]ボタンをクリックし、リスト中のDC Voltsをダブルクリックします。

ライブ・モードがOFFの場合、システムに計測器が接続されている場合でも、これらの変更は計測器にいっさい影響しません。一方、ライブ・モードがONで、HP 34401AマルチメータがGPIBに接続されている（アドレス指定と設定が正しく行われている）場合、VEEの計測器パネル・オブジェクトでの変更は計測器の状態を自動的に変更します。

7. Measure Panelは、選択できるパネルの1つに過ぎません。オブジェクトの右上隅にあるMeasure Panelボタンをクリックします。

8. リスト中のStatus Panelをダブルクリックします。Status Panelが表示されます。

9. Measure Panelに戻るには、Status Panelボタンをクリックし、Measure Panelをダブルクリックします。

計測器パネル・オブジェクトのさまざまなパネルを使えば、計測器のほぼすべての機能を制御できます。ただし、計測器パネルを有効に使用するには、その計測器について十分に知っておく必要があります。詳細については、計測器のマニュアルを参照してください。計測器パネル・オブジェクトに関する情報を見るには、オブジェクト・メニューで[Help]を選択します。

関連項目

パネル・ドライバ・オブジェクトを使ってデータを読み取るには


パネル・ドライバ・オブジェクトを使ってデータを読み取るには

この手順では、HP 34401Aマルチメータ用の計測器パネル・オブジェクトからのシミュレートされた電圧測定値を表示する単純なプログラムを作成します。

1. HP 34401A用の計測器パネル・オブジェクトを追加します（[I/O] [image] [Instrument Manager...]）。

2. 計測器パネルのオブジェクト・メニューから、[Add Terminal by Component] [image] [Select Output Component]を選択します。

3. HP 34401Aのディスプレイをクリックします。Reading端子が出力に追加されます。

4. AlphaNumeric表示オブジェクトを作業領域に追加し、下のように接続し、プログラムを実行します。ライブ・モードがOFFなので、データはシミュレートされたものです。このことは、Simulated Dataラベル（およびタイトル・バーの(NOT LIVE)）からわかります。

5. ライブ・モードをONにするには、[I/O] [image] [Instrument Manager...]を選択し、リストでdmm (hp34401a @ (NOT LIVE))を（すでに強調表示されていない場合）選択し、[Properties]をクリックします。[Instrument Properties]ダイアログ・ボックスが開き、HP 34401Aマルチメータの設定が表示されます。

6. 表示されたアドレス（デフォルトは722）が計測器のアドレスに一致しない場合、正しいアドレスを入力します（計測器のアドレスの詳細については、計測器のマニュアルを参照してください）。

7. [Advanced…]ボタンをクリックします。[Live Mode]の右側のボタンをクリックします。ボタンが[OFF]から[ON]に切り替わります。[OK]ボタンをクリックして、[Instrument Manager]ダイアログ・ボックスに戻ります。

8. [Save]ボタンをクリックします。計測器パネルでライブ・モードがONになっています。

新しいタイトルhp34401a (@ 722)は、ライブ・モードがONであり、計測器パネルがGPIBアドレス722のHP 34401Aマルチメータと通信するように設定されていることを示します。もちろん、実際にHP 34401Aがアドレス722でコンピュータに接続されていなければ、コンピュータはタイムアウトします。

この時点で、HP 34401Aがあれば、接続してプログラムを実行できます。ない場合は、[Advanced Instrument Properties]ダイアログ・ボックス（[I/O] [image] [Instrument Manager...]、[Properties]をクリック、[Advanced…]をクリック）を使って、ライブ・モードをOFFに戻します。


Component Driverオブジェクトを使用するには

コンポーネント・ドライバ・オブジェクトを使用すると、性能を多少向上させることができます。HP 34401Aマルチメータの設定を例に取ります。

1. [I/O] [image] [Instrument Manager...]を選択します。[Instrument Manager]が表示され、Instrument List領域に設定済みの計測器のリストが表示されます。

2. 作業領域に追加したい計測器をクリックします。計測器に計測器ドライバ・ファイルが設定されている場合、[Create I/O Object]領域の[Component Driver]ボタンがアクティブになります。例として、dmm(hp34401a@(NOT LIVE))をクリックします。

3. [Component Driver]ボタンをクリックし、オブジェクトの輪郭線を作業領域に配置します。

4. コンポーネント・ドライバ・オブジェクトがアイコンで表示されます。アイコンをダブルクリックしてオープン・ビューを表示します。

5. Reading端子をコンポーネント・ドライバ・オブジェクトに追加します（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Output]）。

関連項目

manual22.vee このプログラムはmanualサンプル・ディレクトリにあります
Help [image] Open Example...

Component Driver


いくつかの手法

このセクションでは、Panel DriverおよびComponent Driverオブジェクトを対話的にまたはプログラムで使用するためのいくつかの手法を紹介します。

Panel Driverオブジェクトの対話的使用

Panel Driverオブジェクトのオープン・ビューには、グラフィカル制御パネルがあり、測定ステートを対話的に作成するために使用できます。対応する物理計測器をコンピュータに接続してLive Modeをオンにすると、測定ステートを作成しながら対話的に物理計測器を制御できます。

個々の設定を変更するには、グラフィカル制御パネルで対応するフィールドをクリックし、表示されるダイアログ・ボックスに記入します。測定を実行して結果を表示するには、数値またはXY表示の表示領域をクリックします。XY表示の更新には数秒かかる場合があります。

プログラムからのPanel Driverオブジェクトの使用

Panel Driverオブジェクトをプログラムに追加するには、以下の手順を実行します。

1 [I/O] [image] [Instrument Manager...]をクリックします。[Instrument Manager]が表示されます。

2 目的の計測器をクリックして強調表示し、[Panel Driver]ボタンをクリックします。

注記

パネル・ドライバ・ファイルで計測器が設定されていない場合、[Panel Driver]ボタンは非アクティブ（淡色表示）になります。設定手順については、 を参照してください。

3 オブジェクトの輪郭線が表示されたら、作業領域にカーソルを置き、1回クリックしてオブジェクトを配置します。

プログラムでPanel Driverオブジェクトを使用する場合、入力または出力端子を使用してコンポーネントの値を設定できます。各入力／出力端子は、実際にはドライバの1つのコンポーネントに対応します。端子を追加するには2つの方法があります。

Panel Driverのオブジェクト・メニューで [Add Terminal] [image] [Data Input] または [Add Terminal] [image] [Data Output] を選択します。まだ端子として使用されていない有効なドライバ・コンポーネントの一覧がリスト・ボックスに表示されます。端子として追加するリスト中のコンポーネントをダブルクリックします。

Panel Driverのオブジェクト・メニューで [Add Terminal by Component] [image] [Select Input Component]または[Add Terminal by Component] [Select Output Component] を選択します。この選択の後、グラフィカル制御パネルのフィールドまたは表示領域の1つをクリックすると、対応するコンポーネントが端子として追加されます。

一般的に、上の2番目の方法のほうが、使用したいコンポーネントの名前を推測しなくてすむので便利です。ただし、一部のコンポーネントはグラフィカル制御パネルに表示されていません。このようなコンポーネントには、最初の方法でアクセスする必要があります。

プログラムでのComponent Driverオブジェクトの使用

Component Driverオブジェクトをプログラムに追加するには、以下の手順を実行します。

1 [I/O] [image] [Instrument Manager...]をクリックします。設定されている計測器のリストが表示されます。

2 目的の計測器をクリックして強調表示し、[Component Driver]ボタンをクリックします。

注記

パネル・ドライバ・ファイルで計測器が設定されていない場合、[Component Driver]ボタンは非アクティブ（淡色表示）になります。設定手順については、 を参照してください。

3 オブジェクトの輪郭線が表示されたら、作業領域にポインタを置き、1回クリックしてオブジェクトを配置します。

Component Driverオブジェクトは一般的に、少数のコンポーネントだけを変更しながら計測器制御オブジェクトを繰り返し実行する場合に使用します。このような場合にPanel DriverオブジェクトよりもComponent Driverオブジェクトが適しているのは、Component Driverオブジェクトは指定したコンポーネントだけの書き込み／読み取りを行うため、多少高速に実行できるからです。

次のプログラムは、このような場合の例です。このプログラムは、フィルタの周波数応答を測定するために、fgenから供給される入力周波数を掃引しながら、dvmを使って応答を測定します。For Log Rangeに付属するサブスレッドは繰り返し実行されるため、実行速度を改善するためにコンポーネント・ドライバが使用されています。ただし、fgenとdvmの初期設定にはPanel Driverオブジェクトが適切です。

上のプログラムは、manual15.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

パネル・ドライバのヘルプの表示

Panel Driverに関するヘルプを見るには、Panel DriverまたはComponent Driverのオブジェクト・メニューからHelpを選択します。次に、表示されるダイアログ・ボックスから適切なヘルプ項目を選択します。

関連項目

パネル・ドライバによるI/Oの仕組み, パネル・ドライバの内部, パネル･ドライバの動作,


PCプラグイン・ボードの使用法

VEEでは、PCプラグイン・ボードまたはカードを制御する方法として次の2つが提供されています。

1 Data Translation社のVisual Programming Interface（VPIアプリケーションはData Translation社に直接注文してください）。

2 ComputerBoardsやMeilhausなどのPCボード・メーカから提供されているDLL（Dynamic Link Libraries）（DLLの使用法の詳細については、「ダイナミック・リンク・ライブラリの使用法」を参照してください。

Data Translation社のVisual Programming Interface（VPI）

Data Translation社のVPIはVEEで動作して、PCプラグインのためにシームレスなデータ収集性能を発揮します。Data Translation社のOpen Layers規格の柔軟性を利用して、50種類以上のデータ収集ボードにアクセスできます。

VPIは、チャネル数の少ないプラグインISA、PCI、USBベースのデータ収集カードに対して直接動作します。VPIはメニューの選択項目と特定のPCプラグイン・データ収集アイコンをVEEに追加します。これらはData Translation社製ハードウェアの機能を制御します。

Amplicon

Ampliconは、200シリーズの幅広いアナログおよびディジタルのI/O PCプラグイン・ボードを提供しており、すべてVEEでサポートされています。

AmpliconのAMPDIOドライバ・パッケージにはソフトウェア・インタフェースが含まれています。このインタフェースは、Windows用マルチスレッドDLLを持ち、割り込み駆動型収集をサポートする32ビットAPIです。APIには100個以上の関数呼び出しが用意されており、VEE固有の定義ファイルを使用して、コンパイル済み関数として効率良く柔軟にプログラミングを行うことができます。また、1つのプログラムで最大8つのボードを簡単に使用することができます。

シリアル通信デバイスを含むAmplicon独自のプラグイン・ボードに加えて、Ampliconでは、データ収集、シリアル通信、GPIBアプリケーション用に、他のさまざまなメーカのボードも提供しています。

下図に示すように、VEEランタイム・ソフトウェア（Ampliconのアナログ出力ボードPCI224とPCI234、およびアナログ入力ボードPCI230とPCI260に無償で付属）は、PC上で入力／出力信号を同時に送信できます。

ComputerBoardsが提供するPCプラグイン

ComputerBoardsは、VEEと互換性のある低価格で強力なPCプラグイン・ボードを提供します（サポートされているPCプラグイン・ベンダの完全なリストについては、VEEのドキュメントを参照してください）。

ボードとI/Oライブラリをインストールして、メーカが提供するプログラムを使ってボードを設定します。説明書に従ってボードをデバイスに接続します。VEEでは、ライブラリをインポートするだけで、ComputerBoards I/Oライブラリの測定関数を呼び出すことができます。メーカが提供するデモ・プログラムから抜粋した次の図を参照してください。

上の図は、この100 kHz A/Dボードを使用したデモンストレーション・プログラムのパネル・ビューです。下の図は、このデータ収集関数の呼び出しを可能にするComputerBoardsのI/OライブラリをVEEでインポートするところです。

Meilhaus ElectronicのME-DriverSystem

Meilhaus Electronicは、ヨーロッパを代表するPCベースのデータ収集／インタフェース技術の設計・生産・販売会社です。CD-ROMで提供しているWindows向けME-DriverSystemには、Meilhaus Electronicによって生産されているすべてのデータ収集ボード（MEシリーズ）が含まれます。ME-DriverSystemはまた、VEEのメニュー構造に統合されます。

VEE用ME-DriverSystemをインストールすると、VEEのプルダウン・メニューにドライバの関数が表示されます。

メニューの第2位のレベルには、Analog InputおよびOutput、Digital I/O、特定のボードの関数といった関数グループがあります。下の図は、データ収集ボードME-3000用のユーザ・パネルを示します。

最後に、第3位のメニューには、me3000AISingleのような実際の関数があります。


GPIB計測器をポーリングするには

GPIB計測器は、サービス・リクエスト（"SRQ"）をバス上に送出する場合があります。Agilent VEEには、どのデバイスがサービスを要求し、何が問題であるかを判定するための2つのデバイスが用意されています。これらのオブジェクトはともに、[I/O] [image] [Advanced I/O]の下にあります。

Interface Eventオブジェクトは、バス全体のイベントを報告します。例えば、Interface Eventがhpib7のSRQを報告するように設定されている場合、論理装置番号7のインタフェース上の任意のデバイスから発生するイベントを検出できます。シリアルおよびVXIインタフェース上に計測器が設定されている場合、Interface Eventオブジェクトは、これらのインタフェースに発生したイベントを検出するためにも使用できます。

Instrument Eventオブジェクトは、特定の計測器のステータス・バイトを返します。GPIBでは、Instrument Eventオブジェクトを使ってバス上の個々のデバイスをポーリングできます。

例

次のプログラムは、Interface EventおよびInstrument Eventオブジェクトを使ってGPIBサービス・リクエストを処理する方法を示します。

このプログラムで、Interface Eventオブジェクトは、hpib7、すなわち論理装置番号7のGPIBインタフェースのイベントを待ちます。ただし、Interface Eventオブジェクトではバス上のどのデバイスがイベントを発生したかはわかりません。

Interface Eventオブジェクトのevent出力は、2つのInstrument Eventオブジェクトをアクティブにします。これらは2台のGPIB計測器（HP 34401AとHP 54600A）を別々にポーリングします。各Instrument Eventオブジェクトでは、操作がAny Setに設定されており、マスクが#H10に設定されています。Any Setにより、オブジェクトはイベントが発生するまで待ち、返された値とマスク#H10との論理ANDを実行します。このマスクは、ステータス・バイトのビット4すなわちDAV（"data available"）に対応します。結果はstatus出力端子に返されます。

関連項目

Instrument Event

Interface Event


バス・メッセージをモニタするには

Agilent VEEは、一連のメッセージを使って計測器と通信します。GPIBの場合、バス・メッセージはIEEE-488標準に従います。通常は、これらのメッセージを見ることはできません。しかし、I/Oプログラムをデバッグする際には、バス上のメッセージをモニタしたい場合があります。このためには、IOメニューでAgilent I/O Monitorを開きます。このI/O Monitorは、VXIまたはシリアル・インタフェースのメッセージをモニタするためにも使用できます。

注記

Agilent I/O Monitorは、VXIplug&playドライバによるI/Oは表示しません。

Agilent I/O Monitorを起動するには

[I/O] [image] [I/O Monitor]を選択します。Agilent I/O Monitorが表示されます。

バス上のメッセージをモニタするには、[Start] [image] ボタンをクリックしてモニタ・セッションを開始してから、VEEプログラムを実行します。Agilent I/O Monitorはバス上のすべてのメッセージを表示します。

Agilent I/O Monitorの使用の詳細については、Agilent I/O Monitorのヘルプを参照してください。

関連項目

Agilent I/O Monitor


数値を入力するには

VEEの数値入力フィールドに数値を入力するには、以下の例に示す記法を使用します。ハイフン（-）はマイナス符号、ピリオド（.）は小数点として使用できます。プラス符号（+）を数値入力フィールドに入力することもできます。区切り記号のカンマ（,）は使用できません（テキスト入力フィールドには、任意の文字列を入力できます）。

通常の数値入力

1001

1020768（1,020,768は不可）

12.12

-1.223

指数数値入力

1.23E3（1.23x10^3すなわち1230に相当）

6.0225E23（6.0225x10^23に相当）

6.6256E-27（6.6256x10^-27に相当）

ISO省略形を使った数値入力

1.23k（1.23x10^3すなわち1230に相当）

3.61M（3.61x10^6に相当）

2.3n（2.3x10^-9に相当）

下の表は、VEEでの数値入力の際に認識されるISO省略形の一覧です。

省略形 サフィックス 乗数

X エクサ 10^18

P ペタ 10^15

T テラ 10^12

G ギガ 10^9

M メガ 10^6

kまたはK キロ 10^3

m ミリ 10^-3

u マイクロ 10^-6

n ナノ 10^-9

p ピコ 10^-12

f フェムト 10^-15

a アット 10^-18

VEEは、入力された数値の形式を等価な別の形式に変更することがあります。例:

+1.23は1.23になります（プラス符号を削除）。

6.3E-9は6.3nになります。

6.0225E23は602.25E21になります（標準数値フォーマット）。

関連項目

数値フォーマットを変更するには


数値フォーマットを変更するには

数値を表示するすべてのオブジェクトに対するデフォルトのグローバル数値フォーマットを変更できます。また、数値を表示する一部のオブジェクトの数値フォーマットを個別に変更できます。

グローバル数値フォーマットを変更するには

1. FileメニューでDefault Preferencesを選択します。次に、ダイアログ・ボックスでNumberタブを選択します。

2. 対応するフィールドを変更することにより、目的の数値フォーマットを選択します。

a. Integerは整数の基数を決定します。Decimal、Octal、Hexadecimal、Binaryのいずれかです（フィールドまたは矢印をクリックするとドロップダウン・リストが表示されます）。

b. Realは実数のフォーマットを決定します:Standard、Fixed、Scientific、Engineeringのいずれかです（フィールドまたは矢印をクリックするとドロップダウン・リストが表示されます）。

c. Significant digitsは有効数字の数を決定します（上限は18）。必要な数を入力します。

3. 変更を保存する方法を選択します。

a. Saveをクリックして、vee.rcに新しいデフォルト値として保存します。

b. OKをクリックして、変更を現在のVEEセッションだけで（File [image] New、Open、Exitを選択するまで）使用します。

特定のオブジェクトの数値フォーマットを変更するには

以下のオブジェクトに対しては、数値フォーマットを個別に選択できます。選択した数値フォーマットは、当該オブジェクトだけでグローバル数値フォーマットの代わりに用いられます。

メニューData [image] Continuousの数値スライダおよびノブ

メニューData [image] Constantの定数

メニューDisplayのAlphaNumeric

メニューDisplayのLogging AlphaNumeric

メニューDisplay [image] IndicatorのFill Bar、Meter、Tank、Thermometer

メニューDisplayのXYグラフィカル表示

1. オブジェクトのオブジェクト・メニューからPropertiesを選択し、 Number Formatをクリックします。

2. チェック・ボックスをクリックしてGlobal Formatをオフにします。次に、数値フォーマット・フィールド（またはその矢印）をクリックしてドロップダウン・メニューを表示します。

3. オブジェクトで使用する数値フォーマットを選択し、OKをクリックします。


Trig Modeを変更するには

VEEでは、三角関数の値の入力と表示は、Trig Modeの設定に応じて、度、ラジアン、グラジアンの単位で行われます。.

選択した新しいTrig Modeは、現在のVEEセッションの間有効です。VEEを再起動した場合、Trig Modeはデフォルト（Degrees）に戻ります。各コンテキスト（メイン、UserObject、UserFunction）には固有のTrig Mode設定があります。

1. メイン、UserObject、UserFunctionウィンドウのオブジェクト・メニューを開き、Propertiesを選択します。

2. Trig Modeを選択し、Degrees、Radians、Gradiansのいずれかを選択します。

注記

内部計算はすべてラジアンで行われます。Trig ModeをRadiansに設定すると、ラジアンとの間の変換が不要になるため、性能が多少向上します。

ショートカット

メイン、UserObject、UserFunctionウィンドウのタイトル・バーをダブルクリックするとPropertiesダイアログ・ボックスが開きます。


データ定数を使用するには

VEEには何種類かのデータ定数があります。スカラ・データ定数を使用するには:

1. データ定数オブジェクト（Data [image] Constant [image] ）を選択します。選択できるのは、Text、UInt8、UInt16、Int16、Int32、Int64、Real32、Real64、Coord、Complex、PComplex、Date/Time、Recordです。

2. 適切な型のデータを定数オブジェクトに入力します。最も一般的な型としては、Text、Int32、Real64定数オブジェクトがあります。

a. Text定数には、任意のテキスト文字列（最大長は32,767文字）を入力できます。

b. Int32定数には、任意の32ビット2の補数整数（範囲は-2147483648～+2147483647）を入力できます。

c. Real64定数には、任意の64ビット実数（範囲は±1.7976931348623157E308）を入力できます。

下の例では、Text、Int32、Real64定数オブジェクトがVEEプログラムのスレッドに接続されています。データ型は、データを受け取るオブジェクトによって必要に応じて自動的に変換されます。この例では、3が実数に変換され、6.24に加算されることにより、実数値9.24が得られます。

関連項目

配列定数を作成するには

データ・スライダを使用するには

データ選択オブジェクトを使用するには

データ入力ダイアログ・ボックスを使用するには

入力端子のデータ型の変換


データ・スライダを使用するには

データ・スライダおよびノブを使用するには

VEEには4種類のデータ・スライダ／ノブ・オブジェクトがあります。Real64 Slider、Int32 Slider、Real64 Knob、Int32 Knobです。これらのオブジェクトを使うと、直線のスライダまたは回転ノブを動かして値を入力できます。

Real64スライダまたはInt32スライダを使用するには

1. Data [image] Continuous [image] Real64 SliderまたはInt32 Sliderを選択し、オブジェクトを作業領域に配置します。デフォルトでは、Real64 Sliderオブジェクトの範囲は0～1、Int32 Sliderの範囲は0～100です。

2. 現在値（上のフィールドに表示）を次の3つの方法のどれかで変更します。

a. スライダ・ノブをクリックしてボタンを押したまま上または下に動かします。

b. 値の横のスピン・フィールド矢印をクリックします。

c. 値をクリックして新しい値を入力します。

3. 範囲を変更するには、上限値または下限値のフィールドをクリックして、値を入力します。

Real64ノブまたはInt32ノブを使用するには

1. Data [image] Continuous [image] Real64 KnobまたはInt32 Knobを選択し、オブジェクトを作業領域に配置します。デフォルトでは、Real64 Knobオブジェクトの範囲は0～1、Int32 Knobの範囲は0～100です。

2. 現在値（下のフィールドに表示）を次の3つの方法のどれかで変更します。

a. 回転ノブをクリックしてボタンを押したまま回します。

b. 値の横のスピン・フィールド矢印をクリックします。

c. 値をクリックして新しい値を入力します。

3. 範囲を変更するには、上限値または下限値のフィールドをクリックして、値を入力します。

関連項目

Int32 Knob、Int32 Slider 、Real64 Knob 、Real64 Slider


データ選択オブジェクトを使用するには

VEEには6種類のデータ選択オブジェクトがあります。Radio Buttons、Cyclic Button、List、Drop-Down List、Pop-Up List、Slider Listです。

データ選択オブジェクトを使用するには

（この手順ではRadio Buttonsオブジェクトについて説明しますが、6種類のデータ選択オブジェクトすべてに同じ手順が使用できます）

1. Data [image] Selection Control [image] Radio Buttonsを選択し、オブジェクトを作業領域に配置します。デフォルトのラジオ・ボタンの選択肢はItem 1、Item 2、Item 3です。

2. デフォルトの選択肢を変更するには、オブジェクト・メニューからEdit Enum Valuesを選択します。Edit Enum Valuesダイアログ・ボックスが表示されます。

3. 必要に応じて値を編集します。Tab（または下矢印）を使って次のフィールド、Shift+Tab（または上矢印）を使って前のフィールドに移ることができます。各フィールドのテキストは書き換えることができ、最後のフィールドの次にタブで移ってテキストを入力することにより、フィールドを追加することもできます。

4. フィールドの編集が終わったら、OKをクリックします。

データ選択オブジェクトの種類を変更するには

1. オブジェクト・メニューからPropertiesを選択します。Selection Control Propertiesダイアログ・ボックスが表示されます。

2. Generalタブで、目的のFormat種類を選択し、OKをクリックします。

関連項目

Selection Control


データ入力ダイアログ・ボックスを使用するには

Data [image] Dialog Boxの下の3つの組込みダイアログ・ボックス・オブジェクトを使うと、プログラムでデータ入力を求めることができます。3つのオブジェクトとは、Text Input、Int32 Input、Real64 Inputです。

（この手順ではReal64 Inputダイアログ・ボックス・オブジェクトについて説明しますが、Int32 InputおよびText Inputオブジェクトにも同じ手順が使用できます）

1. Real64 Inputダイアログ・ボックス・オブジェクトを作業領域に追加します（Data [image] Dialog Box [image] Real64 Input）。

Real64 Inputオブジェクトが動作すると、ユーザの実数入力を求めるポップアップ・ダイアログ・ボックスが表示されます。次のパラメータを設定できます。

a. Prompt/Labelは、ダイアログ・ボックスに表示されるメッセージを決定します。

b. Default Valueは、ダイアログ・ボックスに表示されるオプションのデフォルト値を決定します。

c. Value Constraintは、入力された値が満たすべき範囲またはその他のテストを指定します。

d. Error Messageは、ユーザが入力したデータがValue Constraintのテストを満たさなかった場合に表示されるエラー・メッセージを決定します。

2. Prompt/LabelフィールドをPlease enter a real value.に変更します。

3. プログラムを実行します。ポップアップ・ダイアログ・ボックスが表示されます。

4. ダイアログ・ボックスに11と入力してOKをクリックします。エラー・メッセージが表示されます。

5. エラー・メッセージ・ボックスでOKをクリックします。今度は0～10の範囲内の値をReal64 Inputダイアログ・ボックスに入力し、OKをクリックします。値が受け入れられ、Value端子に出力されます。

関連項目

ダイアログ・ボックス

組み込みDialog Boxオブジェクトについて


式を入力するには

VEEの基本的な演算オブジェクトは、Formulaオブジェクトです。

作業領域に配置されたとき、このオブジェクトは既定の式とAという1つの入力端子を持ちます。式の中の変数 A は、データ入力端子 A に対応します。

式の中の変数は、その変数と同じ名前を持つ入力端子のデータに置き換えられます。変数名と端子名の大文字／小文字は区別されません。式a+1で、変数aは端子Aに対応します。

式の中の変数に対応する入力端子がない場合、エラーが発生します。グローバル変数を使用した場合は、対応する端子は不要です。

Formulaオブジェクトを使用するには

1. Formulaオブジェクトを作業領域に追加します（[Device] [image] [Formula]）。

2. Formulaオブジェクトの式フィールドをクリックし、必要な式に変更します。例えば、2*A+abs(B)+sin(C)+6といった式を入力します。Enterを押すことにより、1つまたは複数の式を複数の行に入力できます。

3. 必要なデータ入力端子を追加します（データ入力端子領域にポインタを置いてCtrl+Aを押します）。不要なデータ入力端子は削除します（端子の上にポインタを置いてCtrl+Dを押します）。

4. すべてのデータ入力端子を適切なデータ・ソースに接続し、Resultデータ出力端子を表示オブジェクトに接続して、プログラムを完成します。

VEE 8.0以降、Code CompletionとCode InsightがFormulaで使用可能になりました。

例

次のプログラムは、Formulaオブジェクトを使って式を評価し、結果を表示しています。式は各項の間で複数の行に区切られています。

関連項目

変数を作成するには

Formula

データの処理

Code Completion

Code Insight


算術演算子と関数を使用するには

VEEでは、150種類以上の組み込み演算オブジェクトが、演算子と関数の形で用意されています。これらは実際には、説明のタイトル、式、適切なデータ入力端子があらかじめ設定されたFormulaオブジェクトです。演算子と関数にアクセスするには、[Device] [image] [Function & Object Browser]を選択します。

[Function & Object Browser]ボタン

演算オブジェクトは次の方法で変更できます。

1. 式を任意の有効なVEE式に変更します。

2. タイトルを新しい式を表すものに変更します。

3. 必要に応じてデータ入力端子を追加または削除します。

ヒント

1. 複数のFormulaオブジェクトを使って式を結合することは避けてください。その代わりに、演算子と関数を1つのオブジェクトの1つの式の中で組み合わせてください。VEEプログラムはオブジェクトの数が少ないほど高速に動作します。

悪い例:

良い例:

2. 式を変更する場合、変数名に対応する入力端子が存在することを確認してください。

3. データ入力端子の名前を変更する場合（端子をダブルクリックして新しい名前を入力）、式の中の対応する変数名も必ず変更してください。

4. オブジェクトをアイコン化する前に、新しい演算式の機能を説明するようにタイトルを変更してください。オブジェクトのタイトルは常に変更するのがプログラミング上の良いやり方です。

関連項目

データの処理


式で混合データ型を使用するには

VEEは必要に応じて自動的にデータ型を変換するので、異なるデータ型が混在した式を使用できます。演算オブジェクトに式を入力し、適切なデータ入力端子にデータ・ソースを接続するだけです。

例

次のプログラムでは、Formulaオブジェクトが波形データを入力端子A、実数データを入力端子Bで受け取ります。Formulaオブジェクトは、式abs(A)+Bを評価するために、実数値0.75を波形の256個のポイントのそれぞれの絶対値に加算します。

関連項目

データの処理


If/Then/Elseオブジェクトで式を使用するには

VEEでは、式を評価し、その結果に基づいてプログラムのフローを分岐できます。基本的な条件オブジェクトはIf/Then/Elseオブジェクトです。

If/Then/Elseオブジェクトのデフォルト式は任意の条件式に変更できます。また、Flow [image] Conditionalの下のオブジェクトも使用できます。Conditionalオブジェクトは実際には、式、説明のタイトル、データ入力端子があらかじめ設定されたIf/Then/Elseオブジェクトです。

If/Then/Elseオブジェクトを使用するには

1. If/Then/Elseオブジェクトを作業領域に追加します（Flow [image] If/Then/Else）。

2. If/Then/Elseオブジェクトの式フィールドをクリックし、必要な式に変更します。例えば、A==B OR B>=Cといった式を入力します。

3. 必要なデータ入力端子を追加します（データ入力端子領域にポインタを置いてCtrl+Aを押します）。不要なデータ入力端子は削除します（端子の上にポインタを置いてCtrl+Dを押します）。

4. すべてのデータ入力端子と、1つまたは両方のデータ出力端子を接続して、プログラムを完成します。式が真の場合、式の結果（通常は1）がThen端子に出力されます。式が偽の場合、、0がElse端子に出力されます。

5. 必要な場合、Else If条件をオブジェクトに追加します。

例

次のプログラムでは、式A==B OR B*C==50が真の場合、Then出力端子がUserObject1をアクティブにします。式が偽の場合、Else出力端子がUserObject2をアクティブにします。

関連項目

VEEプログラム内で分岐するには

Conditional

If/Then/Else

データの処理


トランザクションで式を使用するには

VEEの演算式は、To FileやFrom FileなどのI/Oトランザクション・オブジェクトの中でも評価して使用できます。

To Fileトランザクションでの式の評価の例

1. To Fileオブジェクトを作業領域に追加します（[I/O] [image] [To] [image] [File]）。

2. トランザクションWRITE TEXT a EOLをダブルクリックします。[I/O Transaction]ダイアログ・ボックスが表示されます。

3. デフォルトの式aをクリックしてa+sin(b)に変更します。

4. [OK]をクリックして新しいトランザクション（WRITE TEXT a+sin(b) EOL）を保存します。

5. オブジェクトにBデータ入力端子を追加し、データ入力端子を接続します。

次のプログラムで、To Fileオブジェクトはaの値（1）をsin(b)の値（30°のサインは0.5）に加算し、結果の1.5をmyFileという名前のファイルに出力します。

関連項目

Formula、From File、To File

データの処理


文字列の長さを求めるには

1. Function & Object Browserを使ってstrLen(str)オブジェクトを作業領域に追加します。ツールバーで [image] をクリックします。

2. 文字列データのソースをstrデータ入力端子に接続します。Result出力を適切に接続します。

3. プログラムを実行します。strLen(str)オブジェクトが動作すると、文字列の長さがResult端子に出力されます。

例

strLen(str)オブジェクトは、文字列のバイト単位の長さをInt32数値で出力します。strが1次元の文字列配列の場合、strLen(str)は配列の各要素の長さを含む配列を返します。

関連項目

strLen(str)


副文字列を取得するには

副文字列を取得するには、次の2つの関数が使用できます。

strFromThru(str,from,thru)
strFromLen(str,from,len)

ここで:

strは元の文字列

fromは副文字列の開始位置

thruは副文字列の終了位置

lenは副文字列の長さ

文字列の文字位置はすべて0から始まります。すなわち、最初の文字は位置0にあります。

strFromThru(str,from,thru)を使って副文字列を取得するには

1. Function & Object Browserを使って、strFromThruを作業領域に追加します。

ツールバーの [image] をクリックし、次の項目の下を見ます。
Built-in Functions
String
strFromThru

2. 文字列データのソースをstr入力端子に接続します。

3. fromとthruの値を指定します。

a. fromおよびthru入力端子にデータを接続します。

または

b. 式を変更してfromとthruを明示的に指定します。例えば、式strFromThru(str,0,5)は文字列strの文字0～5（最初の6文字）を返します。この方法を使用する場合、fromおよびthru端子は削除してください。

例

次のプログラムは、文字列の最初の6文字を返します。

関連項目

strFromLen (str,from,len)

strFromThru (str,from, thru)


文字列を連結するには

VEEでは、加算（+）および乗算（*）を使って文字列を連結できます。

例

2つの文字列を次のように連結できます。

文字列と数値を次のように連結できます（数値は文字列に変換されます）。

数値と文字列を乗算することにより、次のように文字列を繰り返し連結できます。

関連項目

Accumulator

Concatenator


2つの文字列が等しいかどうか比較するには

例

次のプログラムは、条件オブジェクトを使って2つの文字列が等しいかどうかを比較します。2つの文字列が完全に一致する場合（スペースを含む）、式の結果（この場合は1）がThen端子に出力されます。それ以外の場合、0がElse端子に出力されます。この比較は大文字と小文字を区別します（Nowはnowとは一致しません）。

関連項目

Conditional

strPosStr (str1,str2)


数値を文字列に変換するには

数値を文字列に変換するには、To Stringを使用します。以下の手順は、秒単位の現在時刻をタイム・スタンプ・フォーマットの文字列に変換する方法を示します。

1. To Stringオブジェクトを作業領域に追加します（[I/O] [image] [To] [image] [String]）。アイコンをダブルクリックしてオープン・ビュー・オブジェクトを表示します。

2. デフォルトのトランザクションWRITE TEXT a EOLをダブルクリックします。[I/O Transaction]ダイアログ・ボックスが表示されます。

3. DEFAULT FORMAT（またはその矢印）をクリックして、ドロップダウン・メニューを表示します。TIME STAMP FORMATを選択し、OKをクリックします。

4. Function & Object Browserを使ってnow()オブジェクトを追加します。

ツールバーの [image] をクリックし、次の項目の下を見ます。
Built-in Functions
Time & Date
now

now()をTo Stringのデータ入力端子に接続し、AlphaNumeric表示をデータ出力端子に接続します。

5. プログラムを実行します。now()オブジェクトが秒単位の時刻を出力します。この値がタイム・スタンプ・フォーマットに変換されて表示されます。

関連項目

intToChar(a)

To String

[Help] => [Contents and Index] => [以下の項目についての説明...] => [I/Oトランザクション]


文字列を数値に変換するには

文字列に数値として読み取れる数値情報が含まれる場合、From Stringを使って数値を抽出できます。

1. From Stringオブジェクトを作業領域に追加します（[I/O] [image] [From] [image] [String]）。アイコンをダブルクリックしてオープン・ビュー・オブジェクトを表示します。デフォルトのトランザクションはREAD TEXT x REAL64です。これは文字列をテキストとして読み取り、可能な場合は実数を出力します。

2. 結果を表示するには、Text定数オブジェクトをデータ入力端子に接続し、AlphaNumeric表示をデータ出力端子に接続します。

3. Text定数に文字列Item number: A1222を入力し、プログラムを実行します。実数値1222が表示に出力されます。

関連項目

charToInt(a)

From String

[Help] => [Contents and Index] => [以下の項目についての説明...] => [I/Oトランザクション]


配列定数を作成するには

1次元配列を作成するには、Text、Int32、Real64などのデータ定数オブジェクトを使用します。この方法は、1次元配列の値を手動で設定したい場合に使用します。

9要素の1次元テキスト配列を作成するには

1. Text定数オブジェクトを作業領域に追加します（Data [image] Constant [image] Text）。

2. オブジェクト・メニューからPropertiesを選択します。Text Constant Propertiesダイアログ・ボックスが表示されます。デフォルトでは、Text定数オブジェクトはScalarとして構成されます。

3. 配列のサイズを設定するには、Configurationの下の1D Arrayをクリックし、Sizeフィールドをクリックして9に変更します。

4. 要素の数を固定するには、Size Fixedチェックボックスもチェックします。末尾に別の要素を追加したい場合は、Size Fixedを選択しないでおきます。

5. OKをクリックします。Text定数オブジェクトが、0000:～0008:の要素を持つ配列として表示されます。VEEの配列要素は0から始まります。

6. 各要素の値を設定するには、0000:の右側をクリックし、配列の最初の要素の値を入力します。Tab（または下矢印）を使って次の要素、Shift+Tab（または上矢印）を使って前の要素に移ることができます。各要素に対してテキスト文字列を入力します。

9要素1次元テキスト配列の例

関連項目

Constant

配列を割り当てるには

式で配列を構築するには


配列を割り当てるには

配列を作成したいときに割り当てて、プログラムから値を設定できます。1次元または多次元の配列を作成できます。

使用するデータ型に応じて、[Data] [image] [Allocate Array]の下にある適切なオブジェクトを使用します。これらの配列には、テキスト配列用のAlloc Textと、数値配列用のAlloc Boolean、Alloc UInt8、Alloc Int16、Alloc UInt16、Alloc Int32、Alloc Int64、Alloc Real32、Alloc Real64、Alloc Coord、Alloc Complex、Alloc PComplexがあります。

ヒント

VEEの配列はすべて0から始まります。すなわち、すべての次元の最初の要素のインデックスは0です。

割り当てる配列の次元数は1～10で、通常は1つの初期値の繰り返しによって初期化されます。

値の配列は、1つのデータ・コンテナとしてオブジェクトからオブジェクトに渡されます。

1次元の整数配列と実数配列の場合のみ、リニアまたは対数ランプ値による初期化が可能です。

配列の割り当てに必要なメモリは、次元数、各次元のサイズ、データ型によって決まります。

さまざまな型の配列を割り当てる手順を以下に示します。

1次元実数配列を割り当てるには

1. Alloc Real64オブジェクトを作業領域に追加します（[Data] [image] [Allocate Array] [image] [Real64]）。

2. デフォルトでは、Alloc Real64オブジェクトはリニア・ランプ値を持つ1次元配列を割り当てます。[Lin Ramp]フィールド（またはその矢印）をクリックして、ドロップダウン・メニューを表示します。

3. Init Value、Lin Ramp、Log Rampのいずれかを選択できます。Log Rampをクリックして、対数ランプ値を選択します。

4. XY Trace表示オブジェクトをAlloc Real64オブジェクトに接続し、プログラムを実行します。

2次元以上の実数配列を割り当てるには

1. Alloc Real64オブジェクトを作業領域に追加します（[Data] [image] [Allocate Array] [image] [Real64]）。

2. デフォルトでは、Alloc Real64オブジェクトはリニア・ランプ値を持つ1次元配列を割り当てます。[Num Dims]フィールド（またはその矢印）をクリックして、ドロップダウン・メニューを表示します。

3. 2から10までの次元サイズをクリックします。オブジェクトは新しい設定に合わせて変更されます。

4. 第1次元のサイズを4、第2次元のサイズを3などのように、各次元のサイズを変更します。次に、AlphaNumeric表示オブジェクトをAlloc Real64オブジェクトの出力に接続します。

5. プログラムを実行します。Num Dimsを2に設定した場合、AlphaNumericオブジェクトのサイズを変更して、配列全体が見えるようにします。Num Dimsが2より大きい場合、AlphaNumericオブジェクトには配列のサイズが表示されます。VEEの表示オブジェクトは2より大きい次元を表示できないからです。

2より大きい次元を表示するには、To FileオブジェクトのCONTAINERエンコーディングを使って、データを直接PV-WAVEにエクスポートし、ビジュアル・データ解析を実行する方法があります。

割り当てる配列が大きいほど、コンピュータのメモリを多く消費します。コンピュータのメモリ・サイズが推奨値の場合、5次元より大きい配列では、サイズ・パラメータを小さくしなければならない可能性があります。配列が大きすぎる場合、VEEプロセスがメモリ不足になり、エラーが発生する可能性があります。

関連項目

式で配列を構築するには

配列の値を変更するには

配列定数を作成するには

配列にデータを収集するには

Allocate Array

To File


配列の値を変更するには

割当て済みの配列の値をプログラムで変更するには、a[2]=bのように代入演算子を使用します。代入オブジェクトの式と使用可能な端子を変更することにより、特定の配列位置に新しい値を代入したり、出力をプログラムの他の部分で使用したりできます。

1次元実数配列に新しい値を設定するには

1. 配列割り当てオブジェクト（Data [image] Allocate Array [image] ）を追加した後、Function & Object Browserを使って代入演算子a[2]=bを作業領域に追加します。

ツールバーの [image] をクリックし、次の項目の下を見ます。
Operators
Assignment
a[2]=b

2. 代入演算子の式をa[b]=cに変更し、データ入力端子を追加します。

3. 次の代入演算子ピンに値を接続します。

a. Allocate ArrayオブジェクトのArrayデータ出力ピンを代入演算子のaデータ入力ピンに接続します。

b. 配列位置を示す値をbデータ入力ピンに接続します。この入力値はInt32データ定数などのオブジェクトから供給できます。

c. cデータ入力ピンに値を接続します。これは配列位置に代入する新しい値です。

次のサンプル・プログラムに接続を示します。代入演算子は、入力ピンaに配列データを受け入れ、ピンbで示される位置に入力ピンcの実数値を代入します。出力ピンResultには新しい値、出力ピンaには変更された配列が出力されます。

関連項目

manualサンプル・ディレクトリにあるmanual06.veeおよびmanual07.vee
Help [image] Open Example...

配列を割り当てるには

Set Values

例の参照

Manual06.vee、Manual07.vee


配列から値を抽出するには

配列から値を抽出するには、Get Valuesオブジェクトを使用します。

1. Get Valuesオブジェクトを作業領域に追加します（Data [image] Access Array [image] Get Values）。アイコンをダブルクリックしてオープン・ビュー・オブジェクトを表示します。

2. 配列を出力するデータ・ソースを、Get ValuesのAryデータ入力端子に接続します。Get Valuesが動作すると、Get Valuesの式フィールドの式に依存するサブ配列がSubAry端子に出力されます。デフォルトの式Aryでは、元の配列全体が出力されます。

残りのデータ出力端子は、Ary端子の元の配列に関する情報を提供します。

a. Typeは配列のデータ型を出力します。

b. NumDimsは配列の次元数を出力します。

c. DimSizesは各次元のサイズ（要素数）を表す1次元配列を出力します。

d. TotSizeは、配列の合計サイズ（全要素数）を出力します。

関連項目

manual08.vee

式で配列を構築するには

配列または配列要素を式で使用するには

Get Values


配列にデータを収集するには

未知のサイズの配列にデータを収集するには、Collectorを使用します。次の手順では、Collectorの使い方を示すサンプル・プログラムを構築します。1次元配列のデータ収集にはSliding Collectorを使用します。

1. Collectorオブジェクトを作業領域に追加します（Data [image] Collector）。アイコンをダブルクリックしてオブジェクトのオープン・ビューを表示します。

2. For Count、random、AlphaNumericの各オブジェクトを作業領域に追加し、次のプログラムに示すようにピンを接続します。

3. プログラムを実行します（配列全体が表示されるようにAlphaNumeric表示のサイズを変更します）。

Sliding Collector（Data [image] Sliding Collector）は、次の2つの重要な点でCollectorと異なります。

1. 出力は常に1次元配列です。

2. XEQ端子はありません。その代わりに、Sliding Collectorは指定された数の値を収集するとトリガするように設定されます。

関連項目

式で配列を構築するには

Collector

Sliding Collector

例の参照

Manual09.vee


式で配列を構築するには

式で他の配列の一部を指定することにより配列を構築することもできます。ただし、式の中では、指定されたすべてのサブ配列が同じ数の次元を持ち、各次元に同じ数の値を持つ必要があります。

Bが5×5の行列（2次元配列）だとします。

 | 0: | 1: | 2: | 3: | 4:
0: | 0 | 0.2 | 0.4 | 0.6 | 0.8
1: | 1 | 1.2 | 1.4 | 1.6 | 1.8
2: | 2 | 2.2 | 2.4 | 2.6 | 2.8
3: | 3 | 3.2 | 3.4 | 3.6 | 3.8
4: | 4 | 4.2 | 4.4 | 4.6 | 4.8

式[B[1,1],B[2,2],B[0,0],B[2,3]]は、次の1次元配列を返します。

0: 1.2

1: 2.4

2: 0

3: 2.6

式で配列定数を構築することもできます。たとえば、[1.1,1.3,1.2]は次の3要素1次元実数配列を作成します。

0: 1.1

1: 1.3

2: 1.2

関連項目

配列から値を抽出するには

配列または配列要素を式で使用するには


配列または配列要素を式で使用するには

配列から値を抽出するにはの項目では、Get Valuesオブジェクトの式を使ってサブ配列を指定できることを説明しています。この項目では、Formulaオブジェクトなど式フィールドを持つ任意のVEEオブジェクトの式にも配列またはサブ配列を指定できることを説明します。

式の中で配列を参照するには、次の構文を使用します。

角かっこ[ ]を配列名の後ろに置いて、サブ配列を指定するパラメータを囲みます。例えば、Bが2次元配列の場合、B[0,0]はその最初の要素を指定します。

カンマ（,）は配列の次元を区切ります。サブ配列の操作では、各配列次元に対して1つずつの指定が必ず必要です。

コロン（:）は、1つの配列次元の中の要素の範囲を区切ります。

アスタリスク（*）は、特定の配列次元のすべての要素を指定するワイルドカード文字です。

VEEの配列インデックスはすべて0から始まります。すなわち、すべての次元の最初の要素のインデックスは0です。

例

Aが10要素の1次元配列だとします。

0: 100m

1: 0.2

2: 0.3

3: 0.4

4: 0.5

5: 0.6

6: 0.7

7: 0.8

8: 0.9

9: 1

次の式は、配列Aの一部分を抽出します。

AまたはA[*]は、配列A全体を返します。

A[1]は、Aの2番目の要素（インデックス1）であるスカラを返します。

0.2

A[1:1]は、Aの2番目の要素（インデックス1）をただ1つの要素とする1次元配列を返します。

0: 0.2

A[0:5]は、Aの最初の6つの要素（インデックス0～5）を含む1次元配列を返します。

0: 100m

1: 0.2

2: 0.3

3: 0.4

4: 0.5

5: 0.6

A[2:*]は、Aの3番目から末尾までの要素（この例ではインデックス2～9）を含む1次元配列を返します（サブ配列のインデックスは0～7に再定義されます）。

0: 0.3

1: 0.4

2: 0.5

3: 0.6

4: 0.7

5: 0.8

6: 0.9

7: 1

Bが5×5の行列（2次元配列）だとします。

 | 0: | 1: | 2: | 3: | 4:
0: | 0 | 0.2 | 0.4 | 0.6 | 0.8
1: | 1 | 1.2 | 1.4 | 1.6 | 1.8
2: | 2 | 2.2 | 2.4 | 2.6 | 2.8
3: | 3 | 3.2 | 3.4 | 3.6 | 3.8
4: | 4 | 4.2 | 4.4 | 4.6 | 4.8

次の式は、配列Bの一部分を抽出します。

BまたはB[*,*]は、配列B全体を返します。

B[*]はエラーを返します。これは1次元しか指定していませんが、Bは2次元配列だからです。

B[1,2]は、2行目（インデックス1）の3要素目（インデックス2）のスカラ値を返します。

1.4

B[1,*]は、2行目（インデックス1）のすべてを1次元配列として返します。

0: 1

1: 1.2

2: 1.4

3: 1.6

4: 1.8

B[1,1:*]は、2行目（インデックス1）の最初の要素（インデックス0）を除くすべてを1次元配列として返します。

0: 1.2

1: 1.4

2: 1.6

3: 1.8

関連項目

配列から値を抽出するには

式で配列を構築するには


配列を使ったテスト結果の格納

データ型は次の2種類の方法で格納できます。

スカラ値（9や(32, @10)などの単一の数値）

-または-

1次元から10次元までの配列

注記

VEEデータ型の概要については、データ型を参照してください。

VEEの場合、配列のインデックスは0から始まり、角かっこを使って配列要素の位置を示します。たとえば、配列Aが要素[4, 5, 6]を持つ場合、これらの要素の位置は次のように示されます。

A[0] = 4、A[1] = 5、A[2] = 6

配列の構文は次のとおりです。

構文要素 | 説明
コロン | 要素の範囲を示します。たとえば、上の配列の場合、 A[0:1] = [4, 5]となります。
アスタリスク(*) | 配列の特定の次元にあるすべての要素を指定するためのワイルドカードです。A[*]は、配列Aのすべての要素を返します。
カンマ | サブ配列の構文では、配列の次元を区切るためにカンマを使用します。Bが2次元配列で、各次元の要素数が3の場合、B[1,0]は、Bの2番目の行の最初の要素を返します。

配列の要素にアクセスするための構文は、FormulaオブジェクトまたはTo/From Fileオブジェクトなどに含まれる任意の式フィールドで使用できます。

関連項目

例題5-1:テスト結果の配列の作成

例題5-2:配列からの値の抽出


For/Eachオブジェクト

For/Eachオブジェクトは、配列に対する反復操作に用いられます。レコードに対しては使用できません。次の例では、1次元の配列に対する反復操作を、For/Eachオブジェクトが追加される前に可能だった方法で実行しています。

同じ処理をFor/Eachで実現すると、上の例で5つのオブジェクトが必要だったのに対して、3つのオブジェクトですみます。

配列に次元を追加していくと、以前の方法では複雑になりすぎて管理が困難です。これに対して、For/Eachオブジェクトは10次元までサポートするので、VEEの配列構造の機能を全面的に利用できます。


配列関数の動作

VEEの基本的な演算関数（log()、sin()、cos()など）のほとんどは、パラメータとして配列を受け取り、配列を返すことができます。配列の演算と操作に便利な専用の関数も用意されています。配列に対して使用できない関数もあります。配列操作に便利な関数を以下に示します。

ramp()は、ループ・カウントの生成に使用できます。

concat()は、2つの配列を連結して、1次元配列を返します。

totSize()は、配列の全要素数を返します。

signof()は、値の符号（負の場合は-1、0の場合は0、正の場合は1）を返します。

abs(x)は、絶対値を設定します。

rotate()は、配列の要素を回転します。

sum()は、配列の全要素を合計します。

sort()は、配列をソートします。

randomize()は、乱数の配列を生成します。

min()は、データ・セット中の最小値を検索します。

max()は、データ・セット中の最大値を検索します。

clipUpper()は、与えられた最大値以下になるように値をクリッピングします。

clipLower()は、与えられた最小値以上になるように値をクリッピングします。

Formulaオブジェクトの便利な機能として、式を配列として定義できます。配列要素の間にはカンマを入れる必要があります。次の式は、Bという入力の2倍、逆数、2乗、自然対数を要素とする配列を生成します。

[2*B, 1/B, B*B, log(B)]

次の例は、Formulaオブジェクトの式を使って配列を操作する方法を示します。配列を持つオブジェクトをFormulaオブジェクトの入力ピンに接続します。

例

既存の配列に対して、選択した要素に代入式を使って演算を実行できます。次の例は、2次元配列の1つの行の値を変更します。Formulaオブジェクトの式は、入力配列A=[1,2,3,4]に対してこの作業を実行します。行0には1と2、行1には3と4が含まれます。

この式は、2行目の要素を4倍し、結果を配列Aに代入します。Result端子は変更された値だけを出力し、A端子は新しい値を持つ配列全体を出力します。

関連項目

配列の結合, ベクトルと行列の乗算, 配列への要素の挿入, ベクトルから行列への変換, 大きい配列の分割


配列演算の手法

VEEは配列演算に最適化されています。配列演算は従来のループ構文を使っても実行できますが、プログラムの速度が低下します。このセクションでは、Formulaなどのオブジェクトを使って配列に対する演算を実行する方法を説明します。

注記

このセクションの例を応用して、代入演算子を使用することにより、時間のかかるループを避けることができます。このような手法は一見してわかりにくいことがあるので、注意して使用し、プログラムの詳細なドキュメントを記述するようにしてください。

このセクションでは、VEEの配列演算手法をいくつか紹介します。配列演算手法の比較、式の中での配列の使用、配列演算の実行、式の中での変数の使用などについて述べます。

配列演算手法の比較

下の2つの図のプログラム・セグメントは、0°から360°まで1°刻みのサインとコサインの値をすべて記録した配列を作成する方法の比較です。これらの手法をそれぞれ試してみると、1つめの方が時間がかかることがわかります。

この一連のオブジェクトに含まれるロジックを数学演算に変換すると、次の図のFormulaオブジェクトに示された式に帰着します。この手法では、同じ計算を短い時間で実行できます。

この方法は高速ですが、同じ計算をしていることは明らかとはいえません。この式の動作の説明を以下に示します。

1 ramp()関数は、0から359まで増加する360個の値を生成します。

2 2つのramp関数は同じ配列を生成し、それぞれがsin()関数とcos()関数に渡されます。通常スカラ値を受け取って返すVEEの関数のほとんどは、配列をパラメータとして受け取って返すことができます。

3 Formulaオブジェクトには実際には2つの式がありますが、これらの式は角かっこに囲まれているので、その出力は配列形式に変換されます。

この方法はあらゆるプログラムで最善の選択というわけではありません。サインとコサインの演算は、生成される1つずつの値に対して実行されるのではなく、ramp()関数から生成された配列全体に対して行われます。生成される値を1つずつ処理する必要がある場合は、配列全体を対象とした式でなく、ループ構造を使用します。

式での配列へのアクセス

式の中の配列は、スカラと同様に使用できます。参照は名前で行います。配列定数を式に直接入力することもできます（[1,2,3]など）。配列要素の間にはカンマを入れる必要があります。

注記

配列のインデックスは0から始まります。インデックスの範囲は0からn-1までです。ここでnはその次元の要素数です。

式を使って配列の一部にアクセスできます。式でサブ配列を指定した場合、サブ配列を出力することも、さらに別の式の計算に使用することもできます。

サブ配列は元の配列の中の連続する部分でなければなりません。サブ配列にアクセスするには、配列のすべての次元に対してパラメータを指定する必要があります。配列パラメータを指定するには次の文字を使用します。

カンマ","は配列の次元を区切ります。サブ配列の操作では、各配列次元に対して1つずつの指定が必ず必要です。

コロン":"は、1つの配列次元の要素の範囲を区切ります。

アスタリスク"*"は、その配列次元のすべての要素を指定するワイルドカードです。

注記

Waveformのタイム・スパン、Spectrumの周波数スパン、配列のマッピングは、サブ配列のポイント数に合わせて調整されます。例えば、256ポイントのWaveform（WF）があり、WF[0:127]と指定した場合、Waveformの最初の半分が得られ、タイム・スパンは元の値の半分になります。

例:配列から返される値

次の式は、Aが10要素の1次元配列（Array 1D）の場合に返される値を示します。

A[1]はAの2番目の要素にアクセスし、スカラを出力します。

A[0:5]は、Aの最初の6つの要素を含む1次元のサブ配列を返します。

A[1:1]は、Aの2番目の要素を1つの要素として持つ1次元のサブ配列を返します。これと最初の例A[1]との違いに注意してください。

A[2:*]は、Aの3番目から10番目までの要素を含む1次元のサブ配列を返します。

AまたはA[*]は、配列A全体を返します。

A[1,2]はエラーになります。これは2次元配列に対するパラメータの指定だからです。

Bは5×5の行列（Array 2D）とします。

B[*]はエラーを返します。これは1つのパラメータしか指定していませんが、Bは2次元配列だからです。

B[1,2]は、2行目の3要素目のスカラ値を返します。

B[1,*]は、行1全体をArray 1Dとして返します。

B[1,1:*]は、行1の最初の要素以外のすべてをArray 1Dとして返します。

B[4,1:4]は、4つの要素を持つArray 1Dを返します。要素は行4の2番目から5番目までの値です。

B[5,5]はエラーを返します。配列は0から始まるからです。この配列にアクセスできるのはB[4,4]までです。

B[1 1]はエラーを返します。次元の指定はカンマで区切る必要があるからです。

式での配列の構築

他の配列の要素やサブ配列から配列を構築できます。式の中のすべての要素が同じ数の次元を指定し、各次元の値の数が一致する必要があります。

例えば、次の式は、Aが10要素の1次元配列（Array 1D）で、Bが5×5の行列の場合に返される値を示します。

[1,2,3]は、値1、2、3を含む3要素のReal Array 1Dを返します。

[A[0], A[5:7], A[9]]はエラーになります。スカラとArray 1Dの両方の要素が指定されているからです。

[A[0:4], B[0,*]]は、10要素のArray 2D（2×5）を返します。その1行目はAの最初の5つの要素、2行目はBの1行目です。

[A[0], A[1], B[2,3], A[5]]は、4要素のArray 1Dを返します。その要素は、Aの1番目と2番目の要素、Bの3行4列の要素、Aの6番目の要素です。

配列に対する数学演算の実行

配列に対する数学演算には、単純な規則があります。基本的なスカラ算術演算を配列に対して実行すると、単に配列の各要素に対して該当する演算が実行されます。

A*2は、配列の各要素を2倍します。

A-4は、配列の各要素から4を減算します。

sin([1,2,3])などの関数で配列を使用すると、配列の各要素に対してサイン関数が適用されます。

サイズと次元が等しい2つの配列の間で数学演算を実行すると、配列の対応する要素の間で該当する演算が実行されます。

A*Bは、配列Aの各要素と配列Bの対応する要素とを乗算します。これは行列乗算とは異なります。行列乗算は行と列の乗算からなる比較的複雑な演算で、結果はスカラとなります。VEEには行列乗算のための組み込み関数matMultiply(A,B)があります。


配列の結合

配列を結合するには

次の例は、多次元配列を連結する方法を示します。Formulaオブジェクトでこの作業を実行する場合、concat(x,y)関数が便利です。ただし、これは1次元の出力しか生成できません。また、この関数は行と列の数が固定されている場合しか使用できません（この制約は実用上はほとんどの場合に満たされます）。ここに示すFormulaオブジェクトの式は、2つの行を持つ2つの配列を連結します。

concat()関数は、2つの配列を連結し、1次元配列を生成します。この式は、各配列の行を取り出し、それらを連結した後、結果を2次元配列に再結合します。この配列には2つの行があり、各行の要素数は元の配列の各行の要素数の和になります。

関連項目

配列関数の動作,ベクトルと行列の乗算, 配列への要素の挿入, ベクトルから行列への変換, 大きい配列の分割


大きい配列の分割

大きい配列を分割するには

1つの2048要素の配列を、128要素の配列16個に分けて表示できます。この問題はデータの生成でなく表示に焦点を当てていますが、一般に配列の分割が必要な問題の参考となります。

下のプログラムは、目的の表示を実現するための配列の分割方法を示します。

ramp()関数は、単に0～2047の値を持つ2048要素の配列をテスト用に生成します。For Countオブジェクトが16個の配列のそれぞれに対応するカウントを生成し、Formulaボックスがカウントから生成されたインデックスを使って適切なサブ配列を選択します。

A[0:127], A[128:255], A[256:384], ..., A[1920:2047]

もちろん、ここでは配列のサイズ、サブ配列の数、サブ配列のサイズは固定されていると仮定します。これらのどれかが一致しない場合、エラーが発生します。

関連項目

配列関数の動作, 配列の結合, ベクトルと行列の乗算, 配列への要素の挿入, ベクトルから行列への変換


ベクトルと行列の乗算

ベクトルと行列を乗算するには

次の例は、ベクトルを乗算する方法を示します。

[ X1, X2, X3, X4 ]

上のベクトルを下の行列と乗算すると、

[[ y11, y12, y13, y14 ],

[ y21, y22, y23, y24 ],

...

[ y51, y52, y53, y54 ]]

次の結果が得られます。

[[ X1*y11, X2*y12, X3*y13, X4*y14 ],

[ X1*y21, X2*y22, X3*y23, X4*y24 ],

...

[ X1*y51, X2*y52, X3*y53, X4*y54 ]]

VEEでは、ベクトルのスカラ乗算と、行列乗算が実行できます。スカラ乗算では、行列のすべての要素にスカラが乗算され、元と同じサイズの結果行列が得られます。行列乗算は、M×N行列とN×M行列の間の演算で、スカラが得られます。この例で必要な演算は、どちらにも当てはまりません。

この演算は、行列の各行をベクトルの各要素でスカラ倍する演算に相当します。プログラムでは、配列操作の技法を使用します。データの例として、次の形式のベクタVと、

[ 1, 2, 3, 4 ]

次の形式の行列Mを考えます。

[ [1, 2, 3, 4, 5, 6, 7, 8 ],
[10, 20, 30, 40, 50, 60, 70, 80 ],
[100, 200, 300, 400, 500, 600, 700, 800 ],
[1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 ] ]

必要な結果は次のとおりです。

[ [1, 2, 3, 4, 5, 6, 7, 8 ],
[20, 40, 60, 80, 100, 120, 140, 160 ],
[300, 600, 900, 12K, 15K, 18K, 21K, 24K ],
[4000, 8000, 12K, 16K, 20K, 24K, 28K, 32K ] ]

下のFormulaオブジェクトの式は、乗算を実行します。行列配列は端子M、ベクトル配列は端子Vに接続されます。テストの結果によれば、これは同じ配列のスカラ乗算よりも約50%遅いだけです。

関連項目

配列関数の動作, 配列の結合, 配列への要素の挿入, ベクトルから行列への変換, 大きい配列の分割


配列への要素の挿入

配列に要素を挿入するには

次の例は、1つまたは複数のデータ要素を既存の配列に挿入する式を示します。入力は次のとおりです。

Aはインデックス値
Bは新規データ
Cは元の配列

変更された配列がResultに出力されます。

Aのインデックス値は、新規データの開始インデックスを指定します。Aが0以下の場合、Bの新規データはCの元の配列の先頭に連結されます。

Aが元の配列の長さ以上の場合、新規データは元の配列の末尾に連結されます。Aがその間の値の場合は、元の配列がインデックス値を境に分割され、新規データがその間に挟み込まれます。

次の例は、前の例に似ています。これは配列演算を使ってデータ・キューを実現します。キューは基本的に固定長の配列であり、新しい要素が一端に追加されると、値が反対側の端に向かってずれていき、そこからはみ出した値は失われます。

ramp()式は、キューとして動作する10要素の空の初期配列を割り当てます。On Cycleループ（サイクルを1秒に設定）は、開始されると1秒ごとにキューの先頭に乱数を送り込みます。Formula: QueueはOldData入力の末尾の9個の要素を取り出し、NewData入力の新しい乱数と連結します。Resultに出力された配列は次のOldDataとしてフィードバックされ、次のプログラム・セグメントに送られます。次のサイクルでは新しい乱数がNewDataに送られます。

関連項目

配列関数の動作, 配列の結合, ベクトルと行列の乗算, ベクトルから行列への変換, 大きい配列の分割


ベクトルから行列への変換

ベクトルを行列に変換するには

配列関数の代わりに、トランザクション・オブジェクトを使うことで、必要な結果が得られる場合もあります。下の例は、From Stringオブジェクトを使って、ベクトル（1次元配列）を行列（2次元配列）に変換します。次のプログラムに示すように、ベクトルをFrom Stringに通し、出力として要求する配列フォーマットを指定します。RealとTextの間のデータ型変換はVEEが自動的に行います。

例えば、9要素の1次元配列を3×3の2次元配列に変換するとします。

ramp()関数からのベクトル出力は次のようになります。

0,1,2,3,4,5,6,7,8

From Stringトランザクションは、これを行優先の行列に変換します。

0,1,2
3,4,5
6,7,8

列優先の行列にしたい場合は、transpose()（行列の転置）関数を使って、次の結果を得ます。

0,3,6
1,4,7
2,5,8

ベクトルを行列に変換するもう1つの方法は、Formulaの配列構築構文を使うことです。構文[1,2,3]は3つの要素を持つ1次元配列を生成します。同様に、aが10要素の1次元配列の場合、構文[a]は1×10の2次元配列を生成します。この場合も、transpose()を使用すれば10×1の行列が得られます。

関連項目

配列関数の動作, 配列の結合, ベクトルと行列の乗算, 配列への要素の挿入, 大きい配列の分割


別々の要素を1つの配列に結合

別々の要素を1つの配列に結合するには

このプログラムは、デバイスからの複数のデータ・セットを対象として、各データ・セットの最大値から構成されるデータ・セットを得る方法を示します。

このプログラムは、Noise Generatorを使って入力データをシミュレートします。プログラムは初期データ・セットを取得してグローバル変数sumdataに格納した後、ループに入り、新しいデータを得るか、プログラムを終了します。

Get Dataボタンを押すと、Noise Generatorから新しい波形が取得されます。次に、sumdataのデータがGet Variableオブジェクトで読み取られます。これら2つの波形はFormulaオブジェクトで処理され、結果がSet Variableオブジェクトによってsumdataに格納されます。

Formulaオブジェクトは、新しい配列データをピンAで、sumdataの配列をピンBで受け取ります。式cliplower(a,b)は、A > Bの場合はAの値、それ以外の場合はBの値を持つ結果配列を出力します。clipUpperを代わりに使用すると、最小値が得られます。

関連項目

2つの配列の比較, 効率的な技法の選択, 代替式の使用


2つの配列の比較

2つの配列を比較するには

この例は、2つの乱数の配列を比較し、1つめの配列の要素のうち2つめの配列の要素より大きいものの数を求めます。値の比較には通常は関係演算子（==、!=、<=など）を使いますが、この問題はこれでは解決できません。これらは任意のデータの種類を受け入れますが、スカラの結果しか返さないからです。関係演算で配列の結果を得るには、他の方法を使う必要があります。

randomSeed()関数は、時間とともに急速に変化するシードを乱数発生器に供給します。これにより、プログラムを実行するたびに異なるデータが得られます。2つのrandomize()関数は、それぞれ0～1の範囲の1000個の乱数からなる配列を生成します。最後に、Formulaオブジェクトの式によって加算が行われます。

sum(clipLower(0,signof(A-B)))

式の各部分の仕組みを以下に示します。

1 A-Bは、A > Bの場合は正の値、A == Bの場合は0、A < Bの場合は負の値からなる配列を返します。

2 signof(A-B)は、正の値を1、負の値を-1、0を0に変換します。

3 clipLower(0,signof(A-B))は、配列の-1の値をすべて除去し、A > Bの場合は1、それ以外の場合は0からなる配列を返します。

4 sum()は1をすべて加算し、A > Bとなった比較の数を出力します。

関連項目

別々の要素を1つの配列に結合, 効率的な技法の選択, 代替式の使用


代替式の使用

代替式を使用するには

通常の関係演算子の機能を配列演算で実現するには、次のような方法があります。

A == B:(1-abs(signof(A-B)))

A != B:abs(signof(A-B))

A > B:clipLower(0,signof(A-B))

A < B:clipLower(0,-signof(A-B))

A >= B:(1-clipLower(0,-signof(A-B)))

A <= B:(1-clipLower(0,signof(A-B)))

このように、1と0からなる配列を1から減算すると、配列に対するNOT演算を実現できます。同様の技法は、配列でなくスカラ値との比較にも使用できます。結果の1と0の配列に対して論理演算を実行することもできます。

例えば、A1とA2が上記のような配列だとします。次の論理演算が成り立ちます。

NOT A1:1 - A1

A1 AND A2:A1 * A2

A1 OR A2:signof(A1 + A2)

A1 XOR A2:1 - abs(signof((A1 + A2) - 1))

これらの計算の結果を使えば、元の値の配列のマスキングを乗算によって実現できます。0に対応する値は除去され、1に対応する値は保持されます。

関連項目

別々の要素を1つの配列に結合, 2つの配列の比較, 効率的な技法の選択


効率的な技法の選択

効率的な技法を選択するには

前記の技法を使用した場合、Formulaオブジェクトに大量の論理演算が含まれるプログラムになる可能性があります。このようなプログラムは保守が困難です。目的は複数のオブジェクトをFormulaオブジェクトで置き換えることによりループを減らすことですが、UserFunctionsを使用する方法もあります。配列操作の技法をよく理解することにより、複雑な形式論理演算を省略して、より直接的な方法を選択できます。

次の例は、配列操作の1つの方法を示します。I/Oデバイスから受け取った8ビットの符号なしデータの配列が、VEEによって32ビットの符号付き整数データに変換された場合に、真の値を復元したいとします。これを1つの式で行うには、返された配列のそれぞれの値に256を加算します。

(A + (clipLower(-1,clipUpper(0,A))) * (-256))

この式は以下の計算を行います。

1 clipUpper(0,A)は正の値をすべて0に変換します。

2 clipLower(-1,clipUpper(0,A))は負の値をすべて-1に変換します（入力は実数でなく整数であるため）。これにより、負の値に対しては-1、それ以外に対しては0を持つ配列が作成されます。

3 clipLower(-1,clipUpper(0,A)) * (-256)は、その配列に-256を掛けることにより、負の値に対しては256、それ以外に対しては0を持つ配列を作成します。この配列を元の配列に加算することにより、すべての負の値を嵩上げして実際の正の値に戻すことができます。

もう1つの方法として、前記のような関係演算子を使用することもできますが、この直接的な方法に比べてはるかに複雑になります。

配列計算に非常に便利なオブジェクトとして、Comparatorがあります。これは特定の基準を満たす配列要素を抽出するものです。次のデータ・ストリーム中の遷移点を検出したいとします。

0 0 0 0 1 1 0 0 1 1 0

下に示すのは、値が0から1または1から0に遷移する配列要素のインデックスを求める最も簡単な方法です。

このプログラムにはComparatorが含まれますが、鍵となるのは次の式を持つFormulaオブジェクトです。

A[1:(totSize(A)-1)] - A[0:(totSize(A)-2)]

この方法の仕組みを理解するため、データ・ストリームに配列インデックスを付記します。

B0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

遷移が発生する位置に印が付いています。上の式は、入力配列をインデックス1つ分後ろにずらしたものを元の入力配列から減算することにより、下記の新しい配列を得ます。

0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

- 0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

0:0 1:0 2:0 3:1 4:0 5:-1 6:0 7:1 8:0 9:-1

Comparatorは、Result配列をチェックして、0に等しい要素を調べます。このテストを通らなかった要素とインデックスは、Failures端子にX-Y座標の配列として返されます。この座標はテストが失敗したインデックスと値の組み合わせを示します。インデックス値だけを取り出すために、Unbuild Coordを使ってX値とY値を分離します。その後、インデックス値Xに1を足して、先ほど後ろにずらした分を補正します。

減算で得られたデータは、遷移のインデックスだけでなく、その方向も示します。1は正の遷移、-1は負の遷移です。この演算は基本的に、差分方程式を使って微分を実行するのと同じです。

関連項目

別々の要素を1つの配列に結合, 2つの配列の比較, 代替式の使用


レコード定数を作成するには

レコード定数の作成方法を理解する最善の方法は、以下のような例を試してみることです。

単一レコードを作成するには

1. Record定数オブジェクトを作業領域に追加します（Data [image] Constant [image] Record）。

2. Record定数は他の定数オブジェクトとは異なっていることに注意してください。これには名前付きの2つのフィールド（デフォルトではAとB）があり、それぞれに入力フィールドがあります。Aというラベルのボタンをクリックします。Record Field Attributesダイアログ・ボックスが表示されます。

3. フィールドの名前を変更するには、Aの代わりに新しい名前を入力します。フィールド名をNameに変更し、データ型はText、次元数は0（スカラ）のままにしておきます。OKをクリックします。

4. 次に、Bというラベルのボタンをクリックします。フィールド名をEmpl_Noに変更し、Real64（または矢印）をクリックして、ドロップダウン・メニューを表示します。

5. Int32をクリックして整数データ型を選択し、次元数は0のままにしておきます。OKをクリックします。

6. 下に示すように、Nameの隣の入力フィールドにJohn Doeと入力し、Empl_Noの隣の入力フィールドに111222と入力します。AlphaNumeric表示オブジェクトを出力ピンに接続し、プログラムを実行します。

レコードの配列を作成するには

1. 前の手順から続いて、Record定数のオブジェクト・メニューからPropertiesを選択します。

2. 1D Arrayの前のラジオ・ボタンをクリックして、Record定数をレコードの配列に変換します。Sizeを3に設定し、OKをクリックします。オブジェクトのフォーマットが変化します。

3. First、Prev、Next、Lastの各ボタンを使って、レコードの配列をスクロールできます。配列中の各レコードを変更するには:

a. Nextをクリックして2番目のレコードにスクロールします。名前をSue Smith、番号を111223に変更します。

b. Nextをクリックして3番目（最後）のレコードにスクロールします。名前をRichard Roe、番号を111224に変更します。

4. 次に、プログラムを実行します。レコードの配列全体が表示されるようにAlphaNumeric表示のサイズを変更します。

関連項目

レコードにデータを収集するには

Record Constant


レコードの使用法

レコードを使ってさまざまな型のデータを記録するには

Recordデータ型を使用すると、単一のデータ・コンテナに複数の異なるデータ型を記録できます。Recordには任意のVEEデータ型を含めることができます。データの種類は、ScalarでもArrayでもかまいません。単一のデータ構造内に、テスト名、タイム・スタンプ、実数配列を保管できます。

  • Record内の個々の要素は、フィールドとして記録され、ドット表記を使ってアクセスできます。たとえば、Rec.Nameという構文は、Recという名前のRecord内のNameという名前のフィールドにアクセスします。レコードの配列の場合、Rec[2].Nameは、配列内の3番目のレコードのNameフィールドを意味します。配列のインデックスは0から始まります。

Recordデータ型を使ってテスト・データを構造化することには、次の利点があります。

1つのコンテナによって、さまざまなデータ型が混在するデータを論理的なグループにまとめることができます。これにより、プログラムの開発と保守が容易になります。たとえば、テスト・データを記録するレコードには、テスト名、戻り値、合否インジケータ、タイムスタンプ、期待公称値、合格上限値、合格下限値、テストの説明などを示すフィールドを設けることができます。

8つの別々のデータ・コンテナの代わりに、1つのデータ・コンテナを操作するだけですみます。これにより、プログラムが単純になり、読みやすくなります。

VEEでは、Recordをデータセットに保存して読み取ることができます。データセットは、レコードを保存するための特殊なファイルです。データセットからレコードを読み取る場合、データ型を知っている必要はありません。VEEで用意されているオブジェクトを使って、データセット内の情報の取得、ソート、検索を実行できます。

関連項目

例題5-4:レコードの使用法

レコード定数を作成するには

レコードにデータを収集するには

レコードからフィールドを抽出するには

レコードのフィールドを変更するには

プログラムでレコードを構築するには

レコードにアクセスするには

レコード・コンテナを理解するには


レコードにデータを収集するには

大きいレコード配列を構築するには、Build Record（Data [image] Build Data [image] Record）オブジェクトを使用します。この項目では、サンプル・プログラムを使ってこのオブジェクトの使用法を説明します。

例

1. プログラムmanual10.veeを開きます。 次に、プログラムを実行します。

Build Recordオブジェクトは、データ入力端子のデータからレコードを構築し、Record 出力端子にレコードを出力します。プログラムは次のように動作します。

入力AのText配列は名前のリストです。

入力BのInt32配列は従業員番号のリストです。

Build Recordオブジェクトは、出力の種類がScalarに設定されているので、スカラ・レコード{<Text Array 1D>, <Int32 Array 1D>}を出力します。このレコードは2つのレコード・フィールドから構成され、各フィールドが1次元の配列を含みます。1つめのレコード・フィールドは名前の配列、2つめは従業員番号の配列です。入力配列は同じサイズでなくてもかまいません。

2. デフォルトはScalarですが、出力の種類は変更できます。

a. ScalarをクリックしてArray 1Dを表示させます。

b. プログラムを実行します。レコードの配列がディスプレイに表示されます。

Build Recordオブジェクトは、名前と従業員番号を1対1に対応させて個々のレコードを作成し、それらのレコードの配列をRecord端子に出力します。出力の種類がArray 1Dに設定されている場合、入力配列のサイズは一致する必要があります。

関連項目

Build Record


レコードからフィールドを抽出するには

レコードから1つのフィールドを抽出するには、rec.fieldオブジェクト（Data [image] Access Record [image] Get Field）を使用します。また、すべてのフィールドを抽出するには、UnBuild Recordオブジェクト（Data [image] UnBuild Data [image] Record）を使用します。この項目では、サンプル・プログラムを使ってこれらのオブジェクトの使用法を説明します。

Get Fieldの例

プログラムmanual11.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。プログラムを実行します。

Build Recordオブジェクトは、フィールドA（波形）とフィールドB（スカラ）からなるレコードを構築します。

上のrec.fieldオブジェクトは、式rec.Aを使って、「レコードrecのフィールドA」（波形）を抽出します。これはWaveformオブジェクトによって表示されます。

下のrec.fieldオブジェクトは、式rec.Bを使って、「レコードrecのフィールドB」（時間）を抽出します。これはAlphaNumericオブジェクトによってタイム・スタンプ・フォーマットで表示されます。

UnBuild Recordの例

プログラムmanual12.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。プログラムを実行します。

Build Recordオブジェクトは、フィールドA（波形）とフィールドB（スカラ）からなるレコードを構築します。

UnBuild Recordオブジェクトは、フィールドAとBを抽出し、データをそれぞれのピンに出力します。

関連項目

式でレコードを使用するには

Get Field

SubRecord

UnBuild Record


レコードのフィールドを変更するには

レコードまたはレコード配列のフィールドを変更するには、Data [image] Access Record [image] Set Fieldから得られる代入演算子オブジェクトを使用します。この項目では、サンプル・プログラムを使ってこのオブジェクトの使用法を説明します。

レコードのフィールドの変更の例

プログラムmanual13.veeを開きます。 次に、プログラムを実行します。

Set Name Fieldというタイトルの代入演算子で、式は次の意味を持ちます:レコード Rec のフィールド Name を入力端子 A の値に等しくする。レコードはrecデータ入力端子に接続されます。

Set Empl_no Fieldというタイトルの代入演算子で、式は次の意味を持ちます:レコード Rec のフィールド Empl_no を入力端子 A の値に等しくする。

フィールド変更の実行中もレコードは表示され続けます。

レコード配列のフィールドの変更の例

次のプログラムで、式Rec[5].Name = Aは、レコードRecのNameフィールドの配列要素5を入力端子Aのデータと等しく設定することを意味します。

関連項目

Set Field


式でレコードを使用するには

レコード構文Rec.FieldがVEEの任意の式フィールドで使用できます。ここで、FieldはレコードRecのフィールド名です。下のプログラムで、式(A.High + A.Med)/A.Lowは、レコードAのフィールドHighとMedを加算し、結果をフィールドLowで除算します。

ヒント

混乱を避けるため、レコードのフィールドにはわかりやすい名前を付けておくとよいでしょう。

レコード構文を配列構文と組み合わせることで、レコード・フィールドから配列要素にアクセスできます。

関連項目

manual14.vee このプログラムはmanualサンプル・ディレクトリにあります[Help] [image] [Open Example...]

データの処理


レコード・コンテナの理解

レコード・コンテナを理解するには

レコードの作成と操作に使用できるVEEオブジェクトには、Record、Build Record、UnBuild Record、Merge Record、SubRecord、Set Field、Get Fieldなどがあります。これらのオブジェクトはすべて、[Data]メニューにあります。

Recordデータ型のコンテナには、データを表す名前付きのフィールドがあります。レコードの名前付きフィールドの数に制限はありません。各フィールドには、他のレコード、スカラ、配列を格納できます。

Recordオブジェクトを使うと、各フィールドの値を手動で入力することにより、レコードを作成できます。オブジェクト・メニューから[Properties]ダイアログ・ボックスを開いて、Recordオブジェクトをスカラ（配列要素数=0）または配列（配列要素数=0以外）に設定します。

次のRecordオブジェクトは、4つの配列要素を持つレコード配列に設定されています。このレコードは5個のフィールドから構成されます。Textフィールド（Name、Address、City）と、Int32フィールド（EmplNo、Zip）です。Recordオブジェクトでは、[First]、[Prev]、[Next]、[Last]の各ボタンを使って、レコードの配列要素の間を移動することができます。その過程で、各フィールドを編集できます。

プログラムを実行すると、レコード全体がRecord出力ピンに出力されます。AlphaNumeric表示には、レコード全体が表示されます。これは4つの配列要素（0～3）を持ち、各要素が中括弧（"{}"）で囲まれた5つのレコード・フィールドから構成されています。

関連項目

Build Record

レコードへのアクセス

プログラムによるRecordの構築


レコードへのアクセス

レコードにアクセスするには

次の2つのサンプル・プログラムは、レコードにアクセスして個々のフィールドを抽出する1つの方法を示します。

レコードから個々のフィールドを抽出するには、Get Fieldオブジェクトを使用します。Get Fieldは、 [Data] [image] [Access Record]の下にあります。例の最初のプログラムでは、Get Fieldを使ってNameフィールドとEmplNoフィールドの全体を抽出しています。Get Fieldオブジェクトは、デフォルトの式rec.fieldを持つFormulaオブジェクトです。

個々のフィールドにアクセスするには、「ドット」構文を使います。例えば、Rec[*].Name、Rec[*].EmplNoなどです。この構文については、 データの処理.で説明しています。

Rec[*].Nameは、「Rec入力ピンのレコード配列のすべての要素のNameフィールドを取得する」という意味です。この構文は、Formulaオブジェクトの式や、実行時に評価される他のすべての式で使用できます。例えば、To Stringオブジェクトのトランザクションでこの構文を使用できます。

次のように、各フィールドの2番目の要素（要素1）だけを取得するには、Rec[1].NameおよびRec[1].EmplNoという構文を使用します。

レコードの複数あるいはすべてのフィールドを取得するには、次のようにUnBuild Recordオブジェクトを使用します。

UnBuild Recordオブジェクトでは、レコードの各フィールドに対応する出力を追加でき、NameリストおよびTypeリスト出力を使用できます。これらの出力には、レコードの各フィールドの名前と型が含まれます。

このプログラムは、 manual38.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

注記

Recordデータ型との間でデータの自動変換は行われません。例えば、RecordデータをReal入力端子に送るには、Recordからフィールドを抽出するため、前に説明したように、Unbuild Recordを使用するか、Get FieldでRec.A構文を使用する必要があります。

関連項目

Build Record


プログラムによるRecordの構築

プログラムでレコードを構築するには

Recordオブジェクトは、単純なレコードの作成と編集に便利です。ただし、大きなレコードの作成には手間がかかります。既存のデータからレコードを作成したい場合もあります。このような場合、Build Recordを使ってレコードを構築できます。

Build Recordを使って個々のデータ・コンポーネントからレコードを構築する場合、出力Recordコンテナのデータの種類を定義する必要があります。Build Recordオブジェクトでは、Output Shapeで出力の種類をScalarとArray 1Dの2種類から選択できます。ほとんどの場合、Output ShapeにはデフォルトのScalarを使用するのが適切です。

次の例は、2つの入力配列から構築された出力レコードにおけるScalarとArray 1Dの違いを示します。

上のプログラムで、 Scalar が選択された場合、出力レコードは2つのフィールドから構成されるスカラ・レコードであり、各フィールドが入力配列の1つに対応します。一方、同じ入力データに対してArray 1Dが選択された場合、出力レコードは2つの入力配列と同じ数の要素を持つレコード配列です。出力レコードのデータは要素単位で組み合わせられます。

2つの入力配列の要素数が異なる場合は、Output ShapeとしてScalarだけが使用できます。Array 1D出力レコードを作成する場合、すべての入力配列が同じ数の要素を持たないと、エラーが発生します。ただし、次の例のように、スカラと配列の入力データを混在させることはできます。

この例で、Array 1Dが選択された場合、スカラRealの値1が出力レコードで5回繰り返されます。

関連項目

Build Record


データセットの使用法

データセットを使用するには

データセットは1つまたは複数のレコードを読み取ることができます。VEEオブジェクトはレコードをアンパックします。したがって、ファイルの代わりにデータセットにレコードを保管すれば、データ型を覚えておく必要がなくなります。データに対してソートや検索を行って、自分専用のカスタマイズされたテスト・データベースを作成することもできます。

VEEデータ（波形を含む）は、レコードに記録して、後で読み取ることができます。また、レコードはデータセットと呼ばれるファイルに保存できます。To DataSetおよびFrom DataSetオブジェクトを使うと、データセットに対するレコードの記録と読み取りを行うことができます。これらは[I/O]メニューにあります。

データセットとは、Recordコンテナの集合をファイルに保存して、後で読み取れるようにしたものです。To DataSetオブジェクトは、Recordを入力端子で収集し、そのデータを名前付きのファイル（データセット）に書き込みます。下の例を参照してください。

正弦波と雑音波形の2つの波形がBuild Recordオブジェクトに出力され、レコードが構築されます。レコードはTo DataSetオブジェクトに出力され、データがファイルmyDataに書き込まれます。 [Clear File at PreRun]がチェックされているので、myDataにすでに記録されていたデータはクリアされます。

データがデータセットに保存されたら、From DataSetを使ってレコードを読み取り、必要なら解体することができます。下のプログラムにそのやり方を示します。

From DataSetオブジェクトは、myDataからレコード・データを読み取り、データをUnbuild Recordに出力します。これにより、正弦波と雑音データのフィールドが分離されます。この例では、正弦波、雑音波形、およびこれら2つの波形の和が、それぞれ別のXY Traceオブジェクトに表示されます。

この最後の例の2つのプログラムは、 manual40.veeファイル および manual41.veeファイルに保存されています。これらのファイルはexamplesディレクトリにあります。

単純なテスト・データベースのカスタマイズ

データセットの検索やソートを行って、テスト名、タイムスタンプ、テスト・パラメータ、テスト値、合否インジケータ、テスト説明などの情報を入手できます。すなわち、データセット・レコードはテスト・データベースの働きをします。情報を検索するには、From DataSetオブジェクトを次のように使用します。

From DataSetオブジェクトの式フィールドは、検索操作に用いられます。

関数sort()を使って、指定したフィールドでレコードをソートできます。

関連項目

例題5-5:データセットの使用法

例題5-6:データセットに対する検索／ソート操作の使用法


パネル・ビューのスクロール・バーを使用可能にするには

パネル・ビューのスクロール・バーを有効にするには、[Property]ウィンドウで[ScrollBarsEnabled]をTrueに設定します。デフォルトでは[ScrollBarsEnabled]はFalseです。[ScrollBarsEnabled]は詳細ビューでは使用できません。

関連項目

プログラム中を移動するには、ミニマップ、オペレータ・インタフェース・パネルを操作するには


変数を作成するには

作成できる変数には、宣言されたものと宣言されないもの、およびローカルとグローバルがあります。宣言されない変数を作成するには、Formulaなどのオブジェクトの中の式で値を代入するか、Set Variableオブジェクトを使用します。ただし、値を代入する前に変数を宣言することにはいくつかの利点があります。例として、スコープ、プログラム実行の高速化、変数のデータ型と種類の保存があります。

宣言されないローカル変数を作成するには

宣言されないローカル変数は、オブジェクトのデータ入力端子のデータが式の中で用いられたときに作成されます。この変数はオブジェクトに対してローカルです。式の中の変数名は、入力端子の名前に一致する必要があります。次の図は、Real64 ConstantオブジェクトをFormulaに接続した例を示します。Formula式の中の変数（A、B、C）は、対応する入力端子からデータを受け取り、Formulaに対してローカルです。Formulaに（Resultに加えて）出力端子を追加した場合、それもFormulaに対してローカルな宣言されない変数になります。

宣言されないグローバル変数を作成するには

1. [Data] [image] [Variable] [image] [Set Variable]をクリックし、Set Variableオブジェクトを作業領域に配置します。

2. 必要な場合、[Name]フィールドをクリックして、新しい変数名を入力します。任意の有効な変数名をglobalAの代わりに使用できます。

3. Set VariableオブジェクトのData端子にデータ・オブジェクトを接続します。変数が作成され、データ値に設定されます。この宣言されないグローバル変数は、プログラム中の任意の式で使用できます。

宣言されたローカル／グローバル変数を作成するには

1. グローバルとローカルのどちらの変数を宣言するかを決めます。ローカル変数を宣言したい場合、変数を使用するコンテキスト（UserObjectまたはUserFunction）またはライブラリを開きます。

グローバル変数は、プログラムのどこでも宣言して使用できます。ローカル変数の宣言と使用は、特定のコンテキストまたはライブラリの中でしかできません。

2. [Data] [image] [Variable] [image] [Declare Variable]をクリックし、Declare Variableオブジェクトを作業領域に配置します。

3. [Name]の隣の編集フィールドをクリックし、変数名を入力します。これは他の変数との衝突を避けるために固有の名前にする必要があります。

4. [Scope]編集フィールドをクリックして、変数のスコープを設定します。

Globalを選択すると、Declare Variableオブジェクトが存在するコンテキストと無関係に、変数はプログラムのどこでも使用できるようになります。

Local to Contextを選択すると、変数はDeclare Variableオブジェクトが存在するUserObjectまたはUserFunction（およびその内部にネストされたUserObject）でのみ使用できるようになります。

Local to Libraryを選択すると、変数はDeclare Variableオブジェクトが存在するUserFunctionのライブラリ（ローカルまたはインポート）でのみ使用できるようになります。

5. [Type]編集フィールドをクリックして、変数のデータ型を設定します。プログラム実行中にこの変数に代入されたデータが宣言されたデータ型に一致しないと、エラーが発生します。

6. [Num Dims]編集フィールドをクリックして、選択した次元を持つ配列として変数を設定します。

ヒント

宣言された変数は、Set Variableまたは代入演算子を使用して初期化してから使用する必要があります。

グローバル変数とローカル変数が同じ名前を使用している場合、衝突が発生し、ローカル変数が優先されます。

変数名の大文字と小文字は区別されません（globalAとGlobalAは同じ）。

宣言されない変数を設定するには、レコードを含む任意の型のデータが使用できます。

プログラム中の変数のリストを見るには、ツールバーの[WatchWindow]ボタンをクリック（または[View] [image] [WatchWindow]を使用）して、[WatchWindow]ダイアログ・ボックスを開きます。宣言された変数は、プログラムが開かれたときにリストされます。宣言されない変数は、プログラムが実行された後でリストされます。WatchWindowで変数の値を編集できます。変更された値を使ってプログラムの実行を継続できます。変数名のリストはプログラム・エクスプローラにも表示されます。

[View Variables]ボタン

[Program Explorer]ボタン

関連項目

変数を削除するには

変数を使用するには

グローバル配列を使用するには

Default Preferences（Delete Variables at PreRun）

Set Variable

WatchWindow


変数を削除するには

1. Data [image] Variable [image] Delete Variableをクリックし、Delete Variableオブジェクトを作業領域に配置します。

2. 特定の変数を削除するか、すべての変数を削除するかを選択します。

特定のグローバル変数名を削除するには、By Name（デフォルト）をクリックし、テキスト・フィールドをクリックして変数の名前を入力します。

すべての変数を削除するには、All Variablesをクリックします。

ヒント

Delete Variableは、宣言された変数のデータ・コンテナを未初期化値にリセットします。変数の名前は削除しません。

Delete Variableは、未宣言の変数の値と名前を削除します。

変数名の大文字と小文字は区別されません（globalAとGlobalAは同じ）。

名前で参照される変数が存在しない場合、Delete Variableオブジェクトはエラーを発生します。

名前フィールドはコントロール入力としてDelete Variableに追加できます。

関連項目

変数を作成するには

Delete Variable


変数を使用するには

Get Variableオブジェクト（[Data] [image] [Variable] [image] [Get Variable]を使って初期化済みの変数にアクセスするか、変数名を式の中で使用します。上記の方法は、UserObjectまたはUserFunctionの中で非常に有用です。変数がローカルまたはグローバルとして宣言されている場合、Get Variableオブジェクトは正しいコンテキストで使用する必要があります。

ヒント

前回のプログラム実行による古いデータの使用を避けるため、すべての変数の値は、プログラムを実行したときにPreRunによって削除（クリア）されます。[Delete Variables at PreRun]をオフにするには、ツールバーの[Default Preferences]ボタン（[File] [image] [Default Preferences]）をクリックします。

[Default Preferences]ボタン

値がPreRunで削除される場合、Set Variableオブジェクトのシーケンス出力ピンを、変数を使用するオブジェクトのシーケンス入力ピンに接続する必要があります。接続していない場合、変数に定義された値がないためにエラーが発生します。

変数は、式を含む任意のオブジェクトで使用できます。ただし、Get Variableオブジェクトの名前フィールドに式を使用することはできません。

グローバル変数をVEEプログラムのメイン・コンテキストで定義し、UserObjectまたはUserFunctionのコンテキストからその変数にアクセスすることができます。この場合、UserObjectまたはCallオブジェクトへのシーケンス入力接続だけが必要です。

サンプル・プログラムmanual18.vee は、変数の宣言、初期化、メインおよびUserObjectコンテキストでの使用法を示します。このプログラムは、Manualサンプル・ディレクトリにあります（[Help] [image] [Open Example]）。

関連項目

変数を作成するには

Get Variable

WatchWindow


グローバル配列を使用するには

変数をグローバル配列として宣言できます。こうすると、VEEプログラムの任意の場所から配列にアクセスできるので、配列の扱いが容易になります。この項目では、サンプル・プログラムを使ってこのオブジェクトの使用方法を説明します。

例

1. プログラムmanual19.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（[Help] [image] [Open Example...]）。プログラムを実行します。

2つのFormulaオブジェクトは、配列構文を使ってグローバル配列の要素にアクセスします。例えば、式globalA[3]は、グローバル配列globalAの番号0003（4番目）の要素を読み取ります。この方法はレコードに対しても使用できます。

関連項目

変数を作成するには


初期値の設定

初期値を設定するには

変数にアクセスする前に、初期値を設定しておかないと、VEEのエラーが発生します。次に変数の例を挙げます。

Get Variable が変数を読み取ろうとする前に、 Set Variable が値を設定する必要があります。これを保証するために、Set Variableオブジェクトのシーケンス出力ピンを、Get Variableオブジェクトのシーケンス入力ピンに接続します。これを行わないと、Get Variableが存在しないグローバル変数にアクセスしてエラーが発生するおそれがあります。

注記

[Delete Variables at PreRun]プロパティが設定されていない場合、エラーは発生せず、単に古いデータが読み取られる場合があります。

宣言された変数は、作成された時点では初期化されておらず、Get Variableオブジェクトでアクセスしたり式で使用したりする前に、値を設定する必要があります。設定しないと、プログラムでエラーが発生します。値を設定するには、Set VariableオブジェクトまたはFormulaオブジェクトを使用します。

変数が配列またはレコードで、Formulaオブジェクトを使用する場合、いずれかの要素にアクセスするには配列またはレコード全体の値を設定する必要があります。次の例は、Formula オブジェクトで値を初期化するための2つの方法を示します。

関連項目

変数を作成するには

変数値にアクセスするには


変数値へのアクセス

変数値にアクセスするには

変数に名前を付けたら、プログラムでその値に何度でもアクセスできます。変数値を取得するにはいくつかの方法があります。次の例では、グローバル変数 globalA に格納された値を、1回目はGet Variableオブジェクトを使って、2回目は名前globalAをFormulaオブジェクトの式に含めることによって、3回目は名前globalAをTo File オブジェクトのトランザクションに含めることによって取得します。

注記

グローバル変数の名前は、Formula オブジェクトの式や、実行時に評価される他のすべての式で使用できます。

関連項目

変数を使用するには


ライブラリでの変数の使用

ライブラリで変数を使用するには

ライブラリがインポートされるときにはUserFunctionだけがロードされるので、Declare Variableオブジェクトを使用する場合、ライブラリのMainウィンドウではなく、どれかのUserFunctionの中に入れる必要があります。

変数のスコープがGlobalの場合、その変数はローカル・プログラム内でのみ用いられます。呼び出されるリモート関数内では使用できません。

  • ライブラリがインポートされるときに、インポートされたUserFunctionの中で宣言（Declare Variableオブジェクトによって）されているすべての変数は、指定されたスコープでその時点で定義されます。例えば、変数のスコープがGlobalの場合、ライブラリが削除されるまでプログラムの任意の部分からアクセスできます。ライブラリが削除されると、そのUserFunctionで宣言されたすべての変数も削除されます。

関連項目

変数について, プログラムでUserFunctionを呼び出すには


Agilent VEEの解析機能

VEEは、一般的な算術演算子およびそのほかの数多くの関数をサポートします。さらに、VEEにはMATLAB Script機能も備わっています。MATLAB Script機能は、The MathWorks社製の高機能標準MATLABのサブセットです。これにより、信号処理、高度な数式処理、データ解析、科学的／工学的グラフィックなどの演算機能をVEEから利用できるようになります。MATLAB Script機能は、VEEと完全に統合されているので、どのようなプログラムにもMATLAB Scriptオブジェクトを入れることができます。

必要な演算関数がVEEとMATLABのどちらにもない場合は、さらにいくつかのオプションを使用できます。Formulaオブジェクトを使用すると関数を作成できます。 C言語のようなコンパイル言語で関数を記述し、記述した関数をVEEにリンクさせることもできます。 またVEEから別のソフトウェアと通信することもできます。

関連項目

Formulaオブジェクトでの式の作成

組込み演算オブジェクトの使用法

Agilent VEEにおけるMATLAB Scriptの使用


Formulaオブジェクトでの式の作成

Formulaオブジェクトで式を作成するには

Formulaオブジェクトは、VEEで算術式を記述するために使用できます。式内の変数はデータ入力ピンの名前またはグローバル変数です。式の評価結果はデータ出力ピンに渡されます。

下図はFormulaオブジェクトの例です。式を入力するためのフィールドはオブジェクトの中央にあります。デフォルトの式(2*A+3)が式を入力する場所を示しています。フィールドをダブルクリックして、別の式を入力します。

注記

Formulaの式は、複数行に入力できます。Formula式に改行が含まれる場合、その式は複数行に入力された単一の式として解釈されます。Formulaにセミコロン(;)で分けられた文が含まれる場合、それらの文はFormula内の複数の式として解釈されます。

[Formula]ボックスはリッチ・テキスト・フォーマット・ボックスで、Formula内で式を編集するため標準の編集コマンドを使用できます。たとえば、End、Insert、Delete、Backspaceなどのキーが使用できるほか、マウスをドラッグして文字を強調表示し、Ctrl+Cキーを使って文字をコピーしたり、Ctrl+Vキーを使って文字を貼り付けたり、Ctrl+Xキーを使って文字を削除したりできます。FormulaボックスではCode CompletionとCode Insightも使用できます。

注記

[Devices] [image] [Function & Object Browser][Built-in]タイプで作成した関数は、実際には適切に設定された式を持つFormulaオブジェクトです。これらの関数は、関数を結合したり、入力端子を追加（または削除）するなどして修正できます。また、Formulaオブジェクトに複数行を入力したり、出力端子に値を割り当てることもできます。

Formulaオブジェクトを使った式の評価

次の例では、2*A^6-Bという式を評価します。 この式においてA=2、またB=1です（^の記号は累乗を表します）。

注記

変数の名前は、大文字小文字の区別はされません。

1 [Device] [image] [Formula]を選択します。[Formula]入力フィールドをクリックし、「2*A^6-B」と入力します。

2 マウス・ポインタをデータ入力領域（A 入力の真上以外）に置き、Ctrl+Aキーを押して入力ピンを追加します。

注記

追加された入力ピンはデフォルトではBのラベルが付けられますが、この名前は変更できます。

3 [Data] [image] [Constant] [image] [Int32]を選択します。 次にオブジェクト・メニューから[Clone]を選択してInt32オブジェクトのクローンを作成します。 作成した2つのInt32オブジェクトをFormulaのAとBの入力ピンに接続します。

4 A Int32の入力ボックスに2を入力し、B Int32の入力ボックスに1を入力します。

5 [Display] [image] [AlphaNumeric]を選択し、Formulaの出力に接続して、プログラムを実行します。結果として127が表示されます。

FormulaオブジェクトでのAgilent VEE関数の使用方法

この例では、余弦波を生成し、Formulaオブジェクトを使って標準偏差と根二乗平均を算出します。

1 Function Generator、Formula、AlphaNumericの各オブジェクトを選択し、データ・ピンで互いに接続します。

2 Formulaオブジェクトのオブジェクト・メニューを開いて[Clone]を選択して、クローンを作成します。 次に、最初のFormulaオブジェクトの下に作成したクローンを配置します。Function Generatorのデータ出力ピンを2番目のFormulaオブジェクトに接続します。

3 [AlphaNumeric]表示のクローンを作成し、作成したクローンを2番目の[Formula]オブジェクトに接続します。

4 最初のFormulaオブジェクトにsdev(A)を、2番目のFormulaオブジェクトにrms(A)を入力します。

sdev(A)およびrms(A)は、[Device] [image] [Function & Object Browser]にある演算関数です。このように、これらは「関数」として呼び出すことも「独立したオブジェクト」として呼び出すこともでき、どちらの場合も同じ動作をします。

5 プログラムを実行します。これらの関数をFormulaオブジェクトに入れると、プログラムは、独立したオブジェクトとして使用した場合と同じ答えを表示します。

今度は、Formulaオブジェクトを1つだけ使って標準偏差および根二乗平均を計算します。Formulaオブジェクトは、それぞれに値を割り当てられた出力端子を複数持つことができます。

6 オブジェクト・メニュー・ボタンをダブルクリックして、Formulaオブジェクトの1つを削除します。

7 残ったFormulaオブジェクトで式を次のように変更します。
B=sdev(A);
C=rms(A)

注記

Formulaオブジェクトに式を複数含める場合は、式の終わりにセミコロンを入れて次の式と区別します。たとえば、B=sdev(A);の式で、セミコロンは式の終わりを示します。

注記

Formulaオブジェクトでは、任意の位置に改行を入れることができます。式は、セミコロンがないかぎり、1つの式として解釈されます。たとえば、単一の式を次のように入力することもできます。

B=sdev
(A)

また、読みやすくするために式にスペースを入れることもできます。

8 Formulaオブジェクトに出力端子を追加します。出力端子の名前をBおよびCに変更します。出力端子BをAlphanumericオブジェクトの1つに、また出力端子Cをもう1つのAlphanumericオブジェクトに接続します。

9 プログラムを実行します。下図のように表示されます。

独習課題

次の例題を完成して次のように結果をチェックします。

1 [Built-in Functions]のGenerateカテゴリにあるrampオブジェクトを使用して、1から2048までの数の配列を作成します。この配列の標準偏差を算出して、その値を表示します。

2 rampオブジェクトのかわりにFormulaオブジェクトでramp()関数を使用して、前の手順の課題を実行します。

3 関数をネストして、前の手順の課題を実行します。オブジェクトは2つしか使用しません。

2番目および3番目の課題では、Formulaオブジェクトの入力端子Aを削除してエラー・メッセージが表示されないようにする必要があります。 すべてのデータ入力ピンが接続され、データを受け取らないと、オブジェクトが動作できないからです。

関連項目

Formula

Copyright (c) 1991-2006 Agilent Technologies, Inc.


組込み演算オブジェクトの使用法

VEEで、[Device] [image] [Function & Object Browser]を選択すると、VEEおよびMATLABの組込み（プログラム済み）算術式にアクセスできます。

組込み演算子または関数へのアクセス

VEEの組込み演算子および関数にアクセスするには、[Device] [image] [Function & Object Browser]を選択します。たとえば、特定の範囲の乱数を返す式を作成するには、[Built-in Functions] => [Probability & Statistics] => [random]を選択します。

[Function & Object Browser]には、現在の選択項目についての簡単な説明が表示されます。また、[Help]ボタンをクリックすると、現在の選択項目についてさらに詳しい説明が表示され、定義、使用法、構文、使用例といった情報を得ることができます。

MATLABの演算子および関数にアクセスするには、[Device] [image] [Function & Object Browser]を選択し、[MATLAB Functions]を選択します。たとえば、ルートを多項式に変換するには、[MATLAB Functions] => [Interpolation & Polynomials] => [poly]を選択します。

[Function & Object Browser]には、現在の選択項目についての簡単な説明が表示されます。 また、[Help]ボタンをクリックすると、現在の選択項目についてさらに詳しい説明が表示されます。MATLABのRuntime EngineおよびScriptについては、「Agilent VEEにおけるMATLAB Scriptの使用」のセクションで詳述しています。

例:標準偏差の算出

周波数が1 kHz、振幅が1 V、タイム・スパンが20 msで、256の点で表される余弦波形を生成します。この波形の標準偏差を算出して表示します。

1. [Device] [image] [Virtual Source] [image] [Function Generator]を選択します。[Frequency]を適切に設定してアイコン化します。

2. [Device] [image] [Function & Object Browser]を選択し、[Built-in Functions]、[Probability & Statistics]、[sdev]を選択します。[Create Formula]をクリックします。

注記

ツールバーの[fx ]アイコンを押すか、またはCtrl+Iキーを押すと、[Function & Object Browser]に直接アクセスできます。

3 sdev()のオブジェクト・メニューを開いて[Help]を調べます。

注記

sdev(x)オブジェクトは、xの分散の平方根として定義されます。xは、UInt8、UInt16、 Int16、Int32、Int64、 Real32、Real64、Coord、Waveformのいずれのデータ型も可能です。Function Generatorは、Waveformデータ型を出力します。

4 Function Generatorをsdev(x)に接続します。

5 [Display] [image] [AlphaNumeric]を選択し、sdev(x)のデータ出力ピンに接続します。

6. プログラムを実行します。次のように表示されます。


スカラ値を表示するには

スカラ値を表示するには、AlphaNumericオブジェクトを使用します。このオブジェクトは、実行されるたびに自分自身をクリアし、新しく受け取ったデータだけを表示します。

1. AlphaNumeric表示を作業領域に追加します（Display [image] AlphaNumeric）。

2. AlphaNumericオブジェクトのデータ入力ピンを、スカラ・データのソース（例えばReal64定数オブジェクト）に接続します。

3. プログラムを実行してデータを表示します。

例

関連項目

一連の値をログに表示するには

AlphaNumeric


値の配列を表示するには

配列を表示するには、AlphaNumericオブジェクトを使用します。このオブジェクトは、実行されるたびに自分自身をクリアし、新しく受け取ったデータだけを表示します。

1. AlphaNumeric表示を作業領域に追加します（Display [image] AlphaNumeric）。

2. AlphaNumericオブジェクトのデータ入力ピンを、配列データのソース（例えばAlloc Real64オブジェクト）に接続します。

3. プログラムを実行してデータを表示します。

4. 配列全体が表示されるようにAlphaNumericオブジェクトのサイズを変更します。

例

1次元配列は、10個の要素からなる1つのデータ・コンテナです。

関連項目

AlphaNumeric


一連の値をログに表示するには

一連の値をログに表示するには、Logging AlphaNumericオブジェクトを使用します。このオブジェクトは、受け取ったデータの「履歴ログ」を保持します。

1. Logging AlphaNumeric表示を作業領域に追加します（Display [image] Logging AlphaNumeric）。

2. Logging AlphaNumericオブジェクトのデータ入力ピンを、繰り返しデータ・ソース（例えばFor Countオブジェクト）に接続します。

3. プログラムを実行してデータのログを表示します。

例

Logging AlphaNumericオブジェクトは、For Countオブジェクトからの10個のスカラ値のログを表示します。

関連項目

データをアナログ表示するには

Logging AlphaNumeric


データをアナログ表示するには

スカラ・データをアナログ・インジケータに表示するには、Indicatorオブジェクトを使用します。これらのオブジェクトは、3色でレンジを示します。

Fill Barは、カラー・バーで値を表示します。

Meterは、アナログ・メータに値を表示します。

Tankは、グラフィカルなタンクの中のカラー・バーで値を表示します。

Thermometerは、グラフィカルな温度計の中の「水銀」で値を表示します。

以下の手順では、Thermometerオブジェクトを例に取ります。他のIndicatorオブジェクトにも同様の手順が使用できます。

Thermometerにデータを表示するには

1. Thermometerオブジェクトを作業領域に追加します（[Display] [image] [Indicator] [image] [Thermometer]）。

2. Int32 SliderオブジェクトをThermometerのデータ入力ピンに接続します。スライダを動かして値を選択し、プログラムを実行します。スライダを範囲内の異なる値に設定して、プログラムを実行します。

スライダの値を変更すると、「水銀」のレベルと色が変化します。値はThermometerの下部に表示されます。

3. Thermometerのスケールの範囲を変えてみてください。下の範囲フィールド（0）をクリックして、新しい値を入力します。上の範囲フィールド（100）も同じようにします。温度計のスケールが新しい範囲に合わせて変化します。

Thermometerオブジェクトを設定するには

1. Thermometerのオブジェクト・メニューで[Properties]をクリックします。[Thermometer Properties]ウィンドウが表示されます。

2. パラメータをいくつか変更してみます。

a. Thermometerのレイアウトを縦（デフォルト）または横に設定できます。デジタル表示をオン／オフすることもできます。

b. 各範囲（下、中央、上）の色を選択できます。色ボタンを押すと使用可能な色が表示されます。それぞれの色の範囲の開始値を決める下限値と上限値も設定できます。

3. [Properties]ウィンドウでの変更はただちに有効になります。

関連項目

Color Alarmを表示するには

Fill Bar

Meter

Tank

Thermometer


Color Alarmを表示するには

Color Alarmオブジェクトは、データ入力ピンの値に応じて、ユーザ定義のカラー・インジケータとテキスト文字列を表示します。

Color Alarmを使用するには

1. Color Alarmオブジェクトを作業領域に追加します（[Display] [image] [Indicator] [image] [Color Alarm]）。

2. Real64 SliderオブジェクトをColor Alarmのデータ入力ピンに接続します。スライダを動かして値を選択し、プログラムを実行します。スライダを範囲内の異なる値に設定して、プログラムを実行します。

スライダの位置を変更すると、Color Alarmに表示される色とテキストが変化します。

Color Alarmを設定するには

1. Color Alarmオブジェクトのオブジェクト・メニューで[Properties]をクリックします。[Properties]ウィンドウが表示されます。

2. パラメータをいくつか変更してみます。

a. ダイアログ・ボックスの[Layout]セクションでは、Color Alarmのレイアウトを円形（デフォルト）または長方形に設定できます。デジタル表示と3次元境界をオン／オフすることもできます。

b. ダイアログ・ボックスの[Limits]セクションでは、各範囲（下、中央、上）の色を選択できます。色ボタンを押すと使用可能な色が表示されます。各範囲のテキストを変更したり、それぞれの色の範囲の開始値を決める下限値と上限値を設定したりすることもできます。

3. [Properties]ウィンドウでの変更はただちに有効になります。

関連項目

データをアナログ表示するには

Color Alarm


XY値を表示するには

グラフィカル表示の中で一般的に最もよく用いられるのは、XY TraceおよびX vs Y Plotオブジェクトです。

一連の値をプロットするには

1. XY Traceオブジェクトを作業領域に追加します（Display [image] XY Trace）。

2. データのソースをXY Traceオブジェクトのデータ入力ピンに接続します。データは連続的に生成された一連のポイントでも、波形でもかまいません。この例には、Function Generatorオブジェクト（Device [image] Virtual Source）が使用できます。

3. プログラムを実行します。

例

次のプログラムでは、For Rangeオブジェクトが37回反復し、0、10、20という一連の値を360まで生成します。Formulaオブジェクトは各値のサインを計算して結果をXY Traceオブジェクトに出力し、このオブジェクトが結果の曲線をプロットします。

一連のY値をX値に対してプロットするには

1. X vs Y Plotオブジェクトを作業領域に追加します（Display [image] X vs Y Plot）。

2. XDataおよびYData1データ入力端子を適切なデータ・ソースに接続します。連続的に生成された一連のYポイントをXポイントに対してプロットすることも、波形を波形に対してプロットすることもできます。ただし、異なる種類のデータを混在させることはできません。

3. プログラムを実行します。

例

次のプログラムでは、For Log Rangeオブジェクトが14回反復し、Yデータ・ポイントの対数系列を生成します。CounterはXData入力端子の現在のカウントを出力し、For Log RangeオブジェクトはYData1入力端子に対数系列を出力します。X vs Y Plotオブジェクトは結果の曲線を表示します。

関連項目

波形を表示するには

X vs Y Plot

XY Trace


波形を表示するには

波形データを表示するには、Waveform (Time)表示オブジェクトまたはXY Traceオブジェクトを使用します。1つの波形を別の波形に対して表示するには、X vs Y Plotオブジェクトを使用します。次の例は、波形を表示する方法を示します。

注記

表示オブジェクトのレイアウト、グリッド・タイプ、マーカなどのプロパティを変更するには、タイトル・バーをダブルクリックするか、オブジェクト・メニューのPropertiesをクリックします。トレースおよびスケール・プロパティにすばやくアクセスするには、トレースまたはスケールのラベルをクリックします。

XY Traceオブジェクトに正弦波を表示するには

1. XY Traceオブジェクトを作業領域に追加します（Display [image] XY Trace）。

2. Function Generatorオブジェクトを作業領域に追加します（Device [image] Virtual Source [image] Function Generator）。Function GeneratorのFunc出力を、XY Traceオブジェクトのデータ入力ピンに接続します。

3. Function Generatorの設定を下図のように変更して、50 Hzの正弦波を出力するようにします。プログラムを実行します。

次のプログラムでは、XY Traceオブジェクトは波形をタイム・ドメインで表示します。波形の振幅は、波形のタイム・スパンに合わせて、0～20m（20ミリ秒）のタイム・スケールに対してプロットされます。XY Traceオブジェクトは、入力データが波形の場合は自動的にこの動作を行います。それ以外の場合、X軸は単にプロットされるポイントの数です。

X vs Y Plotオブジェクトで1つの波形を別の波形に対して表示するには

1. X vs Y Plotオブジェクトを作業領域に追加します（Display [image] X vs Y Plot）。

2. 2つのFunction Generatorオブジェクトを作業領域に追加します。

3. Function GeneratorのFunc出力を、X vs Y PlotオブジェクトのXData入力ピンに接続します。このFunction Generatorの設定を変更して、50 Hzの正弦波を出力するようにし、Phaseを0度に設定します。

4. もう1つのFunction GeneratorのFunc出力を、YData1入力ピンに接続します。このFunction Generatorの設定を変更して、50 Hzの正弦波を出力するようにし、Phaseを45度に設定します。

5. プログラムを実行します。

次のプログラムでは、Function Generatorオブジェクトは位相が45度ずれた2つの50 Hz正弦波を出力します。これらの波形同士をプロットすると、おなじみのリサジュー図形が得られます。

2つの波形をWaveform (Time)オブジェクトに表示するには

1. Waveform (Time)オブジェクトを作業領域に追加します（Display [image] Waveform (Time)）。

2. オブジェクト・メニューのAdd Terminal [image] Data Input...をクリックして、2番目の端子を追加します。

3. 2つのFunction Generatorオブジェクトを作業領域に追加します。

4. 1つのFunction GeneratorのFunc出力を、WaveformオブジェクトのTrace1入力ピンに接続します。このFunction Generatorの設定を変更して、50 Hzの正弦波を出力するようにし、Phaseを0度に設定します。

5. もう1つのFunction GeneratorのFunc出力を、Trace2入力ピンに接続します。このFunction Generatorの設定を変更して、50 Hzの正弦波を出力するようにし、DcOffsetを-0.8にし、Phaseを0度に設定します。

6. プログラムを実行します。

次のプログラムでは、Function Generatorオブジェクトは2つの50 Hz正弦波を出力しますが、2番目の正弦波には-0.8のDCオフセットがあります。Waveform (Time)オブジェクトは2つの波形をTrace 1およびTrace 2として表示します。トレースの線種プロパティを変更するには、トレース・ラベルをクリックし、表示されるダイアログ・ボックスでLine TypeとPoint Typeを変更します。

注記

XY Trace、X vs Y Plot、Waveform (Time)の各オブジェクトを使って、計測器からの波形データを表示することもできます。

関連項目

トレースを追加するには

トレースの線と点の種類を変更するには

Waveform (Time)

X vs Y Plot

XY Trace


極座標データを表示するには

極座標データをプロットするには、Polar Plot表示オブジェクトを使用します。以下の手順は、このオブジェクトの表示方法の例を示します。

1. Polar Plot表示オブジェクトを作業領域に追加します（Display [image] Polar Plot）。

2. For RangeオブジェクトとFormulaオブジェクトを追加します。次のプログラムに示すようにオブジェクトを接続します。必要な三角関数式をFormulaオブジェクトに入力し、プログラムを実行します。

三角関数式1-(sin(360-A)/3)-cos(A)は、「ハート形」の図形を作成します。入力する式は何でもかまいません。For Rangeオブジェクトは、角度を0度から360度まで1度ずつ変化させながら反復を行います。Polar Plotオブジェクトは三角関数データを角度に対してプロットします。

関連項目

Polar Plot


トレースを追加するには

グラフィカル（XY）表示オブジェクトにトレースを追加できます。

1. 表示オブジェクトのオブジェクト・メニューから、[Add Terminal] [image] [Data Input]を選択します。

2. 新しい入力が、適切なラベルとともにオブジェクトに追加されます。表示によっては、ラベルは表示されず、ピンだけが表示される場合もあります。

3. 端子ラベルを表示するには、オブジェクト・メニューから[Properties]を選択し、[Show Terminals]で[True]を選択します。

4. 必要な端子を追加したら、それぞれにデータのソースを接続します。

注記

グラフィカル（XY）表示オブジェクトは最大255のトレースを表示できます。

関連項目

トレースの色を変更するには

トレースの線と点の種類を変更するには

プログラムからのグラフへのトレースの追加


プログラムからのグラフへのトレースの追加

プログラムからグラフにトレースを追加するには

XY Trace、X vs Y Plot、Polar Plot、Complex Plane、Strip Chartは、2次元配列を入力データとして受け入れ、最大12のトレースを同時に表示できます。プログラムからグラフィカル・オブジェクトに複数のトレースを追加できます。

複数のトレースをプロットするには

次の例は、グラフ・オブジェクトに複数のトレースを表示する方法を示します。

1. 次のようなプログラムを作成します。

2. XY Traceオブジェクトのオブジェクト・メニューから[Properties]を選択します。[Properties]ウィンドウが表示されます。

3. Behavior カテゴリの下で MatrixInputをクリックします。MatrixInputはデフォルトでFalseなので、Trueに変更します。

4. MatrixInputを設定したら、プログラムを実行します。2つのトレースがXY Traceグラフに表示されることを確認します。

その他の例: 2dXyTrace.vee、 MatrixInputStripChart.vee

注記

このMatrixInputプロパティをTrueに設定できるのは、Next Curveコントロール・ピンがなく、XY Traceにただ1つの入力データ・ピンがある場合だけです。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

MatrixInputプロパティはパネル・ビューでは使用できず、実行時にプログラムで切り替えることはできません。

すべてのトレースの個々のトレース・プロパティ（カラー、ポイント・スタイルなど）は実行時に設定できます。

関連項目

トレースを追加するには、XY Trace、 X vs Y Plot、 Polar Plot、 Complex Plane、Strip Chart


トレースの色を変更するには

グラフィカル（XY）表示オブジェクトのトレースの色は変更できます。

1. ディスプレイのオープン・ビューのトレース名を直接クリックしてそのプロパティを変更します。

2. Editダイアログ・ボックスでColorの隣のボタンをクリックします。表示されるダイアログ・ボックスで新しい色をクリックし、OKをクリックします。

3. トレース色を変更したら、Editダイアログ・ボックスでOKをクリックして作業領域に戻ります。新しい色が有効になります。

4. 色を変更したいすべてのトレースに対して上記の手順を繰り返します。

これらの値はプロパティ・ウィンドウからも変更できます。XY表示のコンテキスト・メニューから、Propertiesを選択します。プロパティ・ウィンドウで、Designカテゴリまでスクロールします。目的のトレースの左側の"+"をクリックして、そのトレースのプロパティを表示し、編集します。

関連項目

トレースの線と点の種類を変更するには


トレースの線と点の種類を変更するには

グラフィカル（XY）表示オブジェクトのトレースの線と点の種類は変更できます。

1. ディスプレイのオープン・ビューのトレース名を直接クリックしてそのプロパティを変更します。

2. Editダイアログ・ボックスで、線と点の種類を変更できます。

a. 線の種類を変更するには、Line Type:の右側のボタンをクリックします。クリックするたびに線の種類が切り替わります。目的の線の種類が見つかるまでクリックします。

b. 点の種類を変更するには、Point Type:の右側のボタンをクリックします。クリックするたびに点の種類が切り替わります。目的の点の種類が見つかるまでクリックします。

3. 変更が終了したら、OKをクリックして作業領域に戻ります。

4. 線と点の種類を変更したいすべてのトレースに対して上記の手順を繰り返します。

これらの値はプロパティ・ウィンドウからも変更できます。XY表示のコンテキスト・メニューから、Propertiesを選択します。プロパティ・ウィンドウで、Designカテゴリまでスクロールします。目的のトレースの左側の"+"をクリックして、そのトレースのプロパティを表示し、編集します。

関連項目

トレースの色を変更するには


表示を拡大または縮小するには

グラフィカル（XY）表示オブジェクトの表示を拡大したり縮小したりできます。この手順では、サンプル・プログラムを使って拡大／縮小の使用法を説明します。

1. プログラムmanual23.veeをロードします。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。プログラムを実行してトレースを表示します。

2. 表示オブジェクトのオブジェクト・メニューから、Zoom [image] Inを選択します。

3. 拡大したい領域の右上隅にポインタを移動します。マウスの左ボタンをクリックしてドラッグすることにより、輪郭線ボックスを描いて領域を定義します。

4. マウスのボタンを離します。拡大された領域が表示されます。

5. 元の表示に戻るには、Auto Scaleをクリックします。

6. 次に、表示オブジェクトのオブジェクト・メニューから、Zoom [image] Out 2 Xを選択します。

7. 表示が縮小され、元のサイズの2倍の領域が表示されます。元の表示に戻るには、Auto Scaleをクリックします。

ショートカット

マウスの左ボタンをクリックしてドラッグし、拡大したい領域の周りに輪郭線ボックスを描き、ボタンを離します。


グリッド・タイプを変更するには

グラフィカル（XY）表示オブジェクトのグリッド・タイプは変更できます。

1. オブジェクト・メニューからPropertiesを選択します。Propertiesウィンドウが表示されます。

2. Grid Typeで必要なグリッドのタイプを選択します（デフォルトはLines）。

3. プロパティ・ウィンドウでの変更はただちに有効になります。


表示にマーカを設定するには

グラフィカル（XY）表示オブジェクトにマーカを設定することにより、ピークや谷の位置を知ることができます。

1. オブジェクト・メニューから[Properties]を選択します。[Properties]ウィンドウが表示されます。

2. [Markers]カテゴリで NumMarkersを選択します。

a. Noneを選択すると、マーカがオフになります（デフォルト）。

b. Oneを選択すると、1個のマーカがオンになります。マーカ位置がオブジェクトの下部に表示されます。

c. Twoを選択すると、2個のマーカがオンになります。それぞれの位置がオブジェクトの下部に表示されます。

d. Deltaを選択すると、2個のマーカがオンになります。それぞれの位置と、2つの位置の差が、オブジェクトの下部に表示されます。

さらに、MarkerInterpolateをTrueに変更すると、表示されているデータ・ポイントの間にマーカを配置できます（マーカ位置はリニア補間によって計算されます）。

3. Markersを設定した後、マーカをマウスでクリックしてドラッグすることにより、トレースに沿って動かすことができます。

例

マーカを含むプログラムが、manual24.veeという名前で保存されています。 このプログラムは、Manualサンプル・ディレクトリ（[Help] [image] [Open Example...]）にあります。

1. このプログラムをロードして実行すると、XY Traceオブジェクトに波形が表示されます。

2. マーカを動かしてみてください。XY Traceオブジェクトの下部の位置データに注目してください。

関連項目

マーカのプロパティを取得／設定するには、プログラムのプロパティ


マーカのプロパティを取得／設定するには

グラフィカル（XY）表示オブジェクトのマーカ値をプログラムで取得したり設定したりできます。

1. マーカ付きのXY表示がある場合、オブジェクト・メニューからPropertiesを選択します。Properties Window
が表示されます。

2. Nameフィールドに名前を入力します。このXYDisplayは、指定された名前を持つObject型のコンテキストにローカルな変数になります。他の宣言された変数と同様に、この名前を使って、任意のFormulaや式でこのXY表示を参照できます。

3. Formulaオブジェクトを作成します（Device [image] Formula）。

4. 必要な式をFormulaに入力します。オブジェクト名とマーカのプロパティはピリオドで区切ります。例:myGraph.marker1X

5. Formulaでデフォルトの入力ピンを使用しない場合は、ピンを削除します。

式を直接入力する代わりに、Function & Object Browserを使用することもできます。名前付きのXY表示があるとします。

1. Device [image] Function & Object Browserを選択します。

2. VEE Objects => XYDevice を選択します。Member の列に、使用可能なすべてのマーカのプロパティのリストが表示されます。

3. マーカのプロパティを選択し、Create Formulaボタンをクリックします。自動的に作成された式を編集して、デフォルト名の"XYDevice"をXY表示オブジェクトの実際の名前に変更します。

関連項目

表示にマーカを設定するには、プログラムのプロパティ


表示のスケールを自動的に変更するには

グラフィカル（XY）表示のスケールはさまざまな方法で変更できます。PropertiesウィンドウでScalesをクリックすると、Automatic Scalingプロパティがデフォルトでオンになっているはずです。これにより、データを受信すると表示のスケールが自動的に変更されます。また、PropertiesのLayoutカテゴリで、ShowAutoScaleButtonをTrueに変更することができます。こうすると、Automatic Scalingをオフにしていても、手動で表示のスケールを変更できます。また、オブジェクト・メニューにはAuto Scaleコマンドがあります。通常は、Automatic Scalingをオンのままにしておくのが最善です。

場合によっては、Automatic Scalingをプログラムからオン／オフしたいことがあります。このためには、表示オブジェクトにコントロール・ピンを追加し、それに適切な情報を送信します。

1. グラフィカル表示オブジェクトのオブジェクト・メニューから、Add Terminal [image] Control Inputを選択します。

2. Scalesコントロール入力を選択します。

3. Record Constantオブジェクト（Data [image] Constant [image] Record）を追加します。

4. Scalesパラメータを制御するための適切なフィールド名と値を入力し、出力ピンをScalesコントロール入力に接続します。Scalesパラメータに関する情報は、各表示オブジェクトに関するVEEヘルプ・トピックに記載されています。

下の図に例を示します。Record ConstantはXスケールの最大値／最小値を設定し、Automatic Scalingをオフに設定します。データがディスプレイに送信される前にコントロール入力が動作することが重要です。このために、Record Constantシーケンス出力ピンをFunction Generatorシーケンス入力ピンに接続します。

関連項目

Record Constant

XY Trace


テスト・データ表示のカスタマイズ

テスト・データ表示をカスタマイズするには

表示は、さまざまな方法でカスタマイズできます。VEEのすべてのオブジェクトと同様に、表示に対してラベルの作成、移動、サイズの変更などを行うことができるだけでなく、x/yスケールの変更、トレースの修正、マーカの設定、グラフィック表示の部分的な拡大表示なども行うことができます。

次の例では、このような機能の一部を説明します。この例では、Noise Generatorを使って波形を生成し、生成した波形をWaveform (Time)の画面に表示します。またこの例では、Xスケールの変更方法、波形セグメントの拡大表示方法、波形の点の間の距離を測定するためのマーカの設定方法を説明します。操作の基本は、グラフィック表示すべてに共通です。

波形の表示

1 [Device] [image] [Virtual Source] [image] [Noise Generator]を選択します。

2 [Display] [image] [Waveform (Time)]を選択します。

3 Noise Generatorのデータ出力ピンをWaveform (Time)のデータ入力ピンに接続してプログラムを実行します。

XおよびYスケールの変更

1 Waveform (Time)のタイトル・バーをダブルクリックして[Y Plot Properties]ダイアログ・ボックスを表示します。[Scales]フォルダを選択し、[X Maximum]の[20m]を選択し「1m」を入力します。

これにより、表示のタイム・スパンが20ミリ秒から1ミリ秒に変わります。

2 -1と表示されているY軸の[Minimum]フィールドをダブルクリックし、「- 0.5」を入力します。[OK]をクリックします。

波形の部分的な拡大表示

1 Waveform (Time)のオブジェクト・メニューを開き、[Zoom [image] In]をクリックします。

カーソルの形が小さい右向きの角型になります。クリック・アンド・ドラッグすると、拡大表示する領域の輪郭線をグラフ上に四角く描くことができます。

2 波形の山をいくつか含む領域の輪郭線を描いて、マウスのボタンを離します。

画面には、この波形の選択した領域が拡大表示されます。x およびyスケールは自動的に変更されます。

画面へのデルタ・マーカの設定

1 Noise Generatorをオープン・ビュー表示にします。

a [Num Points]の設定を[16]に変更します。プログラムを再度実行します。

b Waveform (Time)のオブジェクト・メニューを開き、[Properties]を選択します。 または、タイトル・バーをダブルクリックします。[Markers]の下にある[Delta]をクリックします。次に[OK]をクリックします。

注記

実行時にマーカの値の取得と設定を行うことができます。詳細は、[Contents and Index] [image] 「How Do I...」 [image] 「Display Data」にあるオンライン・ヘルプのトピックを参照してください。

波形のデータ点の1つに上下を向いた2つの白い矢印が表示されます。また、これらのマーカのxおよびy座標が画面の一番下に表示されます。2つのピーク間のx座標またはy座標の距離を測定するには、測定するピークまで矢印をクリック・アンド・ドラッグします。マーカの1つが新しいピークへ移動し、新しい座標が画面の一番下に表示されます。

VEEは、波形のデータ点の間にマーカを自動的に挿入できます。オブジェクト・メニューを開いて、[Properties]を選択し、[Markers]の下にある[MakerInterpolate]をクリックします。

トレース色の変更

1 タイトル・バーをダブルクリックして[Properties]を開き、次に[Trace]プロパティをダブルクリックします。

このフォルダで選択したトレースのプロパティとして、Color、LineStyle、Name、PointStyleを選択できます。

TracesまたはScalesコントロール入力を使用して、プログラム実行時にこれらの値を変更することもできます。

2 これで、トレースは新しい色で表示されます。Grid Typeといったほかの表示特性は、上記例題の説明と同じような方法でカスタマイズできます。

注記

VEEの表示のオブジェクト・メニューには[Plot]もあり、プログラムの残りをプリント・アウトすることなくテスト結果を画面にプロットできます。

関連項目

プログラムからのグラフへのトレースの追加


表示をクリアするには

グラフィカル（XY）表示オブジェクトの表示をクリアするには、次のいずれかの方法を使用します。

表示オブジェクトのPropertiesウィンドウで、BehaviorカテゴリのClearAtPreRunをTrueに変更します。.

オブジェクト・メニューからClear Control [image] Displayを選択します。

オブジェクトにClearコントロール入力端子を追加します。オブジェクト・メニューでAdd Terminal [image] Control Inputをクリックします。Clearを選択し、OKをクリックします。Clear端子がシーケンス出力ピンとの接続によってアクティブにされるたびに、表示がクリアされます。


ファイルにデータを書き込むには

ファイルにデータを書き込むには、To Fileオブジェクトを使用します。

データ・ファイルを作成するには

1. To Fileオブジェクトをプログラムに追加します（[I/O] [image] [To] [image] [File]）。

2. To Fileオブジェクトのデータ入力ピンを、ファイルに出力するデータのソースに接続します。

3. 出力先ファイルの名前を変更するには、[To File]ボタンをクリックし、新しいファイル名をダイアログ・ボックスに入力します。次に、[OK]をクリックします。

To Fileは、書き込みトランザクションを使ってデータをファイルに出力します。ファイルが存在しない場合、VEEはファイルを作成します。

ファイルにデータを書き込むには

この手順では、文字列データと実数データをファイルに書き込む単純なプログラムの作成方法を説明します。これ以外のデータをプログラムで書き込む必要がある場合は、この手順を参考にしてください。

1. To Fileオブジェクトをプログラムに追加します（[I/O] [image] [To] [image] [File]）。チェックボックスをクリックして、[Clear File At PreRun & Open]をオンにします（ボックス内にチェック・マークが表示されます）。

一般的には、[Clear File At PreRun & Open]をオンにして、ファイル内の古いデータがクリアされるようにします。

2. <Double-Click to Add Transaction>をダブルクリックして、[I/O Transaction]ダイアログ・ボックスを表示します。

3. [DEFAULT FORMAT]フィールド（またはその矢印）をクリックします。ドロップダウン・メニューが表示されます。

4. [STRING FORMAT]をクリックし、[OK]をクリックします。変更されたトランザクションはWRITE TEXT a STR EOLです。このトランザクションは、変数a（入力ピンAのデータ）をmyFileに文字列フォーマットのテキスト・データとして書き込み、その後に行末シーケンス（キャリッジリターン／改行）を書き込みます。

5. <Double-Click to Add Transaction>をダブルクリックして、To Fileに2つめのトランザクションを追加します（オブジェクト・メニュー [image] [Add Trans…]）。[I/O Transaction]ダイアログ・ボックスが表示されます。

6. 変数フィールド（デフォルトではa）をbに変更します。

7. [DEFAULT FORMAT]フィールド（またはその矢印）をクリックします。ドロップダウン・メニューが表示されます。

8. REAL64 FORMATをクリックし、[OK]をクリックします。2つめのトランザクションはWRITE TEXT b REAL64 STD EOLとなります。このトランザクションは、変数bをREAL64 STDフォーマットのテキストでmyFileに書き込みます。

9. Text定数オブジェクトを端子aに接続し、Real64定数オブジェクトを端子bに接続します。完成したプログラムは次のように表示されます。

プログラムを実行すると、2行のデータがmyFileに書き込まれ、それぞれの後に行末シーケンス（キャリッジリターン／改行）が出力されます。最初のデータは文字列String dataです。2つめのデータは実数3.142です。

関連項目

ファイルからデータを読み取るには

ファイルI/Oトランザクションを編集するには

プログラムでファイル名を選択するには

To DataSet

To File


To/From Fileオブジェクトの使用法

To/From Fileオブジェクトを使用するには

To FileオブジェクトとFrom Fileオブジェクトは、I/Oトランザクションに基づいてファイルにデータを書き込んだり、ファイルからデータを読み取ったりします。2つのオブジェクトには次の特性があります。

データ・ファイルは、初めてREADまたはWRITEトランザクションが実行されたときにオープンされます。プログラムが終了すると、VEEは、オープンしているすべてのファイルを自動的にクローズします。

VEEは、ファイルにアクセスしているオブジェクトの数に関係なく、ファイルごとに1つの読み取りポインタと1つの書き込みポインタを保持します。読み取りポインタは次に読み取るデータを識別し、書き込みポインタは次にデータを書き込む場所を示します。

To/From Fileオブジェクトは、既存のファイルにデータを追加することも、既存のファイルを上書きすることもできます。To Fileオブジェクトのオープン・ビューで[Clear File at PreRun & Open]設定にチェック・マークを付けた場合、書き込みポインタはファイルの先頭から始まります。チェック・マークを付けない場合、書き込みポインタは、既存のファイルの末尾に位置します。各WRITEトランザクションでは、ファイルの書き込みポインタの位置に情報を追加します。EXECUTE CLEAR トランザクションが実行された場合、書き込みポインタはファイルの先頭に移動し、ファイルの内容が消去されます。

読み取りポインタは、ファイルの先頭から始まり、READトランザクションで読み取るデータ量に応じて移動します。From FileオブジェクトのEXECUTE REWINDを実行すると、データに影響を与えることなく、読み取りポインタをファイルの先頭に戻すことができます。

関連項目

I/Oトランザクションについて

例題5-3：To/From Fileオブジェクトの使用法

例題2-3：データ・ファイルの使用法


ファイルからデータを読み取るには

ファイルからデータを読み取るには、From Fileオブジェクトを使用します。

この手順は、ファイルにデータを書き込むにはの手順と対をなすものです。上記の手順で作成されたファイルから文字列および実数データを読み取る手順を示します。これ以外のデータをプログラムで読み取る必要がある場合は、この手順を参考にしてください。

1. From Fileオブジェクトをプログラムに追加します（[I/O] [image] [From [image] File]）。

2. ファイルへの書き込みで説明したI/O Transactionダイアログ・ボックスを使って、デフォルトのトランザクションをREAD TEXT x STRに変更します。

3. ファイルへの書き込みで説明したI/O Transactionダイアログ・ボックスを使って、2つめのトランザクションREAD TEXT y REAL64を追加します。

4. AlphaNumeric表示を2つの出力（Xとy）に接続します。

5. To Fileオブジェクトのシーケンス出力ピンをFrom Fileオブジェクトのシーケンス入力ピンに接続します。これにより、From Fileオブジェクトがファイルからデータを読み取る前にmyFileにデータが書き込まれることが保証されます。完成したプログラムは次のように表示されます。

関連項目

ファイルI/Oトランザクションを編集するには

プログラムでファイル名を選択するには

ファイルにデータを書き込むには

From DataSet

From File


ファイルI/Oトランザクションを編集するには

To Fileオブジェクトは、書き込みトランザクションを使って、指定されたデータ・ファイルと通信します。デフォルトのトランザクションはWRITE TEXT a EOLです。これは、入力Aのデータをテキストで出力し、その後にEOLシーケンス（デフォルトではキャリッジリターン／改行）を出力します。From Fileオブジェクトは、同様のトランザクションを使ってファイルからデータを読み取ります。トランザクションを編集するには、I/O Transactionダイアログ・ボックスを使用します。

トランザクションを編集するには

1. To FileまたはFrom Fileオブジェクトのトランザクション・フィールドをダブルクリックします。I/O Transactionダイアログ・ボックスが表示されます。

2. 操作を変更するには、WRITEまたはREADをクリックし、操作を選択します。

3. エンコーディングを変更するには、Textをクリックし、エンコーディングを選択します。

一般的に、From Fileを使ってデータをVEEに読み戻す場合にはコンテナ・エンコーディングを使用しますが、スプレッドシート・プログラムなどの外部アプリケーションでデータ・ファイルを読み取りたい場合には他のエンコーディングを使用します。

選択したエントリに応じてダイアログ・ボックスが変化し、対応するオプションが使用可能になります。

4. 必要に応じて他のフィールドのエントリを変更し、データ・フォーマット、EOLシーケンスなどのオプションを設定してから、OKをクリックします。

5. 別のトランザクションを追加するには、最後のトランザクションの下の空行をダブルクリックします。

関連項目

From File

To File

I/Oトランザクションについて


波形の記録／読み取りを行うには

波形データの記録と読み取りには、データ・コンテナの形式を使うのが最適です。基本的な手順は次のとおりです。

1. To FileオブジェクトのWRITE CONTAINERトランザクションを使って、波形データをファイルに書き込みます。

2. From FileオブジェクトのREAD CONTAINERトランザクションを使って、波形データをファイルから読み取ります。

例

プログラムmanual20.vee （manualサンプル・ディレクトリに存在）に、波形データの使用法が示されています。プログラムは次のように動作します。

1. Function Generatorからの波形データはTo FileオブジェクトによってWRITE CONTAINER aトランザクションを使ってwavedataファイルに書き込まれます。

2. wavedataファイルのデータは、From FileによってREAD CONTAINER xトランザクションを使って波形コンテナとして読み込まれます。データは端子Xに出力され、Waveform (Time)で表示されます。

3. シーケンス・ピン接続により、From Fileが読み取る前に波形がファイルに書き込まれることが保証されます。

より一般的な状況では、あるVEEプログラムが波形データをファイルに書き込み、別のVEEプログラムがデータをVEEに読み込んで解析したり表示したりします。

関連項目

ファイルにデータを書き込むには

ファイルからデータを読み取るには

ファイルI/Oトランザクションを編集するには

From File

To File


プログラムでファイル名を選択するには

プログラムでFrom FileやTo Fileなどのオブジェクトを使ってデータを読み書きする場合、実行時にファイル名の入力を求めるようにプログラムを設定できます。以下の例では、File Name Selectionダイアログ・オブジェクトをTo Fileと組み合わせてその方法を示します。

1. To Fileオブジェクトを追加します（[I/O] [image] [To [image] File]）。

2. [Clear File At PreRun & Open]をクリックします。<Double-Click to Add Transaction>をダブルクリックし、[OK.]をクリックします。

3. To FileオブジェクトにFile Nameコントロール入力端子を追加します（オブジェクト・メニュー [image] [Add Terminal] [image] [Control Input]、[OK]をクリック）。

4. File Name Selectionオブジェクト（[Data] [image] [Dialog Box] [image] [File Name Selection]）を作業領域に追加し、そのFile Name出力をTo FileオブジェクトのFile Nameコントロール・ピンに接続します。Cancel出力にStopオブジェクトを追加します。

5. File Name Selectionオブジェクトのシーケンス出力ピンをTo Fileオブジェクトのシーケンス入力ピンに接続します。これにより、ファイル名が選択されるまでTo Fileオブジェクトが動作しないことが保証されます。

6. File Name Selectionオブジェクトで、Select File ForフィールドをWritingに変更します。これにより、既存のファイルを上書きする前にユーザに警告が表示されます。

7. Textオブジェクトを追加し、To Fileのピンaに接続します。

Windowsの例

プログラムを実行すると、[Enter File Name]ダイアログ・ボックスが表示され、ファイル名の入力を求めます。新しいファイル名を入力するか、既存のファイル名をクリックします。Windowsの場合、保存するファイルはプログラム・ファイルではないので、[Save as type]エントリをAll Files (*.*)に変更します。[Save]をクリックします。

関連項目

File Name Selection

From File

To File


スプレッドシート・プログラム用にデータを保存するには

VEEのファイルI/Oを使って、Microsoft ExcelやLotus 1-2-3などのスプレッドシート・プログラムで読み込めるデータ・ファイルを作成できます。一般的な手順は以下のとおりです。

1. スプレッドシート・プログラムで要求されるデータ・ファイル・フォーマットを決定します。例えば、行と列の区切りをどうするかなどです。

2. データを収集し、適切な区切り記号を使ってASCIIテキスト・フォーマットでデータをファイルに出力するVEEプログラムを作成します。このためには通常、To Fileオブジェクトを使うのが最善の方法です。

例

プログラムmanual21.vee （manualサンプル・ディレクトリに存在）に、それぞれタイムスタンプを持つ10個の電圧測定値を収集（またはシミュレート）し、Microsoft Excelで読み込めるファイルにデータを出力する方法が示されています。プログラムは次のように動作します。

1. For CountおよびDelayオブジェクトにより、以下のイベントを約10秒ごとにトリガします。

a. Counterオブジェクトが1進みます。

b. Nowオブジェクトが現在時刻（1秒以内の精度）を出力し、To Stringオブジェクトによってタイム・スタンプ・フォーマットに変換します。

c. dmm (hp34401a @ (NOT LIVE))計測器パネルが、HP 34401Aマルチメータからの測定値をシミュレートします。

2. Build Recordオブジェクトは、各測定値に対するレコードを（10秒ごとに）次のように構築します。フィールドCntはカウントまたはテスト番号、フィールドTmは測定値の現在時刻（hh:mm:ss形式）、フィールドVltsは計測器パネル・オブジェクトから返されたシミュレートされた電圧測定値。

3. To Fileオブジェクトはデータをテキスト形式でファイルに書き出します。トランザクションWRITE TEXT a.Cnt," ",a.Tm," ",a.Vlts EOLの意味は次のとおりです。

a.Cntは「レコードaのフィールドCnt」（カウント）を表します。

" "はスペース（区切り記号）を挿入します。

a.Tmは「レコードaのフィールドTm」（時刻）を表します。

" "はスペース（区切り記号）を挿入します。

a.Vltsは「レコードaのフィールドVlts」（測定値）を表します。

EOLは行末シーケンス（キャリッジリターン／改行）を挿入します。

これにより、各レコードが文字列フォーマットに変換され、次のフォーマットで（スペースを区切り記号として）出力されます。

1 11:29:06 5.687753697513882

プログラムが終了したときに、ファイルmyfileは次のような10列分のデータから構成されます。

1 11:29:06 5.687753697513882

2 11:29:16 6.437091378803515

3 11:29:26 7.064658105870967

4 11:29:36 7.439572075814199

5 11:29:46 7.465490768920665

6 11:29:56 7.135229243023529

7 11:30:06 6.53525004955898

8 11:30:16 5.795432812581498

9 11:30:26 6.154398687554457

10 11:30:36 6.844467171462198

各行で、最初のフィールド（カウント）の後にスペース（区切り文字）、2番目のフィールド（時刻）の後にもスペース、3番目のフィールド（測定値）の後には行末シーケンスが置かれます。

出力ファイルはWindowsのASCIIファイルであり、Microsoft Excelに直接読み込めます。単にExcelからファイルを開き、Excelが尋ねてきたら、ファイルが区切り付きで、区切り記号がスペースであることを指定します。

データは次のようにExcelのスプレッドシートに表示されます。

適切な区切り記号を使用することにより、さまざまなスプレッドシート・プログラムで読み取れるファイルを作成できます。

このプロセスは、ActiveXオートメーション／コントロールまたはDDE（Dynamic Data Exchange）を使うことで自動化できます。VEEから他のアプリケーションを制御する場合、ActiveXの方がDDEよりも強力です。ActiveXとDDEの使用法については、VEEにおけるActiveXオートメーションの使用法, VEEにおけるActiveXコントロールの使用法、プログラムとの通信方法を参照してください。

関連項目

レコードにデータを収集するには

Build Record

To DataSet

To File


UserObject作業領域にオブジェクトを追加するには

UserObject編集ウィンドウの作業領域内に配置したオブジェクトは、UserObjectの一部となります。次のいずれかの方法を使用します。

メニューから必要なオブジェクトを選択し、オブジェクトをUserObject内部に配置します。

オブジェクトをメイン作業領域からUserObjectに移動します。

切り取り／コピー／貼り付けを使って、メイン作業領域で強調表示したオブジェクトをUserObject内部に配置します。

メイン作業領域のオブジェクトのクローンを作成し、クローンをUserObject内部に移動します。

関連項目

UserObject


UserObjectに入出力端子を追加するには

一般的には、他のオブジェクトと同じ方法を使って、UserObject編集ウィンドウで入出力端子を追加できます。編集ウィンドウで端子を追加すると、UserObjectアイコンにも端子が表示されます。

オブジェクト・メニューの使用

オブジェクト・メニューでAdd Terminalを選択し、追加したい端子の種類を次の中から選択します。Data Input、Control Input、Data Output、Error Output。この方法を使えば、UserObjectアイコンまたは対応する編集ウィンドウに直接端子を追加できます。

マウスとキーボードの使用

データ入力端子を追加するには、データ入力端子領域にマウス・カーソルを置いて、Ctrl+Aを押します。Ctrl+Aを押すたびに、カーソル位置にUserObjectのデータ入力端子が追加されます。

データ出力端子を追加するには、データ出力端子領域にマウス・カーソルを置いて、Ctrl+Aを押します。Ctrl+Aを押すたびに、カーソル位置にUserObjectのデータ出力端子が追加されます。

注記

端子を削除するには、端子領域にマウス・カーソルを置いてCtrl+Dを押します。

関連項目

UserObject


プログラムにUserObjectを作成するには

次の例では、VEEプログラムで単純なUserObjectを作成して接続する方法を順を追って説明します。理想的には、UserObject内で使用されるすべてのオブジェクトは特定の1つの作業を実行すべきです。

1. UserObjectをメイン作業領域に追加します（Device [image] UserObject）。UserObjectアイコンが表示されます。アイコンをダブルクリックしてUserObject編集ウィンドウを開きます。

2. UserObject作業領域にオブジェクトを追加し、必要に応じてその間で端子を接続します。

3. UserObjectの入力／出力端子を追加して接続します。

a. UserObjectの入力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域とUserObjectアイコンの入力側にデータ入力端子が表示されます。

b. 編集ウィンドウで、入力端子の内部ピンをUserObject内部の適切なオブジェクトに接続します。

c. UserObjectの出力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域とUserObjectアイコンの出力側にデータ出力端子が表示されます。

d. 編集ウィンドウで、出力端子の内部ピンをUserObject内部の適切なオブジェクトに接続します。

e. メイン・ウィンドウで、UserObjectアイコンの入力端子に外部オブジェクトを接続し、UserObjectにデータを送ります。

f. メイン・ウィンドウで、UserObjectアイコンの出力端子に外部オブジェクトを接続し、UserObjectからデータを送ります。

4. UserObjectのタイトルを、プログラム内で識別しやすい名前に変更します。UserObject編集ウィンドウのタイトル・バーをダブルクリックします。Properties Windowで、新しいタイトルを入力します。

5. プログラムを実行してUserObjectをテストします。

次の例は、UserObject編集ウィンドウを開いたプログラムを示します。

関連項目

UserObjectに入出力端子を追加するには

UserObjectパネルを構築するには

UserObject


プログラム中のオブジェクトからUserObjectを作成するには

VEEプログラムを作成した後、プログラムの一部をUserObjectにしたい場合があります。この手順では、サンプル・プログラムを使って、プログラム中の複数のオブジェクトをUserObjectに変換する方法を示します。

1. プログラムmanual13.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。このプログラムはレコード中のフィールドを変更します。

2. 次のオブジェクトを選択します:Set Name FieldとSet Empl_no Field。

オブジェクトを選択するには、Ctrlキーを押しながら、マウスの左ボタンで各オブジェクトをクリックします。選択したオブジェクトは陰影で強調表示されます。

3. オブジェクトの選択が終わったら、Edit [image] Create UserObjectを選択します。Create UserObjectダイアログ・ボックスで、タイトルをChange Record Fieldsに変更し、OKをクリックします。

新しいUserObjectがメイン・ウィンドウにアイコン・ビューで表示され、UserObject内部のオブジェクトへのすべての端子接続を持ちます。UserObject編集ウィンドウも表示され、変更が可能な状態になります。

4. プログラムを実行します。

次の例は、UserObject編集ウィンドウを開いたプログラムを示します。

関連項目

UserObjectパネルを構築するには

UserObject


UserObjectを途中終了するには

通常、UserObject（またはUserFunction）は、内部のすべてのオブジェクトが実行を終了するまで、実行を完了して出力端子にデータを伝達しません。ただし、次の2つのオブジェクトは、UserObject内部のすべてのオブジェクトが動作する前にUserObjectを終了して伝達を実行させます。

Exit UserObjectをアクティブにすると、UserObjectコンテキストをただちに終了して外部のコンテキスト（メイン・プログラムなど）に戻ります。

Raise Errorはユーザ定義のエラー・メッセージ・ボックスを表示し、UserObjectを終了して伝達を実行させます（Error出力ピンがある場合を除いて、UserObjectからデータは出力されません）。

例

次の手順は、Exit UserObjectの使用法をサンプル・プログラムで示します。

1. manual26.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。Add Random Numberオブジェクトをダブルクリックして、UserObject編集ウィンドウを開き、すべてのオブジェクトが見えるようにメイン・ウィンドウとUserObjectウィンドウを配置します。

2. 伝達の順番を表示するには、ツールバーのボタンを使ってShow Data FlowとShow Execution Flowをオンにします。

3. プログラムを実行します。プログラムを実行すると、Add Random NumberでOKボタンとCancelボタンがともにアクティブになり、UserObjectの実行が休止します（Cancelボタンは単にOKボタンのタイトルを変更したものです）。ボタンを押すと、以下の動作が実行されます。

OK:UserObjectの上のスレッドが伝達を完了します。A+Bオブジェクトが2つの入力を加算し、結果がXに伝達され、Exit UserObjectがアクティブになります。UserObjectが終了するときに、端子Xの結果がAlphaNumeric表示に出力されます。

Cancel:下のスレッドのExit UserObjectが動作します。これにより、上のスレッドの伝達を完了せずにUserObjectが終了します。データは出力されません。

関連項目

Exit UserObject

Raise Error

UserObject


UserObjectのライブラリを作成して使用するには

1つまたは複数のUserObjectをファイルに保存して、他のプログラムで再使用することができます。

UserObjectライブラリを作成するには

1. UserObjectを作業領域に作成します。

2. UserObjectを選択します。

3. File [image] Save Objectsを選択します。UserObjectを保存するファイル名の入力を求められます。

UserObjectライブラリを使用するには

1. File [image] Mergeを選択します。ファイル名の入力を求められます。

2. ライブラリのファイル名を選択します。ファイル中のUserObjectが作業領域にマージされます。プログラムの必要な箇所に配置します。

関連項目

UserObject作業領域にオブジェクトを追加するには

UserObjectに入出力端子を追加するには

プログラムにUserObjectを作成するには

プログラム中のオブジェクトからUserObjectを作成するには


UserObjectを保護するには

UserObjectの設計が完了したら、UserObjectの保護されたバージョンを保存できます。これにより、他のユーザはそのUserObjectを自分のプログラムに追加できますが、UserObjectの内容を見たり変更したりすることはできなくなります。元のUserObjectに対する副作用はありません。

1. UserObject編集ウィンドウで、オブジェクト・メニューから[Save Secured Version]を選択します。

2. UserObjectの保護されたバージョンを保存するファイル名の入力を求められます。わかりやすいファイル名を入力します。ファイル名の拡張子.veeは自動的に付加されます。

3. [Save]をクリックします。

保護されたUserObjectをプログラムで使用するには、[File] [image] [Merge]を使用します。ファイル名の入力を求められます。

ヒント

UserObjectにパネル・ビューがない場合、保護されたバージョンはアイコンで表示されます。アイコンはオープン・ビューに復元できますが、内部の詳細は（端子を除いて）表示されません。内容の表示や編集は誰にもできません。

UserObjectにパネル・ビューがある場合、保護されたバージョンはアイコンで表示されます。アイコンはオープン・ビューに復元できますが、表示されるのはパネル・ビューと端子だけです。詳細ビューは表示されず、パネル・ビューは変更できません。


プログラムにUserFunctionを作成するには

次の例では、VEEプログラムで単純なUserFunctionを作成して接続する方法を順を追って説明します。理想的には、UserFunction内で使用されるすべてのオブジェクトは特定の1つの作業を実行すべきです。

1. UserFunctionをメイン作業領域に追加します（Device [image] UserFunction）。UserFunction編集ウィンドウが表示されます。

2. UserFunction作業領域にオブジェクトを追加し、必要に応じてその間で端子を接続します。同じ方法を使って、UserObject作業領域にオブジェクトを追加するにはで説明しているようにUserFunctionにオブジェクトを追加できます。

3. UserFunctionの入力／出力端子を追加して接続します。

a. UserFunctionの入力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域にデータ入力端子が表示されます。

b. 編集ウィンドウで、入力端子の内部ピンをUserFunction内部の適切なオブジェクトに接続します。

c. UserFunctionの出力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域にデータ出力端子が表示されます。

d. 編集ウィンドウで、出力端子の内部ピンをUserFunction内部の適切なオブジェクトに接続します。

4. UserFunctionのタイトルを、プログラム内で識別しやすい名前に変更します。UserFunction編集ウィンドウのタイトル・バーをダブルクリックします。[Properties Window]ダイアログ・ボックスで、新しいタイトルを入力します。タイトルにスペースを入れることはできません。

5. Callオブジェクトをプログラムに追加します。UserFunction編集ウィンドウのオブジェクト・メニューで[Generate] [image] [Call]をクリックします。UserFunctionに追加されたものに対応するタイトルと端子を持つCallオブジェクトが表示されます。

UserFunctionの目的に応じて、[Generate]メニューの他のオブジェクトからUserFunctionへの呼び出しを作成する場合もあります。

6. Callオブジェクトの入力／出力端子にラインを接続します。

7. プログラムを実行してUserFunctionをテストします。

次の例は、UserFunction編集ウィンドウを開いたプログラムを示します。

関連項目

UserFunctionパネルを構築するには

プログラムでUserFunctionを呼び出すには

プログラム中のオブジェクトからUserFunctionを作成するには

UserFunctionを編集するには

UserFunction

[Help] => [Contents and Index] => [以下の項目についての説明...] => [ユーザ定義関数]


プログラム中のオブジェクトからUserFunctionを作成するには

VEEプログラムを作成した後、プログラムの一部をUserFunctionにしたい場合があります。この手順では、サンプル・プログラムを使って、プログラム中の複数のオブジェクトをUserFunctionに変換する方法を示します。

1. プログラムmanual13.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（[Help] [image] [Open Example...]）。このプログラムはレコード中のフィールドを変更します。

2. 次のオブジェクトを選択します:Set Name FieldとSet Empl_no Field。

オブジェクトを選択するには、Ctrlキーを押しながら、マウスの左ボタンで各オブジェクトをクリックします。選択したオブジェクトは陰影で強調表示されます。

3. オブジェクトの選択が終わったら、[Edit] [image] [Create UserFunction]を選択します。[Create UserFunction]ダイアログ・ボックスで、タイトルをChangeRecordFieldsに変更し、[OK]をクリックします。UserFunctionのタイトルにスペースを入れることはできません。

プログラムでは2つの変化が起こります。オブジェクトが新しいUserFunction中に集められ、UserFunction編集ウィンドウに表示されて変更可能な状態になります。Callオブジェクトがメイン・ウィンドウに表示されます。端子接続はすべて保持されます。

4. プログラムを実行してUserFunctionをテストします。

次の例は、UserFunction編集ウィンドウが開かれ、オープン・ビューにCallオブジェクトがあるプログラムを示します。

関連項目

UserFunctionパネルを構築するには

プログラムでUserFunctionを呼び出すには

プログラムにUserFunctionを作成するには

UserFunctionを編集するには

UserFunction

[Help] => [Contents and Index] => [以下の項目についての説明...] => [ユーザ定義関数]を参照


UserFunctionを編集するには

UserFunctionを編集するには、そのUserFunctionを含むVEEプログラムが開かれている必要があります。その場合、UserFunction編集ウィンドウで関数の動作を変更できます。

UserFunctionを編集するには

1. 編集したいUserFunctionを含むプログラムを開きます。

2. [Edit] [image] [Edit UserFunction]を選択します。[Edit UserFunction]ダイアログ・ボックスが開き、プログラム中のすべてのUserFunctionのリストが表示されます。

3. 編集したいUserFunctionの名前を選択し、[OK]をクリックします。UserFunction編集ウィンドウが表示されます。

4. 編集ウィンドウの作業領域で変更を行います。

5. 編集ウィンドウを閉じます。変更の結果は、そのUserFunctionのすべての呼び出しに影響します。

ショートカット

[Edit] [image] [Edit UserFunction]メニュー項目を表示するには、作業領域の空白部分にマウス・ポインタを移動して、マウスの右ボタンをクリックします。

Callオブジェクトのオブジェクト・メニューから[Edit UserFunction]を選択すると、呼び出されている関数の編集ウィンドウが開きます。

Program Explorerで、UserFunction名をダブルクリックすると、その編集ウィンドウが開きます。

関連項目

プログラムでUserFunctionを呼び出すには

プログラムにUserFunctionを作成するには

プログラム中のオブジェクトからUserFunctionを作成するには

UserFunction

式からUserFunctionを呼び出す方法

UserFunctionライブラリの作成


プログラムでUserFunctionを呼び出すには

UserFunctionを作成したら、VEEプログラムで複数回呼び出すことができます。この項目では、サンプル・プログラムを使ってUserFunctionの呼び出し方法を説明します。

manualサンプル・ディレクトリにあるmanual51.veeプログラムを開きます（[Help] [image] [Open Example...]）。このプログラムにはRandomArrayというUserFunctionが含まれ、3回呼び出されます。

CallオブジェクトがRandomArrayを呼び出し、返された配列を出力します。

FormulaオブジェクトがRandomArrayを式1+RandomArray()の中で呼び出します。この式は、返された配列の各要素に1を加算します。

To FileオブジェクトがRandomArrayをトランザクションWRITE CONTAINER RandomArray()の中で呼び出します。このトランザクションは、RandomArrayから返された配列をファイルmyFileにコンテナとして書き込みます。From Fileオブジェクトがデータ・ファイルを読み取って結果をディスプレイに送信します。

ヒント

RandomArray UserFunctionはプログラムの中で何回でも呼び出せます。

UserFunctionのそれぞれの呼び出しは独立しています（この例では、RandomArrayの呼び出しごとに別々の乱数の組が生成されます）。

Callオブジェクトには、呼び出す関数の名前（例: RandomArray）だけを指定します。これに対して、式の中でUserFunctionを呼び出す場合、RandomArray()のように式の構文を使用する必要があります。

UserFunction名の大文字小文字は区別されません。

UserFunction名は一意でなければなりません。

UserFunctionは、If/Then/Else、To File、Sequencerなどの式を使用するオブジェクトから呼び出すことができます。

関連項目

プログラムにUserFunctionを作成するには

プログラム中のオブジェクトからUserFunctionを作成するには

UserFunctionを編集するには

UserFunction

Sequencerオブジェクト

[Help] => [Contents and Index] => [以下の項目についての説明...] => [ユーザ定義関数]


式からUserFunctionを呼び出す方法

式からUserFunctionを呼び出すには

UserFunctionは、Formulaオブジェクトの式から、またはTo Fileオブジェクトの式など、実行時に評価される任意の式から呼び出すことができます。このプログラムは、UserFunctionを呼び出すいくつかの方法を示します。

このプログラムで、CallオブジェクトはnoiseUFというUserFunctionを呼び出し、ノイズ成分が加えられた正弦波を返します。最初のFormulaオブジェクトの式abs(noiseUF(Y))は、UserFunctionから返された波形の絶対値を返します。すなわち、表示されるノイズのある正弦波は正方向に整流されています。

2番目のFormulaオブジェクトの式abs(noiseUF(Y))-1.5もUserFunctionを呼び出しますが、これは波形に負のDCオフセットを付加します。UserFunctionでグローバル変数を使用しているため、シーケンス・ピンを使って正しい伝達を保証しています。

このプログラムは、 manual43.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

関連項目

UserFunctionsについて, UserObjectとUserFunctionの間の変換, UserFunctionライブラリの作成, コンパイル済み関数のインポートと呼び出し, 関数のライブラリの使用法, UserFunctionのインポートと呼び出し


UserObjectとUserFunctionの間の変換

UserObjectとUserFunctionの間の変換を行うには

UserObjectをUserFunctionに変換するには、UserObjectのオブジェクト・メニューから[Make UserFunction]を選択します。UserObjectウィンドウの代わりに、同じ入出力端子を持つUserFunctionウィンドウが現れます。UserObjectオブジェクトはUserFunctionのCallオブジェクトに置き換えられます。

UserFunctionをUserObjectに戻すには、UserFunctionウィンドウのオブジェクト・メニューから[Make UserObject]を選択します。UserFunctionへの呼び出しは残ります（手動で削除する必要があります）が、UserFunctionは自動的にUserObjectに変換されます。

関連項目

UserFunctionsについて, 式からUserFunctionを呼び出す方法, UserFunctionライブラリの作成, コンパイル済み関数のインポートと呼び出し, 関数のライブラリの使用法, UserFunctionのインポートと呼び出し


関数のライブラリの使用法

関数のライブラリを使用するには

各種のユーザ定義関数を作成し、VEEプログラムで使用する方法は似通っています。これらの関数はすべて、Callオブジェクトまたは、SequencerやFormulaなどのオブジェクトの式を使って呼び出されます。3種類のユーザ定義関数はすべて、ライブラリから使用できます。関数のライブラリを使用するには、次の手順を実行します。

1 ライブラリをインポートします。

[Device] [image] [Import Library]オブジェクトを使用します。[Library Type]（UserFunction、Compiled Function、Remote Functionのいずれか）を選択し、適切なフィールドに入力します。これらのフィールドに関する具体的な情報については、この章の該当するセクションを参照してください。

2 ライブラリに含まれる1つまたは複数の関数を呼び出します。

[Device]メニューのCall、Formula、Sequencerオブジェクトを使用します。If/Then/ElseやTo Fileなど、実行時に式を評価するその他のオブジェクトも使用できます。関数から複数の値を返したい場合は、Callオブジェクトを使用する必要があります。

3 ライブラリを削除します。

メモリ管理またはプログラムの実行速度を最適化したい場合は、 [Device] [image] [Delete Library] オブジェクトを使って、プログラム内でメモリ上のライブラリを解放します。解放しない場合、VEEの終了時にライブラリは自動的に削除されます。

式からUserFunctionを呼び出す機能はきわめて有用です。特に、Sequencerオブジェクトのトランザクションで式を使用する場合に便利です。詳細については、[Help] => [Contents and Index] => [使用法] => [Use Sequencer Objects]を参照してください。

関連項目

コンパイル済み関数について, リモート関数について, UserFunctionsについて, 式からUserFunctionを呼び出す方法, UserObjectとUserFunctionの間の変換, UserFunctionライブラリの作成, コンパイル済み関数のインポートと呼び出し, UserFunctionのインポートと呼び出し


UserFunctionライブラリの作成

UserFunctionライブラリを作成するには

同じプログラム内で作成されて使用されるローカルUserFunctionの他に、複数のUserFunctionのライブラリを作成して外部に保存し、後でプログラムにインポートすることができます。

UserFunctionのライブラリを作成するには、空白のVEE作業領域でUserFunctionを作成し、ファイルに保存します。例えば、myRand1とmyRand2の2つのUserFunction（入力値に乱数を加算）のライブラリを作成するには、2つのUserFunctionを次のように作成します。

UserFunctionライブラリを作成するには、ライブラリを識別するための名前でプログラムを保存します。例えば、拡張子.veeの代わりに.vlbを使用します。

注記

通常、プログラムにはUserFunctionだけしか存在しないようにします。他のオブジェクトがプログラムに（Mainの中などに）存在する場合、ライブラリがインポートされる際には無視されます。Declare Variableオブジェクトを使用する場合、ライブラリのMainウィンドウではなく、どれかのUserFunctionの中に入れるようにします。

関連項目

UserFunctionsについて, 式からUserFunctionを呼び出す方法, UserObjectとUserFunctionの間の変換, コンパイル済み関数のインポートと呼び出し, 関数のライブラリの使用法, UserFunctionのインポートと呼び出し


UserFunctionのインポートと呼び出し

UserFunctionをインポートして呼び出すには

UserFunctionライブラリをプログラムにインポートするには、Import Libraryオブジェクトを使用します。次のプログラムは、user_func_libというファイルからライブラリをインポートし、myRand1およびmyRand2というUserFunctionを呼び出します。

Import Libraryオブジェクトでは、ライブラリの種類をUser Function、Compiled Function、Remote Functionの中から指定できます。UserFunctionを選択した場合、[Library Name]と[File Name]を指定します。

[Library Name]フィールドは、プログラム内で用いられるライブラリのローカル名を指定します。これにより、Delete Libraryオブジェクトを使ってプログラムからライブラリを削除できます。この例では、Import Libraryはuser_func_libファイルからインポートされたライブラリにmyLibという名前を割り当てています。

[File Name]フィールドは、インポートするライブラリが入っているファイル（この例ではuser_func_lib）を指定します。[File Name]フィールドをクリックすると、すべてのライブラリ・ファイルのリストからファイルを選択できます。

このプログラムは単純なので、[UserFunction]ライブラリを使用後に削除する必要はありません。大規模なプログラムから大規模なライブラリを呼び出す場合は、不要になったライブラリを削除することにより、プログラムの必要メモリ量を減らすことができます。

注記

[Device] [image] [Import Library]でインポートしたUserFunctionは編集できませんが、その内容を表示したり、デバッグ用にブレークポイントを設定したりすることはできます。インポートされたUserFunctionを表示するには、Program Explorerを使用します。

UserFunctionsのライブラリをマージするには、[File] [image] [Merge Library]を使用します。ライブラリをプログラムにマージすると、個々のUserFunctionを[Edit] [image] [Edit UserFunction]で編集できるようになります。

関連項目

UserFunctionsについて, 式からUserFunctionを呼び出す方法, UserObjectとUserFunctionの間の変換, UserFunctionライブラリの作成, コンパイル済み関数のインポートと呼び出し, 関数のライブラリの使用法,


コンパイル済み関数の使用法

コンパイル済み関数を使用するには、次の手順を実行します。

1 外部プログラムを作成します。

2 DLLと定義ファイルを作成します。

3 VEEでライブラリをインポートし、関数を呼び出します。

4 終わったら、VEEのメモリからライブラリを削除します。

コンパイル済み関数のライブラリをインポートして関数を呼び出す方法は、UserFunctionライブラリの場合とよく似ています。Import LibraryオブジェクトがDLLをVEEプロセスに接続し、定義ファイルの宣言を解析します。

定義ファイルは、外部ライブラリとVEEとの間で受け渡されるデータの型を定義します（このファイルについては、このセクションの後の方で説明します）。コンパイル済み関数は、Callオブジェクトか、FormulaやIf/Then/Elseなどのオブジェクトから呼び出すことができます。

関連項目

コンパイル済み関数の概要, コンパイル済み関数のインポートと呼び出し, C関数の作成, ダイナミック・リンク・ライブラリの作成, ダイナミック・リンク・ライブラリの使用法, 定義ファイル


C関数の作成

C関数を作成するには

次のC関数は、実数配列を受け取り、配列の各要素に1を加算します。変更された配列がVEEのArray端子に、配列のサイズがRet Value端子に返されます。この関数は、VEEにリンクすることにより、コンパイル済み関数となり、VEEプログラムから次のように呼び出されます。

/*

manual49.cファイルのCコード

*/

#include <stdlib.h>

#ifdef WIN32

# define DLLEXPORT __declspec(dllexport)

#else

# define DLLEXPORT

#endif

/* この説明は、オブジェクト・メニューから[Show Description]を選択したときにプログラム・エクスプローラに表示され、[Function Selection]ダイアログ・ボックスの下部の小さいウィンドウにも表示されます。

*/

DLLEXPORT char myFunc_desc[] = "This function adds 1.0 to the array passed in";

DLLEXPORT long myFunc(long arraySize, double *array) {

long i;

for (i = 0; i < arraySize; i++, array++) { *array += 1.0; }

return(arraySize);

}

この関数の定義ファイルは次のとおりです。

   /*

manual49.cの定義ファイル

   */

long myFunc(long arraySize, double *array);

（この定義は、Cファイル中のANSI Cプロトタイプ定義と同じです）

ルーチンが依存しているヘッダ・ファイルをインクルードする必要があります。システム関数の呼び出しを解決するため、必要な他のシステム・ライブラリとこのライブラリをリンクする必要があります。

サンプル・プログラムは、ANSI Cの関数プロトタイプを使用しています。関数プロトタイプは、VEEが関数に渡す必要があるデータ型を宣言します。

配列はポインタ変数として宣言されています。VEEはCallのデータ入力端子の情報のアドレスをこの変数に渡します。配列サイズはlong整数として宣言されています。VEEは配列のサイズの値（アドレスではなく）をこの変数に渡します。データ入力端子と変数宣言の位置は重要です。データ入力ピン（上から下の順番）に供給されたデータ項目のアドレス（またはその値）は、関数プロトタイプの変数に左から右の順番で渡されます。

C関数の1つの変数（すなわち、Callオブジェクトの対応する1つのデータ入力端子）は、配列のサイズを示すために用いられます。arraySize変数は、データが配列の末尾を超えて書き込まれることを防ぐ働きをします。配列の範囲を超えて書き込んだ場合の結果は、使用している言語によって異なります。Pascalでは、範囲検査が行われるため、実行時エラーとなり、VEEは停止します。Cなどの言語では、範囲検査が行われないため、結果は予測できませんが、間欠的にデータが破損する可能性があります。

この例では配列へのポインタを渡しているため、情報を使用するためにはポインタが指すデータを参照する必要があります。

arraySize変数は値で渡されているので、データ出力端子としては表示されません。ただし、ここでは関数の戻り値を使って出力配列のサイズをVEEに返しています。この方法は、入力配列よりも要素数の少ない配列を返す場合に有効です。

次のプログラムは、サンプルCプログラムから作成されたコンパイル済み関数を呼び出しています。

上の例は、 manual49.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。Cファイルはmanual49.c、定義ファイルは manual49.h、共有ライブラリはmanual49.slという名前で保存されています。

関連項目

コンパイル済み関数の概要, コンパイル済み関数の使用法, コンパイル済み関数のインポートと呼び出し, ダイナミック・リンク・ライブラリの作成, ダイナミック・リンク・ライブラリの使用法, 定義ファイル


ダイナミック・リンク・ライブラリの作成

ダイナミック・リンク・ライブラリを作成するには

VEEからDLLにアクセスするには、CallオブジェクトとFormulaオブジェクトが使用できます。

注記

このセクションでは、DLLの呼び出し方法を説明します。DLLの作成方法は説明しません。VEEバージョン3.2以上では、32ビットDLLだけが呼び出せます。16ビットDLLは呼び出せません。

DLLの作成

VEEプログラムを作成する前に、DLLを作成しておきます。DLLの作成方法は他のすべてのDLLと同じですが、使用できるCの型に制限があります（「定義ファイルの作成」を参照）。

DLL関数の宣言 Microsoft Visual C++バージョン2.0以上を使用している場合、関数定義は次のようになります。

__declspec(dllexport) long myFunc (...);

この定義により、DLLから関数をエクスポートするために.DEFファイルは不要になります。次のコマンド・ラインを使ってDLLをコンパイル／リンクします。

cl /DWIN32 $file.c /LD

/LDはDLLを作成します。/Ziはデバッグ情報を生成します。

MSリンカは、デフォルトでCマルチスレッド・ランタイム・ライブラリとリンクします。GetComputerName()などの関数を使用する場合、Kernel32.libとリンクする必要があります。コンパイル／リンクのコマンド・ラインは次のようになります。

cl /DWIN32 file.c /LD /link Kernel32.lib

DLL関数の宣言 VEEで使用するためには、Microsoft C++バージョン2.0以上を使って、DLL関数を__declspec(dllexport)と宣言する必要があります。これにより、.DEFファイルが不要となります。例えば、一般的な関数は次のように作成します。

__declspec(dllexport) long genericFunc(long a) {return (a*2); }

Microsoft Visual C++以外を使用している場合、.DEFファイルの内容は次のようになります。

EXPORTS genericFunc

関数定義は次のようになります。

long genericFunc(long a);

定義ファイルの作成 定義ファイルには、インポートされる関数のプロトタイプのリストが記載されます。VEEはこのファイルを使ってCallオブジェクトを設定し、DLL関数にパラメータを渡す方法を決定します。プロトタイプのフォーマットは次のとおりです。

<return type> <modifier> <function name> (<type> <paramname>, <type> <paramname>, ...) ;

ここで、

<return type>は、byte、int、short、long、int64、float、double、char*、VEE_BOOL、voidのいずれかです。

<function name>は、先頭が英文字、それ以降が英数字の文字列で、長さは512文字までです。

<modifier>は、_cdecl、_pascal、_stdcallのいずれかです。

<type>は、byte、int、short、long、int64、float double、VEE_BOOL、byte*、int*、char*、short*、long*、int64*、float*、double*、char**、VEE_BOOL*、voidのいずれかです。

<paramname>は、先頭が英文字、それ以降が英数字の文字列で、長さは512文字までです。パラメータ名はオプションですが、指定することをお勧めします。パラメータが参照渡しの場合、パラメータ名の前に間接参照記号（*）が必要です。

例:

4つのパラメータを渡し、longを返します。

long aFunc(double *,long param2,long *param3, char *);

入力パラメータはなく、doubleを返します。

double aFunc();

文字列を渡し、longを返します。

long aFunc(char *aString);

文字列の配列を渡し、longを返します。

long aFunc(char **aString);

パラメータの制限

VEEから呼び出されるDLL関数がスタック上にプッシュできるのは144バイトまでです。これにより、関数が使用できるパラメータの数が制限されます。144バイトの制限を超えない限り、任意のパラメータの組み合わせが使用できます。longは4バイト、doubleは8バイト、ポインタは4バイトを使用します。例えば、36個のlong、または18個のdouble、または20個のポインタと8個のdoubleを関数に渡すことができます。

Import Libraryオブジェクト

CallオブジェクトまたはFormulaボックスを使ってDLL関数を実行する前に、Import Libraryオブジェクトを使って関数をVEE環境にインポートしておく必要があります。Import Libraryオブジェクトで、[Library Type]の下の[Compiled Function]を選択します。[Definition File]ボタンを使って正しい定義ファイル名を入力します。最後に、[File Name]ボタンを使って正しいファイルを選択します。[Library Name]ボタンは、関数のセットに論理名を割り当てるもので、変更の必要はありません。

Callオブジェクト

CallオブジェクトでDLL関数を使用するためには、Callオブジェクトを設定する必要があります。このための最も簡単な方法は、Import Libraryオブジェクト・メニューで[Load Lib]を選択して、DLLファイルをVEE環境にロードすることです。その後、Callオブジェクト・メニューで[Select Function]を選択します。

VEは、定義ファイルに記載されているすべての関数のリストをダイアログ・ボックスに表示します。関数を選択すると、VEEは自動的にCallオブジェクトに正しい入出力端子と関数名を設定します。

関数名を変更し、適切な入出力端子を追加することにより、手動でCallオブジェクトを設定することもできます。

1 関数に渡されるパラメータと同じ数の入力端子を設定します。いちばん上の入力端子が関数に渡される最初のパラメータです。そのすぐ下の端子が2番目のパラメータです。以下同様です。

2 参照渡しのパラメータがCallオブジェクトの出力端子になるように、出力端子を設定します。値渡しのパラメータは出力端子には設定できません。いちばん上の出力端子は、関数から返される値です。そのすぐ下の端子が最初の参照渡しのパラメータです。以下同様です。

3 [Function Name]フィールドに正しいDLL関数名を入力します。

例えば、DLL関数が次のように定義されている場合:

long foo(double *x, double y, long *z);

x、y、zに対する3つの入力端子と、戻り値、x、zに対する3つの出力端子が必要です。[Function Name]フィールドの値はfooとなります。入出力端子の数が関数のパラメータの数と正確に一致しない場合、VEEはエラーを発生します。

DLLライブラリがすでにロードされており、[Function Name]フィールドに関数名を入力してある場合、Callオブジェクト・メニューの[Configure Pinout]を使って端子を設定することもできます。

Delete Libraryオブジェクト

非常に大規模なプログラムがある場合、使用した後でライブラリを削除したいことがあります。Delete Libraryオブジェクトは、メモリからライブラリを削除します。これは、Import Libraryオブジェクト・メニューの[Delete Lib]の動作と同じです。

関連項目

コンパイル済み関数の概要, コンパイル済み関数の使用法, コンパイル済み関数のインポートと呼び出し, C関数の作成, ダイナミック・リンク・ライブラリの使用法, 定義ファイル


ダイナミック・リンク・ライブラリの使用法

PCでは、ダイナミック・リンク・ライブラリ（DLL）のコンパイル済み関数をVEEプログラムの一部として使用できます。DLLは、独自に記述したコンパイル済み関数、または購入したりWebからダウンロードしたDLLです（DLLの作成方法については、Microsoftにお問い合わせください）。

注記

VEEは、"_cdecl"と"_stdcall"の両方の呼び出し規則をサポートします。ユーザが作成したDLLのほとんどは、_cdec1呼び出し規則を使用しています。Win32 APIのほとんどは_stdcallを使用しています。VEE は両方の命名規則をサポートしているため、独自のDLLだけでなく、ほとんどの既製のDLLも使用できます。

DLLをAgilent VEEプログラムに統合する方法

このセクションでは、VEEプログラムにDLLをインポートする方法について説明します。上で説明したようにDLLを作成または入手した後、次の手順に従ってDLLを使用します。

1 [Device] [image] [Import Library]を選択します。

[Library Type]には、[UserFunction]、[Compiled Function]、[Remote Function]の3つの選択肢があります。[Library Type]フィールドを[Compiled Function]に変更します（デフォルトはUserFunctionです）。次に示すように、[Compiled Function]を選択した場合、Import Libraryオブジェクトには[Definition File]フィールドがあります。

次のフィールドがあります。

フィールド | 説明
Library Name | VEEがライブラリの識別に使用する名前。通常、この名前は、プログラムでライブラリを使用した後、それを削除するために使用されます。
File Name | 共有ライブラリを保持するファイル。
Definition File | 関数のプロトタイプが記述されたインクルード・ファイル。通常は、*.hファイルです。

注記

開発段階では、オブジェクト・メニューの[Load Lib]を選択して、ライブラリを手動でロードすることもできます。

2 [Device] [image] [Call]を選択します。

Import Libraryでライブラリをインポートした場合、[Device] [image] [Call]を選択してCallオブジェクトを作成します。次に、Callのオブジェクト・メニューで[Select Function]を選択し、表示されるリスト・ボックスで目的の関数を選択すると、コンパイル済み関数を呼び出すことができます。たとえば、下に示すCallオブジェクトは、myLibraryにあるmyFunctionという名前のコンパイル済み関数を、arraySizeとarrayをパラメータとして呼び出します。

VEEは、関数名および適切な数の入力ピンと出力ピンを使用して、自動的にCallオブジェクトを設定します。2番目以降の出力ピンは、その関数に参照によって渡されるパラメータにマッピングされます。関数名を入力した場合は、オブジェクト・メニューの[Configure Pinout]を選択してCallオブジェクトを設定することもできます。

注記

ライブラリがすでにロードされている場合は、式フィールドからDLL関数を呼び出すこともできます。このように関数を使用する場合は、関数名の後のパラメータを丸かっこで囲む必要があり、関数は戻り値だけを返します。参照によって渡されるパラメータは、Callオブジェクトを使用する場合にのみ取得できます。たとえば、Formulaオブジェクト内で次の式を使用するとします。

2 * yourFunc(a,b)

aとbはFormulaオブジェクトの2つの入力ピンを参照し、yourFuncの戻り値の2倍の値が出力ピンに出力されます。

3 （オプション） [Device] [image] [Delete Library]をクリックします。

プログラムの開発中は、オブジェクト・メニューの [Delete Lib] を選択して、プログラムからライブラリを削除することもできます。プログラムで使用した後にライブラリを削除すると、ロード時間を短縮し、メモリの浪費を防ぐことができます。

DLLの使用例

この練習では、DLLをインポートし、そのDLL内の関数を呼び出します。使用するDLLは、WindowsのVEE製品に付属するものです（すべてのプラットフォームで同じVEEプログラムが動作するように設計されています）。

manual49.veeファイルを開きます。このファイルは次の場所にあります。

<インストール先ディレクトリ>\EXAMPLES\MANUAL\MANUAL49.

この例を詳細に検討してください。

上のプログラムの要素を次に示します。

要素 | 説明
Import Library | コンパイル済み関数Call Functionを最初に呼び出す前に、Import Libraryオブジェクト（[Device]メニュー）を使用して、DLLをロードする必要があります。
Call Function | MANUAL49 は、myFuncという名前のコンパイル済み関数を呼び出します。MyFuncは、VEEのInt32と同じCのデータ型longを必要とします。この数は配列のサイズを指定するものです。2番目の入力パラメータは、実数の配列へのポインタです。定義ファイルは MANUAL49.H 、Cコードのソース・ファイルは MANUAL49.Cにあります。MyFuncは、配列のすべての要素に1を加算します。
Function Generator | Function Generatorは波形の作成に使用され、波形はCall myFuncオブジェクトのarrayピンに出力されます。
totSize | totSizeオブジェクト（[Math & Functions]ボックス）は、波形のサイズを決めるために使用され、Call myFuncのarraySize入力ピンに出力されます。
XY Trace | XY Traceオブジェクトは、元の波形と新しい波形の両方を表示します。
Formula | Ret Valueというラベルが付いたCall オブジェクトの出力ピンは、返された配列のサイズを保持するので、Formulaオブジェクト内の式 B[0:A-1] は、この配列を正しく表示オブジェクトに指定します。

プログラムを実行し、2番目のトレースが波形上のすべての点で1番目のトレースより大きいことを確認します。

このプログラムで注意しておく点の1つは、プログラムをすべてのプラットフォームで使用できるようにする方法です。Windows 98、Windows 2000、Windows NT 4.0、Windows XP、Windows Vista(32-bit)では、Microsoft 32ビット・コンパイラが使用されます。これらのDLLは、すべて*.dll 拡張子で示されます。

Shared Library Nameという名前のUserObjectは、使用されるオペレーティング・システムを識別し、次に示すように、正しいライブラリ名をImport Libraryオブジェクトに伝えます。

whichos()関数は、オペレーティング・システムを識別するために、名前が変更されたFormulaオブジェクト内で使用されています。展開されたIf/Then/Elseオブジェクトは、whichos()関数の出力を検査し、適切なテキスト定数を出力します。次に、このファイル名拡張子は、名前が変更されたFormulaオブジェクトを使って MANUAL49 ファイルに追加されます（shared libraryというラベルが付いたFormulaオブジェクトの入力端子も、extに変更されています）。

Import LibraryオブジェクトにFile Nameのコントロール・ピンが追加されています。 このため、UserObjectとImport Libraryは点線で結ばれています。

注記

データのデータベースへの送信など、混在する環境でデータを共有するには、To/From Socketを調べてみてください。サンプル・ゲームのBattleship（戦艦）やEuchre（ユーカー）では、複数のVEEプロセス間の通信におけるソケットの高度な使い方を紹介しています。

FormulaオブジェクトでのDLL関数の使用

FormulaオブジェクトでDLL関数を使用することもできます。Formulaオブジェクトの式では、戻り値だけが使用できます。参照渡しのパラメータにはアクセスできません。例えば、上で定義されたDLL関数は次の式になります。

4.5 + foo(a, b, c) * 10

ここで、aはFormulaオブジェクトのいちばん上の入力端子、bは次の端子、cは最後の端子です。fooの呼び出しに指定されたパラメータの数が正しくないと、VEEのエラーが発生します。

関連項目

定義ファイル、コンパイル済み関数の使用法、コンパイル済み関数のインポートと呼び出し、C関数の作成、ダイナミック・リンク・ライブラリの作成、コンパイル済み関数の概要


コンパイル済み関数のインポートと呼び出し

コンパイル済み関数をインポートして呼び出すには

Import Library オブジェクトを使ってDLLをVEEプログラムにインポートしたあと、Callオブジェクトを使ってコンパイル済み関数を呼び出すことができます。この手順は、UserFunctionのライブラリをインポートして関数を呼び出す場合とよく似ています。

コンパイル済み関数のライブラリをインポートするには、[Library Type]フィールドで[Compiled Function]を選択します。

UserFunctionの場合と同様、[Library Name]フィールドはプログラム内でライブラリを識別するための名前を割り当て、[File Name]フィールドはインポートするライブラリが保存されているファイルを指定します。コンパイル済み関数の場合、4つ目のフィールドがあります。これは定義ファイルの名前を次のように指定します。

定義ファイルは、外部ルーチンとVEEとの間で受け渡されるデータの型を定義します。これには関数のプロトタイプが記述されています。

Import Libraryでライブラリをインポートした後、コンパイル済み関数を呼び出すには、Callオブジェクトに関数名を指定します。例えば、次のCallオブジェクトは、 myFunctionという名前のコンパイル済み関数を呼び出します。

目的の関数を選択するには、Callオブジェクト・メニューまたはFunction & Object Browser（[Device] [image] [Function & Object Browser]）から[Select Function]を選択するか、Callオブジェクトに名前を入力します。

VEEがその関数を認識すると、Callオブジェクトの入力端子と出力端子がその関数に合わせて自動的に設定されます（必要な情報は定義ファイルから得られます）。オブジェクト・メニューの[Configure Pinout]を選択することにより、Callの入力端子と出力端子を再設定することもできます。

VEEは、関数に必要な入力端子と、関数の戻り値用のRet Value出力端子を使用して、Callオブジェクトを設定します。さらに、参照によって渡される入力のそれぞれに対応する出力端子が設定されます。

コンパイル済み関数は、Formulaオブジェクト内の式、または実行時に評価されるほかの式から名前で呼び出すこともできます。たとえば、SequencerまたはTo Fileトランザクションの式の中にコンパイル済み関数の名前を入れると、その関数を呼び出すことができます。

ただし、式の中で利用できるのは、コンパイル済み関数の戻り値（CallオブジェクトのRet Value）だけです。関数から返されるほかのパラメータを取得したい場合は、Callオブジェクトを使用する必要があります。

関連項目

コンパイル済み関数の概要, コンパイル済み関数の使用法, C関数の作成, ダイナミック・リンク・ライブラリの作成, ダイナミック・リンク・ライブラリの使用法, 定義ファイル

UserFunctionsについて, 式からUserFunctionを呼び出す方法, UserObjectとUserFunctionの間の変換, UserFunctionライブラリの作成, 関数のライブラリの使用法, UserFunctionのインポートと呼び出し


大規模プログラムで関数を検索する方法

VEEの[Edit]メニューの[Find]機能を使うと、大規模なプログラム中のオブジェクトやテキストを検索できます。例として、Examples\GamesディレクトリにあるSolitaire.vee プログラムを開きます。詳細ビューを表示し、[Edit] [image] [Find...] をクリックしてダイアログ・ボックスを表示します。

図に示すように、makeamove（Solitaire.veeプログラム内のUserFunction）と入力し、[Find]をクリックします。VEEはmakeamoveという名前のUserFunctionを自動的に検索し、この関数が呼び出されているプログラムの部分を表示します。

[Find]を使用すると、任意のオブジェクトやテキスト（変数、タイトル、オブジェクトの設定など）を検索できます。[Find Results]ボックスの行をダブルクリックすると、オブジェクトの場所が示されます。

注記

[Find] を使用するには、Program Explorerでオブジェクトにマウス・ポインタを置き、右ボタンをクリックする方法もあります。この場合、検索範囲が特定のUserFunctionまたはUserObjectに制限されます。

関連項目

Agilent VEE関数の定義方法


パネルとは何か?

パネル・ビュー（パネルとも呼ぶ）は、プログラムのユーザ・インタフェースです。パネルは通常、プログラムの機能的部分を完成した後で作成します。詳細ビュー（開発領域）とパネル・ビューは、メイン・ウィンドウに表示される同じプログラムの2つのビューです。この2つはコインの表裏のような関係にあります。通常、パネルには表示とデータ入力用のオブジェクトだけをコピーします。表示されるのはオブジェクト自体だけです（ラインやピンは表示されません）。プログラムはどちらのビューでも実行できます。

プログラムにパネル・ビューを作成すると、そのプログラムはVEEワークスペースの独立した実行ウィンドウでも実行できるようになります。実行ウィンドウでのプログラム実行では、パネル・ビューで指定したすべての設定が用いられます。実行ウィンドウを使用するかどうかは、メイン・ウィンドウのプロパティShow On Executeで指定します。実行ウィンドウを使えば、プログラムの詳細とパネル・ビューの両方を同時に見ることができ、完成したプログラムをVEE RunTimeで実行したときにどのように見えるかを知ることができます。実行ウィンドウが開いているときには、プログラムの変更を防ぐため、ごく一部のメニュー項目しか使用できません。ただし、最終的なプログラムをユーザに提供する場合は、プログラムを保護してVEE RunTimeで実行するのが通常は最善の方法です。下の3つの図は、休止中のプログラムを、詳細ビュー、対応するパネル・ビュー、実行ウィンドウでそれぞれ示したものです。

詳細ビュー

対応するパネル・ビュー

実行ウィンドウ

VEEには3種類のパネルがあります。これらの作成、変更、使用の方法はほぼ同じです。

メイン・パネル - メイン・コンテキストに対応するパネル。オブジェクトがメイン作業領域にある場合、それを選択してメイン・パネルに追加できます。メイン・パネルの構築については、パネルにオブジェクトを追加するにはとパネルからオブジェクトを削除するにはで説明しています。

UserObjectパネル - 各UserObjectが固有のパネルを持つことができます。このパネルは、それだけで使用することも、メイン・パネルなどの他のパネルに追加することもできます。このパネルは、常時表示しておくこともでき、Show Panel on Executeプロパティがチェックされている場合は、UserObjectが実行されたときに（ダイアログ・ボックスのように）ポップアップすることもできます。UserObjectパネルの構築については、UserObjectパネルを構築するにはで説明しています。

UserFunctionパネル - 各UserFunctionが（UserObjectと同様に）固有のパネルを持つことができます。このパネルは、Show Panel on Executeプロパティがチェックされている場合、UserFunctionが実行されたときにポップアップします。また、showPanel()関数呼び出しで指定された場合にもポップアップします。UserFunctionパネルの構築については、UserFunctionパネルを構築するにはで説明しています。


パネルにオブジェクトを追加するには

メイン・パネルはユーザ・インタフェースの基礎です。どの種類のパネルを構築する場合でも、使用する方法はメイン・パネルの構築の場合と同じです。

1. オブジェクトをオープン・ビューにします。ほとんどの場合、パネルにはオープン・ビューを表示するのが便利です。パネルに配置したオブジェクトは、最小化したり開いたりすることはできなくなります。

2. パネルに追加するオブジェクトを選択します。オブジェクトを選択するには、CTRLを押しながらマウスの左ボタンで各オブジェクトをクリックするか、マウス・ボタンを押したままドラッグして複数のオブジェクトを含む選択ボックスを作成します。

3. ツールバーの[Add to Panel]ボタンをクリックします（あるいは、[Edit] [image] [Add To Panel]を使用します）。

[Add to Panel]ボタン

メイン・ウィンドウにプログラムのパネル・ビューが表示されます。パネル・ビューと詳細ビューを切り替えるには、メイン・ウィンドウのタイトル・バーの左側にあるPanelボタンとDetailボタンを押します。パネルに他のオブジェクトを追加したい場合は、詳細ビューに切り替えて上記の手順を実行します。

注記

詳細ビューで選択されたオブジェクトは、パネルに追加されたときと同じ相対位置を保ち、パネル・ビューに収まるように移動されます。ウィンドウのサイズを変更した場合、必要ならパネル・ビューのオブジェクトを配置し直します。

関連項目

例題11-1：メニューの使用

例題11-3：インパクトの強い警告を作成する


パネルからオブジェクトを削除するには

1. パネル・ビューで作業していることを確認します。

2. オブジェクトを削除します。オブジェクトのオブジェクト・メニューからDeleteを選択します。

オブジェクトは詳細ビューには残っていますが、パネル・ビューからは削除されます。

オブジェクトを詳細ビューから削除（Cut）した場合、パネル・ビューからも自動的に削除されます。

注記

詳細ビューでオブジェクトをCutしてからPasteした場合、対応するパネル・ビュー・オブジェクトは削除され、もう一度パネルに追加する必要があります。これを避けるにはCopyとPasteを使用します。

注記

プログラムの実行中には、Deleteなどの一部のオブジェクト・メニュー操作は、詳細／パネル・ビューおよび実行ウィンドウで使用できなくなります。先にプログラムを休止または停止する必要があります。


パネルの外観の変更

一般的に、パネル・ビューでのオブジェクトの外観は、詳細ビューでの外観とは連動しません。例えば、パネル・ビューでオブジェクトの色を変更しても、詳細ビューの対応するオブジェクトの色は変化しません（逆も同じ）。ただし、表示されるデータやその他の実行関連の情報は連動しており、1つのビューで変更するともう1つのビューでも変更されます。パネル・ビューでの変更は、次にプログラムを実行したときに実行ウィンドウに表示されます。

パネル・ビューまたは詳細ビューのオブジェクトがDefault Preferencesで設定されたプロパティを継承している場合（すなわち、オブジェクトの色やフォントのプロパティを変更していない場合）、システムのデフォルトを変更するとこれらのプロパティも変化します。これらの値も、パネル・ビューと詳細ビューの間では連動しません。例えば、パネル・ビューのオブジェクトの色を金色に設定し、詳細ビューの色をデフォルトのままにしておくこともできます（逆も同じ）。

パネル・ビューと詳細ビューで連動しないプロパティ

Show Title Bar（オブジェクトがオープン・ビューに表示されている場合）

Layoutグループのプロパティ:

Horizontal

Vertical

Show Digital Display

Show Tic Marks

Rectangular

Circular

Show Digital Display

Show 3-D Border

Scaled

Show Caption

Show Traces Legend

Show Scales Legend

Show Scale Labels

Show Scroll Bars

Show Auto Scale Button

Enable Trace/Scale Editing

Grid Type

Markers

Color Properties:すべての色

Fontプロパティ:すべてのフォント

Traces:トレース名以外のすべてのプロパティ

Scales:すべてのプロパティ

Label Justificationプロパティ

Editing Enabledプロパティ（Note Padオブジェクトの）

Formatプロパティ:

Radio Buttons | Cyclic Button | List | Drop-Down List | Pop-Up List | Slider List

Button | Check Box | Vertical Paddle | Horizontal Paddle | Vertical Rocker | Horizontal Rocker | Vertical Slide | Horizontal Slide

Limitsカテゴリのプロパティ:

High Color

Mid Color

Low Color

Sub-Range Configurationカテゴリのプロパティ:

Colors

Icon appearanceカテゴリ・タブのプロパティ:

Pictureファイルおよび表示モード

Show Title

Layoutカテゴリのプロパティ（パネル・ビューのみで使用可能）:

Size & Position (X, Y, Width, Height)

Border

上記以外のプロパティはすべて、パネル・ビューと詳細ビューで連動しています（一方で変更すると両方で変更されます）。


オブジェクトの境界の外観を変更するには

パネル・ビューでは、境界オプションを指定することによりオブジェクトの深さの外観を変更できます。

1. オブジェクト・メニューからPropertiesを選択します。

2. Appearanceカテゴリに移動します。

3. Borderオプションを次の中から選択します:None、Flat、Sunken、Raised

下の図は、各境界スタイルの外観を示します。

境界スタイル

注記:境界をNoneに設定した場合

オブジェクトの境界がNoneに設定され、色が背景の色と一致する場合、オブジェクトの色は境界があるはずの位置まで拡張されます。境界の位置は、オブジェクトの移動またはサイズ変更を行うか、オブジェクトの色を変更すると見えるようになります。

オブジェクトのサイズは境界の設定によって変化しません。例えば、OKオブジェクトのサイズを境界なしの状態で設定し、その後にオブジェクトを境界ありに設定した場合、オブジェクトのテキストの一部が境界によって隠される可能性があります。下の図で、両方のオブジェクトは同じサイズです。左側のオブジェクトはBorderがNoneに設定されており、右側のオブジェクトはBorderがFlatに設定されています。

境界幅の例


領域にラベルを付けるには

パネル上の領域にテキストを追加するには、Labelオブジェクトを使用します。

1. 詳細ビューで、Display [image] Labelを選択します。

2. Labelオブジェクトのオブジェクト・メニューで、Propertiesを選択します。

3. タイトルを目的のラベル・テキストに変更します。

4. Labelオブジェクトを選択し、Edit [image] Add To Panelを選択します。ラベルを必要な場所に配置します。

Labelオブジェクトの色は、デフォルトではパネル・ビューのデフォルトの色（File [image] Default Preferencesで設定）に設定されるので、ラベルの背景はパネル・ビューに境目なく溶け込みます。

ラベルのテキストを変更するには、詳細ビューまたはパネル・ビューでプロパティ・ウィンドウからタイトル・テキストを変更するか、データ入力端子を追加することにより実行時にプログラムでラベル・テキストを変更します。ラベル内のテキストの位置を調整するには、プロパティ・ウィンドウからLeft（左揃え）、Right（右揃え）、Center（中央揃え）のいずれかを選択します。


オブジェクトを整列するには

オブジェクトをパネル・ビューに追加した場合、オブジェクトの左上隅がユーザ定義可能なグリッドに自動的に整列されますが、オブジェクトのサイズは変更されません。パネル・ビュー上でオブジェクトを移動した場合、オブジェクトの左上隅が最も近いグリッドのデテントに合わせられます。オブジェクトのサイズをグリッドに合わせて変更するには、オブジェクトの右下隅にカーソルを置き、コーナ・サイズ変更カーソルを表示させ、クリックします。コーナ・サイズ変更カーソルが使いにくい場合は、オブジェクト・メニューの[Size]を使用します。

オブジェクトを整列するにはいくつかの方法があります。

1. オブジェクトを選択して、[Edit] [image] [Align]または[Distribute]を使用します。

2. オブジェクトを選択した後、Propertiesウィンドウで、すべてのオブジェクトのサイズを設定できます。


グリッド・サイズを変更するには

1. メイン・ウィンドウのオブジェクト・メニューでPropertiesを選択します。

2. Panelカテゴリを選択します。

3. PanelGridSizeを設定します。グリッド・サイズの最小値は2です。

4. PaneDrawGridをTrueに設定するとグリッドが表示されます。

グリッド・サイズを変更した場合、パネル上の既存のオブジェクトは自動ではグリッドに合わせられません。オブジェクトをクリックすると、その左上隅が最も近いグリッドのデテントに合わせられます。隅のサイズ変更領域をクリックすると、最も近いグリッドのデテントに合わせてオブジェクトのサイズが変更されます。MoveやSizeはオブジェクトを現在のグリッド・サイズに合わせます。

オブジェクトをグリッドと無関係に移動またはサイズ変更するには、Shiftキーを押しながらクリックしてオブジェクトの移動またはサイズ変更を行います。

注記

各パネルには固有のグリッドがあります。UserObjectまたはUserFunctionのグリッド・サイズを変更するには、そのオブジェクト・メニューからPropertiesを選択し、上記の手順の残りの部分を実行します。


オブジェクトのサイズを合わせるには

パネル・ビューで、あるオブジェクトのサイズを別のオブジェクトのサイズに合わせたい場合があります。

このためには次のような方法があります。

1. [View] [image] [Properties]をオンにします。すべてのオブジェクトを選択します。[Properties]ウィンドウの[Layout]カテゴリの下で、サイズの値を設定します。

2. すべてのオブジェクトを選択します。1つのオブジェクトの右下隅にマウスを動かして、サイズ・カーソル（両方向の矢印）を表示させます。CTRLキーを押しながら、マウスの左ボタンを押します。ドラッグしてすべてのオブジェクトのサイズを目的のサイズに設定します。サイズを間違えた場合は[Undo]を使用します。

関連項目

プログラムでプロパティを変更するには


パネルにピクチャを追加するには

ビットマップなどのグラフィカル・イメージをパネル・ビューに追加するには、2つの方法があります。これらの方法はメイン・ウィンドウを対象としていますが、UserObjectとUserFunctionに対しても使用できます。

パネル・ビューの背景にイメージを直接追加するには

この方法を使用するには、パネル・ビューがすでに存在する必要があります。空白のパネル・ビューを簡単に作成するには、メイン・ウィンドウのオブジェクト・メニューで[Create Panel]をクリックします。

1. メイン・ウィンドウのオブジェクト・メニューで[Properties]を選択します。

2. [Panel]カテゴリに移動します。このタブは、パネル・ビューが作成された後で表示されます。

3. [Panel] [BackgroundPicture]を選択し、ファイルを選択します。

4. 表示モードを[Actual]、[Centered]、[Scaled]、[Tiled]の中から選択します。下の「ピクチャ表示モード」を参照してください。

5. OKをクリックします。

1つまたは複数の移動可能／サイズ変更可能イメージをパネル・ビューに配置するには

1. 詳細ビューで、Display [image] Pictureを選択します。ピクチャ・オブジェクトがメイン作業領域に表示されます。

2. Pictureのオブジェクト・メニューから、[Properties]を選択します。

3. Pictureファイルを選択します。

4. 表示モードを[Actual]、[Centered]、[Scaled]、[Tiled]の中から選択します。下の「ピクチャ表示モード」を参照してください。

5. [OK]をクリックします。

6. Pictureオブジェクトを選択します。

7. [Edit] [image] [Add To Panel]を選択します。

ヒント

Pictureオブジェクトにデータ入力端子を追加することにより、パネル・ビューのイメージをプログラムから変更できます。

現在サポートされているグラフィックス・フォーマットは次のとおりです。

ビットマップ（*.BMP）

GIF87a（*.GIF）

Windowsメタファイル（*.WMF）

Portable Network Graphics（*.PNG）

ピクチャ表示モード

Actual - ピクチャは実サイズで表示されます。オブジェクトまたはパネルのサイズはピクチャのサイズに合わせて変更されます。

Centered - ピクチャは実サイズで表示されます。ピクチャはオブジェクトまたはパネルの中央に表示されます（オブジェクトまたはパネルのサイズは変わりません）。

Scaled - ピクチャはオブジェクトまたはパネルの現在のサイズに合わせて拡大縮小されます。これを選択した場合、拡大縮小に多少時間がかかる場合があります。

Tiled - ピクチャは実サイズで表示され、オブジェクトまたはパネル全体を埋めるように横方向と縦方向に繰り返し表示されます。

各表示モードを下の図に示します。

各表示モードのPictureオブジェクト

注記

VEEは実行速度を上げるためにグラフィック・イメージをキャッシュします。イメージをVEEにロードした後で、イメージを含むファイルを変更した場合、いったん別のイメージ・ファイルを選択してから、元のイメージ・ファイルを選択し直す必要があります。これにより、新しいイメージが使用されるようになります。

関連項目:例題11-2：パネルの背景に使用するビットマップをインポートする方法


UserObjectパネルとは?

UserObjectパネルは、メイン・ウィンドウのパネルによく似ています。どちらも固有のパネル・ビューに加えて固有のコンテキストを持つため、固有のTrig ModeやEditメニューを持ちます。UserObjectパネルの表示方法は、メイン・パネルよりも柔軟です。

UserObjectパネルを表示する3つの方法

独立パネル:UserObject上のパネル。

この方法は、UserObjectを誰か他の人が使うために渡す場合、あるいはプログラムの一部を誰か他の人がメイン・パネルを構築せずに使えるように単純化する場合に便利です。

ポップアップ・パネル:Show Panel on Executeが指定されたUserObjectのパネル。

この方法は通常、情報を受け取って消えるカスタム・ダイアログ・ボックスに使用します。この種類のパネルは、VEEウィンドウのどこにでもポップアップできます。

メイン・パネル上のパネル:パネルを作成したUserObjectをメイン・パネルに追加する場合。

この方法は、機能をグループ化するために用いられます。パネルを別のパネル上にネストすることもできます。

下の図は、各種のUserObjectパネルを示します。

UserObjectパネルを表示する3つの方法


UserObjectパネルを構築するには

1. UserObjectの編集ウィンドウで、Ctrlを押しながらマウスの左ボタンでオブジェクト（1つまたは複数）をクリックして、オブジェクトを選択します。

注記
UserObjectパネルに配置するオブジェクトは、UserObjectの詳細ビューになければなりません。UserObjectの境界の外側や、ネストされたUserObjectにあるオブジェクトを選択することはできません。

2. UserObjectのEditメニューから、Add To Panelを選択します。

これで、メイン・パネルから独立したUserObjectのパネル・ビューが作成されました。パネル・ビューと詳細ビューを切り替えるには、編集ウィンドウのタイトル・バーの左側にあるPanelボタンとDetailボタンを押します。UserObjectパネルに他のオブジェクトを追加したい場合は、詳細ビューに切り替えて上記の手順を実行します。


ポップアップ・パネルを構築するには

UserObjectパネルを作成したら、以下の手順で、UserObjectが実行されたときにパネルがポップアップするようにします。

1. UserObjectのオブジェクト・メニューから、Propertiesを選択します。

2. Pop-Up Panelカテゴリで、ShowPanelOnExecuteをTrueに設定します。

3. [OK]をクリックします。

プログラムが動作し、UserObjectが実行されると、UserObjectパネルがポップアップし、メイン・ウィンドウのデフォルト・ビューとパネル・ビュー（存在する場合）の両方に表示されます。メイン・ウィンドウのプロパティShowPanelOnExecuteがオンになっている場合、UserObjectパネルは実行ウィンドウ内でのみポップアップします。

注記

ポップアップ・パネルの外観を変更するには、PropertiesウィンドウのPop-Up PanelカテゴリでShowPopUpPanelTitleおよびShowPopUpPanel Borderプロパティを設定します。

パネル・ビューの背景色を変更するには、PropertiesウィンドウのAppearanceカテゴリでBackColorプロパティを設定します。

注記

ポップアップ・パネルは通常、カスタム・ダイアログ・ボックスを作成するために使用します。詳細については、カスタム・ダイアログ・ボックスの構築を参照してください。

単純なダイアログ・ボックスが必要であれば、ポップアップ・パネルを作成しなくてもよい場合があります。Dialog Boxオブジェクトのどれかを使用します。詳細については、組み込みDialog Boxオブジェクトについてを参照してください。


ポップアップ・パネルを表示しておくには

ポップアップ・パネルを作成して実行すると、一瞬表示されてすぐ消えてしまうはずです。この動作は、UserObjectの実行を休止するものが何もないために発生します。このため、ポップアップ・パネルの情報を見ることもそれに応答することもできません。以下の手順で[OK]ボタンを追加することにより、ボタンをクリックするまでUserObjectを実行したままにしておくことができます。

1. [Flow] [image] [Confirm (OK)]を選択します。

2. OKオブジェクトをUserObjectの詳細ビューに配置します。

3. OKオブジェクトを選択します。

4. UserObjectの[Edit]メニューから、[Add To Panel]を選択します。

これで、プログラムを実行すると、UserObjectパネルはポップアップし、[OK]ボタンを押すまで表示され続けます。

[OK]および[Cancel]ボタンの使用とカスタム・ダイアログ・ボックスの作成の詳細については、カスタム・ダイアログ・ボックスの構築を参照してください。


ポップアップ・パネルのサイズを変更するには

ポップアップ・パネルのサイズは、UserObjectのパネル・ビューのサイズです。サイズを変更するには、以下の手順を実行します。

1. UserObjectのタイトル・バーの左側にある[Panel]ボタンを押して、UserObjectの編集ウィンドウをパネル・ビューにします。

2. パネルのサイズを目的のサイズに変更します。

オブジェクト・メニューからSizeを選択します。または、オブジェクトの境界にカーソルを置いて、境界をドラッグすることによりサイズを変更します。

UserObjectパネルのサイズを変更する際には、タイトルと境界のサイズも含まれます。


ポップアップ・パネルの位置を変更するには

プログラムを最初に実行したときには、ポップアップ・パネルがVEE作業領域の中央に表示されます。ポップアップ・パネルの位置は、プログラム実行中にパネルを移動することによって変更できます。

1. [Run]を押します。

2. パネルがポップアップしたら、適切な位置にドラッグします。

次回以降、プログラムを実行すると、パネルはその位置にポップアップします。ポップアップ・パネルは任意の位置に配置できます。グリッドは位置に影響しません。メイン・パネルの[Show on Execute]プロパティがオフになっている場合、UserObjectポップアップ・パネルはVEEワークスペースのどこにでも移動できます。[Show on Execute]がオンになっている場合、ポップアップ・パネルは実行ウィンドウの境界内でのみ移動できます。

注記

ポップアップ・パネル全体の左上隅の位置は、[Pop-Up Panel]プロパティと無関係に、また[Show Title Bar]および[Show Border]が選択されているかどうかとも無関係に、同じ位置に留まります。例えば、ポップアップ・パネルの位置を設定した後で[Show Title Bar]をオフにした場合、ポップアップ・パネルのタイトル・バーの左上隅だった位置にポップアップ・パネルの左上隅が移るため、パネルの位置は移動します。


メイン・パネルにUserObjectパネルを追加するには

UserObject編集ウィンドウでパネル・ビューを作成したら、以下の手順でこのパネルをメイン・パネルに追加します。

1. メイン・ウィンドウの詳細ビューで、UserObjectアイコンを右マウス・ボタンでクリックし、Restoreを選択します。

UserObjectアイコンが、UserObjectの編集ウィンドウで作成したパネル・ビューに展開されます。

2. UserObjectを選択します。

3. メイン・メニューからEdit [image] Add To Panelを選択します。

メイン・ウィンドウのパネル・ビューにUserObjectのパネルが表示されます。

UserObjectパネルを親UserObjectパネルにネストするには、上記の手順で、親UserObjectのEditメニューを使用します。

UserObjectパネルをメイン・パネルに追加したら、他のパネルのオブジェクトの場合と同様に、パネルの外観の変更に記された方法で、サイズ、位置、その他の外観の詳細を変更できます。

注記

パネルを別のパネルに（上記の方法で）ネストした場合、その内容のコピーが作成され、コピーがオリジナルにリンクされます。ただし、コピーはロックされているため、パネルを変更するには、オリジナルのUserObjectパネルを変更する必要があります。ネストしたパネルに対してオブジェクトを追加または削除するなど、オリジナルのUserObjectパネルに対して何らかの変更を加えた場合、コピーも変更されます。


ネストしたUserObjectパネルにオブジェクトを追加するには

UserObjectパネルをメイン・パネル（または親UserObjectパネル）に追加した後でも、このパネルにオブジェクトを追加できます。ただし、オブジェクトは元のUserObjectパネルに追加し、その後に関連するオブジェクトとパネルのサイズと位置を調整する必要があります。

1. メイン・ウィンドウのタイトル・バーの左側にあるDetailボタンを押して、メインウィンドウの詳細ビューに戻ります。

2. UserObjectの編集ウィンドウにアクセスします。

UserObjectがアイコン・ビューになっている場合は、ダブルクリックします。

UserObjectが復元ビューになっている場合は、オブジェクト・メニューからEdit UserObjectを選択します。

3. UserObjectの編集ウィンドウのタイトル・バーの左側にあるDetailボタンを押して、編集ウィンドウを詳細ビューにします。

4. 必要なオブジェクトをUserObjectの詳細ビューに追加します。

5. パネルに追加する新しいオブジェクトを選択します。UserObjectのEditメニュー（マウスの右ボタンをクリック）から、Add To Panelを選択します。

6. UserObjectのパネル・ビューでオブジェクトを見やすく配置し直します。必要ならパネルのサイズを変更します。

7. メイン・ウィンドウで、パネル・ビュー・ボタンをクリックして、新しいオブジェクトを含むUserObjectパネルを表示します。必要ならパネルのサイズを変更して、すべてのオブジェクトが見えるようにします。


ネストしたUserObjectパネルからオブジェクトを削除するには

1. メイン・ウィンドウのタイトル・バーの左側にあるDetailボタンを押して、メインウィンドウの詳細ビューに戻ります。

2. UserObjectの編集ウィンドウにアクセスします。

UserObjectがアイコン・ビューになっている場合は、ダブルクリックします。

UserObjectが復元ビューになっている場合は、オブジェクト・メニューからEdit UserObjectを選択します。

3. UserObjectの編集ウィンドウのタイトル・バーの左側にあるPanelボタンを押して、編集ウィンドウをパネル・ビューにします。

4. 削除したいオブジェクトのオブジェクト・メニューからDeleteを選択して、オブジェクトをネストしたUserObjectからパネルから削除します。

オブジェクトはUserObjectの詳細ビューにはまだ存在します。オブジェクトをプログラムから削除したい場合には、詳細ビューから削除します。この場合、オブジェクトはパネル・ビューからも削除されます。

5. UserObjectのパネル・ビューでオブジェクトを見やすく配置し直します。必要ならパネルのサイズを変更します。

6. メイン・ウィンドウで、パネル・ビュー・ボタンをクリックして、編集したUserObjectパネルを表示します。必要ならパネルのサイズを変更します。


メイン・パネルからUserObjectパネルを削除するには

1. メイン・ウィンドウで、タイトル・バーの左側にあるPanelボタンを押してパネル・ビューにします。

2. UserObjectパネルを削除します。オブジェクト・メニューからDeleteを選択するか、オブジェクト・メニュー・ボタンをダブルクリックします。

UserObjectパネルはまだ存在しますが、メイン・ウィンドウのパネル・ビューには追加されません。


UserFunctionパネルとは?

UserFunctionパネルは、UserObjectパネルと基本的に同じ方法で構築され、実行されます。ただし、UserFunctionパネルが表示されるのは、UserFunctionの実行中（ポップアップ・パネル）か、showPanel()を使ってプログラムから表示されたときだけです。UserFunctionパネルはメイン・パネル（または親UserFunction/UserObjectのパネル）に追加することはできません。


UserFunctionパネルを構築するには

UserFunctionのパネルを作成するには、以下の手順を実行します。

1. UserFunctionの編集ウィンドウで、CTRLを押しながらマウスの左ボタンでオブジェクト（1つまたは複数）をクリックして、オブジェクトを選択します。

注記

UserFunctionパネル上のオブジェクトは、UserFunctionの詳細ビューになければなりません。UserFunctionの境界の外側にあるオブジェクトを選択することはできません。UserFunction内部にネストされたUserObjectパネルは、UserFunctionパネルに追加できます。このための方法については、メイン・パネルにUserObjectパネルを追加するにはを参照してください。

2. UserFunctionの[Edit]メニューから、[Add To Panel]を選択します。

これでUserFunctionのパネル・ビューが作成されました。パネル・ビューと詳細ビューを切り替えるには、UserFunctionのタイトル・バーの左側にあるボタンをクリックします。

3. 編集が終了したら、UserFunction編集ウィンドウを閉じます。

パネルに他のオブジェクトを追加したい場合は、UserFunctionの詳細ビューから出発して上記の手順を実行します。

注記

すでにUserObjectパネルを作成しており、UserObjectをUserFunctionに変換した場合、UserFunctionパネルは自動的に存在します。UserObjectパネルがメイン・パネルに追加されていた場合、自動的に削除されます。UserFunctionパネルはメイン・パネルには配置できないからです。


UserFunctionポップアップ・パネルを構築するには

1. Edit [image] Edit UserFunctionを選択します。

2. UserFunction名を選択します。

3. UserFunctionのオブジェクト・メニューから、Propertiesを選択します。

4. Pop-Up Panelカテゴリで、ShowPanelOnExecuteチェック・ボックスをTrueに変更します。

UserFunctionポップアップ・パネルは、ポップアップ・パネルを構築するにはで説明したUserObjectポップアップ・パネルと同様に動作します。

注記:ステータス・パネルを構築するには

ステータス・パネルは、プログラムからshowPanel()によってポップアップされます。詳細については、ステータス・パネルの構築を参照してください。


UserFunctionポップアップ・パネルのサイズを変更するには

1. Edit [image] Edit UserFunctionを選択します。

2. UserFunction名を選択します。

3. UserFunctionをパネル・ビューに切り替えます。

4. パネルのサイズを目的のサイズに変更します。

オブジェクト・メニューからSizeを選択します。または、オブジェクトの境界にカーソルを置いて、境界をドラッグすることによりサイズを変更します。

UserFunctionパネルのサイズを変更すると、タイトルと境界を含むUserFunction領域全体のサイズが変更されます。


UserFunctionポップアップ・パネルの位置を変更するには

ポップアップ・パネルの位置を変更するにはに記載されたUserObjectパネルの場合と同じ手順を実行します。


パネルをキーボードで操作可能にする

パネル・ビューの操作をキーボードだけで行うことをユーザが望む場合や、ユーザの環境でマウスが使用できない場合があります。このような場合、キーボードで操作可能なパネルを構築します。

一般的に、キーボードを使ってプログラムを実行する場合、まずオブジェクトがフォーカスを得てから、そのオブジェクトのデータ値や状態が変更可能になります。

定義

フォーカスとは、動作を実行できる場所を示す用語です。VEEでは、フォーカスを持つオブジェクトまたはフィールドは、マーキー（点線の長方形）で囲まれます。また、入力フィールドの場合は、縦線のキャレットが表示され、タブでオブジェクトに移動した場合は、既存のテキストが反転色で表示されます（テキストが選択されます）。オブジェクトをクリックした場合は、オブジェクトにフォーカスが移りますが、既存のテキストの外観は変化しません。

キーボード操作に関しては以下の点に注意する必要があります。

ユーザにとっては、パネル・ビュー上のオブジェクトがいつ動作したかを知ることは困難です（[OK]ボタンは例外で、選択可能な場合以外は淡色表示されています）。オブジェクトが動作したことをユーザに知らせるか、変更を終了したことを（[OK]ボタンを押すなどして）ユーザに通知してもらうようにします。

マウスがない場合、ユーザはオブジェクトのオブジェクト・メニューを使用できません（オブジェクト・メニューは、表示オブジェクトでZoomやAuto Scaleを選択する場合に便利です）。これらのパラメータをユーザが使用できるようにしたい場合は、コントロール入力端子を追加する方法があります。

パネル・ビュー上のタブでの移動順序は指定できます。このパターンはパネル・ビューの操作方法で説明しています。

キーボード操作の規則は、オブジェクトによって異なります。該当する規則をユーザに通知する必要があります。詳細についてはパネル・ビューの選択方法を参照してください。


オブジェクトまたはパネルにフォーカスを与えるには

フォーカスについて

各パネルのオブジェクトの間で、タブ順序を設定できます。各オブジェクトに対して、プロパティでTabIndexとTabStopを設定します。

オブジェクトのデータを変更できるのは、オブジェクトにフォーカスがあるときだけです。

パネルがポップアップした場合、パネルが閉じられるまで、ポップアップ・パネル上のオブジェクトだけがフォーカスを持ちます。

フォーカスを持つことができるのは、データ・フィールド、ボタン、選択領域のいずれかを持つオブジェクトだけです。データ・フィールド、ボタン、選択領域のそれぞれにタブで移動できます。

例えば、パネル上にSliderがある場合（下図参照）、Tabを1回押すとフォーカスはMinValueフィールドに置かれます。

パネル上のSlider

ユーザがこれらのフィールドにタブで移動して変更するのを防ぐには、MinValueやMaxValueなどのフィールドにコントロール入力端子を追加します。

Selection Control、Toggle Control、Sliderの各オブジェクトは、Wait for Inputプロパティが設定されている場合を除いて、プログラムの開始と同時に実行されます。このプロパティを設定すると、これらのオブジェクトは、フォーカスを得て値が変更されるか選択された場合のみ実行されます。

EscまたはEnterがOKボタンに割り当てられ、そのキーが押された場合、OKボタンがフォーカスを得て保持します。

ファンクション・キーがOKボタンに割り当てられ、そのキーが押された場合、フォーカスはファンクション・キーが押される前にフォーカスを持っていたオブジェクトに留まります。

注記

VEEの組込みDialog Boxオブジェクトを、他のオブジェクトを含むキーボード操作のパネルで使用しないでください。Dialog Boxオブジェクトが実行を停止した後、フォーカスは他のオブジェクトに移らないので、キーボードを使って他のオブジェクトに移動することができません。Dialog Boxオブジェクトの詳細については、組み込みDialog Boxオブジェクトについてを参照してください。


OKボタンをEnterまたはEscキーに割り当てるには

パネルを作成する際には、Confirm (OK)ボタンをキーボードのEnterまたはEscキーに割り当てることができます。これにより、プログラムのユーザは、Confirm (OK)ボタンの代わりにキーボードの特定のキーを押すことで同じ動作をさせることができます。これを割り当てていない場合、ユーザはTabキーでボタンに移動してSpaceを押す必要があります。この機能は特に、ポップアップ・パネルから構成されるカスタム・ダイアログ・ボックスで有用です。カスタム・ダイアログ・ボックスの構築の詳細については、カスタム・ダイアログ・ボックスの構築を参照してください。

これらのキーボード・キーをConfirm (OK)に割り当てるには、次の手順を実行します。

1. Flow [image] Confirm (OK)を選択します。

2. Confirm (OK)ボタンをパネルに追加します。

3. OKボタンのオブジェクト・メニューでPropertiesを選択します。

4. Assign to [Enter] KeyまたはAssign to [Esc] KeyをTrueに設定します。

注記
Enterキーを割り当てられるのは1つのコンテキストにつき1つのOKボタンだけであり、Escキーを割り当てられるのも1つのコンテキストにつき1つのOKボタンだけです。これらのキーを1つのコンテキストで複数のOKボタンに割り当てると、前の割り当てが自動的にオフになります。

5. 変更はただちに有効になります。

プログラムが実行されると、Enterに割り当てられたOKボタンはラベルが太字のフォントになり、デフォルト・ボタンであることを示します。

注記
EnterキーとEscキーにConfirm (OK)ボタンを割り当てられるのは、プログラム（またはUserObject/UserFunction）のパネル・ビューからだけです。Confirm (OK)を他のキーに割り当てる方法については、ファンクション・キーにボタンを割り当てるにはを参照してください。


ファンクション・キーにボタンを割り当てるには

パネルを作成する際には、Confirm (OK)ボタンをファンクション・キー（キーボード上部のF1、F2、F3など）に割り当てることができます。これにより、プログラムのユーザは、キーボードの特定のキーを押すことでConfirm (OK)ボタンと同じ動作をさせることができます。これを割り当てていない場合、ユーザはTabキーでボタンに移動してSpaceを押す必要があります。キーボードのファンクション・キーをConfirm (OK)に割り当てるには、次の手順を実行します。

1. Flow [image] Confirm (OK)を選択します。

2. Confirm (OK)ボタンをパネルに追加します。

3. OKボタンのオブジェクト・メニューでPropertiesを選択します。

4. Assign to Function Keyドロップダウンを選択します。

5. このOKボタンに割り当てるファンクション・キー（F1～F12）を選択します。キーボードによってはファンクション・キーが8個しかないものもありますが、VEEではクロス・プラットフォーム開発のためにすべてのファンクション・キーが選択できます。詳細については一般的なヒントを参照してください。Windowsの場合、F10キーはAltと同じ役割を果たす予約キーです。

注記
特定のファンクション・キーを複数のOKボタンに割り当てることもできます。ファンクション・キーを押すと、関連するボタンのうち現在アクティブなものすべてが動作します。

OKボタンのタイトルは、ファンクション・キー割り当てを反映して自動的に変更されます。ファンクション・キー情報を含まないようにタイトルを変更することもできます。

注記
ファンクション・キーを使って、パネル・ビューと詳細ビューのどちらのOKボタンも押すことができます。メイン・ウィンドウに対してShowPanelonExecuteプロパティがオンになっている場合、キー割り当ては実行ウィンドウでも動作します。


パネル・ビューの操作方法

パネル・ビュー内で移動する場合、Tabキーで前、Shift+Tabで後ろに移動できます。

旧バージョン

VEEバージョン8.0以降、パネル上のオブジェクトのタブ順序を、プログラムから（実行時に）設定できるようになりました。この際、デザイン時の値は影響されません。プログラムからのタブ順序の変更の詳細については、プログラムからプロパティを変更するにはを参照してください。

VEEバージョン7.0以降、パネル上のオブジェクトのタブ順序を設定できるようになりました。 [Properties]ウィンドウから、パネル上の各オブジェクトの[TabIndex]および[TabStop]値を設定できます。これが実行できるのは、新しいプログラム、および7.0にインポートされた7.0より前のプログラムに対してです。

注記: VEE 7.0より前のプログラムを7.0以降にロードした場合、デフォルトでは、下の「VEE 6.2以前で作成されたプログラムのタブ順序」のセクションに記述されたアルゴリズムに基づいて、各オブジェクトの[TabIndex]プロパティが設定されます。 これにより、古いプログラムは、7.0でもVEEの以前のバージョンと同じように動作します。

7.0にロードされたプログラムを明示的に変更することにより、各パネル上のオブジェクトの[TabIndex]値を変更することもできます。 [TabIndex]プロパティの値が0に設定されたオブジェクトは、そのパネルがポップアップしたときにタブによる最初の移動先となるオブジェクトです。 注記:同じパネル上の複数のオブジェクトが同じ[TabIndex]値を持つこともできます（この場合、タブ順序はオブジェクトのZオーダによって決まります）。 この動作は推奨されませんが、許容されています。

[TabStop]は、オブジェクトをタブ順序から削除するために使用されます。 オペレータ入力ができない一部のオブジェクト、例えばAlphaNumeric表示などは、[TabStop]値がFalseに設定されています。 その他のオブジェクトの場合も、パネル上に表示するだけで、オペレータがそのオブジェクトにタブで移動できないようにしたい場合は、このプロパティをFalseに設定できます。

VEE 7.0以降でプログラムを編集する場合、パネルに新しく追加されたオブジェクトは、デフォルトで[TabStop]プロパティがそのパネルの既存の最大の[TabStop]値より1つ大きく設定されます。 例えば、パネルに3つのオブジェクトがあり、それぞれの[TabStop]が0、1、2に設定されている場合、そのパネルに別のオブジェクトを追加すると、新しいオブジェクトはデフォルトで[TabStop]が3に設定されます。

パネルを実行した場合、[TabIndex]が0（または最も小さい値）のオブジェクトに最初にフォーカスが置かれます。 その後にTabキーを押すと、次の[TabIndex]値のオブジェクトに移動し、同様に0から[TabIndex]の最大値まで進みます。

旧バージョン（6.2以前）の場合、オブジェクトとパネルの間の移動順序は次のとおりです。

[Run]を押すと、VEEはパネルをいくつかのオブジェクトのグループに分割します。最初のグループは、いちばん上の（y座標が最も小さい）オブジェクトによって決定され、そのオブジェクトに近いy座標を持つすべてのオブジェクトを含みます。最初にフォーカスを得るオブジェクトは、グループ内の左端のオブジェクトです。Tabキーを押すとフォーカスは左から右に移動します。

注記
左端のオブジェクトにAuto Executeが設定されている場合、そのオブジェクトは最初にフォーカスを得ることはありませんが、Tabキーでそのオブジェクトに移動することはできます。

オブジェクトまたはパネルのy位置は、その左上隅の位置によって決まります。

最初のグループでフォーカスが右端に達した後は、次のグループの左端のオブジェクトに移ります。

次のグループは、前のグループに含まれないオブジェクトの中でいちばん上にあるものによって決まります。Tabキーによる移動は、このグループの左端のオブジェクトから始まり、右方向に進みます。この順序がパネル全体を通じて繰り返されます。

下の図は、オブジェクトの代表的なグループ分けを示します。

VEE 6.2以前で作成されたプログラムの単純なタブ順序の例

下の図は、より複雑なオブジェクトのグループ分けを示します。一見すると、Third Textオブジェクトは最初のグループに含まれるように思われます。しかし、最初のグループはSecond Textオブジェクトによって決まるため、Third Textオブジェクトは最初のグループに入るには下に離れすぎています。

3番目のグループは、Fifth Textオブジェクトによって決まります。FourthおよびSixthオブジェクトは近いのでそのグループに入ります。

複雑なタブ順序の例

注記
OKボタンにTabで移動できるのは、ボタンがアクティブになっているとき（テキストが淡色表示になっていないとき）だけです。

オブジェクトに複数のフィールドがある場合、Tabキーを押すと、すべてのフィールドを移動してから、次のオブジェクトに移ります。

別のパネル内にネストされたUserObjectパネル内にいる場合、Tabキーを押すと、UserObject内のすべてのオブジェクトに移動してから、UserObjectパネルの外の次のオブジェクトに移ります。

ポップアップ・パネル（UserObjectまたはUserFunction）内にいる場合、ポップアップ・パネルが実行を終了するまで、Tabキーではポップアップ・パネル内しか移動できません。

オブジェクトが実行されたかどうかとは無関係に、オブジェクトにTabキーで移動できます（OKオブジェクトは例外）。


パネル・ビューの選択方法

マウスを使用する場合、クリックして項目を選択したり、値を変更したりします。キーボードを使用する場合、Tabキーを押してオブジェクトにフォーカスを移し、下記の方法で項目を選択したり値を変更したりします。

Radio ButtonとList:

と [image] を使って項目を選択します。

スペースを使って現在の項目を選択します。

Cyclic Button:

スペースを使って項目を変更します。

Drop-Down List:

を使ってリストを表示します。

と [image] を使って項目を選択します。

スペースまたはReturnを使ってリストを消します。

Escを使って選択をキャンセルします。

Pop-Up List:

スペースを使ってリストを表示します。

と [image] を使って項目を選択します。

スペースまたはReturnを使ってリストを消します。

Escを使って選択をキャンセルします。

すべてのToggle Controlオブジェクト:

スペースを使って値を変更します。

すべての編集フィールド（Constantオブジェクトなど）:

新しい値を入力します。

TabまたはEnterキーで次のフィールドに移動します。

Escで変更をキャンセルします。

StartおよびOKボタン:

スペースで選択します。

複数のフィールドを持つオブジェクト（Function Generatorなど）:

フィールドの種類に応じて、上記のいずれかの方法で項目を選択したり値を変更したりし、Tabキーで次のフィールドに移動します。

注記

EscまたはEnterがOKオブジェクトに割り当てられており、編集フィールド（ConstantおよびSliderオブジェクトなど）でEscまたはEnterを使用した場合、編集フィールドのデータが入力された後でOKボタンが押されます。

[Data] [image] オブジェクトで[Wait For Input]が設定されている場合、上記の方法で項目を選択するか値を変更すると、オブジェクトが実行されます。[Data] [image] オブジェクトで[Auto Execute]が設定されている場合、上記の方法で項目を選択するか値を変更すると、スレッドの実行が開始されます。[Wait for Input]の使用例については、自己変更型パネルを構築するにはを参照してください。

注記

[Wait For Input]または[Auto Execute]が動作するには、[Data] [image] [Constant]および[Data] [image] [Slider]オブジェクトのデータが変更される必要があります。文字を同じ文字に置き換えた場合、変更と解釈されます。


最も重要なこと

通常はユーザ・インタフェースの開発に関する項目には、指針と一般的なインタフェース・デザイン情報が記載されています。しかし、これらの情報は、人間工学的な説明やユーザの意見に代わるものではありません。

人間工学者やグラフィカル・デザイナなど、専門的なユーザ・インタフェース・デザイナからアドバイスをもらうことが必要です。この項の情報は単に大まかな指針に過ぎません。ユーザ・インタフェース・デザイナの支援が得られる場合は、作成したパネル・ビューを見せて意見を聞いてください。

ユーザからのフィードバックを求めてください。ユーザにパネルを使ってもらいます。必要な情報を見つけられたかどうかを尋ねます。ユーザが何をすべきかがわかったかどうかを確認します。色やフォントが有用かどうか、長期の使用に問題がないかどうかを確認します。

ユーザ・インタフェース・デザインの一般的指針

ユーザとその環境について知ります。

ユーザに権限を与えます。プログラムの基本的特性をユーザが制御できるようにします。システムを使用するためにユーザが学ぶ必要がある規則の数を最小限にします。

ユーザの操作、データの処理、レイアウトに一貫性を持たせます。表示される情報をグループにまとめて整理します。

さまざまなレベルのユーザに対応できるように、初心者やたまにしか使用しないユーザのためにデフォルト、ヘルプ、テンプレートなどを用意し、上級者や頻繁に使用するユーザのためにアクセラレータ、ショートカットなどを用意します。

ユーザが自信を持てるようにします。ユーザが作業をすばやく快適に実行できるように支援します。ユーザ・エラーなどの責めるような言葉は使用しないようにします。

ユーザにフィードバックを与えます。データ入力を確認したり、操作の結果を直接見たりできるようにします。

ユーザに手がかりを与えます。プログラムの現在の状態と、この状態にどのように応答すべきかを理解できるだけの情報を提示します。

エラーから回復できるように設計します。ユーザが操作を誤った場合、誤りから回復する手段が必要です。

プログラムの実際のユーザにデザインを検証してもらいます。


色の使用

パネルで色を使用する場合、使用者にとっての色の制限と、それぞれの色の使用法を考慮する必要があります。

色に関する事実

高齢者は色への感受性が低下していることが多く、明るい色レベルを必要とすることがあります。青の色合いを区別する能力が低下している可能性があります。ただし、若いユーザは明るい色だと目が疲れると感じる場合があります。

男性の8%、女性の0.5%には、何らかの色覚異常があります。最も頻度が高いのは、赤と緑を識別できない異常です。

色の知覚には個人差があります。モニタ、環境照明、文化的／職業的含意、個人的嗜好などにより、色の見え方、区別／知覚のしかたが異なる可能性があります。

色の意味は文化によって異なることに注意してください。広い領域には中立的な色を使用するのが最善です。

注記:冗長な手がかり

上記の理由により、色はコミュニケーションの補助的な方法として使用すべきです。例えば、[Stop]ボタンと[Go]ボタンを区別するには、色を赤と緑に変えるだけでなく、説明のテキストも変える必要があります。色が冗長な手がかりとして使用されることを保証する1つの方法は、まずパネルを色なしで作成し、その後に必要に応じて色を追加することです。

使用する色の数はできるだけ少なくします。1つのパネルに4つから5つを超える異なる色、あるいはユーザ・インタフェース全体に7つを超える異なる色を使用すると、わずらわしさや混乱が生じるおそれがあります。

色はプログラムに関するイメージを作ります。明るい色を使うと、おもちゃのような質感が生じる可能性があります。穏やかな色や地味な色を使うと、洗練やプロフェッショナリズムを感じさせる場合があります。

背景とテキスト（前景）の組み合わせには、高いコントラストを持つ色を使用します。ただし、色相環の反対側に位置する色同士（黄色と青など）を組み合わせるのは避けます。この場合、コントラストは高いのですが、境界が相互に溶け込むおそれがあります。下の図は、色相環上の色を示します。

色相環

一般的に認められている色の意味づけを使用します。例えば、緑は「進め」または正常状態、赤は「止まれ」または緊急事態といったものです。この色の意味づけは、文化的／職業的基準によって異なる可能性があります。

使用者が印刷を必要とするかどうかを考慮します。ユーザがカラー画面をカラー・プリンタで印刷した場合、プリンタの制限により、プリンタの色が画面の色と一致しない可能性があります。モノクロ・プリンタで印刷する場合は、黒と白で表現しても問題ないように色を使用する必要があります。[Default Preferences]ダイアログ・ボックスの[Printing]タブの[Screen Element]設定は、デフォルトの色からの変更には適用されません。色をデフォルトから変更した場合、VEEは印刷時に自動的に色をグレー・スケールで表現します。

色を使用する理由

美的理由。快い色を持つインタフェースは、操作しやすく、長時間見ても疲れません。

オブジェクトを視覚的にグループにまとめるため。

操作や認識を容易にするため。

読みやすさを高めるため。

類似のものと異なるものを示すため。異なる色は、異なる情報のグループを相互に区別する役割を果たします。

オブジェクトまたはイベントに注意を引くため。色が異なっていれば情報を見つけるのが容易になります。

情報の意味を強調するため。黄色は注意、赤は危険または失敗、青は水または冷却といった一般的な意味に従うことで、理解が容易になります。

基本的な色の使い方として、類似した機能には同じ色を割り当て、対照的な色は必要な場合だけ使用するようにします。


色を選択する方法

パネルを使いやすくかつ見やすくするための色の選択方法の指針を以下に示します。

背景は一般的に中立的な色にします。白か灰色が最善です。ただし、背景を明るい色にするとフリッカが目立つようになります（どの程度目立つかはシステム・モニタによって異なります）。青の陰影も背景に適しています（オブジェクトとパネルの両方に対して）。

背景色が明るすぎる場合、3次元オブジェクトの境界の強調表示が目立たない場合があります。背景色が暗すぎる場合、オブジェクトの境界の陰影表示が目立たない場合があります。

テキストを表示する場合、背景とのコントラストが高い色を選択します。例えば、背景色が白の場合、テキストに適する色と適しない色を以下に示します。

黒 - 最適

青 - 最適

赤 - 最適

黄色 - 不適（コントラストが低い）

シアン - 不適（コントラストが低い）

背景色が黒の場合、テキストに適する色と適しない色を以下に示します。

黄色 - 最適

白 - 最適

緑 - 最適

青 - 不適

赤 - 不適（背景に溶け込むおそれがある）

マゼンタ - 不適（背景に溶け込むおそれがある）

VEEの表示オブジェクト（X vs Yなど）では、グラフのデフォルトの背景色は黒なので、グラフの格子線には適切な色を選択する必要があります。グラフのトレースを区別するために、トレース・ラインとポイントのタイプを変更することもできます。

下の図は、色の使用法を示します。

異なる色のテキストの表示

このプログラムは、colors.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。このサンプルを開くと、画面上で色がどのように見えるかがわかります。

背景色に関わらず、表示されるテキストの色はほぼ同じ明るさのレベルで、高いコントラストを持つようにします。オブジェクトの背景とテキストに関する上記の指針は、パネルの背景とその上のオブジェクトにも当てはまります。

一般的に、背景としては青の陰影が最も適しています。テキストの色に青を使用する場合、緑ががった青（青緑など）を使用します。


フォントの使用

フォントに関する事実

コンピュータ画面上のテキストを読むには、紙の上の文字を読むのに比べて約25%余計に時間がかかります。理解度は同程度です。したがって、パネル上に長いテキストを表示すると、ユーザの操作速度が低下します。

フォントには、プロポーショナル・フォントと非プロポーショナル・フォントがあります。プロポーショナル・フォントは、文字によって幅が異なります。例えば、文字wの表示には、文字iの表示よりも多くの幅が必要です。一般的には、プロポーショナル・フォントのほうが読みやすく、見栄えがよくなります。一般的なプロポーショナル・フォントとしては、Lucida*、Arial*、Time New Roman*があります。

非プロポーショナル・フォントは、すべての文字の幅が同じであり、表などでデータの縦方向の位置を揃えたい場合に使用します。一般的な非プロポーショナル・フォント（モノスペース・フォントとも呼ぶ）としては、CourierやCourier Newがあります。

VEEで使用可能なフォントは、システムにインストールされているフォントに依存します。

フォント・サイズは、文字の幅でなく高さを表します。したがって、フォント・タイプを変更した場合、フォント・サイズを変更しなくても、テキストの幅に応じてオブジェクトのサイズ変更が必要になることがあります。

一般な情報を表示するテキストには、12ポイントのフォントを使うのが標準的です。強調のためには大きいフォントや太字のフォントを使用します。紙の上のフォント・サイズは絶対サイズ（インチやセンチメートルなど）ですが、コンピュータ画面上のフォントは、モニタの解像度によって異なる論理的なフォント・サイズに基づいています。したがって、どのサイズのフォントを使用する場合でも、画面上で読めることを確認する必要があります。下の図は、さまざまなフォント・サイズを示します。

フォント・サイズ

いくつかの研究によると、セリフ・フォント（文字のメイン・ストロークの上下に小さいラインが付いたもの）は、サンセリフ・フォントよりも速く読めるという結果が出ています。ユーザにとってこれが実際に違いがあるかどうかを確認する必要があります。下の図は、セリフ・フォントとサンセリフ・フォントを示します。

セリフ・フォントとサンセリフ・フォント

テキストは、左揃えで右の余白を揃えない方が速く読めます。

1つのプログラムで使用するフォント・タイプは3つ、フォントの色は4つまでにします。フォントを一貫した方法で使用することにより、どのテキストが重要かがユーザにわかりやすいようにします。一般的には、大きいテキストの方が重要です。

フォントのタイプとサイズを一貫した方法で使用することにより、画面上のテキストの位置とバランスを整えるのが容易になるようにします。

青は一般的にテキストの色としては適しません。青に対する目の感受性が低いからです。

選択したフォントをプログラムのユーザに読みやすいかどうか確認してもらうようにします。

* ArialおよびTimes New Romanフォントは、Monotype Corporationの製品です。
LucidaフォントはBigelow & Holmes, Inc.の製品です。


レイアウトのヒント

パネルの内容が変わっても一貫したレイアウトを維持します。例えば、画面の下にメッセージ領域、横に表示領域、上にステータス領域がある場合、プログラムの実行中にこれらの要素を移動したりせずに、このままのレイアウトを保つようにします。

関連する情報はグループにまとめます。

情報は画面上の領域にバランスよく配置します。

パネルを使いやすくするために、空白（オブジェクトのない領域）を残しておきます。画面がいっぱいで、オブジェクトが密集していて間に空間がないと、ユーザは必要な情報を見つけにくくなります。

ナビゲーション・コントロールはすべてのパネルで同じ位置に置きます。

関連するグループのオブジェクトは同じサイズになるように整列します。オブジェクトの一覧性を妨げるでこぼこが生じないように、オブジェクトを横または縦一線に並べます。オブジェクトの間の間隔は一定にします。

使用頻度の低い情報はダイアログ・ボックスに表示します。そうすれば、情報を利用した後は画面上から消すことができるので、メイン・パネルが簡潔になります。


オブジェクトに注意を引くには

視覚的属性を使って、画面の特定の領域に注意を引くことができます。

オブジェクト・サイズを使う。大きいオブジェクトは自然に目を引きます。また、重要性の含意もあります。情報をサイズで区別する場合、使用するサイズは5種類までにします。

境界属性でオブジェクトを区別する。飛び出した面には薄い色を、凹んだ面には濃い色を使用します。さまざまな境界スタイルについては、境界スタイルの図を参照してください。

異なる色を使って重要性のレベルを示す。1つのパネルで使用する異なる色は4つか5つまでにします。また、ユーザ・インタフェース全体で使用する異なる色は7つまでにします。これより多くの色を使用する場合、それぞれの色の目的や意味を示す凡例を付けるようにします。

細部や小さい領域の場合は、黒、白、グレーが最も見やすくなります。

明るい色は暗い色よりも注意を引きます（例えば、青、黄、赤の方が、ブルー・グレー、金、ライト・レッドよりも目立ちます）。ユーザが区別できる明るさのレベルは5つまでです。

薄い色や暖かい色（赤など）はユーザには飛び出して見えます。濃い色や冷たい色（青など）は引っ込んで見えます。

フォント・サイズを使う。重要性の違いを表すには、4ポイント以上異なるサイズを使用します。

太字やイタリックなどのフォント・スタイルを使用する。イタリックのテキストは読むのに時間がかかるので、すばやく読む必要がある場所では使用を避けます。

点滅は注意を引く有力な方法です。VEEでは、注意を引く方法として、パネルをポップアップする、Pictureオブジェクトのビットマップを変更する、Color Alarmオブジェクトの色とテキストを変更する、Dialog Boxオブジェクトを使用するなどがあります。一度に点滅している項目の数は4つまでにします。

注意を引くもう1つの方法は、音を使用することです。Beepオブジェクトが使用できます（ハードウェアがサポートする場合）。

これらの属性は、プログラム全体を通じて一貫した方法で使用するようにします。


組み込みDialog Boxオブジェクトについて

カスタム・ダイアログ・ボックスを作成する前に、組込みDialog Boxオブジェクト（Dataメニューの下）が必要を満たすかどうかを検討してください。これらは使いやすく、多くの有用な機能があります。

Dialog Boxオブジェクトとポップアップ・パネル（カスタム・ダイアログ・ボックスの構築に使用）の違いは次のとおりです。

Dialog Boxオブジェクトはパネルに追加する必要がありません。自動的にポップアップします。下の図は、Message Boxオブジェクトとそれが生成するパネルを示します。

メッセージ・ボックス

Dialog Boxオブジェクトは、オブジェクト1つにつき1つの動作だけを実行し、特定のユーザ入力を求めます。ユーザに複数の質問を同時にしたり、データを表示したりする必要がある場合は、カスタム・ダイアログ・ボックスを作成します。

Dialog Boxオブジェクトはモーダルです。すなわち、これらがポップアップしている間、プログラムの他の部分は停止します。これに対して、ポップアップ・パネルがポップアップしている間は、プログラムの残りの部分は実行を続けます。

Dialog Boxオブジェクトはキーボードで操作するパネルには使用できません。これらが実行を終了した後、フォーカスは他のオブジェクトに移らないので、キーボードを使って他のオブジェクトに移動することができません。

Dialog Boxオブジェクトにはさまざまな機能があらかじめ備わっています。制約チェックやタイムアウトなどの機能を、プログラムを作成しなくても利用できます。Dialog Boxオブジェクトの組込み機能を下の表に示します。

Dialog Boxオブジェクトの機能

_________________________________________________________________________________________________

Dialog Boxオブジェクト

制約チェック

パスワード・マスキング

タイムアウト

カスタム・ボタン・テキスト

フォーマット・オプション

_________________________________________________________________________________________________

Text Input テキスト入力を取得します。 | X | X | X | X | X フィールド幅
Int32 Input 整数入力を取得します。 | X | X | X | X | X フィールド幅
Real64 Input 実数入力を取得します。 | X | X | X | X | X フィールド幅
Message Box 情報を表示します。 | - | - | X | X | X 複数行メッセージ
List Box リストから1つまたは複数の項目を選択できます。 | - | - | X | X | X リスト高さ
File Name Selection ファイル名の選択を可能にします。 | X[1] | - | - | - | -

_________________________________________________________________________________________________

1 既存のファイルを上書きする場合は警告を発します。存在しないファイルを開くことはできません。

Dialog Boxオブジェクトには色とフォントのプロパティもあるので、ポップアップ・パネルの外観を容易に制御できます。下の図にこれらのプロパティを示します。

メッセージ・ボックスのColorsおよびFontsプロパティ

Dialog Boxオブジェクトはマウスがなくても容易に使用できます。Enterキーを押すとデフォルト・ボタン、Escキーを押すと右端のボタン（通常はCancel）を押すことができます。TabおよびShift+Tabを使って、入力フィールドやボタンにフォーカスを移動できます。スペース・キーを押すと、フォーカスのあるボタンを押すことができます。フォーカスについては、パネルをキーボードで操作可能にするを参照してください。

詳細については、Dialog Boxおよびタイムアウトで値を出力するにはを参照してください。


タイムアウトで値を出力するには

Dialog BoxオブジェクトでTimeout（[Properties]ダイアログ・ボックス）を設定し、タイムアウト時間が経過した場合、値1がTimeoutデータ出力ピンに出力されます。タイムアウト時間が経過した場合に何らかの値（Default値など）を出力したい場合もあります。このためには、以下の手順を実行します。ここではText Inputダイアログ・ボックスを使用しています。

1. Timeoutを設定します。

オブジェクト・メニューから[Properties]を選択します。[Timeout Enabled]チェック・ボックスを選択します。Pop-Up Durationを設定します。[OK]をクリックします。

2. Default Valueデータ入力ピンを追加します。

3. [Data] [image] [Constant] [image] [Text]を選択して、デフォルト値を入力します（ニーズに合った[Data] [image] [Constant]オブジェクトを選択して、デフォルト値を入力します）。

4. Textオブジェクトにデフォルト値を入力します。

5. Textデータ出力ピンをDefault Valueデータ入力ピンに接続します。

6. [Flow] [image] [Gate]を選択します。

7. Textのデータ出力ピンをGateのデータ入力ピンに接続します。

8. Timeoutデータ出力ピンをGateのシーケンス入力ピンに接続します。タイムアウト時間が経過すると、Gateを通じてデフォルト値が出力されます。

下の図は、JCTオブジェクトを使って、入力値またはタイムアウト発生時にデフォルト値を出力するプログラムを示します。このプログラムは、timeout.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。

タイムアウトでデフォルト値を出力


カスタム・ダイアログ・ボックスの構築

組み込みのDialog Boxオブジェクトでは必要を満たせない場合、カスタム・ダイアログ・ボックスを作成できます。以下の項目では、ポップアップ・パネルからカスタム・ダイアログ・ボックスを作成する方法を説明します。作成したダイアログ・ボックスには、必要に応じて、コントロール、表示などのオブジェクトを追加できます。以下の手順でプログラムを構築する代わりに、ダイアログ・ボックスのプログラムを含むファイルを（Help [image] Open Exampleで）開いて、必要に合わせて変更することもできます。

ポップアップ・パネルを作成するには、UserObjectパネルを構築するにはの手順を実行します。ポップアップ・パネルはUserObjectまたはUserFunctionから作成できます。特に指定しない限り、このグループの項目の手順ではUserObjectの使用を仮定します。


基本的なダイアログ・ボックスを構築するには

1. ポップアップ・パネルを構築したら、ポップアップパネルを表示しておくにはの手順を2回実行します。1回目ではユーザが選択を確認するためのOKオブジェクトを追加し、2回目ではユーザが選択をキャンセルするためのCancelボタンの役割を果たすOKオブジェクトを追加します。

2. EnterキーをOKボタンに、EscキーをCancelボタンに割り当てます。

1つめのOKオブジェクトのプロパティを選択し、AssignToEnterButtonプロパティをTrueに変更します。

2つめのOKオブジェクトのオブジェクト・メニューからPropertiesを選択します。TitleをCancelに変更し、Assign to [Esc] keyチェック・ボックスをTrueに変更します。

これでOKボタンがEnterキーに（デフォルトで）割り当てられ、CancelボタンがEscキーに割り当てられました。

3. Flow [image] Exit UserObjectを選択し、UserObjectの詳細ビューに配置します。

4. Cancelボタンのデータ出力ピンをExit UserObjectのシーケンス入力ピンに接続します。

5. Data [image] Constant [image] Textを選択します（これはユーザ入力を受け取る任意のオブジェクトにできます）。

6. OKボタンのデータ出力ピンをTextオブジェクトのシーケンス入力ピンに接続します。

7. UserObjectにデータ出力端子を作成します。

8. Textオブジェクトのデータ出力ピンをUserObjectのデータ出力ピンに接続します。

9. Flow [image] Exit UserObjectを選択します。

10. Textオブジェクトのシーケンス出力ピンをExit UserObjectのシーケンス入力ピンに接続します。

これで、OK（またはEnter）が押されるとダイアログ・ボックスは値を出力するようになります。Cancel（またはEsc）が押された場合は値は出力されません。

下の図は、上記の手順で作成したプログラムを示します。

基本的なカスタム・ダイアログ・ボックス

このプログラムは、dialog1.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。

この例の詳細:

OKボタンをTextオブジェクトに接続する必要があります。そうしないと、UserObjectが実行を開始すると同時にTextオブジェクトが動作してしまいします。すなわち、デフォルトのデータがUserObjectの出力データ・ピンに伝達されます。OKボタンは、ユーザがTextオブジェクトに入力してOKを押すまで、Textオブジェクトが動作しないようにする役割を果たします。

OKおよびCancelのスレッドは、Exit UserObjectオブジェクトに接続する必要があります。そうしないと、ユーザがOKとCancelの両方を押さない限りUserObjectからデータが出力されなくなります。UserObjectはその内部のすべてのオブジェクトが動作を終了しないと出力データを伝達しないからです。

これらの実行原理を実際に見るには、次の手順に従います。

1. ツールバーのShow Execution Flowボタンを選択します。

2. UserObjectの編集ウィンドウを詳細ビューで表示します。

3. プログラムを実行します。


タイムアウトを設定するには

一定時間が経過した後でダイアログ・ボックスを消すには、タイムアウトを設定します。基本的なダイアログ・ボックスを構築するにはで作成したカスタム・ダイアログ・ボックスにタイムアウトを追加するには、以下の手順を実行します。

1. [Flow] [image] [Delay]を選択して、UserObjectの詳細ビューに配置します。

2. [Flow] [image] [Exit UserObject]を選択します。

3. Delayオブジェクトのシーケンス出力ピンをExit UserObjectのシーケンス入力ピンに接続します。

4. Delay編集フィールドに、ポップアップ時間を（秒単位で）指定します。指定した時間が経過すると、ポップアップ・パネルは消失します。

5. UserObjectにデータ出力端子をもう1つ追加します。

6. Delayオブジェクトのデータ出力ピンを2番目のデータ出力ピンに接続して、メイン・コンテキストで使用できるようにします。

タイムアウト時間が経過すると、空のコンテナがこの端子に出力されます。

下の図は、上記の手順で作成したプログラムを示します。

タイムアウト付きダイアログ・ボックス

このプログラムは、dialog2.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。

dialog2.veeでタイムアウトが発生した場合、UserObjectからは値は出力されません。下の図に示すように、タイムアウト時にUserObjectがデフォルト値を出力するようにもできます。

タイムアウト発生時にデフォルト値を出力

このプログラムは、dialog3.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。


有効データをチェックするには

下の図は、入力値を何らかの制約に対してチェックしてから値を出力するプログラムを示します。値が制約を満たさない場合、別のダイアログ・ボックスがポップアップしてユーザに通知します。

制約チェック付きダイアログ・ボックス

このプログラムは、dialog4.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。

この例の重要な点は次のとおりです。

Until Breakオブジェクトは、Error Pop-Upパネルが実行された後で数値を再入力したり、Enter a number...オブジェクトがすでに1回実行された後で数値を再入力したりすることを可能にします。

Error Pop-Up Panelは、メッセージを表示し、EnterまたはEscに応答するUserObjectポップアップ・パネルです。5秒後にタイムアウトします。


自動変更型パネルを構築するには

自己変更型パネルを構築するには

ユーザの過去の選択に基づいて異なる選択肢をパネルでユーザに提示するには、自己変更型パネルを作成します。

下の図のプログラムでは、Drop-Down Listの選択肢が、Radio Buttonsオブジェクトで実行された選択に応じて変化します。ポップアップ・パネルは図の右上隅に表示されています。

自己変更型パネル

このプログラムは、dialog5.veeという名前で保存されています。 場所はmanualサンプル・ディレクトリです。

この例の重要な点は次のとおりです。

Select a Product（Radio Buttons）オブジェクトは、[Properties]ウィンドウでWait for Inputが設定されています。

Phantom Tests、Beetle Tests、Viper TestsはText配列であり、Select the test to runというDrop-Down ListにEnum Valuesコントロール入力ピンを通じて入力するテストのリストを記録しています。

Select the test to runは[Properties]ウィンドウでWait for Inputが設定されており、製品選択の後でテスト番号が選択されるまではGateにデータを送りません。


ステータス・パネルの構築

テストの実行時にステータス・パネルを表示し、最新のテスト・データで更新するには、UserFunctionパネルを使用します。パネルはshowPanelオブジェクトで表示し、Callオブジェクトで実行します。

showPanelを使用した場合、Show Panel On Execute（UserFunctionの[Properties]ウィンドウ）は使用できません。下の表は、showPanelとShow Panel On Executeの動作の違いを示します。

showPanelとShow Panel On Executeの違い

_________________________________________________________________________________________________

showPanel

Show Panel On Execute

_________________________________________________________________________________________________

パネルはhidePanelオブジェクトが実行されるかプログラムが停止するまで表示されます。 | パネルはUserFunctionの実行が終了するかプログラムが停止するまで表示されます。
UserFunctionはCallで実行され、パネルはshowPanelで表示されます。したがって、パネルを表示したままUserFunctionを複数回実行できます。 | UserFunctionの実行とパネルの表示はCallで行われます。したがって、UserFunctionが呼び出されるたびにパネルが自動的に表示され、UserFunctionの実行が終了するとパネルは自動的に消えます。
表示位置は実行時にプログラムで設定できます。 | 表示位置は開発時に手動で設定されます。
表示されるパネル・サイズは、パネル・ビューのサイズと別にすることもできます。 | 表示されるパネル・サイズは、パネル・ビューのサイズと同じです。
ユーザは表示されているパネルを移動できません。 | ユーザは表示されているパネルを移動できます。

_________________________________________________________________________________________________

関連項目:

例題 11-5:ステータス・パネルの作成方法


ステータス・パネルを構築するには

ステータス・パネルを構築するには、UserFunctionパネルを構築するにはの手順に従ってUserFunctionパネルを構築します。UserFunctionの編集ウィンドウが開いたら、プロパティ・ウィンドウで[ShowPanelOnExecute]チェック・ボックスが設定されていないことを確認します。

関連項目

例題 11-5:ステータス・パネルの作成方法


ステータス・パネルを表示するには

ステータス・パネルを表示するには、showPanelオブジェクトを使用します。

1. [Device] [image] [Function & Object Browser]を選択します。Function & Object Browserで、Built-in Functionsを選択し、showPanelを選択します。

showPanelオブジェクトが表示されます。その式には5つのパラメータが含まれ、それぞれに対応するUserFunction名、位置、サイズの端子があります。データを持つオブジェクトを入力端子に接続することも、パラメータを直接編集して入力を削除することもできます。

2. UserFunction名を引用符の間に入力し、Ufnameを置き換えます。

3. 位置を指定するには、UserFunctionパネルの左上隅のVEEウィンドウ内での位置を指定するxおよびy座標を入力します。VEEウィンドウの左上隅の座標は0, 0です。showPanelオブジェクトの編集フィールドは次のようになります。showPanel(MyFunc,300,300)

位置を指定しない場合、パネルは画面中央に表示されます。

4. 表示されるパネルのサイズを指定するには、位置を指定しておく必要があります。パネルの幅（width）と高さ（height）をピクセル単位で指定します。

このサイズが既存のUserFunctionパネル・ビューよりも小さい場合、パネルの左上部分が表示されます。指定されたサイズが既存のパネル・ビューよりも大きい場合、右下隅に領域が追加されます。

背景のピクチャがある場合、背景は指定されたサイズで、表示モードに従って表示されます。例えば、表示モードがScaledの場合、背景イメージはshowPanelオブジェクトで指定されたサイズに拡大縮小されます。

位置とサイズを指定した場合、showPanelオブジェクトの編集フィールドは次のようになります。showPanel(MyFunc,300,300,100,100)

各UserFunctionに対して表示できるパネルは1つだけです。showPanelを2回実行した場合、最初のパネルは非表示になり、2回目のshowPanel呼び出しで指定されたパネルが表示されます。

関連項目:例題 11-5:ステータス・パネルの作成方法


ステータス・パネルを非表示にするには

プログラムの実行が終了すると、showPanelで表示されたパネルはすべて非表示になります。プログラムの実行中にパネルを非表示にするには、以下の手順を実行します。

1. Device [image] Function & Object Browserを選択します。Function & Object Browserで、Built-in Functionsを選択し、hidePanelを選択します。

2. UserFunction名を引用符の間に入力し、Ufnameを置き換えます。このオブジェクトが動作すると、指定されたパネルが非表示になります。


ステータス・パネルを更新するには

showPanelオブジェクトは、パネルを表示するだけで、UserFunctionを実行しません。ステータス・パネルに新しいデータを送信して表示を更新するには、Callオブジェクト（[Device] [image] [Call]）を使用します。また、FormulaやSequencerなどのオブジェクトの任意の式からもUserFunctionを呼び出すことができます。

showPanelも、FormulaやSequencerなどのオブジェクトの任意の式で使用できます。例えば、showPanelをSequencerの最初のトランザクションの式として使用できます。各テストが実行されるたびに、ステータス・パネルのデータが更新されます。hidePanelをSequencerの最後のトランザクションで使用します。

Callオブジェクトを使って新しいデータを送信した後、showPanelを再び呼び出す必要はありません。表示されているパネルの内容は自動的に更新されます。


ステータス・パネルの例

下の図は、情報によって更新される単純なステータス・パネルを示します。List Boxオブジェクトで選択を実行すると、テストに関連するデータがパネルに表示されます。

ステータス・パネル

下の図は、ステータス・パネルを表示するプログラムを示します。このプログラムは、manualサンプル・ディレクトリにstatus.veeという名前で保存されています。

ステータス・パネルのサンプル・プログラム

この例の重要な点は次のとおりです。

Record定数はテスト結果のレコードを設定します。これは例えば、テスト関数のログ出力です。

Until Breakオブジェクトはテスト情報を複数回選択することを可能にします。

Get Fieldオブジェクトは、List Boxを最後の反復で選択された値にリセットします。

List BoxでDoneボタンが押されると、ステータス・パネルが非表示になり、Until Breakループが終了します。

UserFunctionに含まれるパネル・ビューは、UserFunctionが呼び出されるたびに更新されます。

appsサンプル・ディレクトリにあるmfgtest.veeプログラムは、ステータス・パネルとSequencerを組み合わせて使用するより複雑なプログラムを示します。

関連項目:例題 11-5:ステータス・パネルの作成方法


ピクチャをアニメーション表示するには

showPanelとhidePanelを使って、アニメーションを実行できます。単純なアニメーション・プログラムを作成するには、次の手順に従います。

1. メイン・ウィンドウのオブジェクト・メニューの[Create Panel]を使って、メイン・ウィンドウにパネル・ビューを作成します。

2. メイン・ウィンドウのプロパティで、[Execution Window Title]をA Simple Animationに変更し、[ShowPanelonExecute]を有効にします。

[Appearance Properties]で、メイン・パネルの背景色を選択します。

この色はアニメーション・ファイルの背景色にも使用するので重要です。

3. アニメーション表示するイメージのグラフィックス・ファイルを作成します。

4. [Device] [image] [UserFunction]を使ってUserFunction編集ウィンドウを開きます。

5. [Display] [image] [Picture]を選択し、オブジェクトをUserFunctionウィンドウに配置します。Propertiesウィンドウでグラフィックス・ファイルを指定します。

6. PictureオブジェクトをUserFunctionパネルに追加し、Pictureオブジェクト・メニューから[Properties]を選択します。

7. Pictureの境界とタイトル・バーをオフにし、UserFunctionパネルの左上隅にPictureを配置します。

8. UserFunctionオブジェクト・メニューから、[Properties]を選択します。

9. [Title]をpictureに変更します。[Pop-Up Panel]カテゴリからUserFunctionパネルのタイトル・バーと境界をオフにします。

10. パネル・ビューの背景色をメイン・パネルの背景色に変更します。

11. UserFunctionパネルのサイズを小さくします。

12. [Device] [image] [Function & Object Browser]を選択し、組込み関数showPanelを選択して、メイン詳細ビューに配置します。

13. UserFunction名を引用符の間に入力し、Ufnameをpictureに置き換えます。

14. 位置パラメータxとy以外の入力端子を削除します。

15. 編集フィールドの端子名を使ってshowPanel(picture,x,y)のようにします。

16. [Flow] [image] [Repeat] [image] [For Range]を選択します。

17. For Rangeオブジェクトで、[x]座標と[y]座標の範囲を、[From: -20]、[Thru: 500]、[Step: 10]のように入力します。

18. [Flow]メニューからGateおよびDelayオブジェクトを追加します。[Delay]の値を0.05に設定します。

19. For Range出力をGate入力に接続し、Gate出力をshowPanel XおよびY入力に接続します。

20. Gateシーケンス出力をDelayシーケンス入力に接続します。次に、Delay出力をshowPanelシーケンス入力に接続します。

21. [Panel]ボタンを押してパネル・ビューを表示します。

22. プログラムを実行して、ピクチャがパネル・ビュー上を移動するのを観察します。

下の図は、上記の手順で作成したプログラム（UserFunctionパネルを含む）を示します。

単純なアニメーション

このプログラムは、animate.veeという名前で保存されています。 場所はManualサンプル・ディレクトリです。

レース:単純なアニメーション

下の図は、VEEの単純なアニメーションを使用したプログラムのパネル・ビューの一部を示します。

このプログラムは、Race.veeという名前で保存されています。 場所はGamesサンプル・ディレクトリです。Wheel.vee およびSlots.vee プログラム（Gamesディレクトリに存在）は、より複雑なアニメーションを示します。

複数イメージの使用

複数イメージによるアニメーションを作成するには、Pictureオブジェクトにデータ入力端子を追加し、実行時にプログラムでPictureにファイル名を入力します。Pictureの表示モードがScaledの場合、CenteredまたはActualが選択されている場合よりもイメージの表示に時間がかかります。


英語以外のテキストでのパネルの構築

英語以外のテキストを使ってパネルを構築するには、英語以外の文字を表示できるように環境が設定されている必要があります。VEEのパネル上の一部の項目は、英語以外の言語には変更できません。

オブジェクトの中には英語のテキストを持つものがあります。例えば、Data [image] Selection Control [image] Pop-Up Listがそうです。リストがポップアップしたときのポップアップのタイトルはMake Selectionです。ボタンはOKとCancelです。

パネル・ビューのメニュー項目と、関連するダイアログ・ボックス（[Open]、[Save]、[Save As]など）は英語です。

オブジェクト・メニューの項目は英語です。

英語以外の文字を表示できるように環境が設定されていれば、VEEで英語のテキストを入力できるすべての場所に英語以外のテキストを入力できます。例えば、Labels、Constantオブジェクト、オブジェクトのタイトル、Confirm (OK)のボタン、Dialog Boxオブジェクト（およびその上のボタン）などです。


プログラムの変更の防止

プログラムを実行のために別の人に配布する場合、プログラムを変更できないようにしたいのが普通です。ユーザが実行できるようにしたいのは、プログラム実行を観察することと、コントロールを操作することだけです。ユーザが誤ってプログラムを変更しないようにするには、次の2つの基本的な方法があります。

[File] [image] [Create RunTime Version] - このコマンドを使用すると、現在のプログラムの保護されたバージョンがファイルfilename.vxeに保存されます。現在のプログラムはいっさい変更されません。ユーザは保護されたバージョンをVEE RunTime環境で直接実行できます。プログラム実行時にユーザがパネルを見ることができるように、メイン・パネル・ビューを作成しておく必要があります。この方法では、ソース・プログラムへのアクセスを完全に防止できます。

注意
保護された（.vxe）プログラムを保護されていない状態に戻す方法はいっさいありません。必ずソース・プログラムの保護されていないバージョン（.vee）を保存しておいてください。

veerun filename - このコマンドは、主に保護されたVEEプログラムを実行するために使用されます。ただし、これを使って保護されていないプログラムを実行することもできます。VEEが起動すると、filenameのプログラムがロードされ、VEE RunTime環境でプログラムが実行されます。プログラムが終了すると、ランタイム・ウィンドウも同時に閉じます。プログラム実行時にユーザがパネルを見ることができるように、メイン・パネル・ビューを作成しておく必要があります。これは、2つのファイル（ソース・ファイルと保護されたファイル）を管理したくない場合に便利な方法です。

注記

プログラムの実行に使用するVEE RunTimeのバージョンは、プログラムの開発に使用するVEEのバージョンと同じか、それより新しくなければなりません。


プログラムの変更を防ぐには

プログラムの配布に関するヒントを以下に示します。

パネル・ビューに追加したNote Padオブジェクトのテキストをユーザが変更できないようにするには、Note Padの編集をオフにします。Note Padオブジェクトがあるパネル・ビューで、[Note Pad Properties]を編集します。[Appearance]カテゴリで、[EditEnabled]をFalseに変更します。

Slider、Meter、Thermometer、Fill Bar、Tankなどのオブジェクトの最大値と最小値をユーザが変更できないようにするには、MaxValueとMinValueに対してコントロール・ピンを追加します。

UserObjectまたはUserFunctionのポップアップ・パネルをユーザが移動できないようにするには、パネルのオブジェクト・メニューの[PopupMoveable]プロパティを使用します。また、UserFunctionパネルを代わりに使用し、showPanelオブジェクトを使ってプログラムで表示する方法もあります。showPanelの詳細については、ステータス・パネルの構築を参照してください。

VEEのグラフィカルDisplayオブジェクトのスケールをユーザが変更できないようにするには、Layoutを変更します。オブジェクトがあるパネル・ビューで、オブジェクトのオブジェクト・メニューから[Properties]を選択し、[Layout]カテゴリで[Enable Trace/Scale Editing]をオフにします。

配布先システムのVEEのデフォルトの色とフォントが使用されないようにするには、デフォルトの色とフォントをすべて含めてプログラムを保存します。

1. [File] [image] [Save As…]を選択します。

2. [Save colors and fonts with program]チェック・ボックスを選択します。

3. [Save]をクリックします。プログラムで使用されているすべての色とフォントがプログラムに明示的に保存されます。


プログラムを保護するには

注意:保護された（.vxe）プログラムを保護されていない状態に戻す方法はいっさいありません。必ずソース・プログラム（.vee）を保存しておいてください。

プログラムを配布する前に保護されたバージョンを作成するには、以下の手順を実行します。

1. [File] [image] [Create RunTime Version]を選択します。

2. [Create RunTime Version]ダイアログ・ボックスで、プログラム名を入力します。ファイル名の拡張子は入力する必要はありません。.vxeが自動的に付加されます。

3. [Save colors and fonts with program]を選択すると、[Default Preferences]ダイアログ・ボックスで選択されたデフォルトの色とフォントがすべてプログラム・ファイルに保存されます。これにより、このプログラムを実行した場合は常に、保存した時点でのデフォルトの色とフォントが用いられます。このオプションが選択されていない場合、プログラムで明示的に設定した色とフォントだけがプログラム・ファイルに保存されます。この場合、プログラムをロードした環境で設定されているデフォルトの色とフォントが用いられます。既存のプログラムをロードした場合、このオプションはプログラムが前に保存されたときの設定に従います。

[Save I/O configuration with program]はデフォルトでオンになっています。埋込みI/O構成を使用したくない場合は、このチェックを外します。VEEでは、I/O構成情報をプログラム自体に埋め込むことができます。I/O構成の保存については、Instrument Managerを参照してください。

ソース・プログラムはいっさい変更されません。保護されたプログラムは別のファイル名で保存されます。例えば、保護されていないプログラムprog.veeは、保護されたプログラムprog.vxeとして保存されます。

保護されたプログラムは、VEEの実行専用バージョンであるVEE RunTimeで実行できます。プログラムとVEE RunTimeを配布できるコンピュータの数に制限はありません。

注記

ユーザが実行中にプログラムを観察したり操作したりする必要がある場合は、メイン・パネル・ビューまたはポップアップ・パネルの形式でパネル・ビューを作成する必要があります。ユーザの操作なしでプログラムを実行させる場合は、パネル・ビューは不要です。ただし、何らかのステータス表示はある方が親切です。


プログラムを再保護するには

保護されたプログラムをユーザに配布している場合、元のプログラムを変更するたびに、保護された状態で保存し直してから、再配布する必要があります。プログラムを保護するにはを参照してください。


UserObjectを保護するには

UserObjectを他の人が使用できるように配布する場合、UserObjectが変更されないように保護することができます。ユーザにはUserObjectパネル・ビューのアイコン・ビューだけが使用可能になります。ユーザがUserObjectを操作する必要がある場合は、必ずパネル・ビューを作成してください。

1. UserObjectの編集ウィンドウを開きます。オブジェクト・メニューから、[Save Secured Version]を選択します。

2. [Save Secured Version]ダイアログ・ボックスで、UserObjectのファイル名を入力します。拡張子.veeは自動的に付加されます。

UserObjectを含むファイルがすでに保存されている場合、または[File] [image] [Save Objects]を使ってUserObjectを保存してある場合、UserObjectを改めて保存する必要はありません。それでも保護されたバージョンを保存したい場合は、別のファイル名を使用してください。

3. 他のユーザが保護されたUserObjectを使用したい場合は、[File] [image] [Merge]を選択し、保護されたUserObjectのファイル名を選択します。保護されたUserObjectはプログラムで他のオブジェクトと同様に使用できます。


必要なファイルをすべて含めるには

プログラムを他のシステムに配布する際には、計測器構成をVEEプログラムに埋め込む必要があります。埋込みI/O構成は、ほとんどの場合に最適な選択です。I/O構成をプログラムに埋め込まない場合、ターゲット・システムで編集が可能です。VEE Pro RunTimeを構成するにはを参照してください。

プログラムに含める必要があるファイル（使用する場合）は次のとおりです。

データ・ファイル

ユーザが作成した計測器ドライバの*.cidファイル

目的のシステムにインストールされていない計測器ドライバの*.cidファイル

VXIplug&play計測器ドライバ.

IVI-COMドライバ.

ユーザが作成したグラフィックス・ファイル

呼び出しているDLLまたはコンパイル済み関数

この他に、.NET Framework再配布パッケージ（dotnetfx.exe）が必要です。これはランタイムのインストール前にインストールする必要があります。.NET Frameworkがインストールされていないと、VEE Pro RunTime製品はインストールされません。

必要なファイルが揃ったら、それらを他のシステムにコピーします。プログラムから機器を制御する場合は、Agilent I/Oライブラリ・スイート・バージョン14以上もインストールする必要があります。

配布メディアへのすべてのファイルの収録

プログラムにVEE Pro RunTimeを含めた配布メディアを作成することができます。

1. すべてのプログラムとサポート・ファイルをディスクにコピーします。

2. VEE Pro RunTimeセットアップ・ファイルをVEE CD-ROMからCD-RまたはZipディスクにコピーします。セットアップ・ファイルは、VEE CD-ROMのサブディレクトリruntimeにあります。

3. Agilent I/Oライブラリ・スイート（バージョン14以上）を別のCD-Rにコピーします（プログラムから機器を制御する場合）。

4. 製品のドキュメントを準備します。

配布ディスクからすべてのファイルをインストールする手順をエンドユーザまたは顧客に説明する必要があります。VEE Pro RunTimeに関しては、runtimeサブディレクトリに、製品をインストールするsetup.exeプログラムと、.NET Frameworkをインストールするdotnetfx.exeファイルが収録されています。

VEE Pro RunTimeの詳細については、VEE Pro RunTime製品についてを参照してください。


Windowsでアプリケーション・アイコンを作成するには

アプリケーション・アイコンを作成するには

プログラム・アイコンをダブルクリックしてVEEプログラムを実行できれば、ユーザにとって便利です。アイコンを準備するには、目的のシステムで以下の手順を実行します。この手順の詳細については、MS Windowsのドキュメントとオンライン・ヘルプを参照してください。

プログラムのショートカットは、デスクトップまたはタスクバーの[スタート]・メニューに置くことができます。この手順は、保護されたプログラムに対しても保護されていないプログラムに対しても同様です。ただし、保護されていないプログラムを実行するには、必ずveerunコマンドをショートカットに使用してください。これにより、ソースへのアクセスを防ぐことができます。

デスクトップのショートカット

1. Windowsエクスプローラで、プログラムのファイル名をマウスの右ボタンでクリックし、[ショートカットの作成]を選択します。[filenameへのショートカット]というファイル名がリストに表示されます。

2. ショートカット・ファイル名をデスクトップにドラッグします。ショートカット・アイコンが表示されます。

3. 保護されていないプログラム（.vee）のショートカット・コマンドを変更して、[リンク先]コマンドにveerunが含まれるようにします。保護されたプログラム（.vxe）の場合は自動的にveerunが用いられます。veerunのオプションを使用したい場合のみコマンドを変更します。

a. ショートカット・アイコンをマウスの右ボタンでクリックし、[プロパティ]を選択します。[ショートカットのプロパティ]ダイアログが表示されます。

b. [ショートカット]タブで、[リンク先]を次のように変更します。

"C:\Program Files\Agilent\VEE Pro RunTime 8.5\veerun.exe" MyApp.vee

引用符を忘れないでください。また、必要なveerunオプションがあれば指定します。コマンド・ライン・オプションの一覧については、コマンド・ライン・オプション付きでAgilent VEEを起動するにはを参照してください。

[作業フォルダ]のパスが正しい場合、[リンク先]にプログラムのパスを指定する必要はありません。

c. [OK]をクリックします。

4. ショートカット・アイコンのラベルを変更するには、アイコンをクリックしてから、ラベルをクリックします。新しいラベルを入力します。ショートカットをダブルクリックするとプログラムが実行されます。

[スタート]メニューのショートカット

1. Windowsタスク・バーで、[スタート] [image] [設定] [image] [タスク バー]をクリックします。

2. [タスク バーのプロパティ]ダイアログ・ボックスの[[スタート] メニューのプログラム]タブで、[追加]をクリックします。[ショートカットの作成]ダイアログが表示されます。

3. プログラムを実行するコマンドを入力します。コマンドを入力する場合は引用符を使用します。

保護されていないプログラム（.vee）の場合、veerunとプログラムのファイル名をそれぞれのパスとともに入力します。保護されたプログラム（.vxe）の場合は自動的にveerunが用いられます。したがって、コマンドにはプログラムのファイル名とパスだけが必要です。保護されていないプログラムの場合のコマンドは次のようになります。

"C:\Program Files\Agilent\VEE Pro RunTime 8.5\veerun.exe" "C:\Document and Settings\[username]\My Documents\VEE Programs\MyApp.vee"

必要なveerunオプションがあれば指定します。保護されたプログラムの場合、オプションを使用するにはコマンドにveerunを含める必要があります。コマンド・ライン・オプションの一覧については、コマンド・ライン・オプション付きでAgilent VEEを起動するにはを参照してください。

[次へ]をクリックします。[フォルダの選択]ダイアログが表示されます。

4. ショートカットを配置するフォルダを選択します。既存のフォルダを選択することも、新しいフォルダを作成することもできます。[次へ]をクリックします。[名前の指定]ダイアログが表示されます。

5. プログラムのショートカットのわかりやすい名前を入力します。この名前は[スタート]・メニューに表示されます。[完了]をクリックします。

6. [OK]をクリックします。ショートカットを使用するには、[スタート] [image] [プログラム]を選択します。

関連項目

コマンド・ライン・オプション付きでAgilent VEEを起動するには


例:シーケンサ・トランザクション

Sequencerオブジェクトのオープン・ビューには、シーケンス・トランザクションのリストが表示されます。各トランザクションは、他の種類のトランザクションに似ています。下のプログラムでは、Sequencerがトランザクションを使って式を実行し、関数を呼び出す様子を示しています。

このプログラムでは、2つのUserFunctionが背景にあって表示されていません。1つはmyRand1で、0から1までの乱数を入力に加算します。もう1つはmyRand2で、0から100までの乱数を入力に加算します。これらのUserFunctionへの呼び出しは、トランザクションを展開すると表示されます。UserFunctionの作成と使用の詳細については、[Help] [image] [Contents and Index] [image] [使用法] [image] [カスタム・オブジェクトと関数の作成] [image] [UserFunctionの作成と使用]を参照してください。

トランザクションをクリックすると、ダイアログ・ボックスにトランザクションが展開され、内容を確認して編集できます。下に示すダイアログ・ボックスは、最初のトランザクションtest1です。

シーケンス・トランザクションは、TESTトランザクションまたはEXECトランザクションのどちらかです。このトランザクションでは、種類はTESTです。名前フィールドはtest1、公称仕様は1.25、RANGE:仕様が用いられ、範囲は1 <= ... <= 1.5です。

1～1.5の値だけがテストに合格します。式myRand1(A)は、シーケンサのA入力端子の値を入力パラメータとしてUserFunctionを呼び出します。

トランザクションではログ記録がオンになっているので、Test1という名前のローカル変数が自動的に作成され、このテストの結果のログ・レコードを保持します。このログ・レコードは、Log出力端子の一部としても使用できます。IF PASSおよびIF FAIL条件は、どちらもTHEN CONTINUEに設定されています。すなわち、結果が合格でも不合格でも、test1の終了後には次のトランザクションtest2が実行されます。

DESCRIPTIONフィールドは、このテストのコメントを記入する領域です。

注記

RANGEまたはLIMITテストの場合、SPEC NOMINALは単にドキュメント用の役割しか果たしません。これに対して、TOLERANCEまたは%TOLERANCEに基づいてテストを行う場合、許容範囲はSPEC NOMINALの値を基準として計算されます。

2番目のトランザクションtest2もTESTトランザクションです。

この2番目のテストは、最初のものに似ています。UserFunction myRand2が式myRand2(A)で呼び出されます。結果の値が、公称仕様26で、1～51の範囲内にあるかどうかがテストされます。この場合も、結果が合格でも不合格でも、シーケンサは次のトランザクションに進みます。

3番目のトランザクションはEXECトランザクションです。

EXECトランザクションは、TESTトランザクションと異なり、関数結果を仕様や範囲と比較することはありません。EXECトランザクションは、合否テストを必要としない動作を実行するために用いられます。

例えば、EXECトランザクションを使って、TESTトランザクションが実行される前に外部構成を準備するルーチンを呼び出したり、一連のテストの後で電源断手順を実行したりすることができます（EXECトランザクションは「常に合格」というテスト条件を指定することと同じです）。

この例では、finishという名前のトランザクションが、Bの値をSequencerオブジェクトのReturn出力端子に返します。EXECトランザクションでは、テストが実行されないので、ログ記録は発生しません。

DESCRIPTIONフィールドを使って、トランザクションの簡単な説明を記述できます。

プログラムを実行する際に、3つのトランザクションは次に示すように順次実行されます。

記録されたテスト結果は、Log出力端子に出力され、表示されます。結果は、レコードのレコードとして、Recordデータ型で記録されます。この例では、test1が1.396という値で合格し、test2が85.05という値で不合格になっています。3番目のトランザクションは、B入力の値、すなわち文字列"Done!"を返します。

ログ記録がオンになっているトランザクションは、トランザクション名と同じ名前のログ・レコードを作成します。この例では、最初の2つのテストに対してログ記録がオンになっているので、Test1とTest2という名前のローカル変数にこれらのトランザクションのログ・レコードが格納されます。

ログ・レコードのフィールドは、[Properties]ダイアログ・ボックスで定義されます。ログ設定にアクセスするには、Sequencerオブジェクトのオブジェクト・メニューで[Properties]をクリックし、[Logging]タブをクリックします。デフォルトでは、ログ・レコードには[Name]、[Result]、[Pass]の各フィールドが含まれます。

Test1とTest2のローカル変数名は、シーケンサ内の任意の式で、現在またはそれより前に実行されたトランザクションの結果にアクセスするために使用できます。例えば、Test3でTest1.Resultをパラメータとして関数を呼び出すことにより、最初のテストの結果を渡すことができます。あるいは、Test2.Passを式として使用すると、Test2が合格した場合は1、不合格の場合は0を返す式になります。

もう1つのローカル変数thisTestが、ログ・レコードにアクセスするために使用できます。thisTestの値は、常に現在実行中のトランザクションのログ・レコードに一致します。これにより、各トランザクションに固有の名前を使用しない式を作成して、その式を複数のトランザクションで使用できます。

シーケンサのLog出力から供給されるデータの構造は、下に示すようなレコードのレコードです。

Log出力ピンから供給されるレコードには、ログ記録がオンになっている各トランザクションに対するフィールドがあります。この例ではTest1とTest2です。これらのフィールドはそれぞれ、指定されたトランザクションのログ・レコードであり、Name、Result、Passというフィールドを持ちます。

このレコードのレコードはLog出力ピンから得られ、レコードのドット記法により他のオブジェクトから使用できます。例えば、式Log.Test1.Resultは、この例では、上の図のように、1.396という値を返します。同様に、Log.Test1.Nameはtest1、Log.Test1.Passは1を返します。

Log出力ピンで記録されたデータは、常に各トランザクションの最後の実行のデータです。各トランザクションのすべての実行の結果を記録したい場合は、シーケンサの[Properties]ダイアログ・ボックスの[Logging]タブで[Logging Mode]を[Log Each Transaction To:]に設定します。このオプションは、各トランザクションの終了時に、指定された関数（または式）を呼び出します。

このオプションは、テスト結果を発生と同時に（シーケンサの終了後ではなく）ファイルまたはプリンタに記録したい場合にも使用できます。ローカル変数thisTestをログ関数へのパラメータとして使用することにより、終了したばかりのトランザクションのログ・レコードを渡すことができます。

関連項目

シーケンサ, 例:ビン・ソート, 例:テスト結果の記録, 例:データセットへの記録, quencerオブジェクト


例:テスト結果の記録

下の図は、テスト結果の記録の例です。ここでは、反復子によってSequencerにテストを繰り返し実行させ、結果を記録しています。

この例では、For CountオブジェクトによってSequencerが一連のテスト（前の例のtest1とtest2）を4回実行します。例えば、組み立てライン上で4つの製品をテストする場合、Sequencerの1回の実行で1つの製品がテストされます。

Log出力端子からの一連の結果レコードがCollectorで収集され、レコードの配列として表示されます。To FileオブジェクトでWRITE CONTAINER I/Oトランザクションを使ってこの配列をファイルに出力できます。また、データセットを使用することもできます。

この例のCollectorの出力は、次のようなレコードのレコードの配列と考えることができます。

各配列要素（Log[0]、Log[1]など）は、シーケンサの1回の反復に対応し、レコードのレコードです。記録された出力は、式の中で解析できます。この例では、Log[*].Test1.Resultが配列からの「コア・サンプル」になります。Log[*].Test1.Resultは値の配列（例の結果では1.396、1.353、1.319、1.016）を返します。

注記

記録された配列は、3次元配列ではなく、レコードのレコードの配列です。このことが重要なのは、レコードの各フィールドは異なるデータ型でもかまわないからです。NameフィールドがTextであるのに対して、ResultフィールドがWaveformでもかまいません。また、Test2.ResultフィールドがWaveformで、Test1.ResultフィールドがReal値でもかまいません。

ただし、個々のフィールドは配列全体を通じて一貫したデータ型でなければなりません。例えば、フィールドTest1.ResultがLog[0]ではReal値で、Log[1]ではWaveformということはありません。

下の例は、上の例を拡張して、Sequencerの反復を10回にし、記録したデータの解析を加えています。Formulaオブジェクトの式log[*].test1.resultは、test1の結果を含む10要素のReal配列を返します。この配列は、min(x)、max(x)、mean(x)、sdev(x)の各オブジェクトによって統計的に解析されます。

この例は、 manual44.veeManual44.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

関連項目

シーケンサ, 例:ビン・ソート, 例:データセットへの記録, 例:シーケンサ・トランザクション, Sequencerオブジェクト


例:データセットへの記録

データセットを使って、記録したデータセットを保存できます。下のプログラムでは、SequencerオブジェクトのLog出力端子がTo DataSetオブジェクトに接続されています。

For Countオブジェクトが終了すると、From DataSetオブジェクトが保存されたデータセット（myDataSet）を読み取ります。From DataSetは、myDataSetからすべてのレコードを読み取り、各レコードをRec.test1.pass AND Rec.test2.passという条件でテストするように設定されています。test1とtest2の両方が合格しているレコードだけが読み取られます。

読み取られたレコードの中から、式Rec[*].test1.resultによってtest1.resultレコード・フィールドがすべて返され、統計的に解析されます（Rec.test1.pass AND Rec.test2.passという式を満たすレコードがない場合、このプログラムはエラーになります）。

この例は、Manual45.veeファイルに保存されています。 >

関連項目

シーケンサ, 例:ビン・ソート, 例:テスト結果の記録, 例:シーケンサ・トランザクション, Sequencerオブジェクト


例:ビン・ソート

次の例は、カーボン抵抗の抵抗値を測定します。

以前には、カーボン抵抗はおおざっぱなプロセスで製造された後、テストされてソートされ、マーキングされていました。どの抵抗も使用可能になるように、標準の抵抗値（220 W、270 W、330 Wなど）は10%の許容範囲で重なり合うように選択されていました。例えば、抵抗値が220 Wよりも10%大きい場合は、270 Wの抵抗のラベルを付けて使用できるようになっていました。

下の図のプログラムでは、抵抗値を返すUserFunctionをSequencerから呼び出しています。Sequencerは一連のテストを実行して、その抵抗が満たす公称抵抗値とパーセント許容値を計算します。これは「ビン・ソート」の問題です。すなわち、シーケンサは抵抗をどのビンに入れたらよいかを示す結果を返します。

SequencerからUserFunctionを呼び出す方法の1つの利点は、さまざまなUserFunctionsを置き換えて使用できることです。この例では、開発用に、期待される範囲内のランダムな抵抗値を返すUserFunction（simResist）を使用しています。このUserFunctionの代わりに、計測器I/Oを実行して実際の抵抗値を返す別のUserFunctionを使用できます。

この問題の最も簡単な解決法は、公称値と許容値に対して抵抗値をテストする個々のトランザクションを並べて使用することです。

この例では、最初のシーケンス・トランザクション（test1）が式simResist()によってUserFunction simResistを呼び出しています（このUserFunctionは入力を必要としません）。最初のシーケンス・トランザクションを次に示します。

test1では、simResistから返された値が公称値330 Ωから±2%以内であるかどうかがテストされます。テストが成立した場合、2要素のReal配列[330 2]がReturn出力端子に返され、To Stringオブジェクトが値を文字列"330 Ohm, 2%"に変換します。テストが失敗した場合、Sequencerは次のテストに進みます。

2番目のトランザクションtest2は、test1と同様に動作しますが、simResistを呼び出す代わりに、FUNCTIONフィールドで式test1.resultを使用しています。2番目のシーケンス・トランザクションを次に示します。

注記

ログ記録をオンにしたトランザクションは、テストと同じ名前のローカルなRecord変数を作成します。このレコードには、ログ・レコードに指定されたフィールドが含まれます。トランザクションtest1の場合、式test1.resultはtest1で呼び出された関数の戻り値を返します。

この例で式test1.resultを使用するのには2つの理由があります。第1に、トランザクションtest2からtest9まででtest1.resultを使用することにより、後でtest1を変更して別の関数を呼び出すようにしても、常にすべてのトランザクションが同じ関数結果を使用することが保証されます。

この例の場合、さらに重要な理由として、UserFunctionは呼び出されるたびに別の抵抗値を返します。ここでは、新しい値を取得するのではなく、同じ抵抗値を一連の公称値および許容値に対してテストするのが目的です。したがって、test2からtest9までのトランザクションでは、すべてFUNCTIONフィールドに式test1.resultを使用しています。これらのトランザクションは最初のトランザクションと同様に動作し、テストが成立した場合は対応する配列（[330 5]、[330 10]、[270 2]など）を返します。

最初の8つのテストは、失敗した場合は次のテストに進みます。しかし、すべてのテストが失敗した場合にはそのことを知る必要があります。このため、test9はIF FAIL THEN ERRORに設定されています。Error出力端子により、Error ConditionというタイトルのAlphaNumericto表示が実行され、"Out of Range"というテキストが表示されます。

この方法は簡単ですが、効率的とはいえません。いくつかの値をそれぞれ3つの許容値でテストするには、多数のシーケンス・トランザクションを作成する必要があります。下の図は、改良された「ビン・ソート」の例を示します。

このプログラムは、 Manual46.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

このプログラムの重要なポイントを以下に示します。

• このプログラムではSequencerオブジェクトを2つ使用しています。最初のオブジェクト（Test Boundsというラベル）は、2番目のオブジェクト（Test Value & Toleranceというラベル）のテストを再使用します。

• プログラムの左上隅のReal64配列には5個の要素があり、それぞれが標準の抵抗値を表します。ただし、この例では値のリストは拡張可能です。配列要素の数に関わらず、TotSize(x)関数が要素数を返すため、For Countオブジェクトは正しい回数反復を実行します。Formulaオブジェクトの式R[i]は、インデックスを指定します。

• Test Boundsという名前のSequencer では、最初のトランザクション（test1）が次のように式simResist()でUserFunction simResistを呼び出します。

シミュレートされた抵抗測定値が返され、配列中の最小値（150 W）の90%以上であるかどうかがテストされます（シーケンス・トランザクションの値フィールドでは、min(a)*.9などの式が使用できます）。

2番目のトランザクション（test2）は、値（test1.result）が配列中の最大値（330 W）の110%以下であるかどうかをテストします。下の図にこのトランザクションを示します。

どちらかのテストが失敗した場合、エラーが発生します。

• エラーが発生した場合、Error Conditionという名前のUserObjectが、3項式を使って、Out of Range: LOWまたはOut of Range: HIGHのどちらを表示するかを決定します。このUserObjectはShow Panel on Execに設定されているので、どちらかのエラー条件が発生すると、エラーがポップアップ表示されます。UserFunction simResistは100～400の範囲の乱数を返すため、プログラムを実行するとこの条件はときおり発生します（続行するには、ポップアップ・ボックスで[OK]を押します）。

• 最初のSequencerのトランザクションtest1は、UserFunction simResistを呼び出す唯一のトランザクションです（test2はsimResistの代わりに式test1.resultを使用します）。この例では、1つの抵抗値に対して複数のテストを実行するためにこれが必要です。UserFunctionを毎回呼び出すと、そのたびに異なる値が返されてしまいます。ただし、これにはもう1つの理由があります。

UserFunction simResistは1回しか呼び出されないため、別のUserFunctionの呼び出しに置き換えることができます。この例（manual46.vee）には、measResistという名前の別のUserFunctionがあります。これは、パネル・ドライバを使ってHP 3478Aデジタル電圧計で電圧測定を実行します。HP 3478A電圧計があれば、GPIBで接続し、test1のFORMULAフィールドを式measResist()に変更し、プログラムを実行してみてください。

• シミュレートされた抵抗値と測定された抵抗値のどちらを使った場合でも、Test Boundsの戻り値が表示され、グローバル変数（globalOhms）に設定されます。例えば、Test Value & ToleranceというラベルのSequencerの3つのトランザクションは、それぞれ式globalOhmsによってこのグローバル変数を呼び出しています。下の図に最初のトランザクションの展開図を示します。

テストが成立した場合、対応する実数配列（[220 2]など）が出力されます。To Stringオブジェクトがデータを文字列（"220 Ohm, 2%"など）に変換します。ビン・ソートの結果が見つかるまで、Sequencerが必要な回数だけ実行されます。

• どちらのSequencerでもLog出力端子は使用しないため、実行を高速化するためにこの端子は削除してあります。

• このプログラムの流れを見たい場合は、[Show Execution Flow]と[Show Data Flow]をオンにしてプログラムを数回実行してみてください。

Sequencerを使ったその他の例については、examplesディレクトリを参照してください。

関連項目

シーケンサ, 例:テスト結果の記録, 例:データセットへの記録, 例:シーケンサ・トランザクション, Sequencerオブジェクト


VEEのExecute Programオブジェクトについて

VEEからほかの言語のプログラムを実行する方法には、ActiveXオートメーション以外にも、次の2つがあります。

1 Execute Programオブジェクトを使用して、VEEをエスケープし、別のプログラム、アプリケーション、またはオペレーティング・システム・コマンドを実行します。これは最も用途が広く、使いやすい方法です。

2 PCのダイナミック・リンク・ライブラリを介して、ほかの言語で書かれたコンパイル済みの関数をVEEにリンクします。これは少し難しい方法ですが、パフォーマンスが大幅に向上します。ダイナミック・リンク・ライブラリについての詳細は、「ダイナミック・リンク・ライブラリの使用法」を参照してください。

Execute Programオブジェクトは[I/O]メニューにあります。Execute Programオブジェクトは、プログラムとの通信にトランザクションI/Oを使用しないため、コンパイル済みプログラムにデータを渡すためのデータ入力ピンとデータ出力ピンを追加する必要がありません。

関連項目

Execute Program Execute Programオブジェクトを使用するには システム・コマンドを使用するには 容易に移植できるプログラムを作成するには


Execute Programオブジェクトの使用方法

Execute Programオブジェクトを使用するには

下の図は、PCのExecute Programオブジェクトを示します。

Execute Programオブジェクトを使用して、VEEから次を実行します。

  • ほかの言語で記述されたコンパイル済みプログラム

  • *.BATファイルまたは*.COMファイル

  • dirなどのMS DOSシステム・コマンド

  • 認識されている拡張子を持つ文書またはURL。ファイルに対して"open"操作が呼び出されます。"open"操作を持たないファイルでは、デフォルトの操作が呼び出されます。URLの例は、http://www.agilent.com/find/veeなどです。

Execute Programオブジェクトのフィールドについて、以下で説明します。

フィールド名

説明

Run Style

ウィンドウのサイズを決めます。[Normal]は標準ウィンドウ、[Minimized]はアイコン、[Maximized]は最大ウィンドウ・サイズを指定します。[Working directory]は、プログラムに関連のあるファイルを保持するディレクトリです。

Wait for prog exit

シーケンス・ピンをいつ起動するかを指定します。

  • Yesに設定した場合、プログラムが実行を完了するまで、シーケンス・ピンは起動されません。

  • Noに設定した場合、指定されたプログラムの実行が完了する前に、シーケンス出力ピンはアクティブになります。文書またはURLを起動したとき、その文書またはwebサイトがすでに動作中のアプリケーションにロードされた場合、VEEはアプリケーションが終了するまで待たないことに注意してください。

Prog with params

（パラメータ付きプログラム）このフィールドには、DOSプロンプトに入力するものと同じ文字列が保持されます。たとえば、C言語で書いたプログラムを実行するには、次のように実行可能ファイル名を入力します。- myprog.exe（拡張子.exeは省略可能です）。

  • プログラムがパラメータを持っている場合は、次のように、実行可能ファイル名の後に、先頭にハイフンを付けてパラメータを入力します。例:
    myprog -param1 -param2

  • Windows Vista、Windows XPおよびWindows 2000の場合は、コマンドcmd /c <システム・コマンド>を入力します。

このオプションは、コマンド・インタプリタに、/cの後に続く文字列をシステム・コマンドとして読み取るように指示します。

関連項目

Execute Program、システム・コマンドを使用するには、容易に移植できるプログラムを作成するには


システム・コマンドの使用法

別の言語で書かれたコンパイル済みプログラムを呼び出すには、実行可能ファイルと、パラメータがあればパラメータをExecute Programオブジェクトに入力します。

ただし、MS DOSのシステム・コマンドを実行するには、最初にDOSコマンド・インタプリタを実行する必要があります。例題8-6: システム・コマンドの使用法を参照してください。

関連項目

Execute Program、 Execute Programオブジェクトを使用するには、 容易に移植できるプログラムを作成するには


容易に移植できるプログラムの作成方法

VEEには、次のようなシステム情報オブジェクト（[Function & Object Browser] [image] [System Information] ）があります。これらのオブジェクトは関数としても使用できます。

Function & Object Browserにある、プログラムの移植性を向上させるためによく使用されるシステム情報関数について、以下で説明します。

関数名 | 説明
installDir | VEEをインストールしているディレクトリを返します。
whichOS | オペレーティング・システムを判別し、次のいずれかの文字列を出力します。Windows_98、Windows_2000、Windows_NT、Windows_ XP。 異なる言語で書かれた複数のプログラムを統合する場合、プログラムは、上記の結果に基づいて分岐できます。たとえば、examples\manualディレクトリのmanual49.veeプログラムでは、whichOS()を使って正しい種類のライブラリをインポートしているかどうかを確認します。PCでは、ダイナミック・リンク・ライブラリをインポートします。
whiclatform | VEEが実行されているハードウェア・システムを判別し、そのプラットフォームを示す文字列を返します。
whichVersion | VEEのバージョンを返します。バージョンは、プログラムの保守とデバッグに役立ちます。

関連項目

Execute Program Execute Programオブジェクトを使用するには システム・コマンドを使用するには


Agilent VEEにMATLAB Scriptオブジェクトを入れる

Agilent VEEにMATLAB Scriptオブジェクトを入れるには

プログラム内で使用するMATLABオブジェクトは、VEEのFormulaオブジェクトに似ています。MATLAB Scriptオブジェクトをプログラムに追加する方法は2通りあります。

1 [Device] [image] [MATLAB Script]を選択し、クリックしてオブジェクトをプログラムに配置します。これにより、目的に応じて編集できるデフォルトのMATLAB Scriptオブジェクトが作成されます。

2 [Device] [image] [Function & Object Browser]を選択し、[MATLAB Functions]を選択します。定義済みのMATLAB関数を選択し、[Create Formula]をクリックします。クリックしてオブジェクトをプログラムに配置します。下の図は、VEEプログラムに追加できる定義済みのMATLAB関数を示します。

各MATLABオブジェクトの名前はMATLAB Script<function name>の形式で付けられ、ほかのVEEのFormulaオブジェクトと区別できます。組込みのVEEのFormulaオブジェクトと同じように、各オブジェクトにはそのオブジェクトが実行する関数が入力されており、また必要と思われる入力および出力ピンが付けられています。MATLAB Scriptオブジェクトは、ほかのVEEオブジェクトと同様に編集もできます。

注記

MATLAB関数についての詳細は、VEEのメイン・ウィンドウで[Help] [image] [MATLAB Script] [image] [Help Desk].を選択してください。

関連項目

データ型の処理方法 Agilent VEEにおけるMATLAB Scriptの使用 MATLAB Script


データ型の処理方法

VEEのデータ型のサブセットのみがMATLABオブジェクトの入力および出力データとしてサポートされています。

VEEは、とMATLABの関数が混在するプログラムで処理しやすいように、1次元配列を自動的に変換します。たとえば、VEEの1次元テキスト配列は、MATLAB Scriptオブジェクトに入力されるとき、自動的に2次元の文字配列に変換されます。 またMATLAB Scriptオブジェクトからの1次元文字配列は、MATLAB Scriptオブジェクトから出力されるとき、自動的にText Scalarに変換されます。

注記

VEEのデータ型とMATLABのデータ型との自動変換の全リストおよび解説については、MATLAB Scriptを参照してください。

次の例で示すように、入力端子のデータ型を制限することによっても、別のオブジェクトから入力されるデータをサポートされているデータ型に確実に変換できます。

1 [Data] [image] [Constant] [image] [Int32]を選択し、クリックしてオブジェクトを配置します。値を7に変更します。オブジェクトのクローンを作成して、2番目のInt32を最初のInt32の下に配置します。値を20に変更します。

2 [Device] [image] [MATLAB Script]を選択し、定数オブジェクトの右側にオブジェクトを配置します。

3 [Display Alphanumeric]を選択し、MATLAB Scriptオブジェクトの右側にオブジェクトを配置します。

4 上のInt32オブジェクトの出力ピンをMATLAB Scriptオブジェクトの入力ピンAに接続します。下のInt32オブジェクトの出力ピンをMATLAB Scriptオブジェクトの入力ピンBに接続します。MATLAB Scriptオブジェクトの出力ピンをAlphanumericオブジェクトの入力ピンに接続します。

プログラムを実行します。期待される入力データ型が、Real64、Complex、Waveform、Textのいずれかであるのに対し、Int32のデータが入力されたことを伝えるVEEの実行時エラーが生成されます。

このようなエラーを避けるには、MATLAB Scriptオブジェクトの入力端子のデータ型を変更します。

5 端子Aをダブルクリックして[Input Terminal Information]ダイアログ・ボックスを開きます。[Required Type:]をクリックしてドロップダウン・メニューを表示し、[Real64]を選択し[OK]をクリックします。端子Bをダブルクリックし、同様にReal64に変更します。

6 プログラムを実行します。今度は、Int32データは、自動的に入力ピンでReal64に変換され、MATLABに渡されます。

関連項目

データ型の処理方法 Agilent VEEにおけるMATLAB Scriptの使用 MATLAB Script


VEEで使用するMATLABの選択

VEEにはMATLABｮ Scriptエンジンが付属しています。これにより、ユーザはMATLAB機能の中核である高度な計算、データ解析、科学／技術グラフィックスなどを利用できます。

MATLAB Script機能は、The MathWorks社製の高機能標準MATLABのサブセットです。高機能MATLABがマシンにインストールされている場合、VEEプログラムからMATLABの全機能を容易に使用できます。

高機能MATLABをVEEで使用するには

1. [File]メニューで[Default Preferences]をクリックします。

2. [MATLAB]タブをクリックします。

3. [MATLAB]タブで、使用したいMATLABバージョンをクリックします。

4. [Save]ボタンをクリックすると、[Default Preferences]ダイアログ・ボックスが閉じます。

5. 現在のVEEプログラムを保存し、Agilent VEEを再起動します。

[Default Preferences]ダイアログ・ボックスで使用するMATLABを変更した後は、変更を保存してAgilent VEEを再起動しないと変更が有効になりません。

注記

MATLABの他のバージョンをインストールしていない場合は、VEEに付属するMATLABｮ Scriptだけが使用できます。

関連項目

MATLAB Script、Agilent VEEにおけるMATLAB Scriptの使用、組込み演算オブジェクトの使用、データ型の処理方法


ActiveXオートメーションを使用するには

ActiveXオートメーションのタイプ・ライブラリの一覧表示

コンピュータにインストールされているオートメーション・オブジェクトを確認するには、[Devices] [image] [ActiveX Automation References]をクリックします。

注記

ActiveX Control Referencesの詳細については、[Help]メニューの[Contents and Index]の下の[使用法] [image] [オペレータ・インタフェースの構築]を参照してください。また、「ActiveXオートメーション・サーバ」を参照してください。

[Devices] [image] [ActiveX Automation References]を選択すると、PCにインストールされているタイプ・ライブラリの一覧が表示されます。オートメーション・サーバとなることができる各アプリケーションとActiveXコンポーネントは、タイプ・ライブラリを登録します。VEEは、PCで使用可能なタイプ・ライブラリを表示しますこれらのライブラリは、ActiveXクライアントに公開されているアプリケーションやコンポーネントの機能に関する情報を保持しています。

タイプ・ライブラリは、通常、クラスの集合から成ります。一部のクラスはプログラマが作成できます。そのほかのクラスは、常に、アプリケーションまたはコンポーネントによって作成されます。クラスは、プロパティ、メソッド、およびイベントから成りますが、必ずしも3つすべてが存在する必要ははありません。タイプ・ライブラリは、プログラマとVEE環境の両方に、ActiveXインタフェースを使ってアプリケーションまたはコンポーネントを利用する場合に必要な情報を提供します。

[ActiveX Automation References]ボックスで、タイプ・ライブラリの横にチェック・マークを付けると、そのライブラリのオブジェクトがVEEのプログラムで使用可能になります。たとえば、次の図では、Microsoft Excel 9.0にチェック・マークが付けられています。

Agilent VEEでActiveXプログラムを作成および使用する方法

VEEには、Objectと呼ばれるActiveXプログラムのためのデータ型があります。Objectとして指定されるデータ型を持つVEEオブジェクトは、オートメーション・サーバが保持しているデータなどを指すポインタです。たとえば、Objectは、MS Excel内のワークシートを指すポインタやそのワークシート内のセルを指すポインタとなることができます（技術的には、Objectは、MS Excelまたはオートメーション・サーバが返すIDispatchインタフェースを指すポインタです）。

たとえば、[Data] [image] [Variable] [image] [Declare Variable] を選択し、[Name]を[App]に設定し、そのデータ型を[Object]に設定した場合、Excelオートメーション・サーバなどのActiveXオートメーション・オブジェクトを指すために、変数Appを使用できます。次の図は、データ型Objectの例です。

ActiveXステートメントを使って操作を実行する方法

Excelオートメーション・サーバなどのActiveXオートメーション・サーバと通信する場合は、VEE FormulaオブジェクトにActiveXのコマンドを入力します。たとえば、次の例は、Set Up Excel Worksheetという名前の付いたVEE Formulaオブジェクトを示しています。このオブジェクトは、Excelワークシートをセットアップしてテスト結果を表示するためのコマンドのリストを保持します。

上の例では、コマンドやステートメントを作成するため、Microsoft Visual Basicの標準の構文を使用しています。コマンドまたはステートメントが実行する動作には、Get Property、Set Property、Call Methodsの3種類があります。

Get Propertyステートメントは、通常、ある型のデータを取得する場合に使用します。構文は、<オブジェクト>.<プロパティ>です。たとえば、sheet.applicationは、sheetオブジェクトのapplicationプロパティを取得します。

Set Propertyステートメントは、通常、何らかの型のデータをある値に設定するために使用します。構文は、<オブジェクト>.<プロパティ> =<プロパティの種類>です。たとえば、object.property= MaxSizeで、1つのプロパティが設定されます。

Call methodsは、メソッドを呼び出します。メソッドは、操作を実行するようにオブジェクトに要求します。メソッドのパラメータを使用して、データの受け渡しを行うことができます。構文は、<オブジェクト>.<メソッド>(パラメータ)です。

注記

データ型Objectの構文は、Recordのフィールドを取得する構文rec.fieldと、UserFunctionを呼び出すVEE構文myLib.func()に似ているため、変数にはわかりやすい名前を割り当てることが重要です。

CreateObjectとGetObjectの使用法

前のセクションのSet Up Excel Worksheet 内のステートメントの1つがCreateObject()関数呼び出しを保持していることに注目してください。CreateObject()とGetObject()はVEEのFunction & Object Browserにある関数であり、VEEにあるActiveXオブジェクトを指すポインタを返すように設計されています。

たとえば、CreateObject("Excel.Sheet")は、Excelを起動し、Excelのワークブックに対する参照を返します（Microsoftのステートメントsheetはワークブックを返します）。実行中のExcelの既存のデータなどを取得する場合や、実行中のExcelにファイルをロードする場合は、GetObject()を使用します。

CreateObjectとGetObjectは、[Device] [image] [Function & Object Browser] [image] [Built-in Functions] [image] [ActiveX Automation]にあります。下の図は、CreateObjectとGetObjectの例です。

関連項目

例題6-1:Agilent VEEデータのMS Excelへの送信方法

例題6-2:MS Excelテンプレートに合わせたAgilent VEEの作成方法

例題6-3:MS Wordを使ってAgilent VEEレポートを表示する方法。


VEE Excelライブラリの概要

Agilentは、2005年5月にPASS Technologies Inc.からVxl製品を買収しました。この製品は現在Excelライブラリと呼ばれています。これはMicrosoft ExcelとVEEとの間にトランスペアレントなリンクを作成するUserFunctionのライブラリです。今までActiveXを使ってMicrosoft Excelの基本機能を利用するにはかなりの手間がかかっていましたが、これによりVEEとMicrosoft Excel の間でデータを移動したり、Microsoft Excelのグラフを使用したり、Microsoft Excelのデータをフォーマットしたりするのがとても簡単になりました。

VEE ExcelライブラリにはMicrosoft Office 2000以降が必要です。


VEE Excelライブラリを初期化するには

VEE Excelライブラリを使用するには、UserFunctionのライブラリをインポートする必要があります。これはInitializeで実行されます。

場所

On the VEE main menu at Excel [image] Initialize Excel Library


VEE Excelライブラリのセッション・デフォルトを設定するには

Settings UserObjectを使って、VEE Excelライブラリのセッションのデフォルト値を定義できます。このUserObjectには、2つのオブジェクトCall xlLib.SettingsとRecordがあります。

オープン・ビュー・パラメータ

Recordオブジェクトは設定を定義し、Call xlLib.Settingsオブジェクトは設定を実現するUserFunctionを呼び出します。Recordオブジェクトのオープン・ビュー・パラメータを下に示します。

  • Visible -- VEE Excelライブラリの動作中にMicrosoft Excelを表示します。これをFalseに設定すると、オペレータ・インタフェースでユーザの注意をVEEプログラムに集中させることができます。デフォルトはVisibleです。Print PreviewもMicrosoft Excelを表示します。

  • WindowMode -- これはMicrosoft Excelのプログラム・ウィンドウに関連します。オプションには、Normal（Microsoft Excelウィンドウを最大化されない状態で開く）、Minimized（最小化）、Maximized（最大化）があります。デフォルトはNormalです。

  • BookWindowMode -- これは選択されたワークブックのMicrosoft Excelワークブック・ウィンドウに関連します。オプションには、Normal（ワークブック・ウィンドウを最大化されない状態で開く）、Minimized（最小化）、Maximized（最大化）があります。デフォルトはNormalです。

  • ArrangeWindows -- 複数のワークブックが開いている場合、その表示順序を指定して整列します。オプションには、Cascade（カスケード表示）、Horizontal（横）、Tiled（タイル表示）、Vertical（縦）があります。このパラメータが使用できるのは、BookWindowModeがNormalに設定されている場合だけです。デフォルトはCascadeです。

  • Error Action -- VEE Excelライブラリがエラー条件を処理する方法を決定します。デフォルトはRaiseErrorです。オプションは次のとおりです。

  • RaiseError -- VEE Excelライブラリはエラー・ハンドラでエラーを発生します。これは推奨設定です。

  • Quit -- VEE Excelライブラリは、すべてのワークブックを閉じます。ワークブックがエラーより前に保存されていない場合、新しいデータは失われます。VEE ExcelライブラリはMicrosoft Excelセッションをアンロードします。

  • OKCancel -- メッセージ・ボックスが表示されます。このメッセージ・ボックスは30秒でタイムアウトします。OKを選択した場合、エラーは無視されます。Cancelを選択した場合、エラーが発生します。タイムアウトが生じた場合も、エラーが発生します。

  • Ignore -- エラーは無視されます。エラーは再び発生する可能性があるため、このオプションはユーザが操作できる場合に使用するようにしてください。

  • DisplayAlerts -- デフォルト設定はTrueです。これにより、必要な場合にMicrosoft Excelのメッセージ・ボックス・ダイアログが表示されます。ダイアログが表示される機会を減らすには、Falseを選択します。注意:DisplayAlertsをFalseに設定すると、Microsoft Excelがハングする場合があります。Microsoft Excelの上書きプロンプトを処理したい場合は、'Save Workbook As'オブジェクトを参照してください。

注記

これらの設定は、Select Workbookを使用して選択されたワークブックに適用されます。

Open WorkbookまたはNew WorkbookエントリがSettingsエントリの後にある場合、設定はこれらのエントリには適用されません。SettingsがOpenまたはNewの後にある場合に、現在のワークブックに対してのみ設定が適用されます。

プログラムの作成とデバッグの際には、Settings -> VisibleパラメータをTrueに設定しておくとよいでしょう。プログラムが問題を起こしたり、Microsoft Excelセッションを正しく終了しなかったりした場合、複数のExcelセッションがアクティブになることがあります。これらのセッションは多くのメモリを消費するため、Excelの動作が異常になることがあります。このような場合、Windowsのタスク・マネージャを使って不要なセッションを削除します。

場所

VEEメイン・メニューの Excel [image] Settings


VEE Excelライブラリ・アドインを終了するには

Call xlLib.QuitExcelLibraryオブジェクトは、すべてのワークブックを閉じ、Microsoft Excelセッションをアンロードし、VEE Excelライブラリ・アドインを削除するUserFunctionを呼び出します。

注意:Excelライブラリを終了する際に、ワークブックの自動保存機能はありません。Excelワークブックに対して変更を行った場合、Save All WorkbooksまたはSave Workbook Asを呼び出して変更を保存する必要があります。

注記

Excelライブラリを削除しないと、Microsoft Excelプロセスが動作したままになることがあります。

場所

VEEメイン・メニューの Excel [image] Quit Excel Library

ActiveX参照の解放も参照してください。


新規ワークブックを開くには

新規Microsoft Excelワークブックを作成するには、Open New Workbookメニュー・オプションを使用します。

使用法

Call xlLib.NewWorkbookオブジェクトは、新規Excelワークブックを作成するUserFunctionを呼び出します。ワークブックの名前はそのブックのデフォルトの名前（例、Book8）になります。ワークブックの名前を指定したい場合は、xlLib.NewWorkbookの後にSaveWorkBookAsオブジェクトを使用するか、後でプログラムでSelectWorkbookを使ってワークブックを選択し、その後にSaveWorkBookAsを使用します。

場所

メイン・メニューの Excel [image] New WorkBook

関連項目

ワークブックを新しい名前とフォーマットで保存するには、既存のワークブックを開くには

例題8-1：ワークブックの処理方法


既存のワークブックを開くには

Open a Workbookは、Microsoft Excelのワークブック・ファイルを開きます。

オープン・ビュー・パラメータ

[Open Workbook]メニュー項目は、オブジェクトFile Name Selectionと、UserObject OpenWorkbookを含みます。OpenWorkBook UserObjectの中には、オブジェクトOpen Workbookと、UserFunction Call xlLib.OpenWorkbookRWへの呼び出しがあります。

File Name Selectionオブジェクトは、[Data] [image] [Dialog] [image] [File Name Selection]にある標準のオブジェクトです。このオブジェクトの詳細については、VEEオンライン・ヘルプを参照してください。

Open Workbookのオープン・ビュー・パラメータは次のとおりです。

  • ReadOnly -- ファイルを読み取り専用と書き込み可能のどちらで開くかを設定します。可能な値は、TrueまたはFalseです。デフォルトはFalseです

場所

VEEメイン・メニューの Excel [image] Open Workbook

関連項目

新規ワークブックを開くには、File Name Selection

例題8-1：ワークブックの処理方法


ワークブックを保存するには

Save Workbookメニュー項目は、ワークブックを上書きすることにより保存します。

使用法

Call xlLib.SaveWorkBook UserFunctionは、ワークブックを保存します。既存のワークブック・ファイルは上書きされます。

注記:これはすべてのワークブックを保存する機能ではありません。保存されるのはアクティブ・ワークブックだけです。

注意:[Settings] [image] [DisplayAlert]がFalseに設定されている場合、既存のファイルを上書きする際にプロンプトは表示されません。

場所

VEEメイン・メニューのExcel [image] Save Workbook

関連項目

例題 8-1:ワークブックの処理方法


ワークブックを新しい名前、フォーマット、場所で保存するには

この機能は、アクティブ・ワークブックを新しい名前で、新しいフォーマットで、または新しい場所に保存します。

使用法

SaveWorkbookAs UserObjectは、ワークブックを新しい名前で、新しいフォーマットで、または新しい場所に保存するために用いられます。Select Workbookの後でSave Workbook Asを呼び出します。Save Workbook Asはアクティブ・ワークブックに対してのみ動作します。

SaveWorkbookAsの入力ピンには、フル・パスとファイル名（ファイル名拡張子を含む）のテキスト定数または式を設定します。これは新しいファイル名です。

注意:SettingsオブジェクトでDisplayAlertsがFalseに設定されている場合、既存のファイルを上書きしようとしてもMicrosoft Excelの警告ダイアログは表示されません。

オープン・ビューには2つのオブジェクトがあります。Call xlLib.SaveWorkbookAsとWorkbook Typeです。

Workbook TypeレコードにはWorkbook Typeボタンがあります。Workbook Typeオプションは次のとおりです。

  • Normal -- NormalはMicrosoft Excelバージョン2000以上でファイルを保存するために用いられます。

  • CSV -- Comma separated valueファイル。このファイルは、列の区切り文字がカンマである点を除いて、Textファイルと同じ性質を持ちます。

  • MSDOSCSV -- MS-DOS comma separated valueファイル。

  • WINDOWSCSV -- Windows comma separated valueファイル。

  • Text -- テキスト・ファイル・フォーマットは、アクティブ・ワークシートのセルに表示されたテキストと値を保存します。データの列はタブで区切られ、データの行はキャリッジ・リターンで終わります。カンマを含むセルは、二重引用符で囲まれます。フォーマット、グラフィックス、オブジェクト、その他テキスト以外のワークシート内容は失われます。データを持つすべての行と、各セルのすべての文字が保存されます。セルに式があるが値がない場合、式がテキストで保存されます。ユーロ記号は疑問符に変換されます。

  • TextPrinter -- 印刷に適したテキスト・ファイルを出力します。新しいテキスト・ファイルでは、データの相対位置はスプレッドシートと同じになっています。それ以外はText出力に関する規則がすべて適用されます。

  • Excel9795 -- スプレッドシート・データをExcel 97/95と互換性のあるフォーマットで出力します。

  • xlHTML -- xlHTMLは、Excelスプレッドシート・データをHTMLに変換するコンバータです。

注記

同じファイル名に保存しようとした場合、ダイアログが表示されます。noを選択すると、VEEランタイム・エラーが発生します。このエラーを避けるには、常に固有の名前を指定するか、VEEのI/Oメニューの下のTo Fileオブジェクトを使用します。To FileでExecute Deleteトランザクションを使用してからファイルに書き込めば、エラーが発生したり、ダイアログが表示されてユーザの応答が必要になったりすることを避けることができます。

場所

VEEメイン・メニューのExcel [image] Save Workbook As

関連項目

例題8-1：ワークブックの処理方法


ワークブックを選択するには

このUserObjectは、現在開いているワークブックの中から1つのMicrosoft Excelワークブックを選択します。

使用法

ワークブックを開くには、Open Workbookオブジェクトを使うか、New Workbookの後でSave Workbook Asオブジェクトを使用します。プログラムの後の方で、SelectWorkbookオブジェクトを使って、使用したいワークブックを選択できます。入力ピンには、選択したいワークブックの名前を含むテキスト定数または式を接続します。ワークブックの名前は、開いているワークブックのフル・パス名またはワークブック名（.xlsファイル名拡張子を含む）、または追加されたワークブックの"Book1"などのワークブック名です。選択したワークブックがアクティブ・ワークブックになります。

注記

選択されたワークブックにはVEE Excel Settingsが適用されます。

デバッグのために、ワークブックを列挙したい場合があります。この機能では、現在開いているワークブックのリストが得られるので、選択しようとしているワークブックが存在するかどうかも調べられます。Enumerations [image] Enumerate Workbooksを参照してください。

場所

VEEメイン・メニューのExcel [image] Select Workbook

関連項目

例題8-1：ワークブックの処理方法


ワークブックを閉じるには

開いているMicrosoft Excelワークブックを1つまたはすべて閉じるには、Close a WorkbookおよびClose All Workbooksを使用します。

使用法

Close Workbookは現在選択されているワークブックを閉じるために、Close All Workbooksは開いているすべてのワークブック・セッションを終了するために使用します。

注意:ワークブックを閉じる際に、自動保存機能はありません。Excelワークブックに対して変更を行った場合、Save All WorkbooksまたはSave Workbook Asを呼び出して変更を保存する必要があります。

場所

VEEメイン・メニューのExcel [image] Close WorkbookまたはExcel [image] Close All Workbooks

関連項目

ワークブックを新しい名前、フォーマット、場所で保存するには、ワークブックを保存するには

例題8-1：ワークブックの処理方法


新規ワークシートを開くには

選択されたワークブックに新規ワークシートを作成するには、New Sheetメニュー・オプションを使用します。

使用法

シートの新しい名前を含むテキスト定数またはFormulaを作成します（名前に* % $ # @ ! .は使用できません）。それをNewWorksheet UserObjectの入力ピンに接続します。空文字列（""）を送ると、Excelがシートの名前を自動的に決めます。

新規ワークシートは自動的にアクティブ・ワークシートになるので、ワークシートを選択する必要はありません。

注記

NewWorksheetはアクティブ・ワークブックに対してのみ動作します。

場所

VEEメイン・メニューの Excel [image] New Sheet


シートを選択するには

Select Sheetメニュー・オプションは、ワークシートを選択するために使用します。

使用法

テキスト定数または式を使って、入力ピンにシート名を供給します。このシートが開いているワークブックのアクティブシートになります。

場所

VEEメイン・メニューの Excel [image] Select Sheet


Microsoft Excelのワークブック、ワークシート、項目を列挙するには

メイン・メニューのオプションEnumerationsには、4つの選択肢があります。Workbooks、Worksheets、Charts、Namesです。これにより、これらの項目のリストを作成し、数を数えることができます。

使用法

列挙オブジェクトはすべて同じ構造を持ちます。これらは2つの出力ピンを持つUserFunctionを呼び出します。上のピンは開いている項目の名前を1次元配列で出力します。下の出力ピンは、上の出力ピンの配列のサイズを出力します。

列挙が特に便利なのは、プログラム開発の際に、項目が使用可能かどうかを調べたい場合です。例えば、ワークブックが選択可能かどうかや、ワークシート、チャート、名前付き範囲が存在するかどうかを判定できます。

列挙はまた、英語版以外のMicrosoft Excelを使用している場合にも有効です。Microsoft Excelが使用しているワークシート名は、各言語で異なります。ワークシートの列挙を使えば、ワークシートの名前を知ることができます。例: BarChart.vee （examples\ExcelLibrary\BarChart.vee）で"Localize..." UserObjectを調べてみてください。

場所

VEEメイン・メニューのExcel [image] Enumerations [image] Enumerate Workbooks
VEEメイン・メニューのExcel [image] Enumerations [image] Enumerate Worksheets
VEEメイン・メニューのExcel [image] Enumerations [image] Enumerate Charts
VEEメイン・メニューのExcel [image] Enumerations [image] Enumerate Names

関連項目:


テキストをフォーマットするには

セル、範囲、名前付き範囲、行、列の中のテキストをフォーマットするには、Format Textメニュー・オプションを使用します。

使用法

FormatText UserObjectには、フォーマットする領域を受け取る入力ピンがあります。FormatText UserObjectには、セル、行、列、名前付き範囲、範囲を渡すことができます。セルのアドレス・フォーマットはa9（大文字小文字どちらでも可）であり、範囲はa9:j22のようになります。

FormatText UserObjectには、UserFunction xlLib.FormatTextとText Format Settingsオブジェクトへの呼び出しが含まれています。Text Format Settingsオブジェクトは、セル中のデータの外観を管理するために用いられます。例えば、フォント、太字やイタリックなどのフォント特性、配置、その他の機能です。詳細についてはオープン・ビュー・パラメータを参照してください。

セルの背景色、グリッド・ライン、数値フォーマットなどのセル背景パラメータをフォーマットするには、セルをフォーマットするにはを参照してください。

オープン・ビュー・パラメータ

Text Format Settingsレコード・オブジェクトのオープン・ビュー・パラメータは次のとおりです。

  • FontName -- デフォルトでは、フォントはCourier Newです。FontNameフィールドにフォント名を入力することにより、システムがサポートする任意のフォントを設定できます。

  • ForeColor -- デフォルトでは、前景色は黒です。前景色は46色の中から選択できます。

  • Bold -- 文字を太字にします。値は真または偽です。デフォルトはTrueです。

  • Italic -- 文字をイタリックにします。値は真または偽です。デフォルトはFalseです。

  • Underlined -- 文字を下線付きにします。値は真または偽です。デフォルトはFalseです。

  • Size -- ポイント・サイズは8～72ポイントの範囲です。デフォルトは14ポイントです。

  • HorizontalAlignment -- 可能な配置は、左、中央、右、行揃え、一般です。デフォルトはleft（左）ですGeneral（一般）フォーマットでフォーマットされた数値は、入力された通りに表示されます。ただし、セルの幅が数値全体を表示するのに十分でない場合、Generalフォーマットでは小数点付きの数値は丸められ、大きい数値には科学的記数法が用いられます。

  • VerticalAlignment -- 可能な配置は、上、下、中央です。デフォルトはbottom（下）です

  • WordWrap -- テキスト値をセル内で折り返します。テキストが隣の空白セルに越境することがなくなります。Wordwrapはテキスト値だけで動作します。

  • ShrinkToFit -- セルに合わせてテキストのフォント・サイズを縮小します。これが動作するのは、WordWrapがオフで、現在の値を現在のフォント・サイズで表示するのにセルが小さすぎる場合だけです。

場所

VEEメイン・メニューの Excel [image] Formatting [image] Format Text

関連項目

セルをフォーマットするには、サンプルFormatTextAllColors.vee


セルをフォーマットするには

Format Cellsメニュー・オプションは、セルのフォーマット条件をExcelに渡すために使用します。

使用法

Format Cells UserObjectは、セルのフォーマットをExcelに渡します。フォーマット対象として、1つのセル、列、行、名前付き範囲、セルの範囲を定義できます。

入力ピンは1つで、フォーマットするセルを指定する値を入力します。

このUserObjectの中には、xlLib.FormatCellsへの呼び出しとCell Settingsという名前のオブジェクトがあります。Cell Settingsには、セルを設定するためのすべてのフォーマット・オプションが含まれます。

セルの前景色、フォント、位置合わせなどのセル前景パラメータをフォーマットするには、テキストをフォーマットするにはを参照してください。

オープン・ビュー・パラメータ

  • BackColor -- セルの背景色。46色の中から選択できます。デフォルトはSeaGreenです。

  • NumberFormat -- 数値に適用されるフォーマット。指数表記、オプションの値を表すマスク（###.0）、数字または0の位置を表す0、パーセンテージ、通貨、一般、カスタムの中から選択できます。デフォルトの数値フォーマットはCustomです。General（一般）フォーマットでフォーマットされた数値は、入力された通りに表示されます。セルの幅が数値全体を表示するのに十分でない場合、Generalフォーマットでは小数点付きの数値は丸められ、大きい数値には科学的記数法が用いられます。英語版以外のMicrosoft Officeに関する問題については、下の注記を参照してください。

  • CustomNumberFormat -- ユーザが定義したカスタム数値フォーマット。

  • BorderEdges -- セルの境界を表示するにはいくつかの方法があります。

  • Grid -- Gridは、Excelスプレッドシートのセル・レイアウトに従い、各セルの上下左右の境界を表示します。

  • GridThickThin -- GridThickThinは、セルにMediumまたはThick境界がすでに設定されている場合でも、セルを再フォーマットしてThin境界にします。

  • Outline -- Outlineは、Excelスプレッドシートのセル・レイアウトに従い、各セルの上下左右の境界を表示します。

  • LeftRight -- LeftRightは、セルの左右に境界を設定します。

  • TopBottom -- TopBottomは、セルの上下に境界を設定します。

  • Top -- Topは、セルの上に境界を設定します。

  • Bottom -- Bottomは、セルの下に境界を設定します。

  • Right -- Rightは、セルの右に境界を設定します。

  • Left -- Leftは、セルの左に境界を設定します。

  • BorderThickness -- 境界の太さは3種類あります。Thin、Medium、Thickです。Thinは、ExcelのPage SetupでPrint Grid Linesを選択した場合よりも濃いセル境界になります。

  • Pattern -- Patternは、セルの背景を記述します。これはいくつかの方法で表示できます。

  • Solid -- Solidは、セルの背景を1色にします。

  • LightDots -- LightDotsは、Thin境界と同じサイズの点による背景です。

  • MediumDots -- MediumDotsは、Medium境界と同じサイズの点による背景です。点の密度はLightDotsの場合よりも高くなります。

  • Checkered -- Checkeredは、セルの背景を市松模様にします。これはセル境界に対して斜めの交差する平行線です。

  • Grid -- Gridも、セルの背景を市松模様にします。これはセルの縦と横の境界に対して平行な交差する平行線です。

  • VerticalBars -- VerticalBarsは、セルの側面に平行な縦線からなる背景です。

  • HorizontalBars -- HorizontalBarsは、セルの上下に平行な横線からなる背景です。

  • CrissCross -- CrissCrossは、つながった小さい×印からなる背景です。Checkeredオプションに似ていますが、×印の密度が高くなっています。

注記

NumberFormatは英語版以外のMicrosoft Officeでは動作しない場合があります。特に、ロシア語版のOffice 2003は"General"以外のNumberFormatの値を受け入れません。日本語版、ドイツ語版、スペイン語版、スウェーデン語版など、他の英語版以外のOfficeの多くは正しく動作するので、これはロシア語版のExcelに固有の問題と思われます。回避策としては、NumberFormatをFormulaのなかで自分で設定します。例えば、'aRange.NumberFormat = "0,00"のように、桁区切りと小数点を自分の国に合わせて設定します。

場所

VEEメイン・メニューの Excel [image] Formatting [image] Format Cells

関連項目

サンプルFormatCellsAllColors.veeを参照してください。

例題8-3：セルの書式設定


列を自動的にフィットするには

Auto Fit Columnsは、数値または短いテキストの説明に合わせて列幅を調整するために使用します。入力ピンは、セル、セル範囲、名前付き範囲を受け入れます。これは短いテキスト値を対象としており、長い説明テキストには使用できません。

場所

VEEメイン・メニューの Excel [image] Formatting [image] Auto Fit Columns


相対セル・アドレスに移動するには

アクティブ・セル・アドレスから基点に相対的なアドレスに移動します。

使用法

Cell Relativeには3つの入力ピンがあります。上のピンは、アクティブ・セル・アドレスです。中央のピンは、セル・ポインタを左または右に移動したい距離です。下のピンは、セル・ポインタを上または下に移動したい距離です。

デフォルトでは、正の数を指定するとセル・ポインタが右および下に移動します。セル・ポインタを上または左に移動するには、負の数を使用します。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Cell Relative

関連項目

絶対セル・アドレスに移動するには


絶対セル・アドレスに移動するには

CellAbsoluteオブジェクトは、アクティブ・セル・アドレスをスプレッドシート上の特定の位置に移動します。この位置は他の位置に対して相対的ではなく、CellAbsoluteに直接指定されます。

使用法

CellAbsoluteには2つの入力ピンがあります。上のピンはスプレッドシートの列、下のピンはスプレッドシートの行に対応します。どちらのピンにも数値を入力します。

出力ピンは1つです。このピンは、AlphaNumericオブジェクトと組み合わせたり、DataToCellsオブジェクトのアドレス・ピンなどの入力ピンにデータを供給したりするために使用できます。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Cell Absolute

関連項目

相対セル・アドレスに移動するには


最初の空行を検索するには

FindFirstEmptyRowオブジェクトは、指定した範囲内の最初の空行を検索します。

使用法

入力ピンは1つです。このピンは、空行を検索する範囲を定義するために用いられます。例えば、"A1:H60"と指定すると、行1～60の中で最初の空行が検索されます。

指定した範囲内に空行が存在する場合、その行の番号が返されます。存在しない場合、FindFirstEmptyRowオブジェクトは-1を返します。

Excelスプレッドシートで定義されている名前付き範囲を入力パラメータに使用することもできます。これはVEE実行モード6以上でのみサポートされます。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Find First Empty Row

関連項目

最初の空列を検索するには


最初の空列を検索するには

FindFirstEmptyColumnオブジェクトは、指定した範囲内の最初の空列を検索します。

使用法

入力ピンは1つです。このピンは、空列を検索する範囲を定義するために用いられます。例えば、"A1:H60"と指定すると、列A～Hの中で最初の空列が検索されます。

指定した範囲内に空列が存在する場合、その列の番号が返されます。存在しない場合、FindFirstEmptyColumnオブジェクトは-1を返します。Excelの [image] Navigation [image] Alpha Column from Numeric Columnを使って、FindFirstEmptyColumnから返された列番号アドレスを有効な行／列アドレスに変換できます。

Excelスプレッドシートで定義されている名前付き範囲を入力パラメータに使用することもできます。これはVEE実行モード6以上でのみサポートされます。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Find First Empty Column

関連項目

最初の空行を検索するには、列番号から列文字に変換するには


列番号から列文字への変換

列番号の入力を受け取って、対応するExcelの列参照文字に変換します。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Alpha Column from Numeric Column

関連項目

セルから行／列番号への変換


セルから行／列番号への変換

Excel方式のセル・アドレス入力に対応する行と列の番号を返します。範囲を入力した場合、左上のセルだけが用いられます。

場所

VEEメイン・メニューの Excel [image] Navigation [image] Numeric Row and Column from Cell

.


データ設定を送信するには

Send Data Settingsは、DataToCells呼び出しの配列の方向と多次元配列の処理を制御します。

オープン・ビュー・パラメータ

このUserObjectは、xlLib.SendDataSettings UserFunctionとSendDataSettingsオブジェクトの呼び出しから構成されます。SendDataSettingsオブジェクトには3つのパラメータがあります。

  • Orientation -- 配列のデータが流れる方向です。オプションには、Vertical（縦）とHorizontal（横）の2つがあります。例えば、1次元配列に対して横方向を選択するとデータの行が作成され、2次元配列に対して縦方向を選択すると2列のデータが作成されます。デフォルトはVerticalです

  • ThreeDArrays -- ExcelライブラリとDataToCellsが3次元配列を処理する方法を制御します。

  • CreateNewSheets -- 3次元配列のZ次元のそれぞれに対して新規ワークシートを作成します。各ワークシートには、2次元配列の1つが含まれます。

  • CopyStartingSheet -- 開始ワークシートのフォーマットをコピーし、3次元配列処理によって新規作成されたワークシートのそれぞれに適用します。これには、セルのフォーマット、グラフなどが含まれます。

  • UseSingleSheet -- 3次元データのすべてを1つのシートに配置し、2次元配列の間を空行で区切ります。

  • ZLabel -- 3次元配列の一部として表示される各2次元配列のラベルに使用されます。

注記

すべての3次元設定に関して、2次元配列が出力される際に、第3次元の現在の要素の値を含む行がその前に置かれます。

場所

VEEメイン・メニューの Excel [image] Send Data [image] Send Data Settings

関連項目

セルにデータを送るには


セルにデータを送るには

Data to Cellsは、VEEからExcelにデータを転送するために用いられます。

使用法

転送するデータは、スカラまたは3次元までの配列です。転送できないデータ型もあります。Complex、PComplex、Spectrum、Coordinate、Waveform、Object、Recordです。レコードをExcelに送るには、Send Data [image] Record to Named Rangesを使用します。上記のデータ型はDataToCells UserObjectでは直接サポートされませんが、これらすべてに対して回避策のサンプルが用意されています。\Program Files\Agilent\VEE Pro 8.5\Examples\ExcelLibrary\SendingDataディレクトリを参照してください。

DataToCellsには2つの入力ピンがあります。上のピンは、転送するデータを受け入れます。下のピンは、セル・アドレスを受け入れます。範囲または名前付き範囲を指定することもできますが、これらは無視され、アドレスの左上隅を使ってワークシート中のデータの位置が決定されます。例えば、C4:K22という範囲を使用すると、データ表示はC4から始まり、範囲の終了アドレスK22は無視されます。

範囲の終了アドレスは無視されるので、DataToCellsオブジェクトは境界を認識しません。10要素の配列をExcelの範囲B4:B8に送った場合、DataToCellsはB8の後の5つの値を上書きします。範囲の場合は最初の値だけが重要であることに注意してください。2番目の値は有効な境界とはなりません。

DataToCells関数は、SendDataSettingsオブジェクトに基づいて、配列を横方向または縦方向に配置します。セル範囲は無視され、範囲の最初の値だけが用いられるため、"A1:A11"と"A1:J1"のどちらを指定しても、データが行方向と列方向のどちらに配置されるかには無関係です。方向を指定するにはSendDataSettingsオブジェクトを使用します。

2次元および3次元の配列のサンプルも、Examples\ExcelLibrary\SendingDataディレクトリにあります。

場所

VEEメイン・メニューの Excel [image] Send Data [image] Data to Cells

関連項目

データ送信を設定するには、名前付き範囲にレコードを送信するには


名前付き範囲にレコードを送信するには

VEEのレコードをMicrosoft Excelの名前付き範囲に送信します。

使用法

Call SendRecord UserFunctionには、1つの入力ピンと2つの出力ピンがあります。

入力ピンは、Call SendRecord UserFunctionにVEEレコードを送るために用いられます。UserFunctionは、フィールド値を、VEE Excelライブラリの選択されたワークブックの対応する名前付き範囲に格納します。例えば、VEEフィールド名がreadingの場合、フィールド値はMicrosoft Excelワークシートのreadingという名前のセルに格納されます。

Microsoft Excelの名前付き範囲を作成するには、使用するセルのグループを強調表示し、[Insert] [image] [Name] [image] [Define]を選択します。範囲の名前を入力し、[Add]を選択します。[Define Range]ダイアログの右下隅にあるアイコン（ [image] ）を使って、指定されたセルと範囲定義ダイアログとを切り替えることができます。

2つの出力ピンは、存在しない名前とその数を報告するために用いられます。Missing Namesは、Microsoft Excelワークシートで定義された名前のうちVEEのフィールドに一致しないものがある場合に出力されます。すなわち、VEEのレコードが不完全か、Microsoft Excelワークシートの定義が正しくない場合に、このピンに値が出力されます。2番目のピンSizeは、単にMissing Namesの数を出力します。

場所

VEEメイン・メニューの Excel [image] Send Data [image] Record to Named Ranges

関連項目

セルにデータを送るには、データ送信を設定するには

例題8-4：Send Recordの使用法


折れ線グラフを作成するには

VEEから供給したデータに基づいてMicrosoft Excelで折れ線グラフを作成します。

フィールド

CreateLineChartは、xlLib.CreateLineChart(Data,Settings)への関数呼び出しと、レコード・オブジェクトLine Chart Settingsから構成されるUserObjectです。Line Chart Settingsには多数のフィールドがあります。そのリストを下に示します。

  • Title-- グラフのタイトル。タイトルは、グラフの境界線内の中央に表示されます。

  • TitleFont -- タイトルに用いるフォント。VEEでサポートされているフォントはすべて、ここで使用できます。VEEフォント・リストに表示されているとおりにフォントの名前を入力します。

  • TitleFontSize -- メニューに表示されているサイズの中から選択するか、Autosizeを選択します。Autosizeを選択した場合、Excelはサイズを自動的に選択します。

  • Type-- チャートの種類。

  • Line-- 標準的な折れ線グラフ。

  • Line with Markers -- 各データ・ポイントにマーカがある折れ線グラフ。

  • 3D Line-- 3次元の折れ線グラフの表示。

  • Logarithmic -- 各データ・ポイントにマーカがあるデータの対数表示。データにゼロまたは負の値があると、Excelライブラリが553エラーを生成します。英語版以外のMicrosoft Officeに関する問題については、下の注記を参照してください。

  • NumericMarkers -- データ・ポイント値をデータ・ポイントの横に配置します。

  • FillEffects -- グラフの背景に影響します。値をNoneに設定すると背景はグレーになります。値をTwo Colorに設定すると、背景はブルーとホワイトの混合になります。対数および3次元折れ線グラフは、このパラメータの影響は受けません。

  • Names-- 名前リストの各名前は、チャートの値の配列に適用されます。たとえば、正弦波値の配列、余弦波値の配列、方形波値の配列がある場合は、namesパラメータを使って凡例の中でこれらにラベルを付けることができます。10以上の配列がある場合は、名前のリストに値を追加します。

  • XaxisLabel -- チャートのX軸値のラベルを入力します。スペクトルや波形の場合、値を入力しないと、VEE Excelライブラリがタイム・スパン／周波数情報を複合してX軸ラベルを作成します。

  • YaxisLabel -- Y軸に対して任意の説明を入力します。

  • ChartSheet -- チャートを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • DataCell-- データ・ブロックの開始セル。

  • DataSheet -- データを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • PlotBy-- ColumnsまたはRowsを選択できます。これにより、チャートが列のデータに基づいて作成されるか、行のデータに基づいて作成されるかが決まります。VEEメイン・メニューのExcel [image] Send Data [image] Send Data Settingsからこれを設定することもできます。

  • Width-- チャートの幅を標準サイズを基準にしてスケーリングします。

  • Height-- チャートの高さを標準サイズを基準にしてスケーリングします。

  • MoveRight -- Excelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを右に移動することができます。負の数は、チャートを左に移動します。移動単位はピクセルです。

  • MoveDownExcelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを下に移動することができます。負の数は、チャートを上に移動します。移動単位はピクセルです。

注記

Line Chart設定は、ChartSheet設定を無視し、常にチャートを最初または最も左のシートに配置します。これに対する回避方法はありません。

ChartSheetおよびDataSheetの値は、デフォルトで"Sheet1"に設定されています。これは英語版以外のMicrosoft Officeの多くでは動作しません。例えば、ドイツ語版のMicrosoft Excelでは、デフォルト値は"Tabelle1"です。シート名を変更したい場合、これら2つの値を変更してください。デフォルト名を使用したい場合、ローカライズされた値を使用する簡単な方法があります。

LineChartSettingsオブジェクトと"Call xlLib.CreateLineChart"の間のラインを切断し、左下の"Localize..."オブジェクトの出力から"Call xlLib.CreateLineChart"の入力までラインを接続します。これにより、ChartSettingsRecordのChartSheetおよびDataSheetフィールドの値が、Microsoft Office Excelの任意のバージョンの最初の既存のワークシートに対応する値に変更されます。

Chart Type "Logarithmic"は、英語版以外のMicrosoft Officeの多くでは動作しません。動作させるには、Excelを開き、挿入 [image] グラフを実行し、「グラフ ウィザード」ダイアログで2番目のタブ「ユーザー設定」を表示します。対数のグラフの種類の綴りを確認してください。例えば、ドイツ語版Officeの場合は"Logarithmisch"です。

次に、Create Line Chartオブジェクトを開きます。左上近くに、説明と「xlApp.ActiveChart.ApplyCustomType(xlBuiltIn, "Logarithmic")」のような行が含まれる式があります。この式の説明に従ってください。

Excelは、このチャート・カスタム・タイプの文字列値として、Microsoft Officeのバージョンでローカライズされたものしか受け入れません。しかし、このローカライズされた名前をExcelから知ることはできません。したがって、Excelライブラリが自動的にこれを実行することはできません。

場所

VEEメイン・メニューの Excel [image] Create Chart [image] Create Line Chart

関連項目

棒グラフを作成するには、円グラフを作成するには, XY図表を作成するには、ActiveX参照の解放


XY図表を作成するには

VEEから供給したデータに基づいてMicrosoft ExcelでXY図表を作成します。

フィールド

CreateXYChartは、xlLib.CreateXYChart(Data,Settings)への関数呼び出しと、レコード・オブジェクトXY Chart Settingsから構成されるUserObjectです。XY Chart Settingsには多数のフィールドがあります。そのリストを下に示します。

  • Title-- グラフのタイトル。タイトルは、グラフの境界線内の中央に表示されます。

  • TitleFont -- タイトルに用いるフォント。VEEでサポートされているフォントはすべて、ここで使用できます。VEEフォント・リストに表示されているとおりにフォントの名前を入力します。

  • TitleFontSize -- メニューに表示されているサイズの中から選択するか、Autosizeを選択します。Autosizeを選択した場合、Microsoft Excelはサイズを自動的に選択します。

  • Type-- チャートの種類。

  • XYScatter-- 標準的なXY図表。

  • XYScatterLines -- 各データ・ポイントが線で結ばれているXY図表。データ・ポイントにはマーカが付きます。

  • XYScatterLinesNoMarkers -- 各データ・ポイントが線で結ばれているXY図表。データ・ポイントにはマーカが付きません。

  • XYScatterSmooth -- データ・ポイントが滑らかな線で結ばれたXY図表。データ・ポイントにはマーカが付きます。

  • XYScatterSmoothNoMarkers -- データ・ポイントが滑らかな線で結ばれたXY図表。データ・ポイントにはマーカが付きません。

  • XGridLines -- 2つの選択肢MajorとMinorがあります。Majorの場合はグリッド・ラインが少数しかありません。Minorの場合は多くのラインがあります。

  • YGridLines -- 2つの選択肢MajorとMinorがあります。Majorの場合はグリッド・ラインが少数しかありません。Minorの場合は多くのラインがあります。

  • Names-- 名前リストの各名前は、チャートの値の配列に適用されます。たとえば、正弦波値の配列、余弦波値の配列、方形波値の配列がある場合は、namesパラメータを使って凡例の中でこれらにラベルを付けることができます。10以上の配列がある場合は、名前のリストに値を追加します。

  • Scale-- ScaleはLinearまたはLogarithmicのどちらかです。Linearは通常の場合です。Logarithmicを選択すると、Y軸だけが対数スケールになります。0または負の値があるとエラーになります。

  • FillEffects -- グラフの背景に影響します。値をNoneに設定すると背景はグレーになります。値をTwo Colorに設定すると、背景はブルーとホワイトの混合になります。対数および3次元折れ線グラフは、このパラメータの影響は受けません。

  • XaxisLabel -- チャートのX軸値のラベルを入力します。

  • YaxisLabel -- Y軸に対して任意の説明を入力します。

  • ChartSheet -- チャートを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • DataCell-- データ・ブロックの開始セル。

  • DataSheet -- データを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • PlotBy-- ColumnsまたはRowsを選択できます。これにより、チャートが列のデータに基づいて作成されるか、行のデータに基づいて作成されるかが決まります。VEEメイン・メニューのExcel [image] Send Data [image] Send Data Settingsからこれを設定することもできます。

  • Width-- チャートの幅を標準サイズを基準にしてスケーリングします。

  • Height-- チャートの高さを標準サイズを基準にしてスケーリングします。

  • MoveRight -- Excelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを右に移動することができます。負の数は、チャートを左に移動します。移動単位はピクセルです。

  • MoveDownExcelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを下に移動することができます。負の数は、チャートを上に移動します。移動単位はピクセルです。

注記

ChartSheetおよびDataSheetの値は、デフォルトで"Sheet1"に設定されています。これは英語版以外のMicrosoft Officeの多くでは動作しません。例えば、ドイツ語版のMicrosoft Excelでは、デフォルト値は"Tabelle1"です。シート名を変更したい場合、これら2つの値を変更してください。デフォルト名を使用したい場合、ローカライズされた値を使用する簡単な方法があります。

"XY Chart Settings"オブジェクトと"Call xlLib.CreateXYChart"の間のラインを切断し、左下の"Localize..."オブジェクトの出力から"Call xlLib.CreateXYChart"の入力までラインを接続します。これにより、ChartSettingsRecordのChartSheetおよびDataSheetフィールドの値が、Microsoft Office Excelの任意のバージョンの最初の既存のワークシートに対応する値に変更されます。

場所

VEEメイン・メニューの Excel [image] Create Chart [image] Create XY Chart

関連項目

棒グラフを作成するには、折れ線グラフを作成するには、円グラフを作成するには


棒グラフを作成するには

VEEから供給したデータに基づいてMicrosoft Excelで棒グラフを作成します。

フィールド

CreateBarChartは、xlLib.CreateBarChart(Data,Settings)への関数呼び出しと、レコード・オブジェクトBar Chart Settingsから構成されるUserObjectです。Bar Chart Settingsには多数のフィールドがあります。そのリストを下に示します。

  • Title-- グラフのタイトル。タイトルは、グラフの境界線内の中央に表示されます。

  • TitleFont -- タイトルに用いるフォント。VEEでサポートされているフォントはすべて、ここで使用できます。VEEフォント・リストに表示されているとおりにフォントの名前を入力します。

  • TitleFontSize -- メニューに表示されているサイズの中から選択するか、Autosizeを選択します。Autosizeを選択した場合、Excelはサイズを自動的に選択します。

  • Type-- チャートの種類。

  • ColumnClustered -- PlotByが行で、データ値が同じ行から来る場合、縦棒が互いに隣り合って表示されます。PlotByが列の場合、配列の要素が隣り合う縦棒に表示されます。

  • ColumnStacked -- PlotByが行で、データ値が同じ行から来る場合、横棒が互いに隣り合って表示されます。PlotByが列の場合、各配列要素は縦の列として表示され、各要素に対してカラー・バンドが表示されます。

  • Stacked100 -- PlotByが行の場合、配列要素を1つの縦棒で表示します。配列要素は互いに加算され、各配列要素が全体に対する割合で表示されます。PlotByが列の場合、配列は縦の列として表示され、各要素に対してカラー・バンドが表示されます。

  • 3DColumn-- 3次元の縦棒で、PlotByが行の場合、最初の配列要素がいちばん前、以降の配列要素がその後ろに表示されます。PlotByが列の場合、各配列要素に複数の列からなる1つの行が対応します。

  • 3DColumnClustered -- PlotByが行で、要素が同じ行から来る場合、3次元の縦棒が互いに隣り合って表示されます。この表示の前面の行が配列要素です。PlotByが列の場合、各配列は、1つの配列要素が1つの列に対応する列の集合として表示されます。

  • 3DColumnStacked -- PlotByが行で、データ値が同じ行から来る場合、3次元の横棒が互いに隣り合って表示されます。PlotByが列の場合、各配列に対して1つの列、各配列要素に対して1つのカラー・バンドが存在します。

  • 3DStacked100 -- PlotByが行の場合、データを3次元の1つの縦棒で表示します。要素は互いに加算され、各要素が全体に対する割合で表示されます。PlotByが列の場合、各配列に対して1つの列、各配列要素に対して1つのカラー・バンドが存在します。

  • BarClustered -- PlotByが行で、データ値が同じ行から来る場合、横棒が互いに隣り合って表示されます。PlotByが列の場合、配列中の各要素に対して1つの横棒が存在し、棒は隣り合って表示されます。

  • BarStacked -- PlotByが行で、データ値が同じ行から来る場合、横棒が互いに重なり合って表示されます。PlotByが列の場合、各配列に対して1つの横棒、各配列要素に対してカラー・バンドが存在します。

  • BarStacked100 -- PlotByが行の場合、データを1つの横棒で表示します。配列要素は互いに加算され、各配列要素がデータ・ポイント要素の全体に対する割合で表示されます。PlotByが列の場合でも表示は同じです。

  • 3DBarClustered -- PlotByが行で、データ値が同じ行から来る場合、3次元の横棒が互いに隣り合って表示されます。PlotByが列の場合、各配列要素が1つの横棒で表され、配列は隣り合って表示されます。

  • 3DBarStacked -- PlotByが行または列で、要素が同じ行から来る場合、3次元の横棒が互いに重なり合って表示されます。PlotByが列の場合、各配列が1つの横棒で表され、配列要素はバンドで表され、重なり合って表示されます。

  • 3DStacked100 -- PlotByが行の場合、データを3次元の1つの横棒で表示します。配列要素は互いに加算され、各要素が全体に対する割合で表示されます。PlotByが列の場合、各配列が1つの横棒で表され、配列要素はバンドで表され、重なり合って表示されます。

  • NumericMarkers -- 要素の値をチャート中のマーカの横に配置します。

  • FillEffects -- グラフの背景に影響します。値をNoneに設定すると背景はグレーになります。値をTwo Colorに設定すると、背景はブルーとホワイトの混合になります。対数および3次元折れ線グラフは、このパラメータの影響は受けません。

  • XaxisLabel -- チャートのX軸値のラベルを入力します。

  • YaxisLabel -- チャートのY軸値のラベルを入力します。

  • ChartSheet -- チャートを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • DataCell-- データ・ブロックの開始セル。

  • DataSheet -- データを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • PlotBy-- ColumnsまたはRowsを選択できます。これにより、チャートが列のデータに基づいて作成されるか、行のデータに基づいて作成されるかが決まります。VEEメイン・メニューのExcel [image] Send Data [image] Send Data Settingsからこれを設定することもできます。

  • Width-- チャートの幅を標準サイズを基準にしてスケーリングします。

  • Height-- チャートの高さを標準サイズを基準にしてスケーリングします。

  • MoveRight -- Excelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを右に移動することができます。負の数は、チャートを左に移動します。移動単位はピクセルです。

  • MoveDownExcelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを下に移動することができます。負の数は、チャートを上に移動します。移動単位はピクセルです。

注記

ChartSheetおよびDataSheetの値は、デフォルトで"Sheet1"に設定されています。これは英語版以外のMicrosoft Officeの多くでは動作しません。例えば、ドイツ語版のMicrosoft Excelでは、デフォルト値は"Tabelle1"です。シート名を変更したい場合、これら2つの値を変更してください。デフォルト名を使用したい場合、ローカライズされた値を使用する簡単な方法があります。

"Bar Chart Settings"オブジェクトと"Call xlLib.CreateBarChart"の間のラインを切断し、左下の"Localize..."オブジェクトの出力から"Call xlLib.CreateBarChart"の入力までラインを接続します。これにより、ChartSettingsRecordのChartSheetおよびDataSheetフィールドの値が、Microsoft Office Excelの任意のバージョンの最初の既存のワークシートに対応する値に変更されます。

場所

VEEメイン・メニューの Excel [image] Create Chart [image] Create Bar Chart

関連項目

折れ線グラフを作成するには、円グラフを作成するには、XY図表を作成するには


円グラフを作成するには

VEEから供給したデータに基づいてMicrosoft Excelで円グラフを作成します。

フィールド

CreatePieChartは、xlLib.CreatePieChart(Data,Settings)への関数呼び出しと、レコード・オブジェクトPie Chart Settingsから構成されるUserObjectです。Pie Chart Settingsには多数のフィールドがあります。そのリストを下に示します。

  • Title-- グラフのタイトル。タイトルは、グラフの境界線内の中央に表示されます。

  • TitleFont -- タイトルに用いるフォント。VEEでサポートされているフォントはすべて、ここで使用できます。VEEフォント・リストに表示されているとおりにフォントの名前を入力します。

  • TitleFontSize -- メニューに表示されているサイズの中から選択するか、Autosizeを選択します。Autosizeを選択した場合、Microsoft Excelはサイズを自動的に選択します。

  • Type-- チャートの種類。

  • Pie-- 飾り気のない標準的な円グラフ。

  • Pie Exploded -- 円の各区分が中央から分割されていて、別々に見える円グラフ。

  • 3DPie-- 飾り気のない3次元円グラフ。

  • 3DPieExploded -- 円の各区分が中央から分割されていて、別々に見える3次元円グラフ。

  • PieOfPie-- 円グラフの円グラフ。通常は、1つめの円グラフの最も大きい区分が2つめの円グラフで細分化されます。

  • NumericMarkers -- 各データ・ポイントに数値がわかるようにマーカを配置します。

  • None-- マーカを表示しません。

  • Label- 各配列要素を使って円の区分にマーカを表示します。

  • Value-- 円の各区分にその元になった値のラベルを表示します。

  • Percent-- 円の各区分に全体に対するパーセンテージのラベルを表示します。

  • LabelAndPercent- 各配列要素とそのパーセンテージを使って円の区分にマーカを表示します。

  • NumericMarkersMore

  • LegendKey - 円の各要素のそばに説明のラベルを配置します。

  • LeaderLines - 円の各要素のラベルが混雑している場合は、引き出し線を選択できます。引き出し線とは、円の要素と説明ラベルを結ぶ線のことです。

  • LegendKeyAndLeaderLines - 説明ラベルに自動的に引き出し線を表示します。

  • None- 凡例情報を表示しません。

  • FillEffects -- グラフの背景に影響します。値をNoneに設定すると背景はグレーになります。値をTwo Colorに設定すると、背景はブルーとホワイトの混合になります。対数および3次元折れ線グラフは、このパラメータの影響は受けません。

  • ChartSheet -- チャートを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • DataCell-- データ・ブロックの開始セル。

  • DataSheet -- データを表示したい既存のシートの名前を入力します。英語版以外のMicrosoft Officeでのこの文字列のローカライズについては、下の注記を参照してください。

  • PlotBy-- ColumnsまたはRowsを選択できます。これにより、チャートが列のデータに基づいて作成されるか、行のデータに基づいて作成されるかが決まります。VEEメイン・メニューのExcel [image] Send Data [image] Send Data Settingsからこれを設定することもできます。

  • Width-- チャートの幅を標準サイズを基準にしてスケーリングします。

  • Height-- チャートの高さを標準サイズを基準にしてスケーリングします。

  • MoveRight -- Excelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを右に移動することができます。負の数は、チャートを左に移動します。移動単位はピクセルです。

  • MoveDownExcelは常に、ワークシートの同じ位置にチャートを配置します。このパラメータを使って、シートを下に移動することができます。負の数は、チャートを上に移動します。移動単位はピクセルです。

注記

ChartSheetおよびDataSheetの値は、デフォルトで"Sheet1"に設定されています。これは英語版以外のMicrosoft Officeの多くでは動作しません。例えば、ドイツ語版のMicrosoft Excelでは、デフォルト値は"Tabelle1"です。シート名を変更したい場合、これら2つの値を変更してください。デフォルト名を使用したい場合、ローカライズされた値を使用する簡単な方法があります。

"Pie Chart Settings"オブジェクトと"Call xlLib.CreatePieChart"の間のラインを切断し、左下の"Localize..."オブジェクトの出力から"Call xlLib.CreatePieChart"の入力までラインを接続します。これにより、ChartSettingsRecordのChartSheetおよびDataSheetフィールドの値が、Microsoft Office Excelの任意のバージョンの最初の既存のワークシートに対応する値に変更されます。

場所

VEEメイン・メニューの Excel [image] Create Chart [image] Create Pie Chart

関連項目

棒グラフを作成するには、折れ線グラフを作成するには、XY図表を作成するには


パネル・イメージをピクチャに送信するには

Microsoft ExcelにVEEのグラフィックをエクスポートします。

使用法

Panel Image to Pictureは、4つの入力ピンを持つUserFunctionです。

  • userFunctionName このUserFunctionからグラフィック・イメージが作成され、Microsoft Excelにイメージとして送られます。

  • upperLeftCellは、Microsoft Excelワークシートのグラフィックの開始点です。

  • relativeSizeXとrelativeSizeYは、グラフィックの高さと幅を調整するために使用します。値を1にすると、グラフィックは元のサイズの100%になります。値が1より小さいとグラフィックは縮小され、1より大きいと拡大されます。

注記

このUserFunctionは、VEEの組込み関数SavePanelImage()を呼び出します。BMPファイルはサイズが大きくなる場合があります。.jpgグラフィックを使用することをお勧めします。

場所

VEEメイン・メニューの Excel [image] Send Panel Image [image] Panel Image to Picture

関連項目

パネル・イメージ設定

例題8-5：パネル・イメージからExcelピクチャを作成する方法


パネル・イメージ設定

パネル機能に渡す色数とファイル・タイプを設定します。

使用法

Image Settingsオブジェクトには、2つのパラメータがあります。

NumberColors- デフォルトは256です。これはVEEの最大色数です。

FileSpecifier- グラフィックをExcelに転送するために使用するテンポラリ・ファイルです。ファイルの絶対パスを指定します。ファイル名は必ず拡張子付きで指定してください。拡張子によってファイル・フォーマットが決まります。空白にするとExcelライブラリは.jpgフォーマットを使用します。

場所

VEEメイン・メニューの Excel [image] Send Panel Image [image] Image Settings

関連項目

パネル・イメージをピクチャに送信するには


セルからデータをインポートするには

ExcelスプレッドシートからVEEにデータをインポートします。

使用法

Get Dataには2つのピンがあります。入力ピンは、セル、セル範囲、名前付き範囲を受け入れ、Excelからインポートするセルを識別するために用いられます。出力ピンはインポートされたデータを受け取ります。例えば、このピンに接続された英数字オブジェクトには、インポートされた値が表示されます。

セルに定数が含まれる場合、その値が返されます。セルが空の場合、空文字列が返されます。セルに式が含まれる場合、その式が文字列として、数式バーに表示されるのと同じ形式で（等号を含めて）返されます。

ActiveXサーバからデータを取得する動作は、VEEの実行モード5と実行モード6とで異なります。具体的には、データの配列を取得する際のデータ型変換が実行モード6で改善されています。DataFromCellsの呼び出しの結果は、実行モード5と実行モード6で異なる可能性があります。Agilent VEE 6.0の更新情報の「機能拡張」のセクションを参照してください。項目名はバリアントからVEEデータ型への変換 - 配列処理の改善です。

注記

Get Dataは、1024文字より長い文字列を含むセルを処理できません。これはMicrosoft Excelオブジェクト・ライブラリの制限によります。

このようなセルからデータを取得する必要がある場合、Formula中で&ldquo;xlApp.Range(Cell).Value&rdquo;を使用する方法があります。

場所

VEEメイン・メニューの Excel [image] Get Data [image] Data from Cells


セル式を評価するには

セル式の結果を返します。

使用法

1つのセル・アドレスを入力します。Evaluate Cell Formulaは、そのセルの式の結果を返します。

場所

VEEメイン・メニューの Excel [image] Get Data [image] Evaluate Cell Formula


配列を検索するには

VEE Excelライブラリには、Search Arrayというユーティリティがあります。1次元配列の場合、Search Arrayは指定された検索値のインデックスを返します。

2次元配列の場合、Excelライブラリは指定された値をインデックス値として使用し、対応する[n,1]要素を返します。例えば、[0,22], [1,24], [2,26]という値の2次元配列があるとします。2を検索すると24が返されます。24が配列の2番目の要素だからです。

場所

VEEメイン・メニューの Excel [image] Utilities [image] Search Array


文字列置換を使用するには

文字列の一部を別の文字列の部分に置き換えるために用いられます。文字列置換で大文字と小文字を区別するかどうかを指定できます。

使用法

stringReplaceは、開いているワークブックを必要としません。stringReplace UserObjectには4つの入力ピンがあります。

  • string - 変更される文字列。
  • outSubString - 除去される副文字列
  • inSubString - outSubStringの代わりとなる副文字列。
  • caseSensitive - 0を指定すると大文字と小文字は区別されません。1を指定すると、inSubStringとoutSubStringの比較で大文字と小文字が区別されます。一致しない場合、置換は実行されません。性能を高めるには、可能な限り大文字と小文字を区別して置換するようにします。

場所

VEEメイン・メニューの Excel [image] Utilities [image] String Replace


印刷設定を指定するには

このUserObjectは、印刷のためにプリンタを準備するために使用します。

オープン・ビュー・パラメータ

PrintSettings UserObjectは、PrintSettings UserFunctionとPrint Settingsオブジェクトの呼び出しから構成されます。Print Settingsレコード・オブジェクトには、プリンタの設定に必要なすべてのオープン・ビュー・パラメータが含まれます。

  • PrintCopies -- このフィールドでは、印刷部数を設定します。少なくとも1部を印刷する必要があります。

  • ActivePrinter -- プリンタ名を入力します。空白にしておくと、デフォルトのプリンタまたはExcelが前回使用したプリンタが用いられます。例えば、\\servername\printernameです。

  • PrintFromPage -- 印刷ジョブはここで選択したページから開始されます。デフォルトは1です。

  • PrintToPage -- 印刷ジョブはこのページで終了します。デフォルトは32767です。

注記

英語版以外のOfficeでは、デフォルトの用紙サイズの選択で問題が生じる場合があります。Excel 2002では、この問題を修正するために、プロパティApplication.MapPaperSizeが追加されました。Excelライブラリを使用しているVEEプログラムでは、これは"xlApp.MapPaperSize"となります。このプロパティが真に設定されている場合、Excel 2002以降のバージョンは各国の標準の用紙サイズに自動的に切り替えます。Agilentのテストによれば、MapPaperSizeプロパティはExcel 2002および2003ではデフォルトで真ですが、デフォルト値はドキュメントには記述されていません。

場所

VEEメイン・メニューの Excel [image] Printing [image] Print Settings

関連項目

ワークブックおよびワークシートを印刷するには、印刷ジョブをプレビューするには、ActiveX参照の解放


印刷ジョブをプレビューするには

アクティブ・ワークシートをExcelの印刷プレビュー画面に読み込みます。

注記

プリント・プレビュー画面から印刷を実行し、プログラムの後の方に同じワークシートに対するPrint Worksheetオブジェクトが存在する場合、ワークシートは2回印刷されます。

Print Previewは自動的にMicrosoft Excelを表示します。

場所

VEEメイン・メニューの Excel [image] Printing [image] Print Preview

関連項目

ワークブックまたはワークシートを印刷するには、印刷設定を指定するには


ワークブックおよびワークシートを印刷するには

アクティブ・ワークブックまたはワークシートを印刷します。

使用法

Print UserObjectには、Printレコード・オブジェクトと、xlLib.Print UserFunctionへの呼び出しが含まれます。

Printオブジェクトには、ワークシートかワークブックのどちらかを選択するためのドロップダウン・メニュー項目があります。

場所

VEEメイン・メニューの Excel [image] Printing [image] Print Workbook or Worksheet

関連項目

印刷設定を指定するには、印刷ジョブをプレビューするには


ExcelライブラリFAQ

問:ActiveXオートメーションをExcelライブラリと併用することはできますか?

答:はい。Microsoft Excelアプリケーション・オブジェクトにアクセスすることにより、VEE Excelライブラリが備えていない機能をVEEアプリケーションから利用できます。VEE Excelライブラリを初期化した後、プログラムでグローバルxlAppオブジェクト（Excelアプリケーション）を使用できます。例えば、xlApp.ActivePrinterをFormulaオブジェクトで使用することにより、デフォルトのプリンタ名を読み取ることができます。なお、既存の変数に'xlApp'という名前のものがある場合は、名前を変更するか、スコープをローカルにする必要があります。

問: VEE Excelライブラリのユーザ関数を直接呼び出すことはできますか?

答: これはサポートされていません。関数はドキュメントに記載されておらず、VEE ExcelライブラリへのサポートされるインタフェースはVEE Excelライブラリ・メニュー項目だけです。

問:起動時に、VEEが実行中のExcelのインスタンスを使用する場合と、別のインスタンスを作成する場合とがあります。これはなぜですか?

答:Excelのインスタンスが存在する場合、VEE Excelライブラリは起動時にそれを再使用しようとします。Excelが編集モードにある場合、すなわちセルが編集中で、ユーザがまだEnterを押していない場合、VEE ExcelライブラリはExcelのそのインスタンスと通信できません。このような場合はExcelはActiveXオートメーションに応答しないので、VEE ExcelライブラリはExcelの別のインスタンスをロードします。VEE Excelライブラリを使用したVEEプログラムを実行している間は、Excelを対話的に使用するのは避けるのが最善です。

問:Excelが最初に表示されないのはなぜですか?

答:xlLib.Initializeが呼び出されたときに、Excelは表示されないように設定されています。その理由は、ほとんどの自動化アプリケーションでは、ユーザの操作は不要だからです。ユーザがセルを編集した場合、Enterを押すまでの間は、VEE Excelライブラリは続行できなくなります。Excelを表示するには、xlLib.Settingsオブジェクトを使って、visibleをTrueに設定します。

問:VEE Excelライブラリ内部で発生するエラーをトラップするエラー・ハンドラを作成するにはどうしたらいいですか?

答:エラーを処理するUserFunctionを必要な数だけ作成します。グローバルなテキスト変数'userErrorHandler'を定義し、その値を現在使用したいエラー・ハンドラUserFunctionの名前に設定します。'userErrorHandler'が定義されて呼び出し可能な場合、VEE Excelライブラリ内部で発生するほとんどのエラーに対して、VEE Excelライブラリのエラー・ハンドラは実行されなくなります。

エラー・ハンドラUserFunctionは、エラー・メッセージとエラー番号のための2つのデータ入力を持つ必要があります。エラー・ハンドラUserFunctionはデータ出力を持つことはできません。また、エラー・ハンドラ関数が呼び出されるためには、VEE ExcelライブラリのSettingsオブジェクトを（Excelエラーが発生する前に）プログラムで使用し、ErrorActionをRaiseErrorに設定する必要があります。

問:英語版以外のExcelを使用していて、チャート作成時にVEE Excelライブラリがエラーを発生します。どうしたらいいですか?

答:Microsoft Excelでは、使用する言語バージョンに応じてワークシートの名前が異なります。VEE Excelライブラリはデフォルトで英語版を仮定します。この問題に対しては簡単な回避策があります。BarChart.vee サンプル・プログラム（examples\ExcelLibrary\BarChart.vee）を参照してください。

問:ExcelがExcelライブラリに制御されている間にセルにテキストを入力しました。すると不規則で奇妙なエラーが発生します。

答:Microsoft Excelは、リモート制御されている間は入力を受け付けません。ExcelがExcelライブラリに制御されている間に入力を行うと、不規則で異常な結果が生じます。

ActiveX参照の解放も参照してください。


Vxlの変更

VxlとExcelライブラリの違い

このファイルでは、Vxl 2.0のユーザがVxl 2.0プログラムをVEE 7.5または上でVEE7.5以上のExcelライブラリで使用する場合の問題を記します。

現在のVxlプログラムに影響しない変更:

A. ExcelライブラリのUserFunctionライブラリ・ファイルExcelLibrary.vxeのコピーが、古いVxl 2.0の場所~installDir\lib\vxl\vxlLibrary.vxeにインストールされています。Vxl 2.0プログラムは、古い場所に新しいライブラリが見つかるので動作します。新しい場所~installDir\lib\ExcelLibrary\ExcelLibrary.exeを使用するようにプログラムを変更することをお勧めします。

B. 下の表に示す7つの関数の名前が変更されていますが、古い関数名も残されています。これらの古い関数は単に新しい関数を呼び出すだけであり、そのパネルには旧式の関数であることが記されています。このため、Vxl 2.0のプログラムはそのまま動作しますが、これらの関数名は将来廃止される可能性があります。

C. もう1つの旧式の関数として、Vxl 1.0の時代から残されているOpenがあります。これにより、Vxl 1.0のプログラムも変更なしに動作します。Vxl 1.0のOpenはVxl 2.0でOpenRWに名前が変更され、ExcelライブラリではOpenWorkbookRWになりました。

D. メニューのいくつかの項目名が変更されています。例えば、Data From CellsはGet Dataに、Initialize VxlはInitialize Excel Libraryに変更されました。新しい名前はVxlプログラムには影響を与えません。

E. メニュー・オブジェクトを作成するためにメニューで使用される.veeファイルの名前が変更されましたが、これはプログラムには影響しません。例えば、Save.veeはSaveWorkbook.veeに変更されました。下の4を行っている場合を除いて、これは影響がありません。

F. メニューのいくつかの項目が移動されています。例えば、メニューのいちばん下にあった[About Vxl]は、いちばん上に移動されています（名前も[What is this menu?]に変更されています）。

G. Vxlサンプルは以前は~installDir\examples\Vxl\にインストールされていましたが、現在は~installDir\Examples\ExcelLibrary\にインストールされています。

H. UserFunctionライブラリ中のプライベートUserFunctionの名前が変更されています。プライベートUserFunctionは、メニュー項目からは呼び出されず、ライブラリ内部だけから呼び出されます。これらの関数名の変更はドキュメントには記載されません。実際には、プライベート関数の名前はすべてzzInternalで始まるように変更されました。これは、これらの関数が直接呼び出すものではないことを明確にするためです。

I. 削除されたサンプルはありません。削除されたのはFourInARow.xlsゲームだけですが、これはVEEプログラムではありません。すべてのサンプルは名前が変更され、名前の先頭のExampleが取り除かれました。また、いくつかのサンプルは内容がわかりやすいように名前が変更されています。

Vxlプログラムに影響する可能性がある変更:

1. メイン・メニュー、[Initialize Vxl] [image] [Import Library] [image] [Library]. vxlの名前がxlLibに変更されました。これは、ライブラリへのすべての呼び出しで用いられます。例えば、vxl.Initializeへの呼び出しはxlLib.Initializeへの呼び出しに変わりました。ここに記載された他の影響がある変更に関してのみプログラムを修正する場合、この名前変更自体は影響がなく、プログラムはVEE 7.5でもそのまま動作します。ただし、プログラムを変更してExcelメニューの他のオブジェクトを追加した場合、新しいオブジェクトは動作しません。Excelメニューから作成したすべての新しいオブジェクトを変更して古いvxl名を使用するようにするか、既存のプログラムを変更して新しいxlLib名を使用するようにするか、どちらかを行う必要があります。

2. xlという名前のインポートされたグローバルの名前は、xlAppに変更されました。デフォルトでは、これを直接使用するメニュー項目はありません。したがって、プログラムが影響を受けることはほとんどありません。ただし、いくつかのサンプルではこれが使用されています。また、メイン・メニュー項目SettingsのNotepadエントリには、これを直接使用する方法が記載されています（例、set xl.DisplayAlerts=False）。これを使用した場合、すべての使用箇所をxlApp.DisplayAlerts=Falseのように変更する必要があります。

3. Vxlメニューをカスタマイズした場合、VEE 7.5/8.0のExcelメニュー・ファイルに対して同じことを最初からやり直す必要があります。これは、上記（E）の変更によります。

4. ライブラリ中のプライベートUserFunctionを呼び出している場合、上記（H）の名前変更によってプログラムに影響が生じます。

変更一覧

変更箇所は黄色で強調表示されています。

Vxlメニュー項目名 | Excelメニュー項目名 | Vxl UserFunction名 | VEE 7.5/8.0 ExcelライブラリUserFunction名 | 備考
 | QuickStart / ShortCuts |  |  | 7.5で導入
Initialize Vxl | Initialize Excel Library | Initialize | Initialize | 影響のある変更（1）を参照
Open Workbook | Open Workbook | OpenRW | OpenWorkbookRW | UserFunctionの名前変更
Navigation -> Alpha Column From Numeric Column | Navigation -> Alpha Column From Numeric Column | vxlData2CellsAlpha ColFromNumericCol | AlphaColFrom NumericCol | UserFunctionの名前変更
Navigation -> Numeric Row and Column From Range | Navigation -> Numeric Row and Column From Range | vxlData2CellsNumeric RowColFromRange | NumericRowCol FromCell | UserFunctionの名前変更
Send Data -> Data To Cells | Send Data -> Data To Cells | Data2Cells | DataToCells | UserFunctionの名前変更
Send Panel Image -> Panel Image to Picture | Send Panel Image -> Panel Image to Picture | PanelImage2Picture | PanelImageToPicture | UserFunctionの名前変更
Data From Cells -> Evaluate Cell Formula | Get Data -> Evaluate Cell Formula | EvalScalar | EvalCellFormula | UserFunctionの名前変更
Quit Vxl | Quit Excel Library | QuitVxl | QuitExcelLibrary | UserFunctionの名前変更
Utilities -> Iterate Record | Utilities -> Iterate Record | <なし> | <なし> | 7.5で導入

関連項目

ActiveX参照の解放


Agilent VEEにおけるプログラムのデバッグ方法

VEEは、プログラムの開発時や実行時にエラー・メッセージを表示します。 次のような警告、エラー、情報メッセージが表示されます。

プログラム実行時に、タイトルが黄色の[Caution]ボックスが表示される場合があります。

プログラム実行時に、タイトルが赤い[Error]ボックスが表示される場合があります。

プログラム作成中に誤りがあった場合、例えばInt16 Constantに範囲を超える値33000を入力したような場合、タイトル・バーが濃紺の[Error]メッセージ・ボックスが表示されます。

また、ステータス・バーにエラーや警告についての情報が表示されます。ステータス・バーはVEEウィンドウの最下部にあります。

関連項目

データ・フローとプログラム実行を表示するには

ブレークポイントを制御するには

プログラムをステップ実行するには

Call Stackを表示するには

ライン上のデータを表示するには

端子を調べるには

Alphanumericを使ってデータの流れを追跡するには

ラインの端点を見つけるには

エラーをトラップするには

エラーを解決するには

エラーの場所を見つけるには

最後のエラーを表示するには

オブジェクト内部のイベントの順序を追跡するには

プログラム内のオブジェクトの実行順序を追跡するには

複雑なプログラム内のオブジェクトを検索するには


データ・フローとプログラム実行を表示するには

VEEプログラムの実行中に、データ・フローとプログラム実行フローを詳細ビューに表示できます。データ・フローとプログラム実行は、メイン・ウィンドウと、UserObjectおよびUserFunctionの編集ウィンドウに表示されます。

データおよび実行フローを表示するには

1. 目的のコンテキストの詳細ビューに切り替えます。

2. ツールバーのShow Data FlowおよびShow Execution Flowボタンをクリックします。

Show Data Flowボタン

Show Execution Flowボタン

3. プログラムを実行すると、データおよび実行フローが表示されます。

データ・フローはラインに沿って移動する小さい四角のマーカで示されます。これらのマーカは、データ・コンテナを表します。マーカの移動速度を変更する方法については、次の項目を参照してください。

実行フローは、動作しているオブジェクトが強調表示されることによって示されます。強調表示は、実行中のオブジェクトの周りの明るい緑の輪郭線です。オブジェクトが実行を終了すると強調表示は暗い緑に変わります。

データ・フロー速度を変更するには

1. FileメニューでDefault Preferencesを選択します。

2. GeneralタブのDebugグループで、Data Flow Rateの矢印をクリックしてドロップダウン・リストを表示します。レートは1（最低速）から10（最高速）までの間で設定できます。

3. 変更を新しいデフォルトVEE.RCとして保存するには、Saveをクリックします。変更を現在のVEEセッションだけで（File [image] New、Open、Exitを選択するまで）使用するには、OKをクリックします。

ヒント

データ・フローと実行フローは、それぞれ1つだけをオンにして独立に表示することもできます。

これらの機能は、プログラムが実行中かどうかに関わらずいつでもオン／オフできます。

これらのデバッグ機能は、不要なときには必ずオフにしてください。プログラムの実行速度が大幅に低下します。

Show Data FlowおよびShow Execution Flowコマンドは、Debugメニューにあります。コマンドの隣にチェック・マークが付いている場合、機能はオンになっています。

VEE 4以上の実行モードでは、Disable Debug Featuresデフォルト設定がオンになっている場合、デバッグ機能はオフになります。

関連項目

Default Preferences

Call Stackを表示するには


ブレークポイントを制御するには

ブレークポイントをプログラム中のオブジェクトに設定した場合、そのオブジェクトが動作する直前でプログラムは休止します。その後、Line Probeを使って各ライン上のデータ・コンテナを観察したり、プログラムをステップ実行（Step）または再開（Resume）したりできます。選択したオブジェクトのブレークポイント設定を切り替えたり、プログラム全体のブレークポイントを制御したりするコマンドが用意されています。

ブレークポイントを切り替えるには

1. ブレークポイント設定を変更したいオブジェクトを選択します。オブジェクトを選択するには、Ctrlキーを押しながら、マウスの左ボタンでオブジェクトをクリックします。

2. ツールバーの[Toggle Breakpoint]ボタン（[Debug] [image] [Toggle Breakpoint]）をクリックします。選択したオブジェクトのブレークポイント設定が切り替わります。ブレークポイントが設定されていた場合はクリアされ、オブジェクトの強調表示の輪郭線が消えます。ブレークポイントがクリアされていた場合は設定され、オブジェクトに強調表示の輪郭線が付きます。

[Toggle Breakpoint]ボタン

3. プログラムを実行します。ブレークポイントが設定されたオブジェクトの直前でプログラムが休止します。

4. 続行するには、次のプログラム・コントロール・ボタンのどれかをクリックします。

[Resume]ボタンは実行を再開します。

[Step Into]ボタンはUserObjectまたはUserFunction内部のステップ実行を開始します。

[Step Over]ボタンは次のオブジェクトまでステップ実行します。

[Step Out]ボタンはUserObjectまたはUserFunctionから外へステップ実行します。

[Stop]ボタンはプログラムを停止します。

すべてのブレークポイントをアクティブにするには

1. [Debug] [image] [Activate Breakpoints]をクリックします。

メニュー・コマンドの隣にチェック・マークが付いている場合、プログラムを実行したときに、設定されているすべてのブレークポイントがアクティブになることを示します（デフォルト）。

すべてのブレークポイントをクリアするには

1. [Debug] [image] [Clear All Breakpoints]をクリックします。

プログラム中のすべてのブレークポイントがクリアされ、オブジェクトの強調表示の輪郭線が消えます。

ショートカット

ブレークポイントを切り替えるにはCTRL+Bを押します。

ヒント

オブジェクトのブレークポイントを制御するには、オブジェクト・メニューの[Properties]を使うこともできます。[Behavior]カテゴリで、[BreakpointEnabled]をTrueまたはFalseに変更すると、オブジェクトのブレークポイントを設定またはクリアできます。

VEE 4以上の実行モードでは、デフォルト設定のDisable Debug Featuresがオンになっている場合、デバッグ機能は無効になります。

関連項目

Call Stackを表示するには

Default Preferences


プログラムをステップ実行するには

ツールバーの3つの[Step]ボタンと、その他のプログラム・コントロール・ボタンを使って、プログラム内のオブジェクトを1つずつ実行できます。次のプログラム・コントロール・ボタンがあります。

[Step Into]ボタン

[Step Over]ボタン

[Step Out]ボタン

[Run/Resume]ボタン

[Pause]ボタン

[Stop]ボタン

プログラム・コントロール・ボタンの相互作用

停止中のプログラムで、最初に[Step]ボタンをクリックすると、PreRunが行われます。[Step Into]ボタンをクリックすると、各オブジェクトが順番に実行されます。黄色の輪郭線で強調表示されたオブジェクトが次に実行されます。

[Step Into]ボタン

ブレークポイントが有効になっているプログラムを実行すると、PreRunが行われ、プログラムはブレークポイントまで実行されます。そこから、[Step Into]ボタンを使って、各オブジェクトを順番に実行できます。

[Step Into]ボタン

プログラムのステップ実行中の任意の時点で、[Resume]ボタンをクリックしてプログラムの実行を継続できます。プログラムを休止するには、[Pause]ボタンをクリックします。その後、プログラムを停止すると、再開したときにPreRunが行われます。

[Resume]ボタン

[Pause]ボタン

UserObjectまたはUserFunctionのステップ実行

3種類の[Step]ボタンを使って、プログラム内のUserObjectやUserFunctionなどの他のコンテキストのステップ実行方法を制御できます。

[Step Into]は、コンテキスト内部をステップ実行するためのもので、詳細ビューの編集ウィンドウを開いて、その内部のオブジェクトをステップ実行できるようにします。

[Step Over]はコンテキスト全体を実行し、プログラム内の次のオブジェクトまでステップ実行します。

[Step Out]は、現在ステップ実行中のコンテキストの残りのオブジェクトをすべて実行し、コンテキストから出て、プログラム内の次のオブジェクトまでステップ実行します。

ヒント

VEE 4以上の実行モードでは、デフォルト設定のDisable Debug Featuresがオンになっている場合、デバッグ機能は無効になります。

関連項目

Call Stackを表示するには

Default Preferences


Call Stackを表示するには

[Call Stack]ツール・ウィンドウ（[View] [image] [Call Stack]）を使って、休止中のプログラムで次に実行されるオブジェクトと呼出し コンテキストを表示できます。Call Stackは、プログラムのステップ実行中やブレークポイントの使用時に開いておくと便利です。Call Stackを開いたり閉じたりするには、プログラムが休止または停止しているときにメニューまたはツールバー・ボタンを使用します。

[Call Stack]ボタン

[Call Stack]ツール・ウィンドウには、現在のUserObjectsまたはUserFunctionsの呼出しが入力変数を含めて表示されます。下の図は、Call Stackとサンプル・データを示します。次に実行されるオブジェクトはUserObject Gen Sine Wavesに含まれ、このUserObjectはメイン・プログラムに含まれています。Gen Sine Wavesには、3つの入力Freq1、Freq2、Phaseがあります。

プログラム・コントロールとの相互作用

Call Stackが開いている場合、プログラムの休止中だけ情報が表示されます。プログラムの実行中または停止中には情報は表示されません。

プログラムが休止するたびに、Call Stackは自動的に更新され、プログラムの実行フローと同期します。

Call Stackは、次の原因でプログラムが休止したときに情報を表示します。

[Pause]ボタンが押されたとき

[Step Into]、[Step Over]、[Step Out]ボタンが使用されたとき

ブレークポイント設定

プログラム実行エラー

Call Stack内容へのアクセス

プログラムが休止しており、Call Stackが開いている場合、現在のコンテキストが表示され、次に実行されるオブジェクトが強調表示されます。

現在のCall Stackリスト中のコンテキストにアクセスするには、コンテキスト名をダブルクリックすると、プログラムがそのコンテキストを表示します。

関連項目

データ・フローとプログラム実行を表示するには

ブレークポイントを制御するには

プログラムをステップ実行するには


ライン上のデータを表示するには

Line Probeコマンド（Debug [image] Line Probe）を使って、任意のVEEデータ・ライン上で渡されたデータ・コンテナを表示できます。プログラムは休止または停止している必要があります。

ラインをすばやくプローブするには、マウス・ポインタを目的のラインの上に移動します。ポインタの形が変わり、データの概要を示すライン情報が表示されます。ラインをクリックすると、下の図に示すLine Valueボックスが表示されます。

データが伝送されていない（またはシーケンス・ピンの"ping"が伝送された）ラインをプローブすると、Line Valueダイアログ・ボックスにはNil (empty) containerと表示されます。


端子を調べる

端子を調べるには

端子を調べるには、オープン・ビューで端子をダブルクリックします。オブジェクトがアイコン化されている場合は、マウス・ポインタを端子上に置くと、端子の名前が自動的にポップアップ表示されます。


デバッグのためのAlphanumeric表示オブジェクトの使用

デバッグのためにAlphanumeric表示オブジェクトを使用するには

プログラム内のさまざまな場所にAlphanumericまたはLogging Alphanumeric表示オブジェクトを追加すると、データの流れを追跡できます。プログラムが正しく動作するようになったら、これらのオブジェクトは削除します。AlphaNumericは、単一のデータ・コンテナ（Scalar、Array 1D、Array 2D）を表示します。 Logging AlphaNumeric（Scalarまたは Array 1D）は、連続した入力値を値の履歴として表示します。また、Counterを使用してオブジェクトの実行回数を表示することもできます。


ラインの端点を見つけるには

ラインをトレースして端点を表示するには、Line Probeコマンド（Debug [image] Line Probe）を使用します。プログラムは休止または停止している必要があります。

ラインをすばやくプローブするには、マウス・ポインタを目的のラインの上に移動します。ポインタの形が変わり、ラインとその端点が強調表示されます。ラインをクリックするとデータ・コンテナを見ることができます。


エラーをトラップするには

通常、VEEのエラーはすべてError Messageダイアログ・ボックスで報告されます。特定のオブジェクトから発生するエラーをトラップするには、そのオブジェクトにError出力端子を追加します。

Error出力端子をオブジェクトに追加するには、オブジェクト・メニューからAdd Terminal [image] Error Outputを選択します。

Error出力端子を持つオブジェクトがエラーを発生した場合、通常のVEEのError Messageダイアログは表示されません。その代わりに、Error端子にプログラムが処理すべきエラー番号が出力されます。

Error出力端子には様々な使用法があります。

Error出力を使って、Raise Errorなどの別のオブジェクトをアクティブにできます。

If/Then/Elseを使って、エラー番号に基づいて操作を決定できます。

errorInfo()を使って、最後にトラップされたエラーのエラー情報を表示できます。

例

プログラムmanual37.veeを開きます。 このプログラムはmanualサンプル・ディレクトリにあります（Help [image] Open Example...）。これには、エラーをトラップするためのいくつかの方法が示されています。

関連項目

errorInfo()

Error Output（オブジェクト・メニュー）

Raise Error


エラーの解決

エラーを解決するには

プログラムの実行時にエラー・メッセージが表示された場合、VEEは、エラーが発見されたオブジェクトを自動的に赤い輪郭線で囲みます。

エラーを修正すると輪郭線は消えます。[Stop] ボタンをクリックして赤い輪郭線を先に消去してから、エラーを修正することもできます。[Stop]ボタンをクリックした場合は、[View] [image] [Last Error] を選択すると、プログラムを再開する前にエラーを再度表示できます。


[Go To]ボタンを使用してエラーの位置を知る

[Go To]ボタンを使用してエラーの位置を知るには

下の図は、実行時エラー・メッセージの例です。このプログラムを実行したところ、VEEは実行時エラーを表示して、UserObjectのAddNoiseの周りに赤い輪郭線を示しました。[Go To]ボタンを押すと、VEEはUserObject AddNoiseを開いて、A + Bオブジェクトの周りに赤い輪郭線を示します。このオブジェクトでは、入力ピンAが接続されていません。大きなプログラムでは、Go To機能を使用すると、エラーの位置をすばやく見つけることができます。


最後のエラーを表示するには

VEEのエラーはError Messageダイアログ・ボックスで報告されます。エラーが報告された場合、プログラムの問題を調べるためには、エラー・ダイアログ・ボックスを閉じる必要があります。エラー・メッセージをもう一度見るには、View [image] Last Errorをクリックします。

オブジェクトのError出力端子で処理されたエラーは、このコマンドでは表示できません。

Last Errorバッファは、プログラムが再実行されるか、新しいプログラムがロードされるとクリアされます。


オブジェクト内部のイベントの順序の追跡

オブジェクト内部のイベントの順序を追跡するには

下の図は、オブジェクト内部のイベントの順序を示しています。

ピンは次のように動作します。

1 | シーケンス入力ピンが接続されている場合、オブジェクトは、実行メッセージを受け取るまで動作しません。ただし、シーケンス入力ピンの接続は、必須ではありません。
2 | オブジェクトは、すべてのデータ入力ピンがデータを受け取って初めて動作します（データ入力/出力ピンはほとんどのオブジェクトに追加できます。オブジェクト・メニューの[Add/Delete Terminal]メニューをクリックすると、追加できるピンを確認できます）。
3 | オブジェクトが自分の作業を実行します。この例では、AがBに加算され、結果が出力ピンへ渡されます。
4 | データ出力ピンがアクティブになります。オブジェクトは、次のオブジェクトからデータを受け取ったという信号を受け取って初めて、処理を完了します。したがって、データ出力ピンに接続されているすべてのオブジェクトがデータを受け取るまでは、このオブジェクトのシーケンス出力ピンはアクティブになりません。
5 | シーケンス出力ピンがアクティブになります。

このイベントの順序には、次の例外があります。

エラー出力ピンを追加してオブジェクト内のエラーを捕捉できます。エラー出力ピンは、オブジェクトの標準の動作には従いません。オブジェクトの動作時にエラーが発生した場合、エラー・ピンはメッセージを出力し、データ出力ピンはアクティブになりません。

いくつかのオブジェクトにはコントロール入力ピンを追加できます。 コントロール・ピンはオブジェクトに即座に動作を起こさせる場合があります。たとえば、Waveform (Time)表示にあるTitleやAutoscaleのようなオブジェクトのサブ機能は、コントロール・ピンで動作させることができます。VEEプログラムでは、オブジェクトへのコントロール・ラインの接続は破線で表示されます。

たとえば、下の図は、波形表示にカスタム・タイトルを設定するコントロール・ラインを示しています。オブジェクトでこの操作を行う際、コントロール・ピン上にデータは必要ありません。オブジェクトが実行されるのではなく、タイトル設定のような操作が実行されるだけです。[Show Data Flow]をクリックすると、Titleコントロール入力へのコントロール・ラインが最初にデータを伝送することを確認できます。


プログラム内のオブジェクトの実行順序の追跡

プログラム内のオブジェクトの実行順序を追跡するには

VEEプログラムを実行すると、オブジェクトは次の順序で動作します。

1 Startオブジェクトが最初に動作します。

下の図は、2つのスレッドがあるVEEプログラムを示しています。 スレッドは、VEEプログラム内の実線で接続された一連のオブジェクトです。Startオブジェクトは、[Flow] [image] [Start]にあり、プログラム内の個々のスレッドを動作させるために用いられます。プログラムにStartオブジェクトがある場合、Startオブジェクトが最初に動作します。

2 次に、データ入力ピンのないオブジェクトが動作します。[Data] [image] [Constant]にあるオブジェクトはこのカテゴリに入る場合が多いオブジェクトです。

3 入力ピンがあるオブジェクトは、接続されている入力ピンがすべてデータを受け取ったときに初めて動作します（シーケンス入力ピンの接続はオプションです）。


複雑なプログラム内のオブジェクトを検索するには

特に大規模なプログラムなどで、特定のオブジェクトを検索したい場合は、[Edit] [image] [Find]を選択します。ポップアップ・ダイアログ・ボックスにオブジェクトまたは関数名を入力すると、VEEが、プログラム内にあるそのオブジェクトまたは関数の全インスタンスと場所を表示します（詳細については、「大規模プログラムで関数を検索する方法」を参照してください）。


プログラムに構造を与えるには

以下のヒントは、VEEプログラムに構造を与える方法を示します。

1. VEEプログラムが何を実行するかを分析します。特定のサブタスクを共同して実行するオブジェクトのグループが識別できますか?これらのオブジェクトからUserObjectを作成します。

2. プログラムに複数回出現するサブタスクがありますか?この場合、その作業を実行するUserFunctionを作成し、必要になるたびにUserFunctionを呼び出します。

3. このようにしてプログラムを作成し、UserObjectとUserFunctionからなる階層構造を構築します。

4. 1つのデータ・コンテナを複数のオブジェクトに渡す場合、グローバル変数を使ってそのデータを渡すことを検討します。

関連項目

プログラムにUserObjectを作成するには

プログラムにUserFunctionを作成するには

UserObject

UserFunction


プログラムのドキュメントを作成するには

以下の方法を使えば、プログラムの使用、デバッグ、保守が容易になります。

1. プログラムの名前はわかりやすいものにします。プログラムを保存する際に、プログラムの機能を表すファイル名を付けるようにします。この名前はプログラム・エクスプローラの上部にも表示されます。メイン・ウィンドウにパネル・ビューがある場合、そのProperties Windowを使って、対応する実行ウィンドウのタイトルを入力します。このタイトルはプログラム・エクスプローラでファイル名の代わりに用いられ、プログラムを実行したときに実行ウィンドウのタイトル・バーに表示されます。これらの名前は、プログラム・ドキュメンテーション機能Save Documentationで用いられます。

2. オブジェクトの名前を意味のある名前に変更します。例えば、Repeat 100xの方がFor Countよりも役立つかもしれません（オブジェクトのProperties Windowで、Titleのエントリを変更します）。

3. 入力／出力端子の名前を意味のある名前に変更します。例えば、端子Aが流量を入力する場合、名前をFlow_Rateに変更します（端子をダブルクリックし、ダイアログ・ボックスでタイトルを変更します）。一部の端子のタイトルは変更できません。

4. オブジェクト・メニューのDescriptionを使って、主要なオブジェクトと関数に説明を追加します。この情報には、そのオブジェクトを使用した理由、入力と出力の詳細、オブジェクトで使用したオプションなどを記入します。プログラム・サイズを小さくするため、説明は簡潔にします。

5. Note Pad表示オブジェクト（Display [image] Note Pad）を使って、自分や他の人のための注記を追加します。ここには次のような情報を記入します。

作成者の名前と電話番号、およびプログラムを作成した日付。

このプログラムの機能。

変更を行った日付と、変更の内容。

6. UserObjectアイコンなどのアイコンに意味のあるビットマップを追加してカスタマイズします。

7. 印刷コマンドを使って、プログラムのハードコピーを印刷します。印刷コマンドは、Fileメニュー、メイン・ウィンドウおよびUserObject/UserFunction編集ウィンドウのメイン・ウィンドウ、プログラム・エクスプローラ（名前をマウスの右ボタンでクリック）にあります。

関連項目

アイコンにビットマップを追加するには

パネルにピクチャを追加するには

Description

Save Documentation


アイコンにビットマップを追加するには

アイコン化したVEEオブジェクトにビットマップを追加できます。

標準ビットマップを追加するには

1. オブジェクト・メニューからPropertiesを選択します。Icon AppearanceカテゴリでIconPictureを選択します。

2. bitmapsディレクトリにある使用可能なビットマップがPictureグループに表示されます。リストをスクロールし、目的のファイル名をクリックします。例えば、beep.icnをクリックすると、BeepアイコンがPreviewエリアに表示されます。

他のディレクトリを参照するには、Browseをクリックします。Select Fileダイアログ・ボックスが表示され、ディレクトリを移動してビットマップ・ファイルを選択できます。

3. Beepビットマップを持つUserObjectアイコンを次に示します。

カスタム・ビットマップを追加するには

カスタム・ビットマップを追加する手順は、標準ビットマップを追加する場合と同じです。ただし、先にビットマップを作成しておく必要があります。カスタム・ビットマップを作成するには、コンピュータに用意されているビットマップ・エディタ（例えばMicrosoft Paintプログラム）を使用します。次のファイル・フォーマットがサポートされます。

BMP、ICN、GIF

デフォルトのビットマップ・ディレクトリは次のとおりです。

C:\Program Files\Agilent\VEE Pro 8.5\bitmaps

関連項目

パネルにピクチャを追加するには


実行パラメータをプロファイルするには

Profiler（[View] [image] [Profiler]）を使って、プログラムに関する実行情報を収集できます。Profilerは、各コンテキスト（メイン、UserObject、UserFunction）がプログラム実行中に使用するコンパイラ時間に関する実行パラメータを測定します。この情報は、効率を最高にし、実行速度を改善するためにプログラムを変更する際に役立ちます。Profilerは、メニューまたはツールバー・ボタンを使って開いたり閉じたりできます。

[Profiler]ボタン

Profiler表示のデータは、各コンテキストの実行に使用されたコンパイラ時間を示します。下の図はプロファイルの例で、各コンテキストの実行回数と、プログラムの経過時間中のパーセンテージと秒数を示します。

プログラムをプロファイルするには

1. プログラムを開きます。

2. Profilerを開きます（[View] [image] [Profiler]またはツールバーのボタン）。

必要な場合、[Options]をクリックして、データの表示とファイルへの保存の方法を変更します。

3. Profilerの[Start Profiling]ボタンをクリックします。VEEウィンドウのステータス・バーのPROFインジケータが強調表示されます。Profilerは開いておくことも閉じることもできます。Profilerを開始すると、開いておいても閉じておいてもデータの収集が行われます。

4. プログラムを実行します。

5. Profilerが開いている状態で、[Refresh]ボタンをクリックすると表示が更新されます。

表示の更新は、プログラムが実行中、休止、停止のどの状態であっても実行できます。Profilerの実行中は常に新規データが収集されていますが、新規データを見るには表示を更新する必要があります。データがクリアされるのは、[Clear]をクリックするか、別のプログラムを開くか、[File] [image] [New]を選択した場合です。

表示データを列でソートするには、列ラベルをクリックします。もう一度クリックすると逆順に並べ替えられます。

6. [Save]をクリックすると、プロファイル・データがファイルに書き込まれます。最新のデータを保存するには、[Save]をクリックする前に必ず[Refresh]をクリックする必要があります。保存されたファイルには、%TimeとTime(sec)の合計が記録されます。

7. [Stop Profiling]をクリックするとデータの収集が停止します。

ヒント

メイン・ウィンドウ、UserObject、UserFunctionをワークスペースのビューに表示するには、Profiler表示でコンテキスト名をダブルクリックします。

関連項目

Profiler


プログラム性能に対する障害を取り除くには

プログラムの実行速度を上げるために使用できる一般的な手法を以下に示します。

VEEのVEE 4以上の実行モードを使用し、[Default Preferences]ダイアログ・ボックスでデバッグ機能をオフにします。上記のモードでは、プログラムがコンパイル実行モードで実行されます。

UserObjectおよびUserFunctionでは、データ入力端子をAnyのままにせず、必要なデータ型と種類を選択するようにします。これらのパラメータを指定することにより、VEE 4以上の実行モードではプログラムがより高速に実行されます。その他のオブジェクトに対しては、データ型と種類をAnyのままにしておきます。これにより、VEEは必要な場合だけデータ型変換を実行するので、実行時間を節約できます。入力端子のデータ型の変換を参照してください。

表示のClear at PreRunとClear at Activateは必要な場合以外オフにします。

データ・オブジェクトでは、コントロール・ピンでデフォルト値を設定する代わりに、Initialize at PreRunおよびInitialize at Activateを使用します。

グラフィカル表示にスカラ・ポイントを1個ずつプロットするのではなく、データを配列に収集して配列全体を一度にプロットします。プロットのX値が一定の間隔を持つ場合は、X vs Y Plotオブジェクトではなく、XY Traceオブジェクトを使用します。

プログラムはパネル・ビューから実行します。パネル・ビューのオブジェクト数が詳細ビューより少ない場合、プログラムはより高速に実行されます。

グラフィカル表示はできるだけ単純にします。更新速度を最大にする設定は、[Grid Type] [image] [None]を選択し、すべてのLayout機能をオフにすることです。Auto Scaleコントロール入力は、プログラムの実行速度を低下させるので、必要な場合のみ使用するようにします。

Fill Bar、Meter、Tank、Thermometerなどのオブジェクトのインジケータのデジタル表示は、必要な場合以外オフにします。

表示を常時更新するオブジェクト（Timer、Counter、Accumulator、AlphaNumeric、およびグラフィカル表示オブジェクト）は、表示内容を確認する必要がなければアイコン化しておきます。

Strip Chart表示を使用する場合、バッファ・サイズをできるだけ小さくします。

処理するデータを配列に収集し、配列として処理します。

式ではPComplexでなくComplexデータを使用します。ほとんどの演算ライブラリは、PComplexをComplexに変換し、答を計算し、結果のComplexをPComplexに再変換します。

PComplexデータを表示する場合、Trig Mode（[File] [image] [Default Preferences]の下）をRadiansに設定します。VEEはPComplex値を内部的にラジアンで記憶します。

関数のライブラリをインポート（[Device] [image] [Import Library]）する場合、プログラムで必要がなくなったらライブラリを削除（[Device] [image] [Delete Library]）します。

高速実行を必要とするプログラムの部分に関しては、テキスト・プログラミング言語を使ってコンパイル済み関数を作成します。

一般的に、動作するオブジェクトの数が少ないほど、プログラムの実行は高速になります。1つのオブジェクトが果たす機能をできるだけ多くします。

関連項目

プログラム内のオブジェクトの数を減らすには


プログラム内のオブジェクトの数を減らすには

多くのVEEオブジェクトは、いくつかの機能のセットを実行できます。以下の方法を使うと、プログラムをコンパクトにし、管理を容易にし、実行を高速にすることができます。

Formulaの入力端子に定数と単機能の演算オブジェクトを接続する代わりに、Formulaオブジェクトに式を入力します。Formulaオブジェクトの中で関数をネストすることもできます。例えば、(sin(ramp(100, 0, 360)))といった式を入力できます。

複数のIf/Then/ElseまたはConditionalオブジェクトを使用する代わりに、1つのIf/Then/Elseオブジェクトで複数の条件を使用します（例、A == B OR A<=C AND A>D）。

データの1次元配列を入力するには、それぞれの値に1つずつのConstantオブジェクトを使用して配列を構築する代わりに、配列に設定したConstantオブジェクトを使用します。

ファイル中の「残り」のデータをすべて読み取るには、From FileオブジェクトでARRAY 1D TO END:(*)トランザクションを使用します。これは、単一要素の読み取りを繰り返して結果を配列に収集するよりも単純で高速です。

Sequencerを使って複数のUserFunctionの実行フローを制御します。

Sequencerを使用する際には、Logレコードが必要なトランザクションでのみロギングを有効にします。Log出力端子を使用しない場合、端子を削除すると実行速度が多少向上します。

関連項目

Sequencer


I/O性能を上げるには

一般的には、Direct I/Oが最も高速なI/O性能を実現します。VEEプログラムのI/O性能を最適化する方法を次に示します。

1. 計測器パネル・オブジェクト（またはコンポーネント・ドライバ・オブジェクト）を使って計測器と通信するプログラムを作成します。プログラムと計測器設定をテストし、デバッグします。

2. 捕捉されたメッセージを使って計測器と通信するDirect I/Oオブジェクトを使ってプログラムを書き直します。これにより、最終的なプログラムのI/O性能が向上します。計測器コマンドの文字列が長い場合、Direct I/Oオブジェクトのデータ入力に接続されたTextオブジェクトに文字列を格納します。

3. きわめて高速なI/Oが要求される場合、計測器I/Oを実行するコンパイル済み関数を作成する方法もあります。

関連項目

Agilent IO Monitor

Direct I/O

Direct I/Oオブジェクトを使用するには

コンパイル済み関数の使用法


プログラムでプロパティを変更するには

プログラムでプロパティを設定／取得するには

VEEオブジェクトのプロパティを、そのプロパティのデザイン時の値に影響を与えずに、実行時に取得／設定できます。

プログラムでプロパティを取得／設定するには

VEEオブジェクトの[Properties]ウィンドウを表示します。[Design]カテゴリで、[Declared Name]フィールドに入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。Declared Nameを設定すると、そのVEEオブジェクトのプロパティのGET/SETができるようになります。例えば、背景色、サイズ、位置、タイトルなどを変更できます。次の表は、オブジェクトとそのプログラムからSET/GETできるプロパティを示します。

プロパティ | オブジェクト
BackColor、ForeColor、Title、Size、Location、Visibility | すべてのVEEオブジェクト
Value | Toggle Control、Constant、Continuous Control
EnumValue、EnumValues、EnumIndex | Selection Control
EnableOnPing | Confirm (OK)オブジェクト
EnableEditingプロパティ | "Enable/Disable Editing"コントロール入力ピンを持つVEEデータ・オブジェクト
PopupPanelTitle | メイン、UserFunction、UserObject
Size、Location | メインまたはUserFunctionのPopupPanel
Tab index | パネル・ビュー上のVEEオブジェクト
BackColor | UserFunction/UserObjectパネル・ビューおよびMainパネル・ビュー

上の表のプロパティは、実行時プロパティと呼ばれます。実行時プロパティはVEEオブジェクトの種類によって異なります。

注記

VEEオブジェクトのプロパティ（Title、EnableEditing、EnableOnPing、EnumValue、EnumValues、Value、EnumIndexの各プロパティを除く）をプログラムでGET/SETするには、そのVEEオブジェクトをパネル・ビューに追加しておく必要があります。

Declare Variableオブジェクトの場合、Declared Nameを設定したり、 Variable Scopeを変更したりすることはできません。

一般的に、VEEオブジェクトのプロパティを設定するには、次の方法が使用できます。Declared Name.プロパティ = プロパティ値
例: DeclaredName.BackColor = "Blue"

UserFunctionの場合、Declared Nameを設定したりVariable Scopeを変更したりすることはできませんが、Declared Nameの代わりにTitleを使用することでそのプロパティを設定することができます。例えば、UserFunctionのBackColorを設定するには、Title.BackColor ="Blue"のようにします。UserFunctionのTitleは変更できます。

例:X_Y Traceオブジェクトの前景色の変更

1. [Device] [image] [Virtual Source] [image] [Noise Generator]を選択します。

2. [Display] [image] [Waveform (Time)]を選択します。Declared Nameをwaveform1に設定し、パネル・ビューに追加します。

3. Noise Generatorのデータ出力ピンをWaveform (Time)のデータ入力ピンに接続してプログラムを実行します。

4. [Device] [image] [Formula]を選択します。waveform1.BackColor = "blue"と入力します。

5. [Flow] [image] [Confirm (OK)]を選択します。パネル・ビューに追加します。Waveformのシーケンス出力ピンをConfirm (OK)オブジェクトのシーケンス入力ピンに接続します。

6. プログラムを実行すると、Waveformの背景色が青に設定されます。

注記

ConfirmオブジェクトのEnableOnPingプロパティに関しては、設定が有効なのはConfirmが起動された場合だけです。

例えば、OK1のEnableOnPingがFormulaでTRUEに設定されても、OKが押されるまではOK1はグレーのままです。

次に別の例を示します。次の図では、OK1のEnableOnPingがFormulaでTrueに設定されていますが、OK1が押された後もOK1はグレーのままです。

関連項目

プログラムのプロパティ、オブジェクトの名前と範囲を変更するには、プログラムのプロパティ、ProgrammaticPropertyDemo.vee DemoTabIndexChangeDemo.vee


オブジェクトの名前と範囲を変更するには

オブジェクトの宣言された名前または宣言された範囲を変更するには

VEE 8.0以降、[Properties]ウィンドウの[Design]タブに2つの新しい項目が加わりました。Declared NameとDeclared Scopeです。

VEEオブジェクトの[Properties]ウィンドウで[Declared Name]フィールドに名前を入力すると、そのVEEオブジェクトに対する変数を暗黙に宣言できます。この変数はObjectデータ型で、オブジェクトが存在するコンテキストにローカルです。

VEEオブジェクトのプロパティを実行時に変更するには、そのVEEオブジェクトに対してDeclared Nameを設定しておく必要があります。

注記

Declared Nameは、Main、Declared Variable、UserFunctionを除くすべてのVEEオブジェクトに対して設定できます。

VEEオブジェクトのDeclared Nameを設定した後、そのVEEオブジェクトのプロパティ・ウィンドウをもう一度開くと、そのオブジェクトのDeclared Scopeを変更できます。デフォルトでは、Declared ScopeはLocal to Context（コンテキストにローカル）です。これはGlobal（グローバル）に、またUserFunction内の場合はLocal to Library（ライブラリにローカル）に変更できます。この機能により、他のコンテキストで宣言されたVEEオブジェクトを使用できます。

.NETオブジェクトとCOMオブジェクトはデフォルトでDeclared Nameを持つため、Declared Nameを設定しなくてもDeclared Scopeを変更できます。

例

次の例は、UserFunction内でXY Traceオブジェクトを定義し、Main内でXY TraceのBackColorをGreenに変更しています。.

1. UserFunction内でXY Traceを定義し、その入力ピンにFunction Generatorを接続します。

2. このXY TraceのDeclared Nameをxy_ufに設定し、そのDeclared ScopeをGlobalに変更します。デフォルトでは、Declared ScopeはLocal to Contextなので、このUserFunctionの外からはアクセスできません。

3. FormulaでXY TraceのBackColorをRedに設定し、XY Traceをパネル・ビューに追加します。

4. メインで、まずUserFuncionを呼び出します。5秒間の遅延後に、XY TraceのBackColorをGreenに変更します。

5. プログラムを実行すると、最初はXY Traceが赤で表示され、その後に緑に変化します。

関連項目

プログラムでプロパティを変更するには、プログラムのプロパティ


VEEの概要

Agilent VEEプログラミングの概要

Agilent VEEとは?

Agilent VEE Proをご利用いただきありがとうございます。Agilent VEEは、電子計測器の使用に最適化されたグラフィカル・プログラミング環境です。その特長は、「よりよい測定をより速く」という言葉に要約されています。Agilent VEEを使えば、低レベルの言語を使用した場合よりもソフトウェアのプロトタイプ作成時間が大幅に短縮され、測定データの解析のための豊富な機能が利用できます。

Agilent VEEの構成要素

Agilent VEEのプログラムを作成するには、作業領域にグラフィカル・オブジェクトを配置し、それらをラインで結びます。このグラフィカル・ビュー自体がプログラムです。プリプロセス、コンパイル、リンクといった、わかりにくく間違いを起こしやすい手順は不要です。単に「ブロック図」を作成して[Run]ボタンを押すだけです。

VEEでは、プログラムの構成要素を「オブジェクト」と呼んでいます。VEEオブジェクトが実行する作業には、数値の加算、論理的決定の実行、ファイルの読み取り、マイクロ波スペクトラムの表示、計測器の制御などさまざまなものがあります。VEEオブジェクトを作成する一般的な方法は2つあります。VEEのFunction & Object Browserを使う方法と、VEEのドロップダウン・メニューを使う方法です。

Function & Object Browserは、200以上のVEE関数を、「三角関数」、「行列」、「データ・フィルタリング」といったカテゴリに分類しています。これを使うと、選択した関数があらかじめ設定されたFormulaオブジェクトが作成されます。また、Function & Object Browserには1000以上のMATLAB関数が用意されています。

Function & Object Browserを起動する簡単な方法は、ツールバーの [image] ボタンを押すことです。必要なタイプ、カテゴリ、関数をクリックします。その後、[Create Formula]ボタンを押すと、作業領域に配置できるオブジェクトが作成されます。

ドロップダウン・メニューには、これ以外の450種類以上のVEEオブジェクトが用意されています。メイン・メニューをクリックし、適切なサブメニュー（存在する場合）をたどり、必要なオブジェクトをクリックして、作業領域に配置します。5つのドロップダウン・オブジェクト・メニューの概要を以下に示します。

Flow これらのオブジェクトは、プログラム・フローに関連します。条件分岐やループなど、一般的な実行制御を実行するオブジェクトがあります。また、遅延やゲートなどの動作によってプログラムとデータのタイミングを変更するものもあります。

Device これはさまざまなオブジェクトからなるグループです。これには、仮想ソースやActiveXコントロールなどの有用なサブメニューがあります。カウンタ、タイマ、コンパレータなど、便利なユーティリティ・オブジェクトが用意されています。インポート・ライブラリおよびシーケンサ・オブジェクトはここにあります（最初にチェックしたメニューに必要なオブジェクトが見つからない場合は、[Device]メニューで探してみてください）。

I/O これらのオブジェクトは、VEEアプリケーション外部のソフトウェアやハードウェアとのやりとりを実行します。このメニューには、計測器、ファイル、プリンタ、他のプロセスなどと通信するオブジェクトが含まれます。最初のメニュー項目は強力なInstrument Managerです。

Data これらのオブジェクトは、データの宣言、作成、アクセスを行います。このメニューには、グラフィカル入力オブジェクト（押しボタン、ノブ、スライダなど）、すべてのデータ型の定数、グローバル変数、およびUnbuild Array、Merge Record、Concatenatorなどの便利な関数が用意されています。

Display これらのオブジェクトは、データの表示を行います。このメニューには、グラフィカル・インジケータ（メータ、温度計など）、英数字表示、波形（オシロスコープ）表示、さまざまなX-Yプロット、極座標スペクトラム表示などが用意されています。

すべてのVEE関数とオブジェクトのアルファベット順リストを見るには、このヘルプ・ファイルの[Contents and Index]を選択し、"Reference"セクションを参照してください。

Agilent VEEプログラミングの基本

VEEプログラムの構成要素であるオブジェクトは、作業領域に長方形のボックスで表示されます。これらのボックスがプログラムの動作を実行します。ボックスはラインで接続されます。ラインはプログラムのデータを運びます。データはオブジェクトの右側（出力ピン）から出て、次のオブジェクトの左側（入力ピン）に入ります。データは常に（オブジェクトから見て）左から右に流れます。

オブジェクトは、すべてのデータ入力ピンが新しいデータを受け取った後、その動作を実行します。動作を実行した後、オブジェクトはすべての出力ピンにデータを送信します。このサイクルがプログラムのダイアグラムに沿って進行し、すべてのオブジェクトがすべての動作を実行し終わるまで続きます。VEEプログラムのフローの詳細については、伝達についての項目を参照してください。

VEEのデータ伝達モデルのプログラム・フローは、Cなどのテキスト言語のプログラム・フローとは異なります。従来の言語では、プログラマが低いレベルで実行順序を定義する必要がありました。変数に値を代入して合計を計算するという単純な例を考えてみます。この作業を実行するCのコードは次のとおりです。

a = 2;
b = 3;
c = a + b;

Cの構文では、"a"に先に代入するか"b"に先に代入するかをプログラマが決定する必要があります。しかし、実際にはこれはどちらでもかまいません。順序はどうであっても、"a"と"b"の両方が加算の前にデータを持っていれば大丈夫です。VEEを初めて使用するプログラマは、データ・フロー・モデルには制御が存在しないように思われてとまどうことがあります。VEEのプログラミングに熟練すれば、不要な細部を制御しなくてすむので効率が上がります。

オブジェクトはすべてのデータを受け取るまで作業を実行できないので、すべての入力ピンが何らかのデータ・ソースに接続されている必要があります。このことは、VEEのもう1つの重要な特長と関連します。データの型や種類の変換は、入力端子で自動的に行われます。例えば、浮動小数点データを必要とするオブジェクトに整数データが入力された場合、入力端子は受信データを自動的に適切な型に変換します。VEEには型チェックを実施するオプションも用意されていますが、入力端子のデフォルトの動作を利用すれば、型チェックや型変換の手間を省くことができます。データの種類にも同じことが当てはまります。入力ピンは配列とスカラのどちらの値も受け取ることができ、オブジェクトは自動的に適切な動作を実行します。VEEの自動型変換の詳細については、入力端子のデータ型の変換の項目を参照してください。

Agilent VEEと計測器

VEEプログラミング環境は、電子計測器と測定作業を強力にサポートします。初期のプロトタイプ段階では、VEEを使って信号源や表示をシミュレートできます。外部ハードウェアがなくても、プログラム・フローやデータ処理の実験を実行できます。詳細については、Virtual SourceおよびWaveform Displayの各項目を参照し、その中のリンクから他のシミュレートされたデバイスについて参照してください。

実際のデータが入手できるようになったら、VEEのInstrument ManagerやダイナミックI/Oサーバを使って、外部計測器の検出、設定、管理の作業を容易に実行できます。VEEは複数の種類の計測器ドライバをサポートしており、ユーザのニーズや計測器の特性に応じて最適なドライバを選択できます。計測器が利用できない時点では、Instrument Managerのボタンを押すだけで、ドライバを「オフライン」にして、プログラムの開発を続行できます。詳細については以下を参照してください。

Instrument Managerの項目

このヘルプ・ファイルのContentsの「使用法」 [image] "Control Instruments"

このヘルプ・ファイルのContents and Indexの「以下の項目についての説明」 [image] "Instrument Control Fundamentals"

Agilent VEEプログラミングのヒント

Agilent VEEは、他のアプリケーションとは異なる独自の性質を持ったプログラミング環境です。Agilent VEEを初めてお使いになる場合、この独自性に快い驚きを感じていただけるはずです。以下に、初めてのユーザに役立つと思われるヒントをいくつか記載します。

ツールーバには、次のようなプログラム制御用の便利なボタンがあります。
（Run）、 [image] （Pause）、 [image] （Stop）、 [image] （Step）

メイン・ウィンドウを誤って閉じた場合は、[View] [image] [Main]（またはCtrl-M）で回復できます。

未接続の入力ピンがあると、VEEプログラムは動作できません。入力ピンを接続したくない場合は、削除してください。

誤って別のオブジェクトを選択した場合は、Escキーを押してキャンセルします。オブジェクトを選択したがそれを配置する作業領域が開いていない場合にも、同じ方法を使用します。Escキーを押してオブジェクトをキャンセルすれば、通常のマウス操作が使用可能になります。

VEEウィンドウの最下部はステータス・バーになっています。ステータス・バーにはステート情報や有用なヒントが表示されるので、常にチェックするようにしてください。

Agilent VEEについてさらに学ぶには

Agilent VEEについて詳しく学びたい場合、さまざまなリソースが用意されています。例:

オンライン・チュートリアル
VEEには、VEEのプログラムを初めて作成する方を対象としたマルチメディア・チュートリアルが用意されています。これを見るには、Welcomeウィンドウで"Tutorials"を選択します。Welcomeウィンドウは、VEE開発環境を起動したときに（デフォルトで）表示されます。VEEがすでに実行されている場合、Welcomeウィンドウを表示するには、VEEのメイン・メニュー・バーで[Help] [image] [Welcome]を選択します。

サンプル・プログラム
VEEには、さまざまな概念を例示するための100以上の実際に動作するサンプル・プログラムが付属しています。サンプルを見るには、Welcomeウィンドウで"Example Programs"を選択します。または、このヘルプ・ファイルの[Contents]で「Agilent VEEサンプル・プログラム・ガイド」を選択します。

オンライン・ヘルプ項目
このヘルプ・ファイルでは、さまざまな方法で情報を検索できます。[Contents]タブには、アルファベット順の「リファレンス」、概念に関する「以下の項目についての説明」、作業に関する「使用法」、その他のセクションがあります。[Index]タブでは特定の項目を簡単に検索でき、[Find]タブでは全文検索を実行できます（索引で見つからない語を検索したい場合）。

クラス
Agilentでは、VEEをはじめとするさまざまなテーマに関するトレーニング・クラスを開催しています。詳細については、
Help [image] Agilent VEE on the Web [image] Education/Trainingを選択してください。

関連項目

Agilent VEEを使用する利点


Agilent VEEを使用する利点

テスト開発にAgilent VEEを使用する利点

Agilent VEEは、テスト/計測アプリケーション、およびオペレータ・インタフェースを備えたプログラムの構築用に最適化されたグラフィカル・プログラミング言語です。Agilent VEE製品のこのバージョンは、複雑なテスト／計測システムを構築する必要がある技術者グループを対象としています。

VEEは、テスト開発ツールとして次のような特長を備えています。

生産性を大幅に高めます。顧客からの報告によると、プログラム開発時間を最大80%まで削減できます。

VEEは、機能テスト、設計の検証、校正、データの取込みと制御など、幅広いアプリケーションで使用できます。

GPIB、VXI、シリアル、GPIO、PCプラグイン・カード、LAN計測器を制御する計測器I/Oがより柔軟になりました。パネル・ドライバ、VXI plug&playドライバ、標準インタフェース経由の「ダイレクト入出力」、さまざまなベンダからインポートされたライブラリを使用できます。

ActiveXオートメーションおよびActiveXコントロールを使用して、PC上でMS Word、Excel、Accessなどほかのアプリケーションを制御できます。 これらのアプリケーションを利用して、レポートを作成したり、データを表示して解析したり、テスト結果を将来使用するためにデータベース化できます。

スループットが改善され、より大きなプログラムを簡単に構築でき、計測器の管理がより柔軟になりました。VEEが採用するコンパイラは、大規模で複雑なプログラムに適したプロフェッショナル開発環境と高度な計測器管理能力を提供します。

Visual Studio .NETアセンブルをサポートするので、Visual Studio .NETを真にサポートするテキスト形式言語もすべてサポートされます。

C/C++、Visual Basic、Pascal、Fortranなどのその他のテキスト形式言語もサポートするので、これらのテキスト形式言語で作成したプログラムが利用できます。

VEEのプログラムは、メニューからオブジェクトを選択し、それらを接続することによって作成されます。VEEで作成されたプログラムはデータ・フロー・ダイアグラムに似ており、従来のコード行に比べて使いやすく、理解しやすくなっています。VEEを使用すると、編集-コンパイル-リンク-実行という面倒な繰返しを行う必要がありません。

次の2つの図は、簡単な関数をテキスト形式言語(ANSI C)でプログラムした場合と、VEEでプログラムした場合を比較したものです。どちらの場合も、関数は10個のランダムな数値から成る配列を作成し、最大値を見つけ、配列と最大値を表示します。

ANSI C言語で書かれたプログラムを次に示します。

/* 配列の最大要素を見つけるプログラム */

# include <math.h>

main( )

{

double num[10], max;

int i;

for (i=0;i<10;i++){

num[i]=(double) rand( )/pow(2.0,15.0);

printf("%f/n", num[i]);

}

max=num[0];

for (i=0;i<10;i++){

if (num[i]>max) max = num[i];

}

printf("/nmax; %f/n", max);

}

VEEで作成されたプログラムを次に示します。

VEE では、プログラムはオブジェクトと呼ばれるプログラム要素で構築されます。オブジェクトはVEEプログラムの構成要素です。オブジェクトは、入出力動作、解析、表示などのさまざまな機能を果たします。上の図のようにオブジェクトとその接続をすべて表示したものを詳細ビューと呼びます。詳細ビューは、テキスト形式言語におけるソース・コードに似ています。

VEEでは、データが1つのオブジェクトから次のオブジェクトへ一貫した方法で移動します。 すなわち、データはオブジェクトの左側から入力され、右側から出力されます。 またオブジェクトの上下には操作シーケンス・ピンがあります。

オブジェクトが結合されて1つのプログラムとなります。プログラムは左から右へ実行されます。上の図に示した「Random」プログラムでは、乱数がCollector - Create Arrayオブジェクトに10回追加され、配列が作成されます。次にプログラムは、配列中の最大値を見つけて、Max ValueとArray Valuesを表示します。

モジュール・プログラミングの手法を用いるVEEを使用すると、計測器を制御するプログラムを作成したり、カスタマイズしたデータを表示したり、オペレータ・インタフェースを開発する時間が短縮されます。このテスト開発方式は、従来の手法に比べて生産性を飛躍的に高めます。

注記

上の図には、詳細が表示されたオブジェクトと名前だけが表示されているオブジェクトがあります。詳細が表示されたオブジェクトは、オープン・ビューで表示されます。オープン・ビューでは、オブジェクトの詳細を表示できます。スペースを節約してプログラムの実行速度を上げるには、オブジェクトをアイコン化して、名前だけが表示されるように縮小できます。

たとえば、上の図では、Random Numberのラベルが付いたオブジェクトがアイコンで表示されています。Create Arrayのラベルが付いたオブジェクトはオープン・ビューで表示されています。オープン・ビューでは、オブジェクトがより大きく、詳細に表示されます。

Agilent VEEにおけるオペレータ・インタフェースの作成

VEEでプログラムを記述するもう1つの利点は、オペレータ・インタフェースを簡単に作成できることです。

上の「Random」プログラムを使用する場合、オペレータに表示する必要があるオブジェクトを選択してパネル・ビューに入れます。パネル・ビューには、オペレータがプログラムを実行して結果を表示するために必要なオブジェクトだけが表示されます。下の図に、上の「Random」プログラムのパネル・ビューを示します。

注記

プログラムとそのオペレータ・インタフェースは、同じVEEプログラムを異なる方法で表示したものです。VEEウィンドウのタイトル・バーで詳細ビュー・ボタンとパネル・ビュー・ボタンをクリックすることにより、ビューを切り替えることができます。プログラム（詳細ビュー）を編集したり更新したりすると、オペレータ・インタフェース（パネル・ビュー）も自動的に編集／更新されます。オペレータ・インタフェースを不必要な変更から保護することもできます。

オペレータ・インタフェースの作成方法についての詳細は、「パネル・ビュー(オペレータ・インタフェース)の作成方法」を参照してください。

VEEを使用すると、テキスト形式言語では何日もかかるような作業を数分で実行できる場合があります。

プログラムに対するカラフルで直観的なフロント・エンドを作成できます。

キーボードとマウス、またはキーボード入力だけを使用するオペレータ・インタフェースを作成できます。

入力方法とデータ表示機能を幅広い組合わせの中から選択できます。

ポップアップ・パネルを使ってフォーカスを作成し、画面スペースを節約できます。

プログラムを不必要な変更から保護できます。

ラベルを使用したり、色とフォントを選択したり、さまざまな形式の警告音、メモ帳、ボタン、スイッチを追加できます。

独自または標準の既存ActiveXコントロールを使用して、データ入力やデータの表示を行うことができます。

既存のテスト・プログラムのAgilent VEEでの利用

サポートするすべてのオペレーティング・システム上で、VEEは、市販アプリケーションだけでなく通常のテスト・プログラムも結合できる仕組みを提供します。たとえば、VEEを使用して、C、C++、Visual Basic、Fortran、Pascal（またはそのオペレーティング・システムで使用できる任意のコンパイルまたはインタープリタ言語）で書かれた既存のテストをシーケンス実行できます。Visual Studio .NETを真にサポートする言語もすべて使用できます。

VEEには、データベースやスプレッドシートなどの市販アプリケーションとデータを共有するための数多くのプロセス間通信機能も備わっています。VEEは、ActiveXオートメーション、ActiveXコントロール、DLLとの標準接続もサポートします。

Agilent VEEでの計測器の制御

VEEは、計測器を制御し、計測器と通信するためのオプションを数多く提供します。

さまざまなベンダから提供されている450以上の計測器用のパネル・ドライバ（計測器ドライバ）のほか、Windows 2000、Windows XPまたはWindows Vistaで使用可能なさまざまなベンダのVXI plug&playドライバをすべて使用できます。

VEEのDirect I/Oを使用すると、計測器のコマンド文字列をGPIB(IEEE - 488)、GPIO、RS 232、VXI、LANベース計測器などの標準インタフェース経由で送信して、リモート・テストを行うことができます。

DLL(Dynamic Link Library)が付属する任意のメーカのPCプラグイン・ボードを制御できます。

組込みPCまたはワークステーションを使ってVXIのバックプレーン制御を直接使用できます。

簡単で組織化された計測器管理機能により、多様な計測器を制御できます。

Agilent VEEによるテスト機能の強化

VEE製品には、次の機能と利点があります。

グラフィカル・プログラミングによる開発／保守時間の削減

C、C++、Visual Basic、Pascal、Fortranなどの従来の言語との統合

使いやすく柔軟なオペレータ・インタフェース機能

一般的なテスト・プラットフォームのほとんどをサポート

ActiveXオートメーションおよびActiveXコントロールの使用

Agilent Technologiesのさまざまなサポートオプション

簡単で強力な文書ツール

テスト・データをレポート作成のために標準的なスプレッドシートやワープロに簡単に転送可能

リレーショナル・データベースや統計解析パッケージなどのほかのアプリケーションとリンクするためのプロセス間通信ツール（バージョン6.0以上）

大規模で複雑なプログラムの開発と保守を効率よく行うためのデバッグ・ツール（バージョン6.0以上）

製品に付属する強力なテスト実行ツール（バージョン6.0以上）

VEEのWebモニタ機能によるリモート・テスト機能（バージョン6.0以上）

自作プログラムの配布のために無制限に利用できるランタイム（バージョン6.0以上）

低価格のサイト・ライセンス（バージョン6.0以上）

関連項目

VEEの概要、Agilent VEEをインストールするには


実行モード1

実行モード

実行モード

実行モードの変更の効果

参考文献

実行モードの変更:VEE 3からVEE 4へ

実行モードの変更:VEE 4からVEE 5へ

実行モードの変更:VEE 5からVEE 6&7へ

実行モードの変更:VEE 6&7からVEE 8へ


実行モード

実行モードの理解

実行モードとは

VEEの各バージョンは、それぞれいくつかの実行モードを持ちます（以前のバージョンでは「互換モード」と呼ばれていました）。実行モードを使用すると、古いバージョンのVEEを使って作成されたプログラムを、古いバージョンのVEEで実行する場合とまったく同様に、新しいバージョンのVEEで実行できます。これを「後方互換性」と呼びます。VEEのすべてのバージョンは、実行モードを使うことで100%の後方互換性を持ちます。

例えば、VEEバージョン4.0には、VEE 3.xとVEE 4の2つの実行（互換）モードがありました。これにより、VEE 4.0では、VEEバージョン3.0（またはそれ以前のバージョン）で作成された古いプログラムを、VEEバージョン3で実行した場合と全く同様に実行できました。VEE 3プログラムをコンパイル・モードで実行したい場合は、モードを切り替えると、VEE 4はプログラムをコンパイラで実行します。

同様に、VEEバージョン5.0には、VEE 3.x、VEE 4、VEE 5の3つの実行（互換）モードがありました。VEEバージョン6.0では、VEE 6実行モードが加わりました。VEEプログラムは、自分が作成されたVEEのバージョンと、使用された実行モードを記憶しています。プログラムをロードすると、VEEはそれに対応する実行モードに自動的に切り替わるので、プログラムはVEEの古いバージョンの場合と全く同様に実行されます。

ある実行モードでプログラムを作成して保存すると、そのプログラムはユーザによって変更されない限りその実行モードを保持します。例えば、バージョン5.0でプログラムを開発して保存したとします。このプログラムはVEE 5実行モードで保存されたとします。このプログラムをバージョン6.0でロードして保存しても、プログラムの実行モードは引き続きVEE 5のままです。実行モードを（[Default Preferences]ダイアログ・ボックスなどを使って）変更しない限り、どのバージョンのVEEでプログラムをロードしても、プログラムの実行モードは変わりません。

VEE 6実行モードはVEE 7で動作します。また、以前のVEEバージョンでは、VEEの新しいバージョンで作成されたプログラムを古いバージョンで実行することも場合によっては可能でした。これは、プログラムに含まれる機能に依存します。ただし、VEE 7で作成されたプログラムは、以前のバージョンで実行することはできません。

実行モードを変更する理由

既存のプログラムに新しい機能を追加する場合は、実行モードを変更する必要があります。例えば、バージョン5.0で（VEE 5実行モードで）作成したプログラムがあったとします。バージョン6.0の新しい機能（新しいデータ型など）をこのプログラムに追加するには、実行モードをVEE 6に変更する必要があります。プログラムを変更しても実行モードを変更しなかった場合、プログラムに追加された新しい機能は正しく実行されません。

実行モードを変更すべき場合

ほとんどの場合、VEEの以前のバージョンで作成されたプログラムは、実行モードを変更しなければ新しいバージョンのVEEでも完全に正常に動作します。ただし、最新の実行モードを使用しない限り、新しい機能は追加できません。

下の表は、各バージョンと実行モードで動作するプログラムの組み合わせを示します。古いプログラムは、実行モードを変更しない限りどのバージョンでも動作することに注意してください。問題が発生する可能性があるのは、実行モードを変更した場合だけです。

プログラムを作成した実行モード:

実行するVEEのバージョン | VEE 4 | VEE 5 | VEE 6、7 | VEE 8 | VEE 85
バージョンVEE 4 | 実行可 | CNA | CNA | CNA | CNA
バージョンVEE 5 | 実行可 | 実行可 | CNA | CNA | CNA
バージョンVEE 6 | 実行可 | 実行可 | 実行可 | CNA | CNA
バージョンVEE 7 | 実行可 | 実行可 | 実行可 | CNA | CNA
バージョンVEE 7.5 | 実行可 | 実行可 | 実行可 | CNA | CNA
バージョンVEE 8.0 | 実行可 | 実行可 | 実行可 | 実行可 | CNA
バージョンVEE 8.5 | 実行可 | 実行可 | 実行可 | 実行可 | 実行可

CNAは、互換性が保証されない（"Compatibility Not Assured"）ことを示します。VEEの新しいバージョンで作成したプログラムは、新しいバージョンに固有の機能を含まなければ、古いバージョンのVEEでも動作する可能性があります。新しく追加された機能を使用しているプログラムは、VEEの古いバージョンでは動作せず、場合によっては古いバージョンにロードもできない可能性があります。実行モードの役割は、既存のプログラムが新しいバージョンのVEEでも動作するようにすることです。新しい機能がVEEの古いバージョンで動作するという保証はありません。

実行モードの切り替えの指針

新しいプログラムを開発する際には、最新の実行モードを使用してください。

既存のすべてのVEEプログラムは、該当する実行モード（VEE 3.xプログラムではVEE 3、VEE 4.xプログラムではVEE 4、VEE 5.xプログラムではVEE 5）を選択することにより実行できます。古いプログラムに対応するモードは、プログラムがロードされたときに自動的に設定されます。

VEE 5以下の実行モードに設定されたプログラムをロードした後、VEE 6実行モードに切り替えた場合、古いプログラムは場合によっては正しく動作しない可能性があります。ほとんどのプログラムは正しく動作するはずです。プログラムの動作を変更する可能性がある「バグ修正」については、以下の例を参照してください。

例えば、バージョン5.0のプログラム（実行モードVEE 5）に、WRITE BINARY BYTEトランザクションを実行するTo Fileが存在するとします。バージョン5.0（およびそれ以前のバージョン）では、これに"300"を送ると、ファイルには"44"が書き込まれました（これは技術的にはバグです。"300"は1バイトに収まらないからです）。

VEE 5実行モードでは、プログラムの互換性を保つため、引き続き"44"が書き込まれます。これに対して、VEE 6実行モードでは、300をUInt8に変換できない（範囲外）というエラー・メッセージが返されます。

場所

File [image] Default Preferences [image] Execution Mode

関連項目

実行モード


実行モードの変更の効果

次の例は、プログラムを更新した場合の速度の向上を実証するものです。この例は、計測器I/Oがない場合のプログラム速度に注目しています。

examples\Applicationsサブディレクトリのchaos.vee プログラムを開きます。

このプログラムは、爆発的な人口増加をシミュレートします。次に示すように、結果をチェックするためTimerオブジェクトを使用して、このプログラムを変更します。これらの例では、Pavilion PC（300MHz）を使い、Windows 98上でプログラムを実行しています。ほかに2つの大きなアプリケーションが同時に実行されています。

VEE 3実行モードで、表示を開き、プログラムの実行時間を測定します。

次は、コンパイラをオンにしないまま、表示をアイコン化して速度を上げます。これにより、実行時間が約1/6短縮されます。

最後に、デバッグ機能を無効にして、コンパイラをオンにします。プログラムを完全にデバッグして、使用準備が完了したら、最適なパフォーマンスを得るため、 [File] [image] [Default Preferences] の[Disable Debug Features]ボックスをチェックします。

デバッグ機能により、[Show Execution Flow]や[Activate Breakpoints]などのツールが有効になります。[Disable Debug Features]ボックスをチェックすると、メモリ内でのサイズが小さくなり、プログラムの速度が向上します。図のように、プログラムは約12倍速く実行されます。これらの3つの図により、最適化の手法とコンパイラを組み合わせると、最大の処理速度が得られることがわかります。

次の2つのプログラムでは、VEEの速度向上のために、反復スカラ演算ルーチンを含むプログラムでコンパイラを使用します。この例では、スカラ値の平方根を計算しています（結果は保持されません）。コンパイラを使用すると、速度は、VEE 3実行モードを使用する場合より約107倍速くなります。

VEEに実行モードがあるのは、古いバージョンのVEEでは使用できたが、現在のバージョンでは使用できないプログラミング・オプションが多少あるからです（これらは現在、エラー・メッセージを生成します）。さらに、ActiveXオートメーションとコントロールの機能の一部が拡張されたため、VEE 4またはVEE 5モードで実行されていたプログラムをVEE 6モードで実行するには、小さな変更が必要になることがあります。実行モード間の違いの詳細については、VEEの[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [実行モードの変更]を参照してください。

関連項目

実行モード1


実行モードの変更:VEE 3からVEE 4へ

実行モードの変更：VEE 3からVEE 4へ

VEE 4.0以前のバージョンで作成されたVEEプログラムは、VEE 3モードで実行した場合とまったく同じように動作します。これを確実にするため、以前のプログラムがロードされると、インタープリタが自動的にオンにされます。このセクションでは、VEEバージョン4.0（VEE 4モード）の新しい機能と機能拡張について説明します。

コンパイラ・モードのラインの色

コンパイラ・モードでは、データ・ラインを流れるデータの型に基づいて、オブジェクトを結ぶラインに異なる色が割り当てられます。デフォルトの色を、色のプロパティの名前とともに以下にリストします。[ファイル] メニューから [Default Preferences] ダイアログ・ボックスを選択して、デフォルトの色を変更することができます。[Screen Element] ボックスの変更したいラインを選択し、[Color Value] ボックスをクリックしてカラー・パレットを開き、目的の色をクリックします。[OK]をクリックして選択したライン・タイプの新しい色を保存します。

  • ダーク・スカイブルー： 数値（IntegerまたはReal型）

  • ダーク・スカイブルー：複素数（ComplexおよびPComplex型）

  • ミディアム・オレンジ： 文字列（String型）

  • ミディアム・デーク・グレー： シーケンス出力（ヌル値、通常はシーケンス出力ラインから）

  • マゼンタ： 強調表示

  • 黒： 不明な型または最適化されない型（Record型など）

データ型が配列の場合、太いラインが表示されます。速度を上げるには、プログラムのラインの色をチェックします。黒以外のラインが多いほど、プログラムは高速に実行されます。

潜在的な互換性の問題

VEE 4.0以前のバージョンで作成されたプログラムは、VEE 3モードで自動的に動作します。VEE 4.xを使用して作成されたプログラムは、VEE 4モードで自動的に動作します。VEE 5.xを使用して作成されたプログラムは、VEE 5モードで自動的に動作します。ただし、プログラムの実行モードはいつでも変更できます。

互換性の問題は、既存のプログラムをVEE 3からVEE 4に変更した場合に、特定の分野で発生します。以下では、問題が生じる可能性のある分野について説明します。以前のバージョンのVEEの使用法は、インタープリタ・モードまたはVEE 3モードを使用するのと同じです。

UserFunctionのタイムスライス実行

VEE 4.0以前のバージョンでは、UserFunctionはプログラムの他の部分ではタイムスライス実行されませんでした。コンパイル済みモードでは、UserFunctionは別々のスレッドから呼び出された場合にタイムスライス実行されます。並行処理を望まない場合は、Callオブジェクト間にシーケンス・ピンを使用してください。

UserFunctionがタイムスライス実行されるのは、Call、Formula、If/Then/Else、Sequencerのいずれかのオブジェクトから呼び出された場合（Functionフィールドから呼び出された場合のみ）です。ブレークポイントも、Callオブジェクトまたは上述の他のオブジェクトから呼び出された場合に、UserFunctionで使用できます。

To File、To Stringまたは同様のオブジェクトから呼び出された場合、あるいは式がコントロール・ピンから供給された場合は、UserFunctionがタイムスライス実行されることも、ブレークポイントが有効になることもありません。

UserFunctionが実行中にプログラムの別の部分から再び呼び出された場合、その呼び出しは最初の呼び出しが戻るまでブロックされます。

UserObject

UserObjectは、以前のバージョンでは常にタイムスライス実行されますが、コンパイル済みモードでは、別々のスレッドから呼び出された場合のみタイムスライス実行されます。

関数の優先順位

Formulaオブジェクトから呼び出される関数の優先順位は、次のように変更されています。

1 内部関数（sin()、totSize()など）

2 ローカルUserFunction

3 インポート済みUserFunction

4 コンパイル済み関数

5 リモート関数

VEE 3実行モードでは、内部関数の優先順位は最下位です。このため、totsize() や fft() などの内部関数をユーザが独自にオーバライドすることができました。

Auto ExecuteとStart

特定のオブジェクトのAuto Execute機能を使用した場合、動作に微妙な変化が生じます。コンパイル済みモードでは、Startオブジェクトに直接接続されたオブジェクトのStartボタンが押されたかのうような動作になります。こうした変化がプログラムに影響を及ぼすことはほとんどありません。

OKボタンとWait for Input

OKオブジェクトやWait for Inputがオンにされているオブジェクトなど、ほとんどの非同期オブジェクトは、以下の2つの分野では、コンパイル済みモードで有効に機能します。

ステッピング：以前のバージョンでは、こうしたオブジェクトをステップ・オーバーすると、プログラムが終了しまうことがよくありました。コンパイラ・モードでは、ステッピングは正常に機能します。

CPU使用量：以前のバージョンでは、こうしたオブジェクトを実行すると、通常はCPUの使用量が増大しました。コンパイラ・モードでは、CPUはアイドル状態になります。

データを持たないCollector

以前のバージョンでは、データでは起動されなかったCollectorのXEQピンを起動すると、ヌル・コンテナが出力されます。コンパイラ・モードでは、コンパイル時にデータ型がわかると、そのデータ型の0要素配列が出力されます。データ型が不明の場合は、Integer型の0要素配列が出力されます。

こうした変更によって型推定がより一貫したものになるため、Collectorオブジェクト以降のpコードは優れたものになります。ヌルのtotSize()が1を返すのに対して、0配列要素のtotSize()は0を返します。

データを持たないSample & Hold

以前のバージョンでは、データでは起動されなかったSample & HoldオブジェクトのXEQピンを起動すると、ヌル・コンテナが作成されます。コンパイラ・モードでは、以下のエラーが発生します（エラー番号937）：

Sample & Hold was not given any data.（Sample & Holdにデータが与えられませんでした)

こうした変更によって型推定がより一貫したものになるため、Sample & Holdオブジェクト以降のpコードは優れたものになります。

Timerオブジェクト

以前のバージョンでは、 Timerオブジェクトは、Time2pinがTime1ピンの前に起動された場合に、未定義の結果を出力していました。コンパイラ・モードでは、Timer オブジェクトは、ピンの実行順序が乱れた場合にエラーを発生します。

フィードバック・サイクル

コンパイラ・モードでは、フィードバック・サイクル中にJunctionオブジェクトが必要です。Startオブジェクトは不要になりました。Junctionのないフィードバックが検出された場合、以下のエラーが発生します（エラー番号935）。

Junction is required inside of feedback cycles.（フィードバック・サイクル内にJunctionが必要です）以下に例を2つ挙げます。

VEEバージョン4.0以上では、オブジェクトのデータ出力ピンへのデータ入力ピンの接続やシーケンス出力ピンのデータ入力ピンへの接続（ほとんどのオブジェクトの場合）など、無効な接続は使用できません。

並列スレッド

VEE 3実行モードでは、独立したスレッドがスレッドごとにラウンドロビン実行されます。つまり、あるスレッドのオブジェクトが実行された後に、別のスレッドのオブジェクトが実行されます。コンパイル・モードでは、この動作は保証されません。

ループの限界

ループ性能を高めるため、反復子の限界（For RangeオブジェクトのStepフィールドなど）は、毎回ではなく、最初の反復の開始時にだけ調べられます。実行時には、値を変更できないことを示すため、オブジェクトのフィールドは淡色表示になります。ループの実行中に値を変更した場合、反復子へのデータ入力は無視されます。

例えば、ループ実行中にFor RangeオブジェクトのStep値をデータ入力ピン経由で変更した場合、VEE 4以上の実行モードでは無視されます。以前のバージョンでは、反復のたびにステップ値が確認されていました。

UserObjectとXEQピンによるコール

4.0以前のバージョンでは、UserObjectやCallオブジェクトのXEQピンを使って、すべてのデータ入力ピンがデータを受け取る前にUserObjectやUserFunctionを実行することができました。UserObjectやUserFunction内のこれらのパージされていないデータ入力に接続されたオブジェクトの動作は未定義でした。VEE 4以上の実行モードでは、これは許されません。これらのオブジェクトにXEQピンがあるとエラーが発生します。このオブジェクトにXEQピンを追加することはできなくなりました。

XEQピンを持つOKボタン

4.0以前のバージョンでは、XEQピンを持つOKオブジェクトは、OKボタンが押された場合か、XEQピンにデータが送られた場合に、1度だけ実行されました。VEE 4以上の実行モードでは、XEQピンにデータが送られるたびに、OKボタンは実行されます。OKオブジェクトにXEQピンを追加することはできなくなりました。

EOFピンを持つFrom File

4.0以前のバージョンでは、From Fileオブジェクトのデータ出力ピンは、VEEの他のデータ出力ピンと異なる扱いを受けていました。From Fileがループ内にある場合、EOFデータ出力ピンが実行されても出力ピンのデータは有効でした。

VEE 4以上の実行モードでは、ループが実行されるたびに（他のすべてのオブジェクトと同様）、From Fileオブジェクトからのデータ出力は無効になります。このため、EOFピンが実行された時点で、データ出力はすでに無効で、伝搬することはできません。

この状況の例を下に示します。4.0以前のバージョンでは、Formulaの A に入力されたデータは、ループの次の反復が実行されている間も有効でした。Formulaの B に有効なデータを送るため、EOFピン（最下部）が実行された後にFormulaが実行されます。

.

VEE 4以上の実行モードでは、 A に入力されたデータは、ループの次の反復の開始と同時に無効になります。Formulaはループの同じ反復で有効な入力を受け取らないため、実行されません。

並列ジャンクション

VEE 4.0以前のバージョンでは、Junctionオブジェクトに並列に拘束条件のないオブジェクトが接続されている場合、実行の順序は接続の順序によって決まっていました。VEE 4以上の実行モードでは、接続の順序は問題にはなりません。

交差ループ

VEE 4.0以前のバージョンでは、反復オブジェクトの交差が可能でした。実行の順序は未定義でしたが、接続の順序によって決まっていました。VEE 4以上の実行モードでは、Junctionオブジェクト経由でのループの交差だけが可能でした。この他の交差ループはエラー938 VEE was unable to compile this part of the program（VEEはプログラムのこの部分をコンパイルできませんでした）を発生します。下の例を参照してください。

Junction経由の交差ループ

VEE 4.0以前のバージョンの場合、下の例では Interger が最初に実行されます。Breakに達すると、プログラムは停止します。VEE 4以上の実行モードでは、Break でプログラムが停止しないため、下の例ではIntergerオブジェクトの後にFor Countオブジェクトが実行されます。

オープン・ビュー・オブジェクトの変更

VEE 4.0以前のバージョンでは、プログラムの実行中／休止中に、オープン・ビュー・フィールドのデータを変更することができました。これらの変更はプログラムの動作に影響を及ぼすため、結果は保証されていませんでした。VEE 4以上の実行モードでは、多くのオブジェクトがプログラムの実行中／休止中にこの種の変更を行うことができなくなりました（入力フィールドは淡色表示されます）。この例をいくつか示します。

  • FormulaおよびIf/Then

  • Collector

  • すべてのトランザクション・オブジェクトのトランザクション

  • Get MappingsおよびSet Mappings

  • Get ValuesおよびSet Values

  • Constantのプロパティ（Scalar/1D Array、Wait for Input、Auto Executeの設定など）

  • Clear at PreRunなどのプロパティの設定

  • UserObjectおよびUserFunctionのTrig Mode

  • Dialog Boxesプロパティ

オブジェクトの入出力端子の追加／削除は、実行時には淡色表示になっています（休止時は淡色表示にはなっていません）。休止時にこの動作を実行した場合、プログラムは停止します（VEE 4.0以前のバージョンと同じです）。

式の配列シンタックス

式に[1 2 3]のようにカンマなしで配列構文を入力した場合、プログラムがロードされるときに再解釈され、[1,2,3]のようにカンマを使用するように自動的に変更されます。これは、VEE 3およびVEE 4モードのプログラムに当てはまります。

関連項目

実行モードの変更:VEE 4からVEE 5へ、実行モードの変更:VEE 5からVEE 6へ、実行モードの変更:VEE 6&7からVEE 8へ


実行モードの変更:VEE 4からVEE 5へ

VEE 5.0では、VEE 4およびVEE 3モードはVEE 4.0で設定された互換性定義を保持します。いくつかの小さな変更がありますが、元の実行モード（VEE 3またはVEE 4）で動作する既存のプログラムには影響しません。これらの変更は、旧モードから新モードにプログラムを変換する場合には知っておく必要があります。

VEE 5実行モードについて

VEE 5実行モードは、VEE 4モードのスーパーセットです。VEE 5モードは、前に説明したコンパイラ機能を保持し、プログラムの互換性に影響するいくつかの重要な変更を導入しています。変更のほとんどは、ActiveXオートメーション／コントロールのサポートに関わるものです。

その他の変更は、ActiveXを使用していなくても、このセクションに記述された機能のどれかを使用している場合、プログラミング手法に影響する可能性があります。VEEでActiveXを使用する方法の詳細については、VEEでのActiveXオートメーションの使用法を参照してください。

プログラムのVEE 5実行モードへの変換

古いプログラムは、適切な古い実行モードで自動的に開きます。古いプログラムを新しいモードに変更したい場合は、[File]メニューの[Default Preferences]を使って手動で行う必要があります。プログラムをVEE 5モードに変更した場合、エラーが発生する可能性があります。問題を説明したリストが表示されます。VEE 6.0がVEE 5モードへの切り替えを受け入れるためには、これらのエラーを修正する必要があります。VEE 6.0はエラーを修正するためにプログラムを自動的に変更することはありません。

VEE 5実行モードの変更

エラーの修正方法を調べるための参考として、VEE 5モードの互換性の変更について以下に説明します。

注記

VEE 3.xプログラムをVEE 5モードに変更したい場合、まずVEE 4モードで動作することを確認してから、VEE 5モードに変更するようにしてください。この変換の方法については、「実行モードの変更: VEE 3からVEE 4へ」 を参照してください。

メニューの変更

VEE 5.0で追加されたActiveXサポートの一部として、[Device]メニューが少し変更されています。以下の新しいメニュー項目が追加されています。

ActiveX Automation References…

ActiveX Control References…

ActiveX Controls

また、[Select Functions]ダイアログ・ボックスを開いていたメニュー項目[Math & Functions]は、[Function & Object Browser]という名前になり、Function & Object Browserを開きます。使用法は同じで、プログラムで使用する演算子や関数を選択でき、拡張された機能によってActiveXをサポートします。

式

以下の変更は、Formulaなど式を含むオブジェクトに影響します。

  • ActiveXオートメーションで使用される新しいキーワードとして、SETとByRefがあります。これらは予約されており、端子名としては使用できません。

  • ActiveXオートメーション用に新しい構文がサポートされます。例: excel.worksheets(1).cells(1,2) = 2

  • VEE 3およびVEE 4モードでは、式に[1 2 3]のようにカンマなしで配列構文を入力した場合、プログラムがロードされるときに再解釈され、[1,2,3]のようにカンマを使用するように自動的に変更されていました。VEE 5以上のモードでは、[1 2 3]のようにカンマなしで配列構文を入力すると、Formulaからフォーカスが外れたときにエラーが発生します。

  • 1のような値はINT32を返し、1.0はREAL64を返します。以前には、どちらもREAL64を返していました。

  • ActiveXオートメーション用の2つの新しい組み込み関数CreateObject()とGetObject()が追加されています。

  • ActiveXオートメーション用の2つの新しい定数trueとfalseが追加されています。

変数

以下の変更は変数に関わります。

  • [Delete Variables at PreRun]がオンになっている場合（Default Preferences）、ActiveXコントロールを参照するグローバル変数は削除されません。

  • Declare Variableオブジェクトに、ActiveXオートメーションに用いられる新しい変数型Objectが追加されました。

  • 新しいObject変数型は、入力端子でRequired Typeとしても使用できますが、他の型との間の変換はできません。

グローバル名前空間

グローバル名前空間の規則が変更されました。これは、変数、関数、ライブラリの名前に次のように影響します。

  • ローカルUserFunction、ライブラリ名、宣言された／宣言されないグローバル変数、ライブラリにローカルな宣言された変数は、すべて同じ名前空間に存在し、一意の名前を持たなければならないように変更されました。これは、1つの名前の複数のインスタンスを持つ既存のプログラムに影響します。例えば、UserFunctionと、宣言されたグローバル変数の両方に、daily_resultsという名前を付けることはできません。この場合、プログラムをVEE 5モードに切り替えたときにエラーが発生します。

  • ライブラリ内では、ローカルUserFunctionとライブラリにローカルな宣言された変数は、同じ名前空間に存在し、一意の名前を持たなければなりません。これに違反すると、プログラムをVEE 5モードに切り替えるか、衝突する名前を持つライブラリをVEE 5モードのプログラムにインポートしたときにエラーが発生します。

  • すべてのモードのFormulaオブジェクトで、次の新しい構文が使用できます。

    lib.func(a,b) = RightHandExpr

    これはすべてのモードで正しく解釈されます。ただし、これが正しく実行されるのはVEE 5以上のモードだけで、VEE 3およびVEE 4モードでは実行時エラーになります。

グローバル名前空間規則の変更に伴い、VEE 5以上のモードでFormulaで使用される変数名と関数名をVEEが検索する際の優先順位が次のように変更されました。

1 ローカル入力／出力端子。

2 コンテキストにローカルな宣言された変数。

3 UserFunctionコンテキスト内のライブラリにローカルな宣言された変数。

4 宣言された／宣言されないグローバル変数、ローカルUserFunction、ライブラリ名。これらはすべて一意でなければなりません。

5 sin()、totSize()などの組み込み関数。

6 ActiveXコントロール／オートメーション定数。これらは、 [Device] [image] [ActiveX Automation References]または[ActiveX Control References]で 参照されているライブラリに依存します。例えば、Excelのオートメーション・ライブラリには、xlMaximizedなどの多くの定数が存在します。

7 インポートされたUserFunction、コンパイル済み関数、リモート関数はランダムな順序で現れます。正しい関数が使用されることを保証するには、インポートされたライブラリ名をmyLib.func()のように指定します。

この新しい優先順位によって古いプログラムが動作しなくなる例としては、Formulaに式sin(90)とsinという名前のデータ入力端子（変数）が存在する場合が挙げられます。VEE 3およびVEE 4モードでは、VEEは入力端子名を無視し、組み込み関数sin()を呼び出します。

これに対して、VEE 5以上の実行モードでは、新しい優先順位を使って関数名と変数名が検索されます。したがって、VEE 7.0は、端子名を検索し、入力にActiveXオブジェクトがあると仮定し、オブジェクトのデフォルト・メソッドを呼び出そうとします。ActiveXオブジェクトのデフォルト・メソッドを呼び出す式cells(1,1)は、sin(90)に似ています。ActiveXの詳細については、VEEでのActiveXオートメーションの使用法を参照してください。

READ TEXTトランザクション

VEE 3およびVEE 4モードでは、READ TEXTトランザクションでTOKENフォーマットを使用し、EXCLUDE CHARSを指定すると、指定された文字を除外するために読み取りポインタは前進しません。VEE 4モードでのこの例を次に示します。

これは予期しない結果です。予期した結果は、上のVEE 5モードの例に示すように、除外文字"*"で区切られた各フレーズが別々のAlphaNumeric表示に表示されるものです。

To/From FileとTo/From DataSetの相互作用

VEE 3およびVEE 4モードの場合、To FileまたはFrom FileオブジェクトでEXECUTE REWINDトランザクションを使用してTo DataSetまたはFrom DataSetオブジェクトと同じデータ・ファイルにアクセスするプログラムでは、予期しない相互作用が生じる可能性があります。具体的には、プログラムでFrom Fileを使って（EXECUTE REWINDを伴って）ファイルからデータを読み取った後、To DataSetを使って同じファイルにデータを書き込むと、データが正しく書き込まれない可能性があります。

同様の相互作用が、From DataSetとTo Fileを使用する場合にも起こりえます。VEE 5以上のモードでは、この予期しない相互作用は修正されており、データは正しくファイルに書き込まれます。ただし、同じファイルに対してTo/From FileとTo/From DataSetの操作を組み合わせて使用することは引き続き推奨されません。

関連項目

実行モードの変更:VEE 3からVEE 4へ、実行モードの変更:VEE 5からVEE 6へ、実行モードの変更:VEE 6&7からVEE 8へ


実行モードの変更:VEE 5からVEE 6へ

実行モードの変更:VEE 5からVEE 6&7へ

VEE 6.0では、VEE 5、VEE 4、VEE 3モードはVEE 5.0で設定された互換性定義を保持します。いくつかの小さな変更がありますが、元の実行モード（VEE 3、VEE 4、VEE 5）で動作する既存のプログラムには影響しません。これらの変更は、旧モードから新モードにプログラムを変換する場合には知っておく必要があります。これについて以下で説明します。

VEE 6&7実行モードについて

VEE 6&7実行モードは、VEE 5モードのスーパーセットです。VEE 6&7モードは、前に説明したコンパイラ機能を保持し、プログラムの互換性に影響するいくつかの重要な変更を導入しています。変更のほとんどは、ActiveXオートメーション／コントロールのサポートに関わるものです。

その他の変更は、ActiveXを使用していなくても、このセクションに記述された機能のどれかを使用している場合、プログラミング手法に影響する可能性があります。VEEでActiveXを使用する方法の詳細については、VEEでのActiveXオートメーションの使用法を参照してください。

新しいデータ型

VEE 6.0の新しいデータ型として、Int16、Real32、Variant、UInt8があります。新しいデータ型と、WRITE TEXT INT16などの新しいトランザクションは、すべての実行モードに現れます。ただし、新しいトランザクションは古いモードでは従来の方法で動作します。

例えば、VEE 5モードでは、WRITE BINARY INT16は実際にはWRITE BINARY INT32を実行し、データをInt16に変換することはありません。VEE 6&7モードでは、WRITE BINARY INT16はデータをInt16に変換します。VEEの実行モードによるプログラムの動作の変化については、実行モードを参照してください。

バリアントからVEEデータ型への変換 - 配列処理の改善

ActiveXオートメーション・サーバ（Excelなど）またはActiveXコントロールからデータが返された場合、VEEはオートメーション・データ型をVEEデータ型に変換する必要があります。VEE 5.0では、Variantの配列はVEEのRecordに変換されていました。VEE 6.0（VEE 6&7実行モード）では、Variantの配列は、すべての要素が同じデータ型の場合、VEEの配列に変換されます（異なるデータ型が混在している場合は、VEE 5.0と同じ動作をします）。

配列のすべての要素が同じデータ型の場合、Variantデータ型からVEEの配列データ型への変換は次のようになります。

注記

この機能はVEE 6&7実行モードだけで利用できます。

Variant配列メンバの型 | VEE 7.0データ型
VT_UI1 VT_BOOL VT_I2 VT_UI2 VT_I4 VT_UI4 VT_R4 VT_R8 VT_DATE VT_CY VT_BSTR VT_DISPATCH | UInt8 Int16 Int16 Int16 Int32 Int32 Real32 Real64 Real64 Real64 Text Object

ただし、新しいVEE 6&7データ型とActiveXオートメーション・サーバとの間の互換性には、次のような制限が残っています。

  • 論理値（VT_BOOL）、日付（VT_DATE）、通貨（VT_CY）、エラー（VT_ERROR）といったデータ型には、対応するVEEの組み込みデータ型がありません。これらのデータ型をActiveXで"ByRef"で使用するには、以下で説明するSet関数とQuery関数が使用できます。

  • 空（VT_EMPTY）、NULL（VT_NULL）などの一部の特殊なVariant値は、対応するものがないので、一意に識別できません。

Set関数

Set関数は、ActiveXオートメーション動作中にこれらの関数が返すコンテナが特別な扱いを受けることを、VEEに通知します。Set関数を次に示します。

asVariantBool()

asVariantCurrency()

asVariantDate()

asVariantError()

asVariantEmpty()

asVariantNull()

Query関数

Query関数は、オートメーション・メソッド／プロパティの戻り値から作成されたコンテナに対して用いられます。Query関数を次に示します。

isVariantBool()

isVariantCurrency()

isVariantDate()

isVariantError()

isVariantEmpty()

isVariantNull()

更新された関数

次の関数はVEE 6.0で更新されています。

whichOS() 戻り値に"Windows_98"と"Windows_2000"が追加されています。

createObject() リモート・ホスト・コンピュータ名を指定するオプションの第2パラメータが追加されています。

関連項目

実行モードの変更:VEE 3からVEE 4へ、実行モードの変更:VEE 4からVEE 5へ、実行モードの変更:VEE 6&7からVEE 8へ


実行モードの変更:VEE 6&7からVEE 8へ

Agilent VEE 8.0では、VEE 6&7、VEE 5、VEE 4、VEE 3の各実行モードは、それぞれの互換性定義を保持します。いくつかの小さな変更がありますが、元の実行モードで動作する既存のプログラムには影響しません。これらの変更は、旧モードから新モードにプログラムを変換する場合には知っておく必要があります。これについて以下で説明します。

VEE 8実行モードについて

VEE 8実行モードは、VEE 6&7モードのスーパーセットです。最大の変更は、VEE 8.0で2つのデータ型が追加されたことです。

新しいデータ型

Agilent VEE 8.0の新しいデータ型として、Int64とBooleanがあります。

? Int64 represents the value from -9223372036854775808 to 9223372036854775807 and has 22-bit data precision.

? Booleanは、TrueまたはFalseのどちらかになる値を表します。

? 新しいトランザクション・フォーマットWRITE TEXT INT64およびWRITE TEXT BOOLEANが、すべての実行モードのトランザクションに追加されました。すべての実行モードで、入力データはInt64またはBooleanに変換されます。VEEの実行モードによるプログラムの動作の変化については、実行モードを参照してください。

整数定数演算

整数定数演算で返されるデータ型が、VEE 8モードでは異なる可能性があります。

演算 | データ型
MaxInt32+1 | Int64
MaxInt32-1 | Int32
MaxInt64+1 | Data Overflow #514エラー
MaxInt64-1 | Int64
MinInt32-1 | Int64
MinInt32+1 | Int32
MinInt64-1 | Data Overflow #514エラー
MinInt64+1 | Int64

組み込み数値定数

? TrueとFalseは、VEE 8実行モードではBooleanデータ型です。これは.NETまたはCOMプロパティを直接設定するために使用できます。例えば、TreeViewのShowLineプロパティをFormulaで次のように設定できます。

TreeView.ShowLines = true;

? MaxInt64およびMinInt64は、最大のInt64定数と最小のInt64定数です。

? .NET Operation Builderは、VEE 6&7モードのasVariantBool( )の代わりに、VEE 8モードではBooleanデータ型に対してTrue/Falseを使用します。

VariantからAgilent VEEデータ型への変換 - VT_I8の追加

Variant配列メンバの型 | Agilent VEE 8.0データ型
VT_UI1 VT_BOOL VT_I2 VT_UI2 VT_I4 VT_I8 VT_UI4 VT_R4 VT_R8 VT_DATE VT_CY VT_BSTR VT_DISPATCH | UInt8 Boolean（Agilent VEE 8.0の新しいデータ型） Int16 Int16 Int32 Int64（Agilent VEE 8.0の新しいデータ型） Int32 Real32 Real64 Real64 Real64 Text Object

2つの新しい組み込み型変換関数

asBoolean()

asInt64()

関連項目

実行モードの変更 :VEE 5からVEE 6&7へ


実行モードの変更: VEE 8からVEE 85へ

実行モードの変更: VEE 8からVEE 8.5へ

Agilent VEE 8.5では、VEE 8、VEE 6&7、 VEE 5、VEE 4、VEE 3の各実行モードは、それぞれの互換性定義を保持します。いくつかの小さな変更がありますが、元の実行モードで動作する既存のプログラムには影響しません。これらの変更は、旧モードから新モードにプログラムを変換する場合には知っておく必要があります。これについて以下で説明します。

VEE 8.5実行モードについて

VEE 8.5実行モードは、VEE 8モードの スーパーセット です。最大の変更点は、VEE 8.5で新しいデータ型が導入されていることです。

新しいデータ型

UInt16はAgilent VEE 8.5の新しいデータ型です。UInt16は0～65535の値を表します。

すべての実行モードのトランザクションに、新しいトランザクション・フォーマットWRITE TEXT UINT16が追加されています。すべての実行モードで、入力データはUInt16に変換されます。VEEの実行モードによるプログラムの動作の変化については、実行モードを参照してください。

注記

VEEは、自動昇格規則に基づくデータ型変換をサポートします。UInt16とInt16は、どちらももう一方のサブセットではありません。UInt16とInt16の間の演算をスムーズにサポートするため、2つのデータ型をより高位のデータ型Int32に変換する規則になっています。例えば下の図では、出力のデータ型はInt32です。

VariantからAgilent VEEデータ型への変換 - VT_UI2の追加

Variant配列メンバ型 | Agilent VEE 8.5データ型
VT_UI1 VT_UI2 VT_BOOL VT_I2 VT_UI2 VT_I4 VT_I8 VT_UI4 VT_R4 VT_R8 VT_DATE VT_CY VT_BSTR VT_DISPATCH | UInt8 UInt16 （Agilent VEE 8.5の新しいデータ型） Boolean Int16 Int16 Int32 Int64 Int32 Real32 Real64 Real64 Real64 Text Object

新しい組込み型変換関数

asUInt16()

VEEのサンプル間隔計算方法の変更

VEE 8.5実行モードでは、VEEの波形データ（時間上にマッピングされた時間サンプリング・データ）の処理方法が修正されています。

VEE 8実行モード以前では、波形の表示やあらゆる種類の信号処理の実行の際に、間違った数のポイントを使ってサンプル間隔が計算されます。例えば、次のプログラムで、Xマーカの値は正しくは1mと表示されるはずですが、実際には0.9375mと表示されます。

その理由は、サンプル間隔がタイムスパン/ポイント数で計算され、サンプル間隔として0.000625（0.001/16）という間違った値が得られるからです。このため、Xマーカの値は0.9375m（0.000625*15）と表示されます。

正しくは、サンプル間隔はタイムスパン/(ポイント数 - 1)で計算すべきです。16個のポイントがあるので、サンプル間隔は0.001/(16-1) = 6.667e-5であり、Xマーカは1mになります。

VEE 8.5実行モードではこの問題が解決され、正しいサンプル間隔が求められるようになりました。下の図は、VEE 8.5実行モードでの同じプログラムを示します。Xマーカは1mと表示されています。

関連項目

実行モードの変更: VEE 3からVEE 4へ、実行モードの変更: VEE 4からVEE 5へ、実行モードの変更: VEE 5からVEE 6へ、実行モードの変更: VEE 6&7からVEE 8へ


参考文献

本書で説明している計測器制御に関する詳細情報については、以下の文献を参照してください。

Tutorial Description of the Hewlett-Packard Interface Bus (Hewlett-Packard Company, 1987)、パーツ番号5021-1927

このドキュメントでは、IEEE 488.1およびIEEE 488.2に含まれる重要な概念について簡潔に説明しています。IEEE 488.1インタフェースについて知りたい場合に初めて読むのに最適です。

IEEE Standard 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation (The Institute of Electrical and Electronics Engineers, 1987).

この標準は、GPIB（IEEE 488.1）インタフェースの設計と構築に必要な技術的詳細を定義しています。この標準には、ほとんどのプログラマが知る必要がない電気的仕様とプロトコルに関する情報が含まれています。

IEEE Standard 488.2-1987, IEEE Standard Codes, Formats, Protocols, and Common Commands For Use with ANSI/IEEE Std 488.1-1987 (The Institute of Electrical and Electronics Engineers, 1987).

このドキュメントは、SCPI（Standard Commands for Programmable Instruments）を実装した計測器で使用されるメッセージ・フォーマットとデータ型を説明しています。

IEEE Standard 728-1982, IEEE Recommended Practice For Code and Format Conventions For Use with ANSI/IEEE Std 488-1978, etc.(The Institute of Electrical and Electronics Engineers, 1983).

VMEbus Extensions for Instrumentation（以下を含む）:"VXI-0, Rev. 1.0: Overview of VXIbus Specifications"および"VXI-1, Rev. 1.4: System Specification," VXIbus Consortium, Inc., 1992.

HP VISA User's Guide (Hewlett-Packard Company, 1998)、パーツ番号E2090-90035

このドキュメントは、独自のVXIplug&playドライバを作成するユーザに役立つもので、VXIplug&playドライバのアドレス指定と使用に関する詳細情報が記述されています。


コンパイラについて

コンパイラを使用して、ActiveXオートメーション／コントロールを挿入するには、Execution ModeをVEE 6&7以上に設定します。VEE 3プログラムをVEE 8モードに変換したい場合、各モードでプログラムの実行上の違いが多少あるので、まずVEE 4、VEE 5、VEE 6&7モードで動作することを確認してください。

注記

このセクションの内容を十分に理解していなくても、コンパイラを使用することはできます。このセクションでは、コンパイラの背後にある概念を参考までに説明しているに過ぎません。コンパイラに関する情報は、わずかな変更がある以外は、VEE 4以上のモードに当てはまります。

コンパイラは、VEE 4、VEE 5、VEE 6& 7またはVEE 8モードで動作するプログラムに有効です。VEEコンパイラは、VEEプログラムをpコードに変換しますが、機械語や実行可能プログラムは作成されません。

コンパイラを使用することにより、VEEは以下のことが可能です。

  • （実行時に決定するのではなく）コンパイル時にオブジェクトの実行順を予測する

  • 特定のデータ・ライン上を流れるデータ型を決定する

  • コード作成を最適化する

  • 指定のVEEオブジェクトに最適なpコードを作成し、実行する

[Run] ボタンを押すと、VEEプログラムは透過的にコンパイルします。Show Execution Flow、Show Data Flow、Line Probeだけでなく、ステップ実行とブレークポイントもフル・サポートされています。

未変更の同じプログラムを続けて実行する場合は、再コンパイルは不要です。プログラムが変更された場合は、再コンパイルが必要なコンテキストだけが再コンパイルされます（インクリメンタル・コンパイラによく似ています）。コンパイラの使用はほとんどのプログラムに有効ですが、実際の結果は異なります。例えば、多くのレベルのネスト・ループを使用するプログラムは、多くのI/Oまたは画面（表示）を更新するプログラムに比べてスピードが大幅に向上する可能性があります。

コンパイル済みモードでは、反復子と式の実行速度が最も向上します。以前のバージョンのVEEで作成されたプログラムは、コンパイラを使用してもまったく同じように動作しない場合があります。これは、特定のプログラミング方法、文書化されていない副作用の使用または文書化された動作のごくわずかな変更に起因する可能性があります。


計測器制御の基本

VEEは、計測器と通信するための数種類のオブジェクトに対応しています。

この表 は、これら計測器制御オブジェクトの違いの概要を示したものです。

VEEオブジェクト | 計測器へのアクセス | 主な利点 | サポートされるインタフェース
Direct I/O | 任意の計測器と直接通信。 | 高速I/O。任意の計測器を制御可能。 | GPIB、シリアル、GPIO、VXI、LAN。
To/From VXIplug&play | 計測器メーカが提供する各プラットフォームに固有のVXIplug&playドライバが必要。VISAのインストールが必要。 | 高速I/O。複数のソフトウェア・アプリケーションがドライバを使用可能。 | GPIB、VXI、USB、LAN、シリアル。
IVI-COM Driver | IVIドライバがインストールされた計測器と通信。 | 計測器の互換性。 | GPIB、VXI、LAN、USB、シリアル。
NIDAQ Driver | ドライバは数種類のインタフェース経由でNational Instrumentsのカードとトーク。 | 計測器の使用が簡単。 | NI-DAQmx、NI-DMM、NI-SCOPE、NI-FGEN、NI-SWITCH、従来型NI-DAQ。
Multi-Instrument Direct I/O | 複数の計測器と直接通信。 | 高速I/O。任意の計測器を制御可能。 | GPIB、シリアル、GPIO、VXI、LAN。
Panel Driver | VEEに付属の計測器パネル・ドライバが必要。b | 使いやすい。 | GPIBおよびVXI。
Component Driver | VEEに付属の計測器パネル・ドライバが必要。 | パネル・ドライバより高速のI/O。 | GPIBおよびVXI。
PC Plugin Card Driverc | 計測器メーカが提供するODASドライバが必要。 | 高速I/O。複数のソフトウェア・アプリケーションがドライバを使用可能。 | PCプラグイン・スロット。

b.　パネル・ドライバは「VEEドライバ」と呼ばれることもあります。

c.　VEE 8.0では、PCプラグイン・カードは使用できなくなりました。

To/From VXIplug&play、Panel Driver、Component Driver、IVI-COM Driver、NIDAQ Driveおよび Plug&Play Driverオブジェクトを使用すれば、計測器のプログラミング・ニーモニック／文法の詳細を学ばなくても、計測器を制御できます。下位レベルのニーモニックを送信することによって計測器と通信したい場合や、計測器に使用可能なドライバがない場合は、Direct I/Oを使用します。

注記

1つのVEEプログラムでこれらすべての方法を使用することによって、各種計測器と通信することができます。ただし、同じプログラムで同じ計測器と通信するために、VXIplug&playドライバと他の何らかの方法を組み合わせて使用しないでください。予期しない結果が生じるおそれがあります。


Direct I/Oの概要

Direct I/Oオブジェクトを使うと、ファイルを読み書きするのと同じ方法で、任意の計測器データを読み書きできます。これにより、計測器のプログラム可能な任意の機能に自由にアクセスできます。Direct I/Oを使用するには計測器ドライバ・ファイルは不要ですが、計測器のプログラミング・コマンドについて詳細に理解しておく必要があります。Direct I/Oを使ってGPIB、VXI、シリアル・デバイスと通信するには、I/Oライブラリがインストールされている必要があります。

Direct I/Oオブジェクトは、ラーン・ストリングに対する簡便なサポートも提供します。ラーン・ストリングとは、一部の計測器でサポートされる特殊な機能です。この機能を使用するには、まず物理計測器のフロント・パネルから測定ステートを設定します。設定がすんだら、Direct I/Oのオブジェクト・メニューで[Upload]を選択すると、計測器の測定ステート全体がVEEにアップロードされます。Direct I/Oオブジェクトを使って、プログラムから測定ステートをリコールできます。

Direct I/Oの例

次の図は、HP 34401Aマルチメータから識別文字列を取得するように設定されたDirect I/Oオブジェクトを示します。

Direct I/Oオブジェクトの最初のトランザクションは、テキスト文字列*IDN?をGPIBアドレス722のHP 34401Aに書き込みます。これにより、HP 34401Aは識別文字列を送信し、2番目のトランザクションがそれを読み取って、AlphaNumericオブジェクトに出力します。

Direct I/Oを使用するためにVEEを設定する方法については、Direct I/Oオブジェクトの設定を参照してください。Direct I/Oオブジェクトを使用する方法については、Direct I/Oオブジェクトの使用法を参照してください。

MultiInstrument Direct I/O

MultiInstrument Direct I/Oオブジェクトを使うと、1つのオブジェクトで複数の計測器をDirect I/Oトランザクションを使って制御できます。このオブジェクトの外観はDirect I/Oオブジェクトと同じですが、MultiInstrument Direct I/Oオブジェクトの各トランザクションはそれぞれ別の計測器を対象とすることができます。

このオブジェクトは標準のトランザクション・オブジェクトであり、VEEがサポートするすべてのインタフェースに対して動作します。MultiInstrument Direct I/Oオブジェクトは1つの計測器を制御するとは限らないので、タイトルには計測器名、アドレス、ライブ・モード条件が表示されません。

MultiInstrument Direct I/Oを使用すると、プログラム中の各計測器専用のDirect I/Oオブジェクトの数を減らすことができます。これによる性能の向上が特に重要なのは、計測器制御がGPIBよりも高速なVXIインタフェースの場合です。

下の図は、MultiInstrumentDirectI/Oオブジェクトとその[I/O Transaction]ダイアログ・ボックスです。このオブジェクトは、HP E1413B、HP E1328、HP 3325と通信するように設定されています。

MultiInstrument Direct I/Oオブジェクトの使用法の詳細については、「MultiInstrument Direct I/Oオブジェクトの使用法」を参照してください。


VXIplug&playの概要

VXIplug&playは、複数のメーカが互換性のあるハードウェアやソフトウェアを提供できるようにするためのインタフェース仕様です。VXIplug&playドライバは、特定の計測器を制御するための関数のライブラリです。ドライバはハードウェア・ベンダが作成し、計測器に付属しています。

VXIplug&playドライバは、VXI以外の計測器に対して作成することもできます。

VEEバージョン3.2からVEE 6.0までは、WIN95/98またはWINNTのVXIplug&play仕様バージョン3.0以上をサポートします。VEEバージョン7.0はHP-UXとWindows 95をサポートしません。VEEバージョン8.0はWindows XPまたはWindows 2000をサポートします。Windows 98およびWindows NTはVEE version 8.0ではサポートされません。VEEバージョン8.5はWindows XP、Windows 2000またはWindows Vistaをサポートします。

使用前の準備

VXIplug&playの使用を開始する前に、以下の手順を実行しておく必要があります。

1 インタフェース（GPIBまたはVXI）をインストールします。

2 VISAをインストールします。Agilentのインタフェース・カードを使用している場合、VEEに付属するVISAを使用してください。詳細については、Agilent I/Oライブラリのインストール（Windows版VEE）を参照してください。それ以外の場合は、インタフェース・カードに付属するVISAをインストールしてください。

3 各ハードウェア・インタフェースに対してVISAを設定します。Agilentインタフェース・カードを使用している場合、Agilent I/Oライブラリのインストールの手順を実行してください。それ以外の場合は、インタフェース・メーカが指定する手順でVISAを設定してください。

注記

VISA（Virtual Instrument Software Architecture）は、VXIplug&playドライバが計測器を制御するために使用するI/Oライブラリです。VISAはVXIplug&playに必要であり、VXIplug&playドライバが使用するVISA関数呼び出しを提供します。

必要なもの

VEEでは、VXIplug&playドライバのそれぞれに対して以下の4つのファイルが必要です。

ライブラリ・ファイル

関数パネル・ファイル

ヘッダ・ファイル

ヘルプ・ファイル

これらのファイルは、各VXIplug&playドライバとともにインストールされるファイルに常に含まれています。他のファイルもインストールされます。

注記

VXIplug&playドライバによっては、一部のフレームワーク（プラットフォーム）をサポートしないものがあります。また、VISAのいくつかのバージョンは一部のプラットフォームでサポートされません。各ベンダに確認してください。

VXIplug&playドライバのインストール

各ドライバに必要なファイルのセットをインストールするには、ドライバに付属する計測器メーカによる説明を参照してください。

ファイルの場所

VXIplug&playファイルは、WINNT\ディレクトリの下にあります。この場所は、VISAのインストール時にレジストリに記録されたルート・ドライブおよびディレクトリを基準としています。ルート・ドライブおよびディレクトリのデフォルト値は、C:\Program Files\VISA\です。

下の表は、VEEが必要とするVXIplug&playドライバ・ファイルを示します。

ファイル名a | 場所 | 目的
PREFIX_32.DLL | BIN | 計測器ドライバ・ライブラリ
PREFIX.FP | PREFIX | 計測器ドライバ関数パネル・ファイル
PREFIX.H | INCLUDE | 計測器ドライバ・ヘッダ・ファイル
PREFIX.HLP | PREFIX | 計測器ドライバ・ヘルプ・ファイル

a PREFIXは、HPE1410などの計測器名を表します。

用語のまとめ

VXIplug&playドライバの使用法は、VEEの他の種類のI/Oとは異なっています。各要素の働きについて以下に説明します。

VEEプログラムはVXIplug&play関数を呼び出します。

関数は、VXIplug&playドライバの一部です（関数は関数パネルを通じて設定できるパラメータを持つ場合があります）。関数はVISAソフトウェアを通じて計測器と通信します。

計測器はVISAを通じて関数パラメータにデータを返します。

VXIplug&playのサンプル・プログラム

下の図は、To/From VXIplug&playオブジェクトを使って、HP E1410Aマルチメータで電圧測定を開始し、測定値を取得するサンプル・プログラムです。

その他の情報

VXIplug&playを使用するためのVEEの設定方法については、VXIplug&playドライバの設定を参照してください。VEEでのVXIplug&playの使用方法については、VEEプログラムの実行とCallオブジェクトからのVXIplug&play関数の使用法を参照してください。


概要

プログラムの互換性：

以前のバージョンのVEEでは、VXIplug&play ドライバを使用できました。VEEバージョン3.2では、To/From VXIplug&play オブジェクトが提供されていました。このオブジェクトを使用するVEE 3.2プログラムは、その後のバージョンのVEEと互換性があります。

VEEバージョン3.1では、VXIplug&play ドライバに対する直接Callアクセスだけが提供されていました。VEEバージョン3.1でCallオブジェクトを使用してVXIplug&play 計測器を制御していた場合、32ビット・バージョンのドライバを使用するためにいくつかの変更を行えば、その後のバージョンのVEEでもプログラムは動作します。

32ビット・バージョンのVXIplug&playドライバをインストールする必要があります。必要に応じて、VXIplug&play ドライバの新しい位置を使用するようにImportオブジェクトを変更することも可能です。Callオブジェクトを使用したVXIplug&play ドライバへのアクセス方法については、 CallオブジェクトからのVXIplug&play関数の使用を参照してください。

VXIplug&play ドライバを使用して計測器と通信するには、適切なVXIplug&playドライバ・ファイルとVISA I./Oライブラリをインストールする必要があります。VISAのインストールについては、VXIplug&playの概要を参照してください。VXIplug&playドライバ用の構成の説明に従って、VEEも計測器用に設定する必要があります。

VEEでVXIplug&play ドライバと通信するための主な手段は、To/From VXIplug&playオブジェクトを使用することです（次のセクションを参照）。VEE Call オブジェクトからVXIplug&play 関数をコールすることもできます（CallオブジェクトからのVXIplug&play関数の使用を参照）。後者の方法は、VEEバージョン3.1との下位の互換性を実現します。


VEEプログラムの実行

To/From VXIplug&playオブジェクトのトランザクションは、上から下に実行されます。このセクションでは、To/From VXIplug&playオブジェクトが実行されたときに何が起こるかについて説明します。

ドライバの初期化とクローズ

プログラムをロードまたは作成した後で初めて実行するときには、To/From VXIplug&playオブジェクトから制御される計測器を初期化するための遅延が発生します。この初期化により、計測器は既知の初期状態に設定されます。その後にプログラムを実行するときには、プログラムは初期化動作なしで普通に実行されます。

プログラムから制御される各計測器は、VEEセッション中で1回初期化する必要があります。VXIplug&playリソース・マネージャは、計測器検索を実行することにより、指定されたアドレスに計測器が接続されていることを確認し、計測器を既知の状態に設定します。これにかかる時間は不定ですが、計測器1台あたり最大10秒程度です。この遅延は、各計測器に対するTo/From VXIplug&playオブジェクトが初めて実行されるときに発生します。

初期化は1回のVEEセッションで1回しか行われないので、プログラムを実行するたびに計測器を既知の状態に設定する関数（クリア、リセットなど）を実行する必要があります。他のプログラムをロードするかVEEを終了すると、VXIplug&playドライバは自動的にクローズされます。

初期化の詳細情報

このセクションでは、VXIplug&playの初期化のVEEにおける実装に関わる詳細を説明します。このセクションの内容は、VXIplug&playドライバを使用するVEEプログラムを作成するにあたって必ずしも必要ではありません。

各VXIplug&playドライバには、PREFIX_init()関数とPREFIX_close()関数が必要です。これらの関数は、VEEから自動的に呼び出されます。

init()関数の目的は、計測器を既知の状態に設定し、「セッション・ハンドル」を取得することです。VEE Nameで指定される計測器には、プログラムで最初に実行されるときに、固有のセッション・ハンドルが割り当てられます。このセッション・ハンドルは、プログラム全体でその計測器を一意に識別するために用いられます。

同じ計測器（同じVEE Name）と通信するすべてのTo/From VXIplug&playオブジェクトは、同じセッション・ハンドルで識別されます。セッション・ハンドルは、関数パネルの[Panel]タブの左下隅にある[vi]フィールドに表示されます。VEEは、このセッション・ハンドルをさまざまなTo/From VXIplug&playオブジェクトの間で自動的に受け渡します。

init()呼び出しには通常時間がかかるので、この関数は必要なときにしか呼び出されません。プログラム中で最初のTo/From VXIplug&playオブジェクトが呼び出されるときに、対応するinit()関数が呼び出されます。init()が呼び出されると、ドライバの設定に応じて、ID問合せやリセットが実行される場合もあります。

close()関数の目的は、セッション・ハンドルをクローズし（ハンドルの数は限られているので）、計測器をオフラインにし、計測器に関連するデータをクリアし、必要な場合は計測器固有の動作を実行することです。VEEは以下の場合にclose()関数を呼び出します。

[New]、[Open]、[Exit]のいずれかが選択された場合。

1つのVEE Name（dvmなど）に対するすべてのTo/From VXIplug&playオブジェクトが削除された場合。

VXIplug&playの[Instrument Properties]ダイアログ・ボックスで[Address]またはinit()のパラメータ値が変更された場合。この場合、close()が呼び出された後、init()が新しい値で再び呼び出されます。

エラーおよび注意チェック

各トランザクションが実行された後で、関数はVEEにステータス値を返し、VEEはこの値を自動的にチェックします。値が関数の正常終了を示す場合、次のトランザクションが実行されます。

エラー・チェック 返されたステータス値がエラーを示す場合、VEEはプログラムを停止し、エラーを報告します。エラーをトラップするためのエラー出力ピンがある場合、プログラムは停止せず、エラー出力ピンが伝達します。エラー・メッセージの詳細を得るには、errorInfo()オブジェクトを使用します。

VEEは自動的にPREFIX_error_message()関数を呼び出して、メーカが提供しているエラー情報をVXIplug&playドライバから入手します。この情報は、VEEのエラー・メッセージに出力されるか、errorInfo()から得られます。

注記

エラーが発生したあと、計測器は不明な状態になります。プログラムの先頭でリセットまたはクリア関数を呼び出していない場合、次にプログラムを開始したときには計測器の状態は不明です。

注意チェック 返されたステータス値が注意を表す場合、プログラムは休止し、注意ダイアログ・ボックスを表示します。注意ダイアログ・ボックスには、計測器メーカが提供している情報が表示され、ユーザはプログラムの実行を継続するか停止するかを選択できます。

注意メッセージはプログラムでトラップすることはできません。ただし、ドライバからの一般的な注意メッセージがわかっている場合は、VEEプログラムで処理することができます。例えば、計測器がデータを読み取る準備ができていないことを示す注意メッセージが発生する場合、Delayオブジェクトを使用するか、To/From VXIplug&playオブジェクトをループに入れて読み取りを再試行することができます。

VEEプログラムで既知の注意条件を処理する場合、注意メッセージ・ダイアログ・ボックスが表示されないようにしたいことがあります。このためには、To/From VXIplug&playオブジェクトの[Properties]ダイアログ・ボックスで、[Ignore Cautions Returned]チェック・ボックスを選択します。

注記

一般的に、注意メッセージを無視する（Ignore Cautions Returnedチェック・ボックスをチェックする）ことは不要であり、プログラムで注意条件を処理する方法がわかっていない限り、推奨されません。

パラメータの受け渡し

VXIplug&play仕様によれば、データを要求する際には、メモリを割り当ててドライバに渡す必要があります。いくつかのVXIplug&play関数は、読み取ったデータを配列に格納します。これらのVXIplug&play関数の多くは、渡された配列のサイズを指定するパラメータを持ち、配列の大きさが不十分な場合はエラーを発生します。この場合、任意の大きさの配列を割り当て、その大きさを関数に通知します。関数は指定されたサイズを超えて配列にデータを書き込むことはありません。

注意

VXIplug&play関数の中には、渡された配列が読み取ったデータに対して十分大きいと仮定し、サイズを考慮せずに書き込むものもあります。これは特にText文字列の場合に一般的です。割り当てたメモリが不十分な場合、この動作によってメモリが上書きされ、一般保護違反やセグメンテーション違反が発生するおそれがあります。VXIplug&play DLLはVEEに直接リンクされるので、このような条件が起きるとVEEがクラッシュして終了する場合があります。

注記

配列または文字列データ入力に対してメモリを割り当てる最も簡単な方法は、Auto-Allocate機能を使用することです。「VXIplug&play関数パネルに関するヘルプの表示」を参照してください。割り当てるサイズはユーザが決定する必要がありますが、サイズを指定すればメモリは自動的に割り当てられます。

データに対して必要なメモリの大きさを知るには、ドライバのヘルプ・ファイルを参照してください。To/From VXIplug&playオブジェクトのオブジェクト・メニューで[Instrument Help]を選択します。このヘルプ・ファイルには、配列に必要な大きさが記述されています。

Auto-Allocateを使用しない場合、メモリを割り当てるオブジェクトを作成し、To/From VXIplug&playオブジェクトのデータ入力端子に接続する必要があります。

配列入力の場合、適切な型のAlloc Arrayオブジェクトを使用し、サイズを適切に設定します。

文字列入力の場合、Formulaオブジェクトを使用します。Formulaオブジェクトからデータ入力端子を削除し、256*"a"といった式を入力します。これにより、長さ256文字（およびヌル・バイト）の"a"だけからなる文字列が作成されます。ほとんどのVXIplug&play関数は、256文字を超えてTextパラメータに書き込むことはありません。ただし、念のため、Text入力を必要とする関数の関数パネルでヘルプを確認してください。

サンプル・プログラム

下の図は、To/From VXIplug&playオブジェクトを使ってHP E1410A VXIマルチメータと通信する単純なプログラムです。

VXIplug&playの制限

VEEでVXIplug&playドライバを使用する場合、いくつかの制限があります。

Agilent IO MonitorオブジェクトはVEE自体によるI/Oだけを表示するので、VXIplug&playドライバによるI/Oは表示しません。VXIplug&playドライバは、VEEにリンクされるCのプログラムです。必要な場合、ハードウェア・バス・モニタを使用することをお勧めします。

VXIplug&play仕様で必須とされていないオプションの機能の一部（コールバックなど）は、VEEではサポートされません。

[I/O] [image] [Advanced I/O]オブジェクト（Interface Operations、Instrument Event（SPOLL）、Interface Eventなど）は、すべてVXIplug&playではサポートされません。

VXIplug&playはLIVE MODE/NOT LIVE MODEの概念をサポートしません。プログラムを実行する際には、プログラムで使用されるすべての計測器がコンピュータに接続されている必要があります。ただし、プログラムで使用される計測器が接続されていない状態でプログラムを開くことはできます。また、計測器が接続されていなくてもプログラムを作成することはできます。VXIplug&playドライバがインストールされていれば、To/From VXIplug&playオブジェクトを使用し、関数呼び出しを指定することは可能です。

VXIplug&playドライバとその他のVEE計測器制御方法（Direct I/O、Panel Driver、Component Driverオブジェクト）の両方を、同じプログラムで同じ計測器と通信するために使用することはできません。ただし、ある計測器に対してVXIplug&playドライバを使用し、同じプログラムで別の計測器に対して他の計測器制御方法を使用することはできます。

注記

VXIplug&play仕様には、常に更新や拡張が加えられています。VEEのリビジョンの間に、VXIplug&playコンソーシアムによって新しい機能が仕様に追加される可能性もあります。VXIplug&play仕様ではリビジョン情報をドライバ・ライブラリに含めることは規定されていないため、VEEはドライバの互換性をチェックできません。したがって、現在サポートされるVXIplug&play仕様にドライバが適合するかどうかをメーカに確認する必要があります。


CallオブジェクトからのVXIplug&play関数の使用法

以下のような場合、VXIplug&playをVEEのCallオブジェクトから使用できます。

既存のプログラムとの互換性が必要な場合:VEEバージョン3.1で作成したプログラムでVXIplug&playが使われており、そのプログラムを最小限の変更で使い続けたい場合です。ただし、そのプログラムを長期間にわたって保守する予定がある場合は、「To/From VXIplug&playオブジェクトの使用」の手順に従って、To/From VXIplug&playオブジェクトによる標準の関数パネル・アクセスを使用するように作り直した方がよいでしょう。

古いドライバにアクセスする場合:HP以外のVXIplug&playドライバの古いバージョン（1995年以前のもの）には、VXIplug&play仕様の古いバージョンに基づいて作成されているものがあります。これらのドライバにはVEEのCallオブジェクトを通じてアクセスできます。

上記の理由がない場合は、「To/From VXIplug&playオブジェクトの使用」に記述された方法によってVXIplug&playドライバを使用してください。

VEEでのダイナミック・リンク・ライブラリまたは共有ライブラリの使用法

このセクションでは、必要なファイルがインストールされた後で、VXIplug&playドライバをVEEにロードする手順を説明します。

VEEプログラムでVXIplug&playドライバを使用するには、次の手順を実行します。

1 ライブラリをインポートします。

2 ライブラリを使用するルーチンを実行します。

3 プログラムが終了したらライブラリを削除します。

この手順に関連するVEEオブジェクトは、Import Library、Call、Delete Libraryの3つです。

ライブラリのインポート

Callオブジェクト（またはFormulaオブジェクト）を使ってドライバを実行する前に、Import Libraryオブジェクトを使って関数をVEE環境にインポートしておく必要があります。

Import Libraryオブジェクトで、[Library Type]の下の[Compiled Function]を選択します。[Definition File]ボタンを使って、PREFIX.hのパスと名前を入力します。ドライバ・ファイルの場所を参照してください。

次に、[File File]ボタンを使って、PREFIX_32.DLLのパスと名前を選択します。[Library Name]ボタンは、関数のセットに論理名を割り当てるものです。名前はPREFIXと同じにすることをお勧めします。ここで、PREFIXはHP E1410などの計測器名を表します。

Callオブジェクトでドライバを使用するためには、Callオブジェクトを設定する必要があります。このための最も簡単な方法は、Import Libraryオブジェクト・メニューで[Load Lib]を選択して、ドライバ・ファイルをVEE環境にロードすることです。[Device]メニューからCallオブジェクトを作成します。次に、Callオブジェクト・メニューで[Select Function]を選択します。VEEは、ヘッダ・ファイルに記載されている関数のうち、ドライバ・ファイルからエクスポートされているものすべてのリストをダイアログ・ボックスに表示します。

VEEからのVXIplug&playドライバの呼び出し

VXIplug&playドライバを呼び出すにはCallオブジェクトを使用します。

呼び出しの順序 VXIplug&playドライバでは呼び出しの順序が非常に重要です。正しい順序は次のとおりです。

1 初期化関数を呼び出します（この関数はセッション・ハンドルを返します）。

2 初期化関数から返されたハンドルを使ってドライバを呼び出します。

3 クローズ関数を呼び出します。

初期化関数 初期化関数PREFIX_initには、3つの入力ピンと2つの出力ピンがあります。

3つの入力パラメータは次のとおりです。

計測器アドレス

VXIplug&playのアドレス指定については、「VXIplug&playドライバの設定」を参照してください。

ID確認フラグ

このフラグが1の場合、初期化関数は計測器の識別情報を確認します。そのために、"*IDN?"問合せまたは計測器メーカが指定する他の方法を使って、メーカIDとモデル番号が確認されます。確認を行いたくない場合はこのフラグを0に設定します。

リセット・フラグ

このフラグを1に設定すると、初期化関数は計測器を既定義の状態にリセットします。リセットを行いたくない場合はこのフラグを0に設定します。

2つの出力パラメータは次のとおりです。

戻り値

VXIplug&playによれば、VXIplug&playドライバの戻り値は、実行された動作のステータスを表すと定義されています。返された整数を意味のあるメッセージに変換するには、別のCallオブジェクトからPREFIX_error_queryを呼び出します。戻り値が0の場合、init()の呼び出しは成功しています。

VXIplug&play関数ハンドル

初期化関数が0の場合、出力パラメータには計測器ハンドルが格納されています。計測器ハンドルは、関数呼び出しをこの初期化と関連付ける数値です。ほとんどのVXIplug&play関数は、入力パラメータとしてこのハンドルを必要とします。

初期化関数を呼び出すたびに、それぞれ異なるハンドルが出力パラメータviに返されます。このパラメータの名前はsession handleなど別のものに変更することもできますが、常にinit()関数から返される最後のパラメータでなければなりません。close()関数が呼び出されると、ハンドルはシステムに返されます。

VXIplug&play関数の呼び出し 他の関数もCallオブジェクトを使って呼び出すことができます。関数を呼び出すたびに、PREFIX_init関数から返されたハンドルをCallオブジェクトのinstrID入力ピンに渡す必要があります。

他の一般的なVXIplug&play関数の使用法 PREFIX_initおよびPREFIX_close関数の他に、VXIplug&playドライバには他の一般的なドライバ関数が実装されている場合があります。このような関数には、PREFIX_reset、PREFIX_self_test、PREFIX_revision_query、PREFIX_error_query、PREFIX_error_messageがあります。

パラメータでの配列の使用 VXIplug&play仕様では、配列またはテキスト・パラメータのための領域は呼び出し側で割り当てることと定められています。すなわち、VEEで配列のメモリを割り当ててから、それをパラメータとしてVXIplug&play関数に渡す必要があります。例を参照してください。

クローズ関数の使用 クローズ関数PREFIX_closeには、1つの入力パラメータがあり、出力パラメータはありません。入力パラメータはPREFIX_initから返されたハンドルです。PREFIX_closeを実行すると、計測器がオフラインになり、計測器ハンドルに関連するデータはクリアされます。他に、計測器をクローズするためのドライバに固有の動作が実行される場合もあります。これ以後、このハンドルを計測器関数で使用することはできません。新しいハンドルを得るには、PREFIX_initルーチンをもう一度呼び出す必要があります。

ライブラリの削除

VXIplug&playドライバの使用が終わったら、ロードしたドライバの1つ1つに対してDelete Libraryオブジェクトを呼び出す必要があります。ライブラリをアンロードした後、そのライブラリを使用する関数を呼び出すには、Import Libraryオブジェクトを使ってライブラリを再ロードする必要があります。

単純な例

VEEでVXIplug&playドライバを使用したプログラムの例を次に示します。このプログラムは、ライブラリをインポートし、デバイスを初期化し、デバイスをクローズし、ライブラリを削除します（プログラムの各スレッドは、[Start]ボタンを使って独立に開始されます）。

実用的な例

下の図は、VXIplug&playドライバを使用したより実用的なプログラムの例で、出力パラメータとして使用する配列を割り当てています。

使い方のヒント

ハンドルの記録 PREFIX_initから返されたハンドルは、以降のドライバ関数で使用する必要があります。このためには次の2つの方法があります。

ピンの接続

PREFIX_initルーチンのデータ出力ピンを各関数のviデータ入力ピンに接続することにより、ハンドルの値を渡すことができます。

グローバル変数によるハンドルの記録

ハンドルをグローバル変数に記録することができます。PREFIX_initルーチンから返されたハンドルを、Set Globalオブジェクトに接続します。ハンドルを使用する関数は、Get Globalオブジェクトからハンドルを取得します。

制御フロー ドライバは特定の順序（初期化、関数呼び出し、クローズ）で動作を実行する必要があります。VEEプログラムは、ハンドルを使用するすべての関数に対してハンドルが有効であることを保証するように作成する必要があります。


To/From VXIplug&playオブジェクトの使用法

VXIplug&play計測器をVEEの計測器設定に追加したら、VXIplug&playドライバをプログラムで使用できます。ドライバに含まれる関数を使って、計測器にアクセスできます。To/From VXIplug&play オブジェクトは、VXIplug&play関数パネルへのアクセスを可能にします。

To/From VXIplug&playオブジェクトを取得するには:

[I/O] [image] [Instrument Manager]を選択します。Instrument Managerが表示され、現在設定されているすべてのVXIplug&play計測器（および設定されているその他の計測器）が表示されます。

通信相手の計測器を選択し、[Plug&play Driver] ボタンをクリックします。オブジェクトの輪郭線が表示されます。

To/From VXIplug&playオブジェクトの輪郭線を作業領域の適切な位置に配置し、マウス・ボタンをクリックします。オブジェクトが次のように表示されます

関数の選択

VXIplug&play関数をTo/From VXIplug&play オブジェクトから選択します。

1. 空のトランザクションをダブルクリックするか、オブジェクト・メニューから [Add Trans]または[Insert Trans] を選択します。 [Select a Function Panel] ダイアログ・ボックスが表示されます。これには、関数パネルが Measure（測定） や Configure（設定）などの論理的なカテゴリに分類されて表示されます。カテゴリはドライバごとに異なります。

 [+]アイコンをクリックすると、関数パネルの階層構造が表示されます。

 [-]アイコンをクリックすると、関数パネルの階層構造が非表示になります。

 [f(x)]アイコンをクリックすると、関数パネルを選択できます。関数パネルの簡単な説明がダイアログ・ボックスの下部に表示されます。

ツリーの枝を完全に展開するには、展開する項目を選択して*キーを押します。

一般的には、VXIplug&playバージョン3.x仕様に適合し、VEEで使用可能な関数パネルだけが表示されます。

注記

VEEは適切なタイミングでinit()を自動的に呼び出します。ただし、init_all()、init_next()、init_first()などのその他の初期化関数がリスト中に存在する場合もあります。これらの関数はVXIplug&play仕様に定義されておらず、VEEではサポートされません。

これらの関数は選択しないでください。これらの関数を使用する必要がある場合、プログラムの作成方法を変えて、VXIplug&playドライバをCallオブジェクトから呼び出す必要があります。これについては、「CallオブジェクトからのVXIplug&play関数の使用法」を参照してください。

PREFIX_init()やPREFIX_close()のエントリはありません。
これらの関数は、VEEから自動的に実行されます。

2 [Select a Function Panel]ダイアログ・ボックスで [OK] をクリックします。

3 [Edit a Function Panel]という名前のタブ付きのダイアログ・ボックスが表示されます。ここから関数パネルのパラメータを指定できます。

関数パネルのパラメータの編集

[Edit a Function Panel]ダイアログ・ボックスでは、選択したVXIplug&playドライバの関数に渡すコントロールや変数を設定できます。[Panel]と[Configuration]の2つのタブがあります。

[Panel]タブ:[Panel]タブでは、関数に渡す定数（コントロール）値を指定できます。

Controls - このダイアログ・ボックスの上の部分には、定数パラメータを指定するためのコントロールが存在します。コントロールの名前は、関数パネル・ファイルで指定されたラベルです。

vi - 計測器の固有の仮想計測器ハンドル（セッション・ハンドルとも呼ぶ）を表示します。ドライバのバージョンによっては、このフィールドの名前は異なる可能性がありますが、位置は常に関数パネルの左下隅です。

Error - この関数パネルの実行中にエラーが発生した場合は0でない値を表示します。ドライバのバージョンによっては、このフィールドの名前は異なる可能性がありますが、位置は常に関数パネルの右下隅です。

Function call - ダイアログ・ボックスの下部には、オブジェクトが実行されたときにドライバに送られるC関数とパラメータが表示されます。このコマンド文字列は、オブジェクトのオープン・ビューにトランザクションとしても表示されます。

VXIplug&play関数パネルに関するヘルプの表示

[Edit Function Panel]ダイアログ・ボックスでは、[Panel]タブの背景でマウスの右ボタンをクリックすることにより、関数パネルに関するヘルプを表示できます。関数の説明を記載したダイアログ・ボックスが表示されます。

コントロール（ラベルでなく）の上でマウスの右ボタンをクリックすると、パラメータの説明が表示されます。

VXIplug&playドライバの詳細なヘルプを見るには、To/From VXIplug&playオブジェクトのオブジェクト・メニューから[Instrument Help]を選択します。

[Configuration]タブ

[Configuration]タブでは、関数に渡す変数を指定できます。これにより、パラメータの値をプログラムで指定できます。

パラメータ値はグループ単位で表示されます。各グループの名前は、VXIplug&play関数パネルで指定されたパラメータのラベル名です。ラベルには、Functionやreadingがあります。各グループに含まれる情報の例を以下に示します。

Parameter Type - これは、パラメータのデータ型と、パラメータが入力専用（Input Only）、入出力用（Input/Output）、出力専用（Output Only）のどれであるかを指定します。

Parameter Value - Constantが選択された場合、このパラメータは[Panel]タブで設定された定数値として渡されます。Variableが選択された場合、このパラメータは変数として渡されます。パラメータの値はプログラムで変更できます。測定値出力など、一部のフィールドは常に変数です。

Name - Parameter TypeがVariableに設定されている場合、このフィールドは編集可能です。デフォルトでは、変数名はラベル名に設定されます（VEEの有効な変数名にするために多少の変更が加えられる場合があります）。この名前はVEEの任意の有効な変数名に変更できます。変数が入力変数の場合、式、関数呼び出し、グローバル変数をこの編集フィールドに入力することもできます。

Create Terminal - Parameter TypeがVariableに設定されている場合、このフィールドは編集可能です。チェック・ボックスがチェックされ、Nameが端子名として現在存在しない場合、[OK]を押すと、端子が（Nameに指定された名前で）、ダイアログ・ボックスの表示に応じて入力、出力、入出力のいずれかの端子として作成されます。作成した端子を削除するには、オブジェクト・メニューの[Delete Terminal]を使用します。

Nameを変更し、[Create Terminal]をチェックした場合、新しい端子が追加されます。

Nameが無効な端子名に設定されている場合、[Create Terminal]は淡色表示になります。

Auto-Allocate Input - これは、ConstantでなくVariableに設定されたInput/Outputパラメータに対して表示されます。詳細は次のセクションで説明します。

[NOP]ボタンを押すと、このダイアログ・ボックスに表示された最新の設定が保存され、このトランザクションはNOP（ノー・オペレーション）になります。これは、テキスト・ベースのコンピュータ・プログラムでコードの1行をコメントアウトするのと同じです。

To/From VXIplug&playオブジェクトに関するヘルプを表示するには、[Help]ボタンを押します。編集が終了したら[OK]ボタンを押します。

ドライバの開発者によって記入された計測器固有のヘルプ情報を見るには、[Instr Help]ボタンを押します。

自動割り当て機能（配列や文字列の受け渡し）

いくつかのVXIplug&play関数は、配列またはテキスト文字列にデータを返します。VXIplug&play仕様では、アプリケーション（VEE）が配列または文字列用のメモリを割り当てるように要求されています。VXIplug&play関数は割り当てたメモリを返せないからです。VEEがメモリを割り当て、関数はそのメモリに書き込みを行います。

自動割り当て機能を使うと、必要なメモリの大きさを簡単にVEEに通知できます。VEEは必要なサイズで正しいデータ型と種類を割り当てます。

関数へのパラメータが配列またはテキスト文字列を必要とする変数の場合、[Parameter]タブに[Auto-Allocate input]という新しいフィールドが表示されます。例えば、次のダイアログ・ボックスでは、測定値を配列に入力できます。[Parameters]タブで[Auto-Allocate input]が選択されています。

[Auto-Allocate input]が選択されている場合、[Size]フィールドがアクティブになります。デフォルトのサイズは5000ですが、割り当てる入力データに合わせて任意のサイズを入力できます。渡す配列または文字列の大きさを決める必要があります。このパラメータに対しては入力端子は作成されず、VEEは自動的にパラメータ用のメモリを割り当てます。

配列の場合、Sizeは配列の要素数を表します。テキスト文字列の場合、Sizeは文字数（バイト数）を表します。[Instrument Help]を参照するか、パネルの背景またはパラメータの上でマウスの右ボタンをクリックすると、関数が必要とする配列または文字列のサイズに関する情報が表示されます。

注記

Auto-Allocate input機能を使用する場合、関数に対してデータ入力端子は作成されません。データ入力端子がすでに存在する場合、To/From VXIplug&playから端子を削除する必要があります。

[Auto-Allocate input]を選択（チェック）しない場合、デフォルトで関数に対して入力端子と出力端子の両方が作成されます。正しい型、種類、メモリを割り当てるオブジェクトを作成し、入力端子に接続する必要があります。入力に必要なメモリを手動で割り当てる方法については、パラメータの受け渡しを参照してください。

関数が返すすべての値に対して十分なメモリを必ず割り当ててください。割り当てたメモリが不十分な場合、この動作によってメモリが上書きされ、一般保護違反やセグメンテーション違反が発生するおそれがあります。VXIplug&play DLLはVEEに直接リンクされるので、このような条件が起きるとVEEがクラッシュして終了する場合があります。

VXIplug&playドライバに関するヘルプの表示

To/From VXIplug&playオブジェクトのオブジェクト・メニューから[Instrument Help]を選択すると、計測器メーカが提供しているヘルプ・ファイルにアクセスできます。このヘルプ項目には、パラメータに必要なデータ型など、VXIplug&playドライバを使用するための情報が含まれています。

特定の関数のヘルプについては、VXIplug&play関数パネルに関するヘルプの表示を参照してください。


パネル・ドライバおよびコンポーネント・ドライバの概要

Panel DriverオブジェクトとComponent Driverオブジェクトが計測器に対して使用できるのは、その計測器をサポートするドライバ・ファイルがある場合に限ります。VEEのインストール手順で、インストールするドライバを選択できます。計測器に対するドライバ・ファイルを選択して設定する方法の詳細については、 [Help] [image] [以下の項目についての説明] の下の [計測器の設定]を参照してください。また、I/Oライブラリもインストールされている必要があります。

パネル・ドライバ

VEEのパネル・ドライバには、次の2つの目的があります。

計測器のすべての機能の設定を指定する測定ステートを定義できます。Panel Driverオブジェクトが動作すると、対応する物理計測器はパネル・ドライバで定義された設定に一致するように自動的にプログラムされます。

計測器を対話的に制御するための計測器制御パネルの役割を果たします。これは、プログラムの開発とデバッグの段階で有用です。また、計測器に物理的なフロント・パネルがない場合にも便利です。

下の図に示すように、パネル・ドライバのオープン・ビューには、対応する物理計測器のグラフィカル制御パネルが表示されます。物理計測器がコンピュータに正しく接続されている場合、グラフィカル制御パネルのフィールドをクリックすることによって計測器を制御できます。また、数値およびXY表示をクリックすることによって、測定を実行し、結果を表示できます。

計測器がコンピュータに接続されていない場合でも、グラフィカル・パネルを使って測定ステートを定義できます。これは、計測器を購入する前や、計測器が別の場所で使われているときにプログラムを開発する場合に便利です。

例として、HP3325Bファンクション・ジェネレータを、次の2種類の異なる出力信号を供給するようにプログラムする場合を考えます。

1 周波数が20 kHzで振幅が20 mV rmsの方形波。

2 周波数が50 kHzで振幅が50 mV rmsの正弦波。

下の図は、必要な信号を供給するための2つのパネル・ドライバを示します。

コンポーネント・ドライバ

計測器ドライバでは、各計測器機能と測定値のことをコンポーネントと呼びます。コンポーネントはドライバ内部の変数のようなもので、機能の設定や測定値を記録しています。すなわち、コンポーネント・ドライバとは、指定したコンポーネントだけを入出力端子として読み書きするオブジェクトのことです。これに対して、パネル・ドライバは、多数のコンポーネントまたはすべてのコンポーネントの値を自動的に書き込みます。

コンポーネント・ドライバが用意されている目的は、プログラムの実行速度を改善することです。パネル・ドライバと比べた場合の利点は、速度の向上だけです。一般的に、プログラムの実行速度が最も大きな影響を受けるのは、計測器制御オブジェクトが反復子オブジェクトに接続され、何回も実行される場合です。このような場合、変更されるコンポーネントは1つか2つである場合が普通です。コンポーネント・ドライバはこのような状況で使用されることを想定しています。

コンポーネント・ドライバによって実行速度がどの程度改善されるかは、状況によって大幅に異なります。速度の向上は主に、使用されるドライバ・ファイルに依存します。実行速度がどの程度改善されるかを正確に予測する簡単な方法はありません。

例として、HP3325Bファンクション・ジェネレータを次のようにプログラムする場合を考えます。

1 初期周波数が10 kHzで振幅がオペレータ入力によって決まる正弦波を出力。

2 周波数出力を、10 kHzから1 MHzまで、1デケード（10倍）あたり5ステップで掃引。

この場合、パネル・ドライバを使って初期セットアップを実行し、コンポーネント・ドライバを使って出力周波数を繰り返し設定するのが理にかなっています。これを実行するプログラムを次に示します。

その他の情報

VEEの設定方法については、 [Help] [image] [以下の項目についての説明] の下の[計測器の設定]を参照してください。Panel DriverおよびComponent Driverオブジェクトの使用方法の詳細については、パネル・ドライバの内部およびパネル・ドライバの動作を参照してください。

レジスタ・ベースVXIデバイスのサポート

計測器制御オブジェクトを使ってVXIバックプレーン上のVXIデバイスを直接制御する場合、デバイスがメッセージ・ベースなのかレジスタ・ベースなのかを知る必要があります。VEEはメッセージ・ベースのデバイスとの通信にSCPI（Standard Commands for Programmable Instruments）メッセージを使用します。

VEEではまた、Hewlett-PackardおよびAgilentのほとんどのレジスタ・ベース・デバイスに対するI-SCPI（Interpreted SCPI）サポートが用意されています。I-SCPIドライバを使うと、レジスタ・ベース・デバイスがメッセージ・ベースであるかのように通信できます。すなわち、特定のレジスタ・ベース・デバイスに対してI-SCPIドライバが用意されていれば、VEEプログラムはそのデバイスと標準のSCPIメッセージを使って通信できます。レジスタ・ベース・デバイスに対してI-SCPIドライバが用意されていない場合、VEEでそのデバイスと通信するにはレジスタに直接アクセスする必要があります。

I-SCPIドライバがあれば、任意の計測器制御オブジェクトが使用できます。パネル・ドライバを使用してプログラミングを容易にすることも、Direct I/OでSCPIコマンドを使って実行速度を上げることもできます。SCPIメッセージを使ってレジスタ・ベース・デバイスと通信するようにVEEをプログラムしようとしたときに、必要なI-SCPIドライバが使用できない場合は、メッセージが表示されます。その場合、Direct I/OまたはMultiInstrument Direct I/Oを使ってデバイス・レジスタに直接アクセスする必要があります。


パネル・ドライバの内部

VEEのPanel DriverオブジェクトとComponent Driverオブジェクトは、ともに適切なPanel Driver（"ID"）が存在し、計測器がそのドライバに対して設定されていることを必要とします。これらの計測器ドライバは、「VEEドライバ」または「計測器ドライバ」と呼ばれることがあります。Panel DriverおよびComponent Driverオブジェクトを使用するには、パネル・ドライバ・ファイル（.cidファイル）が存在し、設定されている必要があります。ただし、これらのファイルはDirect I/OまたはVXIplug&play動作では用いられません。

パネル・ドライバ・ファイル

各Panel Driverは、特定の計測器の固有の性質を記述します。Panel DriverおよびComponent Driverオブジェクトを使って計測器を制御するには、ドライバ・ファイルが必要です。

パネル・ドライバ・ファイル（.cidファイル）は、VEEをインストールするときにオプションでシステム・ディスクにコピーすることができます。各ドライバ・ファイルには、2つの基本的な種類の情報が記録されています。

計測器の機能と、その設定／問合せに使用されるコマンドの記述。

Panel Driverオブジェクトのオープン・ビューに表示されるグラフィカル制御パネルの外観と動作の記述。

コンポーネント

Panel DriverおよびComponent Driverオブジェクトは、各計測器機能を内部的にコンポーネントで表現します。コンポーネント名はプログラミング言語の変数名に似ています。コンポーネントは、計測器機能の設定値や測定値を保持するために用いられます。

下の図は、HP 3478A電圧計のコンポーネントを示します。

コンポーネント名 | 計測器機能
ARANGE | オートレンジのオン／オフ
FUNCTION | 測定機能は、電圧、電流、抵抗です。
TRIGGER | トリガ・ソースは、内部、外部、高速、シングルです。
READING | 最新の測定値。

コンポーネントには、対話的に、またはプログラムを通じてアクセスできます。コンポーネントに対話的にアクセスするには、Panel Driverのオープン・ビューにあるラベルの付いたボタンまたは表示をクリックします。グラフィカル・プログラムを使ってコンポーネントにアクセスするには、入力または出力端子として追加します。下に例を示します。コンポーネントを使用する詳細な手順については、「いくつかの手法」と「プログラムでのComponent Driverオブジェクトの使用」を参照してください。

ステート

計測器のステートは、特定のドライバのすべてのコンポーネントの値のセットです。AC電圧を測定する場合、電圧計ドライバのすべてのコンポーネントを特定の値に設定します。DC電流を測定する場合には別のコンポーネント値のセットを使用します。これらは電圧計の2つのステートです。この例には、2つの電圧計ステートを示します。

VEEでは、パネル・ドライバの各インスタンスは別々の測定ステートに対応します（Panel Driverオブジェクトは「ステート・ドライバ」と呼ばれることもあります）。プログラムに複数のパネル・ドライバがあり、各パネル・ドライバが同じ物理計測器をそれぞれ異なる測定ステートにプログラムする場合もあります。

同じ計測器Nameを使って作成したPanel Driverオブジェクトは、同じ物理計測器と通信します。

関連項目

いくつかの手法, パネル・ドライバによるI/Oの仕組み, パネル･ドライバの動作,


パネル・ドライバによるI/Oの仕組み

Panel DriverまたはComponent Driverオブジェクトをプログラムに配置した場合、VEEはステート・レコードをメモリ上に作成します。このステート・レコードは、特定の計測器のNameに固有です。Nameについては、「Nameの重要性」で詳しく説明します。

特定のNameを参照するすべてのドライバ・ベース・オブジェクトは、1つのステート・レコードを共有します。ステート・レコードは、各計測器のコンポーネントの現在の値を反映します。Panel Driverまたは Component Driverオブジェクトを使ってコンポーネントに書き込んだ場合、VEEは物理計測器とステート・レコードの両方を更新します。

Direct I/Oを使って計測器に書き込んだ場合、VEEはステート・レコードを無効にします。ステート・レコードが物理計測器の真の状態を反映しなくなるからです。ただし、その後でPanel DriverまたはComponent Driverを使用すると、VEEは計測器のステートをリコールし、物理計測器のステートとステート・レコードを再同期します。

Panel DriverおよびComponent Driverオブジェクトが動作するときには、重要な違いが発生します。

関連項目

いくつかの手法, パネル・ドライバの内部, パネル･ドライバの動作,


パネル･ドライバの動作

Panel Driverは、動作する際に、物理計測器のステートをグラフィカル制御パネルで定義されたステートに一致させるために必要なコマンドだけを送信します。

必要な場合、Panel Driverは対応する物理計測器のすべての設定をリセットして更新するためのコマンドを送信します。この動作は、[Advanced Instrument Properties]ダイアログ・ボックスの[Panel Driver]タブで説明している[Incremental Mode]設定に影響されます。

[Incremental Mode]をONに設定した場合、VEEは現在のステート・レコードをパネル・ドライバに定義された目的のステートと比較し、どのコンポーネントを変更する必要があるかを判定します。VEEは必要なコンポーネントを更新するコマンドだけを送信します。

[Incremental Mode]がOFFに設定されているか、現在のステート・レコードが無効とマークされている場合、VEEは各コンポーネントを更新するコマンドを明示的に送信し、目的のステートと物理計測器のステートとの間の同期を確立します。

Panel Driverは、シーケンス入力ピンがアクティブになるか、またはオープン・ビューに表示されているコントロール・パネル・ボタンの1つがクリックされたときに動作します。

コンポーネント・ドライバの動作

Component Driverは、動作する際に、入力端子に対応するコンポーネントだけを書き込み、出力端子に対応するコンポーネントだけを読み取ります。このため、Component Driverオブジェクトは一般的にPanel Driverオブジェクトよりも高速に動作します。Panel Driverは特定のステートを実現するために多数のコンポーネントに書き込む場合がありますが、Component Driverは指定されたコンポーネントにしか書き込みません。

コンポーネントの読み取り／書き込みは、端子の上から下の順番で行われます。この動作順序が重要なのは、1つのコンポーネントの値を別のコンポーネントの値に基づいて変更したい場合です。この関係のことを連動といいます。コンポーネント・ドライバでは、これを手動で行う必要があります。

複数のドライバ・オブジェクト

以下の条件を満たす複数のオブジェクトを使用する場合、動作がわかりにくくなることがあります。

同じ計測器Nameを使用

同じ計測器アドレスを使用

同じドライバ・ファイルを使用

Nameの重要性 [Instrument Properties]ダイアログ・ボックスの[Name]フィールドは、各計測器オブジェクトを物理計測器のアドレスと他の構成情報にマッピングします。計測器オブジェクトのNameを知るには、オブジェクト・メニューで[Show Config]をクリックします。オブジェクト・タイトルのテキストは、必ずしもNameと一致しません。

一般的に、1つの物理計測器は1つのNameだけで参照されるようにします。同じ計測器アドレスを複数のNameで参照すると、Panel Driverオブジェクトを使ったプログラムで予期しない結果が生じるおそれがあります。VEEの計測器ステートの内部レコードは、Nameによって管理されています。名前が異なる2つのPanel Driverオブジェクトは、同じアドレスに無関係に書き込むため、互いのステート・レコードを無効にしてしまいます。

Direct I/Oを使用する場合、同じ物理計測器に対して複数のNameが必要な場合があります。これが必要なのは、[Advanced Instrument Properties]ダイアログ・ボックスの[Direct I/O]タブの一部の設定を、Direct I/Oの動作に応じて変更する必要がある場合です。

例えば、オシロスコープに送信する一部のコマンドでは最後の文字でEOIをアサートし、別のコマンドではEOIを使用しないとします。この場合、1つの計測器をScope_EOIというName、もう1つの計測器をScopeというNameで構成します。ScopeとScope_EOIは同じAddress設定を持ちますが、ENDとEOLの設定が異なっています。

設定されたNameは、計測器オブジェクトをメニューから選択したときのデフォルトのタイトルとして表示されます。タイトルを編集しても、Nameとの関係は変更されません。

Nameは、計測器を含むプログラムを保存したり開いたりする場合にも重要です。プログラムを保存する場合、プログラム中の各計測器オブジェクトのNameが保存されます。プログラムを開くと、VEEはロードされた各計測器のNameを現在のI/O構成で探します。

例えば、My_ScopeというDirect I/Oオブジェクトを含むプログラムを保存した場合、現在のI/O構成にMy_Scopeという名前の計測器が存在する必要があります。問題のオブジェクトがPanel DriverまたはComponent Driverの場合、現在のI/O構成の[ID Filename]（ドライバ・ファイル）が、保存されたプログラムで使用されているものと一致する必要があります。

Nameの大文字と小文字は区別されませんが、それ以外はスペースを含めて正確に一致する必要があります。

ドライバ・ファイルの再使用

異なる名前の複数のオブジェクトが同じドライバ・ファイルを使用することは可能であり、珍しくありません。例えば、テスト・システムでSupply1、Supply2、Supply3という名前の3つのプログラマブル電源が3つの異なるアドレスにあり、それらがすべてhp665x.cidドライバ・ファイルを使用するといった場合です。Nameが異なっているため、VEEはそれぞれに対して別々のステート・レコードを維持します。Supply1のパネル・ドライバは、Supply2やSupply3に対しては何の影響も与えません。

関連項目

いくつかの手法, パネル・ドライバによるI/Oの仕組み, パネル・ドライバの内部


Direct I/Oオブジェクトの設定

次の例は、Direct I/Oオブジェクトの設定方法を示します。この例では、論理装置番号1（COM1）のシリアル計測器をDirect I/Oに設定します。

1 My Configurationを選択します。

2 [Find Instruments]をクリックします。

3 [Find Instruments]が終了したら、[Serial1]を選択し、[Add...]をクリックします。

4 次のようなダイアログ・ボックスが表示されるはずです。

[Instrument Properties]ダイアログ・ボックスでは、新しい計測器の名前とアドレスを選択できます。名前をSerial1に変更します。

[Advanced...]をクリックして、[Advanced Instrument Properties]ダイアログ・ボックスを表示します。使用するタブは次の2つです。

[Serial]タブでは、ボーレートなどのシリアル・パラメータを指定できます。個々のパラメータとフィールドの詳細については、「[Properties]ダイアログ・ボックスの詳細」を参照してください。多くのアプリケーションではデフォルト値を使用できます。

下に示す[Direct I/O]タブでは、EOLシーケンスなど、Direct I/Oのいくつかのパラメータを指定できます。ほとんどのアプリケーションではデフォルト値を使用できます。

注記

[Direct I/O]タブに表示されるフィールドは、選択したインタフェースによって異なります。さらに、VXIの場合、[A16 Space]と[A24/A32 Space]の2つの追加のタブがあります。

これらのタブでは、Direct I/OオブジェクトのWRITEまたはREADトランザクション用にVXIデバイスのレジスタを設定できます。各タブに表示されるパラメータとフィールドの詳細については、「[Properties]ダイアログ・ボックスの詳細」を参照してください。

各ダイアログ・ボックスで[OK]（変更を行わない場合は[Cancel]）をクリックして、Instrument Managerに戻ります。この例では、新しい計測器Serial1がSerial1インタフェースの下に.追加されています。Direct I/Oオブジェクトを作業領域に追加するために、[Direct I/O]ボタンをクリックし、オブジェクトを配置し、もう一度クリックして下の図のようにします。

注記

Direct I/Oオブジェクトは、トランザクション・ベースのI/Oを使って計測器と通信します。計測器ドライバは使用しません。Direct I/Oオブジェクトの使用法を参照してください。


VXIplug&playドライバの設定

To/From VXIplug&playオブジェクトの設定手順は、Panel Driver、Component Driver、Direct I/Oの各オブジェクトの場合とよく似ています。ただし、VXIplug&playの概要の手順に従って、先に適切なVXIplug&playドライバ・ファイルをインストールしておく必要があります。

注記

Windowsオペレーティング・システムを使用している場合、VISA Assistantユーティリティにより、VXIplug&playドライバに関する有用な情報が得られます。この情報は、VXIplug&playドライバの設定に必要な有効アドレスを知るために役立ちます。VISA Assistantは、Windowsの[スタート]メニューの[プログラム] [image] [Agilent I/O Libraries] [image] [VISA Assistant]にあります。

例として、HP 34401デジタル・マルチメータ用のVXIplug&play構成を追加します。 [I/O] [image] [Instrument Manager]を選択し、[Add...]をクリックします。[Instrument Properties]ダイアログ・ボックスが表示されます。名前をvxiDeviceに変更し、[Interface type]でVXIを選択します。

[Address] フィールドはVXIplug&playドライバでは用いられません。[Advanced...]をクリックして、 [Advanced Instrument Properties] ダイアログ・ボックスを表示し、 [Plug&play Driver] タブを選択します。

次に、[Plug&play Driver Name]ドロップダウン・リストからHP34401という名前のドライバを選択します。VXIplug&playドライバを選択するには、あらかじめドライバがインストールされている必要があります。

デフォルトでは、[Address]フィールドにはVXI0::0::INSTRと表示されます。これは計測器のVXI論理アドレスが0であると仮定しています。一般的には、正しい論理アドレスを指定する必要があります。例えば、HP 34401の論理アドレスが24の場合、[Address]フィールドをVXI0::24::INSTRに変更します。[Plug&play Driver]タブのフィールドの詳細については、「[Properties]ダイアログ・ボックスの詳細」を参照してください。

注記

VXIplug&playドライバの設定に適用されるのは、[Plug&play Driver]タブだけです。[General]、[Direct I/O]、[Panel Driver]、[A16 Space]、[A24/A32 Space]の各タブは、VXIplug&play構成には無関係です。例えば、[General]タブの[Live Mode]設定は無視されます。VXIplug&playデバイスは常にライブ状態であると見なされるからです。

計測器の設定が終わったら、各ダイアログ・ボックスで[OK]をクリックしてInstrument Managerに戻ります。追加された計測器が次のように表示されます。

[Plug&play Driver]ボタンをクリックして、[To/From VXIplug&play]オブジェクトを追加します。

To/From VXIplug&playオブジェクトの使用法については、「Using the To/From VXIplug&play Object」を参照してください。


[Properties]ダイアログ・ボックスの詳細

このセクションでは、[Instrument Properties]ダイアログ・ボックス、[Advanced Instrument Properties]ダイアログ・ボックスの各タブ、[Interface Properties]ダイアログ・ボックスについて詳細に説明します。

[Instrument Properties]ダイアログ・ボックス

[Instrument Properties]を表示するには、Instrument Managerで計測器を選択して[Add...]ボタンまたは[Properties]ボタンをクリックします。このダイアログ・ボックスの例を下に示します。

以下の各セクションでは、個々のフィールドについて説明します。

[Name]フィールド

VEEの計測器制御オブジェクトでは、[Name]フィールドが特定の計測器構成を一意に識別する必要があります。計測器のNameは、計測器制御オブジェクトの各インスタンスと、そのNameに対応するすべての構成情報との間のシンボリック・リンクです。通常、このフィールドは、計測器にわかりやすい名前（OscilloscopeやPower_Supplyなど）を付けるために使用されます。

プログラムでプロパティを取得／設定したい場合、Nameは有効なVEE変数名でなければなりません。名前の最初の文字は英字で、2文字目以降は英数字または下線文字です。

Nameは一意でなければなりません。例えば、2つの計測器にScopeというNameを設定することはできません。2つの異なるNameで同じ物理計測器を参照することは可能ですが、同じプログラムで両方のNameをパネル・ドライバやVXIplug&playドライバで使用すると、問題が生じるおそれがあります。

計測器のNameは、計測器制御オブジェクトのタイトルに表示されるテキストとは異なります。計測器制御オブジェクトのデフォルトのタイトルはNameですが、タイトルは変更することができ、変更してもNameには影響しません。計測器制御オブジェクトの特定のインスタンスのNameを知りたい場合、計測器制御オブジェクト（Direct I/O、MultiInstrument I/Oなど）のオブジェクト・メニューで[Properties]を選択します。

注記

Nameを正しく使用することは非常に重要です。このセクションでは、最も一般的な状況だけを説明しています。VEEでのNameの使用法の詳細については、「Nameの重要性」を参照してください。

関連項目

[Advanced Instrument Properties]ダイアログ・ボックス、 I/O設定の手法。


[Advanced Instrument Properties]ダイアログ・ボックス:[General]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[General]タブの例です。

以下の各セクションでは、個々のフィールドについて説明します。

注記

[General]タブで指定されたパラメータは、Direct I/O、Panel Driver、Component Driverの各オブジェクトに適用されますが、To/From VXIplug&playオブジェクトには適用されません。

[Timeout (sec)]フィールド

[Timeout]フィールドは、計測器が通信の要求に応答するのをVEEが待つ時間の長さ（秒数）を指定します。この時間が経過するとエラーが発生します。デフォルト値の5秒はほとんどのアプリケーションに適しています。

一般的に、このフィールドを0に設定するのは避けてください。0に設定すると、VEEはタイムアウトを検出しなくなります。VXIデバイスのレジスタまたはメモリ・アクセスを行う一部のDirect I/Oトランザクションは、タイムアウトをサポートしません。

[Live Mode]フィールド

[Live Mode]フィールドは、VEEが指定されたアドレスにある計測器と通信を試みるかどうかを決定します。コンピュータに接続された計測器と通信するには、[Live Mode]をONに設定する必要があります。

特定の計測器に対して[Live Mode]がOFFの場合、その計測器に対して読み書きを実行するはずのPanel Drivers、Component Drivers、Direct I/Oオブジェクトを含むプログラムを実行できます。ただし、実際には計測器との通信は行われません。この動作は、計測器が使用できないときにプログラムの一部を開発したりデバッグしたりするために便利です。

[Byte Ordering]フィールド

このフィールドは、デバイスがバイナリ・データの読み取りや書き込みを行う順序を指定するために使用します。VEEはこのフィールドの値を使って、バイト・スワッピングが必要かどうかを判断します。このフィールドをクリックして、MSB（最上位ビットを最初に送信）かLSB（最下位ビットを最初に送信）を選択します。すべてのIEEE 488.2準拠デバイスは、常にデフォルトでMSB順序を使用します。詳細についてはデバイスのマニュアルを参照してください。

[Description (optional)]フィールド

[Description]フィールドは通常、メーカのモデル番号を記録するために用いられます。例えば、HP 54504AオシロスコープのDescriptionはhp54504aのようになります。このフィールドはユーザの便宜のために設けられていますが、VEEからは使用されません。


[Advanced Instrument Properties]ダイアログ・ボックス:[Direct I/O]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[Direct I/O]タブの例です（GPIBインタフェースの場合）。

以下の各セクションでは、個々のフィールドについて説明します。

注記

VXIバックプレーン経由でVXIデバイスを直接制御する場合、そのデバイスに対するI-SCPIドライバが存在すれば、SCPIメッセージを使ってレジスタ・ベース・デバイスを制御できます。必要なI-SCPIドライバが使用できない場合、VEEはメッセージを表示します。

I-SCPIドライバが使用できない場合、レジスタ・ベース・デバイスを制御するには、デバイス・レジスタまたはデバイス・メモリへの直接読み書きアクセスを行う必要があります。詳細については、「[Advanced Instrument Properties]ダイアログ・ボックス: [A16 Space (VXI Only)]タブ」または「[Advanced Instrument Properties]ダイアログ・ボックス: [A24/A32 Space (VXI Only)]タブ」を参照してください。

[Read Terminator]フィールド

[Read Terminator]フィールドは、READトランザクションを終了する文字を指定します。このフィールドの入力は、二重引用符で囲んだ1つの文字です。「二重引用符」とは、ASCIIの10進34です。[Read Terminator]では、任意のASCII文字と、下の表に示されたエスケープ文字が認識されます。

指定する文字は、計測器の設計によって決まります。ほとんどのGPIB計測器は、データをコンピュータに送った後で改行文字を送信します。詳細については、計測器のプログラミング・マニュアルを参照してください。

エスケープ文字 | ASCIIコード（10進） | 意味
\n | 10 | 改行
\t | 9 | 水平タブ
\v | 11 | 垂直タブ
\b | 8 | バックスペース
\r | 13 | キャリッジ・リターン
\f | 12 | フォーム・フィード
\" | 34 | 二重引用符
\' | 39 | 一重引用符
\\ | 92 | バックスラッシュ
\ddd |  | 3桁の8進値dddに対応するASCII文字。

[Write EOL Sequence]フィールド

[EOL Sequence]フィールドは、EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上の文字を二重引用符で囲んだものです。「二重引用符」とは、ASCIIの10進34です。[EOL Sequence]では、任意のASCII文字と、上の表に示されたエスケープ文字が認識されます。

[Write Multi-field As]フィールド

[Multi-field As]フィールドは、WRITE TEXTトランザクションで使用するマルチフィールド・データ型のフォーマット・スタイルを指定します。VEEのマルチフィールド・データ型には、Coord、Complex、PComplex、Spectrumがあります。その他のデータ型とその他のフォーマットは、この設定に影響されません。

マルチフィールド・フォーマットに(...) Syntaxを指定すると、各マルチフィールド項目が括弧で囲まれます。Data Onlyを指定すると、括弧は省略されますが、区切りのカンマは用いられます。例えば、複素数2+2jは、(...) Syntaxでは(2,2)、Data Onlyでは2,2と出力されます。

[Write Array Separator]フィールド

[Array Separator]フィールドは、WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲んだ1つの文字です。「二重引用符」とは、ASCIIの10進34です。[Array Separator]では、任意のASCII文字と、上の表に示されたエスケープ文字が認識されます。

配列を書き込むDirect I/OオブジェクトのWRITE TEXT STRトランザクションは特別です。この場合、[Array Separator]フィールドの値は無視され、ラインフィード文字（ASCIIの10進10）が配列要素の区切りとして用いられます。この動作は、ほとんどの計測器の必要に合致しています。

VEEではマルチフィールド・データ型の配列を使用できます。例えば、Complexデータの配列を作成できます。このような場合、[Multi-Field Format]が(...) Syntaxに設定されていると、配列は次のように出力されます。

(1,1)array_sep(2,2)array_sep ...

ここで、array_sepは[Array Separator]フィールドに指定された文字です。

[Write Array Format]フィールド

[Array Format]フィールドは、多次元配列を出力する方法を決定します。例えば、数学では行列は次のように表記されます。

   1 2 3 4 5 6 7 8 9

VEEでは同じ行列を、[Array Format]の設定に応じて2通りに出力できます。下の2つの例では、[EOL Sequence]が"\n"（改行）、[Array Separator]が" "（スペース）に設定されています。

1 2 3 Block Array Format

   4 5 6

   7 8 9

1 2 3 4 5 6 7 8 9 Linear Array Format

どちらの配列フォーマットでも、配列の各要素はArray Separator文字で区切られます。さらに、Block Array Formatでは、配列の各行がEOL Sequence文字で区切られます。

より一般的な場合（2次元より大きい配列）の場合、Block Array Formatでは、右端以外の添字が変化したときにEOL Sequence文字が出力されます。例えば、3次元配列A[x,y,z]を次のトランザクションを使ってBlock配列フォーマットで出力する場合:

WRITE TEXT A

xまたはyの値が変化するたびにEOL Sequence文字が出力されます。Aの各次元のサイズが2の場合、要素は次の順番で出力されます。

A[0,0,0] A[0,0,1]<EOLシーケンス>

A[0,1,0] A[0,1,1]<EOLシーケンス>

<EOLシーケンス>

A[1,0,0] A[1,0,1]<EOLシーケンス>

A[1,1,0] A[1,1,1]<EOLシーケンス>

A[0,1,1]が出力された後、xとyは同時に変化するので、2個の<EOLシーケンス>が出力されます。

[Write END (EOI) On EOL]フィールド（GPIBのみ）

[END on EOL]は、EOI（End Or Identify）の動作を制御します。[END on EOL]がYESの場合、以下のいずれかの状況で最後のデータ・バイトが書き込まれた時点で、バスのEOIラインがアサートされます。

1 EOL ONのWRITEトランザクションが実行された場合。

2 Direct I/Oの最後のトランザクションであるWRITEトランザクションが実行された場合。

3 1つ以上のWRITEトランザクションがEOIをアサートせずに実行され、その後にWRITE以外のトランザクション、例えばREADなどが実行された場合。

多くの計測器は、EOIと改行のどちらを送信しても有効なメッセージ・ターミネータとして認識します。ブロック転送ではEOIが要求される場合があります。詳細については、計測器のプログラミング・マニュアルを参照してください。

[Conformance]フィールド

[Conformance]は、計測器がIEEE 488.1とIEEE 488.2のどちらに適合するかを指定します。計測器のプログラミング・マニュアルで計測器がどの標準に適合しているかを調べ、それに基づいて[Conformance]フィールドを設定してください。

これらの標準は、GPIBインタフェースの通信プロトコルを定義しています。ただし、IEEE 488.2では、IEEE 488.1で未定義のままにされていたブロック・ヘッダとラーン・ストリングの規則が規定されています。メッセージ・ベースVXI計測器と、I-SCPIでサポートされるレジスタ・ベースVXI計測器は、すべてIEEE488.2に適合します。

[Conformance]をIEEE 488（IEEE 488.1を指す）に設定した場合、以下の各セクションに示すように、オプションでブロック・ヘッダとラーン・ストリングを処理するための設定を指定することができます。

[Binblock]フィールド

[Binblock]フィールドは、WRITE BINBLOCKトランザクションで用いられるブロック・データ・フォーマットを指定します。[Binblock]には、IEEE 728 #A、#T、#Iのいずれかのブロック・ヘッダを指定できます。[Binblock]がNoneの場合、WRITE BINBLOCKはIEEE 488.2の固定長任意ブロック応答データ・ブロックを出力します。

IEEE 728ブロック・ヘッダの形式は次のとおりです。

#A<Byte_Count><Data>

#T<Byte_Count><Data>

#I<Data><END>

ここで、

<Byte_Count>は16ビットの符号なし整数で、この後の<Data>部分のバイト数を指定します。

<Data>は任意のバイト列です。

<END>は、送信される最後のデータ・バイトとともにEOIがアサートされることを示します。

[State (Learn String)]フィールド

[State]フィールドは、計測器がラーン・ストリングのアップロード／ダウンロードが可能なように設定されているかどうかを指定します。[State]の値が[Not Config'd]のときに、ラーン・ストリングが使用できるように計測器を設定したい場合は、[State]フィールドをクリックすると、[Upload String]フィールドと[Download]フィールドが表示されます。[State]の値が[Not Config'd]の場合、[Upload String]フィールドと[Download String]フィールドはヌル文字列に設定されています。

[Upload String]フィールド

[Upload String]フィールドは、Direct I/Oオブジェクト・メニューから[Upload State]を選択したときに計測器に送信されるコマンドを指定します。計測器にラーン・ストリングを出力させるコマンドを指定します。詳細については、計測器のプログラミング・マニュアルを参照してください。コマンドは二重引用符で囲む必要があります。

[Download String]フィールド

[Download String]フィールドは、Direct I/OオブジェクトのWRITE STATEトランザクションの結果として、ラーン・ストリングの直前に計測器に送信される文字列を指定します。このフィールドは、ラーン・ストリングのダウンロード時にコマンド・プレフィックスを要求する計測器をサポートするために設けられています。詳細については、計測器のプログラミング・マニュアルを参照してください。


[Advanced Instrument Properties]ダイアログ・ボックス:[Plug&play Driver]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[Plug&play Driver]タブの例です（GPIBインタフェースの場合）。

[Plug&play Driver]タブは、[Advanced Instrument Properties]ダイアログ・ボックスのタブの中で、VXIplug&playドライバ設定に関連する唯一のものです。

以下の各セクションでは、個々のフィールドについて説明します。

[Plug&play Driver Name]フィールド

このフィールドは、VXIplug&playドライバの名前を指定します。このパラメータは必須なので、ドライバ名を選択する必要があります。インストールされているすべてのVXIplug&playドライバが、ドロップダウン・リストに表示されます。リストにエントリがない場合、VXIplug&playドライバがインストールされていないか、レジストリ・エントリまたは環境変数が正しく設定されていない可能性があります。

[Parameters to init() call]フィールド

Address

計測器を識別するアドレスを入力します。アドレスのフォーマットは、計測器が接続されているインタフェースによって異なります。

  • VXIアドレス文字列（内蔵VXI、VXLink、MXIbusコントローラ）

    内蔵、VXLink、MXIbusのいずれかのコントローラを持つVXI計測器の場合、アドレス文字列の形式は

    VXI[ボード]::VXI論理アドレス[::INSTR]    です。

    例えば、論理アドレスが24の計測器の場合、VXI::24::INSTRとなります。

    最初のボードの場合、ボード番号は省略可能です（VXI::24::INSTRはVXI0::24::INSTRと同等です）。ただし、2つめ以降のボードに対しては、ボード番号は必須です（VXI1、VXI2など）。

  • GPIB-VXIアドレス文字列（コマンド・モジュール）

    コマンド・モジュールに接続されたGPIBカードから制御されるVXI計測器の場合、アドレス文字列の形式は

    GPIB-VXI[ボード]::VXI論理アドレス[::INSTR]    です。

    例えば、VXI論理アドレスが24の計測器の場合、GPIB-VXI::24::INSTR（またはGPIB-VXI0::24::INSTR）となります。

  • GPIBアドレス文字列（GPIB計測器）

    GPIBカードから制御されるVXI以外の計測器の場合、アドレス文字列の形式は

    GPIB[ボード]::GPIB 1次アドレス::[GPIB 2次アドレス][::INSTR]    です。

    例えば、1次アドレスが23のGPIB計測器の場合、GPIB::23::INSTR（またはGPIB0::23::INSTR）となります（オプションの2次アドレスはほとんど用いられません）。

Perform Identification Query

このチェック・ボックスを選択すると、このドライバの関数パネルが初めて実行されたときに、ドライバが計測器に識別情報を問い合わせます。このチェック・ボックスは、計測器がこの操作をサポートしないまれな場合を除いて、通常は選択しておきます。

Perform Reset

このチェック・ボックスを選択すると、このドライバの関数パネルが初めて実行されたときに、計測器にリセットが送信されます。このチェック・ボックスは、計測器がこの操作をサポートしないまれな場合を除いて、通常は選択しておきます。VXI計測器はすべてこの操作をサポートします。

Download Drivers

新しいドライバを入手したり、ドライバを更新したりする必要がある場合は、[Advanced Instrument Properties]ダイアログ・ボックスのURLをクリックします。


[Advanced Instrument Properties]ダイアログ・ボックス:[Panel Driver]タブ

下の図は、[Advanced Instrument Properties] ダイアログ・ボックスの[Panel Driver]タブの例です。

注記

レジスタ・ベースVXIデバイスは、I-SCPIドライバによってサポートされる場合に限り、メッセージ・ベースとして設定できます。

このタブは、Panel DriverオブジェクトとComponent Driverオブジェクトの設定に用いられます。以下の各セクションでは、個々のフィールドについて説明します。

[ID Filename]フィールド

[ID Filename]フィールドは、必要なパネル・ドライバを含むファイルを指定します。フィールドをクリックすると、[Read from what Instrument Driver?]ダイアログ・ボックスが表示され、ファイルを選択できます。ファイル名は計測器のモデル番号に基づいて付けられています。

hp3325a.cidとhp3325b.cidのように似た名前があるので、使用するモデル番号と正確に一致する名前を選択するように注意してください。

[Sub Address]フィールド

[Sub Address]フィールドは、データ収集システムやスイッチなどのカードケージ型計測器のプラグイン・モジュールを識別するために一部のドライバが使用するサブアドレスを指定します。このようなプラグインに対するドライバを設定する場合以外は、このフィールドを""（空文字列）に設定します。

注記

サブアドレスを使用するドライバはごく少数なので、デフォルト設定の""（空文字列）がほとんどの場合に適切です。

このようなプラグインに対するドライバを設定する場合は、計測器ドライバのオンライン・ヘルプを参照して、サブアドレスが使用されるかどうか、どのように使用されるかを調べてください。

注記

[Sub Address]フィールドと、GPIB計測器の2次アドレスとを混同しないでください。サブアドレスはドライバ設定の一部であり、ハードウェア・アドレスの一部ではありません。

[Error Checking]フィールド

[Error Checking]フィールドは、コンポーネント値を設定した後でVEEが計測器に問い合わせてエラーをチェックするかどうかを決定します。実行速度の低下が問題になる場合以外は、このフィールドはONに設定しておいてください。

[Incremental Mode]フィールド

[Incremental Mode]フィールドは、Panel Driverオブジェクトで段階的なステート・リコールが使用されるかどうかを指定します。

注記

[Incremental Mode]の適切な設定は、ほとんどの場合にONです。

[Incremental Mode]がONに設定されている場合、VEEは計測器のステートを変更するために送信するコマンドの数を自動的に最小化します。このために、VEEは自分で記録している物理計測器の現在のステートと、パネル・ドライバで指定された新しいステートとを比較します。

VEEはどのコンポーネント設定が異なっているかを判定し、必要なステートに一致しないコンポーネントの変更に必要なコマンドだけを送信します。ほとんどの場合、[Incremental Mode]はONにしておくほうがよいでしょう。実行速度が高速になるからです。

[Incremental Mode]がOFFに設定されている場合、対応するパネル・ドライバが動作したときに、VEEはすべてのコンポーネントの値を明示的に設定します。このモードは通常、VEEの計測器ステートの記録が計測器の実際のステートと一致しない可能性がある場合に用いられます。

[Incremental Mode]設定はPanel Driverオブジェクトの動作に影響しますが、Component Driverオブジェクトには影響しません。[Incremental Mode]をOFFにしたほうがよいのは、以下のような場合です。

VEEプログラムから計測器を制御している間に、計測器のフロント・パネル操作も可能にする場合。

VEEプログラムから計測器を制御している間に、Cプログラムやシェル・コマンドを通じてVEE環境の外部で計測器設定を変更する場合。

Component Drivers、Panel Drivers、Direct I/Oの各オブジェクトを組み合わせてプログラムで使用していても、[Incremental Mode]をOFFにする必要はありません。


[Advanced Instrument Properties]ダイアログ・ボックス:[Serial]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[Serial]タブの例です（シリアル・インタフェースに対してのみ有効）。

シリアル（RS-232）インタフェースに対しては、次のフィールドを設定できます。

Baud Rate ボーレート。デフォルトは9600（ビット/s）です。

Character Size キャラクタ・サイズ。デフォルトは8（ビット）です。可能な値は、5、6、7、8、Noneです。

Stop Bits ストップ・ビット。デフォルトは1です。可能な値は1と2です。

Parity パリティ。デフォルトはNoneです。可能な値は、None（なし）、Odd（奇数）、Even（偶数）、Mark（マーク）、Space（スペース）です。

Handshake ハンドシェーク。デフォルトはNoneです。可能な値は、None（なし）、Xon/Xoffです。

Receive Buffer Size 受信バッファ・サイズ。デフォルトは4096（バイト）です。


[Advanced Instrument Properties]ダイアログ・ボックス:[GPIO]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[GPIO]タブの例です（GPIOインタフェースに対してのみ有効）。

[GPIO]タブのフィールドは、[Data Width]の1つだけです。[Data Width]フィールドは、GPIOインタフェースで1単位として送信されるパラレル・データのビット数を指定します。このフィールドは、8ビットまたは16ビット幅でデータを読み書きするようにインタフェースを構成します。このフィールドに関連してハードウェア・スイッチを設定する必要はありません。


[Advanced Instrument Properties]ダイアログ・ボックス:[A16 Space (VXI Only)]タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスの[A16Space]タブの例です。このタブはVXIインタフェースに対してのみ表示され、レジスタ・ベースのDirect I/Oトランザクションでのみ用いられます。

以下の各セクションでは、個々のフィールドについて説明します。

[Byte Access (D8)]フィールド

[Byte Access]フィールドは、VXIデバイスが8ビットのA16メモリ・アクセスをサポートするかどうかを指定します。このフィールドで使用できる選択肢は次のとおりです。

NONE - デバイスはバイト・アクセスをサポートしません。

ODD ACCESS - デバイスは、奇数バイト境界のみのバイト・アクセス（D08(O)）をサポートします。

ODD/EVEN ACCESS - デバイスは、すべての境界でのバイト・アクセス（D08(EO)）をサポートします。

[Word Access (D16)]フィールド

[Word Access]フィールドは編集できません。すべてのVXIデバイスは16ビット・アクセス（D16）をサポートする必要があります。

[LongWord Access (D32)]フィールド

[LongWord Access]フィールドは、VXIデバイスが32ビットのA16メモリ・アクセスをサポートするかどうかを指定します。以下の選択肢があります。

NONE - デバイスは32ビット・アクセスをサポートしません。

D32 ACCESS - デバイスは32ビットのA16メモリ・アクセスをサポートします。

[Add Register]フィールド

[Add Register]フィールドをクリックすると、ダイアログ・ボックスに1行分のフィールドが追加されます。これらのフィールドは、デバイスのA16メモリへのアクセスを設定するために使用します。以下の4つのフィールドがあります。

Name - レジスタのシンボル名。これは、READ REGISTERまたはWRITE REGISTERトランザクションを使用するDirect I/Oオブジェクトで、特定のレジスタを参照するために用いられます。

Offset - 設定するレジスタの、デバイスのA16メモリの相対ベースからのバイト単位のオフセット。

Format - 設定するレジスタの読み書きに用いられるデータ・フォーマット。読み取りまたは書き込みアクセスは、[Offset]フィールドで指定されたバイトに対して行われます。可能なフォーマットは次のとおりです。

BYTE - バイトを読み書きします。デバイスは、8ビット・アクセスをサポートし、上記の[BYTE]フィールドで正しく設定されている必要があります。[BYTE]フィールドがODDの場合、[Offset]に指定されたバイト位置は奇数でなければなりません。

WORD16 - 16ビット・ワードを読み書きします。16ビットは2の補数整数で表されます。すべてのVXIデバイスは明示的にこのフォーマットをサポートします。

WORD32 - 32ビット・ワードを読み書きします。32ビットは2の補数整数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

REAL32 - 32ビット・ワードを読み書きします。32ビットは、IEEE 754の32ビット浮動小数点数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

Mode - レジスタがサポートするI/Oモードを指定します。以下の選択肢があります。

READ - このレジスタは、READ REGISTERトランザクションでのみ選択肢として表示されます。

WRITE - このレジスタは、WRITE REGISTERトランザクションでのみ選択肢として表示されます。

READ/WRITE - このレジスタは、READ REGISTERトランザクションとWRITE REGISTERトランザクションの両方で選択肢として表示されます。

[Delete Register]フィールド

[Delete Register]フィールドをクリックすると、現在設定されているレジスタのシンボル名のリストが表示されます。選択したレジスタはダイアログ・ボックスから削除されます。

例

下の図は、HP E1411B VXIマルチメータのレジスタ構成を示す[A16 Space]タブです。[Add Register]を使ってレジスタを追加すると、レジスタのリストがスクロールします。

注記

拡張（A24/A32スペース）メモリ構成もこれと同様ですが、「レジスタ」でなくメモリ「位置」から構成されます。

[Offset]フィールドは、デバイスのA16スペースの相対ベースからの各レジスタのバイト単位のオフセットに設定されます。ステータス・レジスタ（図ではName: = stat）は、4バイトのオフセットを持ち、READモードに設定されています。

制御レジスタは図には示されていませんが、通常はWRITEモードで4バイトのオフセットに設定されます。2つの別々のレジスタ位置が同じモードを持つことは可能ですが、[Name]フィールドは固有でなければなりません。ただし、バイト位置4のレジスタにREAD/WRITEモードでstatuscontrolという名前を付けることは可能です。


[Advanced Instrument Properties]ダイアログ・ボックス:[A24/A32 Space]（VXIのみ）タブ

下の図は、[Advanced Instrument Properties]ダイアログ・ボックスのA24/A32 Space タブの例です。このタブはVXIインタフェースに対してのみ表示され、レジスタ・ベースのDirect I/Oトランザクションでのみ用いられます。

以下の各セクションでは、個々のフィールドについて説明します。

注記

「拡張メモリ」とは、VXIデバイスのA24またはA32メモリのことを言います。（VXIデバイスにはA24かA32のいずれかのメモリを実装できます。両方のメモリを実装することはできません）。

[Byte Access (D8)]フィールド

[Byte Access]フィールドは、VXIデバイスが8ビットのメモリ・アクセスをサポートするかどうかを指定します。このフィールドで使用できる選択肢は次のとおりです。

  • NONE：デバイスはバイト・アクセスをサポートしません。

  • ODD ACCESS：デバイスは、奇数バイト境界のみのバイト・アクセス（D08(O)）をサポートします。

  • ODD/EVEN ACCESS：デバイスは、すべての境界でのバイト・アクセス（D08(EO)）をサポートします。

[Word Access (D16)]フィールド

[Word Access]フィールドは編集できません。すべてのVXIデバイスが全メモリ・スペースで16ビット・アクセス（D16）をサポートする必要があります。

[LongWord Access (D32)]フィールド

[LongWord Access]フィールドは、VXIデバイスが32ビットのメモリ・アクセスをサポートするかどうかを指定します。以下の選択肢があります。

  • NONE：デバイスは32ビット・アクセスをサポートしません。

  • D32 ACCESS：デバイスは32ビットのA16メモリ・アクセスをサポートします。

[QuadWord Access (D64)]フィールド

[QuadWord Access]フィールドは、VXIデバイスが64ビットの拡張メモリ・アクセスをサポートするかどうかを指定します。以下の選択肢があります。

  • NONE：デバイスは64ビット・アクセスをサポートしません。

  • D64 ACCESS：デバイスは64ビットのメモリ・アクセスをサポートします。

Agilent I/O Libraries G.02.02では、一部のVXI I/O計測器のメモリ・スペースに対する64ビット・アクセスが可能です。この機能は、このモードをサポートするVXI計測器に対するVEEプログラムによる64ビット単位でのメモリの読取り／書込みを可能にします。バージョンG.0.202をインストールしている場合は、[Advanced Instrument Configuration]ダイアログ・ボックスの[A24/A32 Space]を使ってこのアクセス・モードをオンにできます。

このモードをオンにするには、まず[QuadWord access (D64) Access]をオンにしてから、フォーマットWORD32*2またはREAL64を選択します。WORD32*2フォーマットを選択した場合、64ビット値がINT32配列の隣接する2個の数値に読み込まれます。

位置：I/O [image] Instrument Manager [image] （VXI計測器を選択） [image] Edit Instrument [image] Advanced I/O Config... A24/A32 Spaceタブ。

[Add Location]フィールド

[Add Location]フィールドをクリックすると、ダイアログ・ボックスに1行分のフィールドが追加されます。これらのフィールドは、デバイスの拡張メモリへのアクセスを設定するために使用します。以下の4つのフィールドがあります。

  • Name：位置のシンボル名。これは、READ MEMORYまたはWRITE MEMORYトランザクションを使用するDirect I/Oオブジェクトで、特定のメモリ位置を参照するために用いられます。

  • Offset：設定する位置のデバイスの拡張メモリの相対ベースからのバイト単位のオフセット。

  • Format：設定する位置に対する読取り／書込みに用いられるデータ・フォーマット。読み取りまたは書き込みアクセスは、[Offset]フィールドで指定されたバイトに対して行われます。可能なフォーマットは次のとおりです。

  • BYTE：バイトを読取り／書込みします。デバイスは、8ビット・アクセスをサポートし、上記の[BYTE]フィールドで正しく設定されている必要があります。[BYTE]フィールドがODDの場合、[Offset]に指定されたバイト位置は奇数でなければなりません。

  • WORD16：16ビット・ワードを読取り／書込みします。16ビットは2の補数整数で表されます。すべてのVXIデバイスは明示的にこのフォーマットをサポートします。

  • WORD32：32ビット・ワードを読取り／書込みします。32ビットは2の補数整数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

  • REAL32：32ビット・ワードを読取り／書込みします。32ビットは、IEEE 754の32ビット浮動小数点数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

  • WORD32*2：64ビット・ワードを2個の32ビット・ワード（2個のInt32）として読取り／書込みします。[QuadWord Access]はオンでなければなりません。

  • REAL64：64ビット・ワードをREAL64として読取り／書込みします。[QuadWord Access]はオンでなければなりません。

  • Mode：位置がサポートするI/Oモードを指定します。以下の選択肢があります。

  • READ：この位置は、READ MEMORYトランザクションでのみ選択肢として表示されます。

  • WRITE：この位置は、WRITE MEMORYトランザクションでのみ選択肢として表示されます。

READ/WRITE：この位置は、READ MEMORYトランザクションとWRITE MEMORYトランザクションの両方で選択肢として表示されます。

[Delete Location]フィールド

[Delete Location]フィールドをクリックすると、現在設定されている位置のシンボル名のリストが表示されます。選択した位置はダイアログ・ボックスから削除されます。


I/Oトランザクションについて

I/Oトランザクションは、計測器、ファイル、文字列、オペレーティング・システム、インタフェース、そのほかのプログラム、プリンタと通信するために、VEEによって使用されます。次に示すTo Fileオブジェクトを例にとって説明します。

このTo Fileオブジェクトは、データを指定されたファイルmyFileに送信します。このオブジェクトは、プログラムからデータを受け入れるために、トランザクションと呼ばれる入力を保持できます。たとえば、このTo Fileオブジェクトは、WRITE TEXT a EOLトランザクションを保持しています。このトランザクションをダブルクリックすると、[I/O Transaction]ダイアログ・ボックスが表示されます。 このダイアログ・ボックスで、具体的なトランザクション・ステートメントを設定します。

このダイアログ・ボックスは、オブジェクトによって形式が異なりますが、いずれも、action（操作）、encoding（エンコード）、expression list（式リスト）、format（フォーマット）、end-of-line (EOL) sequence（行末シーケンス）などの共通要素を持っています。


I/Oトランザクション・フォーマット

データを書き込むI/Oトランザクションは、通常、次のフォーマットを使用します。

<操作> <エンコード> <式リスト> <フォーマット> <EOL>

最もよく行われる操作である、READ、WRITE、EXECUTE、WAITについて以下に説明します。

操作 | 説明
READ | 指定されたエンコードとフォーマットを使用して、指定されたソースからデータを読み取ります。
WRITE | 指定されたエンコードとフォーマットを使用して、指定されたターゲットにデータを書き込みます。
EXECUTE | 特定のコマンドを実行します。たとえば、EXECUTE REWINDは、ファイルの内容を消去しないで、ファイル読み取りポインタまたはファイル書き込みポインタの位置をファイルの先頭に変更します。EXECUTE CLOSEはオープンしているファイルをクローズします。
WAIT | 指定された秒数だけ待ってから、次のトランザクションを開始します。

注記

[I/O] [image] [Advanced I/O Operations] にも多数の操作があります。これらの操作については、メニューでオブジェクトを探して確認できます。

エンコードとフォーマットは、データをパッケージにして送信する方法を指します。たとえば、TEXTエンコードでは、データをASCII文字として送信します。TEXTエンコードはさまざまな方法でフォーマットできます。たとえば、文字と数字から成る文字列をファイルに送信する場合、WRITE TEXT STRINGトランザクションを使用すると、ASCII文字で表現した文字列全体が送信されます。WRITE TEXT REALトランザクションは、同じ文字列から実数だけを抽出し、個々の数字に対してASCII文字を使用して、それらの実数を送信します。エンコードに関する簡単な説明を以下に示します。

エンコード | 説明
TEXT | 編集やほかのソフトウェア・アプリケーションへの移植が容易な、人が読むことのできる形式（ASCII）で、すべてのデータ型の読み取り／書き込みを行います。VEEの数値データは自動的にテキストに変換されます。
BYTE | 数値データを2進整数に変換し、最下位バイトを送信または受信します。
CASE | 列挙値や整数を文字列にマッピングし、その文字列の読み取り／書き込みを行います。たとえば、CASEを使用すると、エラー番号を受け入れて、エラー・メッセージを書き込むことができます。
BINARY | すべてのデータ型をマシン固有のバイナリ・フォーマットで処理します。
BINBLOCK | バイナリ・ファイル内のすべてのVEEデータ型についてIEEE488.2の固定長ブロック・ヘッダを使用します。
CONTAINER | すべてのデータ型についてVEE固有のテキスト・フォーマットを使用します。

書き込みトランザクションの場合、式リストは、送信するデータを生成するために評価する必要がある式を単にカンマで区切ったリストです。式は、算術式、データ入力端子名、文字列定数、VEE関数、UserFunction、グローバル変数で構成されます。読み取りトランザクションの場合、式リストは、読み取ったデータを記録する場所を示す出力端子名のカンマ区切りリストで構成する必要があります。

計測器からのデータの読み取りとデータ・フォーマットについては、「計測器を制御する方法」を参照してください。これらのフォーマットのほとんどは、すべてのI/Oトランザクションに適用されます。

EOL（行末を表す文字列）はオン／オフできます。また、EOLシーケンスを指定するには、ほとんどの[I/O]  [image] [To] オブジェクトのオブジェクト・メニューを開き、[Properties...]を選択し、[Data Format]を選択し、[Separator Sequence]で変更を行います。


トランザクションの作成と読み取り

ここで扱うすべてのI/Oオブジェクトには、トランザクションが含まれます。トランザクションは、データの読み取り／書き込みなど、低レベルの入出力動作を指定します。各トランザクションは、I/Oオブジェクトのオープン・ビューに1行のテキストで表示されます。代表的なトランザクションを見るには、 [I/O] [image] [To] [image] [String] をクリックして、To Stringオブジェクトを作成します。

トランザクションを追加するには、オブジェクトをダブルクリックします。

次の図は、To Stringオブジェクトを使った単純なプログラムで、トランザクションの動作方法を示します。このプログラムはには2つのトランザクションが使われています。1つは文字列リテラルを書き込み、もう1つは固定10進フォーマットで数値を書き込みます。

トランザクション・ベース・オブジェクトを使用する場合、通常は最低でも以下の2つのことをする必要があります。

1 必要に応じて他のトランザクションを追加します。

2 入力端子、出力端子、またはその両方を追加します。ほとんどの端子は、トランザクションを追加または編集したときに、必要に応じて自動的に追加されます。

関連項目

トランザクションの編集、トランザクション・データの読み取り、トランザクション作成のヒント, 端子の追加,


トランザクションの作成と編集

トランザクションを編集するには

マウスとキーボードによる編集

次の表は、マウスを使ってトランザクションを編集する方法のまとめです。

作業 | クリックする対象
リストの末尾に別のトランザクションを追加する。 | オブジェクトをダブルクリック、またはオブジェクト・メニューの[Add Trans]。
強調表示バーを別のトランザクションに移動する。 | 強調表示されていないトランザクション。
強調表示されているトランザクションの上にトランザクションを挿入する。 | オブジェクト・メニューの[Insert Trans]。
強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに保存する。 | オブジェクト・メニューの[Cut Trans]。
強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーする。 | オブジェクト・メニューの[Copy Trans]。
バッファ中のトランザクションを強調表示されているトランザクションの上に貼り付ける。 | オブジェクト・メニューの[Paste Trans]。
複数のトランザクションを選択する。 | Ctrl + 左クリック。
トランザクションを編集する。 | トランザクションをダブルクリック。

次の表は、キーボードを使ってトランザクションを編集する方法のまとめです。

作業 | 押すキー
強調表示バーを次のトランザクションに移動する。 | 下矢印
強調表示バーを前のトランザクションに移動する。 | 上矢印
強調表示バーを別のトランザクションに移動する。 | Home、End、上／下矢印
強調表示されているトランザクションの上にトランザクションを挿入する。 | Insert
強調表示されているトランザクションを削除する。 | Delete
強調表示されているトランザクションをコピーしてトランザクションの「切り取り／貼り付け」バッファに格納する。 | CTRL+C
バッファ中のトランザクションを強調表示されているトランザクションの上に貼り付ける。 | CTRL+V
強調表示されているトランザクションを切り取ってトランザクションの「切り取り／貼り付け」バッファに格納する。 | CTRL+X
直前の操作を元に戻す。 | CTRL + Z
直前の操作をやり直す。 | CTRL + Y
1つのトランザクションを上または下に移動する。 | CTRL + 上／下矢印

トランザクション中のフィールドを編集するには、トランザクションをダブルクリックして下のように[I/O Transaction]ダイアログ・ボックスに展開します。

[I/O Transaction]ダイアログ・ボックスは、I/O操作の種類によって異なります。フィールドの情報を変更するには、矢印をクリックし、表示されるリストから選択します。矢印のないフィールドの場合は、テキストを入力します。[OK]をクリックして、選択を確定し、I/Oオブジェクトに戻ります。

[NOP]をクリックすると、ダイアログ・ボックスに表示された最新の設定が保存され、そのトランザクションはNOP（ノー・オペレーション）になります。これは、テキスト・ベースのコンピュータ・プログラムでコードの1行をコメントアウトするのと同じです。

入力／出力端子は、必要に応じて自動的に追加されます。オブジェクト・メニューを使って端子を追加／削除することもできます。

データ・フィールドの編集

データ・フィールドには、テキストを入力する必要があります。下の図は、READトランザクションと、データ・フィールドの入力例を示します。

下の図は、WRITEトランザクションと、データ・フィールドの入力例を示します。

WRITEトランザクションには式リスト（変数、定数、演算子）が指定できますが、READには変数リストしか指定できません。データ・フィールドの代表的な内容を以下に示します。

データ・フィールドの内容

意味

X

A

（READ）データを変数Xに読み取ります。

（WRITE）変数Aの値を書き込みます。

X,Y

A,B

（READ）データを変数Xに読み取り、次にデータを変数Yに読み取ります。

（WRITE）変数Aの値を書き込み、次に変数Bの値を書き込みます。

null

A,A*1.1

（READのみ）指定された値を読み取って破棄します。nullはVEEで定義されている特殊変数です。

（WRITEのみ）変数Aの値を書き込み、次に変数Aの値に1.1を掛けた結果を書き込みます。

"hello\n"

（WRITE）Textリテラルhelloを書き込み、その後で改行文字を書き込みます。

"FR ",Fr," MHZ"

（WRITE）Textリテラルと数値の組み合わせを書き込みます。トランザクションがWRITE TEXT REALで、FrがReal値1.234を持つ場合、FR 1.234 MHZと書き込まれます。

2重引用符で区切られた文字列のテキスト入力を受け入れるフィールドには、下の表のエスケープ文字を使用できます。

注記

READトランザクションでは、データ・フィールドにnull変数を使用できます。null変数にデータを読み取ると、データは破棄されます。これは不要なデータを削除するのに便利です。

エスケープ文字 | ASCIIコード（10進） | 意味
\n | 10 | 改行
\t | 9 | 水平タブ
\v | 11 | 垂直タブ
\b | 8 | バックスペース
\r | 13 | キャリッジ・リターン
\f | 12 | フォーム・フィード
\" | 34 | 二重引用符
' | 39 | 一重引用符
\\ | 92 | バックスラッシュ
\ddd |  | 3桁の8進値dddに対応するASCII文字。

関連項目

トランザクションの作成と読み取り、トランザクション・データの読み取り、トランザクション作成のヒント、端子の追加


端子の追加

端子を追加するには

VEEは入力／出力端子を必要に応じて自動的に追加します。手動で端子を追加するには、オブジェクト・メニューの[Add Terminal]をクリックするか、キーボード・ショートカットのCTRL+Aを使用します。

WRITEトランザクションは、VEEからオブジェクトに関連する出力先にデータを転送するもので、データ入力端子が必要です。WRITEトランザクションはグローバル変数や"abs(globalA)"などの式からデータを書き込むこともできます。

READトランザクションは、オブジェクトに関連するソースからVEEにデータを転送するもので、データ出力端子が必要です。

端子に表示される変数名は、次に示すように、トランザクション指定の変数名と一致する必要があります。

端子変数名を編集するには、次の手順を実行します。

1 端子をダブルクリックして[Input Terminal Information]ダイアログ・ボックスを開きます。

2 ダイアログ・ボックスで[Name]フィールドを編集します。

VEEの変数名では大文字と小文字が区別されません。すなわち、sはSと同じであり、Signalはsignalと同じです。

関連項目

トランザクションの編集、トランザクションの作成と読み取り、トランザクション・データの読み取り、トランザクション作成のヒント


トランザクション・データの読み取り

トランザクション・データを読み取るには

データを変数に読み取るには、読み取るデータの数か、データの終了条件のどちらかがわかっている必要があります。READトランザクションは、特定の数のデータ要素か、ファイルの末尾（EOF）を探索します。これは、[I/O Transaction]ダイアログ・ボックスの最後のフィールドで指定します。

指定された数のデータ要素を読み取るトランザクション

トランザクション・ダイアログ・ボックスの最後のフィールドのデフォルト値はSCALARです。これは、READトランザクションが1要素だけを読み取ることを示します。これを変更するには、[SCALAR]フィールドをクリックし、リストから選択します。

リスト中の選択肢は、READトランザクションの次元数を指定します。例えば、SCALARは0次元、ARRAY 1Dは1次元配列、ARRAY 2Dは2次元配列を示します。

次元を選択すると、トランザクション・ダイアログ・ボックスに各次元の入力フィールドが表示されます。下の図は、matrixという名前の変数にバイナリ整数の3次元配列を読み取るように設定されたトランザクション・ダイアログ・ボックスを示します。SIZE:の後の3つのフィールドのそれぞれは、対応する次元に存在する整数の数を示します（この例では、各次元に2つずつの要素があります）。

1より大きい次元を指定した場合、右端すなわち最も内側の次元が最初に入力されます。この例では、要素は次の順序で読み取られます。

最初はmatrix[0,0,0]

matrix[0,0,1]

matrix[0,1,0]

matrix[0,1,1]

matrix[1,0,0]

matrix[1,0,1]

matrix[1,1,0]

最後はmatrix[1,1,1]

トランザクション・ダイアログ・ボックスで[OK]ボタンをクリックすると、対応するトランザクションにARRAY:キーワードと各次元のサイズが表示されます。例:

READ BINARY matrix INT32 ARRAY:2,2,2

トランザクションがスカラ値を読み取るように設定された場合、トランザクションは次のようになります。

READ BINARY x INT32

SIZE:フィールドに変数名を使用することにより、プログラムで次元を指定できます。例えば、次のトランザクションは、3次元の行列を読み取ります。

READ BINARY matrix INT32 ARRAY:xsize,ysize,zsize

この例では、xsize、ysize、zsizeは、入力端子名でも、同じオブジェクトの前のトランザクションで設定された出力端子名でもかまいません。

Read-To-Endトランザクション

一部のVEEオブジェクトは、ファイルの末尾（EOF）まで読み取りを行うREADトランザクションをサポートします。これにより、ファイルの内容を1つのトランザクションで読み取ることができます。このようなトランザクションを、Read-To-Endトランザクションと呼びます。Read-To-EndトランザクションをサポートするVEEオブジェクトを次に示します。

From File

From String

To/From DDE

下の図は、From Fileオブジェクトのトランザクション・ダイアログ・ボックスであり、バイナリ整数の3次元配列を読み取りますが、Read-To-Endに設定されています。

Read-To-Endトランザクションはスカラに対してはサポートされません。Read-To-Endに設定するトランザクションは、少なくとも1次元配列用に設定されている必要があります。Read-To-EndをサポートするVEEオブジェクトでは、トランザクション・ダイアログ・ボックスのSIZE:フィールドがボタンで表示されます。SIZE:フィールドをクリックするとRead-To-Endが有効になり、フィールドはTO END:と表示されます。

1次元配列をファイルの末尾まで読み取る場合、配列の要素数はEOFが見つかるまでわかりません。配列の未知のサイズは、トランザクションではアスタリスク（*）で示されます。

多次元配列をファイルの末尾まで読み取る場合、左端すなわち最も外側の次元を除いて、各次元の要素数を指定しておく必要があります。上の例では、トランザクションで左端の次元にサイズの代わりにアスタリスク（*）が示されています。この次元サイズは、Read-To-Endトランザクションが終了するまで不明です。

3次元配列は、単に2次元配列をいくつかまとめたものです。2次元配列には、「行」と「列」の次元があります。2次元配列を（カードのように）積み重ねると、「高さ」という3つめの次元が生まれます。

3次元配列のRead-To-Endトランザクションでは、「行」と「列」の数は指定されていますが、「高さ」はEOFに達するまでわかりません。同じことがすべての多次元Read-To-Endトランザクションについて言えます。配列がn次元の場合、n-1個の次元のサイズは指定しておく必要があります。サイズが不明でいいのは1つ（左端）の次元だけです。

ARRAY 1Dより大きい次元のRead-To-Endトランザクションの場合、読み取った要素の総数は、既知の次元の積で割り切れる必要があります。例えば、3次元配列のRead-To-Endの例で、ファイル中の要素の総数が16の場合、指定された「行」と「列」の数はそれぞれ2に等しいので、トランザクションは4つの2×2配列を読み取ります。すなわち、未知の次元である「高さ」のサイズは、読み取りが終了した時点で4と決まります。

ファイル中の要素数が実際には18だった場合、2×2配列の1つが未完成になります。要素が2つしかないからです。「行」と「列」の次元のサイズに2を指定している場合、このファイルのRead-To-Endトランザクションはエラーになります（データは読み取られません）。一方、「行」の数が1で、「列」の数が3だった場合は、このファイルを読み取ることができます。このファイルのRead-To-Endトランザクションでは、「高さ」は6となります。

ファイル中のデータの総数がわからない場合、ARRAY 1Dを使えばRead-To-Endトランザクションは常に可能です。

注記

Read-To-Endトランザクションは、Execute Programオブジェクトと組み合わせて、不明な数の要素を返すシェル・コマンドを実行する場合に便利です。

関連項目

トランザクションの編集、トランザクション・データの読み取り、トランザクション作成のヒント


トランザクション作成のヒント

必要なトランザクションを作成するには、試行錯誤が最善の方法である場合があります。I/Oトランザクションで処理されるデータの多くはテキスト（バイナリ・データではなく）です。TEXTとして書き込まれたデータは、目で見て確認できるため、実験のためには非常に便利です。TEXTはサイズや速度の面では最適な方法とは言えませんが、ほとんどあらゆる用途に使用できます。

To Stringオブジェクトを使えば、テキストを書き込む他のI/Oオブジェクトの動作を正確にシミュレートできます。次のプログラムは、このための方法の1つを示します。

関連項目

トランザクションの編集、トランザクションの作成と読み取り、トランザクション・データの読み取り、端子の追加


正しいトランザクションの選択

正しいトランザクションを選択するには

このセクションでは、さまざまなI/Oオブジェクトとそれらがサポートするトランザクションの概要を説明します。また、特定の目的に適したオブジェクトとトランザクションを見つける方法も示します。トランザクションのエンコーディングとフォーマットの詳細については、I/Oトランザクション・フォーマットを参照してください。

VEEで使用できるトランザクション・ベースのオブジェクトと、それらがサポートする操作の一覧を、下の表に示します。

表1:

オブジェクト | 説明
To File From File | ファイルにデータを書き込みます。 ファイルからデータを読み取ります。
To String From String | VEEコンテナにテキストを書き込みます。 VEEコンテナからテキストを読み取ります。
To Printer | VEEテキスト・プリンタにテキストを書き込みます。
To StdOut To StdError From StdIn | VEEの標準出力にデータを書き込みます。 VEEの標準エラーにデータを書き込みます。 VEEの標準入力からデータを読み取ります。
Direct I/O MultiInstrument Direct I/O Interface Operations | GPIB、VXI、シリアル、GPIOの計測器と直接通信します。 同じオブジェクトで複数のGPIB、VXI、シリアル、GPIOの計測器と直接通信します。 . GPIBまたはVXIインタフェースに低レベルのバス・コマンドやデータ・バイトを送信します。
To/From DDE | Microsoft Windowsで動作するプログラムの間で動的にデータを交換します。

表2:

操作 | 説明
EXECUTE | 低レベル・コマンドを実行して、トランザクション・ベース・オブジェクトに関連するファイル、計測器、インタフェースを制御します。この操作は、ファイル・ポインタの調整、バッファのクリア、ファイルやパイプのクローズ、ハードウェア・インタフェースの低レベル制御などに用いられます。
WAIT | 指定された時間だけ待ってから次のトランザクションを実行します。 GPIB、メッセージ・ベースおよびI-SCPIでサポートされるレジスタ・ベースのVXI計測器に対するDirect I/Oの場合、WAITは特定のシリアル・ポール応答を待つこともできます。
READ | 関連するオブジェクトからデータを読み取ります。
WRITE | 関連するオブジェクトにデータを書き込みます。
SEND | GPIBインタフェースにIEEE 488で定義されたバス・メッセージ（コマンドとデータ）を送信します。

正しいオブジェクトとトランザクションの選択

1 I/O操作のソースまたは出力先と、データを送信する形式を決定します。

2 ソースまたは出力先をサポートするオブジェクトを表1から見つけます。

3 適切な種類のトランザクションを表2から見つけます。

4 トランザクションの指定の残りの部分（エンコーディングやフォーマットなど）を決定するには、WRITEトランザクションとREADトランザクションを参照してください。

例:オブジェクトとトランザクションの選択

例えば、2列のテキスト・データを記録したファイルを読み取るとします。各行には、タイム・スタンプと実数がスペースで区切られて記録されています。行末には改行文字があります。ファイルの内容の一部を下に示します。

   14:18:00 1.001

   14:18:30 -2.002

14:19:00 1.0E-03 . . .

上記のオブジェクトとトランザクションの選択手順によれば、この問題を解決する手順は以下のようになります。

1 ソースはテキスト・ファイルです。データは、24時間制の時間-分-秒の形式のタイムスタンプと、科学的記数法および10進記数法の符号付き実数から構成されます。

2 表1より、ファイルを読み取るのに使用するオブジェクトはFrom Fileです。

3 表2より、ファイルからデータを読み取るのに使用するトランザクションの種類はREADです。

4 必要なトランザクションは次のとおりです。

READ TEXT x TIME

READ TEXT y REAL

To StringおよびFrom Stringの使用法

To Stringを使うと、フォーマットされたテキストをトランザクションを使って作成できます。テキストはVEEコンテナに書き込まれます。

From Stringを使うと、フォーマットされたテキストをVEEコンテナから読み取ることができます。

To Stringオブジェクトのすべてのトランザクションから1つの文字列だけが生成される場合、出力コンテナはTextスカラです。To Stringのトランザクションから複数の文字列が生成される場合、出力は1次元のText配列です。

WRITEトランザクションでEOL ONを使用すると、現在の出力文字列が常に終了されます。これにより、次のトランザクションは出力コンテナの次の配列要素に書き込みを開始します。

EOL OFFで終わるWRITEトランザクションは出力文字列を終了しないので、次のWRITEトランザクションから出力された文字は現在の文字列の末尾に追加されます。To Stringの最後のトランザクションは、EOL設定と無関係に常に現在の文字列を終了します。

ほとんどの場合、To Stringで使用するのに適したトランザクションの種類はWRITE TEXTです。TEXT以外のエンコーディングの詳細については、WRITEトランザクションとREADトランザクションを参照してください。

From Stringは、READ TEXTトランザクションの設定に応じて、Textスカラまたは配列を読み取ることができます。READ TEXTは、EOLを読み取ったときに読み取りを終了することも、EOLを読み捨てて読み取りを継続することもできます。これはフォーマットによって異なります。フォーマットの詳細については、WRITEトランザクションとREADトランザクションを参照してください。

注記

READとWRITEの互換性

一般的に、データを正しく読み取るには、そのデータがどのように書き込まれたかを知っている必要があります。これは特に、バイナリ・フォーマットのデータの場合に当てはまります。データを直接調べてフォーマットを判定することができないからです。データは書き込まれたのと同じフォーマットで読み取る必要があります。


トランザクション・ベース・オブジェクトの使用法

トランザクション・ベース・オブジェクトを使用するには

このセクションでは、トランザクション・ベース・オブジェクトの使用のガイドラインを示します。実行規則やオブジェクト構成に関する説明があります。

実行規則

トランザクションI/Oオブジェクトは、VEEプログラムのすべての一般的な伝達規則に従います。さらに、トランザクション自体に関する次のような規則があります。

トランザクションの実行はいちばん上のトランザクションから始まり、下方向に順次進行します。

リスト中の1つのトランザクションの実行が完全に終了してから、次のトランザクションの実行が始まります。1つのオブジェクトの中のトランザクションの実行が重なり合うことはありません。同様に、特定のソースまたは出力先にアクセスできるトランザクション・オブジェクトは一度に1つだけです。

同じソースまたは出力先にアクセスする複数のトランザクション・ベースI/Oオブジェクトが、1つのプログラムの別々のスレッドまたは同じスレッドに存在してもかまいません。

ファイルに関連するオブジェクトの場合、読み取りポインタと書き込みポインタは1つのファイルにそれぞれ1つだけ存在します。特定のファイルにアクセスするすべてのオブジェクトが同じポインタを共有します。

オブジェクト構成

最も一般的な例では、トランザクションの結果は実際には次の2つの事項によって決まります。

トランザクションの指定

オブジェクト・メニューの[Properties]からアクセスされる設定

ほとんどの場合、[Properties]の設定については考慮する必要はありません。一般的にはデフォルト値で十分です。

データを書き込むトランザクション・ベースI/Oオブジェクト（Direct I/Oを除く）の[Properties]ダイアログ・ボックスには、データ・フォーマットを編集するためのタブがあります。このダイアログ・ボックスでは、さまざまな設定の表示と編集が可能です。

注記

Direct I/Oオブジェクトのオブジェクト・メニューの[Show Config]機能を使うと、構成設定の表示が可能です（編集はできません）。Direct I/Oオブジェクトの構成を編集するには、 [I/O] [image] [Instrument Manager]を使用する必要があります。

トランザクションI/Oオブジェクトのタイトル・バーをダブルクリックすると、次のように[Properties]ウィンドウが表示されます。

[Properties]ウィンドウの[Data Format]タブには、WRITEトランザクションでの一部のデータの書き込み方法に影響する設定があります。[End Of Line (EOL)]は、EOL ONが設定されているすべてのWRITEトランザクションに影響します。残りの[Data Format]フィールドは、WRITE TEXTトランザクションだけに影響します。

以下の各セクションでは、[Data Format]タブのフィールドについて詳しく説明します。

[End Of Line (EOL)]フィールド

[End Of Line (EOL)]フィールドは、EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上の文字を二重引用符で囲んだものです。「二重引用符」とは、ASCIIの10進34です。[End Of Line (EOL)]では、任意のASCII文字と、エスケープ文字表に示されたエスケープ文字が認識されます。

[Array Separator]フィールド

[Array Separator]フィールドは、WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。「二重引用符」とは、ASCIIの10進34です。[Array Separator]では、任意のASCII文字と、エスケープ文字表に示されたエスケープ文字が認識されます。

配列を書き込むDirect I/OオブジェクトのWRITE TEXT STRトランザクションは特別です。この場合、[Array Separator]フィールドの値は無視され、ラインフィード文字（ASCIIの10進10）が配列要素の区切りとして用いられます。この動作は、ほとんどの計測器の必要に合致しています。

[Multi-Field Format]フィールド

[Multi-Field Format]フィールドは、WRITE TEXTトランザクションで使用するマルチフィールド・データ型のフォーマット・スタイルを指定します。VEEのマルチフィールド・データ型には、Coord、Complex、PComplex、Spectrumがあります。その他のデータ型とその他のフォーマットは、この設定に影響されません。

マルチフィールド・フォーマットに(...) Syntaxを指定すると、各マルチフィールド項目が括弧で囲まれます。Data Onlyを指定すると、括弧は省略されますが、区切りのカンマは用いられます。例えば、複素数2+2jは、(...) Syntaxでは(2,2)、Data Onlyでは2,2と出力されます。

VEEではマルチフィールド・データ型の配列を使用できます。例えば、Complexデータの配列を作成できます。このような場合、[Multi-Field Format]が(...) Syntaxに設定されていると、配列は次のように出力されます。

(1,1)array_sep(2,2)array_sep ...

ここで、array_sepは[Array Separator]フィールドに指定された文字です。

[Array Format]フィールド

[Array Format]フィールドは、多次元配列を出力する方法を決定します。例えば、数学では行列は次のように表記されます。

   1 2 3

   4 5 6

   7 8 9

VEEでは同じ行列を、[Array Format]の設定に応じて2通りに出力できます。下の2つの例では、[End Of Line (EOL)]が"\n"（改行）、[Array Separator]が" "（スペース）に設定されています。

1 2 3 Block Array Format

   4 5 6

   7 8 9

1 2 3 4 5 6 7 8 9 Linear Array Format

どちらの配列フォーマットでも、配列の各要素はArray Separator文字で区切られます。さらに、Block Array Formatでは、配列の各行がEnd Of Line (EOL)文字で区切られます。

より一般的な場合（2次元より大きい配列）の場合、Block Array Formatでは、右端以外の添字が変化したときにEnd Of Line (EOL)文字が出力されます。

例えば、3次元配列A[x,y,z]を次のトランザクションを使ってBlock配列フォーマットで出力する場合:

WRITE TEXT A

xまたはyの値が変化するたびにEnd Of Line (EOL)文字が出力されます。

Aの各次元のサイズが2の場合、要素は次の順番で出力されます。

A[0,0,0] A[0,0,1]<EOL文字>

A[0,1,0] A[0,1,1]<EOL文字>

<EOL文字>

A[1,0,0] A[1,0,1]<EOL文字>

A[1,1,0] A[1,1,1]<EOL文字>

A[0,1,1]が出力された後、xとyは同時に変化するので、2個の<EOL文字>が出力されます。


ファイルとの通信方法

このセクションでは、ファイルとの通信のガイドラインを示します。ファイル・ポインタの使用法やデータのインポートについて説明します。

ファイル・ポインタの使用法

VEEは、ファイルにアクセスしているオブジェクトの数に関係なく、ファイルごとに1つの読み取りポインタと1つの書き込みポインタを保持します。読み取りポインタは、次に読み取るデータ項目の位置を示します。同様に、書き込みポインタは、次の項目が書き込まれる位置を示します。次の表は、オブジェクトとソース／出力先ファイルの関係を示します。

ソースまたは出力先 | オブジェクト
データ・ファイル | To File、From File
標準入力 | From StdIn
標準出力 | To StdOut
標準エラー | To StdErr

これらのポインタの位置は、次の要因によって影響されます。

A0;A0;A0;A0;READ、WRITE、EXECUTE操作

A0;A0;A0;A0;ToA0;Fileのオープン・ビューのClear File at PreRun & Open設定

同じファイルにアクセスするすべてのオブジェクトは、異なるスレッドや異なるコンテキストにある場合でも、同じ読み取り／書き込みポインタを使用します。

ファイルは以下の条件が満たされたときに読み取り／書き込み用にオープンされます。

A0;A0;A0;A0;特定のファイルにアクセスする最初のオブジェクトがPreRun後に最初に動作したとき。これは最も普通の場合です。

A0;A0;A0;A0;ファイル名を指定するオプションのコントロール入力端子に新しいデータが到達したとき。これはそれほど一般的ではありません。

読み取りポインタ

FromA0;Fileがファイルをオープンしたときには、読み取りポインタはファイルの先頭にあります。その後のREADトランザクションは、読み取りを実行するために必要に応じてファイル・ポインタを進めます。FromA0;FileオブジェクトでEXECUTEA0;REWINDトランザクションを使用することにより、読み取りポインタをいつでもファイルの先頭に戻すことができます。ファイル中のデータはこの操作によって影響されません。

書き込みポインタ

書き込みポインタの初期位置は、ToA0;Fileのオープン・ビューのClear File at PreRun & Open設定によって異なります。Clear File at PreRun & Openをオンにした場合、ファイルがオープンされるときに、ファイルの内容は消去され、書き込みポインタはファイルの先頭に位置付けられます。オンにしない場合、書き込みポインタはファイルの末尾に位置付けられ、データは追加されます。

EXECUTEA0;REWINDまたはEXECUTEA0;CLEARトランザクションを使用することにより、書き込みポインタをいつでもファイルの先頭に戻すことができます。REWINDを使用した場合、ファイル中の既存のデータはそのまま残ります。ただし、新しい位置から新しいデータを書き込むと、その位置の古いデータは上書きされます。CLEARを使用した場合、ファイル中の既存のデータは消去されます。

注記

To DataSet/From DataSetオブジェクトも、To File/From Fileと同じ1つの読み取り／書き込みポインタをファイルごとに共有します。ただし、同じファイルに対してTo DataSet/From DataSet操作とTo File/From File操作を混在させることは推奨されません。

ファイルのクローズ

ToA0;Fileから書き込まれたデータは、最後のトランザクションが実行を終了し、すべての出力端子がアクティブになった後で、オペレーティング・システムに書き込まれることが保証されます。

すべてのファイルはPostRun時にクローズされます。PostRunは、すべてのアクティブなスレッドが実行を終了したときに行われます。

ファイルは、ToA0;FileおよびFromA0;FileでEXECUTEA0;CLOSEトランザクションを使用することにより、プログラムでクローズすることもできます。これにより、他のプロセスで作成されたファイルを連続的に読み書きすることができます。

ファイルをプログラムから削除するには、EXECUTEA0;DELETEトランザクションを使用します。これは一時ファイルを削除するのに便利です。

EXECUTEA0;CLOSEを使用した例を下に示します。このプログラムは、manual48.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

Execute Programは、シェル・コマンド（date）を実行することにより、日付と時間を生成してファイル（\tmp\dateFile）に書き込みます。同じスレッドで、FromA0;FileがREADA0;TEXTA0;xA0;STRトランザクションを使用してファイルから日付を読み取ります。EXECUTE CLOSEが必要なのは、サブスレッドがForA0;Countによって複数回実行されるからです。

ExecuteA0;Programを連続して実行すると、ファイルは上書きされます。ただし、FromA0;Fileはファイルを1回しかオープンしないので、FromA0;Fileの2回目の実行では、読み取りポインタが無効になっています。ExecuteA0;Programがファイルを作成し直しているため、このポインタはすでにファイルを指していません。エラーが発生します。

FromA0;Fileは、データを読み取った後で、EXECUTEA0;CLOSEトランザクションを使ってファイルをクローズする必要があります。EXECUTEA0;CLOSEトランザクションがあるために、実行のたびにFromA0;Fileはファイルをオープンし直します。

この例では、NOPを使ってEXECUTEA0;CLOSEをコメントアウトすることにより、エラーを見ることができます。エラーの内容は、ファイル終了またはデータが見つからないと言うものです。NOPを削除すると、プログラムは正常に動作します。

EOFデータ出力

FromA0;Fileは、EOF（End-Of-File）という名前の独自のデータ出力端子をサポートします。この端子は、ファイルの末尾を超えて読み取ろうとしたときにアクティブになります。EOF端子は、長さが不明のファイルを読み取る場合に役立ちます。

Read-To-End機能を使っても、不明な長さのファイルを読み取ることができます。ただしこの場合、ファイルの内容は1つのVEEコンテナに入ります。ファイルを1要素ずつ読み取り、それぞれの要素を別々のコンテナに入れたい場合は、EOF端子を使用します。

次の例は、EOFの代表的な使用法を示します。読み取るファイルには、不明な長さのX-Yデータのリストが記録されています。ファイルの内容の代表的な例を以下に示します。

   1.0

   5.5

   2.1

   8

   .

   .

.

データのインポート

VEEにはデータの解析と表示のための便利な環境が用意されているので、他のプログラムからVEEにデータをインポートしたい場合があります。他のソフトウェア・アプリケーションからデータをインポートするための一般的な手順を以下に示します。

1データをテキスト・ファイル（ASCIIファイル）に保存します。

2;データ・ファイルをテキスト・エディタで表示し、データのフォーマットを調べます。

3From FileオブジェクトでREAD TEXTトランザクションを使ってデータ・ファイルを読み取ります。

X-Y値のインポート

よくある例として、不明な数のX値とY値を記録したテキスト・ファイルを読み取り、値をプロットする問題を取り上げます。この問題を解決するプログラムを次に示します。

上のプログラムは、manual29.veeファイルに保存されています。 >

READ TEXT REAL64トランザクションは、符号、小数点、指数などを含めて、Y値に用いられるあらゆる記法を容易に処理できます。データ・ファイルの一部を以下に示します。

.

.

.

8 8.555555

9 9e0

10 1.05e+01

11 +11.

12 12.5

13 1.3E1

波形のインポート

他のソフトウェア・アプリケーションの中には、さまざまな方法で波形をテキスト・ファイルに保存するものがあります。一般的に、ファイルの内容は、波形の属性を記述するいくつかの値と、Y値の1次元配列から構成されます。このセクションでは、以下のいずれかの方式で保存された波形をインポートする方法を示します。

• 固定フォーマット・ファイル・ヘッダ。波形属性はファイルの先頭の固定位置に記述され、その後にYデータの1次元配列が記録されます。

• 可変フォーマット・ファイル・ヘッダ。ファイルの先頭に可変の数の属性が記述され、その後にYデータの1次元配列が記録されます。属性の位置は特殊なテキスト・トークンで指定されます。

固定フォーマット・ヘッダ

固定フォーマットのデータ・ファイルの一部を以下に示します。

NAME Noise1

START_TIME 0.0

STOP_TIME 1.0E-03

SAMPLES 32

DATA

.243545

.2345776

.

.

.

これは固定フォーマットのヘッダなので、NAMEやSAMPLESといったラベルは無意味です。波形属性は常に存在し、同じ位置にあります。次の例は、上記の波形データ・ファイルを読み取るプログラムを示します。

上のプログラムは、manual30.vee ファイルに保存されています。このファイルはexamplesディレクトリにあります。

ここでは、From Fileのトランザクションがほとんどの作業を実行します。各トランザクションの働きを以下に示します。

1 最初のトランザクションは、NAMEラベルを除去します。これは、波形の名前の文字列を読み取るために必要です。これがないと、NAMEとNoise1が1つの文字列として読み取られてしまいます。

2 2つめのトランザクションは、波形の名前の文字列を読み取ります。

3 3つめから5つめまでのトランザクションは、指定された数値を読み取ります。ファイル中の文字のうち、数値の構築に不要なものは、自動的に読み取られて無視されます。

4 6つ目のトランザクションは、前のトランザクションで読み取ったARRAY SIZEに基づいて、Yデータの1次元配列を読み取ります。Samplesはこのトランザクションで使用するために必ず出力端子として存在する必要があります。

可変フォーマット・ヘッダ

可変フォーマット・ヘッダのデータ・ファイルの一部を以下に示します。

First Line Of File

<MARKER1> 1 2 3

<MARKER2> A B C

<DATA>

1 1.1

2 2.2

3 2.9

.

.

.

この場合、ファイル中のデータの正確な内容と位置は不明です、このファイルについてわかっていることは、XY値のリストが特殊なテキスト・マーカ<DATA>の後にあることだけです。

例を単純にするために、このプログラムは<DATA>に対応するデータだけを探し出します。実際のアプリケーションでは、複数のマーカを探す必要があるかもしれません。

このプログラムは、 manual31.vee ファイルに保存されています。 このファイルはexamplesディレクトリにあります。

From File #1は、トークン（スペースで区切られた語）を1つずつ読み取り、<DATA>を探します。<DATA>が見つかると、From Fileはファイルの末尾に達するまでXYペアを読み取ります。

関連項目

例題5-3：To/From Fileオブジェクトの使用方法


プログラムとの通信方法

このセクションでは、プログラムと通信するためのガイドラインを示します。以下のような内容があります。

Execute Programの使用法

Dynamic Data Exchange（DDE）の使用法

次の表に、プログラムと関連するオブジェクトを示します。

プログラム | オブジェクト
MS-DOSコマンド | Execute Program
Windowsアプリケーション¨ | Execute Program To/From DDE
Cプログラム | Execute Program Import Library Call Function Formula

¨ VEEでサポートされるActiveXオートメーションを使うと、他のWindowsアプリケーションを制御できます。この機能の使用法については、[Help] [image] [Content and Index] [image] [以下の項目についての説明] [image] [Active X]を参照してください。

Execute Programの使用法

Execute Programオブジェクトを使って、オペレーティング・システムのコマンド・ラインから通常実行する作業を実行できます。Execute Programオブジェクトの例を次に示します。

Execute Programを使うと、以下のようなあらゆる実行可能ファイルを実行できます。

コンパイル済みCプログラム

任意のMS-DOSプログラム（*.EXEまたは*.COMファイル）

.BATファイル

MS-DOSシステム・コマンド（dirなど）

Execute Programのフィールド

以下の各セクションでは、Execute Programのオープン・ビューにあるフィールドについて説明します。

Run Style

実行したいプログラムがウィンドウで動作する場合、Run Styleはウィンドウのスタイルを指定します。

Normalはプログラムを標準のウィンドウで実行します。

Minimizedはプログラムをアイコンに最小化されたウィンドウで実行します。

Maximizedはプログラムを最大サイズに拡大されたウィンドウで実行します。

Wait for prog exit

Wait for prog exitは、Execute Programオブジェクトの動作を終了し、データ出力をアクティブにするタイミングを決定します。Wait for prog exitがYesに設定されている場合、VEEは次の動作を実行します。

1 Execute Programオブジェクトに指定されているコマンドを実行します。

2 プロセスが終了するのを待ち、その後にExecute Programオブジェクトの出力ピンをアクティブにします。

Wait for prog exitがNoに設定されている場合、VEEは次の動作を実行します。

1 Execute Programオブジェクトに指定されているコマンドを実行します。

2 Execute Programオブジェクトのデータ出力ピンをアクティブにします。

他の条件が同じだとすると、Execute ProgramはWait for prog exitがNoに設定されている場合に最も高速に動作します。

Prog with params

Prog with paramsは、次のいずれかを指定します。

1 実行ファイル名とコマンド・ライン・パラメータ。

2 MS-DOSに送られて解釈されるコマンド。

PATH変数に適切なパスを指定してある場合、Prog with paramsフィールドにパスを指定する必要はありません。Prog with paramsフィールドの代表的な内容を以下に示します。

MS-DOSコマンドを実行する場合:

COMMAND.COM /C DIR *.DAT

コンパイルされたCプログラムを実行する場合:

MyProg -optionA -optionB

ブラウザでURLを開く場合:

http://www.agilent.com/find/vee

文書を開く場合:

D:\path\word.doc

Working directory

Working directoryは、実行したいプログラムが必要なファイルを探すためのディレクトリを指定します。例えば、ディレクトリc:\progs\cprog1にあるmakefileを使ってプログラムnmakeを実行したい場合は、次のようにします。

1 Prog with paramsにnmakeと入力します。

2 Working directoryにc:\progs\cprog1と入力します。

Dynamic Data Exchange（DDE）の使用法

注記

DDEは古い機能です（ただしサポートはされています）。Windows版VEEでサポートされるActiveXオートメーションを使うと、他のWindowsアプリケーションを制御できます。この機能の使用法については、[Help] [image] [Content and Index] [image] [以下の項目についての説明] [image] [Active X]を参照してください。Agilentでは、DDEでなくActiveXオートメーションを使用することを強くお勧めします。

Dynamic Data Exchange（DDE）は、Windowsアプリケーション間のメッセージ・ベースの通信プロトコルを定義しています。この通信は、DDEクライアントとDDEサーバの間で行われます。DDEクライアントは、DDEサーバとの対話を要求します。その後、クライアントはサーバ・アプリケーションにデータやサービスを要求します。サーバはデータを送信するか手順を実行することにより応答します。

DDEをサポートするWindowsアプリケーションは、クライアント、サーバ、またはその両方として動作します。VEEが提供しているのはクライアント機能だけです。DDE機能はTo/From DDEオブジェクトで実現されています。

To/From DDEオブジェクトは、以下の4種類のトランザクションを使用します。

READ(REQUEST) | DDE転送からデータを読み取ります。
WRITE(POKE) | DDE転送にデータを書き込みます。
EXECUTE | VEEの通信相手のDDEサーバにコマンドを送信します。サーバはコマンドを実行します。
WAIT | 指定された時間（秒単位）だけ待ちます。

To/From DDEオブジェクトは、その機能の一部として、DDE動作の開始／終了を行います。開始／終了を明示的に実行する必要はありません。

下に示すように、To/From DDEオブジェクトには、Application、Topic、Timeoutの3つの主要なフィールドがあります。

Applicationフィールドには、通信相手のWindowsアプリケーションのDDEアプリケーション名を入力します。一般的には、これは.EXEファイルの名前です。各アプリケーションのDDEアプリケーション名を知るには、アプリケーションのマニュアルを参照してください。

Topicフィールドには、データの種類を表すアプリケーション固有の識別子が指定されます。例えば、ワード・プロセッサのTopicはドキュメント名になることがあります。

Timeoutフィールドは、アプリケーションが応答しない場合にVEEが待つタイムアウト時間を指定します。デフォルト値は5秒です。

最後のフィールドには、相手のアプリケーションと通信するためのトランザクションが含まれます。READ(REQUEST)およびWRITE(POKE)トランザクションの場合、トランザクションのアイテム名を入力する必要があります。アイテム名とは、各データに対するアプリケーション固有の識別子です。例えば、スプレッド・シートのデータ・アイテムはセル位置、ワード・プロセッサのデータ・アイテムはブックマーク名になることがあります。

下のTo/From DDEオブジェクトは、MS WindowsのProgram Managerと通信するためのもので、プログラム・グループを作成し、グループにアイテムを追加し、それを5秒間表示し、プログラム・グループを削除します。

サーバDDEアプリケーションが現在動作していない場合、VEEはアプリケーションを起動しようとします。これが成功するのは、アプリケーションの実行可能ファイル名がアプリケーション・フィールドの名前と一致する場合だけです。また、実行可能ファイルのディレクトリがPATHに指定されている必要があります。VEEは、Timeoutフィールドに入力された時間だけアプリケーションの起動を試みます。

実行可能ファイルのディレクトリがPATHにない場合、次のようにTo/From DDEオブジェクトの前にExecute Programオブジェクトを使用して、アプリケーション・プログラムを実行しておきます。

次の例は、To/From DDEオブジェクトの入力／出力端子の使用法を示します。

DDEの例

さまざまなWindowsソフトウェア・アプリケーションとの通信の例を以下に示します。それぞれの例のNote Padには、例に関する重要な情報が記載されています。

Lotus 123のDDEの例:

ExcelのDDEの例:

ReflectionsのDDEの例:

Word for WindowsのDDEの例:

WordPerfectのDDEの例:


Direct I/OおよびInterface Operationsでのトランザクションの使用

I/Oトランザクションを使って計測器と通信するためには、次の3種類のVEEオブジェクトが使用できます。

Direct I/Oオブジェクトは、GPIB、VXI、シリアル、GPIOの各インタフェースとLAN接続を使って計測器との間でデータを伝送するために使用できます。

MultiInstrument Direct I/Oオブジェクトは、1つのオブジェクトから複数の計測器に対してDirect I/Oトランザクションを実行するために使用できます。

Interface Operationsオブジェクトは、低レベルのGPIBまたはVXIメッセージ、コマンド、データを送信するために使用できます。

これらのオブジェクトでは、メッセージは「構築」された後I/Oトランザクションによって送信されます。

注記

レジスタ・ベースVXIデバイスは、I-SCPIドライバによってサポートされる場合に限り、メッセージ・ベースとして扱うことができます。

Direct I/O、MultiInstrument Direct I/O、Interface Operationsの各オブジェクトを使用するためには、計測器と通信できるようにVEEを正しく設定しておく必要があります。詳細についてはInstrument Managerを参照してください。


Direct I/Oオブジェクトの使用法

Direct I/Oオブジェクトは、計測器の組み込みコマンドを使って計測器を直接制御するために使用します。Direct I/Oを使って計測器を制御する場合、VEE計測器ドライバ（ID）やVXIplug&playドライバは不要です。

コマンドの送信

Direct I/Oで計測器にコマンドを送信するには、WRITEトランザクションを使用します。GPIB、メッセージ・ベースVXI、I-SCPIでサポートされるレジスタ・ベースVXI、シリアル計測器にコマンドを送信するための最も重要なWRITEトランザクションを以下に示します。

WRITE TEXT

WRITE BINBLOCK

WRITE STATE

Direct I/OからGPIO計測器にコマンドを送信するには、WRITE BINARYおよびWRITE IOCONTROLトランザクションだけが使用されます。

Direct I/Oからレジスタ・ベースおよび一部のメッセージ・ベースVXI計測器にコマンドを送信するには、WRITE REGISTERおよびWRITE MEMORYトランザクションが使用されます。I-SCPIドライバでサポートされないレジスタ・ベースVXI計測器と通信する方法は、これらのトランザクションしかありません。

WRITE TEXTトランザクション

Direct I/Oが必要なほとんどの場合において、計測器の設定に必要なのはWRITE TEXTトランザクションだけです。GPIB、メッセージ・ベースVXI、シリアル計測器のほとんどは、人間が読めるテキスト文字列をプログラミング・コマンドとして使用します。このようなコマンドは、WRITE TEXTトランザクションを使って容易に計測器に送信できます。

例えば、IEEE 488.2に適合するすべての計測器は、*RSTをリセット・コマンドとして認識します。このような計測器をリセットするためには、次のトランザクションを使用します。

WRITE TEXT "*RST" EOL

計測器の構文では、多くの場合、区切り文字を正確に指定することが要求されます。例えば、各コマンドの後やコマンドのグループの末尾に特定の文字を送信することが必要とされる場合があります。また、GPIB計測器のシグナル・ラインEOI（End-Or-Identify）の使用法は計測器ごとに異なります。

上記のことが原因で問題が発生している疑いがある場合は、[Advanced Instrument Properties]ダイアログ・ボックスの[Direct I/O]タブの[END(EOI)on EOL]および[EOL Sequence]フィールドを調べてみてください。[Advanced Instrument Properties]ダイアログ・ボックス: [Direct I/O]タブを参照してください。お使いの計測器に対する正しいコマンド構文については、計測器のプログラミング・マニュアルを参照してください。

  • Direct I/Oでは、計測器で必要とされる場合、TEXT以外のWRITEエンコーディングも使用できます。TEXT以外のエンコーディングで最も多く用いられるのは、BINBLOCKとSTATEです。

WRITE BINBLOCKトランザクション

BINBLOCKエンコーディングは、IEEEで定義されたブロック・フォーマットを使って計測器にデータを書き込みます。これらのブロック・フォーマットは通常、関連のある大量のデータを転送するために用いられます。例えば、オシロスコープやスペクトラム・アナライザのトレース・データなどです。計測器でBINBLOCKデータを使用するには、多数のコマンドを必要とするのが普通です。詳細については、計測器のプログラミング・マニュアルを参照してください。

BINBLOCKトランザクションを使用するには、[Advanced Instrument Properties]ダイアログ・ボックスの[Direct I/O]タブの[Conformance]フィールド（および場合によっては[BINBLOCK]）を適切に設定する必要があります。[Advanced Instrument Properties]ダイアログ・ボックス: [Direct I/O]タブを参照してください。

WRITE STATEトランザクション

一部のGPIBおよびメッセージ・ベースVXI計測器は、ラーン・ストリング機能を備えています。これを利用すれば、すべての計測器設定をアップロードできます。その後で、WRITE STATEトランザクションを使ってラーン・ストリングをダウンロードすることにより、計測器の測定ステートをリコールできます。ラーン・ストリングは特に、測定ステートをダウンロードしたいが、計測器ドライバが使用できない場合に有用です。

注記

WRITE STATEトランザクションが使用できるのは、GPIBおよびメッセージ・ベースVXI計測器に対してだけです。

ラーン・ストリングの代表的な使用手順を以下に示します。

1 計測器を目的の測定ステートに設定します。通常これは、計測器のフロント・パネルから行います。

2 計測器に対して設定されたDirect I/Oオブジェクトのオブジェクト・メニューで[Upload State]をクリックします。これにより、計測器ステートが、Direct I/Oオブジェクトのこの特定のインスタンスに関連付けられます。

3 Direct I/OオブジェクトにWRITE STATEトランザクションを追加します。

  • WRITE STATEトランザクションを使用する場合、これはDirect I/Oオブジェクトの最初のトランザクションになるのが普通です。WRITE STATEは、アップロードされたラーン・ストリングを計測器に書き込み、すべての計測機器能を同時に設定します。その後のWRITEトランザクションで、計測器セットアップを個別に変更することもできます。

GPIBおよびメッセージ・ベースVXI計測器に対するUploadおよびWRITE STATEの動作は、[Direct I/O]タブの[Conformance]および[State (Learn String)]の設定に影響されます。

[Conformance]がIEEE 488.2の場合、VEEは自動的にIEEE 488.2の*LRN?定義を使ってラーン・ストリングを処理します。[Conformance]がIEEE 488の場合は、[Upload String]でステートの問合せに使用するコマンドを指定し、[Download String]でダウンロード時に文字列の前に送信されるコマンドを指定します。

メッセージ・ベースVXI計測器と、I-SCPIでサポートされるレジスタ・ベースVXI計測器は、IEEE 488.2に適合します。

Direct I/Oオブジェクト・メニューで[Upload State]をクリックすると、以下の結果が生じます。

ラーン・ストリングがただちにアップロードされます。

次のアップロードまで、そのDirect I/Oオブジェクトが存在する限り、ラーン・ストリングはそのDirect I/Oオブジェクトに記憶されています。ラーン・ストリングはプログラムとともに保存されます。

Direct I/Oオブジェクトをクローンした場合、対応するラーン・ストリングもクローンに含まれます。

ラーン・ストリングの例

例として、HP 54100Aディジタイジング・オシロスコープをラーン・ストリングを使ってプログラムする場合を考えます。このオシロスコープに関する重要な事実を以下に挙げます。

このオシロスコープはIEEE 488に適合しますが、IEEE 488.2には適合しません。

このオシロスコープのラーン・ストリングを問い合わせるためのコマンドはSETUP?です。

SETUPコマンドは、計測器にダウンロードするラーン・ストリングの前に置きます。SETUPのPと、ダウンロードするラーン・ストリングの最初の文字との間には、スペースが必要です。

オシロスコープに対する適切なDirect I/O設定を指定するには、Instrument Managerを使用します。ラーン・ストリングの設定を下に示します。

オシロスコープからラーン・ストリングをアップロードするには、オシロスコープを制御するDirect I/Oオブジェクトのオブジェクト・メニューで[Upload]をクリックします。ラーン・ストリングをダウンロードするには、次のトランザクションを使用します。

WRITE STATE

データの読み取り

Direct I/Oを使って計測器からデータを読み取るには、READトランザクションを使用します。

注記

計測器が返すデータにはさまざまなフォーマットがあります。一般的にいえば、VEEを使って計測器から読み取るデータの種類と大きさを知っておく必要があります。データの種類によって、トランザクションに指定するエンコーディングとフォーマットが決まります。読み取るデータの大きさによって、トランザクション・ダイアログ・ボックスのSCALARまたはARRAYフィールドに使用する設定が決まります。

GPIB、メッセージ・ベースVXI、シリアル計測器に対するDirect I/Oで使用される最も重要なREADトランザクションを以下に示します。

READ TEXT

READ BINBLOCK

Direct I/OでGPIO計測器からデータを読み取るためには、READ BINARYおよびREAD IOSTATUSトランザクションだけが使用されます。

Direct I/Oでレジスタ・ベースおよび一部のメッセージ・ベースVXI計測器からデータを読み取るためには、READ REGISTERおよびREAD MEMORYトランザクションが使用されます。I-SCPIでサポートされないレジスタ・ベースVXI計測器と通信する方法は、これらのトランザクションしかありません。

注記

計測器からのデータ読み取りで問題が発生する場合は、Agilent IO Monitorを使ってデータ・フォーマットを調べてみてください。

READ TEXTトランザクション

問合せによって計測器から読み取るデータの多くは、テキストとしてフォーマットされた1つの数値です。例えば、電圧計は各測定値を指数表現の1つの数値（例: -1.234E+00）で返します。電圧計から値を読み取るトランザクションは次のとおりです。

"READ TEXT a REAL"

一部の計測器は、問合せに対して、英文字の情報と数値測定データの組み合わせを返します。READ TEXT REALトランザクションは先頭の英文字を捨てて数値だけを取り出すので、一般的にはこれは問題になりません。

注記

計測器から数値データを読み取る際に、計測器のデータ型は、計測器I/Oのデータ型変換に記述された規則に従って、必要に応じて自動的に変換されます。


MultiInstrument Direct I/Oオブジェクトの使用法

MultiInstrument Direct I/O object（[I/O] [image] [Advanced I/O] [image] [MultiInstrument Direct I/O]）は、1つのオブジェクトから複数の計測器を直接I/Oトランザクションを使って制御するために使用します。このオブジェクトは標準のトランザクション・オブジェクトであり、VEEがサポートするすべてのインタフェースに対して動作します。

このオブジェクトの外観はDirect I/Oオブジェクトと同じですが、MultiInstrument Direct I/Oの各トランザクションはそれぞれ別の計測器を対象とすることができます。MultiInstrument Direct I/OオブジェクトはDirect I/Oオブジェクトと違って特定の計測器を制御するとは限らないので、タイトルには計測器名、アドレス、ライブ・モード条件が表示されません。

MultiInstrument Direct I/Oを使用すると、プログラム中の各計測器専用のDirect I/Oオブジェクトの数を減らせるので、アイコンとアイコンの間の解釈時間を節約できます。この性能の向上が特に重要なのは、計測器制御がGPIBよりも高速なVXIインタフェースの場合です。

下の図は、4台の計測器と通信するように設定されたMultiInstrument Direct I/Oオブジェクトとその[I/O Transaction]ダイアログ・ボックスです。

トランザクション・ダイアログ・ボックス

[I/O Transaction]ダイアログ・ボックスは[Direct I/O]で使用されるものと似ていますが、追加のフィールドが2つあります。共通のフィールドの働きは同じです。以下の各セクションでは、2つの追加フィールドについて説明します。

[Instrument]フィールド

[Instrument]フィールドには、現在設定されているいずれかの計測器の名前が入ります。下矢印をクリックすると、使用可能な設定済み計測器のリストが表示されます。トランザクションごとに異なる計測器を選択できます。

[Address]フィールド

[Address]フィールドは、[Instrument]フィールドに表示されたデバイスのアドレスを指定します。[Address]フィールドには、[Default Address]と[Address:]の2つのモードがあります。

[Default Address]では、計測器が最初に設定されたときに入力されたアドレスが用いられます。[Address:]にはテキスト・ボックスがあり、別のアドレスを入力できます。

特定の数値、変数名、式のいずれかを入力できます。入力は有効なアドレスに評価される必要があります。[Address:]に入力された値は、オブジェクトの実行時にデバイスのアドレスを変更します。これはアドレス・コントロール・ピンの働きと同様です。下の図は、[Address:]を使用した[I/O Transaction]ダイアログ・ボックスを示します。

トランザクションの編集

[I/O Transaction]ダイアログ・ボックスでトランザクションを編集する際には、計測器の種類に応じて使用可能なトランザクションだけが受け入れられます。例えば、[Instrument]フィールドの名前がVXIバックプレーン経由で制御されるVXIデバイスとして設定されている場合、REGISTERまたはMEMORYアクセス・トランザクションを設定できます。

[I/O Transaction]ダイアログ・ボックスが特定の種類のトランザクションに対して設定されているときに、[Instrument]フィールドの名前を変更する場合、変更された計測器に対してもトランザクションは有効でなければなりません。トランザクションが無効な場合、[I/O Transaction]ダイアログ・ボックスの内容は、その計測器の種類に対して有効な最後のトランザクションに変更されます。VXIデバイスに対するREGISTERアクセス・トランザクションは、[Instrument]フィールドの名前をVXI以外の計測器に変更した場合には無効になります。

オブジェクト・メニュー

MultiInstrument Direct I/Oのオブジェクト・メニューは、Direct I/Oオブジェクトの場合と似ています。MultiInstrument Direct I/Oのメニューには、[Show Config...]や[Upload State]の項目はありません。これらのメニュー項目は特定の計測器構成を対象にしているからです。計測器の構成を表示したり、物理計測器の設定をアップロードしたりするには、Direct I/Oオブジェクトを使用します。

トランザクションで可能なデバイスのどれに対しても、ライブ・モード・インジケータは表示されません。計測器のライブ・モードを制御するには、[I/O] [image] [Instrument Manager...]をクリックし、選択した計測器構成を編集します。


Interface Operationsオブジェクトの使用法

Interface Operationsオブジェクト（[I/O] [image] [Advanced I/O] [image] [Interface Operations]）を使うと、GPIB、VXI、シリアル計測器を低レベル・コマンドを使って制御できます。Interface Operationsは、低レベル制御を提供するトランザクションとして、EXECUTEとSENDの2種類をサポートします。

EXECUTEトランザクション

EXECUTEトランザクションは次の形式を取ります。

EXECUTE Command

ここで、Commandは、表 EXECUTEコマンド（Interface Operations）一覧に示されたバス・コマンドの1つです。この表に示されたコマンドの名前はDirect I/OのEXECUTEコマンドと同じですが、重要な違いが1つあります。

Direct I/OのEXECUTEコマンドは、1台の計測器を指定してコマンドを受信させます。

Interface OperationsのEXECUTEコマンドは、複数の計測器に影響する場合があります。GPIBの場合、これらの計測器はリスナーに指定されている必要があります。

EXECUTEコマンド（Interface Operations）一覧:

コマンド | 説明
ABORT | IFC（Interface Clear）ラインをアサートしてGPIBインタフェースをクリアします。VXIインタフェースをクリアしてリセットするにはCLEARを使用します。
CLEAR | DCL（Device Clear）を送信してすべてのGPIBデバイスをクリアします。VXIの場合、インタフェースをリセットし、リソース・マネージャを実行します。
TRIGGER | GPIBの場合、GET（Group Execute Trigger）を送信して、リスナーに指定されているすべてのデバイスをトリガします。VXIの場合、TTL、ECL、または外部トリガをトリガします。
REMOTE | GPIBの場合、REN（Remote Enable）ラインをアサートします。VXIには対応するコマンドはありません。
LOCAL | GPIBの場合、REN（Remote Enable）ラインをリリースします。VXIには対応するコマンドはありません。
LOCAL LOCKOUT | GPIBの場合、LLO（Local Lockout）メッセージを送信します。LLOが送信された時点でリモート・モードだったデバイスは、フロント・パネル操作をロックアウトします。VXIには対応するコマンドはありません。
LOCK INTERFACE | 共有リソースを持つマルチプロセス・システムで、1つのプロセスがクリティカル・セクションの間リソースをロックして、他のプロセスが使用できないようにするために用いられます。
UNLOCK INTERFACE | マルチプロセス・システムで、1つのプロセスが共有リソースを自分専用にロックした後、リソースのロックを解除して、他のプロセスからアクセスできるようにするために用いられます。
PASS CONTROL | 指定されたアドレスのGPIBデバイスがアクティブ・コントローラになる能力を持つ場合、そのデバイスに制御を渡します。VXIには対応するコマンドはありません。

SENDトランザクション

SENDトランザクションは次の形式を取ります。

SEND BusCmd

ここで、BusCmdは、表 SENDバス・コマンドに示されたバス・コマンドの1つです。これらのメッセージは、IEEE 488.1で詳細に定義されています。BusCmdはGPIB専用です。VXIには対応するコマンドはありません。

SENDバス・コマンド

コマンド | 説明
COMMAND | ATNを真に設定し、指定されたデータ・バイトを送信します。ATNが真の場合、データがバス・コマンドを表すことを示します。
DATA | ATNを偽に設定し、指定されたデータ・バイトを送信します。ATNが偽の場合、データがデバイス依存情報を表すことを示します。
TALK | 指定された1次バス・アドレス（0-30）のデバイスをトーカに指定します。
LISTEN | 指定された1次バス・アドレス（0-30）のデバイスをリスナーに指定します。
SECONDARY | TALKまたはLISTENコマンドの後で2次バス・アドレスを指定します。2次アドレスは通常、カード・ケージ計測器で用いられます。この場合、カード・ケージが1次アドレスを持ち、各プラグイン・モジュールが2次アドレスを持ちます。
UNLISTEN | すべてのデバイスにリスンを停止させます。UNLを送信します。
UNTALK | すべてのデバイスにトークを停止させます。UNTを送信します。
MY LISTEN ADDR | VEEが動作しているコンピュータをリスナーに指定します。MLAを送信します。
MY TALK ADDR | VEEが動作しているコンピュータをトーカに指定します。MTAを送信します。
MESSAGE | 複数行のバス・メッセージを送信します。詳細についてはIEEE 488.1を参照してください。VEEがサポートする複数行メッセージを以下に示します。 DCL Device Clear SDC Selected Device Clear GET Group Execute Trigger GTL Go To Local LLO Local Lockout SPE Serial Poll Enable SPD Serial Poll Disable TCT Take Control


I/O設定の手法

このセクションでは、VEEを使った計測器の設定について説明します。

I/O設定ファイル

各プログラムのI/O設定は、プログラム・ファイルに埋め込むことも（推奨）、別のファイルとして保存することもできます。別のファイルとして保存した場合、VEE.IOというファイルで保存されます。このファイルは以下のパスに保存されます。

%Appdata%\ShortCompanyName\ProductName\MajorVersionNumber + "." + FirstDigitofProductMinorNumber

例えば、Windows XP/2000/VistaでのVEE Pro 8.5のデフォルトの場所は、%Appdata%\Agilent\VEE Pro\8.5です。

設定が埋め込まれていない新しいプログラムで計測器を設定した場合、新しい設定は、メモリ（現在の作業セッションが終了するまで）とVEE.IOまたは.vee.ioファイルに保存されます。

設定を保持するには、Saveツールバー・ボタンをクリックします。これにより、更新された設定がプログラムとともに保存されます。

I/O設定にNameが一致するデバイスが含まれていないと、計測器制御オブジェクトが含まれているプログラムをオープンすることはできません。この場合のNameとは、オブジェクトのタイトル・バーのテキストではなく、[Instrument Properties]ダイアログ・ボックスの[Name]フィールドのエントリのことを言います。

オブジェクトがPanel DriverまたはComponent Driverの場合、ID Filenameも設定と一致していなければなりません。NameとID Filename以外の設定は、プログラムの動作には影響を及ぼす可能性はありますが、これらのプログラムをオープンできるかどうかには無関係です。

設定ファイルの変更

一般に、VEE.IOファイルはVEEが管理します。ただし、必要に応じて、VEE環境の外でこのファイルを消去、更新、コピーすることも可能です。

他の人が開発した計測器制御プログラムを実行したい場合、I/O設定がプログラムに埋め込まれていなければ、プログラムが使用するI/O設定を入手する必要があります。I/O設定を入手するには3つの方法があります。

1 Instrument Managerと機器構成ダイアログ・ボックスを使用して、すべての計測器を手動で設定に追加します。

2 このトピックの初めに示されているパスを使用して、そのプログラムのVEE.IOファイルをAgilentディレクトリにコピーします。

ファイルをコピーする場合は、後で必要になった場合に備えて、元のVEE.IOファイルのコピーを別の名前（VEEIO.OLDなど）で保存します。

3 プログラムに設定を埋め込んで保存します。Save Asオプションを使用し、"Save I/O configuration with program"オプションをチェックします。

注記

サンプル・プログラムはI/O設定が埋め込まれた状態で保存されているので、I/O設定は含まれています。サンプル・プログラムは外部I/O設定ファイルには依存していません。

グローバルI/O設定ファイル

このトピックの先頭に示されているvee.ioのデフォルトの場所は、ユーザごと、バージョンごとのディレクトリであり、各ユーザは使用するVEEのバージョンごとにそれぞれ異なるvee.ioファイルを持ちます。

すべてのユーザとすべてのVEE製品（Agilent VEE Pro、Agilent VEE Express、Agilent VEE Run、Agilent VEE Student）に対して1つのグローバルI/O設定ファイルを使用するには、グローバルVEE環境変数を定義する必要があります。VEE環境変数が存在する場合、VEEはVEE環境変数に定義されたディレクトリを使ってvee.ioを保存し、ロードします。

VEE環境変数の名前は次のとおりです。

VEEHOME + ProductMajorNumber* + "." + FirstDigitofProductMinorNumber*.

* ProductMajorNumberは製品番号の整数部分です。例えば、VEE 8.0の場合、8が製品メジャー番号です。

* FirstDigitofProductMinorNumberは製品マイナー番号の1桁目です。製品マイナー番号とは、製品番号の小数部分です。例えば、VEE8.51の場合、51が製品マイナー番号で、1桁目は5です。

  • VEE 8.5の場合、VEE環境変数はVEEHOME8.5です。

  • VEE 8.51などのパッチ・リリースの場合、 VEE環境変数はVEE8.5と同じで、VEEHOME8.5です。

  • VEE9.0の場合、VEE環境変数はVEEHOME9.0です。

環境変数の定義方法については、Windowsのヘルプを参照してください。

注記

すなわち、VEE8.0とVEE8.5のように異なるバージョンは異なるVEE環境変数を持ちます。異なるVEEバージョンのVEE環境変数を同じディレクトリに設定しないでください。例えば、VEEHOME8.5とVEEHOME9.0を同じディレクトリに設定しないでください。この場合、VEE 8.5とVEE 9.0が同じvee.ioファイルを共有しますが、VEE 9.0でvee.ioファイルに項目を追加すると、VEE 8.5とVEE 9.0の間で互換性の問題が生じるおそれがあります。

グローバルVEE環境変数はvee.ioファイルに対してのみ用いられます。I/O設定以外の設定に対してはグローバル設定ファイルは存在しません。

関連項目

埋込みI/O構成とマージ


I/O制御の手法

このセクションでは、計測器I/O制御のいくつかの手法について説明します。

ポーリング

VEEは、IEEE 488.1で定義されているすべてのシリアル・ポール動作をサポートします。GPIB計測器とVXIメッセージ・ベース計測器はすべてシリアル・ポール動作をサポートします。VXIメッセージ・ベース・デバイスは、定義上IEEE 488.2に適合します。VXIレジスタ・ベース・デバイスは、I-SCPIドライバが使用できる場合はIEEE 488.2に適合します。VEEはパラレル・ポール動作をサポートしません。

計測器のシリアル・ポール応答を得るには次の2つの方法があります。

オブジェクト | シリアル・ポール動作
Instrument Event | Instrument Eventオブジェクトは、指定された計測器を1回ポーリングし、スカラ整数を出力します。これはNO WAITオプションを使用したシリアル・ポール応答です。Instrument Eventオブジェクトは、ユーザ指定のビット・マスクとALL CLEARおよびANY SETオプションを使用することにより、シリアル・ポール応答バイト内の特定のビット・パターンを待つこともできます。
Direct I/O | GPIB計測器用のDirect I/Oオブジェクトは、WAIT SPOLLトランザクションをサポートします。このトランザクションは、シリアル・ポール応答バイトが、ユーザ指定のビット・マスクとALL CLEARおよびANY SETオプションを使用して特定のビット・パターンに一致するまで、計測器を繰り返しポーリングします。Direct I/Oの詳細については、I/Oトランザクションを参照してください。

Instrument EventオブジェクトをSpoll用に設定する場合、特別な実行プロパティがあります。これについては次の「サービス・リクエスト」のセクションで説明します。この動作により、マスク値とALL CLEARまたはANY SETオプションを使って特定のビット・パターンを待っている間に、同時に実行されている他のスレッドが実行を継続できます。

NO WAITの場合、ただちに実行され、GPIBまたはメッセージ・ベースVXI計測器のステータス・バイトが返されます。どちらのオブジェクトもオブジェクト・メニュー（Add Terminal）にTimeoutコントロール入力が用意されているので、プログラムでタイムアウト時間を設定できます。下の図に例を示します。

サービス・リクエスト

VXI計測器のサービス・リクエスト（SRQメッセージ）を検出するには、Instrument Eventオブジェクト（[I/O] [image] [Advanced I/O] [image] [Instrument Event]）を使用します。GPIB計測器またはRS-232のサービス・リクエストを検出するには、Interface Eventオブジェクト（[I/O] [image] [Advanced I/O] [image] [Interface Event]）を使用します。

Instrument EventおよびInterface Eventオブジェクトは、割り込みのような実行を可能にする特殊な動作を行います。この動作を確認するには、[Debug] [image] [Show Execution Flow]をオンにしてプログラムを実行します。

例えば、Interface Eventはプログラム中で以下のように動作します。

1 Interface Eventオブジェクト（GPIB用に設定、WAITオプションを指定）が動作するまでは、実行は通常通りに行われ、すべてのスレッドが等しい優先度で並列に動作します。

2 Interface Eventオブジェクトが動作すると、Interface Eventデータ出力に接続されたスレッドの実行は、Interface Eventオブジェクトで休止します。Interface Eventに接続されたもの以外のスレッドは、実行を継続します。

3 指定されたインタフェースでSRQが検出されると、Interface Eventのデータ出力がアクティブになります。この時点で、Interface Eventのデータ出力に接続されたスレッドが実行を終了するまで、他のすべてのスレッドの実行がブロックされます。

例:サービス・リクエスト。次のプログラムは、サービス・リクエストを処理する1つの方法を示します。この例では、dvmまたはscopeのどちらかがサービス・リクエストを発生します。このプログラムは、manual16.veeファイルに保存されています。 このファイルはexamplesディレクトリにあります。

注記

このプログラムは、指定された計測器が接続され、設定され、電源がオンになっていないと動作しません。ただし、このプログラムを自分のプログラムで使用するプログラミング手法の例として使用したり、自分の計測器と通信するためにプログラムを変更したりすることはできます。

このプログラムは、Instrument Eventを使って各計測器のステータス・バイトを取得することにより、サービス・リクエストの発生元を特定します。各ステータス・バイトはIf/Then/Elseとbit(x,n)を使ってテストされ、ビット6が真かどうかが判定されます。ビット6がセットされている場合、対応する計測器がサービス・リクエストを発生しています。

Until Breakオブジェクトは、その後のサービス・リクエストを処理するために、スレッド全体を自動的に再び有効にします。Instrument EventオブジェクトはNO WAITに設定されているので、ステータス・バイトはマスク値を使用せずに返されます。マスク値として64を使用し、Instrument EventオブジェクトをANY SETに設定すれば、If/Then/Elseとbit(x,n)関数を使用する必要はありません。

サービス・リクエストのクリアと再有効化のための条件は、計測器によって異なります。上のプログラムでは、dvmはシリアル・ポールだけでSRQ機能がクリアされ、再び有効になります。これに対して、scopeの場合は、サービス・リクエストが発生したイベント・レジスタをクリアする手順が必要となります。

Instrument Eventオブジェクトは、メッセージ・ベースVXI計測器からのサービス・リクエストを検出するために使用できます。計測器がVXIコントローラのシグナル・レジスタにRT（Request True）イベントを書き込むと、それはサービスのリクエストと解釈され、その計測器はRead STBワード・シリアル・プロトコル・コマンドを受信します。

メッセージ・ベース計測器は自分のステータス・バイトをコントローラに送り返し、VXIコントローラのシグナル・レジスタにRF（Request False）イベントを書き込みます。このステータス・バイトは、指定されたマスク値とANY SETまたはALL CLEARオプションを使って評価され、どのビットが（ビット6以外に）セットされているかが判定されます。このように、1つのInstrument Eventオブジェクトを使って、メッセージ・ベースVXIデバイスからのサービス・リクエストを検出し、リクエストが発生した理由を知ることができます。

どちらのオブジェクトもオブジェクト・メニュー（Add Terminal）にTimeoutコントロール入力が用意されているので、プログラムでタイムアウト時間を設定できます。詳細については、Instrument EventおよびInterface Eventを参照してください。

バス動作のモニタ

Bus I/O Monitorオブジェクト（[I/O] [image] [Bus I/O Monitor]）を使って、VEEとトーカ／リスナの間で伝送されるすべてのバス・メッセージを記録できます。Bus I/O Monitorが記録するバス・メッセージは、VEEが送受信するものだけです。

Bus I/O Monitorを使えば、サポートされる任意のインタフェース（GPIB、VXI、シリアル、GPIO）をモニタできます。Bus I/O Monitorオブジェクトの1つのインスタンスは、1つのハードウェア・インタフェースだけをモニタします。

次のプログラムは、GPIBアドレス717の計測器に*RSTを書き込むために送信されるバス・メッセージを表示します。

Bus I/O Monitorの表示領域には5つの列があります。

列1 - 行番号

列2 - バス・コマンド（*）、または出力データ（>）、または入力データ（<）

列3 - 送信されたバイトの16進値

列4 - 送信されたバイトに対応する7ビットASCII文字

列5 - バス・コマンド・ニーモニック（バス・コマンドのみ、データの場合は空白）

Bus I/O Monitorは、オープン・ビュー・オブジェクトの場合よりも、アイコンの場合のほうがはるかに高速に実行できます。

低レベル・バス制御

低レベル・バス・メッセージを送信するには次の2つの方法があります。

オブジェクト | バス・メッセージ機能
Interface Operations | このオブジェクトを使うと、任意のGPIBデバイスに任意のバス・メッセージを送信したり、VXIインタフェースをリセットしてVXIバックプレーンの各種トリガ・ラインを起動したりすることができます。
Direct I/O | GPIB、メッセージ・ベースVXI計測器、I-SCPIでサポートされたレジスタ・ベースVXI計測器用のDirect I/Oオブジェクトを使うと、CLEAR、LOCAL、REMOTE、TRIGGERの各コマンドを、EXECUTEトランザクションを使って送信できます。

Interface OperationsおよびDirect I/Oの詳細については、Direct I/OおよびInterface Operationsでのトランザクションの使用を参照してください。

計測器のダウンロード

一部の計測器では、マクロ、測定ルーチン、測定プログラムのダウンロードが可能です。例えば、HPの一部の計測器はHP Instrument BASICをサポートしており、計測器内部で動作するHP Instrument BASICのプログラム全体を書き込むことができます。VEEを使って測定ルーチンを計測器にダウンロードする方法の1つを次に示します。

1 メモ帳などのテキスト・エディタを使って、測定ルーチンを作成／編集します。測定ルーチンを通常のテキスト・ファイルに保存します。

2 From Fileを使ってファイルを読み取ります。

3 Direct I/Oを使って、ファイルの内容を計測器に書き込みます。

このセクションでは、この方法によるダウンロードの例を示します。Direct I/Oの詳細については、Direct I/Oオブジェクトの使用法を参照してください。

次のサンプル・プログラムは、HP 3852Aに測定サブプログラムをダウンロードします。この例は、2回ビープしてメッセージを表示するサブプログラムBEEP2をダウンロードします。このプログラムは、manual17.veeファイルに保存されています。 >


論理装置番号とI/Oアドレス指定

I/Oデバイスにアクセスするには、正しいアドレスを把握して、Instrument Managerで説明しているようにInstrument Managerを使って、[Instrument Properties]ダイアログ・ボックスの[Address]フィールドにアドレスを入力します。

このセクションでは、インタフェースの論理装置番号と計測器アドレスを初め、Direct I/O、パネル・ドライバ、コンポーネント・ドライバのI/O動作をサポートするVEEのI/Oアドレス指定方式について説明します。このアドレス指定方式は、VXIplug&playのI/O動作には用いられません。VEEでのVXIplug&playのアドレス指定については、「VXIplug&playドライバの設定」を参照してください。

注記

VEEはまた、PC用のE1383AおよびE1483A VXLinkインタフェースによる組込みVXIコントローラに対するVXIバックプレーンの直接アクセスもサポートします。

VEEのアドレス指定方式には、論理装置番号が用いられます。これは、VEEに付属するI/Oライブラリのインストールと設定の過程で、I/O Configユーティリティ・プログラムを使って設定できます。Agilent I/Oライブラリのインストールおよび設定と、I/O Configを使った論理装置番号の設定の詳細については、Agilent I/Oライブラリのインストールを参照してください。インタフェースの論理装置番号は、下の推奨されるI/O論理装置番号の表に基づいて設定することをお勧めします。

表推奨されるI/O論理装置番号

論理装置番号 | PC
1 | GPIB（82340または82341）
2 | GPIB（82340または82341）
3 | GPIB（82340または82341）
4 | GPIB（82340または82341）
5 | GPIB（82340または82341）
6 | GPIB（82340または82341）
7 | GPIB（82340または82341）
8 | GPIB（82340または82341）
9 | COM1シリアル・ポート
10 | COM2シリアル・ポート
11 | COM3シリアル・ポート
12 | COM4シリアル・ポート
13 | GPIO（HP E2075）
14 | GPIB0（National GPIBカード）
15 | GPIB1（National GPIBカード）
16 | VXI（組込み、またはVXLinkによるPC）
17 | GPIB2（National GPIBカード）
18 | GPIB3（National GPIBカード）

VEEの推奨されるI/O論理装置番号

VEEでは、以下のインタフェース論理装置番号が推奨されます。I/Oライブラリのインストールおよび設定と、I/O Configユーティリティ・プログラムを使ったインタフェースの論理装置番号の設定の詳細については、Agilent I/Oライブラリのインストールを参照してください。

注記

論理装置番号7は、最初のGPIBカードに対する推奨されるデフォルト値です。各カードは固有の論理装置番号を持つ必要があります。

PC上のNational GPIBカードに対しては、論理装置番号14、15、17、18だけがサポートされます。

I/Oアドレス指定

以下では、各種デバイスに対するアドレス指定方式を示します。

シリアル・ポートのアドレス指定

シリアル・ポートは、I/O Configを使って割り当てられた論理装置番号を使ってサポートされます。通常は、COM1シリアル・ポートに論理装置番号9が割り当てられます。この場合、COM1に接続されたデバイスのアドレスとして9を使用します。

GPIOデバイスのアドレス指定

GPIOデバイスは、I/O Configを使ってGPIOインタフェースに割り当てられた論理装置番号を使ってサポートされます。通常は、論理装置番号13がGPIOに対して用いられます。この場合、GPIOデバイスのアドレスとして13を使用します。

GPIBインタフェースおよびデバイスのアドレス指定

GPIBデバイスのアドレス指定は、次の方法で行われます。

SPA[SA]

ここで:

S | はGPIBインタフェースの論理装置番号です。
PA | はGPIBデバイスの1次アドレスです（有効範囲は00～30）。
SA | はオプションの2次アドレスです（有効範囲は00～31）。

例を2つ示します。

論理装置番号7、1次アドレス01のGPIBデバイスに対しては、[Instrument Properties]ダイアログ・ボックスの[Address]フィールドに701と入力します。

論理装置番号14、1次アドレス09、2次アドレス02のGPIBデバイスに対しては、[Instrument Properties]ダイアログ・ボックスの[Address]フィールドに140902と入力します。

GPIB論理装置番号 GPIBインタフェースは、I/O Configを使って割り当てられた論理装置番号を使ってサポートされます。GPIBインタフェースに対する推奨される論理装置番号は、上の推奨されるI/O論理装置番号の表に示されています。推奨される論理装置番号（1～8）がI/OライブラリによってGPIBインタフェースに設定されている場合、VEEは理論的には8枚までのGPIBカードにアクセスできます。これにはサポートされる各種のカードが混在していてもかまいません。

82340または82341の場合、論理装置番号はソフトウェアによって割り当てられます。論理装置番号は7、8、1、2、3、4、5、6の順序で割り当てられます。ただし、それぞれのカードに固有のベース・アドレスを設定する必要があります（ベース・アドレスの設定方法についてはマニュアルを参照してください）。

National InstrumentsのGPIBドライバは、最大4枚のGPIBカードにGPIB0、GPIB1、GPIB2、GPIB3という識別子を設定します。これらのGPIBカードにアクセスするには、必ず論理装置番号14、15、17、18をI/O ConfigでGPIBカードに割り当てる必要があります。VEEはこれ以外のGPIBカード用の論理装置番号をサポートしません。その他の点では、アドレス指定方式は他のGPIBカードと同じです。

GPIB上のVXIデバイスのアドレス指定

HP-IBコマンド・モジュールを使ってGPIB経由でVXIデバイスにアクセスするには、2次アドレスを使用します。VXIカード・ケージ内のHP E1406コマンド・モジュールを使用する場合、1次アドレスはコマンド・モジュールのスイッチで設定され（デフォルト=09）、2次アドレスは個々のVXIデバイスの論理アドレスを8で割ったものです。

例えば、Cサイズのメインフレーム中にHP E1406Aコマンド・モジュール（アドレス=09）があり、HP E1406Aが論理装置番号7のGPIBインタフェースに接続されているとします。VXIスロットにHP E1326Bマルチメータがあり、その論理アドレスが24に設定されている場合、マルチメータのアドレスは70903です。

GPIBコマンド・モジュールによって接続されたVXIデバイスの正しいアドレスを判定するために、次の2つの計測器ドライバが使用できます。

hpe140x.cidドライバは、CサイズVXIメインフレーム中のHP E1405またはHP E1406 GPIBコマンド・モジュールによって接続されたVXIデバイスを見つけるために使用します。

hpe1300a.cidドライバは、BサイズVXIメインフレーム中のHP E1306 GPIBコマンド・モジュールによって接続されたVXIデバイスを見つけるために使用します（このドライバは、コマンド・モジュールを内蔵したHP E1300およびHP E1301BサイズVXIメインフレームもサポートします）。

これらのドライバを使用するには、Instrument Managerを使ってドライバ用の計測器パネルを追加します。この方法についてはオンライン・ヘルプの次の項目を参照してください。[Help] [image] [Content and Index] [image] [以下の項目についての説明] [image] [計測器制御の基本].

注記

VXIスイッチ・ボックス中のモジュールの場合を除いて、VXIデバイスのサブアドレス値は入力しないでください。詳細については次のセクションを参照してください。

アドレス／サブアドレス値の設定

大部分のGPIBおよびVXI計測器は、サブアドレスを使用しません。サブアドレス値を入力するのは、VXIスイッチ・ボックスまたはサブアドレスを使用するメインフレーム計測器（HP 3235Aスイッチ／テスト・ユニットやHP 3488Aスイッチ／コントロール・ユニットなど）にアクセスする場合だけです。

注記

サブアドレス値が使用されるのは、サブアドレスをサポートするデバイスに対するHP計測器ドライバを使用している場合だけです。Direct I/Oを使用する場合はサブアドレスを使用しないでください。

以下に例を2つ示します。

HP 3235Aスイッチ／テスト・ユニット内のモジュールにアクセスするには、Instrument Managerで説明しているようにInstrument Managerを使って、HP 3235A 自体のGPIBアドレス（例えば701）を[Instrument Properties]ダイアログ・ボックスの[Address]フィールドに入力します。

各モジュールのサブアドレスを、[Advanced Instrument Properties]ダイアログ・ボックス（[Panel Driver]タブ）の[Sub Address]フィールドに入力します。[Sub Address]フィールドのエントリについては、HP 3235A計測器ドライバのオンライン・ヘルプを参照してください（[Help] [image] [Instruments]）。

VXIスイッチ・ボックス内のモジュールにアクセスするには、スイッチ・ボックスのGPIBアドレス（例えば70902）を[Address]フィールドに、各モジュールのサブアドレスを[Sub Address]フィールドに入力します。[Sub Address]フィールドのエントリについては、VXIスイッチ・ボックス計測器ドライバのオンライン・ヘルプを参照してください。

VXIバックプレーンの直接アドレス指定

VEEは次のシステムのVXIバックプレーンに対して直接アドレス指定を実行できます。

HP 623x VXI Pentiumコントローラ。

EPC-7またはEPC-8 VXIコントローラ（EPConnectソフトウェアがインストールされている場合）。

HP E1383AまたはHP E1483A VXLink（ISA-VXI）インタフェースを使ってVXIカード・ケージに接続されたPC（EPConnectソフトウェアがインストールされている場合）。

HP V743 VXI組込みコントローラ。

推奨される論理装置番号がI/O Configで設定されている場合、VEEは論理装置番号16を使ってVXIバックプレーンにアクセスします。VXIデバイスのアドレスは、論理装置番号（16）の後にVXIデバイスの論理アドレスを付加したものです。

例えば、HP EPC-7 VXIコントローラとHP 1411Bデジタル・マルチメータがVXIメインフレームにインストールされているとします。HP 1411Bの論理アドレスが24に設定されている場合、VXIアドレスは16024です。GPIB経由でVXIデバイスにアクセスする場合と異なり、論理アドレスを8で割る必要はありません。


計測器I/Oのデータ型変換

計測器I/Oトランザクションでは、VEEは下記の規則に基づいて自動データ型変換を行いますVEE 6実行モードの場合、新しいデータ型が用いられ、変換は行われません。これに対して、VEE 5以前のモードでは、従来のバージョンとの互換性のために、VEE 5.0バージョンと同様に次の変換が実行されます。例えば、READ BINARY Int16はVEE 6モードではInt16を返しますが、VEE 5以前の実行モードではInt32を返します。

注記

これらのデータ型変換は完全に自動です。ユーザが意識する必要は通常はありません。次のリストは、VEE 5以前の実行モードで実行される処理の内容を示します。

READトランザクションの場合、計測器からのInt16またはByte（UInt8）値は、符号拡張を保持したままInt32値に変換されます。また、計測器からのReal32値は64ビットのReal数値に変換されます。

WRITEトランザクションの場合、整数または実数値は、計測器に対して適切な出力フォーマットに変換されます。

計測器がReal32フォーマットをサポートする場合、VEEは64ビットのReal値をReal32値に変換して計測器に出力します。Real64値がReal32の範囲を超える場合、エラーが発生します。

計測器がInt16フォーマットをサポートする場合、VEEはInt32値をInt16値に切り捨てて計測器に出力します。Real値はまずInt32値に変換され、その後に切り捨てられて出力されます。ただし、Real値がInt32の範囲を超える場合は、エラーが発生します。

計測器がByteフォーマットをサポートする場合、VEEはInt32値をByte（UInt8）値に切り捨てて計測器に出力します。Real値はまずInt32値に変換され、その後に切り捨てられて出力されます。ただし、Real値がInt32の範囲を超える場合は、エラーが発生します。

関連項目

オブジェクト／関数によるデータ型の変換


伝達について

伝達とは、VEEプログラムの一般的な実行フローです。伝達規則は、VEEオブジェクトが動作する順序を定義します。一般的に、伝達はデータ・フロー、すなわちVEEプログラム内のオブジェクトからオブジェクトへのデータの流れによって決まります。

伝達の概要

以下に示すのは、プログラムがVEE 4以上の実行モードで動作する場合のVEEの伝達規則です。

データはオブジェクト間を左から右に流れます。シーケンスは上から下に流れます。

データおよびXEQ入力ピンはすべて接続する必要があります。

データ入力ピンまたはシーケンス入力ピンが接続されていないオブジェクトは、最初に動作します。

オブジェクトが動作するためには、すべてのデータ入力ピンがアクティブになる必要があります（JCTオブジェクトを除く）。

シーケンス入力ピンが接続されている場合、オブジェクトが動作するためにはシーケンス入力ピンがアクティブになる必要があります。

オブジェクトは、繰り返しオブジェクト（For Countなど）に接続されているか、XEQピンによって強制実行されない限り、1回しか動作しません。

コントロール・ピンは即座に実行され、オブジェクトの動作や伝搬を伴いません。

Errorピンを持つオブジェクトからエラーが発生した場合、Errorピンがデータ出力ピンの代わりに伝達します。ただし、シーケンス出力ピンはアクティブになります（Errorピンがない場合、エラー・メッセージが表示されます）。

並列サブスレッドは任意の順序で動作します。

複数スレッドは任意の順序で動作します。

基本的な伝達順序

伝達規則に基づいて、VEE 4以上のモードで実行されたVEEプログラムは、[Run]を押したときに以下の基本的な順序で動作します。

1. データ入力ピンを持たず、シーケンス入力ピンが接続されていないオブジェクトが最初に動作します。

2. その他のオブジェクトは、データ・フローで決まる順序で動作します。すなわち、データ入力ピンを持つオブジェクトは、すべてのデータ入力にデータが存在する場合のみ動作します（例外についてはオブジェクトの動作の仕組みを参照してください）。

3. 伝達の順序は、シーケンス・ピンを接続することで変更できます（ピンと伝達を参照）。


ピンと伝達

ここでは、ピンのすべての種類と、伝達に対するその影響を説明します。

データ・ピンは、データ・コンテナを入力または出力します。

オブジェクトは、すべてのデータ入力ピンがアクティブになるまで動作しません（ただし、JCTオブジェクトは例外で、どれか1つのデータ入力ピンがアクティブになると動作します）。

オブジェクトが動作すると、そのデータ出力ピンが伝達します（エラー条件が発生していない場合）。

コントロール・ピン（オプション）は、オブジェクトの状態に影響する入力ですが、伝達には影響しません。

一般的なコントロール・ピンとしては、Clear、Reset、Default Valueなどがあります。コントロール・ピンは、伝達に影響しないことを示すために破線で接続されます。

シーケンス・ピンは、実行の順序を指定するためだけに用いられます。

オブジェクトは、すべてのデータ入力ピンとシーケンス入力ピン（接続されている場合）がアクティブになった場合のみ動作します。

シーケンス出力ピンは、すべてのデータ出力ピンがアクティブになり、データ・フローが可能な限り遠くまで伝達した後で伝達します。

シーケンス・ピンで伝達の順序を指定するのはなるべく避けてください。実行の順序はデータ・フローで決まるようにしてください。

シーケンス入力ピンはデータ・コンテナの存在によってアクティブになりますが、コンテナ内のデータは無視されます。シーケンス出力ピンは、アクティブになると空の（ヌル）コンテナを伝達します。

エラー・ピン（オプション）。Errorピンを追加することにより、オブジェクトから発生したエラー条件を捕捉できます。Errorピンは、エラー条件が発生した場合に、対応するエラー番号を伝達します。

エラーが発生した場合、Errorピンが他のデータ出力ピンの代わりに伝達します。エラー・ピンとシーケンス出力ピン（接続されている場合）だけが伝達します。

XEQピンは、オブジェクトをただちに（データ入力ピンがアクティブになっていなくても）動作させるピンです。CollectorおよびSample & Holdオブジェクトだけが、XEQピンを使用してオブジェクトをただちに動作させ、そのデータを伝達させます。

XEQピンはデータ・コンテナの存在によってアクティブになりますが、コンテナ内のデータは無視されます。

注記

データ入力ピンまたはXEQピンを接続しないでおくと、プログラムを実行したときにエラーが発生します。

データ出力ピン、コントロール・ピン、Errorピンは接続しなくてもかまいません。シーケンス・ピンは、多くの場合接続しないのが適切です。


シーケンス・ピンの理解

ここでは、伝達におけるシーケンス・ピンの役割を説明し、推奨される使用法を示します。

シーケンス・ピンは、VEEオブジェクトの上部と下部にあるピンです。上の入力ピンを接続した場合、これが動作しないとオブジェクトは実行されません。これはトリガまたはホールドオフ・ピンと見なすことができます。

下の出力ピンは、オブジェクトのデータ（またはエラー）出力が伝達し、伝達が下流のオブジェクトに可能な限り遠くまで到達した後で伝達します。

これらのシーケンス・ピンは、ほとんどのプログラムでは接続する必要がありません。ユーザのプログラムの中には、シーケンス・ピンを無意味に多用しているものがあります。シーケンス・ピンを濫用すると、コンパイラを混乱させるだけでなく、他のプログラマ（あるいは将来の自分）がプログラムを変更したり保守したりするために見直す際にわかりにくくなります。ただし、シーケンス・ピンの接続が必須となる場合もいくつかあります。

ループ

ループ（For Count、For Rangeなど）の上のシーケンス入力は、他の動作が終了するまでループが動作しないように接続される場合があります。同様に、ループの下のシーケンス出力は、ループの終了後に実行する必要があるプログラム中のオブジェクトに接続されることがあります。この一般的なフローを下の図に示します。

To/From FileまたはDataSet

VEEプログラムでファイルにデータを書き込み、その後に同じファイルからデータを読み取る場合、シーケンス・ピンを使って、プログラムが書き込みを終了するまで読み取りが行われないようにします。以下に例を2つ挙げます。

変数の設定と表示

通常は、Get Variable（または変数を使用するFormula）のシーケンス入力ピンを接続することにより、Getの前にSetが実行されることを保証する必要があります。例:

データを運ぶコントロール入力ピン

実は、VEEオブジェクトのコントロール入力ピンの中には、データを運ぶものが多数あります。例えば、ToFileの"FileName"入力や、Formulaの"Formula"式入力です。このような場合、コントロール入力からデータが受信されるまでコントロール入力を持つVEEオブジェクトが実行されないように、シーケンス・ラインを接続する必要があります。

ポップアップ・パネルでのConfirm/OKボタンの使用

[Confirm]ボタンは、オペレータがデータ入力を終えるまでオブジェクトが実行されないようにするために、ポップアップ・パネルの[Ok]または[Cancel]ボタンとして用いられることが多くあります。このシーケンスの順序は、初心者にはわかりにくい場合があります。直感的には、OkをKnobの後に置くのが（オペレータの操作順序と一致するので）自然だからです。VEEに慣れてくると、[Ok]ボタンが「ホールドオフ」の役割を果たす、すなわちその下のデータを解放するものであることがわかります。下の例は、VEEの[Confirm]ボタンの正常な構成を示します。

このプログラムを、OkをKnobの後に接続して（[Show Data Flow]および[Show Execution Flow]をオンにして）実行してみると、なぜOkが最初に実行されなければならないかがわかります。UserObjectの出力に表示オブジェクトを接続して、それぞれの構成で新旧どちらの値が伝達されるかを確かめてください。

複数のデータ出力ラインとコントロール・フローの混在

プログラムで同じピンから複数のラインが発生し、データ・フローとコントロール・フローが混在している場合があります。この場合、検出困難なプログラミング・エラーが生じるおそれがあります。下の例で、オペレータがKnobの値を選択してOkを押したとします。

FormulaとUserObjectの伝達が先に起きるでしょうか、それともExit UserObjectの方がFormulaよりも先に起きるでしょうか。UserObjectの出力ピンはExit UserObjectが実行される前に値を受け取るでしょうか。これはどちらともいえません。順序は不定です。このため、シーケンス・ピンが必要になります。

Exit UserObjectシーケンス・ピンを接続するよりよい方法については、前の例を参照してください。

シーケンス・ピンの濫用の一般的な例

手続き型言語の経験があるプログラマは、必要がないのにシーケンス・ピンを接続してしまう場合があります。以下に示すのは、データ・フローによってプログラム・フローがすでに決まっているにもかかわらず、VEEの初心者がシーケンス・ピンを接続してしまった例です。

このような単純な例では、不要なシーケンス接続は一目瞭然です。しかし、これより大規模なプログラムでは、フロー・パターンが本質的にこれと同じであるにもかかわらず、プログラマがシーケンス接続を追加したくなる誘惑に駆られる場合があります。

前のコントロール・ピンの例は、多少わかりにくいかもしれません。データ・ピンによって正常なプログラム・フローが決まる場合には、シーケンス・ラインは不要です。しかし、コントロール・ピンはデータ・ピンと違ってプログラム・フローを決定しません。下の2つの図は似ていますが、同じではありません。

コントロール・フロー・モデル（青い破線）にはシーケンス・ピンが必要ですが、データ・フロー・モデル（青い実線）には不要です。


スレッドとサブスレッドの伝達

非常に単純なVEEプログラムには、1つのスレッドしかないのが普通です。より複雑なプログラムには、プログラムの伝達に影響する複数のスレッドやサブスレッドが存在します。

スレッド - データおよびシーケンス・ライン（実線）で接続されたオブジェクトは、スレッドを構成します。コントロール・ライン（破線）だけで接続されたオブジェクトは、スレッドを構成しません。プログラムには複数のスレッドが含まれる場合があります。例えば、次のプログラムには、2つの並列スレッドがあります。これらのスレッドは、データまたはシーケンス・ラインで接続されていないので独立しています。

サブスレッド -- スレッドの分岐をサブスレッドと呼びます。2つのサブスレッドが同じオブジェクトの同じデータ出力ピンから始まり、それらの間にシーケンス・ラインもデータ・ラインも存在しない場合、それらは並列サブスレッドです。次のプログラムには、Real64定数オブジェクトのデータ出力ピンから分岐した2つの並列サブスレッドが示されています。

並列スレッド／サブスレッドの間の実行順序は不定です。1つのスレッドの1つまたは複数（またはすべて）のオブジェクトが動作した後、別のスレッドの1つまたは複数のオブジェクトが動作します。ただし、これには次の2つの例外があります。

スレッドにInterface EventまたはDevice Eventオブジェクトが含まれる場合、イベントが捕捉されるとこのオブジェクトが実行されます。例えば、Interface EventがGPIBのSRQメッセージを検出した場合、このスレッドが最後まで実行されてから、他のスレッドが続行されます。他のスレッドは、イベントの処理を優先させるために保留されます。詳細については、Interface EventおよびDevice Eventを参照してください。

スレッドにStartオブジェクトがあり、[Start]ボタンを押すことによってスレッドを開始した場合、そのスレッドが最後まで実行された後で他のスレッドを開始することができます。


オブジェクトの動作の仕組み

VEEオブジェクトが動作するとは、入力ピンでデータを受け取り、そのデータを処理し、結果のデータを出力ピンに返すことです。VEEオブジェクトは、すべてのデータ入力ピンにデータが入ってアクティブになるまで動作しません（これには例外が1つあります。JCTオブジェクトは、データ入力ピンの1つにデータが入ってアクティブになると動作します）。

単純な例を見てみましょう。下のプログラムで、a+bオブジェクトは両方のデータ入力ピンにデータが入るまで動作しません。すなわち、両方のReal64定数オブジェクトが先に動作する必要があります（順序は問いません）。

a+bオブジェクトが動作すると、データが加算され、結果のデータで出力ピンがアクティブになります。AlphaNumericオブジェクトは、自分のデータ入力ピンにデータが入るまで動作しません。したがって、これは最後に動作し、結果を表示します。

これからわかるように、上のプログラムでオブジェクトの動作順序を決めているのはデータ・フローです。すなわち、データ・フローによって伝達順序が決まります。

データ・ピンの他に、シーケンス・ピンもオブジェクトの動作のタイミングを決める役割を果たします。これは、有効なデータが使用可能になるまでデータ入力ピンがデータを受け取らないようにするために利用できます。次のプログラムでは、Confirm OKオブジェクトが前の例に追加されています。

Confirm OKオブジェクトのシーケンス出力ピンは、a+bオブジェクトのシーケンス入力ピンに接続されています。シーケンス入力ピンは接続しなくてもかまいません。オブジェクトは接続されていないシーケンス入力ピンを無視します。ただし、シーケンス入力ピンが接続されている場合、オブジェクトはシーケンス入力ピンがアクティブになるまで動作しません。したがって、上の例では、OKボタンを押す（クリックする）までa+bオブジェクトは動作しません。その後、データ入力ピンがデータを受け取ります。

XEQピンはオブジェクトの動作に対して反対の効果を持ちます。XEQピンがアクティブになると、オブジェクトはその時点でデータ入力ピンにあるデータを使用してただちに動作します。これは、1つのオブジェクトに対してXEQピンとシーケンス入力ピンの両方を使用する場合に重要です。XEQピンは接続されている必要があり、オブジェクトはXEQピンがアクティブになるまで伝達しません。次に例を挙げます。

For Countオブジェクトは5回繰り返され、CollectorのData入力端子にデータを出力します。Collectorは5つの値を配列に収集し、For Countオブジェクトのシーケンス出力ピンによってXEQ端子がアクティブになった時点でそれを伝達します。

注記

オブジェクト・メニューのPropertiesを使用して、Show Terminalsをオンにすることができます。Show Terminalsがオンになっていると、データ入力／出力ピンは「端子」となり、その名前が表示されます。


UserObjectに関する概念

UserObjectを使うと、特定の作業を実行するオブジェクトのグループを1つのカスタム・オブジェクトにまとめることができます。これにより、次のことが可能になります。

VEEプログラムの構築にモジュール設計技法を取り入れることができます。これにより、複雑な問題を組織的に解決することができます。UserObjectを使うと、トップダウン設計技法によって、柔軟で保守が容易なプログラムを作成できます。

ユーザ定義オブジェクトをライブラリに保存して後で再使用できます。

UserObject を作成して保存したら、Merge によって他のプログラムにマージすることができます。

UserObjectの機能

メイン・ウィンドウにUserObjectを追加すると、プログラム中にアイコン・ビューで表示されます。アイコンをダブルクリックすると、UserObjectの編集ウィンドウがポップアップし、作業領域が表示されます。そこにオブジェクトを追加して接続することにより、プログラム・セグメントを構築できます。端子領域では、UserObjectがプログラムの他の部分と通信するためのデータおよびコントロール端子を作成できます。下の図には、UserObject1という名前のUserObjectと、そのアイコン・ビューと編集ウィンドウを示します。

コンテキストとUserObject

メイン・ウィンドウとUserObjectはVEEプログラムの別々のコンテキストです。これは、CやBASICのプログラムでサブプログラムが別のコンテキストを表すのと同じです。前の図に示したように、VEEプログラム内でUserObjectをネストできます。これによりさらに別のコンテキストが生じます。前の図には、3つのコンテキストがあります。各コンテキストにはオブジェクトを追加できます。

1. メイン・ウィンドウはUserObject1を含む1つのコンテキストです。

2. UserObject1はコンテキストであり、UserObject2を含みます。

3. UserObject2はコンテキストであり、他のオブジェクトを含むことができます。

伝達とUserObject

UserObjectを含むプログラムの伝達は、UserObjectが別のコンテキストであるという事実に影響されます。UserObjectの伝達規則は次のとおりです。

UserObjectのすべてのデータ入力端子（および接続されている場合はシーケンス入力端子）がアクティブにならないと、UserObject内部のオブジェクトは動作しません。

UserObjectのデータ入力端子（および接続されている場合はシーケンス入力端子）がアクティブになると、UserObjectは動作します。UserObject内部のオブジェクトは、伝達規則に従って動作します。

VEEバージョン4.0より前に作成されたプログラムには、オプションのXEQ端子が含まれる場合があります。これがアクティブになると、UserObjectはただちに作業領域内部のオブジェクトの動作を開始します。この場合、UserObjectの入力端子のうちアクティブになっていないものについては、その時点での「古い」値が用いられます。UserObjectにXEQ端子が必要な場合はほとんどありません。VEE 4.0以降のバージョンではこのピンは使用できず、UserObjectsにXEQピンがある既存のプログラムはVEE 4以上の実行モードではコンパイルできません。

UserObjectのデータ出力端子は、UserObject内部のすべてのオブジェクトが動作を終了するまで伝達しません（ただし、UserObjectの実行がエラーまたはExit UserObjectによって途中で終了した場合を除く）。UserObject内部からアクティブにされた出力端子だけが、UserObject外部のオブジェクトにデータを渡します。アクティブにされたデータ出力端子は、1つのデータ・コンテナだけを伝達します。

VEEバージョン4.0より前に作成されたプログラム（VEE 3実行モードで動作するもの）では、UserObject内部のオブジェクトは別のサブスレッドにある外部のオブジェクトとタイムシェアリングしながら動作します。これをタイム・スライス実行と呼びます。UserObjectはUserObject外部のオブジェクトの動作をブロックしません。VEE 4以上の実行モードで動作するプログラムでは、UserObjectは別々のスレッドから呼び出された場合のみタイムスライス実行されます。

伝達規則の詳細については、伝達についてを参照してください。

注記

UserObject内にStartオブジェクトがある場合、[Start]を押すと、Startオブジェクトと同じスレッドに接続されたオブジェクトだけが動作します。UserObjectの入力端子からデータは読み取られず、出力端子は伝達しません。すなわち、UserObject外部への伝達は起こりません。

UserObjectからのデータ出力

伝達規則で述べたように、UserObjectの各データ出力端子は、UserObject内部のオブジェクトが伝達を終了したときに、1つのデータ・コンテナ（端子が最後に受け取ったもの）だけをUserObject外部のコンテキストに伝達します。このことを考慮しないと、プログラムで予期しない結果が生じる場合があります。次の例はこの状況を示します。

For Countオブジェクトは10個のデータ・コンテナ（番号0～9）をCount出力端子に送りますが、UserObjectから伝達するのは1つのデータ・コンテナ（最後の番号）だけです。このような場合、Collectorオブジェクトを使って、For Countオブジェクトからのデータを配列に収集できます。Array出力端子も1つのデータ・コンテナしか伝達しませんが、このコンテナは10個の値（0～9）を持つ1次元配列です。


プログラム・フローの制御

VEEの伝達規則は論理的ですが、プログラムがどのように伝達するかがわかりにくい場合もときにはあります。VEEプログラミング・スタイルのいくつかの規則を以下に挙げます。

プログラム・フローが明確で、階層的に伝達するようにプログラムを作成します。フローを容易に見て取ることができれば、問題は発生しないのが普通です。

オブジェクト間の実行順序が重要であるにもかかわらずあいまいな場合は、シーケンス入力ピンとシーケンス出力ピンを接続します。これが必要な場合はそれほど多くありませんが、ときにはプログラムの適切な実行順序を保証するために必要になることがあります。

反復のためにフィードバック・ループを使用するのは避けます。このような構文を使用すると、予測できない結果が生じます。ループは、データを持つコンテナをスレッドの開始点に戻すためのものです。フィードバックを使用する場合は、フィードバック・ループ中にJCT（ジャンクション）オブジェクトが必要です。

ループするオブジェクトから始まる並列スレッドは避けます。どちらのスレッドが実行されるかの判断が困難だからです。

GateおよびSample & Holdオブジェクトの使用は避けます。これらのオブジェクトは主に、伝達規則の理解不足に対処するためのパッチとして用いられます。適切なプログラミング・スタイルを用いれば、これらのオブジェクトの使用を避けることができます。

関連項目

基本的なプログラム制御 高度なプログラム制御


基本的なプログラム制御

オブジェクトの基本的な組み合わせがどのように動作してプログラム・フローを制御するかを理解することが重要です。次のプログラムは、一般的なプログラム制御であるループに使用する単純なカウントの生成方法を示します。プログラムが実行されると、For Countオブジェクトは0から9までカウントします。

For Countオブジェクトをネストして、ネストしたループを作成できます。次のプログラムでは、内側のループの For Count が、外側のループの For Countからシーケンス入力ピンに送られたカウントのそれぞれに対して、0から9までカウントします。外側の For Count は、内側の For Count がループ全体を終了するまで、次の出力カウントを送信しません。

外側の For Count は、最後のカウントを送信する際に、シーケンス出力ピンからパルスを出力し、Beepオブジェクトをアクティブにします。これは、ループ・オブジェクトの重要な機能の1つです。その配下のスレッドがすべて実行を終了した後で、初めてシーケンス出力パルスを生成します。

連続ループ

連続ループを生成するには、次の例のようにUntil Breakオブジェクトを使用できます。Delayオブジェクトは、1秒に1回更新するようにプログラムを制御します。もっとよい方法は、Until BreakをOn Cycleに置き換えることです。これにより、任意の遅延設定でコンテナを生成してnow()オブジェクトを起動できます。AlphaNumericの表示フォーマットは、その[Properties]ダイアログ・ボックスの[Number]タブで設定できます。

連続ループは、特定の条件が満たされるまでプログラムの動作を繰り返す場合に有効です。このループは、下のプログラムのようにOK、Break、Nextオブジェクトを追加することで、任意の時点で終了できます。

この例は、制御構文の別の機能を2つの並列スレッドで示します。このプログラムは、ユーザがOKを押してBreakを起動するまで、時刻を連続的に更新します。Nextオブジェクトがない場合、Until Breakはコンテナを生成し、自分より下流のすべてのオブジェクトが実行を終了するまで待ちます。時刻は更新され、プログラムはOKが押されるまで待ちます。Nextオブジェクトがあるために、Until BreakはOKが押されるまでコンテナを連続的に出力します。

この例では、StopオブジェクトをBreakオブジェクトの代わりに使っても同じです。

連続ループをより直接的に制御するには、Toggleオブジェクトを使用します。次のプログラムは、Toggle（Buttonフォーマット）を使ってループを中断する方法を示します。

Toggleの出力は、Resetコントロール入力に接続されています。デフォルトの初期値は0であり、これが各ループ中にIf/Then/Elseに出力されます。Toggleの値が0である間は、プログラム・フローはNowオブジェクトまで進みます。Toggleのボタンをクリックすると、値が1に切り替わります。これによりIf/Then/Elseの式の条件が満たされ、Breakオブジェクトがアクティブになります。

対話的なプログラム

上記のループの手法を使って、次のプログラムでは対話的なプログラムの一般的なアーキテクチャを作成する方法を示します。ユーザがToggleボタンをクリックすることにより、2つの動作のどちらかを選択するか、プログラムを終了することができる単純なプログラムを考えます。

考え方としては、それぞれの動作に固有の並列スレッドを設けます。ループは各Toggleオブジェクトの出力（初期値は0）をそれぞれのIf/Then/Else式で連続的にチェックします。ボタンが押されると、Toggleの出力が1に変わり、対応するText出力がAlphaNumeric表示に送られるか、プログラムが終了します。必要な数だけ並列スレッドを追加して、I/Oや計算を実行できます。

このアーキテクチャでは、実行中のスレッドが終了しない限り、他のスレッドは実行されません。実行中のスレッドの終了までに長い時間がかかると、そのスレッドが終了するまで他のスレッドの実行は待たされます。

注記

上記のようにToggleコントロールを使って連続ループを制御する方法は、システムの性能に影響を与えます。Toggleボタンが毎回動作し、CPU時間の約50%を消費するからです。これを避けるには、Toggleボタンの代わりにOKオブジェクトとNextオブジェクトを使用します。下のプログラムは、OKオブジェクトとNextオブジェクトを使って上記のプログラムを実現する方法を示します。このプログラムでは、Until Breakオブジェクトの後のOKボタンは、OKボタンが押されるまでCPU時間を全く使用しません。

関連項目

プログラム・フローの制御, 高度なプログラム制御


高度なプログラム制御

基本的手法を拡張することにより、より複雑な制御をプログラムで実行できます。

例:プログラム作業の開始

例として、次のプログラムでは、複数の作業の1つをユーザに選択させるか、計測器からのサービス・リクエスト（SRQ）によって作業を開始させます。

プログラムが実行された後、[Task 1]または[Task 2]ボタンをクリックすることにより、適切な表示出力が得られます。パネル・ドライバのステータス・パネルの[Clear Status]を押すと、SRQ!メッセージが出力され、戻って別の作業を実行できます。[Quit]ボタンを押すとプログラムが停止します。

Until Breakオブジェクトは、3つのトグル・ボタン（Task 1、Task 2、Quit）とInterface Eventオブジェクト（SRQ、GPIB7）によって制御されるプログラム内の4つの平行スレッドを動作させます。

[Task 1]ボタンと[Task 2]ボタンで定義される2つのスレッドは、「Doing Task 1」および「Doing Task 2」というテキストを[Message]ダイアログ・ボックスに表示します。[Quit]ボタンで定義されるスレッドは、プログラムを停止して表示をクリアします。

興味深いのはSRQを含むスレッドです。Until Breakオブジェクトに接続されたHP 54501Aパネル・ドライバは、サービスを要求するためにSPoll Enable（ステータス・パネル上）が設定されています。ステータス・パネルの[Clear Status]ボタンが押されると、サービス・リクエストが送信されます。マスクが設定されていると、SRQを処理するスレッドは、Interface Eventオブジェクトを使って、以下の設定を使ってSRQを待ちます。

SRQが発生した場合、Interface EventオブジェクトはInstrument Eventオブジェクトにシリアル・ポールを実行するように指示し、これがオシロスコープのSRQをクリアします。

NO WAITが設定されているため、オブジェクトはシリアル・ポールを実行した後Textオブジェクトを起動します。SQR!メッセージが[Message]ダイアログ・ボックスに送られ、SRQが発生したことを示します。[Message]ダイアログは、オペレータの応答を待つように設定されています。マスク値は無意味です。

関数の呼び出し

次のプログラムも上と似ています。3つのユーザ定義関数（A、B、C）のいずれかを呼び出して動作を開始し、選択した関数をプログラムに実行させることができます。

Radio Buttonsオブジェクトは、使用可能な関数をリストします。トグル・ボタンは、選択した関数を実行するか、プログラムを終了するために使用します。関数を実行することを選択した場合、関数名がas Text Formulaオブジェクトに出力されます。as Textは、入力をTextデータ型に変換する組込み関数です。

関数名のテキストがCall Functionオブジェクトのコントロール入力Function Nameに出力され、選択された関数が呼び出されます。プログラムが実行されると、オペレータはRadio Buttonsオブジェクトで関数名を選択し、Execute Functionボタンを押します。

注記

コントロール入力はオブジェクトの伝達には影響しません。asTextのシーケンス出力は、Call Functionのシーケンス入力に接続されます。これは、Function Nameを受け取るまでCall Functionが伝達しないようにするためです。

ストリップ・チャートのクリア

関連するプログラム・フローの問題として、次のプログラムは、特定の数のポイントをカウントしたとき、あるいはユーザがボタンをクリックしたときにクリアされるストリップ・チャートを作成します。

Until Breakオブジェクトがプログラムを動かします。これは、Quit Toggle、Random Number、Clear Chart Toggle、Counterの各オブジェクトをシーケンス入力／出力ピンを通じて制御します。Random Number（random(high, low)組込み関数）オブジェクトは、Strip Chart表示に値を供給します。Counterはループの各反復をカウントし、If/Then/Elseにカウントを出力します。If/Then/Elseは、ユーザが[Clear Chart]ボタンを押すか、Countが100に等しくなったときにストリップ・チャートとカウンタをクリアします。

Toggle ControlオブジェクトはUntil Breakによって連続的に駆動され、ほとんどの場合は0を生成します。Toggle Controlをクリックするとコントロールは1に設定され、フィードバック接続によってリセットされます。1はIf/Then/Elseに入力されます。Toggle Controlオブジェクトのデフォルトの外観を変更するには、[Properties]（オブジェクト・メニュー）を使ってTitle Barを非表示にし、Reset端子を追加します。

注記

上記のようにToggleコントロールを使って連続ループを制御する方法は、システムの性能に影響を与えます。Toggleボタンが毎回動作し、CPU時間の約50%を消費するからです。これを避けるには、Toggleボタンの代わりにOKオブジェクトとNextオブジェクトを使用します。

例については、「基本的なプログラム制御」を参照してください。

関連項目

プログラム・フローの制御、基本的なプログラム制御。


エラー処理

エラー処理はVEEの重要な概念の1つです。これにより、動作を実行した後、エラーが発生した場合に、動作を繰り返したり継続したりすることができます。次のプログラムでは、このことを示すため、結果が異なる動作をダイアログ・ボックスで提示しています。

このプログラムは、Exclamation Message Boxを表示し、Stop（停止）、Retry（再試行）、Ignore（無視）の選択をユーザに求めます。

Stopを選択すると、Stopオブジェクトが起動され、プログラムが停止します。

Retryを選択すると、Nextが起動され、同じMessage Boxが再表示されます。

Ignoreを起動すると、Breakオブジェクトが起動され、Until Breakループが終了します。

Until Breakが終了すると、Question Message Boxが起動され、その他のプログラム制御オプションが表示されます。

"I/O"ループの後でシーケンシャルに実行される要素は、Until Breakのシーケンス出力ピンに接続されています。ループ要素には接続されていません。

エラー処理を標準的な方法として使用するのは避けてください。特に、複雑な数式を含むTransactionオブジェクトの場合は注意が必要です。このような数式の実行にはメモリが割り当てられますが、実行中にエラーが発生した場合、そのメモリは解放されず、そのたびにメモリ・リークが生じます。

関連項目

コントロール・ピンのエラーの捕捉 ,コントロール・ピンのデータ伝達, レコードの構築, Formulaへの複数入力, イベントの時間測定


コントロール・ピンのエラーの捕捉

コントロール・ピンはただちに実行され、オブジェクトを伝達させないため、特定の条件ではプログラムが正しく動作しない原因となることがあります。コントロール・ピンがエラーの原因となる場合、特別なプログラミング手法を使って、エラーをプログラムで捕捉する必要があります。

コントロール・ピンによってオブジェクトにエラーが生じた場合、プログラムは停止し、エラー・ダイアログが表示されます。エラーをプログラムで捕捉して解決する一般的な方法は、オブジェクトにError出力を追加することです。この方法はほとんどの場合にうまくいきますが、コントロール・ピンからエラーが生じる場合は例外です。コントロール・ピンはオブジェクトの伝達に影響しないため、オブジェクトはエラー情報を伝達しません。すなわち、コントロール・ピンはオブジェクトを実行させないため、オブジェクトは伝達できません。オブジェクトが実行されない限り、Errorピンを含めてどの出力ピンも伝達されません。コントロール・ピンから生じるエラーを捕捉するには、オブジェクトを含むコンテキストにError出力を追加する必要があります。

次のプログラムは、コントロール・ピンから生じるエラーを捕捉するための不適切な方法です。このプログラムは、XY Trace表示に波形を表示します。XY TraceにはScalesコントロール入力があります。これは表示のスケールを変更するためにRecordデータ型を必要とします。TextとIntegerにより、Scalesコントロール入力のためのBuild Recordに値が供給されます。XY TraceにError出力を設けることで、エラー条件を捕捉し、errorInfo()関数に送ろうとしています。

このプログラムは、エラー番号とエラー・メッセージを表示することによりエラーを処理します。プログラムはXY Traceから生じるエラーを捕捉しようとしますが、Scalesコントロール入力からエラーが生じた場合は捕捉に失敗します。

プログラムを実行してみると、コントロール・ピンから生じるエラーをプログラムで捕捉する場合の問題が明らかになります。Scalesコントロール入力は、少なくとも変更するスケールを示す値を含むRecordを予期しています。使用できる値は、X、Y、Y1、Y2、Y3です。

Textから無効な値Tが渡されるため、コントロール・ピンはエラーを発生します。これはコントロール・ピンのエラーなので、XY Traceから伝達は生じず、Error出力はエラー情報を受け取りません。プログラムは突然停止し、VEEは次のようなエラー・ダイアログを表示します。

すでに説明したように、コントロール・ピンのエラーを捕捉する正しい方法は、オブジェクトを含むコンテキストにError出力を追加することです。次のプログラムでは、Build RecordとXY TraceをUserObjectに入れることによって問題を解決しています。XY Trace表示のError出力が削除され、UserObjectにError出力が追加されていることに注意してください。さらに、UserObjectのError出力はerrorInfo()に接続されています。

関連項目

エラー処理, コントロール・ピンのデータ伝達, レコードの構築, Formulaへの複数入力, イベントの時間測定


コントロール・ピンのデータ伝達

オブジェクトのコントロール・ピンがファイル名やデフォルト値などのデータを受け取る場合、オブジェクトのシーケンス入力ピンを接続しないと、プログラムが正常に動作しない可能性があります。コントロール・ピンはオブジェクトの伝達に影響しないため、コントロール・ピンの値が設定されていなくても、データ入力がデータを受け取ればオブジェクトは伝達します。

次のプログラムは、このシーケンスの問題を示します。Alloc Arrayは、dataFile2ファイル名がFile Nameコントロール・ピンに送られるより前に、To Fileにデータを送ります。To Fileがデータを受け取ると、意図したdataFile2ではなく、dataFile1の内容をただちに変更します。To Fileはその後に新しいファイル名を制御ピンに受け取りますが、すでに手遅れです。

この問題を解決するには、To Fileのシーケンス入力を使って、コントロール・ピンがデータを受け取るまでオブジェクトの動作を遅らせます。次のプログラムでは、File Nameのシーケンス出力をTo Fileのシーケンス入力に接続することにより、正しいファイルにデータが書き込まれるようにしています。

関連項目

エラー処理, コントロール・ピンのエラーの捕捉, レコードの構築, Formulaへの複数入力, イベントの時間測定


レコードの構築

次のようにして3つの波形のレコードを構築しようとした場合、Build Recordオブジェクトは伝達しません。Function GeneratorがDeMultiplexerに出力を送った後、For Rangeオブジェクトが0から2までループをカウントします。各カウントは対応するAddr出力をDeMultiplexerからそれぞれのBuild Record入力に送ります。

注記

ループ内で、DeMultiplexerのように複数の出力を持つオブジェクトがループの反復ごとに1つの出力からデータを送信する場合、その他の出力値は各ループの開始時に無効になります。これは、古い無効なデータが次のオブジェクトに伝達されるのを防ぐためです。このことは、Build Recordのように複数の入力を持つオブジェクトにも当てはまります。

ループの反復ごとに1つの入力がデータを受け取る場合、その他の入力の値はすべて各ループの開始時に無効になります。この動作は、最新の値でない古い値によってプログラムが動作し、無効な結果が生じるのを防ぐためです。

VEEのループのこの動作のために、Build RecordオブジェクトのRecord出力は決して伝達しません。このプログラムでは、For Rangeの反復ごとに、前回の反復でBuild Recordの入力に送られたデータが無効になります。Build Recordオブジェクトはループの1回の反復で1つの入力しか受け取らないので、ある時点で有効な入力は1つだけであり、Record出力は生成されません。

このプログラムを実際に作成して、Show Data Flowをオンにし、DeMultiplexerがループの1回の反復で1つのデータ出力しか伝達しないことを確かめてみてください。

次のプログラムでは、UserObjectを使ってこのプログラムが予期したとおりに動作するようにします。この方法がうまくいくのは、UserObjectの出力端子が反復が終わるまでデータを保持するからです。UserObjectは3つの出力を同時に送信するため、Build Recordの入力データは有効になります。3つの入力すべてに有効なデータが入ると、Build Recordオブジェクトは予期したとおりの値を出力します。

次のプログラムは、DeMultiplexerの変わりにShift Registerを使用することで問題を解決しています。DeMultiplexerでは一度に1つの出力だけが有効になるのに対して、Shift Registerの3つの出力はすべて同時にBuild Recordの3つの入力に送られるため、同時に有効になります。Shift Registerのデータを持たない出力は、ヌル・データを伝達します。

このプログラムは、3つの波形をShift Registerに入力し、Build Recordを起動してそれらのレコードを作成します。レコード出力でなく配列を得たい場合は、Collectorを使用します。


Formulaへの複数入力

ループ内のFormulaオブジェクトの複数の入力に値を送る場合、値が別々のループ・サイクルで送られると、伝達の問題が生じることがあります。前にBuild Recordオブジェクトで説明したように、入力端子のどれかに無効なデータがあるとFormulaは動作しません。ループ内部にDeMultiplexerオブジェクトがあると問題が複雑になります。この問題を表すプログラムを次に示します。

DeMultiplexerはFor Countオブジェクトによって起動され、カウントの各サイクルで1つの値（0～3）を出力します。すそされる値は各サイクルで1つだけなので、Formulaオブジェクトの入力は各サイクルの終わりで無効になります。Formulaの2つの入力AとBは同時に有効になることがないので、Formulaは実行されず、Formula出力は得られません。

ピンAの値2はループの次の反復でも有効であるとユーザは判断したかもしれませんが、VEEにはそのようなことはわかりません。ループは同じ式に対する複数の係数を計算している可能性もあります。古い係数と新しい係数が入り交じった状態で式を計算しても意味がありません。一般則として、プログラミング言語にとっては、前回の反復のデータは無効であると判断するのがいちばん安全です。このためVEEは、ループの反復が始まるたびにオブジェクトの入力を無効にします。

ループの操作

変化しない入力値がループの反復のたびに無効になってしまうという状況に対処するには、いくつかの方法があります。前のセクションの例では、Shift Registerを使って複数の有効な出力を同時に供給する方法を示しました。ほとんどの作業に対応できる直接的な方法として、変数の使用があります。次のプログラムは、変数を使ってFormulaオブジェクトに有効な値を供給する方法を示します。

このプログラムでのグローバル変数Nvalの使用法には、2つの重要なポイントがあります。第1に、Nvalはプログラムが実行を開始したときに初期化されます。このプログラムでは、変数が使用される前にVEEが初期化するので不要なのですが、これはプログラミング上のよい習慣です。第2に、NvalはFormulaが使用する前に常に新しい値に設定されます。

変数は必ずオブジェクトが使用する前に設定すべきです。そうしないと、無効なデータによってプログラムに問題が生じるおそれがあります。変数が初期化されている場合、その値は無効である可能性があります。変数が初期化されていない場合、Variable was not foundといったエラーが生じます。

関連項目

エラー処理, コントロール・ピンのエラーの捕捉 ,コントロール・ピンのデータ伝達, レコードの構築, イベントの時間測定


イベントの時間測定

Timerオブジェクトは、プログラム中での接続のしかたによっては、奇妙な（ときには間違った）結果を表示する場合があります。このプログラムは、VEEの伝達の問題によってプログラム中のオブジェクトの接続方法が影響されることを示します。

このプログラム中のブロックは、VEEオブジェクトの何らかの組み合わせからなる任意のスレッドです。Timerを追加することにより、Block 2の実行にかかる時間を測定しようとしています。このプログラムは、動作する場合もエラーになる場合もあります。動作した場合、Timerの結果は間違っている可能性があります。Timerが測定を開始するタイミングと終了するタイミングに影響する問題が2つあります。

第1に、Block 1のシーケンス出力はBlock 2とTimerのTime1入力の両方を起動します。プログラムではどちらを先に起動するかを指定していないので、どちらが先に起動されることもありえます。Block 2が先に起動された場合、Block 2が終了するまでTime1は起動されません。この条件により、Time1が起動されるより前にBlock 2の出力がTime2を起動すると、間違った時間測定結果またはエラーが生じます。

問題を調べるためにデバッグ機能のShow Data Flowをオンにしても、データ・フロー・インジケータからは実際の伝達が完全にはわからない可能性があります。この状況では、伝達はBlock 1のシーケンス出力をTime1とBlock 2に接続した順序によって異なります。

2番目の問題は、Block 2の出力からTimerのTime2入力への接続に関わります。これはBlock 3と4の入力にも接続されているので、どの入力が最初に動作するかは保証されません。このために、間違った時間測定結果が生じる可能性があります。

プログラムを修正して正しい伝達と正確な時間測定を行う方法を下に示します。Block 1とBlock 2の間にDoオブジェクトを挿入し、Block 2のシーケンス出力をTime2入力に接続します。Doオブジェクトにより、オブジェクトの動作順序が、プログラム中でその周りに示されている番号が示すように確定されます。

Block 2の出力ピンは、その周りの番号が示す順序で動作します。Block 2のシーケンス出力ピンをTime2入力に接続することにより、Timerが結果を表示するのは、Block 2とその出力ピンから起動されるすべてのブロックが終了した後になります。同様に、Block 2のシーケンス出力ピンに他のブロックが接続されている場合、正しい伝達を保証するためにもう1つのDoオブジェクトを挿入します。

関連項目

エラー処理, コントロール・ピンのエラーの捕捉 ,コントロール・ピンのデータ伝達, レコードの構築, Formulaへの複数入力


データ・コンテナの理解

VEEプログラム中でのデータの伝達は、あるオブジェクトから別のオブジェクトへのデータ・コンテナの移動から構成されます。データ・コンテナとは、VEEの内部データ・フォーマットです。すべてのデータ・コンテナには、データ型 （テキスト、実数など）と、データの種類（スカラ、1次元配列など）があります。

データ・コンテナは、1つの値だけを持つ場合と、複数の値の配列を持つ場合とがあります。どちらの場合も、オブジェクトが動作したときに特定のデータ出力ピンから伝達されるデータ・コンテナは1つだけです。

次のサンプル・プログラムでは、Real64定数オブジェクトが1次元配列として構成されています。Int32定数オブジェクトはスカラとして構成されています。

プログラムが実行されると、Real64定数オブジェクトは1次元実数配列のデータ・コンテナを伝達します。Int32定数オブジェクトは、整数スカラ（値1）のデータ・コンテナを出力します。それでは、VEEはこれら2つのコンテナをどうやって加算するのでしょうか。大丈夫です。VEEには自動データ型変換があるからです。VEEは整数値1を等価な実数値（1.0）に「昇格」します。a+bオブジェクトは実数値1.0を1次元実数配列のすべての要素に加算し、結果の1次元実数配列を上に示すように出力します。

あるVEEデータ・ラインで渡されたコンテナが何かを知りたい場合は、Line Probeを使ってその情報を見ることができます。マウス・ポインタを目的のラインに移動してラインを強調表示させ、マウスの左ボタンをクリックします。Container Informationボックスが表示されます。例えば、上記の例のReal64定数オブジェクトからのデータ出力ラインに渡されたコンテナは、次のように表示されます。

一般的に、VEEはデータ型を自動的に変換し、可能な場合はデータの種類を解決します。通常はこれがどのように行われるかを意識する必要はありません。変換プロセスに関する技術的情報を知りたい場合は、入力端子のデータ型の変換と計測器I/Oのデータ型変換を参照してください。

端子情報

端子には、オブジェクトの入力型と種類の要件、および入出力コンテナに関する情報が表示されます。ピンは端子の接続ポイントです。存在するのに表示されていない端子を表示するには、オブジェクト・メニューでPropertiesをクリックし、GeneralタブでShow Terminalsをチェックします。

端子の属性を表示したり変更したりするには、端子の情報領域（ピンではなく）をダブルクリックします。端子情報のダイアログ・ボックスが表示されます。

ダイアログ・ボックスのすべてのフィールドが淡色表示の場合、端子は変更できません。入力フィールド（白い背景）またはボタンがある場合は、値を変更できます。

端子には次の特性があります。

Nameは端子の名前です。このフィールドは通常変更できます。Formula式では、端子名を式の中で使用できます。

Modeは端子の種類を表示します。例えば、Data、Control、Trigger、Errorなどです。このフィールドは変更できません。

Required TypeとRequired Shape（入力端子のみ）は、オブジェクトが想定する入力データに関する情報を指定します。一部のオブジェクトではRequired TypeまたはShapeを変更できますが、通常はその必要はありません。

Container Informationは、オブジェクトが処理する（入力端子の入力要件に基づく）または処理した（出力端子の場合）コンテナに関する情報です。情報としては、データ型、データの種類、サイズ（データが配列の場合）、マッピング、データ自体があります。

関連項目

データ型、データの種類、データ型とラインの色


データ型

VEEにはさまざまなデータ型が用意されており、VEEのあらゆる動作に用いられます。すなわち、VEEオブジェクトの間で送られるVEEデータ・コンテナは、必ずどれか1つの型を持ちます。

注記

VEEオブジェクトの入力端子がAny（多くの場合のデフォルト）と指定されている場合、入力端子は任意のVEEデータ型のコンテナを受け入れます。

複合データ型（Waveform、Spectrum、Record、Coord、Object）は、特定のデータの種類と関連しています。

BooleanはTrueまたはFalseです。

UInt8は8ビットの2の補数符号なし整数（0～255）です。

UInt16は16ビットの2の補数整数（0～65535）です。

Int16は16ビットの2の補数整数（-32768～32767）です。

Int32は32ビットの2の補数整数（-2147483648～2147483647）です。

Int64は64ビットの2の補数整数（-9223372036854775808～9223372036854775807）です。

Real32はIEEE 754標準に準拠した32ビットの実数（±3.40282347E±38）です。

Real64はIEEE 754標準に準拠した64ビットの実数（おおむね16桁の有効数字、または±1.7976931348623157E308）です。

PComplexは(mag, @phase)という形式の大きさおよび位相成分です。位相は現在アクティブな三角関数単位です。例えば、Trig ModeがDegreesに設定されている場合、大きさ4、位相30°のPComplex数は、(4, @30)と表されます。.各成分のデータ型はReal64です。

Complexは直交座標系で表した複素数です。各複素数は、(real,imag)という形式の実数部と虚数部を持ちます。各成分のデータ型はReal64です。例えば、複素数1 +2iは(1,2)と表されます。

Waveformはタイム・ドメインの値から成る複合データ型であり、等間隔で線形にマッピングされた点のReal64値と、波形の全タイム・スパンを保持しています。Waveformのデータの種類は、Array 1D（1次元配列）でなければなりません。

Spectrumは、周波数ドメインの値から成る複合データ型であり、点のPComplex値と、周波数の最小値および最大値を保持しています。Spectrumでは、ドメイン・データを対数または線形で一様にマッピングすることができます。Spectrumのデータの種類はArray 1Dでなければなりません。

Coordは、(x, y, ...)という形式の2つ以上の成分を含む複合データ型です。各成分のデータ型はReal64です。Coordのデータの種類はScalarまたはArray 1Dでなければなりません。

Enumは整数値に対応付けられたテキスト文字列です。Enumデータ型は、[Data] [image] [Selection Control]の下のオブジェクト（Radio Buttonsオブジェクトなど）によって伝達されます。整数値にアクセスするには、これらのオブジェクトのordinal出力ピンまたはordinal(x)関数を使用します。Enumのデータの種類はScalarでなければなりません。データ入力型としてEnumを要求することはできません。

Textは英数字文字列です。

Recordはいくつかのフィールドから構成されるデータ型です。各フィールドには名前とコンテナがあり、型は任意（Recordを含む）で、データの種類はScalarまたはArray 1Dです。

Objectは、VEEの実行モードを使用する際にActiveXオートメーション・オブジェクト／コントロールに対して使用する変数専用のデータ型です。ObjectはUserObjectおよびUserFunctionの入力／出力として渡すことができますが、リモートUserFunctionやコンパイル済み関数には渡すことができません。Object変数が持つ値には、ディスパッチ・インタフェースの名前（"Range"、"Application"など）と、オートメーション・オブジェクトからエクスポートされたディスパッチのポインタ値が含まれます。Objectのデータの種類はScalarでなければなりません。

Variantは特定のデータ型ではありません。これは式の中で用いられ、それが表す値が他のいくつかのデータ型のどれかであることを示します。これはその時点で保持されているデータ型です。

データ型とデータ型変換の詳細については、入力端子のデータ型の変換と計測器I/Oのデータ型変換を参照してください。

Agilent VEEのActiveXオートメーション／コントロールのサポートの詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照してください。

特殊な計測器I/Oデータ型（VEE 5以下の実行モード）

VEEは内部的に、すべての整数値をInt32データ型として、すべての実数値をReal（またはReal64）データ型として記憶し、処理します。一方、計測器は通常16ビット整数または8ビット・バイトをサポートします。また、一部の計測器は32ビット実数フォーマットをサポートします。このため、VEEは以下の3つのデータ型をサポートします。これらは計測器との間のI/Oトランザクションでのみ用いられます。

Byteは8ビットの2の補数バイト（-128～127）です（Byteは、READ BINARY、WRITE BINARY、WRITE BYTEの各計測器I/Oトランザクションで用いられます。WRITE BYTEトランザクションは、GPIB計測器への特殊な文字出力に用いられます）。

Int16は16ビットの2の補数整数（-32768～32767）です。

Real32はIEEE 754標準に準拠した32ビットの実数（±3.40282347E±38）です。

関連項目

データ・コンテナの理解、データの種類、データ型とラインの色


データ型とラインの色

VEE 4以上の実行モードでは、データ・ラインを流れるデータの型に基づいて、ラインに異なる色が割り当てられます。デフォルトの色と、色のプロパティ（ [File] [image] [Default Preferences]で変更可能）の名前を以下に示します。

青:数値（IntegerまたはReal型）

青:複素数（ComplexおよびPComplex型）

オレンジ:文字列（String型）

グレー:シーケンス出力（ヌル値、通常はシーケンス出力ラインから）

黒:不明な型または最適化されない型（Record型など）

注記

データ型が配列の場合、太いラインが表示されます。速度を上げるには、プログラムのラインの色をチェックします。黒以外のラインが多いほど、プログラムは高速に実行されます。

関連項目

データ・コンテナの理解, データ型, データの種類


データの種類

複合データ型（Waveform、Spectrum、Record、Coord、Object）は、特定のデータの種類と関連しています。

WaveformおよびSpectrumデータ型は、常に1次元配列です。

RecordおよびCoordデータ型は、スカラまたは1次元配列です（多次元の配列にはなりません）。

Objectデータ型は常にスカラです。

他のすべてのデータ型は、データの種類としてScalarまたはArrayを持ちます。

Scalarは10や(32, @10)などの単一の数です。

Arrayは1～10次元の配列です。

配列はマッピングすることができます（マッピングとは、配列の独立変数を表す連続値または離散値の集合です）。

多くの場合、VEEオブジェクトのデータ・ピンの入力データの種類の要件はAnyです。これは、オブジェクトが複数のデータの種類のコンテナを受け入れることを示します。

関連項目

データ・コンテナの理解、データ型、データ型とラインの色


入力端子のデータ型の変換

従来のプログラミング言語の場合、データ型は手動で変換します。VEEはほとんどのデータ型を自動で変換します。

入力端子ではデータの種類は変換されませんが、演算関数で使用する場合はデータの型と種類が自動的に変換されることがあります。詳細についてはデータの処理を参照してください。

ほとんどのオブジェクトはデータ入力端子で任意のデータ型を受け入れますが、特定のデータ型または種類を必要とするオブジェクトもいくつかあります。これらのオブジェクトの場合、データ入力端子は入力コンテナを必要なデータ型に自動的に変換しようとします。

例えば、Magnitude Spectrum表示はSpectrumデータを必要とします。Function Generatorの出力（Waveform）をMagnitude Spectrum表示に接続した場合、Magnitude Spectrumは自動的にFFTを実行して、タイム・ドメインのデータを周波数ドメインのデータに（Waveformから Spectrumに）変換します。

型変換には、昇格と降格があります。昇格とは、情報量の少ないデータ型から多いデータ型への変換です。例えば、Int32からReal64への変換は昇格です。昇格は必要に応じて自動的に実行されます。ユーザが意識する必要はほとんどありません。

降格とは、データの損失を伴う変換です。例えば、Real32からInt32への変換は降格です。Real32数の小数部が失われるからです。データ型の降格は、オブジェクトの入力に特定のデータ型を指定したばあいだけ行われます。データ型を指定した場合、降格は必要で可能であれば自動的に実行されます。

例えば、Formulaオブジェクトの入力をInt32に変更した場合、別のオブジェクトがその入力にReal64数（28.2など）を供給すると、値はInt32（28）に降格されます。

Formula入力のデータ型をAnyからInt32に変更するには、入力端子の情報領域（ピンではなく）をダブルクリックし、[Required Type]フィールドをクリックします。ドロップダウン・リストでInt32をクリックして型を変更します。

注記

VEE 5以前の実行モードでの計測器I/Oトランザクションでのデータ型の変換は特殊な例です。詳細については、計測器I/Oのデータ型変換を参照してください。

最も優先順位が高いのはRecordデータ型です。ただし、Recordデータ型への昇格とRecordデータ型からの降格は自動的には行われません。Recordとそれ以外のデータの間の変換を行うには、Build RecordおよびUnbuild Recordを使用します。詳細については、レコードの使用とデータセットの使用を参照してください。

Objectデータ型も自動昇格／降格の対象となりません。また、この型は他のデータ型に変換できません。ActiveXオートメーション・オブジェクトはObjectデータ型を使用します。オートメーション・オブジェクトを作成して使用するには、関数CreateObjectおよびGetObjectを使用します。

変換が実行できない場合、VEEはエラーを返します。下の表で、「可」は自動変換が行われることを、「不可」はVEEがエラーを返すことを示します。

データの種類または型に対して"Any"を選択した場合、変換もチェックも行われないことに注意が必要です。ヌルはデータ型には変換できませんが、Any ShapeおよびAny Typeに設定されている端子には渡すことができます。これはすべてのVEEオブジェクトに当てはまります。

データ入力に対するヌルの動作は、VEE 7.03以降で変更されています。これは、データの型または種類の制約が"Any"以外に設定されている入力端子にヌル・データを送った場合に当てはまります。入力端子のデータの種類または型の制約がAny以外に設定されている場合の動作が、VEE 7.03で変更されました。VEE 7.03より前では、入力端子が例えばInt32スカラを要求していたとしても、ヌルが渡されていました。VEE 7.03以降では、入力端子の制約が設定されており、ヌルが渡された場合、エラーが表示されます。

表:入力端子での型の昇格と（降格）

変換後: 変換前: | Boolean | UInt8 UInt16 Int16 Int32 Int64 | Real32 Real64 | Complex | PComplex | Waveform | Spectrum | Coord | Enum | Text
Boolean | - | 可 | 可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 可
UInt8 UInt16 Int16 Int32 Int64 | 可 | （可）[3] | 可 | 可[1] | 可[1] | 不可 | 不可 | 可[2] | 不可 | 可
Real32 Real64 | 可 | （可）[3] | （可）[3] | 可[1] | 可[1] | 不可 | 不可 | 可[2] | 不可 | 可
Complex | 不可 | 不可 | 不可[4] | - | 可 | 不可 | 不可 | 不可 | 不可 | 可
PComplex | 不可 | 不可 | 不可[4] | 可 | - | 不可 | 不可 | 不可 | 不可 | 可
Waveform | 不可 | （可）[3] | （可）[8] | 不可 | 不可 | - | 可[5] | 可 | 不可 | 可
Spectrum | 不可 | 不可 | 不可 | （可）[8] | （可）[8] | 可[5] | - | 不可 | 不可 | 可
Coord | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | - | 不可 | 可
Enum | 不可 | 不可[6] | 不可 | 不可 | 不可 | 不可 | 不可 | 不可 | - | 可
Text | 可[9] | （可）[7] | （可）[7] | （可）[7] | （可）[7] | 不可 | 不可 | （可）[7] | 不可 | -

表の注記:

可 = 昇格

（可） = 降格

- = 該当せず

[1] 整数または実数valueは、Complex (value, 0)またはPComplex (value, @0)に昇格されます。

[2] 独立コンポーネント、すなわちnフィールドのCoordの最初のn-1個のフィールドは、配列がマッピングされている場合を除いて、値の配列インデックスです。配列がマッピングされている場合、独立コンポーネントは各次元のマッピングから導出されます。従属コンポーネントyは配列要素です。コンテナがScalar（配列でない）の場合、変換は失敗し、エラーが発生します。

[3] これらの降格では、値が変換後の型の範囲を超えている場合はエラーが発生します。

[4] この降格は自動的には実行されませんが、re(x)、im(x)、mag(x)、phase(x)の各オブジェクト、または[Data] [image] [Build Data/UnBuild Data] [image] のオブジェクトを使って実行できます。

[5] FFTまたは逆FFTが自動的に実行されます。

[6] この降格は自動的には実行されませんが、ordinal(x)オブジェクトを使って実行できます。

[7] この降格では、テキスト値が数値（34、42.6など）でない場合や、使用可能な数値フォーマットでない場合には、エラーが発生します。使用可能なフォーマットは次のとおりです（スペースは、各数値内部にある場合を除いて無視されます）。

整数または実数型に降格されるTextには、次のものを含むことができます。

前置符号。例: -34

サフィックスeまたはEと、その後にオプションの符号またはスペースと整数。例: 42.6E-3

Complexに降格されるTextは次のフォーマットでなければなりません。(number, number)

PComplexに降格されるTextは次のフォーマットでなければなりません。(number, @number) この変換では、位相（2番目のコンポーネント）はTrig Modeの設定と無関係にラジアンと見なされます。

Coord型に降格されるTextは次のフォーマットでなければなりません。(number, number, ...)

[8] これらの降格はWaveformとSpectrumのマッピングを保持します。

[9] "True"と"False"だけが変換できます。

関連項目

計測器I/Oのデータ型変換、オブジェクト／関数によるデータ型の変換


オブジェクト／関数によるデータ型の変換

VEEには、データ型を変換するためのオブジェクトと組込み関数があります。これらを使用して、VEEが入力端子では処理できない特殊な型変換を処理することができます。

Function & Object Browserを使用するか、式を使用できるオブジェクトに関数名を入力することによって、VEEに組み込まれている型変換関数をプログラムに追加することができます。Browserで Built-in Functions => Type Conversionを選択すると、使用可能な関数が表示されます。

  • 例えば、関数asText(x) は入力xをデータ型Textに変換し、xと同じデータ形状で返します。xは任意の形状、任意の型を取ることができます。式asText(3.4)では、結果はText値 "3.4" になります。

注記

VEE 5.0より以前では、Formulaなどのオブジェクトの式にIntegerを直接入力した場合、Realに変換されていました。VEE 5.0以降では、Execution ModeをVEE 5以上に設定した場合は、式の中のIntegerがRealに変換されることはありません。この変更は、入力端子でのデータ型変換には影響はありません。例えば、Formula式 "2^4" は、VEE 4以前のモードではReal64の値16.0を生成しますが、VEE 5以上のモードではInt32の値16を返します。

最も優先順位が高いのはRecordデータ型です。ただし、Recordデータ型への昇格とRecordデータ型からの降格は自動的には行われません。Recordとそれ以外のデータの間の変換を行うには、オブジェクトBuild RecordとUnbuild Recordを使用します。

レコードの使用で説明するシンタックスを使った式でも、同様の結果が得られます。

Coordデータ型には次のような特別な規則があります。

  • Int32とRealのデータ型の配列はCoordに昇格できますが、Coordを他の数値型に変換することはできません。

  • マッピングされない配列をCoordに変換した場合、Coordの独立値（最後以外のフィールド）は配列のインデックスから作成され、Coordの従属値（最後のフィールド）は要素の値を持ちます。例えば、配列Aが [1,5,7]である場合、AをCoordに変換すると、結果は [(0,1),(1,5),(2,7)] というCoord配列になります。

  • マッピングされた配列をCoordに変換した場合、Coordの独立パラメータの範囲は、マッピングの最小値からXmin+(Xmax-Xmin/N)*(N-1)までの範囲になります。

Objectデータ型も自動昇格／降格の対象となりません。また、この型は他のデータ型に変換できません。ActiveXオートメーション・オブジェクトはObjectデータ型を使用します。オートメーション・オブジェクトを作成して使用するには、関数CreateObjectおよびGetObjectを使用します。VEEのActiveXオートメーションおよびコントロールのサポートについては、VEEでのActiveXオートメーションの使用法を参照してください。

関連項目

Help => Index and contents => 以下の項目についての説明... => Active X


データの処理

データを処理するには、Function & Object Browserから使用できる演算関数を使用します。Function & Object Browserツールバー・ボタンを使って、ブラウザを開きます。関数を組み合わせて式を作成できます。

注記

Constantオブジェクトなどの数値入力フィールドを使って、プログラムを実行する前にデータを処理することもできます。一部のオブジェクトの数値入力フィールドでは、任意の式が使用できます。式はその場で評価され、結果の値がそのフィールドに対して用いられます。Constantの中では変数は使用できません。また、入力する式は、オブジェクトに対して適切な型か、その型に変換可能な型のスカラに評価される必要があります。一般的に、すべての2項演算子、ネストのための括弧、関数呼び出し、既定義の数値定数PI（3.1416）が数値入力フィールドで使用できます。

Function & Object Browserには、データをさまざまな方法で処理するための演算関数群が用意されています。これらの関数は、対応するタイトル、入力、出力を持つFormulaオブジェクトに入力された式です。各Formulaオブジェクトのオープン・ビューで式を変更したり、そのプロパティを変更したりできます。Function & Object Browserに用意されているすべての関数は、式が使用できる他のメニューのすべてのオブジェクトで使用できます。式が使用できる他のメニューのオブジェクトは次のとおりです。

Data [image] Access Array [image] Set Values

Data [image] Access Array [image] Get Values

Data [image] Access Record [image] Get Field

Data [image] Access Record [image] Set Field

Device [image] Sequencer

Flow [image] If/Then/Else

Flow [image] Conditional（すべての条件オブジェクト）

トランザクションを使用するI/Oオブジェクト

式は、データ入力端子名、データ出力端子名（I/OトランザクションおよびFormulaのみ）、変数（グローバルおよび宣言済み）、ユーザ定義関数（コンパイル済み、リモート、UserFunction）、およびFunction & Object Browserの任意の式を含むことができます。データ入力端子名は変数として用いられます。USASCIIキーボードの場合、VEEは式内の入力変数名の大文字小文字を区別しません。USASCII以外のキーボードの場合、7ビットASCII文字に限って大文字小文字が区別されません。式は、実行時に評価されます。

関連項目

一般的概念、代入演算の使用、2項演算子の使用方法


一般的概念

関数に配列を渡した場合、特に注記しない限り、関数は配列の各要素に対して動作します。例えば、スカラのsqrtはスカラを返します。sqrt(4)は2を返します。一方、配列のsqrtは同じサイズの配列を返します。sqrt([1,4,9,64])は配列[1,2,3,8]を返します。

VEE 5以上の実行モードでは、式フィールドの数値のうち、小数点または指数の"E"がないものはすべてInt32と見なされます。VEE 4およびVEE 3モードでは、括弧を使ってComplexまたはPComplex値を指定した場合を除いて、すべての数値はReal64と見なされます。したがって、2はプログラムの実行モードに応じてReal64またはInt32に解釈されます。(1, @2)はPComplex数、(1, 2)は直交座標のComplex数です。1.0および1E3は常にReal64です。

注記

VEEは括弧内の複数の値をComplexまたはPComplex値と解釈します。式でCoord値を使用する場合は、coord(x, y)関数を使用します。coordは2個以上の引数を取ります。coord(1, 2)は2つのフィールドを持つScalar Coordコンテナを返します。

Coordデータを対象とするすべての関数は、各Coordの従属フィールド（最後のフィールド）だけを操作します。例えば、abs(coord(-1, -2, -3))はCoord (-1, -2, 3)を返します。

Enumコンテナは、関数ordinal(x)以外のすべての演算の前にTextに変換されます。Enumの配列はサポートされません。Enum配列を作成しようとすると、Text配列が代わりに作成されます。

各データ型の定義については、データ型を参照してください。

式での文字列の使用

式の中の文字列は、二重引用符で囲む必要があります。文字列の中では次のエスケープ・シーケンスが使用できます。

________________________________________

エスケープ文字

意味

________________________________________

\n | 改行
\t | 水平タブ
\v | 垂直タブ
\b | バックスペース
\r | キャリッジ・リターン
\f | フォーム・フィード
\" | 二重引用符
\&rsquo; | 一重引用符
\\ | バックスラッシュ
\ddd | 文字の値。dは8進数字。

________________________________________

式での配列の使用

配列は式の中でスカラと同様に使用できます。配列は名前で参照します。配列定数を式に直接入力することもできます（[1,2,3]など）。sin([1,2,3])のように関数で配列を使用すると、sin関数が配列のすべての要素に適用されます。VEEでは配列要素の間にカンマが必要です。

注記

配列のインデックスは0から始まります。インデックスの範囲は0からn-1までです。ここでnはその次元の要素数です。

式を使って配列の一部にアクセスできます。式でサブ配列を指定した場合、サブ配列を出力することも、さらに別の式の計算に使用することもできます。

サブ配列は元の配列の中の連続する部分でなければなりません。サブ配列にアクセスするには、配列のすべての次元に対してパラメータを指定する必要があります。

配列パラメータを指定するには次の文字を使用します。

カンマ","は配列の次元を区切ります。サブ配列の操作では、各配列次元に対して1つずつの指定が必ず必要です。

コロン":"は、1つの配列次元の要素の範囲を区切ります。

アスタリスク"*"は、その配列次元のすべての要素を指定するワイルドカードです。

注記

Waveformのタイム・スパン、Spectrumの周波数スパン、配列のマッピングは、サブ配列のポイント数に合わせて調整されます。例えば、256ポイントのWaveform（WF）があり、WF[0:127]と指定した場合、Waveformの最初の半分が得られ、タイム・スパンは元の値の半分になります。

例

Aは10要素のArray 1Dとします。

A[1]はAの2番目の要素にアクセスし、スカラを出力します。

A[0:5]は、Aの最初の6つの要素を含む1次元のサブ配列を返します。

A[1:1]は、Aの2番目の要素を1つの要素として持つ1次元のサブ配列を返します。これと最初の例A[1]との違いに注意してください。

A[2:*]は、Aの3番目から10番目までの要素を含む1次元のサブ配列を返します。

AまたはA[*]は、配列A全体を返します。

A[1,2]はエラーになります。これは2次元配列に対するパラメータの指定だからです。

Bは5×5の行列（Array 2D）とします。

B[*]はエラーを返します。これは1つのパラメータしか指定していませんが、Bは2次元配列だからです。

B[1,2]は、2行目の3要素目のスカラ値を返します。

B[1,*]は、行1全体をArray 1Dとして返します。

B[1,1:*]は、行1の最初の要素以外のすべてをArray 1Dとして返します。

B[4,1:4]は、4つの要素を持つArray 1Dを返します。要素は行4の2番目から5番目までの値です。

B[5,5]はエラーを返します。配列は0から始まるからです。この配列にアクセスできるのはB[4,4]までです。

B[1 1]はエラーを返します。次元の指定はカンマで区切る必要があるからです。

式での配列の構築

他の配列の要素やサブ配列から配列を構築できます。式の中のすべての要素が同じ数の次元を指定し、各次元の値の数が一致する必要があります。

例

Aは10要素のArray 1Dとします。Bは5×5の行列とします。

[1,2,3]は、値1、2、3を含む3要素のReal Array 1Dを返します。

[A[0], A[5:7], A[9]]はエラーになります。スカラとArray 1Dの両方の要素が指定されているからです。

[A[0:4], B[0,*]]は、10要素のArray 2D（2×5）を返します。その1行目はAの最初の5つの要素、2行目はBの1行目です。

[A[0], A[1], B[2,3], A[5]]は、4要素のArray 1Dを返します。その要素は、Aの1番目と2番目の要素、Bの3行4列の要素、Aの6番目の要素です。

式での変数の使用

変数の作成と設定にはDeclare VariableおよびSet Variableオブジェクトを使用し、変数へのアクセスにはGet Variableオブジェクトを使用します。詳細については、Declare Variable、Set Variable、Get Variableを参照してください。

この他に、式の中に変数名を含めることで変数にアクセスすることもできます。変数は、Formulaオブジェクトをはじめ、遅延評価式フィールドを持つすべてのオブジェクトの式で使用できます。このようなオブジェクトとしては、If/Then/Else、Get Values、Get Field、Set Field、およびトランザクションに式を使用するすべてのデバイス、すなわちTo File、From File、From DataSet、From Stdin、To/From Socket、Sequencer、Direct I/Oがあります。

式に変数を含めるには、変数名を入力変数と同様に使用します。例えば、プログラムでSet Variableオブジェクトを使って変数numFilesを定義しているとします。プログラムの他の部分で、入力Aを持つFormulaオブジェクトで式numFiles+3*Aを使用できます。

注記

変数名の大文字と小文字は区別されません。大文字と小文字のどちらを使用してもかまいません。すなわち、GLOBALAはglobalAと同じです。

エラーや予期しない結果を避けるため、変数を式に含める際には次の2つの制限に注意が必要です。

1. ローカル入力変数はグローバル変数よりも高い優先順位を持ちます。.すなわち、変数名が重複している場合、グローバル変数でなくローカル変数が選択されます。例えば、Freq入力（ローカル変数）を持つFormulaオブジェクトに式Freq*10があり、別にグローバル変数Freqが存在する場合、この式はグローバル変数でなくローカル変数のFreqを使って評価されます。この重複に関してはエラーは報告されません。

2. プログラムの流れによっては、変数を含む式を評価するオブジェクトが変数の定義より前に実行されることがあります。例えば、変数globalAがSet Variableオブジェクトで設定され、式globalA*X^2がFormulaオブジェクトに含まれるとします。プログラムの流れによっては、FormulaオブジェクトがSet Variableオブジェクトよりも前に実行される可能性があります。この場合、globalAが未定義なので、Formulaオブジェクトは式を評価できません。エラー・メッセージが表示されます。

正しい伝達を保証するために、Set Variableが先に実行されるような手段を取る必要があります。このためには、この例の場合、Set Variableオブジェクトのシーケンス出力ピンを、Formulaオブジェクトまたは評価される式に変数を含むその他のオブジェクトのシーケンス入力ピンに接続する方法があります。Get Variableオブジェクトを使用する場合、そのシーケンス入力ピンもSet Variableのシーケンス出力ピンに接続しておく必要があります。また、Declare Variableオブジェクトを使って変数を宣言する場合、Set Variableを使って変数を初期化する必要があります。詳細は、変数についてを参照してください。

注記

デフォルトでは、[Default Preferences]ダイアログ・ボックスの[Delete Variables at PreRun]がチェックされている（オンになっている）ので、プログラムを実行すると変数の値は削除されます。これは、変数に「古い」データが含まれているために予期しない結果が生じるのを防ぐためです。

変数は配列にもできます。変数配列にアクセスする方法は、配列構文を使用する入力変数の場合と同じです。例えば、GlobAry[2]のようにします。変数がRecordの場合、globRecord.numFilesのようにレコード・アクセス構文を使用します。

式でのレコードの使用

式を使ってレコードのフィールドまたはサブフィールドにアクセスできます。サブフィールド構文のA.Bを使って、レコードAのBフィールドにアクセスできます。AがレコードでBというフィールドを持ち、このフィールド自体もレコードでCというフィールドを持つ場合、A.Bの構文を再帰的に使用してCフィールドにアクセスできます。すなわち、式A.B.Cを使用します。AにBフィールドがない場合や、BにCフィールドがない場合、エラーが発生します。

式で使用できるA.B.C.D.E.Fの再帰の数に制限はありません。フィールド名の大文字小文字は区別されません。フィールド名はサブレコードで重複していてもかまいません。すなわち、A.a.Aという式も使用できます。

レコードを変数で使用するのは非常に便利です。1つの変数で複数の異なる値を保持できるからです。FormulaオブジェクトをGet Variableの代わりに使用することもできます。例えば、Get VariableとFormulaオブジェクトを使ってレコードを解体する代わりに、GlobRec.numFilesを使って1つのオブジェクトでレコードにアクセスできます。

レコードと配列の構文を式の中で組み合わせることにより、レコード配列のフィールドにアクセスしたり（例、A[1].B）、レコードのフィールドである配列の一部にアクセスしたり（例、A.B[1]）できます。A[1].bとA.b[1]の違いに注意してください（どちらもサポートされます）。

最初の構文は、フィールドbを持つRecord 1Dに対して使用します。A[1].bは、レコード配列Aの2番目のレコード要素のフィールドbにアクセスします。

2番目の構文は、1次元配列のフィールドbを持つスカラ・レコードに対して使用します。A.b[1]は、レコードAのフィールドbの2番目の要素にアクセスします。

レコードのフィールドを変更するには、Formulaオブジェクトで代入演算子を使用します。例えば、レコードRにフィールドAがあり、R.Aの値をsin(R.A)に変更したいとします。この場合、R.A = sin(R.A)という式を使用します。レコードRは（フィールドAの値が更新された状態で）、引き続きVEEプログラムで使用できます。

注記

式でObjectを使用してActiveXオートメーション・オブジェクト／コントロールを操作する方法については、VEEにおけるActiveXオートメーションの使用法とVEEにおけるActiveXコントロールの使用法を参照してください。

関連項目

データの処理、代入演算の使用、2項演算子の使用方法


代入演算の使用

Formulaオブジェクトでは、式で代入演算を使用することにより、配列またはレコードの一部に値を代入したり、ローカル／グローバル変数に値を代入したりできます。Result出力端子には、配列またはレコード全体でなく、配列またはレコードの変更された部分が出力されます。例えば、FormulaにA[2] = 4という式がある場合、Result端子には、値4を持つ配列要素A[2]が出力されます。配列A全体が出力されるわけではありません。Function & Object Browser => Operators => Assignmentに、代入が設定されたFormulaオブジェクトが用意されています。

注記

代入演算が使用できるのは、Formulaオブジェクトの中だけです。

使用可能な構文

Formulaでは、複数の式をセミコロンで区切って使用できます。式の左辺には、配列／レコードの要素および変数の値を変更する構文が使用できます。右辺は、変更される左辺の部分と正確に一致する必要があります。レコードの場合、スキーマ（フィールドの型、種類、サイズ）は変更できず、値だけが変更できます。次の例は、配列に対して使用可能な左辺の構文を示します。

A[2]=
A[2, 3, 4:5]=
A[2:4, 4:6, 3:*, *]=

次の例は、レコードに対して使用可能な左辺の構文を示します。

RecA.B=
RecA.B.C.D=
RecA[1].B=
RecA.B[1]=
RecA.B.C.D[1]=
RecA[1].B[2].C[3].D=
RecA.B[2:3].C[3:4]=

次の左辺構文は、グローバル／ローカル変数を直接設定するため、および宣言されたローカル変数を初期化するために使用できます。

GLOBAL=2
TMP_LOCAL=4

以下の代入の例は、右辺が変更される左辺の部分と正確に一致する必要があることを示します。右辺のデータ型は左辺のデータ型に変換可能である必要があります。例えば、整数から実数、実数からStringなどです。Complexから実数への変換などは実行できません。

ArrayA[2:4] = ArrayB（ArrayBは3要素の1次元配列でなければなりません）

ArrayA[2, 3, 4:5, 7, 8:9] = ArrayB（ArrayBはサイズが2×2の2次元配列でなければなりません）

Rec[3:4].field = ArrayB（ArrayBは2要素の1次元配列でなければなりません）

Rec[3:4].field[4:5] = ArrayB（ArrayBはサイズが2×2の2次元配列でなければなりません）

代入の左辺にレコードの配列を暗黙に使用することはできません。Recがレコードの配列の場合、式Rec.A=2はエラーとなり、明示的な構文Rec[*].A=2を使用してくださいというメッセージが表示されます。Recがスカラ・レコードでBが配列の場合、Rec.B=2でも同様のエラーが発生します。明示的なRec.B[*]=2を使用してくださいというメッセージが表示されます。

注記

VEE 4.0以上のバージョンでは、Set ValuesおよびSet Fieldオブジェクトは実際には代入式を持つFormulaオブジェクトです。これらのオブジェクトは、VEEの以前のバージョンの定義から変更されています。VEE 3.x以前で作成した既存のプログラムでSet ValuesおよびSet Fieldオブジェクトを使用している場合は、以前の定義がそのまま用いられます。

グローバル／ローカル変数への代入

Formulaオブジェクト内での代入では、A=2やGlobalA[5]=2といった式によって、グローバル／ローカル変数の値を変更できます。変数には、宣言されないグローバル、宣言されたグローバルまたはローカル、直接設定されるローカルという種類があるので、Formulaオブジェクトは以下の優先順位で変数Aを検索します。

1. 入力端子であるローカル変数。これは、入力端子の値、型、種類を上書きします。

2. 出力端子であるローカル変数。この変数は作成されて出力端子に設定されます。

3. グローバル変数。変数はすでに存在する必要があります。変数の値、型、種類が変更されます。

上記の規則により、Formulaにtmp=2のような式が含まれる場合、tmpが上記のどれかの基準を満たさなければエラーが発生します。

グローバル配列／レコードへの値の代入は、変数が宣言されていない場合と宣言されている場合とがあるため、特別な注意が必要です。グローバル変数は、Set Variableのようなオブジェクトによって作成されるか、Declare Variableによって宣言された場合に存在します。宣言されないグローバル変数の場合、その型と種類は代入式によって変更される可能性があります。これに対して、宣言されたグローバル変数の場合、代入の右辺はグローバル変数の宣言された型に変換可能でなければなりません。

きわめて重要!

Declare Variableオブジェクトによってグローバル配列／レコード変数を宣言する場合、グローバル変数の一部を変更する前に、変数全体がまとめて初期化されている必要があります。下の図では、変数GlobalAryが宣言され、初期化されてから、個々の部分がFormulaの代入式で変更されています。

端子のデータ・コンテナ内容

Formulaオブジェクトの入力／出力端子は、変数の値が代入によってどのように変更されるかに影響します。Result出力端子のデータ・コンテナには、代入式の左辺の変更された部分が、データ型と種類の変更も含めて出力されます。FormulaにArrayA[2:4] = ArrayB[5:6]という式がある場合、Result出力端子にはArrayB[5:6]の値を持つArrayA[2:4]が出力されます。ArrayA[2]=4のような式で、ArrayAのデータ型がComplexの場合、出力端子のArrayA[2]の値はComplex(4,0)に変換されます。

次の出力端子名が使用できます。

ResultはFormulaのデフォルトの出力端子です。これは予約名であり、代入式の結果を保持します。Resultを削除して他の出力を使用し、必要に応じてこのピンを再び追加することもできます。ただし、Result出力端子の名前を変更することはできません。

入力端子名。この値は入力からコピーされます。代入で変更された場合、新しい値が出力で使用されます。変数を入力端子名として使用するには、変数が存在し、値を持つ必要があります。

tmp=2のような代入式によって作成されるtmpなどのローカル変数名。

Formulaに出力ピンを追加することにより、変更された配列またはレコードのさまざまな部分をオブジェクトから取り出すことができます。これにより、変数の変更された部分を1つの端子から出力し、変数全体を別の端子から出力することができます。配列またはレコード全体を出力端子に出力するには、代入式でグローバル変数を使用するか、配列またはレコードに対する出力端子をFormulaオブジェクトに追加します。値が代入されない出力端子が存在する場合、エラーが発生します。

配列のマッピングは、コンテナ全体が変更される場合を除いて無視されます。例えば、ArrayA[2:4] = ArrayB[2:4]はArrayAのマッピングを変更しません。これに対して、A = ArrayB[2:4]はAのマッピングを設定します。AはArrayBに完全に置き換えられるからです。

エラーからの回復

Formulaには代入やその他の演算を含む一連の式が含まれる可能性があるため、エラーは特別な方法で処理されます。代入またはその他の演算が実行された後で、次の式がエラーを起こした場合、前の式の効果は取り消されません。例えば、Global[2]=24; 2/0という式がFormulaに含まれているとします。Global[2]が24に設定された後、0による除算によってエラーが発生します。Global[2]は前の値に戻されることはありません。

注記

代入演算の使用手順については、[Help] [image] [Contents] [image] [使用法] [image] [データの操作]を参照し、配列の操作の下の項目（配列の値を変更するにはなど）と、変数の操作の下の項目を参照してください。

関連項目

VEEでのActiveXオートメーションの使用法、VEEでのActiveXコントロールの使用法

データの処理、2項演算子の使用方法、一般的概念


2項演算子の使用方法

2項演算子の使用にはいくつかの条件や指針があります。2項演算子は、Function & Object BrowserのType: Operatorsの次のカテゴリにあります。

Category: Arithmetic

a + b

a - b

a * b

a / b

a ^ b（指数演算）

a mod b（モジュロ - 除算の剰余）

a div b（整数除算 - 余りなし）

Category: Comparison

a ~= b

a == b

a != b

a < b

a > b

a <= b

a >= b

Category: Logical

a AND b

a OR b

a XOR b

NOT a （単項演算子だが、2項演算子と同じ指針が該当）

配列に対して2項演算子を使用する場合、配列のサイズ、種類、マッピング（存在する場合）が一致する必要があります。Coordの場合、独立変数の値が一致する必要があります。

2項演算子の優先順位

下に示すリストは、2項演算子の優先順位です。優先順位の高いものから順に記載されており、同じ優先順位の演算子は同じレベルにあります。

1. 式のグループ化に用いられる括弧()

2. ^

3. 単項マイナス-

4. * / MOD DIV

5. + -

6. ~= == != < > <= >=

7. NOT

8. AND

9. OR XOR

データ型変換

2項演算子の場合、入力値は順位が高い方のデータ型に昇格され、その後に演算が実行されます。出力のデータ型は、入力のうち順位が高い方のデータ型です。例えば、複素数(2, 3)と文字列"Dog"を"Dog"+(2,3)のように加算した場合、結果は文字列"Dog(2, 3)"です。

注記

この規則には例外が1つあります。Text文字列をInt32と乗算した場合、結果は文字列の繰り返しになります。例えば、"Hello"*3はHelloHelloHelloを返します。この場合、データ型の昇格は行われません。

データ型の順位は次のとおりです（高いものから低いものへ）。

1. Object

2. Record

3. Text（EnumはTextとして扱われます）

4. Spectrum

5. PComplex

6. Complex

7. Coord（他の数値型への変換はできません）

8. Waveform

9. Real64

10. Real32

11. Int64

12. Int32

13. Int16/UInt16

14. UInt8

15. Boolean

16. Variant

Variantデータ型は、特定の種類のデータに固定されていません。必要に応じて、他のデータ型のどれかになります。

Objectに関する考慮事項: Objectは他の型に自動的に降格されることはありません。Object自体に対してサポートされる2項演算子はありませんが、ほとんどのObjectには文字列または整数値のデフォルト・プロパティがあるので、ほとんどの演算がObjectに対して実行できます。違いは、演算がデフォルト・プロパティに対して実行されることです。Objectに関する詳細、およびVEEでActiveXオートメーションのためにObjectを使用する方法については、VEEにおけるActiveXオートメーションの使用法とVEEにおけるActiveXコントロールの使用法を参照してください。

Recordに関する考慮事項: Recordはすべてのデータ型の中で最高の優先順位を持ちますが、他のデータ型からRecordデータ型への変換には、必ず Build Recordなどの特別なオブジェクトが必要です。Recordが他の型に自動的に降格されることはなく、他の型がRecord型に自動的に昇格されることもありません。

2項演算子はレコードと他のデータ型の組み合わせをサポートしますが、この場合は必ずレコードが返されます。レコードとレコード以外の値との2項演算では、レコードの各フィールドとレコード以外の値との間で演算が行われます。例えば、レコードRが、スカラ実数値（2.0）のフィールドAと、スカラComplex値(3,30)のフィールドBを持つとします。この場合、式R+2は、スカラ実数値 4のフィールドAと、スカラComplex値(5,30)のフィールドBを持つレコードRを返します。レコードのすべてのフィールドに対して演算が実行できない場合は、エラーが発生します。

レコードとそれ以外の型に対する2項演算では、同じ「スキーマ」を持つレコードが返されます。すなわち、結果のレコードは同じ名前、型、種類のフィールドを持ちます。2項演算では、レコードのフィールドの型や種類が変更されることはありません。例えば、レコードRが、スカラ実数のフィールドAと、スカラComplexのフィールドBを持つとします。この場合、式R+(2,3)はエラーを生じます。VEEはまず(2,3)をR.Aと加算し、次に同じことをR.Bに対して実行しようとします。R.Aフィールドは実数なのに、R.A+(2,3)の結果はComplexなので、エラーが発生します。Complexを実数に降格してR.Aに格納することはできないからです。

レコードと配列との2項演算では、レコードが配列よりも優先順位が高いものとして扱われます。例えば、[1,2,3] + [3,4,5]は[4,6,8]を返します。すなわち、配列は要素ごとに演算されます。しかし、レコードは配列より高い優先順位を持ちます。したがって、Rが2つのフィールドAとBを持つレコードの場合、式R + [1,2]は配列[1,2]をレコードRの各フィールドに対して加算しようとします。1をR.Aに、2をR.Bに加算するのではありません。

配列とレコード配列を組み合わせた場合、事態はさらに複雑になります。例えば、Rが2要素のレコード1次元配列で、A、B、Cの3つのフィールドを持つとします。式R + [1,2,3]や式R + [1,2]は、Rの各要素のA、B、Cフィールドに配列全体を加算します。Rは配列ですが、レコードであるという事実の方が優先されます。

2つのレコードに対する2項演算では、フィールドごとに演算が実行されます。したがって、2つのレコードは同じ「スキーマ」を持つ必要があります。すなわち、各レコードのフィールド数が一致し、対応するフィールド同士の名前、型、種類が一致する必要があります。

1をフィールドAに加算し、2をフィールドBに加算し……といった処理を実行したい場合、複数の代入を使用するのが最も簡単です（代入を参照）。Formulaオブジェクトに、R.A=R.A+1,R.B=R.B+2といった式を入力します。これで、新しい値を持つR.AとR.Bがプログラムで使用できます。

Coordに関する考慮事項: Coordデータ型には次のような特別な規則があります。

整数と実数のデータ型の配列はCoordに昇格できますが、Coordを他の数値型に変換することはできません。

マッピングされない配列をCoordに変換した場合、Coordの独立値（最後以外のフィールド）は配列のインデックスから作成され、Coordの従属値（最後のフィールド）は要素の値を持ちます。例えば、配列Aが[1,5,7]である場合、AをCoordに変換すると、結果は[(0,1),(1,5),(2,7)]というCoord配列になります。

マッピングされた配列をCoordに変換した場合、Coordの独立パラメータの範囲は、マッピングの最小値からXmin+(Xmax-Xmin/N)*(N--1)までの範囲になります。

Spectrumに関する考慮事項: dBスケールを使用した場合、その管理はユーザが行う必要があります。dBスケールのデータの表示は（Waveform (Time)を除いて）正しく行われますが、fft(x)、ifft(x)などの演算関数の多くと、PComplex数を対象とする関数は、dBスケールのデータを正しく扱えません。これらの演算を使用する場合、あらかじめdBスケールのデータをリニア・スケールに変換しておく必要があります。

特定のdB単位を使用した場合、一部の演算関数は意味のある結果を返しますが、その意味は単位によって決定されます。例えば、dBWスケールのSpectrumに20を加算した場合、各要素の大きさに20が加算されます（これは、Spectrumをリニア・スケールに変換したあと、各要素に100を乗算し、dBWに変換するのと同等です）。

Int16とUInt16に関する考慮事項: UInt16とInt16は、どちらももう一方のサブセットではありません。UInt16とInt16の間の演算をサポートする規則は、2つのデータ型を上位のデータ型であるInt32にまず昇格し、その後に演算を行うというものです。演算の結果はInt32型です。

Variantに関する考慮事項:: 2項演算（+-*/など）評価と関数の結果はVariantになることはありません。

式b=aでは、bはVariantであってもaと同じ型になります。

式b=a+2では、bはaの型に関わらずVariantになることはありません。

式b=sin(a)では、bはaの型に関わらずVariantになることはありません。

関数func(2+a)は、aの型に関わらずVariant以外の型を受け取ります。

関数func(a)は、aがVariantの場合はVariantを受け取ります。

単なる変数名a、単項演算子-a、括弧(a)は、aのデータ型を変更しません。

データの種類に関する考慮事項

2項演算の両方のオペランド（入力）が配列の場合、配列のサイズと種類は一致する必要があります。演算の結果は、入力配列と同じサイズと種類の配列となります。ただし、関係演算子（==、<など）は例外で、常にスカラを返します。配列の次元数やサイズが異なる場合、エラーが返されます。例えば、[1,2] + [1,2,3]はエラーを返します。

スカラと配列の演算では、スカラは配列オペランドと同じサイズと種類を持つ定数配列と同様に扱われます。例えば、2 + [1,2,3]は[2,2,2] + [1,2,3]として扱われます。結果は[3,4,5]です。

n次元の配列をCoordに変換した場合、Coordデータの種類は、各Coord要素がn+ 1個のフィールドを持つ1次元配列となります。

関連項目

データの処理、一般的概念、代入演算の使用


テスト・データの表示

下の表に、VEEのオブジェクト別の表示機能を示します。

表示オブジェクト | 説明
Alphanumeric | 値をテキストまたは数値として表示します。表示できるのはSCALAR、ARRAY 1D、ARRAY 2Dのデータ型です。
Beep | 音を鳴らして、プログラム内での場所を知らせます。
Complex Plane | 実数軸対虚数軸上にComplex、Polar Complex（PComplex）、Coordのいずれかのデータ型の値を表示します。
Indicator⇒Meter、Thermometer、Fill Bar、Tank、Color Alarm | これらのインジケータはすべて、数値をそれぞれの名前に対応するグラフィックで表示します。これらはすべて、通常は3つ、ただしMeterは5つのカラーコード・レンジを持っています。Color Alarmは、テキスト・メッセージ付きの「LED表示」により、各レンジのアラームで色の光を割り当てられて、点灯します。
Label | パネル・ビューにテキスト・ラベルを置くときに使用するオブジェクトです。色とフォントは、パネル・ビューで、オブジェクト・メニューにある[Properties...]を選択すると簡単に調整できます。
Logging Alphanumeric | 繰返し記録された値をテキストまたは数字で表示します。表示できるのは、SCALARまたはARRAY 1Dのデータ型です。
Note Pad | プログラムを説明するためのテキストを入力します。
Picture (PC) | パネル・ビューに画像を置くときに使用するオブジェクトです。サポートされている形式は、*.BMP（ビットマップ）、*.GIF（GIF87aおよび GIF89）、*.JPEG、*.PNG、*.WMF（Windows メタ・ファイル）です。
Polar Plot | 半径と角度のデータに関して個別の情報を利用できるときに、データを極座標上にグラフィック表示します。
Spectrum (Freq) | Magnitude Spectrum、Phase Spectrum、Magnitude vs Phase (Polar)、Magnitude vs Phase (Smith)といった周波数ドメイン表示が含まれるメニューです。入力されるデータは、Waveform、Spectrum、Coordの配列のいずれかでなければなりません。Waveformの入力値は、高速フーリエ変換（FFT）によって自動的に周波数ドメインに変換されます。
Strip Chart | プログラム実行中に連続して生成されるデータの最新履歴をグラフィック表示します。各yの入力値ごとに、x値が指定されたStepサイズだけ増分されます。新しいデータの表示が画面の右より外側へ出てしまうと、自動的に最新のデータを表示するようにスクロールします。
Waveform (Time) | 実数のタイム・ドメインに波形またはスペクトラムをグラフィック表示します。スペクトラムは逆高速フーリエ変換（IFFT）を使って自動的にタイム・ドメインに変換されます。x軸は入力波形のサンプリング単位です。
X vs. Y Plot | XおよびYデータに関して個別のデータ情報を利用できるときに、値をグラフィック表示します。
XY Trace | 等間隔のx値を使ってyデータを生成したときに、マッピングされた配列または値の集合をグラフィック表示します。自動的に生成されるx値は、トレース・データのデータ型により異なります。たとえば、トレースが実数のときには、xは等間隔のReal値になります。一方、トレースが波形のときには、xは時間値になります。


変数について

VEEの変数には、宣言されない変数と宣言された変数の2種類があります。どちらの変数も、波形やレコードなどの複合データ型を含む任意のデータ型を取ることができます。また、スカラと配列を含む任意のデータの種類を取ることができます。

宣言されない変数について

宣言されない変数は簡単に使用できますが、実行速度が遅く、スコープの機能はありません（下の宣言された変数についてを参照）。宣言されない変数には、以下のものがあります。

グローバル変数。これはプログラムの任意の場所で使用できます。これらは、Set Variableオブジェクトで作成されます。[Delete Variables at PreRun]プロパティが設定されている場合、これらはプログラムの実行前に削除されます。グローバル変数は、Get Variableオブジェクトでアクセスしたり、式のなかで使用したりする前に、作成しておく必要があります。そうしないと、プログラムでエラーが発生します。

宣言されないグローバル変数は、値のデータ型や種類が前もってわからない場合や、値の型や種類が変化する場合に便利です。スコープのある変数（ローカル変数）が必要な場合は、宣言された変数を使用します（「宣言された変数について」を参照）。

一時変数。これは Formula オブジェクトでのみ用いられます。一時変数（tmpなど）は、Formulaオブジェクトに出力端子を追加することによって作成できます。例えば、Formulaオブジェクトの端子aとbの入力値を入れ替えるには、一時変数tmpを使用します。式は、tmp=a, a=b, b=tmpのようになります。一時変数の詳細については、Assignmentを参照してください。

端子名。これはオブジェクト内部で変数として用いられます（トランザクションやFormulaオブジェクトなど）。

宣言された変数について

宣言された変数は、使用される前に定義されます。宣言された変数にはスコープの機能があり、データの型と種類が実行前にわかっているため、VEEの動作が高速になります。ただし、宣言された変数に宣言で指定されたのと異なるデータ型や種類を設定しようとした場合、プログラムでエラーが発生します。

変数を宣言するには、 [Data] DE; [Variable] DE; [Declare Variable] オブジェクトを使用します。宣言をコンテキスト内に置いた場合、変数は他のすべてのオブジェクトが実行される前に宣言されます。宣言された変数は、Set VariableまたはFormulaオブジェクトで設定しない限り、値を持ちません。

宣言された変数のスコープは、Declare Variableオブジェクトで指定する必要があります。スコープには次のものがあります。

Global - 変数はプログラムの任意の場所で使用できます。

Local to Context - 変数は1つのUserObjectまたはUserFunctionまたはメインの中でのみ使用できます。この変数は、Declare Variableオブジェクトが存在するコンテキストと、そのコンテキストの中にネストされたUserObjectの中でのみ使用できます。そのコンテキストから呼び出されるUserFunctionの中では使用できません。

Local to Library - 変数は、Declare Variableオブジェクトが使用されているUserFunctionのライブラリの中でのみ使用できます。Declare VariableはUserFunctionの1つの中になければなりません。

同じ名前とスコープを持つ複数の変数を定義することはできません。このような場合、エラーが発生します。

変数の名前について

変数には任意の有効な変数名が使用できます。最初の文字は英文字です。それ以降の文字は、英文字、数字、下線文字のいずれかです。変数名の大文字小文字は区別されません。スペースや特殊文字は使用できません。

変数の値を読み取るには、変数を宣言または設定したときに指定した名前を使用する必要があります。

[Default Preferences]の[Execution Mode]がVEE 5モード以上に設定されている場合、一部の名前は一意でなければなりません。[Execution Mode]がVEE 4またはVEE 3に設定されている場合、他の変数と同じ名前の変数を作成すると、優先順位の問題が発生します。優先順位は次のとおりです（高いものから低いものへ）。

1 入力端子名（Formulaオブジェクトやトランザクション・オブジェクトなど）

2 一時変数（Formulaオブジェクトなど）

3 宣言されたLocal to Context変数

4 宣言されたLocal to Library変数

5 宣言されたグローバル変数

6 宣言されないグローバル変数

同じ名前を持つ2つの変数が1つのオブジェクトの中に存在する場合、衝突が発生します。この場合、最も優先順位が高い変数が用いられます。

関連項目

実行モード、変数を作成するには、変数を使用するには、変数値へのアクセス、初期値の設定、ライブラリでの変数の使用


Agilent VEE関数の定義方法

ユーザ定義関数の概要

VEEには、3種類のユーザ定義関数があります。それぞれの関数の概要は次のとおりです。

1 UserFunction

UserFunctionを作成するには、[Device] [image] [UserFunction]を選択するか、いくつかのオブジェクトを選択しておいて[Edit] [image] [Create UserFunction]をクリックします。

プログラム内のさまざまな場所からUserFunctionを呼び出すには、Call myFunction（[Device] [image] [Call]）オブジェクトを使用するか、オブジェクト内の式（Formulaなど）を使用します。メイン・プログラム内のCallオブジェクトをUserFunctionから作成することもできます。このためには、UserFunction のオブジェクト・メニューで[Generate] [image] [Call]などを選択します。

UserFunctionを編集するには、[Edit]  [image] [Edit UserFunction...]をクリックし、表示されるリスト・ボックスから目的のUserFunctionを選択します。

UserFunctionをあるプログラムから別のプログラムに転送するには、プログラム開発中にUserFunctionをマージするか、実行時にインポート（[Device] [image] [Import Library]）します。

2 コンパイル済み関数

コンパイル済み関数を作成するには、コンパイル言語を使ってVEEの外部で作業します。次に、その関数をDLLなどのライブラリに保存します。

コンパイル済み関数をプログラムにリンクするには、Import Libraryオブジェクトを使用します。 このオブジェクトは、実行時にライブラリをVEEにリンクします（詳細については、「Agilent VEEプログラムの最適化」を参照してください）。

コンパイル済み関数を呼び出すには、Call myFunction オブジェクトを使用するか、VEEオブジェクト内で式を作成します。

3 リモート関数

UserFunctionに似ていますが、ネットワークに接続されたリモート・ホスト・コンピュータで動作する点が異なります。

関連項目

大規模プログラムで関数を検索する方法


UserFunctionsについて

UserFunction は、ユーザ定義関数の作成を目的として設計されています。UserFunctionを作成するには、[Device]メニューから選択するか、既存のオブジェクト群または既存のUserObjectをUserFunctionに変換します。

UserFunctionを呼び出すには、プログラムでCallオブジェクト（[Device] DE; [Call]）または以下に示すその他のオブジェクトを使用します。UserFunctionは、ライブラリに保存して、Import Libraryオブジェクトを使ってプログラムにインポートできます。

UserFunctionのUserObjectに対する利点は、1つのUserFunctionをプログラムの中で複数回呼び出せることです。このため、編集や保守が必要なのは、UserObjectの複数のインスタンスでなく、1つのUserFunctionだけになります。

VEE 4以上の実行モードで実行した場合、UserFunctionがタイムスライス実行されるのは、Call、Formula、If/Then/Else、Sequencerの各オブジェクト（Functionフィールドからのみ）から呼び出されたときです。

To File、To String、または同様のオブジェクトから呼び出された場合、あるいはFormulaオブジェクトの式がコントロール・ピンから供給された場合には、UserFunctionはタイムスライス実行されません。

UserObjectとUserFunctionの違い

VEEがUserObjectとUserFunctionを提供する理由は、2つは異なる特性を持っており、異なる目的で使用できるためです。UserObjectとUserFunctionの違いは次のとおりです。

UserObject（[Device] [image] [UserObject]）は、ユーザが定義するオブジェクトで、VEEの他のオブジェクトと同様に使用できます。UserObjectは、サブプログラムと同じようにプログラミングしますが、画面にグラフィカルに表示されたままとなります。プログラム内の別の場所で使用する必要がある場合は、そのクローンを作成し、すべてのコピーを保守する必要があります。UserObjectのクローンをいくつも作成すると、プログラムが大きくなり、プログラムのロードに時間がかかるようになります。ある機能を1つのUserObjectに追加した場合、すべてのUserObjectを同じにしておきたければ、ほかのすべてのオブジェクトにも同じ機能を追加する必要があります。

UserFunction（[Device] [image] [UserFunction]）の場合、サブルーチンのコピーが1つメモリ上に存在するだけです。表示したい場合は、ワークスペースの独自のウィンドウにグラフィカルに表示されます。表示する必要がない場合は、単に記憶されており、Callオブジェクトまたは他の式フィールドから呼び出されます。UserFunctionに加えた変更は、プログラム中でそのUserFunction.を呼び出すすべてのインスタンスに継承されます。コードの再使用性を高めるため、UserFunctionのライブラリを作成することもできます。

関連項目

式からUserFunctionを呼び出す方法, UserObjectとUserFunctionの間の変換, UserFunctionライブラリの作成, コンパイル済み関数のインポートと呼び出し, 関数のライブラリの使用法, UserFunctionのインポートと呼び出し


コンパイル済み関数の概要

VEEプログラム内で、DLL（ダイナミック・リンク・ライブラリ）などのコンパイル済み関数を使用できます。それには、コンパイル済み関数を入手するか、次の手順にしたがって作成する必要があります。

1 C、C++、Fortran、またはPascalで関数を作成し、コンパイルします。

2 関数の定義ファイルを作成します。

3 コンパイル済み関数の共有ライブラリを作成します。

コンパイル済み関数を使用する利点

VEEプログラムでコンパイル済み関数を使用することには、次の利点があります。

実行速度の向上

他の言語で書かれた既存のテスト・プログラムが利用可能

他の言語で開発したデータ・フィルタをVEEプログラムに統合可能

独自ルーチンの保護

注記

コンパイル済み関数を追加すると、開発プロセスが複雑になります。したがって、コンパイル済み関数を使用するのは、VEEのUserFunction、Execute Programによるオペレーティング システムでのプログラム実行、他のプログラムのActiveXオートメーション呼び出しのどの方法を使っても、必要な機能やパフォーマンスを得ることができない場合に限ってください。

コンパイル済み関数の使用における設計上の留意点

VEEプログラムでコンパイル済み関数を使用する場合は、次の情報を考慮に入れてください。

演算ルーチン、計測器I/Oなど、オペレーティング・システムで使用できる任意の機能を使用できます。ただし、リンク先のプログラム内からVEEの内部機能にアクセスすることはできません。

VEEは、外部ルーチン内のエラーを捕捉できないため、コンパイル済み関数内にエラー検出機能を用意する必要があります。

外部ルーチン内で割り当てたメモリは、すべて解放する必要があります。

外部ルーチンにデータを渡す場合は、Callオブジェクトの入力端子をそのルーチンに必要なデータの型と種類に設定する必要があります。

システムI/Oのリソースはロックされる可能性があるため、外部ルーチンは、このような状態に対応できる必要があります。

外部ルーチンが配列を受け取る場合は、検査するデータ型に対して有効なポインタを持つ必要があります。また、配列のサイズをチェックする必要があります。ルーチンで配列のサイズを変更した場合は、新しいサイズをVEEプログラムに戻す必要があります。

コンパイル済み関数では、最後のステートメントとして、exit()ではなく、return()ステートメントを使用する必要があります。コンパイル済み関数はVEEにリンクされるため、コンパイル済み関数が終了すると、VEEも終了します。

配列の範囲を超えて書き込んだ場合の結果は、使用している言語によって異なります。Pascalでは、範囲検査が行われるため、実行時エラーとなり、VEEは停止します。Cなどの言語では、範囲検査が行われないため、結果は予測できません。 断続的にデータが損傷したり、VEEがクラッシュする可能性があります。

コンパイル済み関数を使用する際のガイドライン

VEEプログラムでコンパイル済み関数を使用する場合は、次のガイドラインに従ってください。

コンパイル済み関数の呼び出しと設定は、UserFunctionを呼び出す場合とまったく同じです。目的の関数を選択する場合は、Callのオブジェクト・メニューで[Select Function]を使用するか、関数の名前を入力します。どちらの場合も、VEEがその関数を認識すると、Call Functionオブジェクトの入力端子と出力端子が自動的に設定されます。必要な情報は定義ファイルから提供されます（ライブラリがインポート済みであれば、VEEは関数を認識します）。

オブジェクト・メニューの[Configure Pinout]を選択して、Callの入力端子と出力端子を再設定します。どちらの方法の場合も、VEEは、関数に必要な入力端子と、関数の戻り値用のRet Value出力端子を使用して、Callオブジェクトを設定します。さらに、参照によって渡される入力のそれぞれに対応する出力端子が設定されます。

Formulaオブジェクト内の式、または実行時に評価されるほかの式から、コンパイル済み関数を名前で呼び出します。たとえば、To Fileトランザクションの式の中にコンパイル済み関数の名前を入れると、その関数を呼び出すことができます。

注記

式の中からは、コンパイル済み関数の戻り値（CallオブジェクトのRet Value）だけを取得できます。関数から返されるほかのパラメータを取得する場合は、Callオブジェクトを使用する必要があります。

コンパイル済み関数のライブラリを削除するには、[Device]メニューのDelete Libraryオブジェクトを使用します。Import Library、Call、Delete Libraryの各オブジェクトを使用して、コンパイル済み関数をインポートし、プログラムがコンパイル済み関数の呼び出しを完了したときにそれらを削除することにより、プログラムのロード時間を短縮し、メモリの浪費を防ぐことができます。

関連項目

定義ファイル、コンパイル済み関数の使用法、コンパイル済み関数のインポートと呼び出し、C関数の作成、ダイナミック・リンク・ライブラリの作成、ダイナミック・リンク・ライブラリの使用法


定義ファイル

CallオブジェクトやFormula式で関数に渡すデータの型は、定義ファイルの内容に基づいて判定されます。定義ファイルは、関数が返すデータの型、関数名、関数が受け入れる引数を定義します。データは次の形式を取ります。

<return type> <function name> (<type> <paramname>, <type> <paramname>, ...) ;

ここで:

 <return type>は、byte、word、int、short、long、int64、float、double、char*、VEE_BOOL、voidのいずれかです。

 <function name>は、先頭が英文字、それ以降が英数字の文字列で、長さは512文字までです。

 <type>は、byte、word、int、short、long、int64、float、double、VEE_BOOL、byte*、word*、int*、char*、short*、long*、int64*、float*、double*、char**、VEE_BOOL*、voidのいずれかです。

 <paramname>は、先頭が英文字、それ以降が英数字の文字列で、長さは512文字までです。パラメータ名はオプションですが、指定することをお勧めします。パラメータが参照渡しの場合、パラメータ名の前に間接参照記号（*）が必要です。

有効な戻り値型は次のとおりです。

文字列（char*、VEEのTextデータ型に対応）

整数（byte、word、short、int、long、int64、VEE_BOOL、VEEのunit8、UInt16、Int16、Int32、Int64およびBooleanデータ型に対応）

単精度および倍精度浮動小数点実数（floatおよびdouble、VEEのReal32およびReal64データ型に対応）

パラメータ名の前に*を付けて「参照渡し」を指定した場合、VEEは情報のアドレスを関数に渡します。パラメータに*を付けずに「値渡し」を指定した場合、VEEは値（値のアドレスではなく）をコピーして関数に渡します。外部ルーチンでデータを変更してVEEに渡したい場合には、データを参照渡しにします。配列はすべて参照渡しにする必要があります。

コンパイル済み関数に参照によって渡されたパラメータは、Callオブジェクトの出力端子として使用できます。関数の戻り値に対する出力端子Ret Valueと、参照渡しの入力パラメータのそれぞれに対する出力端子が用意されます。

VEEはスタック上に144バイトをプッシュします。これにより、最大36個の参照渡しのパラメータをコンパイル済み関数に渡すことができます。値渡しの場合、long整数パラメータは最大36個、double浮動小数点パラメータは最大18個渡すことができます。

VEEでは、定義ファイルのコメントとして、「囲み型」と「行末まで型」の両方が使用できます。

「囲み型」のコメントは、/*コメント*/という区切り記号を使用します。ここで、/*と*/はそれぞれコメントの開始と終了を示します。

「行末まで型」のコメントは、//という区切り文字でコメントの開始を示し、コメントの末尾は現在の行の末尾と一致します。

関連項目

コンパイル済み関数の概要, コンパイル済み関数の使用法, コンパイル済み関数のインポートと呼び出し, C関数の作成, ダイナミック・リンク・ライブラリの作成, ダイナミック・リンク・ライブラリの使用法


Execute Programオブジェクトとコンパイル済み関数の比較

コンパイル言語のプログラムをVEEと統合するために、 Execute Program オブジェクトとコンパイル済み関数のどちらを使用するか判断するときには、以下の情報を考慮してください。

Execute Programオブジェクト

Execute Programオブジェクトには次の特徴があります。

  • 使いやすい

  • 起動時間がより長い

  • アドレス空間が保護されている

  • 同期実行と非同期実行を選択できる

  • 非同期イベントのサービス

  • より安全（呼び出されたプログラムがクラッシュした場合、エラー・メッセージが表示される）

  • 連続したデータ収集に最適

コンパイル済み関数

Import LibraryオブジェクトとCallオブジェクトを使用するコンパイル済み関数には、次の特徴があります。

  • 起動時間が短い

  • 通信にはスタック上のパラメータおよびVEEとの共有メモリを使用

同期実行

  • シグナルや例外はブロックも捕捉もされない（GPFメッセージなど）

  • テキスト言語のコンパイラが必要

  • 使い方がより複雑。使用の際のリスクが高い（配列の境界超過のエラーやメモリの上書きが起きると、VEEがクラッシュする）。

関連項目

コンパイル済み関数の概要


リモート関数

リモート関数とは、リモート・ホスト・コンピュータ上の別のVEEプロセスで動作するUserFunctionです。リモート関数はUserFunctionの特殊な例です。

使用法

リモート関数は、ローカルVEEプロセスからLAN経由で呼び出されます。UserFunctionやコンパイル済み関数の場合と同様に、Import Libraryオブジェクトを使ってリモート関数のライブラリをインポートします。インポートされたリモート関数は、Callオブジェクトの式に関数名を入れることで呼び出されます。プログラムでリモート関数を呼び出す方法は、UserFunctionの場合と同様です。ただし、いくつかの違いとネットワークに関する技術的な注意事項があります。ここではそれについて説明します。

リモート関数のライブラリは、通常のUserFunctionのライブラリと同じように作成しますが、実行するリモート・ホスト・コンピュータ上に保存します。リモート・ホスト・コンピュータにもVEE ProまたはVEE Pro RunTimeがインストールされている必要があります。リモート関数のライブラリは、ローカルVEEプロセスではなく、リモート・ホスト上で動作する「サービス」と呼ばれる特殊なVEE呼び出しにインポートされます。ローカルVEEプロセスは「クライアント」と呼ばれます。クライアントVEEプロセスは、Import Libraryオブジェクトを使ってリモート関数ライブラリをインポートします。Library TypeフィールドでRemote Functionを選択すると、下の図に示すような新しいフィールドが表示されます。

Library TypeおよびLibrary Nameフィールドは、UserFunctionおよびコンパイル済み関数の場合と同じ働きをします。その他のフィールドは次のとおりです。

Remote Host Name - 「サービス」VEEプロセスが実行されるホスト（「リモート・ホスト」）の名前。この名前は、ホストの共通名またはシンボル名（myhostなど）か、ホストのIPアドレス（14.13.29.99など）です。

Remote File Name - リモート関数ライブラリ・ファイルの名前。Remote File NameはUserFunctionライブラリのFile Nameと似た働きをします。ただし、ファイルへの絶対パスを指定する必要があります。このため、パスとファイル名は長くなる場合があります。すべてのユーザがリモート関数ライブラリ・ファイルを次のような共通の場所に置くようにするとよいでしょう。C:\USERS\REMFUNC

Remote Timeout - VEEサービスとの通信のタイムアウト時間（秒単位）。VEEサービスがこの時間内にリモート関数からの予期される結果を返さなかった場合、エラーが発生します。

Remote Debug - このチェック・ボックスが選択されている場合、ライブラリ中のすべてのUserFunctionがデバッグ・モードで動作します（ブレークポイントの設定やライン・プローブの実行などのデバッグ機能をこれらの関数に対して使用できます）。この設定は、UserFunctionにパネル・ビューがあってもなくても動作します。

Import Libraryオブジェクトが（オブジェクト・メニューからLoad Libを選択するか、通常のプログラム実行によって）実行されると、Host Nameフィールドで指定されたリモート・ホスト上でVEEサーバ・プロセスが開始されます。クライアント・プロセスとサーバ・プロセスはネットワーク経由で接続され、通信できます。

クライアントVEEのCallオブジェクトがリモート関数を呼び出すと、引数（Callオブジェクトのデータ入力ピン）がネットワーク経由でリモート・サービスに送信され、リモート関数が実行され、結果がCallオブジェクトに送信されて、そのデータ出力ピンから出力されます。

プログラムがDelete Libraryオブジェクトを使ってリモート関数のライブラリを削除した場合、そのライブラリに関連するリモート関数は削除されます。VEEサーバ・プロセスに複数のライブラリをロードし、それぞれを必要に応じて削除することができます。この場合、サービス接続は切断されません。VEEクライアント・プロセスが実行されている間はVEEサーバは存在し続けます。

前提条件

リモート関数を使用するには、リモート・ホスト・システムでVEEサービス・マネージャが動作している必要があります。これを手動で起動するには次のようにします。

  1. VEEのインストール・ディレクトリに移動します。

  2. veesm.exeを実行します。

  3. コンソール・ウィンドウが表示されたら、邪魔にならないように最小化しておくことができます。

  4. VEEサービス・マネージャ・プロセスを停止するには、コンソール・ウィンドウを開いてCTRL+Cを押します。

注記

VEEサービス・プロセスは、Import Libraryで指定されたリモート関数ライブラリに含まれるリモート関数だけを実行します。

リモート関数にはビューが関連付けられています。リモート関数を呼び出したときに、UserFunctionがパネル・ビューを表示した場合、リモート・ホストにVEEウィンドウを表示させることができます。

グローバル変数（宣言済みおよび未宣言）はプロセス間で共有されません。

リモート関数は呼び出されたときにタイム・スライス動作しません。

オブジェクト型のパラメータをリモート関数との間で受け渡すことはできません（ActiveXオートメーション・オブジェクトやActiveXコントロールへのポインタを含む）。

サービスVEEプロセスが使用する実行モードは、インポートされたファイルに保存されているモードではなく、ユーザのvee.rcファイルで設定されているモードです。

サービスVEEプロセスにインポートされたファイルに埋め込まれている.veeioファイル設定は無視されます。グローバルI/O設定ファイルだけが使用されます。

関連項目

サービス・マネージャ、UserFunction


Sequencer

一連のシーケンス・トランザクションを実行するオブジェクト。それぞれのシーケンス・トランザクションは、UserFunction、コンパイル済み関数、リモート関数を呼び出すことができます。

使用法

Sequencerは、一連のシーケンス・トランザクションを指定することにより、UserFunctions、コンパイル済み関数、リモート関数、その他任意のVEE関数の呼び出し順序を制御するために使用します。通常、Sequencerは一連のテストを実行するために使用されます。

Sequencerにはシーケンス・トランザクションのリストが含まれます。これらのトランザクションはそれぞれ1つのVEEの式を評価します。この式には、UserFunction、コンパイル済み関数、リモート関数の呼び出しを含めることができます。トランザクションは、VEEの式を評価した後、その式から返された値をテスト仕様と比較します。テストが合格か不合格かに応じて、トランザクションは異なる式を評価し、次に実行するトランザクションを選択します。トランザクションの結果は、Log出力ピンまたは、[Properties]ウィンドウのLoggingカテゴリに指定されたUserFunction、コンパイル済み関数、リモート関数に記録できます。

SequencerのReturn出力ピンは、シーケンス終了時に結果を返すために使用できます。Return出力ピンの値はデフォルトでは0ですが、Next OperationがThen Returnのトランザクションは、Return出力ピンを指定された値に設定します。

シーケンサのLog出力ピンは、ロギングが有効になっている各トランザクションに対して1つずつのロギング・レコードを持つレコードを保持します。詳細については、下記の「プロパティ」の「[Logging]タブ」を参照してください。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。

ダイアログ情報

個々のトランザクションのパラメータは変更できます。トランザクションをダブルクリックすると、そのトランザクションに対する[Sequence Transaction]ダイアログ・ボックスが表示されます。使用可能なパラメータは次のとおりです。

Sequence Mode:

TEST - 指定された式を実行し、結果を仕様に対してテストします（式がUserFunction、コンパイル済み関数、リモート関数を呼び出す場合、対応するUserObjectのいちばん上の出力ピンの結果が用いられます）。

EXEC - 指定された式を実行しますが、仕様に対する合否テストは実行しません。EXEC トランザクションに対してはロギングは実行されません。

Transaction Name - このトランザクションの固有の名前。既存のUserFunctionと同じ名前は使用できません。有効なVEE変数名でなければなりません（先頭は英文字、それ以降は英文字と数字）。この名前は、このトランザクションまたは別のトランザクションの式から参照でき、このトランザクションの最新の実行によるロギング・レコードを指します。

Enable Condition Type:

ENABLED - シーケンサはこのトランザクションを無条件で実行します。

DISABLED - シーケンサはこのトランザクションを実行しません。

ENABLED IF:- シーケンサは、指定された式が0以外の場合のみこのトランザクションを実行します。

DISABLED IF:- シーケンサは、指定された式が0以外の場合、このトランザクションを実行しません。

SPEC NOMINAL:- テスト結果の公称値（期待値）。この値は、RANGEまたはLIMIT仕様テストの計算には用いられませんが、ロギング・レコードには含まれることがあります。

Spec Type - すべての仕様テストは、Comparatorオブジェクトと同じ方法で実行されます。すなわち、テスト結果には波形が使用でき、テスト・リミットには別の波形またはCoord型の配列が使用できます。仕様テストは、各データ・ポイントが仕様の範囲内かどうかを判定するために必要な補間を自動的に実行します。また、すべてのテストには、最低6桁の有効数字で等しいまたは等しくないと判定する「ほぼ等しい」アルゴリズムが用いられます。詳細についてはComparatorオブジェクトの説明を参照してください。次のオプションがあります。

RANGE:- 下と上の制限値、および使用する比較演算子を指定します。

LIMIT:- 1つの制限値、および使用する比較演算子を指定します。上限／下限値、または正確な一致のテストに使用できます。制限値はロギング・レコードのHighLimitフィールドに記録されます。

TOLERANCE:- Nominalの値からの正または負の許容値を指定します。許容値0も指定できます。ロギング・レコードのHighLimitおよびLowLimitフィールドに、Nominal値に許容値を適用した仕様範囲が記録されます。

%TOLERANCE:- Nominalの値からの正または負のパーセンテージ許容値を指定します。許容値0も指定できます。ロギング・レコードの[HighLimit]および[LowLimit]フィールドに、Nominal値に許容値を適用した仕様範囲が記録されます。

FUNCTION - テストを指定するVEEの式。この式は、単にUserFunction、コンパイル済み関数、リモート関数の呼び出しでもかまいません。または、入力ピン名、UserFunctions、コンパイル済み関数、リモート関数、変数、このSequencer中の前のトランザクションのテスト・レコードを含む複雑な式でもかまいません。テスト・トランザクションの場合、このフィールドからの1つの結果が仕様に対してテストされます。UserFunctionまたはリモート関数呼び出しの結果は、対応するUserObjectのいちばん上の出力ピンの値であり、出力ピンが存在しない場合はヌルです。

Logging Mode:

LOGGING ENABLED - このトランザクションに対応するフィールドをLogレコード出力ピン（存在する場合）に追加します。Log Each Transaction To:プロシージャが[Properties]ウィンドウの[Logging]タブに指定されている場合、このトランザクションが終了するとただちにそのロギング・プロシージャが呼び出されます。

LOGGING DISABLED - このトランザクションに対するログ・レコードは作成されず、Log Each Transaction To:プロシージャは呼び出されません（オプションと詳細については、下記の「プロパティ」の「[Logging]タブ」を参照してください）。

Pass Operation:

IF PASS - 仕様テストが合格した場合（テスト値が制限値の範囲内）、指定された"then"操作が実行されます。

IF PASS CALL:- 仕様テストが合格した場合（テスト値が制限値の範囲内）、指定されたVEE式（UserFunction、コンパイル済み関数、リモート関数の呼び出しを含むことができる）が評価され、指定された"then"操作が実行されます（IF PASS CALLからの戻り値は無視されます）。

Fail Operation:

IF FAIL - 仕様テストが不合格だった場合（テスト値が制限値の範囲外）、指定された"then"操作が実行されます。

IF FAIL CALL:- 仕様テストが不合格だった場合（テスト値が制限値の範囲外）、指定されたVEE式（UserFunction、コンパイル済み関数、リモート関数の呼び出しを含むことができる）が評価され、指定された"then"操作が実行されます。

Next Operation:（EXECトランザクション、またはTESTトランザクションの"Pass"または"Fail"動作に該当）

THEN CONTINUE - Sequencerリスト中の次のトランザクションに進みます（これはデフォルトの動作です）。

THEN RETURN - このSequencerのトランザクション実行を終了し、指定された式（関数を呼び出すことができる）の値をSequencerのReturn出力ピンに設定します。その後、Sequencerオブジェクトは出力ピンをアクティブにし、プログラム内の実行フローは通常通りに継続します。

THEN GOTO - このSequencer内の指定されたトランザクション名を持つトランザクションに移動します。

THEN REPEAT - このトランザクションを再実行し、最大で指定された回数まで繰り返します。最大回数だけ繰り返した後もまだPASS/FAIL条件が存在する場合は、次のトランザクションに進みます。

THEN ERROR - 所定のエラー番号の付いたエラー条件を生成することにより、Sequencerの実行を停止します。エラーは、このSequencerまたはそれを含むUserObjectのError出力ピンを使って捕捉できます。

THEN EVALUATE - 指定された式を評価します。この式は、UserFunction、コンパイル済み関数、リモート関数を呼び出すことができます。その後、文字列結果を使って次の動作を決定します。式からの有効な文字列結果は次のとおりです。

CONTINUE
RETURN <expr>
GOTO <name>
REPEAT <expr>
ERROR <expr>

ここで、<expr>はVEEの任意の有効な式、<name>はこのSequencerのトランザクションの名前です。この動作が役立つのは、UserFunctionで、場合によってはユーザに問い合わせることにより、Sequencerが次に何をするかを決定する必要がある場合です。

DESCRIPTION - このトランザクションのコメント・フィールド。このフィールドに入力されたテキストは、Sequencerのオープン・ビューでトランザクションの省略テキストの末尾に表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

LogRecordField:各トランザクションのロギング・レコードに作成されるフィールドを選択します（Log出力ピンは、レコードのレコードを保持します。ロギングが有効になっている各トランザクションに対して1つずつのロギング・レコードが含まれます。各トランザクションのロギング・レコードには、以下に示すフィールドのうち選択されたものが存在します）。名前（スペースを除く）が、ロギング・レコードのフィールド名になります。以下の選択肢があります。

 LogName - トランザクションを識別する固有の文字列（プロシージャ名ではない）。

 LogResult - テスト・プロシージャの評価によって返された値。

 LogNominal - 公称テスト値。

 LogHighLimit - 仕様テストで用いられる上限値。Toleranceおよび%Tolerance仕様の場合、オフセットでなく実際の制限値が用いられます。

 LogLowLimit - 仕様テストで用いられる下限値。Toleranceおよび%Tolerance仕様の場合、オフセットでなく実際の制限値が用いられます。

 LogPassed - 合格の場合は値1、不合格の場合は値0を持つInt32。

 LogTimeStamp – テストの日付と終了時刻を記録した実数値。

 LogDescription - トランザクションのコメント・フィールドに記入された説明を含むText値。

LoggingControl Category:

LogToOutputOnly - Logging Enabledが設定された各トランザクションに対して、Log出力ピンのレコード内に1つずつのロギング・レコードが存在します。Sequencerの1回の実行でトランザクションが複数回実行された場合、Log出力ピンのレコードにはそのトランザクションに対する最後のロギング・レコードだけが存在します。Sequencerの実行中にトランザクションが実行されなかった場合、そのトランザクションに対するロギング・レコードは、以下の例外を除くすべてのフィールドの値がReal64の0になります。例外は、NameおよびDescriptionフィールドがヌル文字列、PassフィールドがInt32です。

LogToFunction - Logging Enabledが設定されたトランザクションの後で呼び出されるUserFunction、コンパイル済み関数、リモート関数の式を指定します。現在のトランザクションのロギング・レコードをUserFunction、コンパイル済み関数、リモート関数に渡すには、予約された変数名"ThisTest"を使用します。Log出力ピンは、"LogToOutputOnly"モードの場合と同様に動作します。

注記

ExecTransデータ入力ピンを追加できます。ExecTransデータ入力ピンは、データ入力のTextスカラまたは1D配列で指定された名前を持つトランザクションだけを、指定された順序で実行します。強調表示バーは、現在実行中のトランザクションに移動します。If PassまたはIf Fail式は通常通りに評価されますが、Thenフィールドの結果は、次に実行されるトランザクションには影響しません。

すべてのフィールド式（ENABLED IF、FUNCTION、仕様リミットなど）には、入力ピン名、UserFunction呼び出し、コンパイル済み関数呼び出し、リモート関数呼び出し、VEE演算関数、すでに実行されたトランザクションのレコード名を含めることができます。LOGGING ENABLEDが設定されたテスト・トランザクションでは、予約された変数thisTestが、すでに作成されたロギング・フィールドのレコードを指します。例えば、ロギングが有効になっているトランザクションtest4のテスト値を使用するには、式でtest4.resultという名前を使用します。また、式で現在のテスト名を使用するには、thisTest.nameを使用します。また、Enabled If式をrandom()<0.25とすると、テストを25%の確率で実行することができます。

なお、"thisTest"変数は"ENABLED IF"式では使用できません。トランザクションが有効かどうかが判定されるまでこの値は正しく確定しないからです。 このため、"ENABLED IF"式で"thisTest"を使用すると、thisTestがまだ作成されていないというエラーになるか、前のトランザクションによる古いデータが得られます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

Device [image] Sequencer

関連項目

Build Record、Call、Comparator、Formula、Raise Error、UnBuild Record、UserObject、オブジェクト・メニュー

トランザクションを編集するには


Sequencerオブジェクト

Sequencerオブジェクトは[Device]メニューにあります。Sequencerオブジェクトを効果的に使用するには、いくつかの項目を理解しておく必要があります。以下にその項目を示します。

計測器I/O操作（[Help] [image] [Contents and Index] [image] [以下の項目についての説明] [image] [計測器制御の基本].）

トランザクション（[Help] [image] [Contents and Index] [image] [以下の項目についての説明] [image] [I/Oトランザクション].）

UserObject（[Help] [image] [Contents and Index] [image] [以下の項目についての説明] [image] [伝達] [image] [UserObjectでの伝達]）

レコードとデータセット（[Help] [image] [Contents and Index] [image] [使用法] [image] [データの操作] [image] [レコードの操作]、[データセットの操作]）

UserFunction（[Help] [image] [Contents and Index] [image] [使用法] [image] [カスタム・オブジェクトと関数の作成] [image] [UserFunctionの作成と使用]）

Sequencerオブジェクトとは

Sequencerオブジェクトは、一連のテストの順序を制御します。このために、テストを実行し、各テストの結果を仕様と比較し、比較によって次の動作を決定します。

Sequencerオブジェクトは、あらかじめ決められた一連のシーケンス・トランザクションを実行します。各トランザクションはVEEの式を評価します。この式には、UserFunction、コンパイル済み関数、リモート関数、その他のVEE関数の呼び出しを含めることができます。トランザクションは、その式から返された値を、既存のテスト仕様と比較します。テストが合格か不合格かに応じて、トランザクションは異なる式を評価し、次に実行するトランザクションを選択します。トランザクションの動作は、[Sequence Transaction]ダイアログ・ボックスで指定します。このダイアログ・ボックスはトランザクションをクリックすると表示されます。

トランザクションは、結果をLog出力ピンまたはUserFunction、コンパイル済み関数、リモート関数に記録できます。結果は、発生とともに読み取ることも、ログ・レコードに収集することも、その両方を行うこともできます。ログ動作は[Sequencer Properties]ダイアログ・ボックスの[Logging]タブで指定されます。

テスト結果の記録

場合によっては、シーケンサのログ・レコードをレコードの配列に収集する際に注意が必要なことがあります。レコードの使用で説明しているように、レコードの配列を作成するには、指定されたフィールドのすべての配列要素が同じ型、種類、サイズでなければなりません。シーケンサのLog出力端子から生成されるレコードのレコードの場合、各フィールドの型、種類、サイズはサブレコードでも一致する必要があります。

例えば、シーケンサの複数回の実行の結果ログを、Collectorで配列を作成するか、結果をデータセットに送ることによって収集するとします。どちらの場合も、そのトランザクションのログ値がシーケンサの各回の実行で型、種類、サイズが異なる場合、エラーが発生します。このエラーは、CollectorまたはTo DataSetオブジェクトで、レコードの配列が作成できないという理由で発生します。

この状況は、トランザクションがシーケンサの毎回の実行で実行されない場合、例えばENABLED IF条件が指定されている場合には容易に起こりえます。トランザクションが実行されない場合、ログ・レコードは生成されますが、NAMEおよびDESCRIPTIONフィールドは空文字列であり、他のすべてのフィールドには値0のRealスカラ値が格納されます。

同じトランザクションがシーケンサのその後の実行で実行され、Realスカラ以外の結果をログに記録した場合、エラーが発生します（このような場合、To DataSetを使わずに、To Fileを使って各ログ・レコードをコンテナ形式でファイルに書き込む方法があります）。

テストで返される配列のサイズが異なる場合、例えば不合格のデータ・ポイントの配列などの場合、エラーが発生することがあります。この場合、適当な値を配列に補って、常に同じサイズの配列を返すようにテストを作成する方法があります。

関連項目

シーケンサ, 例:ビン・ソート, 例:テスト結果の記録, 例:データセットへの記録, 例:シーケンサ・トランザクション


Callable VEE ActiveX Automation Server

VEEでは、MS Visual BasicやCなどの標準言語で書かれた他の市販または独自のテスト・システムの中にVEEオブジェクトを統合することができます。 Callable VEE ActiveX Automation Serverは、VEE UserFunctionおよびMainをカプセル化して、MS ExcelやMS Visual Basicなどのオートメーション・アプリケーションに統合します。Callable VEE ActiveX Automation Serverは、言語に依存しないオートメーション・インタフェースを実現しています。このため、オートメーション・サーバの呼び出しをサポートする任意のアプリケーションまたは言語から使用できます。

注記

VEEでは、ActiveXオートメーションとコントロールを使用して、VEEからほかのアプリケーションを制御できます。MS Visual Basicなどのほかのアプリケーションは、Callable VEE ActiveX Automation Serverを使用して、VEEを制御できます。

Callable VEE ActiveX Automation Serverは、プロパティとメソッドを介してクライアントと通信します。CallableVEE ActiveX Automation Serverの呼び出し元となるVisual BasicやCなどの環境により、呼び出し方法が決まります。Callable VEE ActiveX Automation Serverには、呼び出し元の環境で利用できる充実したオンライン・ヘルプが用意されています。

注記

Callable VEE ActiveX Automation Serverは、バージョン5.0に付属するCallable VEE ActiveX Controlに代わるものです。

Callable VEEについて

アプリケーションを別の言語で作成していても、VEEのUserFunctionおよびMainを使用したい場合があります。リモート関数によってVEEから別のVEEのUserFunctionおよびMainを利用できるように、Callable VEEを使えばCプログラムまたはCルーチンを利用できる任意の言語からUserFunctionおよびMainを呼び出すことができます。

VEEの以前のバージョンでは、他の開発環境からVEEコードを実行する方法として、VEE RPC APIとCallable VEE ActiveXコントロールの2種類が用意されていました。VEE 6では、Callable VEE ActiveXコントロールがCallable VEE Automation Serverに置き換えられ、Visual Basicなどのプログラミング環境からVEEコードを容易に利用できるようになりました。

For more detailed information on Callable VEE, refer to callserv.chm at Agilent VEE install directory.

注記

UserFunctionを使用するには、サーバ・システムでVEEが実行可能でなければなりません。UserFunctionを単独で実行することはできません。UserFunctionは、VEEがロードして実行できるライブラリに組み込まれている必要があります。

関連項目

Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


VEE RPC APIの使用法

VEE RPC APIのサポートに必要な次のツールは、VEEに付属しています。

libvapi.libという名前のCライブラリが、VEEのインストール・ディレクトリのlibサブディレクトリにあります。このライブラリは、作成したCプログラムにリンクされます。

このライブラリは、2つのアプリケーション・プログラム・インタフェース（API）をサポートします。1つのAPI（VEE RPC）は、CプログラムとVEEとの間のリモート・プロシージャ・コール（RPC）を設定し、制御します。このAPIの関数のプロトタイプはveeRPC.hにあり、次の動作を実行します。

  • VEEサーバのロード／アンロード

  • VEEライブラリのロード／アンロード

  • VEEライブラリ中のUserFunctionのリスト作成

  • UserFunctionの呼び出しとデータの受け取り

  • 関連するステータスと管理作業の実行

2番目のAPI（VEE DATA）は、CとVEEのデータ型の変換を実行します。このAPIの関数のプロトタイプはveeData.hにあります。

注記

libvapi.libライブラリは、Borlandコンパイラ使用時にはプログラムにリンクできません。

VEEサービス・マネージャveesm.exeは、他のVEE実行可能ファイルといっしょにVEEのインストール・ディレクトリに置かれています。これは、ターゲットVEEでのUserFunctionの実行と、リモート・クライアントからのVEEのサーバとしての起動を可能にします。

VEE RPC APIの使用法を示すサンプル・プログラムがCallableVEE\RPC_APIディレクトリにあります。名前はcallVEE.cおよびcallVEE.veeです。

VEE RPC APIについて

VEE RPC APIは、Cクライアント・プログラムとVEEサーバとの間の接続の設定、維持、終了を処理します。

VEE RPC APIのルーチンは、以下の3つのハンドルの1つを動作に使用します。

VRPC_SERVICE; // VEEサーバのハンドル

VRPC_LIBRARY; // VEE UserFunctionライブラリのハンドル

VRPC_FUNCTION; // VEE UserFunctionのハンドル

API呼び出しは、以下のサブセクションに示すように分類されています。

関連項目

サーバの開始／停止、ライブラリのロード／アンロード、UserFunctionの選択、UserFunctionの呼び出し、その他の関数、VEE RPC APIのエラー・コード


サーバの開始／停止

最も基本的なAPI関数は、VEEサーバの開始と停止のための関数です。VEEサーバをロードするには、次の関数を使用します。

VRPC_SERVICE vrpcCreateService( char *hostName, char *display, char *geometry, double aTimeoutInSeconds,unsigned long flags );

この関数は、hostNameで指定されるホスト上でVEEサーバを開始します。hostNameは、テキスト形式（mycomputer@lvld.agilent.comなど）でも数値形式（15.11.55.105など）でもかまいません。この関数はサーバ・ハンドルを返します。エラーが発生した場合、NULL（実際には0）が返されます。この場合、次のセクションで説明するように、veeGetErrorNumber()とveeGetErrorString()を使って詳細なエラー情報を取得できます。

display引数は、テキスト形式のネットワーク・アドレス（babylon:0.0）を使用してリモート・ディスプレイを指定します。

geometry引数は、VEEのウィンドウ・サイズと配置を指定します。例えば、800x500+0+0と指定すると、800×500のVEEウィンドウが画面の左下隅に配置されます。

aTimeoutInSeconds引数は、サービスを開始する際の待ち時間（秒）を指定します。この値は、vrpcSetTimeout()で変更しない限り、セッション中のその後のすべての呼び出しで用いられます。

flags引数は通常は用いられません。ただし、これを値VEERPC_CREATE_NEWに設定すると、サーバ上ですでに動作しているVEEがある場合でも、新しいVEEのコピーが起動されます。

VEEサーバを停止するには、次の関数を使用します。

VRPC_SERVICE vrpcDeleteService( VRPC_SERVICE aService );

引数は、サーバを起動したときに入手したサーバ・ハンドルです。成功した場合はNULLポインタが返され、失敗した場合はNULLでないポインタが返されます。

関連項目

ライブラリのロード／アンロード、UserFunctionの選択、UserFunctionの呼び出し、その他の関数、VEE RPC APIのエラー・コード、VEE RPC APIの使用法


ライブラリのロード／アンロード

サーバを開始したら、VEEのリモート・コピーにライブラリをロードする必要があります。これは次の関数で実行します。

VRPC_LIBRARY vrpcLoadLibrary( VRPC_SERVICE aService, char *LibraryPath );

この関数は、サーバ・ハンドルとLibraryPathで指定されるUserFunctionのライブラリのパス名を引数に取り、ライブラリ・ハンドルを返します。失敗した場合、NULLが返されます。

ロードが終わったら、次の関数でライブラリの実行モードを通常またはデバッグに指定できます。

void vrpcSetExecutionMode( VRPC_LIBRARY aLibrary, unsigned long executionMode );

この関数には、ライブラリのハンドルとexecutionModeフラグを指定します。このフラグをVRPC_DEBUG_EXECUTIONに設定すると、ターゲット・システム上でUserFunctionがシングル・ステップ実行され、VRPC_NORMAL_EXECUTION.に設定するとデフォルトのモードに戻ります。

また、次の関数でライブラリをアンロードできます。

VRPC_LIBRARY vrpcUnLoadLibrary( VRPC_LIBRARY aLibrary );

引数はライブラリ・ハンドルです。

関連項目

サーバの開始／停止、UserFunctionの選択、UserFunctionの呼び出し、その他の関数、VEE RPC APIのエラー・コード、VEE RPC APIの使用法


UserFunctionの選択

サーバに接続してライブラリをロードしたら、UserFunctionのハンドルを入手する必要があります。

関数ハンドルは次の関数で入手します。

VRPC_FUNCTION vrpcFindFunction( VRPC_LIBRARY aLibrary, char *aFunctionName );

ライブラリ・ハンドルと、UserFunction名の文字列を引数として渡します。関数ハンドルまたはNULL（エラーの場合）が返されます。

関数に関する情報を取得するには、次の関数を使用します。

struct VRPC_FUNC_INFO* vrpcFunctionInfo( VRPC_FUNCTION aFunction );

データ構造体またはNULL（エラーの場合）が返されます。データ構造体は次の形式を取ります。

typedef struct VRPC_FUNC_INFO

{

char *functionName; // 関数名

long numArguments; // 関数の入力ピン数

enum veeType *argumentTypes; // 引数の型のリスト

veeShape *argumentShapes; // 引数の種類のリスト

long numResults; // 関数の出力ピン数

enum veeType *resultTypes; // 出力の型のリスト

veeShape *resultShapes; // 出力の種類のリスト

};

NULLが返された場合、プロセス空間のメモリが消費されているので、解放するには次の関数を使用します。

struct VRPC_FUNC_INFO* vrpcFreeFunctionInfo(struct VRPC_FUNC_INFO *funcinfo);

ライブラリに入っている関数を知るには、次の関数を使用します。

char** vrpcGetFunctionNames( VRPC_LIBRARY aLibrary, long *numberOfFunctions );

これはライブラリ・ハンドルを引数に取ります。関数名のヌル終了文字列の配列が戻り値として返され、ライブラリ中の関数の数がnumberOfFunctions引数に返されます。エラーが発生した場合、NULLポインタが返されます。文字列配列は呼び出し側のプロセス空間に存在します。

関連項目

サーバの開始／停止、ライブラリのロード／アンロード、UserFunctionの呼び出し、その他の関数、VEE RPC APIのエラー・コード、VEE RPC APIの使用法


UserFunctionの呼び出し

この段階で、UserFunctionを呼び出すことができます。

呼び出しと値の受け取りは次の1つの関数で行います。

VDC* vrpcCallAndReceive( VRPC_FUNCTION aFunction, VDC *arguments );

この関数は、実行をブロックし、関数が終了するかタイムアウトが発生するまで待ちます。関数ハンドルとVEE Data Container（VDC）の入力配列を指定します。VDCの処理はVEE DATA APIの役割です。VEE DATA APIについてを参照してください。

UserFunctionを非ブロッキング・モードで呼び出す場合は、次の関数を使用します。

long vrpcCall( VRPC_FUNCTION aFunction, VDC *arguments );

この関数は実行をブロックしません。この関数は、成功／失敗に関わらずただちに戻ります。成功した場合は0、失敗した場合はエラー・コードが返されます。

ほとんどのUserFunctionはいつかは戻るので、戻り値を取得したい場合は次の関数を使用します。

VDC* vrpcReceive( VRPC_FUNCTION aFunction, unsigned long waitMode );

関数ハンドルとwaitModeフラグを指定します。このフラグは次の3つの値のどれかを取ります。

VRPC_NO_WAITING 呼び出しは結果の有無に関わらずただちに戻ります。

VRPC_WAIT_SLEEPING タイムアウトまでデータを待ちます（サーバはスリープ）。

VRPC_WAIT_SPINNING タイムアウトまでデータを待ちます（サーバはビジー）。

関数が失敗した場合、NULLが返されます。

関連項目

サーバの開始／停止、ライブラリのロード／アンロード、UserFunctionの選択、その他の関数、VEE RPC APIのエラー・コード、VEE RPC APIの使用法


その他の関数

このセクションでは、VEE RPC APIのその他のユーティリティ関数を記述します。

この関数は、タイムアウトを変更します。サーバ・ハンドルとタイムアウト（秒）を指定します。成功した場合は0、失敗した場合はエラー・コードが返されます。

long vrpcSetTimeout( VRPC_SERVICE aService, double aTimeoutInSeconds );

この関数はCクライアントのデータ受信のデフォルト動作を設定します。

long vrpcSetBehavior( VRPC_SERVICE aService, unsigned long flags );

サーバ・ハンドルとフラグを指定します。0またはエラー・コードが返されます。フラグは次のとおりです。

VRPC_WAIT_SLEEPING タイムアウトまでデータを待ちます（クライアントはスリープ）。
VRPC_WAIT_SPINNING タイムアウトまでデータを待ちます（クライアントはビジー）。

フラグにVRPC_BUFFER_EXPANDをORで組み合わせることもできます。これは、サーバから返されたデータのサイズが大きい場合に、Cクライアントが大きいバッファを割り当てて保持することを指定します。

リモートveesmのリビジョン番号を問い合わせます。

long vrpcGetServerVersion( VRPC_SERVICE aService );

サーバ・ハンドルを渡します。リビジョン・コードまたは0（エラーの場合）が返されます。

関連項目

サーバの開始／停止、ライブラリのロード／アンロード、UserFunctionの選択、UserFunctionの呼び出し、VEE RPC APIのエラー・コード、VEE RPC APIの使用法


VEE RPC APIのエラー・コード

VEEサーバに接続できない場合、次のエラー・コードが返されます。

エラー・コード | 意味
850: eUnknownHost | ホスト名またはIPアドレスが解決不能です。
851: eNoServiceManager | サーバ・ホストにveesmが見つかりません。
861: eServiceManagerTO | サービス・マネージャがタイムアウトしました。
863: eServiceNotFound | VEEサービスが見つかりません。
864: eServiceNotStarted | VEEサービスを開始できません。
866: eConnectRefused | veesmまたはinetdへの接続が拒否されました。

次に示すのは、VEEサーバへの接続後に発生する致命的エラーです（接続は終了されています）。

エラー・コード | 意味
852: eHostDown | VEEサーバ・ホストが停止しました。
853: eConnectTimedOut | 接続がタイムアウトしました。
855: eConnectBroken | 接続が切断されました。

次のエラーは、サービス内部の致命的でない状態を示します。

エラー・コード | 意味
865: eSomeInternalError | 致命的でない内部エラーが発生しました。
869: eVeeServiceError | UserFunction内にエラーがあります。
870: eWouldBlock | 非ブロッキングRPCで返されます。
871: eDebugTermination | デバッグ・セッション中にユーザが[Stop]ボタンを押しました。

次のエラーは、RPC関数呼び出しから返されます。

エラー・コード | 意味
851: eInvalidArgument | 無効な引数があります。

関連項目

サーバの開始／停止、ライブラリのロード／アンロード、UserFunctionの選択、UserFunctionの呼び出し、その他の関数、VEE RPC APIの使用法


VEE DATA APIについて

UserFunctionへのCallまたはReceiveを実行するには、VEE Data Container（VDC）フォーマットのデータを処理する必要があります。これはVEEが内部動作のために必要とするデータ構造のセットです。CプログラムからVEEと通信するには、VDCと通常のCデータ型との間の変換機能が必要です。VEE DATA APIはこの機能（およびいくつかの追加機能）を提供します。

関連項目

スカラ・データ処理、配列データの扱い、Enum型、マッピング関数、その他の関数、データの型、種類、マッピング


データの型、種類、マッピング

基本的なVDC型は、veeTypes.hヘッダ・ファイルに次のように記述されています。

enum veeType

{

VEE_TYPE_ANY=0, // デフォルトの制約なし

VEE_NOT_DEFINED1, // 間を開ける

VEE_LONG, // 32ビット符号付き整数（VEEには16ビットのINTはありません）

VEE_NOT_DEFINED2, // 間を開ける

VEE_DOUBLE, // IEEE 754 64ビット浮動小数点数

VEE_COMPLEX, // 複素数:直交座標形式の2個のdouble

VEE_PCOMPLEX, // 複素数:極座標形式の2個のdouble

VEE_STRING, // 8ビットASCIIヌル終了文字列

VEE_NIL, // 関数呼び出しから返される空コンテナ

VEE_NOT_DEFINED3, // 間を開ける

VEE_COORD, // XY、XYZ...などのデータを表す2個以上のdouble

VEE_ENUM, // 文字列の順序付きリスト

VEE_RECORD, // VEEのレコード構造データ

VEE_NOT_DEFINED4, // 間を開ける

VEE_WAVEFORM, // 時間マッピングを持つVEE_DOUBLEの1次元配列

VEE_SPECTRUM // 時間マッピングを持つVEE_PCOMPLEXの1次元配列

VEE_WORD // 16ビット符号なし整数

};

便宜のために、veeTypes.hファイルではVEEデータ型からの変換のための次のCデータ型が定義されています。

typedef unsigned short u_int16;

typedef short int16;

typedef long int32;

typedef _int64 int64;

typedef long VEE_BOOL;

typedef unsigned short u_int16;

typedef struct {double rval, ival;} veeComplex;

typedef struct {double mag, phase;} veePComplex;

typedef struct {double xval, yval;} vee2DCoord;

typedef struct {double xval, yval, zval;} vee3DCoord;

typedef void veeDataContainer;

typedef veeDataContainer* VDC;

これらのデータ型は、次のように与えられる次元数numDimsを持つこともできます。

enum veeShape

{

VEE_SHAPE_SCALAR, // 単一データ要素

VEE_SHAPE_ARRAY1D, // 1次元配列

VEE_SHAPE_ARRAY2D, // 2次元配列

VEE_SHAPE_ARRAY3D, // 3次元配列

VEE_SHAPE_ARRAY, // 4～10次元配列

VEE_SHAPE_ANY // 未定義の種類のためのプレースホルダ

};

配列は「マッピング」することができます通常は配列はマッピングされていませんが、VEE_WAVEFORMおよびVEE_SPECTRUMデータ型はマッピングされた型であり、配列要素は時間間隔に対応します。マッピングは次のように与えられます。

enum veeMapType

{

VEE_MAPPING_NONE, // マッピングなし

VEE_MAPPING_LINEAR, // リニア・マッピング

VEE_MAPPING_LOG // 対数マッピング

};

通常は、マッピングを指定する必要はありません。

関連項目

VEE DATA APIについて、スカラ・データ処理、配列データの扱い、Enum型、マッピング関数、その他の関数


スカラ・データ処理

CデータからVDCスカラを作成するには、以下の関数を使用します。

VDC vdcCreateWordScalar(u_int16 aWord);

VDC vdcCreateBooleanScalar(VEE_BOOL aBool);

VDC vdcCreateLongScalar( int32 aLong );

VDC vdcCreateLongLongScalar(int64 aLong);

VDC vdcCreateDoubleScalar( double aReal );

VDC vdcCreateStringScalar( char *aString );

VDC vdcCreateComplexScalar( double realPart, double imaginaryPart );

VDC vdcCreatePComplexScalar( double magnitude, double phase );

VDC vdcCreate2DCoordScalar( double xval, double yval );

VDC vdcCreate3DCoordScalar( double xval, double yval, double zval );

VDC vdcCreateCoordScalar( int16 aFieldCount, double *values );

これらの関数はすべて、VDCへのポインタを返します。失敗した場合にはNULLを返します。VEE_WAVEFORM型とVEE_SPECTRUM型は定義により常に1次元配列となるため、VEE_WAVEFORM型とVEE_SPECTRUM型のスカラはありません。

VDCの値を別のルーチン・セットで変更することができます。

int32 vdcSetWordScalar(VDC aVD, u_int16 aWord);

int32 vdcSetBoolScalar(VDC aVD, VEE_BOOL aBool);

int32 vdcSetWordScalar(VDC aVD, u_int16 aShort);

int32 vdcSetLongScalar( VDC aVD, int32 aLong );

int32 vdcSetLongLongScalar(VDC aVD, int64 aLongLong);

int32 vdcSetDoubleScalar( VDC aVD, double aReal );

int32 vdcSetStringScalar( VDC aVD, char *aStr );

int32 vdcSetComplexScalar( VDC aVD, double realPart, double imaginaryPart );

int32 vdcSetPComplexScalar( VDC aVD, double magnitude, double phase );

int32 vdcSet2DCoordScalar( VDC aVD, double xval, double yval );

int32 vdcSet3DCoordScalar( VDC aVD, double xval, double yval, double zval );

int32 vdcSetCoordScalar( VDC aVD, int16 aFieldCount, double* values );

上に説明したように、これらの関数は0またはエラー・コードを返します。

スカラVDCを作成したとき、または関数から1が返ったとき、別のルーチン・セットでそこからCデータ型を取り出すことができます。

int32 vdcGetWordScalarValue(VDC aVD, u_int16 *aWord);

int32 vdcGetLongScalarValue( VDC aVD, int32 *aLong );

int32 vdcGetDoubleScalarValue( VDC aVD, double *aReal );

char* vdcGetStringScalarValue( VDC aVD );

int32 vdcGetComplexScalarValue( VDC aVD, veeComplex *aComplex );

int32 vdcGetPComplexScalarValue( VDC aVD, veePComplex *aPComplex);

int32 vdcGet2DCoordScalarValue( VDC aVD, vee2DCoord *aCoord );

int32 vdcGet3DCoordScalarValue( VDC aVD, vee3DCoord *aCoord );

double* vdcGetCoordScalarValue( VDC aVD, int16 *aFieldCount );

通常、これらの関数は、最初の引数VDCからデータを取り出し、それを2番目の引数に格納します。2番目は（このセクションの最初で定義したように何らかの型を持つ）C変数です。エラーがない場合0が返り、エラーがある場合エラー・コードが返ります。

例外として、関数から直接文字列を返す（エラーが発生した場合はNULLを返す）vdcGetStringScalarValue()関数と、N次元座標データの配列に対するポインタ（および引数としてN）を返すvdcGetCoordScalarValue()関数があります。

最後に、座標型の座標次元数を問い合わせるか、座標次元を必要に応じて新しい値に設定できます。

int16 vdcNumCoordDims( VDC aVD );

int32 vdcCoordSetNumCoordDims( VDC, int16 );

関連項目

VEE DATA APIについて、配列データの扱い、Enum型、マッピング関数、その他の関数、データの型、種類、マッピング


配列データの扱い

以下の関数は、VEE型の配列VDCを作成します。指定した値はVDCにコピーされます。呼び出し側のメモリは使用されません。エラーが発生した場合、NULLポインタが返されます。VDC配列を作成するには次の関数セットを使用します。

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_BOOL型のVDCを返します。引数valuesが指すデータの配列は、指定されたサイズでなければなりません。引数の型VEE_BOOLは、veeData.hでlong型に定義されています。

VDC vdcCreateBoolean1DArray(int32 numpts, VEE_BOOL *values);

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_LONG型のVDCを返します。引数valuesが指すデータの配列は、指定されたサイズでなければなりません。引数の型Int32は、veeData.hでlong型に定義されています。

VDC vdcCreateLong1DArray( int32 numPts, int32 *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_LONGLONG型のVDCを返します。引数valuesが指すデータの配列は、指定されたサイズでなければなりません。引数の型Int64は、veeData.hで_int64型に定義されています。

VDC vdcCreateLongLong1DArray(int32 numpts, int64 *values);

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_STRING型のVDCを返します。引数stringsは、ヌル終了文字列を指すポインタの配列を指します。配列中の文字列の数は、指定されたサイズに一致する必要があります。引数の型Int32は、veeData.hでlong型に定義されています。

VDC vdcCreateString1DArray( int32 numPts, char **strings );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_DOUBLE型のVDCを返します。引数valuesは、データの配列を指します。配列中のdoubleの数は、指定されたサイズに一致する必要があります。引数の型Int32は、veeData.hでlong型に定義されています。

VDC vdcCreateDouble1DArray( int32 numPts, double *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_COMPLEX型のVDCを返します。引数の型Int32は、veeData.hでlong型に定義されています。引数valuesは、veeComplex型の構造体の配列を指します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double rval, ival;} veeComplex;

VDC vdcCreateComplex1DArray( int32 numPts, veeComplex *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_PCOMPLEX型のVDCを返します。引数の型Int32は、veeData.hでlong型に定義されています。引数valuesは、veePComplex型の構造体の配列を指します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double mag, phase;} veePComplex;

VDC vdcCreatePComplex1DArray( int32 numPts, veePComplex *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_COORD型のVDCを返します。引数の型Int32は、veeData.hでlong型に定義されています。引数valuesは、vee2DCoord型の構造体の配列を指します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double xval, yval;} vee2DCoord;

VDC vdcCreate2DCoord1DArray( int32 numPts, vee2DCoord *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_COORD型のVDCを返します。引数の型Int32は、veeData.hでlong型に定義されています。引数valuesは、vee3DCoord型の構造体の配列を指します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double xval, yval, zval;} vee3DCoord;

VDC vdcCreate3DCoord1DArray( int32 numPts, vee3DCoord *values );

・ この関数は、引数numPtsに指定されたサイズで割り当てられたVEE_COORD型のVDCを返します。引数aFieldCountは、座標のフィールドの数です。引数の型Int32は、veeData.hでlong型に定義されています。引数valuesは、double型の配列を指します。この配列の長さは、numPtsとaFieldCountの積に一致する必要があります。

VDC vdcCreateCoord1DArray( int32 numPts, int16 aFieldCount, double *values );

・ この関数は、引数numPtsに指定された数のサンプルを持つVEE_WAVEFORM型のVDCを返します。波形の開始時刻と終了時刻は、引数fromとthruです。引数mapTypeは、veeData.hで定義されたVMT型です。これは使用されるマッピングのタイプを宣言します。詳細については、データの型、種類、マッピングを参照してください。

引数dataが指すdoubleの配列は、引数numPtsに指定されたサイズでなければなりません。引数の型Int32は、veeData.hでlong型に定義されています。

VDC vdcCreateWaveform( int32 numPts, double from, double thru, VMT mapType, double *data );

・ この関数は、引数numPtsに指定された数のサンプルを持つVEE_SPECTRUM型のVDCを返します。スペクトラムの開始周波数と終了周波数は、引数fromとthruです。引数mapTypeは、veeData.hで定義されたVMT型です。これは使用されるマッピングのタイプを宣言します。詳細については、データの型、種類、マッピングを参照してください。

引数dataが指すveePComplex型の配列は、引数numPtsに指定されたサイズでなければなりません。veePComplex型はveeData.hで次のように定義されている構造体です。

typedef struct {double mag, phase;} veePComplex.

構造体の配列はコピーされます。引数の型Int32は、veeData.hでlong型に定義されています。

VDC vdcCreateSpectrum( int32 numPts, double from, double thru,
VMT mapType, veePComplex *data);

上記の関数では、配列サイズ、配列を表現するのに必要な追加データ（VEE_WAVEFORMおよびVEE_SPECTRUMのマッピングなど）、配列データを指定し、VDC（エラーが発生した場合はNULL）を入手します。

VDCからC配列への変換には以下の関数を使用します。

・ この関数は、VEE_BOOL型の配列へのポインタを返します。引数aVDは、VEE_BOOL型の配列でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

VEE_BOOL* vdcGetBool1DArray(VDC aVD, int32 *numpts);

・ この関数は、int32型の配列へのポインタを返します。引数aVDは、VEE_LONG型の配列でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

int32* vdcGetLong1DArray( VDC aVD, int32 *numPts );

・ この関数は、int64型の配列へのポインタを返します。引数aVDは、VEE_LONGLONG型の配列でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

int64* vdcGetLongLong1DArray(VDC aVD, int32 *numpts);

・ この関数は、double型の配列へのポインタを返します。引数aVDは、VEE_DOUBLE型でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

double* vdcGetDouble1DArray( VDC aVD, int32 *numPts );

・ この関数は、ヌル終了文字列へのポインタの配列へのポインタを返します。引数aVDは、VEE_STRING型でなければなりません。参照渡し引数numPtsに返される値は、文字列の数です。

char** vdcGetString1DArray( VDC aVD, int32 *numPts );

・ この関数は、veeComplex型の構造体の配列へのポインタを返します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double rval, ival;} veeComplex;

引数aVDは、VEE_COMPLEX型でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

veeComplex* vdcGetComplex1DArray( VDC aVD,int32 *numPts );

・ この関数は、veePComplex型の構造体の配列へのポインタを返します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double mag, phase;} veePComplex;

引数aVDは、VEE_PCOMPLEX型でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

veePComplex* vdcGetPComplex1DArray( VDC aVD, int32 *numPts );

・ この関数は、vee2DCoord型の構造体の配列へのポインタを返します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double xval, yval;} vee2DCoord;

引数aVDは、VEE_COORD型でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

vee2DCoord* vdcGet2DCoord1DArray( VDC aVD, int32 *numPts );

? この関数は、vee3DCoord型の構造体の配列へのポインタを返します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double xval, yval, zval;} vee3DCoord;

引数aVDは、VEE_COORD型でなければなりません。参照渡し引数numPtsに返される値は、配列の長さです。

vee3DCoord* vdcGet3DCoord1DArray( VDC aVD, int32 *numPts );

・ この関数は、double型の配列へのポインタを返します。引数aVDは、VEE_COORD型でなければなりません。参照渡し引数numPtsに返される値は、配列中の座標組の数です。参照渡し引数aFieldCountに返される値は、各座標組のフィールドの数です。返される配列の長さは、numPtsとaFieldCountの積です。

double* vdcGetCoord1DArray( VDC aVD, int32 *numPts, int16 *aFieldCount );

・ この関数は、double型の配列へのポインタを返します。引数aVDは、VEE_WAVEFORM型でなければなりません。参照渡し引数numPts、from、thru、mapTypeは、それぞれ配列の長さ、開始時刻、終了時刻、マッピングのタイプを返します。

double* vdcGetWaveform( VDC aVD, int32 *numPts, double *from, double *thru, VMT *mapType );

・ この関数は、veePComplex型の構造体の配列へのポインタを返します。この構造体は、veeData.hで次のように定義されています。

typedef struct {double mag, phase;} veePComplex;

引数aVDは、VEE_WAVEFORM型でなければなりません。参照渡し引数numPts、from、thru、mapTypeは、それぞれ構造体配列の長さ、開始周波数、終了周波数、マッピングのタイプを返します。

veePComplex* vdcGetSpectrum( VDC aVD, int32 *numPts, double *from, double *thru, VMT *mapType );

これらの関数は、VDCを受け取り、データの配列へのポインタを直接返し、配列のサイズ（またはその他の関連情報）を引数に返します。

配列を作成した後、以下の関数を使って、配列のチェック、問合せ、操作を行うことができます。

int32 vdcSetNumDims( VDC, int16 );

int16 vdcGetNumDims( VDC );

int32 vdcSetDimSizes( VDC, int32* );

int32 *vdcGetDimSizes( VDC );

int32 vdcCurNumElements( VDC );

関連項目

VEE DATA APIについて、スカラ・データ処理、Enum型、マッピング関数、その他の関数、データの型、種類、マッピング


Enum型

VEEの列挙型は、すでに説明したように、文字列の順序付きリストであり、次のルーチンで処理されます。

この関数は、指定された数の文字列／序数ペアを持つ空のVEE_ENUM構造体を作成します。エラーの場合はNULL VDCを返します。

VDC vdcCreateEnumScalar( int16 numberOfPairs );

この関数は、定義済みのVEE ENUM構造体に列挙ペアを格納し、更新された構造体を返し、0またはエラー・コードを返します。

int32 vdcEnumAddEnumPair( VDC aVD, char* aString, int32 aValue );

この関数は、序数値引数で指定された列挙ペアを削除します。0またはエラー・コードを返します。

int32 vdcEnumDeleteEnumPairWithOrdinal( VDC aVD, int32 anOrd );

この関数は、他のvdcEnumルーチンが使用する序数値を設定します。0またはエラー・コードを返します。

int32 vdcSetEnumScalar( VDC aVD, int32 anOrdinal );

この関数は、VEE_ENUM構造体に、文字列と、vdcSetEnumScalar()で割り当てられた序数値を格納します。

int32 vdcEnumDeleteEnumPairWithStr(VDC aVD, char* aString );

この関数は、vdcSetEnumScalar()で割り当てられている現在の序数値を返します。

int32 vdcGetEnumOrdinal( VDC aVD );

この関数は、現在の序数値に対応する文字列を返し、エラーの場合はNULL文字列を返します。

char* vdcGetEnumString( VDC aVD );

関連項目

VEE DATA APIについて、スカラ・データ処理、配列データの扱い、マッピング関数、その他の関数、データの型、種類、マッピング


マッピング関数

VEE DATA APIでは、次の関数を使って配列のマッピングを操作できます。

int32 vdcAtDimPutLowerLimit( VDC aVD, int16 aDim, double aValue );

// 下限のマッピングを指定します。

int32 vdcAtDimPutUpperLimit( VDC aVD, int16 aDim, double aValue );

// 上限のマッピングを指定します。

int32 vdcAtDimPutRange( VDC aVD, int16 aDim, double lowerLimit, double upperLimit );

// "vdcAtDimPutLowerLimit" と
// "vdcAtDimPutUpperLimit"の組み合わせ。

int32 vdcAtDimPutMapping( VDC aVD, int16 aDim, VMT aMapping);

// 上で定義されたリミットの間にマッピングを設定します。

int32 vdcMakeMappingsSame( VDC VD1, VDC VD2 );

// 2つのコンテナに同じマッピングを設定します。

int32 vdcUnMap( VDC aVD );

// コンテナのマッピング情報を削除します。

関連項目

VEE DATA APIについて、スカラ・データ処理、配列データの扱い、Enum型、その他の関数、データの型、種類、マッピング


その他の関数

その他のVEE DATA API関数には次のものがあります。

VDCの型を取得します。エラーの場合はVEE_NOTDEFINED1を返します。

enum veeType vdcType( VDC aVD );

VDCのコピーを作成します。エラーの場合はNULLを返します。

VDC vdcCopy( VDC oldVD );

コンテナを破棄し、メモリを解放します。エラーの場合はNULLを返します。

VDC vdcFree( VDC aVD );

最新のエラーのエラー番号／メッセージを取得します。

int16 veeGetErrorNumber( void );

char *veeGetErrorString( void );

エラー番号を0にリセットします。

void veeClearErrorNumber(void)

libvapi.libライブラリは、Borlandコンパイラ使用時にはプログラムにリンクできません。

関連項目

VEE DATA APIについて、スカラ・データ処理、配列データの扱い、Enum型、マッピング関数、データの型、種類、マッピング


Web技術の概要

VEEを使用すると、プログラムで収集したデータの配布、テスト・システムの監視、テスト結果の確認をリモートで行うことができます。

この例では、組織内にWebサイト（イントラネットWebサイト）を構築し、これをサーバとして参照データを提供する方法について説明します。このサイトにアクセスするユーザは、ブラウザを持つとします。例では、Microsoft環境（Windows Vista、Windows 2000またはWindows XP）、MS Office、MS Internet Explorerを使用します。情報は、計測器からサーバへ、サーバからクライアントのブラウザへと順に送信されます。

注記

この例では、PCの画面ダンプを使用します。

上の図では、情報は次のように流れます。

被試験デバイス（DUT）、センサ、または計測器は、ネットワークI/Oレイヤを介して、情報をサーバ・アプリケーションに送信します。ネットワークI/Oレイヤには、インタフェースとバックプレーン（GPIB、RS232、VXI、MXI、USB、LAN、PCプラグイン）、およびI/Oプログラム・レイヤ（ドライバ、VISA、SICLなど）があります。

サーバ・アプリケーションは、測定データを生成するVEEプログラムです。

HTTP（HyperText Transfer Protocol）は、情報をクライアントのブラウザに送信します。

HTTPは、TCP/IP（Transmission Control Protocol/Internet Protocol）通信プロトコルの1つであり、Webで用いられます（TCP/IPはTransmission Control Protocol/Internet Protocolの略）。TCP/IPプロトコルの下位レベルには、トランスポート・レイヤ、ネットワーク・レイヤ、物理レイヤの各通信レイヤがあります。TCP/IPアプリケーションは、定義上すべてクライアント／サーバ・アプリケーションです。たとえば、Internet Explorerなどのクライアント・ブラウザは、サーバ・アプリケーションによって生成された情報を要求できます。

次のURL（Universal Resource Locator）をInternet Explorerに入力すると、Agilentサーバから情報を要求することになります。

http://www.agilent.com/find/vee

httpは、情報を転送するためにアクセスされるリソースの種類を表します。

www.agilent.com/find/vee は、リソースのURLです。HTTPによって使用されるハイパーテキスト・フォーマットは、HTML（HyperText Markup Language）と呼ばれるスクリプト記述フォーマットの1つです。HTMLは、文書同士をリンクする方法の1つで、過去にはWebページの作成に使用できる唯一の言語でした。HTMLは、当初はテキスト専用でしたが、現在では音声、ビデオ、イメージ、対話型画面、ActiveXコントロール、Javaアプレットが導入されています。

ブラウザからサーバに情報を要求しても、ブラウザがそのように設計されていないかぎり、その後で情報が自動的に更新されることはありません。また、ブラウザ・ページが対話可能なように設計されていなければ、ブラウザから対話を行うことはできません。これらの機能を最も簡単に実現する方法は、VBScript、JavaScript、Jｓcriptなどのスクリプト記述言語を使用することです。

スクリプト記述言語は、ブラウザによってサポートされるインタープリタ言語の1つです。スクリプト記述言語により、HTMLの使用範囲が広がり、より対話型のWebページを提供できます。スクリプト記述言語はインタープリタ言語なので、Webページに埋め込み、ブラウザによってサポートされる必要があります。これは独立したプログラムではありません。これを下に示します。

VBScript、JavaScript、JScriptはスクリプト記述言語です。VBScriptは、MS Visual Basicをベースにしています。JavaScriptは、JavaとともにSunによって作成されています。JScriptは、MicrosoftバージョンのJavaScriptをベースにしています。

スクリプト記述言語は、ホスト・アプリケーション内に存在している必要があります。ホスト・アプリケーションは、通常、Internet ExplorerやNetscape NavigatorなどのWebブラウザです。ブラウザ内のWebページの全体的な外見は、HTMLによって制御されます。

MicrosoftのCOM（Component Object Model）は、ActiveXコントロールと呼ばれるコンパイル済みソフトウェア・コンポーネントを定義し、ActiveXコントロールには、特定の用途を持つ機能がカプセル化されます。通常、ActiveXコントロールは、ユーザ・インタフェースの機能を提供するために使用され、クライアントのコンピュータで実行されるように設計されます。ActiveXコントロールは、最適化されたソフトウェア・コンポーネントであり、以前はOLEコントロールと呼ばれていました。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


Agilent VEEを使ったWebモニタ管理

VEEには、HTTPを介してほかのプログラムと通信するためのWebサーバが組み込まれています。自分のコンピュータにあるVEEプログラムと情報にリモート・ユーザからアクセスできます。このセクションでは、VEEデータを共有し、リモート・ユーザからそのデータにアクセスする方法について説明します。

全般的なガイドラインとヒント

サーバ側のシステムで実行されるVEEプログラムが、リモート・ユーザがアクセスするVEEプログラムになります。

サーバ側のシステムでVEEを実行する必要があります。サーバ側のシステムのVEEプログラムにアクセスするために、リモート・ユーザ側にVEEがインストールされている必要はありません。

リモート・ユーザがネットワーク・ブラウザからVEEに要求を送ると、VEEは、ピクチャを1つ作成してリモート・ユーザのブラウザ・ウィンドウに表示します。このピクチャは、VEEプログラムの「スナップショット」です（編集はできません）。

リモート・ユーザは、VEEプログラムのさまざまな部分を表示したり、（プログラムの進捗を監視するため）一定間隔でブラウザ表示を更新するようにVEEプログラムに指示したり、エラー・メッセージ情報を表示したりすることができます。 それには、VEE Webサーバ・ホームページでオプションを選択するか、ブラウザでURLにコマンド・ライン・オプションを指定します。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


Agilent VEEのデータをリモート・ユーザに提供する方法

リモート・ユーザがサーバ側のシステムにあるデータにアクセスできるように、VEE Webサーバをセットアップします。 一般には、次の手順に従います。

1 サーバ側のシステムがネットワークに接続されていることを確認します。

2 サーバ側システムのURLに関する情報をリモート・ユーザに提供します。 リモート・ユーザは、このURLをブラウザに入力して、サーバ側のシステムにアクセスします（詳細については、後述します）。

3 VEEを起動します。 リモート・ユーザからアクセスされるプログラムを開いたり、リモート・ユーザからアクセスされるファイルを作成したりします。

4 [File] [image]  [Default Preferences] [image] [Web Server] ダイアログ・ボックスの設定を選択して、Webサーバを有効にします。 詳細については、後述します。

5 リモート・ユーザは、Internet ExplorerやNetscapeなどのWebブラウザを実行します。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


[Web Server]ダイアログ・ボックス

[File] [image] [Default Preferences] [image] [Web Server]を選択すると、下に示すように、[Web Server]ダイアログ・ボックスが表示されます。

[Web Server]ダイアログ・ボックスには、次のフィールドがあります。

フィールド名

説明

Enable Server

[Enable Server]をチェックした場合は、VEEの内蔵Webサーバがオンになります。Webサーバにより、リモート・ユーザは、自分のWebブラウザにサーバ側のVEEプログラムを表示して、サーバ側システムのVEEプログラムの表示、監視、トラブルシューティングを実行できます。

VEEのWebサーバは、標準のHTTPプロトコルを使用します。デフォルトでは、[Enable Server]はオフ（チェック・マークなし）です。リモート・ユーザが VEE Webサーバにアクセスするには、サーバ側のシステムがネットワークに接続され、そこでVEEが実行されており、リモート・ユーザはWebブラウザを実行している必要があります。

Root Directory

リモート・ユーザがアクセスできるファイルの場所を指定します。デフォルトは、~installDir/wwwです。Windows Vista、Windows XPまたはWindows 2000で、VEE Pro8.5がデフォルト設定でインストールされている場合、このフィールドは次のようになります。

C:\Program Files\Agilent\VEE Pro8.5\www.

このディレクトリやそのサブディレクトリには、個人的なファイルを置かないでください。 サーバ側のシステムにアクセスできるリモート・ユーザならだれでも、Webブラウザを使ってそれらのファイルを表示できるからです。

VEEは、インストール時に、Webサーバのデフォルトの Root Directory にファイル index.html をインストールします。デフォルトでは、このファイルはC:\Program Files\Agilent\VEE Pro 8.5\www\index.htmlです。これがデフォルトのVEE Webサーバ・ホームページであり、リモート・ユーザがサーバ側システムにアクセスしたときに表示されます（このホームページは、必要に応じて編集できます）。

Webファイルのルート・ディレクトリを変更した場合は、index.html ファイルを新しいディレクトリに移動してください。ファイル名を変更してはいけません。

HTTP Port Number

VEE Webサーバのポート番号を指定します。デフォルトのポート番号は80です。 デフォルトのポート番号を変更する必要があるのは、同じシステムでもう1つのWebサーバ（VEEの別のインスタンスなど）を実行する場合、またはVEE Webサーバにアクセスするリモート・ユーザを制限する場合だけです。

0～65535のHTTPポートを指定することにより、サーバ側のシステムにあるデータにアクセスおよび表示できるリモート・ユーザを制限できます。

別のポート番号を指定した場合、VEEプログラムを表示するリモート・ユーザも、同じポート番号を各自のブラウザに入力する必要があります。たとえば、このフィールドを85に設定した場合は、リモート・ユーザもURLにhttp://hostname:85 と入力する必要があります（hostnameについては、この章の後の方で詳しく説明します）。

Server Timeout

VEE WebサーバがVEEのコマンド処理を待機する最大の時間を指定します。デフォルトでは、60秒に設定されています。VEEプログラムがコマンドを処理するために、指定されているより多くの時間を要した場合、VEEはWebサーバにタイムアウトを送信します。

Log File

Webサーバによって処理されるすべての着信HTTP要求を記録するログ・ファイルを指定します。PCでは、このファイルのデフォルトの場所はC:\windows\TEMP\http.logです。[Default Preferences] [image] [Web Server] ダイアログ・ボックスで変更を行うと、ログ・ファイルがまだ存在しない場合は、ファイルが作成されます。

Save

再び変更しないかぎり、以降のVEE Webセッションではこれらの値がデフォルト値になります。現在のVEEセッションでのみ、指定されている値を使用する場合は、[OK]をクリックします。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法


リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法

リモート・ユーザが別の場所からサーバ側のシステムにあるVEEファイルにアクセスするには、一般に次の手順に従います。

1 リモート・ユーザのシステムがネットワークに接続されている必要があります。

2 リモート・ユーザがNetscapeやInternet Explorerなどのネットワーク・ブラウザを実行している必要があります。

3 リモート・ユーザがサーバ側システムのURLを入力する必要があります（このアドレスは、サーバ側のユーザからリモート・ユーザに提供する必要があります。 詳細については、後述します）。

注記

サーバ側のシステムにあるVEEプログラムにアクセスするために、リモート側でVEEを実行する必要はなく、リモート側にVEEがインストールされている必要もありません。

リモート・ユーザはネットワークに接続し、ブラウザを実行し、URLを入力します。以下の説明に基づき、入力するURLをリモート・ユーザに指示してください。リモート・ユーザは、次の形式でURLを入力できます。

http://hostname {:port}

VEE Webサーバ・ホームページを表示します。 リモート・ユーザは、このページで、VEEプログラムの表示方法に関するオプションを入力できます。

http://hostname{:port}{/command}{?parameter}

リモート・ユーザがVEEプログラム内に表示するビューまたはUserFunctionを指定します。たとえば、http://hostname/ViewMainDetailにより、メインVEEプログラムの詳細ビューが表示されます。

http://hostname{:port}{/file}

リモート・ユーザが表示する保存済みのファイル（*.jpeg、*.htmlなど）を指定します。

注記

中かっこ{}で囲まれたフィールドは、省略可能です。

次に、URLアドレス内のフィールドについて説明します。

リモート・ユーザがサーバ側のシステムにあるVEEプログラムにアクセスする場合、URL内で使用できるコマンドとパラメータは次のとおりです。

フィールド名

説明

hostname

（必須） VEEが実行されているサーバ側のシステムを識別します。 フォーマットは、<computer_name>.domain.comです。

リモート・ユーザにURLとして<hostname>だけを入力してもらうこともできます（http://<hostname> ）。このコマンドにより、VEE Webサーバ・ホームページ（index.html）が開き、リモート・ユーザに表示されます。リモート・ユーザは、このVEE Webサーバ・ホームページのメニューから、VEEプログラムの表示、監視、トラブルシューティングを選択できます。

port

（省略可）Webサーバのポート番号を指定します。省略するとデフォルト値の80が用いられます。この値を指定する必要があるのは、[File] [image] [Default Preferences]s [image] [Web Server] に80以外のポート番号を入力している場合だけです。

たとえば、リモート・ユーザがサーバ側システムのVEEにアクセスしようとしており、[File] [image] [Default Preferences]s [image] [Web Server]のポート番号が85に設定されている場合、リモート・ユーザはhttp://<hostname>:85.と入力する必要があります。

file

（省略可）ブラウザで開くディレクトリやファイルをルート・ディレクトリからの相対ディレクトリで識別します。ファイルを指定する必要があるのは、*.jpegや*.htmlなどのファイルをリモート・ユーザが表示するために保存してある場合だけです。

リモート・ユーザがサーバ側のシステムにあるファイルを表示するには、サーバ側のVEEの [Default Preferences] の[Web Server] ダイアログで、そのファイルのディレクトリを[Root Directory] として指定する必要があります。

commandとparameter

（省略可）VEE Webサーバがサポートしているコマンドと、コマンドに必要なパラメータを指定します。コマンドとパラメータを使用すると、リモート・ユーザは、ブラウザを介してVEEプログラムを監視したり、トラブルシューティングしたりできます。コマンドとパラメータの一覧を下に示します。

VEEウィンドウ全体の表示

ViewVEE

例:  http://hostname/ViewVEE

メインVEEプログラムのパネル・ビュー

ViewMainPanel

例:

http://hostname/ViewMainPanel

メインVEEプログラムの詳細ビュー

ViewMainDetail

例:

http://hostname/ViewMainDetail

実行時のVEE実行ウィンドウ

ViewExecWindow

例:

http://hostname/ViewExecWindow

VEEのUserFunctionのパネル・ビュー

http://hostname/ViewPanel?

<UserFunction名>

例えば、 UserFunction が AddNoiseの場合、リモート・ユーザは次のように入力します。

http://hostname/ViewPanel?AddNoise

UserFunctionの詳細ビュー

http://hostname/ViewDetail?

UserFunctionName

例えば、UserFunction が AddNoiseの場合、リモート・ユーザは次のように入力します。

http://hostname/ViewPanel?AddNoise

現在のプログラムのエラー・ウィンドウ

http://hostname/ViewError

使用可能なコマンドURLのリストの表示

ViewHelp

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


Agilent VEE Webサーバ・ページの表示方法

VEEをインストールすると、デフォルトのindex.htmlファイルがwwwディレクトリに作成されます。このファイルは、VEE Webサーバ・ホームページの内容です。リモート・ユーザは、このページにあるオプションをクリックして、サーバ側のVEEプログラムを表示できます。デフォルトのVEE Webサーバ・ホームページを下に示します。MS Wordなどを使用して、必要に応じてこのページを編集することもできます。

注記

サーバ側のシステムでこのメニューを表示するには、システムをlocalhostとして参照します。たとえば、VEEとネットワーク・ブラウザを実行し、ブラウザにhttp://localhostと入力すると、上に示したVEE Webサーバ・ホームページがブラウザに表示されます。これにより、リモート・ユーザが各コマンドを使用したときに表示される内容を簡単に確認できます。

リモート・ユーザは、上に示すメニューを表示し、メニューからオプションを選択することにより、VEEプログラムのさまざまな部分にアクセスできます。たとえば、[Main Detail]をクリックすると、メインVEEプログラムを詳細ビューで表示できます。このメニューの選択肢で表示される情報は、リモート・ユーザがネットワーク・ブラウザにコマンドhttp://hostname/ViewMainDetail を入力したときに表示されるものと同じです。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


Webを介して表示されるプログラムへのアクセスを制限する方法

VEEプログラムをWeb上で使用可能にする場合でも、リモート・ユーザがプログラム内の一定の部分を表示できないようにする必要が生じることがあります。リモート・ユーザがすでにサーバ側システムのURLを知っている場合は、一定のリモート・ユーザだけが特定のプログラムやWebディレクトリのファイルにアクセスできるようにする必要があります。

リモート・ユーザがWeb上でVEEプログラムの特定の部分を表示できないようにする場合、そのようにプログラムを保護する方法は、3通りあります。

許可されたユーザだけがプログラムを表示できるように、 [Default Preferences] [image] [Web Server]フォルダでポート番号を変更します。

-または-

保護されたRunTimeバージョンのVEEプログラムを作成します。これで、プログラム・コードをまったく表示できなくなります。詳細については、「プログラムを保護する方法（RunTimeバージョンを作成する方法）」を参照してください。

-または-

無効にするコマンドと正確に同じ名前を付けたHTMLファイルを作成し、それをVEEのwwwディレクトリに保存します。ブラウザは、VEEのコマンドより前に、同じ名前の*.html ファイルにアクセスします。これにより、リモート・ユーザからの要求を途中で止めて、適切な警告やコメントを記載したHTMLページを表示できます。

たとえば、リモート・ユーザがVEEプログラムの詳細ビューを表示できないようにするとします。その場合は、MS Wordなどのプログラムでファイルを作成し、それをViewMainDetail.html という名前でwwwディレクトリに保存します。そのファイルの中に、リモート・ユーザに対して表示するメッセージを記入します。

リモート・ユーザがVEE Webサーバ・ホームページで[Main Detail]を選択したり、ViewMainDetailオプションを使ってURLを入力したりしても、ブラウザはメインVEE プログラムを詳細ビューで表示しません。その代わりに、ブラウザはwwwディレクトリのViewMainDetail.html ファイルにアクセスし、先に作成したファイルを表示します。リモート・ユーザに表示するメッセージの例を次に示します。

注記

ファイル名がVEEのWebコマンドと同じ名前であり、[Web Server]で指定したRoot Directoryに置かれていることを確認してください。

*.html ファイルは、その他の目的でも使用できます。 たとえば、VEEプログラムをパスワードで保護し、パスワードを持つユーザだけがプログラムを表示できるようにすることができます。パスワードによる保護の例を下に示します。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、例題13-1：Agilent VEE Webブラウザを使った練習セッション、[Web Server]ダイアログ・ボックス


MATLAB Scriptの概要

MATLAB®Scriptは、The MathWorks社製の高機能標準MATLABのサブセットです。MATLAB Scriptにより、高度な数式処理、データ解析、科学的/工学的グラフィックなどのMATLABの中核機能に直接アクセスすることができます。MATLAB Scriptオブジェクトは、どのAgilent VEEプログラムにも簡単に挿入できます。

MATLAB Scriptには、次のような数多くの機能があります。

? データの解析と視覚化

• 次の数値計算

? 線形代数および行列演算

? フーリエ解析および統計解析

? 微分方程式の計算

? 三角関数および基本演算

• 次の工学的、科学的グラフィック

? 三角データ、グリッド・データなどの二次元および三次元表示

? スカラおよびベクトル・データの量の視覚化

? 矢印(quiver)、リボン(ribbon)、散布図(scatter)、棒グラフ(bar)、円グラフ(pie)、離散グラフ(stem)のプロット

Signal Processing Toolbox

VEE用のMATLAB Scriptには、フィルタ設計とスペクトル解析技術に基づいて構築されたMATLAB Signal Processing Toolboxのサブセットも含まれます。次の機能があります。

? 信号および線形システム・モデル

? アナログ・フィルタの設計

? FIRおよびIIRディジタル・フィルタの設計、解析、実装

? FFT、DCTなどの変換処理

? スペクトル推定と統計的信号処理

? 時系列パラメータ・モデリング

? 波形の生成

高機能MATLABについて

MATLABは、数値計算、高度なグラフィックおよび視覚化、高水準プログラミング言語を結合した統合型テクニカル・コンピューティング環境です。MATLABには、次のような数多くの機能があります。

? データの解析と視覚化

? 数値および記号の計算

? 工学的、科学的グラフィック

? モデリング、シミュレーションおよび試作

? プログラミング、アプリケーション開発、GUI設計

MATLABは、信号処理、画像処理、制御システム設計、金融解析、医学研究など、さまざまな分野のアプリケーションで使用されます。オープン・アーキテクチャにより、MATLABと関連製品を使用すると、データの調査やカスタム・ツールの作成を簡単に行うことができ、解析時間が短縮されて競争上優位に立つことができます。

VEEユーザは、データ解析、視覚化、モデリングなどを必要とするアプリケーションに、MATLABとSignal Processing Toolboxの全機能を組み込むことができます。これらの製品をフル・バージョンにアップグレードすれば、ユーザ定義関数（Mファイル）の作成、およびMATLABコマンド・ウィンドウ、MATLABエディタ／デバッガ、Signal Processing GUIへのアクセスなどの追加のMATLAB機能をVEEアプリケーションで幅広く使用できます。

VEEにインストールしてある高機能MATLABの使用法については、VEEで使用するMATLABの選択を参照してください。

MATLABの追加情報源

MATLAB Scriptオブジェクトの使用法の詳細については、「MATLAB SCRIPT Help Desk」を参照してください。VEEで、[Help] [image] [MATLAB Script] [image] [Help Desk]を選択します。WebブラウザにMATLAB Help Deskが表示されます。

MATLAB、MATLAB Toolboxes、およびThe MathWorks社のその他の製品についての詳細は、www.mathworks.comを参照するか、または米国(508) 647-7000に電話してください。

ほかにも次の情報源があります。

? MATLABの全ドキュメント: www.mathworks.com/access/helpdesk/help/helpdesk.shtml

? MATLAB製品情報: www.mathworks.com/products

? MATLAB技術サポート: www.mathworks.com/support

? MathWorksオンラインショップ: www.mathworks.com/store

? MathWorksホームページ: www.mathworks.com

? Usenetニュースグループ: comp.soft-sys.matlabニュースグループには、MATLABを使用する専門家と学生のためのフォーラムがあります。 MATLABと関連製品についての質問やコメントが掲載されています。

関連項目

Agilent VEEにおけるMATLAB Scriptの使用 MATLAB Script


Agilent VEEにおけるMATLAB Scriptの使用

VEEにはMATLAB Scriptオブジェクトがあり、MATLABの機能にアクセスできます。 VEEはMATLAB Script Engineとデータのやり取りができるので、VEEプログラムにMATLAB算術関数を入れることができます。

注記

すでにMATLABをインストールしている場合は、インストール済みのMATLABを使ってMATLAB Scriptを処理するように選択できます。ただし、Signal Processing Toolboxがない場合、これらの関数をVEEから使用することはできません。デフォルトでは、VEEはVEEに付属しているMATLAB Scriptエンジンを使用します。インストールされているMATLABを使用するには、[File] => [Default Preferences]を選択し、[MATLAB]タブで[Use MATLAB installed on your machine]をチェックし、使用するMATLABのバージョンを選択します。

選択したMATLABを使用するには、設定を保存してVEEを再起動する必要があります。

MATLAB Scriptオブジェクトの使用例:

• VEEが生成したデータをMATLABで処理する。

• MATLAB Scriptオブジェクトから結果を返して、VEEプログラムの別の部分でその結果を使用する。

• MATLABのSignal Processing Toolbox機能を使用して、MATLAB Scriptオブジェクトで高度なフィルタの設計や実装を行う。

• 2次元または 3次元グラフを使ってデータを視覚化する。

下の図は、VEEプログラム内のMATLAB Scriptオブジェクトを示します。このプログラムが動作すると、データが生成されてAlphanumericオブジェクトに表示されます。

この図は、プログラムが実行されたときに作成されるグラフを示します。

VEEプログラムにMATLAB Scriptオブジェクトを入れると、VEEはMATLAB Script Engineを呼び出してMATLAB Scriptオブジェクト内の演算を実行します。情報は、VEEからMATLABへ渡され、再度VEEに戻されます。

• MATLAB Scriptに入力できるVEEのデータ型には制限があります。これについては、データ型の処理方法 と MATLAB Scriptで詳細に説明しています。


MATLAB FAQ

問: MATLABがネットワーク・サーバにインストールされている場合、VEEから選択できますか?

答: VEEはMATLABエンジン・ライブラリを使ってスタンドアロンMATLABとやりとりします。Windowsの場合、現時点ではMATLABエンジン・ライブラリを通じて別マシン上のMATLABを使用することはできません。http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/engopen.htmlを参照してください。

問: 複数のバージョンの MATLABがインストールされている場合、古いバージョンに戻ることはできますか?

答: できます。[Default Preferences]->[MATLAB]を選択し、必要なバージョンを選択してください。どの MATLABを使用するかをVEEから制御できるようになりました。コマンド・ラインを表示させてmatlab /REGSERVERを実行する必要はなくなりました。

問: ユーザが独自のMファイルを MATLAB Scriptオブジェクトから呼び出せないのには理由があるのですか?

答: これは新しいMATLABエンジンの制限です。VEE 8.5は、MATLAB Component Runtimeを内蔵MATLABエンジンとして使用しています。MATLAB Component Runtimeは、暗号化されていない.mファイルを実行できません。http://www.mathworks.com/support/solutions/data/1-QXFMQ.html?solution=1-QXFMQを参照してください。ただし、内蔵MATLABエンジンの代わりに、PCにインストールされているMATLABを選択した場合（[Default Preferences]->[MATLAB]）、この制限はありません。

.mファイルの内容をコピーしてMATLAB Scriptオブジェクトに貼り付ければ、どちらの場合（内蔵エンジンとスタンドアロン・バージョン）でも動作します。

問: MATLABの最初の起動に以前のバージョンよりも時間がかかるようになったのはなぜですか?

答: VEEの以前のバージョンでは、VEEプログラムが終わりまで実行されるとMATLABエンジンはクローズされます。したがって、プログラムをもう一度実行した場合、VEEはMATLABエンジンをもう一度オープンする必要があります。これには時間がかかります。VEE 8.5の場合、MATLABエンジンがクローズされるのは、VEEセッションがクローズされるときだけです。したがって、最初の実行後のMATLAB Scriptの実行はきわめて高速です。

最初の実行では、VEEはMATLABのDLLをロードし、MATLAB環境を初期化する必要があります。これには非常に時間がかかり、前のバージョンと比べても必要な時間は増えています。しかし、当社ではこれを改善することはできません。

関連項目

MATLAB Script、Agilent VEEでのMATLAB Scriptの使用


.NETの概要

Visual Studio .NETは、Microsoftの最新開発プラットフォームです。.NETは、Visual Studio 6などの以前の製品と異なり、デスクトップ・プログラマとWeb開発者の両方のニーズに対応しています。VEEから見た.NETの利点は、.NET Frameworkのランタイムが無償で利用できることです。.NET Frameworkは、VEEバージョン7.0以上に付属しています。これは新しい機能のいくつかに組み込まれています。

VEEにとって重要な.NET Frameworkの機能と利点は、Framework Class Library（FCL）です。FCLは、VEEプログラマにとって特別な価値があります。100以上もの新しいプロパティやメソッドが、Function & Object Browserを通じて利用可能になりました。この新機能により、ファイルおよびディレクトリ管理、より簡単な文字列管理、オペレーティング・システム環境の簡略表示、Webページの操作、オペレーティング・システム処理へのアクセス、レジストリの読み取りなど、多くの作業がコードで実行可能になります。


.NETの用語

.NETに関する項目を読むときには、Microsoftの定義による以下の用語リストが役立ちます。

アセンブリ コンポーネントはアセンブリにパッケージされます。アセンブリは、.NETアプリケーションの再使用可能、かつバージョン作成可能な、内容が一目でわかる機能ブロックです。一番単純なアセンブリは、配置やバージョン作成に必要な情報をすべて含んだ、1個の実行可能プログラムです。アセンブリは、.NET Frameworkの基本機能ブロックです。アセンブリは、実行可能(.exe)ファイルまたはダイナミック・リンク・ライブラリ(.dll)ファイルの形をとります。

プライマリ相互運用アセンブリ（PIA） 「プライマリ相互運用アセンブリは、COMで実装された型の型定義をメタデータとして含む、一意のベンダ供給アセンブリです。プライマリ相互運用アセンブリは1つだけです。プライマリ相互運用アセンブリは、COMタイプ・ライブラリの権威ある発行者による承認を受ける必要があります。

名前空間 .NET Framework型は、階層を暗示するドット構文ネーミング・スキームを使用します。この技術では、関連する型が名前空間にグループ化されるので、検索や参照がより簡単に行えます。完全な名前のうち、右端のドットまでの最初のパートは名前空間名です。名前の最後のパートは型名です。たとえば、System.Collections.ArrayListはArrayList型を表し、System.Collections名前空間に所属します。System.Collectionsにある型は、オブジェクト集合の操作に使用できます（ネストされたネームスペースは、このルールにあてはまりません。詳細については、MSDNのマニュアルを参照してください）。

参照 アセンブリを使用するには、アセンブリに参照を追加する必要があります。

共有メンバ 共有メンバは、クラスのすべてのインスタンスによって共有されるプロパティ、プロシージャ、フィールドです。一部のプログラミング言語は、こうしたアイテムを静的メンバとして参照します。

共有フィールドと共有プロパティは、クラスの一部である情報を持っているときには有効ですが、クラスのどのインスタンスにも固有ではありません。通常のフィールドおよびプロパティは、クラスの各インスタンスに対して独立して存在します。あるインスタンスに関連付けられたフィールドまたはプロパティの値を変更しても、クラスの他のインスタンスのフィールドやプロパティの値には影響しません。一方、クラスのインスタンスに関連付けられた共有フィールドおよびプロパティの値を変更すると、クラスの全インスタンスに関連付けられた値を変更することになります。このように、共有フィールドおよびプロパティは、クラスのインスタンスからのみアクセスできるグローバル変数のように動作します。

クラス オブジェクト指向プログラミングに慣れている場合、クラスが、オブジェクトが実行できる操作（メソッド、イベント、プロパティ）を定義し、オブジェクトの状態を保持する値（フィールド）を定義することをご存知のはずです。クラスは通常、定義と実装の両方を含みますが、実装を持たないメンバを1つ以上持つこともできます。

クラスのインスタンスは、1つのオブジェクトです。オブジェクトの機能にアクセスするには、そのメソッドを呼び出し、そのプロパティ、イベント、フィールドにアクセスします。

インスタンス・メンバ インスタンス・メンバは、クラスの特定のインスタンスに結合されます。その値に対する変更は、それが関連付けられたオブジェクトにだけ影響し、その他のオブジェクトには影響しません。


VEEおよび.NET Framework

.NET FrameworkとVEEの相互作用のしかたを見る前に、MSDNインデックスで「.NET Framework - getting started」を検索し、.NET Frameworkについて調べてください。

使用法

[Device]メニューの下に、[.NET Assembly References]というメニュー・オプションがあります。定義からすぐに思い出されるように、参照によってアセンブリが使用可能になります。このメニュー選択をオープンします。下の図のようなウィンドウが表示されます。

選択可能なアセンブリは数多くあります。これらのアセンブリは、VEEホーム・ディレクトリまたは.NET Frameworkがインストールされているディレクトリに存在します。これら2つのディレクトリ以外にあるアセンブリを使用する場合は、[Browse]ボタンを使ってアセンブリを選択します。[Importing Namespaces]のチェックボックスもあります。名前空間のインポートは、C#でのusingステートメントまたはVisual BasicでのImportsステートメントに相当します。

前の図では、もっとも一般的に使用されるアセンブリmscorlibが選択されています。このアセンブリを選択します。 mscorlibには、ファイル・システム操作、コレクション管理、データ型変換など、VEEユーザにとって便利な関数が多数用意されています。もう1つの非常によく使用されるアセンブリがSystemです。これには、プロセス管理、Web要求および応答、正規表現などの関数が含まれています。

もう1つ、[COM]というラベルのタブがあります。このタブの下には、現在コンピュータに登録されているすべてのCOMタイプ・ライブラリのリストがあります。このリストは、[ActiveX automation references]ダイアログ・ボックスを使用するときに表示されるタイプ・ライブラリのリストとほぼ同じです。

以下に、これら2つの選択肢のどちらを使用するか判断する方法を示します。次の条件がすべて満たされる場合は、ActiveXを使用します。

  • ライブラリが[ActiveX automation references]ダイアログ・ボックスに表示される

  • 完全に機能する

  • PIA（Primary Interop Assembly）がない

これにより、もう1つのレイヤである.NET Interopを追加することが避けられます。次のいずれかの条件が満たされる場合は、.NET/COM相互運用を使用します。

  • ライブラリがActiveXとして表示されない

  • インポートされない機能がある

  • COMライブラリにPIA（Primary Interop Assembly）があることがわかっている

例:Function & Object BrowserのActiveX Objectsリストからは見えないIVI-COMドライバ・インタフェースがあります。しかし、.NET相互運用では、すべてのIVIドライバ・インタフェースを見ることができます。

[.NET Assembly References]メニュー・オプションを使用し、リストからCOMタイプ・ライブラリを選択すると、VEEは、COMタイプ・ライブラリを.NETアセンブリとしてインポートしようとします。PIAが存在する場合、VEEはそれを使用します。存在しない場合、VEEは、プログラムが保存されているディレクトリに1個のInterop Assembly（COMタイプ・ライブラリが他のタイプ・ライブラリを参照する場合は複数のInterop Assembly）を作成します。VEEは、Interop Assemblyを取得した後、そのアセンブリからすべての型情報を入手します。

注記

生成されたInterop Assemblyをテンポラリ・ディレクトリからVEEプログラムのディレクトリにコピーしなければならないというVEEのオーバーヘッドを避けるため、最初にVEEプログラムを保存します。この方法により、生成されたInterop AssemblyがVEEプログラムのディレクトリに直接保存されます。

[COM]タブを選択します。VEEがレジストリをスキャンしてCOMタイプ・ライブラリを探すので、これにはしばらく時間がかかります。Microsoft ActiveX Pluginを選択します。

インポートする名前空間を指定するためのプロンプトが表示されます。この手順は省略可能ですが、ここではInterop.ActiveXPlugin、System、およびSystem.IOを選択します。

注記

[.NET Assembly References]ダイアログ・ボックスでチェック・ボックスのチェックを削除しない限り、[Import .NET Namespaces]ダイアログ・ボックスが毎回表示されます。

[Device]メニューから、[Function & Object Browser]を開きます。メニュー・オプションから[.NET/CLR Objects]を選択します。[Assembly]ウィンドウに、前に行った2つの選択が示されています。

すべての名前空間が[Namespace]ウィンドウにリストされます。すべての型が[Type]ウィンドウにリストされ、それぞれの型のすべてのメンバが[Members]ウィンドウにリストされます。メンバには、コンストラクタ、フィールド、プロパティ、メソッド、列挙が含まれます。

.NETクラス・メンバの選択プロセスは、ActiveXを使用した場合のプロセスとほぼ同じです。ただし、以下のようなわずかな違いがあります。

1. COMは共有（静的）メンバを持ちません。.NETメンバが静的メンバである場合、ヘルプ領域にキーワードSTATICが表示されます。また、メンバ・アイコンの隣に静的アイコン（ [image] ）が表示されます。静的メンバを呼び出す場合は、オブジェクトのインスタンス上ではなく、クラス上で呼び出します。[Function & Object Browser]を使えば構文がわかります。

2. インスタンス・オブジェクトの変数を生成すると、最初の文字が小文字になります。これは、扱っているのがインスタンスメンバであるという手がかりとなります。また、変数の宣言と初期化が必要であることも示します。

3. .NETオブジェクトを作成するには、メンバ・リストでコンストラクタを選択します（コンストラクタとメソッドは共通のアイコン [image] を使用します）。前の図で示したように、[Create Instance]ボタンが使用可能です。このボタンを選択すると、新しい.NETオブジェクトを作成するための[Formula]テンプレートが生成されます。下の図のdateTime出力ピンを、この.NETオブジェクトを入力として要求する任意の[Formula]ボックスの入力ピンに接続できます。

4. .NETのEnum（ [image] ）は強く型付けされているので、ActiveXオブジェクトで行ったようにEnumの代わりに整数定数を使用することはできません。完全なEnum名を（インポートした場合は名前空間を除いて）入力する必要がありますが、[Create Formula]ボタンを使えば入力の手間を多少節約できます。たとえば、examples\dotnetディレクトリのEnum関連サンプルを参照してください。

関連項目

VEEへの名前空間のインポート、.Net Operation Builder、.NET Examples


VEEへの名前空間のインポート

VEE Proへの名前空間のインポート

名前空間は、静的メンバまたは列挙子のためのテンプレートを作成することによって型を限定し、型プレフィックスを不要にする役割を果たします。

使用法

名前空間のインポートは、Visual Basicでの[Imports]ステートメントの使用またはC#での[using]ステートメントの使用と同じです。どちらの場合も、その名前空間からは型の使用を限定する必要はありません。VEEは、名前空間のインポート方法として、2つの方法をサポートします。

1つめの方法は、下の図のように、[.NET Assembly References]メニュー項目のチェック・ボックスを使用することです。

2つめの方法は、[Devices]メニューで[Import .NET Namespaces]オプションを選択することです。.NET名前空間の一覧が表示され、隣にあるチェックボックスを選択するだけで名前空間をインポートできます。

選択したアセンブリに名前空間がない場合、リストは空です。

あるクラスに対して名前空間をまだインポートしていない場合、そのクラスの静的メンバおよび列挙は、VEEのFunction & Object Browserの[Create Instance]ボタンで自動的に完全に限定されます。このため、[Formula]ボックスがはるかに大きくなります。

例

DateTime.veeおよびFileInfo.veeを参照してください。


.NET Operation Builder

.NET Operation Builderは、VEEプログラムで使用する.NET型の選択に使用します。

使用法

下の図に示すように、.NET Operation Builderを使えば、.NETの名前空間と型を容易に選択でき、それに含まれるメソッド、プロパティ、フィールドも選択できます。

.NET Operation Builderを使用するには、まず[Device] [image] [.NET Assembly References]を使って、使用する.NETアセンブリを選択します。選択したアセンブリ（この例ではmscorlib）が[.NET Operation Builder]ダイアログ・ボックスに表示されます。使用する名前空間（この例ではSystem.IO）を選択します。次に、必要な型を選択するために、.NET Operation Builderを使って、使用したいクラス（この例ではDirectory）、列挙、またはインタフェースまでたどっていきます。

必要な型を見つけるもっと簡単な方法として、ツールバーの[Find]ボタンをクリックすることもできます。これにより、ダイアログの右側に[Find a Type]ウィンドウが開きます。使用したい型名または型名の一部を入力して、Enterキーを押します。結果がリスト・ビューに表示されます。結果の1つをダブルクリックすることにより、左側のツリー・ビューでその型に直接移動することができます。

使用する型を選択すると、VEE作業領域にVEEオブジェクトが配置され、操作を追加するためのプロンプトが表示されます。.NETメンバの選択で示したようにダブルクリックすると、Directoryクラスのメンバを選択するためのプロンプトが表示されます。

関連項目

.NETメンバの選択、.NETメンバの編集、.NETコントロールの使用

場所

Devices [image] .NET Operation Builder


.NET操作の選択

操作する型を選択すると、VEEオブジェクトが表示されます。次の図のように、オブジェクトをVEEワークスペースに配置してダブルクリックします。Directoryクラスから操作を選択するためのプロンプトが表示されます。

このダイアログ・ボックスの上部には3つのアイコンがあります。[Create]アイコンは、リストを絞り込んで、選択された型の新しいインスタンスを作成するために使用可能なCreateInstanceコンストラクタだけを表示します。[Declared Only]アイコンは、この型で宣言されているメンバだけを表示します。[All]アイコンは、この型で宣言されているものと親の型から継承したものとを含めてすべてのメンバを表示します。

CreateDirectoryメンバを選択します。

CreateDirectoryメンバを選択したら、設定する必要があります。.NETメンバの編集の2つの図に、このメソッドの設定タブが示されています。

場所

Devices [image] .NET Operation Builder


.NET操作の編集

操作を選択したら、それを編集して、作業の実行に必要な追加情報を指定する必要があります。

使用法

.NET Operation Builderおよび.NETメンバの選択で説明した作業を実行したら、CreateDirectory操作を設定する必要があります。以下の2つの図は、メソッドの設定タブを示します。[Edit Parameters]タブには、新しいディレクトリのパスを入力します。注記:\は特殊文字です。パスの区切り文字には\\または/を使用します。例えば、C:\\Program Files/Agilentのようにします。Tabキーを押すと、VEEが生成するコードが見られます。

[Configure Terminals]タブでは、変数名を設定できます。VEEが生成したデフォルト名と異なる名前を指定したり、VEEがオブジェクトに端子を追加するかどうかを指定したりすることもできます。通常は、これらの設定を変更する必要はありません。

.NET Operation Builderおよび.NETメンバの選択で説明したすべての手順を実行してある場合は、OKを選択し、プログラムを実行すると、ディレクトリが作成されて作業は完了です。

.NET Operation Builderで既存の操作をダブルクリックすることもできます。これにより、Edit Operationダイアログが表示され、既存の操作を編集できます。

関連項目

.NETメンバの選択、.NET Operations Builder

場所

Devices [image] .NET Operation Builder


.NET Control Host

VEE作業領域に追加された.NETコントロールを収容するVEEオブジェクト。

使用法

.NET Frameworkにはいくつかの標準コントロールが付属しており、サードパーティ製コントロールも選択できます。標準コントロールを使用するには、[Device] [image] [Windows Forms Controls]メニューを選択し、リストからコントロールを選択します。

サードパーティ製コントロールについては、メニューの[Device] [image] [Additional .NET Controls]を参照してください。サードパーティ製コントロールを持つアセンブリを[.NET Assembly References]ダイアログで選択した場合、そのコントロールは自動的にこのメニューに表示されます。

.NET Control Hostは、.Netコントロール用のコンテナとして用いられます。ワークスペースにコントロールを追加した場合、VEEによってコンテナが作成されるため、他のVEEオブジェクトと同じように追加したコントロールにアクセスできます。コンテナからは、コントロールの開発者によって組み込まれたコントロール固有のプロパティにもアクセスできます。

コントロールが作業領域に表示される場合、タイトル・バーにタイトルと変数名が表示されます。ピンはないので、ラインを使って他のオブジェクトと接続することはできません。コントロールを操作するには、式から変数名を参照することにより、プロパティの取得／設定や、メソッドの呼出しを行う必要があります。Function & Object Browser（Device Function & Object Browser）を使ってこのような式を持つFormulaオブジェクトを作成することもできますが、新しい.NET Operation Builderオブジェクトを使った方がはるかに作業が容易になります。コントロールのコンテキスト・メニューから&ldquo;Generate .NET Operation Builder&rdquo;を選択します。詳細については、.NET Operation Builderを参照してください。変数名は、基本的にはコントロールの宣言された変数名です。コントロールの宣言された変数名は、Declare Variableオブジェクトによって作成された変数とよく似ていますが、コントロールの変数はすでに初期化されています。宣言はコンテキストにローカルなので、デフォルトでは、変数名はそれが存在するコンテキストの中でのみ使用できます。.NETコントロールにグローバルにアクセスする方法については、下記の注記を参照してください。

オブジェクト・メニュー

  • Help - このVEEヘルプ項目を開き、コンテナ・オブジェクトの説明を表示します。

  • Properties - VEEコンテナ・オブジェクトのプロパティ（タイトル、変数名、アセンブリ名、.NET型など）にアクセスします。

  • Control Properties - コントロールのすべてのプロパティが自動的に記入されるコントロールのプロパティ・グリッドにアクセスします。プロパティはコントロールの種類ごとに異なります。コントロールのプロパティの編集は取り消すことができません。デフォルト値に戻すには、コントロールを削除して作成し直す必要があります。コントロールの一部のプロパティは、VEEプログラムにシリアル化（保存）することができません。このようなプロパティに関しては警告が表示されます。

  • Edit Event Handler… - コントロールに対してイベント・ハンドラUserFunctionが作成されている場合、Edit Event Handlerダイアログ・ボックスを開きます。

  • Create Event Handler… - Create Event Handler UserFunctionブラウザを開きます。このブラウザでは、コントロールから発生したイベントを処理するUserFunctionを作成できます。ブラウザのMemberエリアに表示された各イベントに対して、イベント・ハンドラを作成できます。

  • Generate .NET Operation Builder - この型のコントロールに対する.NET Operation Builderを生成します。

プロパティ（コンテナ・オブジェクト）

Title - コンテナ・オブジェクトの現在のタイトルを表示します。編集も可能です。

Name - コントロールの現在のローカル変数名を表示します。編集も可能です。これにより、コントロールはコンテキストにローカルな変数として宣言され、初期化されます。

.NET Type - コントロールの型

Assembly - コントロールを保持するアセンブリ

注記

.NETサポートを有効にするには、VEEがVEE 6以上の実行モードに設定されている必要があります（Default Preferences）。.NETコントロールは、個別の製品として入手できる場合も、アプリケーションの一部としてインストールされる場合もあります。

VEEはすべての.NETコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、または使用しているときにエラーが発生します。また、以下のようないくぶんわかりにくい問題もあります。

  1. Device [image] Windows Forms Controlsにリストされるコントロールの中には、VEE作業領域に直接配置するのに適しないものがあります。一部のコントロールは他のコントロールの内部に含まれることを想定しているからです。例えば、SplitterはPanelなどのコンテナ・コントロールの内部で使用されることを想定しています。この場合、コンテナ・コントロールをVEEの作業領域に配置した後で、Formulaまたは.NET Operation Builderを使ってコンテナ・コントロールに子コントロールを追加する必要があります。例については、Splitter.veeを参照してください。

  2. コントロールのメソッドの一部（ProcessDialogKey、ProcessDialogChar、ProcessCmdKeyなど）は、コントロールがWindows Formアプリケーションの内部に含まれている場合のみ呼び出されますが、VEEアプリケーションはWindows Formアプリケーションではありません。コントロールの作成者がこれらのメソッドを実装する必要がある場合はあまりありませんが、もし実装した場合は、VEEプログラムからはそのコントロールのすべての機能を利用することができず、予期しない動作が発生する可能性もあります。

  3. Control Propertiesダイアログからコントロールのプロパティを変更した場合、プロパティはVEEプログラムにシリアル化（保存）されます。VEEはシリアル化の順序を明示的に制御しません。したがって、.NETコントロールのプロパティの間に強い関連性がある場合、例えばプロパティAを変更するとプロパティBが変更されるような場合には、保存された状態からコントロールを復元したときに予期した結果が得られない可能性があります。この例では、BがAより前に保存／ロードされるかどうかによって、異なる結果が得られる可能性があります。このような例は一般的にはあまりありませんが、シリアル化の順序への依存性をどうしても回避したい場合には、Formulaオブジェクトまたは.NET Operation Builderオブジェクトを使ってコントロールのプロパティを変更する式を作成する必要があります。そうすれば、順序を明示的に制御できます。

コントロールをVEEの作業領域に追加すると、割り当てられたローカル変数名がタイトル・バーに表示されます。割り当てられた変数名を変更するには、.NET Control HostのNameプロパティを変更します。コントロールにはピンがないので、プログラム中の他のオブジェクトとラインで接続することはできません。コントロールを操作するには、コントロールの変数名を参照する式をFormulaオブジェクトまたは.NET Operation Builderで使用する必要があります。変数はコンテキストにローカルなので、式はコントロールと同じコンテキストに存在する必要があります。

変数名をグローバルにしたい場合は、Declare Variable（[Data] [image] [Variable] [image] [Declare Variable]）を使って新しい変数を宣言します。コントロールの変数名はすでに存在するので、単にグローバルに宣言することはできません。VEEが衝突を禁止するからです。Declare Variableに変数名を入力し、ScopeをGlobalに設定し、TypeをObjectに設定します。Specify Object Typeはチェックしなくてもかまいません。ただし、オブジェクト型の詳細を指定すれば、VEEが自動的に型チェックを行い、指定したAssemblyとClassだけがこの変数に代入されるようにします。その後、下の式のように、コントロールのローカル変数（例えばprogressBar1）を宣言された変数（例えばg_progressBar1）に等しく設定できます。

Set g_progressBar1 = progressBar1

関連項目

.NET Operation Builder

場所

Device [image] .NET Controls


VEEとPIA

VEEとプライマリ相互運用アセンブリ

「.NETの用語」ですでに説明したように、PIAとは「COMで実装された型の型定義を（メタデータとして）含む、一意のベンダ供給アセンブリ」です。プライマリ相互運用アセンブリは1つだけです。プライマリ相互運用アセンブリは、COMタイプ・ライブラリの権威ある発行者による承認を受ける必要があります。VEEでPIAを使用する方法を以下で説明します。

[Device] > [.NET Assembly References]で[COM]タブを選択すると、VEEはレジストリを参照し、マシンに登録されているすべてのCOMタイプ・ライブラリを検出します。COMタイプ・ライブラリを選択したときに、ライブラリにPIAがあり、COMタイプ・ライブラリのPrimaryInteropAssemblyCodeBaseキーが登録されている場合、PIAの位置が説明領域に表示されます。PrimaryInteropAssemblyCodeBaseは、PIAが/codebaseオプション付きで登録されたときにだけ登録されます。すべてのPIAがこの方法で登録されているわけではありません。現在、Agilent IVI-COMドライバはすべて、/codebaseオプション付きで登録されていますが、そうではないアセンブリも多くあります。また、COMタイプ・ライブラリをチェックしたときには、VEEはレジストリの検索しか行いません。VEEは相互運用アセンブリが存在する場合に、相互運用アセンブリをロードしません。[OK]を選択したとき、PIAがない場合には、1つまたは複数の相互運用アセンブリを自動的に生成します。

ただし[Browse]を選択し、PIAまたはInterop Assemblyを直接選択すると、VEEは、どのCOMタイプ・ライブラリに所属しているか、プライマリ相互運用アセンブリかどうかを調べるために、実際に相互運用アセンブリをロードします。これは、COMタブ・リストの参照／選択と単なるチェックとの大きな違いです。相互運用アセンブリがロードされると、VEEが、どのCOMタイプ・ライブラリに所属しているかを見つけ、COMタブ・リストの下の対応するCOMタイプ・ライブラリをチェックマークします。


.NETプログラミング

型変換

新しい型変換関数asClrTypeが追加されました。asClrTypeは、VEEデータ型を.NET/CLRデータ型に変換します。有効な.NET/CLRデータ型は、すべてのプリミティブ型（Boolean、Byte、Sbyte、Int16、Uint16、Int32、Uint32、Int64、Uint64、Char、Double、Single)と、Decimal、Date/Time、Stringです。.NETデータ型が有効でない場合、あるいは変換が失敗した場合、エラーが発生します。

VEEではVEEと.NETのデータ型の間の変換はほとんどの場合自動的に行われるため、asClrTypeが必要な場合はあまりありません。必要なのは、.NETでネイティブにサポートされていない特定の.NETデータ型を使用する場合や、VEEデータ型を.NETオブジェクトとして使用したい場合（例えば.NETオブジェクトのメソッドを呼び出したい場合）だけです。例えば、VEEは.NETのStringとVEEのTextデータ型を自動的に変換しますが、.NETで提供されている便利なString機能を利用したい場合は、VEEのTextを.NETのStringオブジェクトにあらかじめ変換する必要があります。

.NETおよびWin32 API

これら2種類のAPIの比較については、以下を参照してください: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/win32map.asp

プログラミングの実習

新規アセンブリのインストール

アセンブリという言葉の意味がわからない場合は、「.NETの用語」の項目を参照してください。パブリック・アセンブリは、Global Assembly Cache（GAC）にインストールする必要があります。GACにインストールされたアセンブリは、コンピュータ上のどのアプリケーションからも参照できます（詳細については、MSDNを参照してください）。共有アセンブリが更新されたら、[Browse]ボタンを選択し、GACにインストールされる前のアセンブリの元の場所までブラウズすることにより、アセンブリを参照できます。

ほとんどのアセンブリは、GACにインストールされません。こうしたアセンブリは、プライベート・アセンブリと呼ばれます。プライベート・アセンブリは、プライベート・アセンブリを参照するVEEプログラムといっしょに配置する必要があります。最初に[.NET Assembly References]ダイアログ・ボックスを使用してプライベート・アセンブリを参照して選択したときに、そのアセンブリが現在のVEEプログラムと同じディレクトリに存在しなければ、VEEがそこにコピーします。このコピー操作は、VEEプログラムの配布にも役立ち、xcopy展開と呼ばれています。

アセンブリのアップデート

VEEプログラム内で共有アセンブリをすでに参照したことがある場合、新バージョンの共有アセンブリをVEEでロードするには、[File/New]を実行するか、VEEを再起動する必要があります。共有アセンブリではなくプライベート・アセンブリである場合、[File/New]を実行するか、プライベート・アセンブリの新規バージョンを現在のVEEプログラム・ディレクトリに手動でコピーした後、VEEを再起動する必要があります。

インスタンス・メソッドの呼び出し

インスタンス・メソッドを呼び出す場合、先に.NETオブジェクトを宣言して作成するのを忘れがちです。この問題を防ぐには、[Function & Object Browser]および[Create Instance]ボタンを使用して、コンストラクタFormulaテンプレートを最初に生成することをお勧めします。

下の図で、fileInfoはローカルに宣言されており、System.IO.FileInfoオブジェクトとして初期化されます。fileInfo出力ピンを、このオブジェクト・インスタンスを要求する後続のFormulaボックスの入力ピンに配線できます。また、CreateInstanceとfileInfo.LastAccessTimeの2つのFormulaボックスが、VEEによって自動的に作成されます。後は、これらを互いに接続して追加パラメータを指定するだけです。

共有／静的メソッドの呼び出し

.NETメンバを呼び出すとき、メンバが共有／静的であると、[Function & Object Browser]の説明ボックスに「STATIC」と表示されます。静的メソッドは、オブジェクトからではなく、.NETクラスから直接呼び出されます。このため、.NETオブジェクトを作成しておく必要がありません。下の図は、名前空間をインポートした静的メソッドの例です。

ヒント

  • Long/Single/Double.../を要求する.NETメソッドをVEEのFormulaボックスから呼び出しており、パラメータが入力ピン（例えば「A」）から来る場合、入力ピンAをダブルクリックし、必要型をInt32/Real32/Real64などに設定することにより、「Method Not Found」というエラーを回避できることがあります。これは、組み込みのasClrType関数または.NETのSystem.Convert.To*関数を呼び出すよりも簡単です。

  • インスタンス・メンバ用に生成されたFormulaテンプレートは常に小文字で始まります。静的メンバは、その名前空間をインポートしていない限り、完全に限定された名前(名前空間＋クラス名)を持ちます。

  • .NETメンバを呼び出すとき、メンバが静的であると、[Function & Object Browser]の説明ボックスに「Static」と表示されます。静的メソッドは、オブジェクトからではなく、.NETクラスから直接呼び出されます。このため、.NETオブジェクトを作成しておく必要がありません。

  • .NETのenumは、COMのenumと異なります。強く型付けされているからです。.NETには2種類のenumがあります。1つは定数の列挙として処理され、もう1つはビット・フィールドとして処理されます。ビット操作が可能なのは後者のenum型だけです。VEEでは、どちらのenum型に対しても、対応する整数値が[Function & Object Browser]の説明領域に表示されます。後者のenum型に対しては、bitOr、bitAndなどが使用できます。これについてはVEEのサンプルexamples\dotnet\FileAttributes.veeに示されています。

  • [Function & Object Browser]に新しく[Copy to Clipboard]ボタンが追加されました。このボタンを使用して、式テキストをクリップボードにコピーし、後からそれをFormulaボックスの任意の場所に貼り付けることができます。これは、1つのFormulaボックスの内部に複数のFormulaステートメントを入れたいときに特に有効です。

制限

VEEは.NETのDelegateの作成をサポートしません。

例

asClrTypeの例については、StringSplit.veeを参照してください。

インスタンス／静的メソッドの呼び出しの例については、FileInfo.veeを参照してください。

.NETプログラムの他の例については、.NET Examplesを参照してください。


VEEデータ型の.NETへの変換

VEE Proデータ型の.NETへの変換

VEEは、VEEと.NETの両方が元来サポートするすべてのデータ型に対して、VEEと.NET間でデータ型を自動的に変換します。たとえば、Int16、Int32、Real64などです。 この自動変換を無効にして、データを真の.NETオブジェクトとして使用したい場合もあります。このような場合、新しい型変換関数asClrTypeを使用して、VEEデータ型を.NET/CLR型に変換できます。詳細については、以下の変換テーブルを参照してください。

使用法

VEEの.NET操作は通常、パラメータとして精度が上がる（型昇格）データ型を受け入れますが、精度が下がる（型降格）データ型は受け入れません。たとえば、VEEのUInt8を、System.Int16型のパラメータを要求する.NET操作に渡すことができますが、その逆はできません。また、.NET操作がByRefパラメータを要求し、その結果を読み取りたい場合、データ型を正確に一致させる必要があります。例えば、.NETメソッドがByRef Int32型のパラメータを要求する場合、VEEのByRef Int32データ型だけを渡すことができます。結果を読み取る必要がない場合には、ByRefキーワードを省略できます。これにより通常のパラメータ規則が適用されます。

次の表に、VEEと.NET間のデータ型変換関数を示します。

asClrTypeの使用法の例については、StringSplit.veeを参照してください。

表

表1 - VEE 8.5での.NETスカラ・データ型からVEEデータ型への変換

変換前の.NETデータ型 | 変換後のVEEデータ型 | 注記
System.Boolean | Int16 | isVariantBool()を使用して、VEE Int16がSystem.Boolean型であるかどうかを判定します。
System.Byte | UInt8 |
System.Char | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()
System.DateTime | Object | examples\dotnet\DateTime.veeを参照してください。
System.Decimal | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。 System.Decimal構造自体も多数の変換方法を提供します。
System.Double | Real64 |
System.Enum | Object | examples\dotnet\FileInfo.veeを参照してください。
System.Int16 | Int16 |
System.Int32 | Int32 |
System.Int64 | Int64 |
System.SByte | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt16()
System.Single | Real32 |
System.String | Text | VEEは、StringをTextに自動的に変換します。System.Stringクラスの機能を使用したい場合、asClrType()を使ってテキストをSystem.Stringに戻すことができます。例 Set dotNetString = asClrType(veeText, System.String); ModifiedString = dotnetString.Replace( ,_); 例については、examples\dotnet\stringsplit.veeも参照してください。
System.UInt16 | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()
System.UInt32 | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。
System.UInt64 | Object | System.Convert.To*メソッドを使用して、それをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt64()値がInt64に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。
System.Object | Object |

表2 - VEE 8.5でのVEEデータ型から.NETスカラ・データ型への変換

VEEデータ型からの変換 | .NETデータ型への変換 | 注記
Boolean | System.Boolean | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Int16 | System.Int16 | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Int32 | System.Int32 | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Int64 | System.Int64 | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Real32 | System.Single | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Real64 | System.Double | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Text | System.String | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
UInt8 | System.Byte | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
<型のスカラ *> | System.Boolean | Int16(UInt8、Int16、Int32、Real32、Real64、Text)にキャストできるスカラVEEデータ型でasVariantBool()を使用します。より汎用のasClrType()も使用できます。例、asClrType(veescalar, System.Boolean)
Date/Time | System.DateTime | VEEの日付／時刻をReal64型としてストアします。Use asClrType(veeDateTime, System.DateTime). examples\dotnet\DateTime.veeを参照してください。
Object | System.Object | VEEが.NETオブジェクトに対するポインタを保持する場合

表3 - VEE 8.5での.NET配列データ型からVEEデータ型への変換

変換前の.NETデータ型 | 変換後のVEEデータ型 | 注記
System.Boolean Array | Int16 Array | isVariantBool()を使用して、配列がSystem.Boolean型であるかどうかを判定します。
System.Byte Array | UInt8 Array |
System.Char Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 式CreateInstance(mscorlib,System.String,charArray).ToString();を使用して、配列をVEEが自動的に変換できる.NETデータ型に変換できます。
System.DateTime Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。
System.Decimal Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()。 値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。 System.Decimal構造自体も多数の変換方法を提供します。
Double Array | Real64 Array |
System.Enum Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。
System.Int16 Array | Int16 Array |
System.Int32 Array | Int32 Array |
System.Int64 Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()。値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。
System.SByte Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt16()。
System.Single Array | Real32 Array |
System.String Array | Text Array | VEEは、StringをTextに自動的に変換します。System.Stringクラスで多数の有効な関数を使用したい場合、asClrTypeを使用してテキスト配列をSystem.String配列に変換できます。
System.UInt16 Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()。
SystemUInt32 Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()。値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。
System.UInt64 Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。 System.Convert.To*メソッドを使用して、各配列メンバをVEEが自動的に変換できる.NETデータ型に変換できます。例、ToInt32()。値がInt32に適合しない場合、System.OverflowExceptionを示すエラー751が発生します。
System.Object Array | Object | VEEオブジェクトはSystem.Array .NETオブジェクトに対するポインタを保持します。

表4 - VEE 8.5でのVEE配列データ型から.NETデータ型への変換

VEEデータ型からの変換 | .NETデータ型への変換 * | 注記
Int16 Array | System.Int16 Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Int32 Array | System.Int32 Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Real32 Array | System.Single Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Real64 Array | System.Double Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
Text Array | System.String Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
UInt8 Array | System.Byte Array | 他の.NET/CLR型にはasClrTypeを使用して変換します。asClrTypeのドキュメントを参照してください。
< 型 *> Array | System.Boolean Array | Int16(UInt8、Int16、Int32、Real32、Real64、Text)にキャストできるVEEデータ型でasVariantBool()を使用します。より汎用のasClrType()も使用できます。例、asClrType(veeArray, System.Boolean)
Date/Time Array | System.DateTime Array | VEEの日付／時刻は実際はReal64型です。asClrType(veeDateTimeArray, System.DateTime)を使用します。examples\dotnet\DateTime.veeを参照してください。
ref, out, ByRef | スカラまたは上記のマッピング・テーブルによって示された型の配列 | VEEキーワードByRefを使用します。ByRefキーワードを使用しないと、.NET操作の例外は発生しませんが、渡されたパラメータが変更されません。これはおそらく.NETクラス・デザイナが意図していなかったことです。

注記

.NETメソッドを呼び出すためのVEEコード・テンプレート生成には既知の問題があります。VEEがキーワード"ByRef"を生成するのは、.NETメソッドのパラメータがC#で"Ref"または"Out"、またはVisual Basic .NETで"ByRef"と明示的に宣言されている場合に限ります。"ByRef"キーワードが指定されるたびに、VEEはサーバから返されたデータを受け取るための追加のメモリを割り当てます。この既知の問題は、以下の条件が満たされた場合に実害を発生します。

1. パラメータの型が、VEEがサポートする配列型、すなわちText配列、UInt8配列、Int16配列、Int32配列、Real 32配列、Real 64配列のいずれかである。

2. .NETサーバが、パラメータをC#で"Ref"または"Out"、またはVisual Basic .NETで"ByRef"と明示的に宣言していない。

3. .NETサーバがパラメータの値をメソッド内部で実際に変更する。

上記の条件がすべて満たされた場合、.NETサーバから変更された値を取得するには、VEEユーザはパラメータの前に手動で"ByRef"キーワードを追加する必要があります。


.NETおよびIVIドライバ

IVIとは何でしょうか。 IVIは、IVI Foundationによって開発されている新しい計測器ドライバ標準です。IVI Foundationは、テスト計測器のプログラミングの仕様を広めるために設立されたコンソーシアムです。これらの仕様は、さまざまな利点を備えていますが、重要な点として、計測器の相互交換性を容易にします。IVI Foundationの概要については、http://www.ivifoundation.org/をご覧ください。

IVI-COMドライバを使用する理由は何でしょうか。 ベンダ2社がそれぞれのDMMに対してIVI-COMドライバを提供しているとします。IVI標準を満足するには、基本ドライバが相互交換可能でなければなりません。つまり、どちらのドライバをシステムに搭載しても、どちらのベンダのDMMも動作します。コードは、変更することなく再使用可能です。

使用法

VEEでIVI-COMドライバを使用可能にするにはどうすればよいでしょうか。 IVI-COMドライバをインストールします。計測器用のドライバを見つけるには、http://www.agilent.com/find/adnをご覧ください。ADNメンバである場合、メニュー>[Drivers by Driver Type]>[IVI-COM Drivers and Components]から[Downloads]を選択します。IVI-COMドライバをインストールする前に、必ずIVI-COM共有コンポーネントをダウンロードしてインストールしてください。また、共有コンポーネント・インストーラで"Install PIA's"というボタンを必ず選択してください。ADNのメンバでない場合、メンバになれば、Agilentドライバ、評価ソフトウェア、マニュアル、アプリケーション・ノートなどをオンラインで入手できます。この無料サービスに登録するには、新規ユーザ用の登録フォームに必要事項を記入してください。

システムにIVI-COMドライバが登録されると、他のCOMコンポーネントと同様に使用可能になります。ほとんどのCOMコンポーネントと同じく、VEEの[Device]>[.NET References]の[COM]タブに表示されます。

また、[Instrument Manager]でインタフェースを選択し、[Advanced Properties]を選択し、IVI-COM Driverタブを編集することによってもアクセスできます。その後、計測器を選択し、[IVI Driver]ボタンをクリックし、To/Fromトランザクション・ボックスを作成します。

VEEと.NETでIVI-COMドライバを使用可能にするにはどうすればよいでしょうか。 .NETの相互運用テクノロジーを使用します。相互運用によって、IVI-COMドライバがVEEで使用可能になります。選択したCOM DLLに使用可能なプライマリ相互運用アセンブリがない場合、VEEは、相互運用アセンブリを1つ、あるいはCOM .dllが他のタイプ・ライブラリを参照する場合は複数、生成しようとします。VEEはその後、アセンブリ参照をFunction Object Browserの[.NET Object Assembly References]リストに追加します。これにより、IVI-COMドライバは他のCOMタイプ・ライブラリと同様に起動できるようになります。

例

Agilentでは、[Device] > [.NET Assembly References] [COM]タブの使用をActiveXよりも推奨します。IVIドライバに必要なタイプをより多く提供しているからです。これらのサンプルのNotepadは非常に有用であり、十分に研究する価値があります。~installdir\examples\ivi-comには他のサンプルも用意されています。

IVIAgilentSA.vee およびEPM_Averages_IVI_COM.vee

関連項目

IVIとは何でしょうか、.NETとCOM、To/From IVI-COM、To/From IVI-COM - Advanced、COMオブジェクト - トラブルシューティング


VEEおよび.NETセキュリティ

VEEバージョン7.0以上は、.NET FrameworkおよびCLRに依存しています。ネットワーク・インストールの場合、考慮が必要なセキュリティの問題が1つあります。ネットワーク・ドライブにVEEをインストールする場合、

  1. コマンド・プロンプトを開きます。システム・ドライブ（通常はC）に移動します。

  2. ディレクトリ\[winntまたはwindows]\Microsoft.NET\Framework\v2.0.50727に移動します。

  3. プロンプトから以下のコマンドを実行します。

Caspol -machine -addgroup "All_Code" -url File://[VEEInstallDir]/* FullTrust

VEEInstallDirは、ネットワーク・ドライブ上のVEEインストール・ディレクトリです（CaspolはNET Frameworkに付属しており、VEEをインストールするときにインストールされます）。.NET Framework Configuration Wizardを実行しても、同じ結果が得られます。どちらのツールを実行する場合にも、管理者特権が必要となります。

また、VEEプログラムが.NETアセンブリを参照している場合、アクセス可能な場所にアセンブリを生成したり保存したりしなければならない場合があります。このため、例えば.NET参照を持つVEEプログラムをメールやネットワークで入手した後ローカルに保存せずに開くと、警告が発生することがあります。

注記

カスタム.NET（.NET Framework 2.0のアセンブリではなく）をVEEアプリケーションから使用する場合、カスタム.NETがローカル・ドライブに存在しないとセキュリティ例外が発生します。

このような問題を避けるには、次のいずれかの方法を使用します。

  1. カスタム.NETをローカル・ドライブにコピーします。

  2. 上記のようにcaspolを使用します。

  3. [スタート]メニュー => [コントロール パネル] => [管理ツール]で[.Net Framework構成]を実行し、該当するゾーンの信頼度を上げます。


ActiveXコントロールの選択

VEEでActiveXコントロールを使用するには、どのActiveXコントロールを使用したいかをVEEに知らせる必要があります。 [Device] [image] [ActiveX Control References...]をクリックします。表示される[ActiveX Control References]ダイアログ・ボックスには、Windowsレジストリに登録されている使用可能なコントロール・タイプ・ライブラリの一覧が表示されます。下の図に示されたこのダイアログ・ボックスでは、いくつかのコントロールが選択されています。

実際のリストは、インストールされているアプリケーションまたはコントロールによって異なります。コントロールは個別にインストールされる場合も、他のアプリケーションのインストール時にいっしょにインストールされる場合もあります。コントロール名を強調表示すると、その場所がダイアログ・ボックスのステータス領域に表示されます。

使用したいコントロールが見つかったら、コントロール名の隣のチェック・ボックスをクリックして（または名前自体をダブルクリックして）、チェック・マークを表示させます。その後、OKをクリックすると、コントロールがメモリにロードされてVEEで使用可能になり、そのオブジェクト・クラス、ディスパッチ・インタフェース、エクスポートされたイベントを検索できるようになります。複数のコントロールを選択することもできますが、選択されたライブラリはメモリを使用するため、使用する予定があるものだけを選択するようにしてください。

コントロールのタイプ・ライブラリが存在することがわかっているのにも関わらず、リストに表示されない場合は、インストール時にライブラリが登録されなかったことが考えられます。[Browse]ボタンを押して、リストに存在しないタイプ・ライブラリを探します。タイプ・ライブラリ・ファイルを見つけて開くと、VEEはそのタイプ・ライブラリの登録を試み、リストに追加します。

関連項目

ActiveXコントロールの操作, VEEへのコントロールの追加, VEEにおけるActiveXコントロールの使用法


VEEへのコントロールの追加

VEEプログラムにコントロールを追加する方法は、他のオブジェクトの場合と似ています。ActiveXコントロールを選択した後、プログラムに追加します。[Device] [image] [ActiveX Controls] をクリックして、選択されたコントロールのカスケード・メニューを表示します。下の図に例を示します。

注記

この図と上の図では、[ActiveX Control References]で5つのコントロールが選択されていますが、[Device] [image] [ActiveX Controls]カスケード・メニューには6つが表示されます。場合によっては、1回の選択で複数のActiveXコントロールがメニューに追加されることがあります。

コントロールを選択し、表示されたオブジェクトをVEE作業領域の詳細ビューに配置します。コントロールは、メイン、UserObject、UserFunctionのどのコンテキストにも配置できます。コントロールを削除するには、コントロールのオブジェクト・メニューから[Cut]を選択するか、オブジェクトのコンテキスト・メニュー・ボタンをダブルクリックします。下の図を参照してください。

ActiveXコントロール・ホストの違い

ActiveXコントロールは、他のVEEオブジェクトとは異なっています。他のすべてのVEEオブジェクトと異なり、ActiveXコントロールには入力／出力ピンがなく、シーケンス入力／出力ピンもありません。コントロールはデータ・フロー主導ではありません。

他のオブジェクトと同様の方法でコントロールにアクセスできるようにするため、VEEはコントロールのホストとなる特殊なコンテナをプログラム中に作成します。コンテナからは、コントロールの開発者によって組み込まれたコントロール固有のプロパティにもアクセスできます。ここでは、この統合された機能を含めて、ActiveXコントロールと呼んでいます。

オブジェクト・メニューの違いについて以下で説明します。メニュー項目の[Properties]と[Control Properties]では、異なるプロパティのセットが表示されます。ホスト・コンテナのプロパティはコントロールのプロパティとは別になっています。VEEオブジェクト（この場合はホスト・コンテナ）の代表的なプロパティを見るには、[Properties]をクリックします。コントロールの開発者から提供されているActiveXコントロールのプロパティの表示／変更を行うには、[Control Properties]をクリックします。

コントロールの[Properties]ダイアログ・ボックスの[Help]ボタンは、開発者から提供されているコントロールのオンライン・ヘルプを開きます。オブジェクト・メニューの[Help]項目は、ホスト・コンテナのVEEオンライン・ヘルプ項目を開きます。[Create Event Handler...]および[Edit Event Handler...]は、ActiveXオートメーション・オブジェクトの場合と同じ機能を果たします。オートメーション・オブジェクトのイベントの処理を参照してください。

関連項目

ActiveXコントロールの操作, ActiveXコントロールの選, VEEにおけるActiveXコントロールの使用法


VEEにおけるActiveXコントロールの使用法

コントロールをVEEの作業領域に追加すると、追加したコントロールが割り当てられたローカル変数名とともにタイトル・バーに表示されます。割り当てられた変数を変更するには、コントロールのタイトル・バーをダブルクリックして[ActiveX Control Properties]ダイアログ・ボックスを開きます。GeneralタブでName:の隣の値を変更します。

コントロールにはピンがないので、プログラム中の他のオブジェクトとラインで接続することはできません。コントロールを操作するには、コントロールの変数名を参照する式をFormulaオブジェクトで使用する必要があります。コントロールの変数名のスコープは「コンテキストにローカル」なので、式はコントロールと同じコンテキストに存在する必要があります。

割り当てられたローカル変数の使用

Calendarコントロールをプログラムに追加すると、ローカル変数名Calendarが割り当てられます。タイトル・バーにはCalendarと表示されます。コントロールを操作するには、Calendarコントロールと同じテキストにFormulaオブジェクトを追加します。以下の例は、Calendarと呼ばれるVEEローカル変数によって参照されるActiveXコントロールのプロパティの設定、プロパティの取得、メソッドの呼出し方法を示しています。

  • Calendar.Day = 24;

  • Month = Calendar.Month;

  • Calendar.AboutBox()

コントロール用のグローバル変数の宣言

変数名をグローバルにしたい場合は、Declare Variable （[Data] [image] [Variable] [image] [Declare Variable]）を使って新しい変数を宣言します。これは、オートメーション・オブジェクト変数の宣言で説明した変数宣言に似ています。Calendarなどのコントロールの変数名はすでに存在するので、グローバルに宣言することはできません。VEEが衝突を禁止するからです。一般的な命名規則は、ローカル変数名 (g_localNameのように）を適用して、g_calendarという名前を付けることです。

Declare Variableに新しい変数名を入力し、ScopeをGlobalに設定し、Type:をObjectに設定します。[Specify Object Type]をチェックして特定のLibraryやClassを指定する必要はありません。ただし、指定した場合は、VEEが自動的に型チェックを行い、指定したLibraryとClassだけがこの変数に代入されるようにします。

グローバル変数を宣言したら、Formula式を使ってコントロールのローカル変数名（例えばCalendar）を宣言した変数名（例えばg_calendar）に等しく設定します。下の式に示されているように、SETキーワードを使用することが重要です。

SET g_calendar = Calendar

関連項目

ActiveXコントロールの操作, ActiveXコントロールの選択, VEEへのコントロールの追加


ActiveXコントロールの操作

ActiveXコントロールのプロパティの設定／取得、メソッドの呼出し、イベントの処理方法は、オートメーション・オブジェクトの処理およびオートメーション・オブジェクト・イベントの処理で説明したActiveXオートメーション・オブジェクトの場合と同じです。

VEEではActiveXコントロールをホスト・オブジェクトに含めることによってアクセスを可能にしていますが、プログラム実行時のコントロールの動作には多少の違いがあります。基本的に、コントロールは一度に一箇所（詳細ビューかパネル・ビューのどちらか）にしか表示できません。

例えば、プログラムの詳細ビューにコントロールを追加すると、プログラムが動的にパネルを表示して、パネル上にShow Panel on ExecuteまたはshowPanel()を使用してコントロールが表示されるとします。パネルがクローズするまで、詳細ビューのコントロールは空白のままになります。パネルがクローズすると、詳細ビューにコントロールが再表示されます。

関連項目

ActiveXコントロールの選択, VEEへのコントロールの追加, VEEにおけるActiveXコントロールの使用法


VEEにおけるActiveXオートメーションの使用法

ActiveXオートメーションでは、VEEをオートメーション・コントローラとして使用して、Microsoft Word、Excel、Access、Crystal Reportsなどの他のWindowsアプリケーションを制御できます。アプリケーションにデータを送ってレポートを作成したり、アプリケーションからデータを読み取ったりすることができます。オートメーション機能を持つアプリケーションに対しては、Dynamic Data Exchange（DDE）ではなくこの機能を使用します。

ActiveXコントロールはさまざまなメーカから提供されています。ActiveXオートメーション・プロパティ、メソッド、イベントによってドメイン固有のサービスを提供することにより、VEEの機能の拡張が図られます。ほとんどのActiveXコントロールにユーザ・インタフェースも装備されているので、「ソルダ」などのコントロールを操作することによって、VEEスライダ・オブジェクトの場合とまったく同じように、値をプログラムに入力することができます。

VEEはすべてのActiveXコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、またはコントロールを使用しているときにエラーが発生する場合があります。正常に機能しないことがわかっているコントロールのリストを表示するには、ここをクリックします。

注記

ActiveXサポートを有効にするには、[Default Preferences] ダイアログ・ボックスの[Genral] タブで、VEEをVEE 5以上の実行モードに設定する必要があります。VEE 8は新しいプログラムのデフォルト・モードです。VEEウィンドウの最下部にあるステータス・バーには、現在のモードが表示されています。VEEバージョン3.x、4.x、5.xで開発したプログラムにActiveX機能を追加する場合は、VEE 5以上の実行モードでプログラムが動作することを確認してから新しい機能を追加してください。詳細については、[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [実行モード]を参照してください。

ActiveXオートメーションおよびActiveXコントロールの使い方を示すために、サンプルがいくつか用意されています。これらのサンプルは、VEEインストール・ディレクトリの\examples\ActiveXAutomationおよび\ActiveXControlsにあります。これらのサンプルをオープンして実行するには、 Help [image] Open Example...を使用します。

関連項目

オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


オートメーション・オブジェクトをVEEで使用可能にする

Windowsアプリケーションをインストールする際に、多くの場合、アプリケーションをオートメーション・サーバとして動作させるためのActiveXタイプ・ライブラリがインストールされます。タイプ・ライブラリは、ActiveXオブジェクトの機能を記述するもので、システムに存在すれば使用できます。VEEで個々のタイプ・ライブラリを選択した方がよい理由は次のとおりです。

ActiveXオブジェクト用に宣言された変数でオブジェクトの型が定義されている場合に、VEEが型チェックを実行できるようにするため（オートメーション・オブジェクト変数の宣言を参照）。

オートメーション・オブジェクトから発生したイベントを捕捉するため（オートメーション・オブジェクトのイベントの処理を参照）。

ActiveXオブジェクト・ブラウザで情報を表示するため（ActiveXオブジェクト・ブラウザの使用法を参照）。

プログラムで参照するタイプ・ライブラリを選択するには、 [Device] [image] [ActiveX Automation References…]をクリックします。[ActiveX Automation References]ダイアログ・ボックスが表示され、Windowsレジストリに登録されているすべてのタイプ・ライブラリのリストが表示されます。下の図のダイアログ・ボックスでは、Microsoft Accessライブラリが選択されています。

実際のリストは、インストールされているアプリケーションによって異なります。ライブラリ名を強調表示すると、その場所がダイアログ・ボックスのステータス領域に表示されます。使用したいオートメーション・サーバが見つかったら、ライブラリ名の隣のチェック・ボックスをクリックして（または名前自体をダブルクリックして）、チェック・マークを表示させます。次に[OK]をクリックします。

これにより、選択したタイプ・ライブラリがロードされ、エクスポートされているオブジェクト・クラス、ディスパッチ・インタフェース、イベントが検索されます。複数のライブラリを選択することもできますが、選択されたライブラリはメモリを使用するため、使用する予定があるものだけを選択するようにしてください。

オートメーション・サーバのタイプ・ライブラリが存在することがわかっているのにも関わらず、リストに表示されない場合は、対応するアプリケーションがインストールされたときにライブラリが登録されなかったことが考えられます。[Browse]ボタンを押して、リストに存在しないタイプ・ライブラリを探します。タイプ・ライブラリ・ファイルを見つけて開くと、VEEはそのタイプ・ライブラリの登録を試み、リストに追加します。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


オートメーション・オブジェクト変数の宣言

ActiveXオートメーション・オブジェクトのための変数を宣言するには、新しいObjectデータ型を使用します（[Data] [image] [Variable] [image] [Declare Variable]）。宣言された変数は、別のプロセスに存在するオブジェクトへの参照です。例えば、AccessのComboBoxを指すことができます。下の図に示すように、変数の[Type]をObjectに設定し、[Sub Type]をCOMに設定すると、ダイアログ・ボックスが拡張されて、ライブラリ名、クラス、有効なイベントが表示されます。

オブジェクト変数の型をさらに詳細に指定するには、[Edit]ボタンをクリックして[Specify Object Type]ダイアログ・ボックスを表示し、ライブラリ名とクラス名を指定したり、クラスで使用できるイベントを有効にしたりします。

Accessオブジェクト・ライブラリを使用する場合、次に示すように、変数comboを宣言して、オブジェクト型をLibrary: AccessおよびClass: ComboBoxに指定できます。この例では、クラスComboBoxにイベントが含まれています。イベントを使用するには、 [Enable Events]をクリックします。クラスにイベントがない場合、チェック・ボックスは淡色表示になります。

オブジェクト型を指定した後、[OK]をクリックしてダイアログ・ボックスを閉じ、[Declare Variable]に戻ると、次の情報が表示されます。

イベントを有効にした場合、捕捉したいイベントのそれぞれに対してイベント・ハンドラUserFunctionを作成します。イベントの使用法の詳細については、オートメーション・オブジェクトのイベントの処理を参照してください。

他のVEE変数と同様、変数の宣言は省略可能であり、宣言によってオートメーション・オブジェクトがプログラム中に作成されるわけではありません。ただし、オートメーション・オブジェクトの変数を宣言し、オブジェクト型の詳細を指定すれば、VEEが自動的に型チェックを行い、指定したLibraryとClassのオブジェクトだけがこの変数に代入されるようにします。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


プログラムでのオートメーション・オブジェクトの作成

VEEからサーバ・アプリケーションを制御するには、プログラムでオートメーション・オブジェクトを作成する必要があります。このためにはCreateObject関数を使用します。この関数をプログラムに入れるには、ツールバーの[fx]ボタンをクリックしてFunction & Object Browser を表示し、次のように選択します。

Built-in Functions=>ActiveX Automation=>CreateObject

[Create Formula]をクリックし、Formulaオブジェクトをプログラムに配置します。Formulaには次の式が含まれます。

CreateObject(ProgID)

この式は、必要な動作を実行させるために変更する必要があります。

注記

ProgIDは、作成するオートメーション・オブジェクトを識別する文字列です。オートメーション・オブジェクトのProgIDを知るには、ベンダのドキュメントを参照してください。

ほとんどの場合、サーバ・アプリケーションの新しいインスタンスにオートメーション・オブジェクトの新しいインスタンスを作成します。例えば、次のVEEの式は、Excelの新しいインスタンスを起動し（Excelがすでに動作していた場合でも）、新しい"Workbook"オブジェクトへの参照をexcel変数に代入します。

SET excel = CreateObject("Excel.Sheet")

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


DCOM（Distributed Component Object Model）の使用法

DCOMは、オートメーション・クライアント（VEE）がオートメーション・サーバ（Excel、Accessなど）をリモート・コントロールするために用いられます。例えば、1台のコンピュータでVEEを実行し、別のコンピュータで動作しているExcelを制御することができます。2台目のコンピュータにはVEEがインストールされている必要はなく、VEEから制御するアプリケーションがインストールされているだけでかまいません。

このために、CreateObject関数は、オブジェクトをインスタンス化するリモート・ホスト・コンピュータ（サーバ）の名前を指定するオプションの第2パラメータを取ります（この機能を使用するには、クライアントとサーバの両方のコンピュータにDCOMがインストールされ、dcomcnfg.exeによって適切なセキュリティ設定が実行されている必要があります）。この追加パラメータを使用した場合、CreateObject()の定義は次のようになります。

CreateObject ("ProgID", ["hostName"])

ここで、hostNameはText型でなければなりません。hostNameは有効なUNCまたはDNSドメイン名で指定できます。有効なhostName指定を次に示します。

Set obj = CreateObject ("ProgID", "server")

Set obj = CreateObject ("ProgID", "\\\\server")

Set obj = CreateObject ("ProgID", "server.domain.com")

Set obj = CreateObject ("ProgID", "135.5.33.19")

VEEでは、リモート・コンピュータ上でオブジェクトをインスタンス化するために使用されるセキュリティ設定に関するプログラム的な制御は用意されていません。これは、dcomcnfg.exeプログラムを使って静的に実行できます。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


既存のオートメーション・オブジェクトの取得

オートメーション・オブジェクトをすでに作成してある場合、GetObject関数を使って、アクティブなオブジェクトを取得するか、既存のオブジェクトをファイルからロードすることができます。この関数をプログラムに入れるには、ツールバーの [fx] ボタンをクリックしてFunction & Object Browserを表示し、次のように選択します。

Built-in Functions => ActiveX Automation => GetObject

[Create Formula]をクリックし、Formulaオブジェクトをプログラムに配置します。Formulaには次の式が含まれます。

GetObject("fileName", "ProgID")

この式は、必要な動作を実行させるために変更する必要があります。

次の式は、アクティブなオブジェクトを取得し、現在実行中のExcelアプリケーションのApplicationオブジェクトに対する参照を返します。Excelが動作していない場合、この呼び出しは失敗します。

SET excel = GetObject("","Excel.Application")

次の式は、既存のオブジェクトをファイルからロードします。ProgIDパラメータはオプションです。

SET excel = GetObject("d:/tmp/TestData.xls","Excel.Sheet")

または

SET excel = GetObject("d:/tmp/TestData.xls")

現在実行中のExcelアプリケーションでd:\tmp\TestData.xlsに関連付けられているシート・オブジェクトへの参照を返します。Excelが実行中でない場合、オブジェクトのロードの前にExcelが起動されます。ProgIDを省略した場合、VEEはCOM（Component Object Model）ライブラリを使って、ファイルに関連付けられているアプリケーションを調べます。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


オートメーション・オブジェクトの操作

オートメーション・オブジェクトを作成したら、オブジェクトを操作することによりサーバ・アプリケーションを制御できます。オートメーション・オブジェクトの操作には、プロパティの取得、プロパティの設定、メソッドの呼び出しの3つの基本操作があります。このセクションでは、これらの操作について、cell、sheet、excelという初期化済みのオブジェクトを例として説明します。VEEのキーワードSETとByRefを紹介します。

プロパティの取得と設定

このセクションの式は、オブジェクトのプロパティの取得と設定の例です。次の式はプロパティを取得します。valueプロパティはセルの内容を返します。

contents = cell.value

次の式では、valueプロパティはセルの内容を返します。

contents = sheet.cells(1,1).value

次の式では、前の式と同じプロパティ取得操作を、.valueプロパティを省略することにより実現しています。これが可能なのは、このプロパティがデフォルト・プロパティ（後述）だからです。

contents = sheet.cells(1,1)

右辺では、内容すなわちデフォルトのプロパティであるvalueを使用したい場合（デフォルトではそうなります）と、値でなくオブジェクトへのポインタを使用したい場合があります。オブジェクトのポインタを取得するには、SETを使ってVEEにデフォルト値を取得しないように指示する必要があります。次の式は、オブジェクトの参照を設定しています。ここでは、セル変数がセルのコレクションの中の1つのセルを参照するように設定されます。

SET cell = sheet.cells(1,1)

この例と2番目の例との違いは、右辺のオブジェクトのデフォルト・プロパティでなくオブジェクト自体を左辺に代入することをSETによって指定していることです。

以下の式は、オブジェクトのプロパティを設定する例です。次の3つの式は、デフォルト・プロパティを使用しているので同じです。

cell.value = "Test Data2:"

sheet.cells(1,1).value = "Test Data2"

sheet.cells(1,1) = "Test Data2"

デフォルト・プロパティについて

ほとんどのオートメーション・オブジェクトは、デフォルト・プロパティまたはデフォルト・メソッドという概念をサポートします。この概念は、前の例のようにオートメーション・オブジェクトを操作する場合に使用できます。セルの場合、デフォルト・プロパティはvalueです。したがって、上記のプロパティ取得の最初の例は、この概念を利用して.valueプロパティを省略することにより、次のように指定できます。

contents = cell

これより、次の式を考えると、

contents = sheet.cells(1,1)

この式は単にセルのコレクションの中の1つのセルを返すのではなく、そのセルのデフォルトのプロパティ（.value）を評価し、次の式と同じ意味になります。

contents = sheet.cells(1,1).value

セルのコレクションからセル自体を取得するには、次のように式でキーワードSETを使用する必要があります。

SET cell = sheet.cells(1,1)

これは、cellをExcelのセルへのポインタに設定します。これを次の式（上記と同じ）と比べてみてください。

contents = sheet.cells(1,1)

この場合は、Excelのセルの内容がcontentsに入ります。また、.valueプロパティはSet Propertyでも省略可能なので、次の2つの式は同じ機能を果たします。

cell.value = "Test Data&rdquo;

cell = "Test Data"

メソッドの呼び出し

メソッドの呼び出しはプロパティの取得と似ていますが、メソッドは関数と同様に括弧()を伴い、パラメータを取ることができます。プロパティは通常、オブジェクトの属性の値を取得または設定するために用いられます。メソッドは通常、動作を実行するために用いられます。

次の式は、オブジェクトのメソッドを呼び出す例です。

result = excel.CheckSpelling("aardvark")

デフォルトでは、パラメータは値で渡されます。例えば、cells(1,1)は実際にはメソッドを呼び出し、2つのパラメータ（1と1）を渡します。値渡しでは、単にパラメータの値がExcelに渡され、戻り値が返されます。パラメータの値は変更されません。

一部のオートメーション・メソッドは、参照渡しのパラメータを持っています。パラメータの値がオートメーション・サーバによって変更され、パラメータの新しい値がVEEに返されます。例えば、ActiveX計測器コントロールには、次の式で呼び出されるオートメーション・メソッドが存在するかもしれません。

passed = Scanner.GetReading (ByRef Reading)

メソッドの戻り値passedは、getReadingが成功した場合はtrue、成功しなかった場合はfalseになり、他の値はByRefパラメータReadingに返されます。変数Readingは関数に渡す前に初期化し、式を含むFormulaオブジェクトに出力端子を設けて、戻り値を使用できるようにする必要があります。

VEEはByRefキーワードをサポートし、Function & Object BrowserはByRefで渡されるパラメータを情報領域に表示します。ByRefは一部のデータ型をサポートしません。表「VEEデータ型からオートメーション・スカラ・データ型への変換」を参照してください。

列挙の使用法

タイプ・ライブラリは列挙を提供する場合があります。これはVEEのFunction & Object BrowserのClass領域に表示されます。列挙を使うと、オブジェクトのメソッドやプロパティが使いやすくなります。例えば、ExcelのWindowオブジェクトにはWindowStateというプロパティがあります。WindowStateプロパティはXlWindowState列挙型です。この列挙には次の3つの値があります。

xlMaximized（-4137）

xlMinimized（-4140）

xlNormal（-4143）

VEEは列挙をサポートするので、オブジェクトのメソッドとプロパティを使用する際に次の式が使用できます。

Window.WindowState = xlMinimzed

ActiveXオブジェクト・ブラウザの使用法

ActiveXオブジェクト・ブラウザはFunction & Object Browserの一部です。Function & Object Browserは、ツールバーの [fx] を押すと表示されます。Type: ActiveX Objectsを選択すると、ブラウザの構成が変化します。ブラウザでは、ActiveXオブジェクトが提供しているプロパティ、メソッド、イベントを調べることができます。ActiveX情報がここに表示されるのは、オートメーションまたはコントロール・タイプ・ライブラリを選択してある場合だけです（[Device] [image] [ActiveX Automation References] または [ActiveX Control References]）。Accessタイプ・ライブラリに関するActiveX情報を表示したFunction & Object Browserを下に示します。

[Library]名を選択すると、[Class]領域に、使用可能なディスパッチ・インタフェース（dispinterfaces）と列挙が表示されます。選択されたdispinterfaceに対して、使用可能なプロパティ、メソッド、イベントが[Member]領域に表示されます。列挙に対しては、定数のリストが表示されます。上の図には、Accessライブラリで使用できる機能の一部が表示されています。選択されたComboBoxというdispinterfaceには、複数のプロパティ、1つのメソッド、多数のイベントがあり、[Member]領域に表示されています。下の図は、ブラウザの[Classes]領域と[Members]領域の項目の識別アイコンと、それらの間の関係を示します。

ブラウザの情報領域（ボタンの上）には、プロパティ、メソッド、イベント、定数に関するヘルプ文字列が表示されます（ヘルプ情報がオートメーション・オブジェクトによって提供されている場合）。この構文では、オブジェクトの型情報がパラメータ・リストに含まれます。角かっこ[ ]で囲まれたパラメータは省略可能です。アプリケーションによっては、このヘルプ文字列は提供されていない場合があります。

型情報は、ActiveXオブジェクトのプロパティ、メソッドのパラメータ、戻り値型に対して提供されています。パラメータの型が指定されていない場合、デフォルトの型はVT_VARIANTです。ほとんどの場合、VEEはVT_VARIANTの型変換を自動的に処理します。オートメーション・データ型とVEEデータ型の間の変換の詳細については、この表と次の表を参照してください。

プロパティに関しては、ブラウザはプロパティの型情報、例えば読み取り専用または書き込み専用であるかどうかや、デフォルトのプロパティかどうかなどを表示します。プロパティの取得または設定を行うためのFormulaオブジェクトを作成できます。次に示すのは、ブラウザのプロパティの情報領域に表示される内容の例です。

DEFAULT PROPERTY Name as Text

メソッドに関しては、ブラウザはパラメータ・リスト中の各パラメータと戻り値の型情報を表示します。メソッドはデフォルト・メンバになることもできるので、そのことも表示されます。メソッドを呼び出すように設定されたFormulaオブジェクトを作成できます。次に示すのは、ブラウザのメソッドの情報領域に表示される内容の例です。

METHOD Void SetData(vValue, vFormat)

イベントに関しては、ブラウザはメソッドと同じ型情報を表示します。ただし、イベントに関連するイベント・ハンドラは、通常はクライアント・アプリケーションから呼び出されます。オートメーションによってAccessを制御する場合、Accessがイベント・ハンドラUserFunctionを呼び出します。ActiveXコントロールを使用する場合、ActiveXコントロールがイベント・ハンドラUserFunctionを呼び出します。

コールバック・イベント・ハンドラ関数はVEEプログラムからは呼び出されないので、[Create Formula]ボタンは淡色表示になっています。イベントに関しては情報を表示できるだけです。Function & Object Browserでは、イベント・ハンドラUserFunctionは作成できません。イベントは特定のActiveXオートメーション変数またはActiveXコントロールに結び付ける必要があるからです。

イベント・ハンドラを作成するには、Declare VariableまたはActiveXコントロールのオブジェクト・メニューを使用します。次に示すのは、ブラウザのイベントの情報領域に表示される内容の例です。

EVENT Void Click()

列挙の定数に関しては、ブラウザは定数の値を表示します。次に示すのは、ブラウザの定数の情報領域に表示される内容の例です。

CONSTANT tvwRootLines = 1

定数値が0より小さいか1024より大きい場合、VEEは定数の16進値も表示します。情報は次のように表示されます。

CONSTANT xlNormal = -4143 (#HFFFFEFD1)

[Help]ボタンをクリックすると、ヘルプ・ファイルが開き、選択されたActiveXオブジェクト・メンバに関する項目が表示されます（情報がオブジェクトによって提供されている場合）。情報がない場合は、ダイアログ・ボックスが表示され、選択されたメンバに関するヘルプがないことを示します。このヘルプ情報はアプリケーション・ベンダから提供されるもので、VEEオンライン・ヘルプの一部ではありません。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, データ型の互換性, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


データ型の互換性

ActiveXオートメーションはいくつかのデータ型をサポートしています。このセクションでは、VEEデータ型とActiveXオートメーション・データ型との間で行われる型変換について説明します。型変換は自動的に行われます。

表1は、サポートされるオートメーション・データ型と、VEE 85実行モードでの対応するVEEデータ型を示します。

表1 VEE 85実行モードでのオートメーション・スカラ・データ型からVEEデータ型への変換

変換前のオートメーション・データ型 | 変換後のVEEデータ型 | 注記
VT_EMPTY | Text | 空文字列（""）のテキストが返されます。バリアントがVT_EMPTY型だったかどうかを判定するには、isVariantEmpty()を使用します。
VT_NULL | Text | 空文字列（""）のテキストが返されます。バリアントがVT_NULL型だったかどうかを判定するには、isVariantNull()を使用します。
VT_UI1 | UInt8 |
VT_UI2 | UInt16 |
VT_I2 | Int16 |
VT_I4 | Int32 |
VT_I8 | Int64 |
VT_R4 | Real32 |
VT_R8 | Real64 |
VT_CY | Real64 | 小数点以下4桁の8バイト固定小数点数で、VEEのReal64に変換されます。バリアントがVT_CY型だったかどうかを判定するには、isVariantCurrency()を使用します。
VT_DATE | Real64 | 1899年12月30日からの日数で、VEEの日付／時刻表現である0001年1月1日からの秒数に変換されます。
VT_BSTR | Text |
VT_DISPATCH | Object |
VT_ERROR | Int32 | scodeの値を持つInt32が返されます。バリアントがVT_ERROR型だったかどうかを判定するには、isVariantError()を使用します。
VT_BOOL | Boolean |
VT_VARIANT | * | ByRefの場合（VT_VARIANT | BYREF）のみ有効です。 この場合、バリアントは別のバリアントを指します。VEEは埋め込まれたバリアントの型に基づいてコンテナを作成します。
VT_UNKNOWN | Object |

表2は、サポートされるVEE 85モードのデータ型と、対応するオートメーション・データ型を示します。上記の表に示された逆方向のマッピングと異なり、ここに示すものは固定された1対1のマッピングではありません。ほとんどのオートメーション・サーバ・オブジェクトは、データを必要なデータ型に変換する機能を持っています。

例えば、目的のプロパティがlong整数（点のX座標など）の場合、正確に一致するInt32だけでなく、実数や、数字からなるテキスト文字列なども渡すことができます。ただし、配列は常にVARIANTとして渡され、使用可能なデータ型と配列の種類は、目的のCOMオブジェクトのインプリメンテーションによって異なります。

表2 VEE 85実行モードでのVEEデータ型からオートメーション・スカラ・データ型への変換

変換前のVEEデータ型 | 変換後のオートメーション・データ型 | 注記
Uint8 | VT_UI1 |
UInt16 | VT_UI2 |
Int16 | VT_I2 |
Int32 | VT_I4 |
Int64 | VT_I8 |
Real32 | VT_R4 |
Real64 | VT_R8 |
Text | VT_BSTR |
Boolean | VT_BOOL | Int16にキャストできる任意のスカラVEEデータ型（UInt8、Int16、Int32、Real32、Real64、Text）に対して、asVariantBool()を使用します。
<型*のスカラ> | VT_CY | Real64にキャストできる任意のスカラVEEデータ型（UInt8、Int16、Int32、Real32、Real64、Text）に対して、asVariantCurrency()を使用します。
<型*のスカラ> | VT_DATE | Real64にキャストできる任意のスカラVEEデータ型（UInt8、Int16、Int32、Real32、Real64、Text）に対して、asVariantDate()を使用します。
<型*のスカラ> | VT_ERROR | Int32にキャストできる任意のVEEデータ型（UInt8、Int16、Int32、Real32、Real64、Text）に対して、asVariantError()を使用します。Int32の値は、エラーのscode（エラー番号）として使用されます。
Variant | <バリアント型*のスカラ> | VEEコンテナの現在の型が、適切なバリアント型に変換されます。例えば、VariantコンテナがVEEのInt32を保持している場合、VEEはVT_I4型のバリアントを作成します。
Object | VT_DISPATCH | VEEがオブジェクトに対するIDispatchポインタを保持する場合。
Object | VT_UNKNOWN | VEEがIDispatchポインタでなくIUnknownポインタを保持する場合。

表3は、オートメーション・データ型とVEE 85実行モードのデータ型との間の配列変換を示します。

表3 VEE 85実行モードでのオートメーション配列データ型からVEEデータ型への変換

変換前のオートメーション・データ型 | 変換後のVEE データ型 | 注記
VT_UI1 | UInt8 Array |
VI_UI2 | UInt16 Array |
VT_I2 | Int16 Array |
VT_I4 | Int32 Array |
VT_I8 | Int64 Array |
VT_R4 | Real32 Array |
VT_R8 | Real64 Array |
VT_BSTR | Text Array |
VT_BOOL | Boolean Array | バリアント配列がVT_BOOL型だったかどうかを判定するには、isVariantBool()を使用します。
VT_CY | Real64 Array | 小数点以下4桁の8バイト固定小数点数で、VEEのReal64に変換されます。バリアント配列がVT_CY型だったかどうかを判定するには、isVariantCurrency()を使用します。
VT_DATE | Real64 Array | 1899年12月30日からの日数で、VEEの日付／時刻表現である0001年1月1日からの秒数に変換されます。バリアントがVT_DATE型かどうかを判定するには、isVariantDate()を使用します。
VT_ERROR | Int32 Array | scodeの値を持つInt32が返されます。バリアント配列がVT_ERROR型だったかどうかを判定するには、isVariantError()を使用します。
VT_VARIANT | <単一の型の配列またはレコード> | 配列要素がすべて同じ基本データ型の場合、VEEは表1のスカラ・マッピングに示された型の配列を作成します。混合データ型配列を持つバリアントに対しては、VEEレコードが作成されます。
VT_DISPATCH | - | Object型の配列はサポートされません。
VT_UNKNOWN | - | Object型の配列はサポートされません。

表4は、オートメーション・データ型の修飾子を示します。

表4 オートメーション・データ型の修飾子

オートメーション型修飾子 | VEE型 | 注記:
VT_BYREF | 上記のスカラ・マッピング表に示された型のスカラまたは配列。 | 例: VT_BYREF | VT_BSTRはVEEのTextコンテナを生成します。このスカラVT_VARIANTの場合、バリアントは別のバリアントを指します。VEEは埋め込まれたバリアントのデータ型に基づいてコンテナを作成します。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, オートメーション・オブジェクトのイベントの処理, オートメーション・オブジェクトの削除


オートメーション・オブジェクトの削除

オートメーション・オブジェクトは、VEEがオブジェクトへの参照を解放した時点で、自分自身を削除する責任があります。VEEがオートメーション・オブジェクトへの参照を保持しなくなると、VEEはオブジェクトに参照が解放されたことを通知します。オブジェクトは、他のActiveXオートメーション・コントローラ・アプリケーションからまだ使用されている場合を除いて、自分自身を削除します。VEEは次の場合にオートメーション・オブジェクトへの参照を解放します。

オートメーション・オブジェクトの変数名に対してDelete Variableオブジェクトが実行された場合。ただし、VEEはこれらのオートメーション・オブジェクトに対して別のポインタを保持している可能性があります。詳細についてはDelete Variableを参照してください。

[Default Preferences]で[Delete Variables at Prerun]がオンになっており、プログラムを再始動した場合。

VEEが終了するか、 [File] [image] [New]または[File] [image] [Open] コマンドが使用された場合。

オートメーション型修飾子 | VEE型 | 注記:
VT_BYREF | 上記のスカラ・マッピング表に示された型のスカラまたは配列。 | 例: VT_BYREF | VT_BSTRはVEEのTextコンテナを生成します。このスカラVT_VARIANTの場合、バリアントは別のバリアントを指します。VEEは埋め込まれたバリアントのデータ型に基づいてコンテナを作成します。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトのイベントの処理


オートメーション・オブジェクトのイベントの処理

オートメーション・オブジェクトはイベントを発生することができます。オートメーション・コントローラであるVEEでは、UserFunctionを通じてイベントを捕捉できます。特定の型の変数を宣言し、そのイベントを有効にしておけば、イベントを発生するオートメーション・オブジェクトに対してイベント・ハンドラUserFunctionを作成できます。イベント・ハンドラUserFunctionは、オブジェクトが発生する各イベントに対して作成できます。

イベント・ハンドラUserFunctionを作成するには、オブジェクトのための変数を宣言し、そのイベント（存在する場合）を有効にする必要があります。

1 変数を宣言して型を指定し、イベントを有効にしたら、Declare Variableのオブジェクト・メニューを開きます。

オブジェクト・メニューで、[Create Event Handler…]をクリックします。[Create Event Handler UserFunction]ブラウザが表示されます。下の図を参照してください。

[Member]領域には、[Class]領域に表示されたディスパッチ・インタフェースに対して使用できるすべてのイベントのリストが表示されます。

2 イベントをクリックして選択します。

イベントを選択すると、ブラウザの情報領域にイベントの詳細が表示され、ステータス領域にVEEが作成するUserFunctionのタイトルが表示されます。イベントの使用に関する情報を見るには、[Help]ボタンを押します。オンライン・ヘルプはライブラリ・ベンダから提供されるため、イベントによってはヘルプがない場合もあります。イベントのオンライン・ヘルプはVEEオンライン・ヘルプの一部ではありません。

3 [Create Handler]をクリックします。新しいUserFunctionウィンドウが表示されます。このダイアログ・ボックスをもう一度開いて別のイベント・ハンドラを作成した場合、既存のハンドラを持つイベントの隣のアイコンの色が変化します。

新しいイベント・ハンドラUserFunctionは、必要な入力または出力以外は空です。イベントを適切に処理するようにUserFunctionをプログラムする必要があります。既存のイベントを編集するには、Declare Variableのオブジェクト・メニューで[Edit Event Handler...]をクリックします。

イベントは宣言された変数名に結び付けられています。UserFunctionnのタイトルは、変数名とイベント名を結合したものです。例えば、comboという名前の変数を宣言し、その型をAccess.ComboBoxに指定した場合、次のような名前のイベント・ハンドラUserFunctionを作成できます。

combo_AfterUpdate

combo_Change

combo_DblClick

combo_KeyDown

イベントはコールバック関数です。各イベントを適切に処理するように、作成されたUserFunction（コールバック関数）をプログラムする必要があります。オートメーション・オブジェクトがイベントを発生すると、関連するUserFunctionがイベントを処理するために呼び出されます。オートメーション・オブジェクトは、イベントを発生したときにVEEからの戻り値を要求する場合があります。この場合、値を返すようにUserFunctionをプログラムする必要があります。

オブジェクトが戻り値を要求する場合、オブジェクトはVEEが戻り値を供給するまで待ちます。イベント・ハンドラUserFunctionは短時間で動作するように作成する必要があります。イベント・ハンドラUserFunctionが戻るまで、VEEとオートメーション・サーバ（Accessなど）の両方が待たされるからです。

オートメーション・サーバはイベント・ハンドラUserFunctionが戻るまで待つので、UserFunctionは非タイムスライス・モードで実行されます。すなわち、UserFunctionはVEEプログラムの他の部分とタイムスライス実行されることなく最後まで実行されます。タイムスライス実行が行われないため、ブレークポイントはイベント・ハンドラUserFunctionでは動作しません。また、VEEはエラーによって停止しません。エラーは注意に変換され、実行は継続します。

オートメーション型修飾子 | VEE型 | 注記:
VT_BYREF | 上記のスカラ・マッピング表に示された型のスカラまたは配列。 | 例: VT_BYREF | VT_BSTRはVEEのTextコンテナを生成します。このスカラVT_VARIANTの場合、バリアントは別のバリアントを指します。VEEは埋め込まれたバリアントのデータ型に基づいてコンテナを作成します。

関連項目

VEEにおけるActiveXオートメーションの使用法, オートメーション・オブジェクトをVEEで使用可能にする, オートメーション・オブジェクト変数の宣言, プログラムでのオートメーション・オブジェクトの作成, DCOM（Distributed Component Object Model）の使用法, 既存のオートメーション・オブジェクトの取得, オートメーション・オブジェクトの操作, データ型の互換性, オートメーション・オブジェクトの削除


できるだけ配列に対して演算を実行する

配列に対して演算を行うと、プログラムのパフォーマンスが大幅に向上します。たとえば、取得した一連の測定値の平方根を求めるテストがあるとします。通常のプログラム方法では、ループの内で1つずつ測定値を受け取り、平方根を計算します。VEEでは、そうした方法の代わりに、すべての測定値を配列に格納し、1ステップでその平方根を計算できます。

2つのプログラムを例に取ります。1つめのプログラムは、1024回の反復を行います。1回の反復で1つの平方根が計算されます。

2つめのプログラムは、1024個の要素がある配列を作成し、配列の平方根を計算します。 これで、それらの平方根を要素とする配列が生成されます。

2つのプログラムの結果は同じですが、2つめのプログラムは、1つめのプログラムより6倍速く実行されます（この例では、300 MHzのPavilion PCを使用しています）。

2つのプログラムの実行速度の違いは、オブジェクトの実行に必要な時間によるものです。オブジェクトの実行には一定のオーバヘッドがあります。したがって、スカラ値のかわりに配列を使用して、オブジェクトの実行回数を減らすと、プログラムの実行速度が上がります。

どちらのプログラムでも、時間を計測するには、Doオブジェクトを使って最初にタイマを起動するのがよい方法です。ramp関数は、0から始まり1023で終わる1024個の要素を持つ配列を生成します。

注記

高速に実行するには、VEEの最新の実行モードを使用しているかどうかを必ず確認してください。それには、 [File] [image] [Default Preferences] をクリックするか、ツールバーにあるそのボタンを使用します。[Execution Mode]の[VEE6]を選択し、 [Save]をクリックします。VEEウィンドウの下部にあるステータス・バーに、"VEE6"と表示されます。

関連項目

できるだけ配列に対して演算を実行する

できるだけオブジェクトをアイコン化する

プログラム内のオブジェクトの数を減らす

VEEプログラムを最適化するその他の方法

プログラム高速化の鍵


できるだけオブジェクトをアイコン化する

VEEが画面上で管理する情報が増えるほど、プログラムの実行に要する時間も増えます。プログラムを最適化するには、表示内容が更新されるオブジェクト（Counterなど）にはオープン・ビューを使用せず、アイコン・ビューを使用します。次の例では、For CountとCounterの各オブジェクトにアイコン・ビューを使用すると、約46倍速く動作します。

関連項目

できるだけ配列に対して演算を実行する

プログラム内のオブジェクトの数を減らす

VEEプログラムを最適化するその他の方法

プログラム高速化の鍵


プログラム内のオブジェクトの数を減らす

プログラミングの経験が増すにつれて、VEEプログラム内で使用するオブジェクトの数は少なくなります。オブジェクトの数を減らして、プログラムを最適化するには、さらに2つの方法があります。

1 別々の数学オブジェクトを使用するかわりに、Formulaオブジェクトで単一の計算式を使用します。たとえば、加算、乗算、除算ごとに別々のオブジェクトを使用するのではなく、Formulaオブジェクトに式((a + b) * c)/dを入力します。また、定数オブジェクトを入力に接続するかわりに、式の中で定数を使用します（定数は、Set Variableを使って設定します）。

2 関数のパラメータ・リスト内に別の関数呼び出しをネストします。たとえば、最初のプログラムの関数randomizeは、関数rampによって生成された配列を使用しています。2番目のプログラムでは、ramp関数の呼び出しがrandomize呼び出しの中にネストされているため、プログラムの実行が少し速くなります。

関連項目

できるだけ配列に対して演算を実行する

できるだけオブジェクトをアイコン化する

VEEプログラムを最適化するその他の方法

プログラム高速化の鍵


VEEプログラムを最適化するその他の方法

ほかに次のような最適化方法があり、適宜プログラム内で使用できます。

VEE 4以上の実行モードでプログラムを実行することにより、必ずVEEコンパイラを使用します。詳細については、「Agilent VEEの実行モード」を参照してください。

詳細ビューでなく、パネル・ビューからプログラムを実行します。そうすると、VEEが画面上で管理するオブジェクトの数が減ります。

UserObjectやUserFunctionとの情報のやりとりに、値（特に大きな配列やレコード）の受け渡しでなく、グローバル変数を使用します。すべてのグローバル変数を宣言します。これにより、ローカル変数も使用できます。 [Data] [image] [Variable] [image]  [Declare Variable]を参照してください。

グラフィカル表示にスカラ・ポイントを1個ずつプロットするのではなく、データを配列に収集して一度にプロットします。プロットのX値が一定の間隔を持つ場合は、X vs. Yプロットではなく、XY Trace表示を使用します。

複数のIf/Then/Elseオブジェクトを使用するかわりに、複数の条件を持つ単一のIf/Then/Elseオブジェクトを使用します。

グラフィカル表示の設定は、できるだけ単純にします。更新速度を最大にする設定は、 [Grid Type] [image] [None] を選択し、[Properties]ダイアログ・ボックスで何もチェックしないことです。必要な場所にだけAutoScaleコントロール・ピンを使用し、必要でない場合は、Scalesフォルダの[Automatic AutoScaling]をオフにします。

ファイルからデータを読み取る場合は、一度に1つの要素に対してREADトランザクションを実行し、EOFピンを使用するのではなく、 ARRAY 1D TO END: (*) トランザクションを使用します。

複数のUserFunctionの実行フローを制御する場合は、個別のCallオブジェクトを使用するかわりにSequencerを使用します。

Sequencerを使用する場合、ログとしてレコードを記録する必要があるトランザクションのログ機能だけをオンにします。

Strip ChartsとLogging AlphaNumeric表示を使用する場合は、[Properties]の[Buffer Size]をアプリケーションに適した最小値に設定します。

If/Then/ElseオブジェクトをGateやJunctionと組み合わせるかわりに、3項演算子(condition ? expression1 : expression2)を使用します。

ビットマップを使用する場合は、[Scaled]ではなく、[Actual]または[Centered]に設定します。 [Scaled]の方が少し時間がかかります。

Fill BarやThermometerなどのインジケータを使用する場合は、[Show Digital Display]をオフにします。

Color Alarmを使用している場合、色をすばやく切り替えるときには、[Show 3D Border]をオフにします。

以上のような手法のほかに、ほかの言語で記述されたコンパイル済みの関数を自分のプログラムにリンクすると、実行速度が向上します。PCでコンパイル済み関数を（DLLとして）使用する方法については、次のセクションで説明します。

関連項目

コンパイル済み関数、DLLの使用法、できるだけ配列に対して演算を実行する、できるだけオブジェクトをアイコン化する、プログラム内のオブジェクトの数を減らす、プログラム高速化の鍵


プログラム高速化の鍵

このセクションでは、VEEプログラムの性能を改善するための指針をいくつか示します。

注記

VEE 6.0より前のバージョンでプログラムを開発した場合は、コンパイラを使用するようにプログラムを変換する方法について、「VEE実行モードの使用法」を参照してください。

以下に示すのは、コンパイラによる速度の改善を活かすための方法です（[File] [image] [Default Preferences]でExecution ModeがVEE 4、VEE 5、VEE 6のいずれかに設定されている場合）。

Profilerを使用します。

プロファイラ （ [View] [image] [Profiler]）を使用すると、不必要に時間を消費しているルーチンを見つけることができます。Profilerを使用するには、次の手順を実行します。

1 [Start Profiling]をクリックし、プログラムを実行します。

2 プログラムの実行が終了したら、[Refresh]をクリックして結果を確認します。

3 [Stop Profiling]をクリックしてプロファイラを停止します。表示されている結果をクリアするには[Clear]をクリックします。

ラインの色に注目します。

ラインの色は、VEEが実行前にデータ型を判定できたことを示します。色の付いた（黒でない）ラインが多いほど、プログラムは高速に実行されます。

端子の制約を追加します。

UserFunctionは複数の場所から呼び出される可能性があるため、VEEはプログラムの実行前に入力データ型を判定することができません。UserFunctionの実行を高速化するには、可能な限りデータ入力端子に端子の制約を追加します。

宣言された変数を使用します。

グローバル変数を使用する場合、できる限りDeclare Variable（[Data]メニュー）を使用して、変数の型と種類を宣言します。これにより、VEEは実行前に変数の型を予測できます。この方法では、変数のスコープを設定することもできます。

Autoscaleコントロール入力の使用は避けます。

グラフィカル表示のAutoscaleコントロール入力は、必要以上に使われている傾向があります。各ポイントをプロットするたびにオートスケールを実行するのではなく、表示の更新が終了してから実行することにより、プログラムを高速化できます。Autoscaleコントロール入力をなくすには、[Automatic Scaling]（[Scales]タブ）を使用します。これにより、さらに実行速度を改善できます。

データは全部まとめて送るようにします。

グラフィカル表示で[Automatic Scaling]プロパティがオン（[Scales]タブ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

表示は1回だけ実行します。

表示がループの最終結果を示していて、ループの反復ごとに生成されるデータを追跡していない場合（例えば、Logging AlphaNumericでなくAlphaNumericオブジェクトの場合）、ループの反復のたびに実行する必要はありません。反復子のシーケンス出力ピンを表示のシーケンス入力ピンに接続し、表示が最後に1回だけ実行されるようにします。

デバッグ機能をオフにします。

プログラムが正しく動作することが確認できたら、デバッグ機能をオフにしてプログラムを実行します。 [File] [image] [Default Preferences]を選択し、[Debug]グループで[Disable Debug Features]を選択します。

-rオプションを使用するか、VEE RunTimeを使用することもできます。これらのモードではデバッグ命令が生成されないため、プログラムは多少高速に実行されます。ただし、休止、ステップ実行、ブレークポイント、ライン・プローブ、データ・フロー表示、実行フロー表示などのデバッグ機能はいっさい使用できません。

関連項目

できるだけ配列に対して演算を実行する

できるだけオブジェクトをアイコン化する

プログラム内のオブジェクトの数を減らす

VEEプログラムを最適化するその他の方法


トラブルシューティングの手法

このセクションでは、計測器制御のトラブルシューティングと、一般的な状況および可能な回復手段について説明します。下の表は、計測器制御のトラブルシューティングをまとめたものです。

問題

対処／原因

計測器が全く応答しない。

以下の条件が満たされる必要があります。

  • 計測器の電源が投入され、正常なケーブルでインタフェースに接続されている必要があります。適切なI/Oライブラリがインストールされている必要があります。

  • To/From VXIplug&playオブジェクトの場合:使用する計測器に対応したVXIplug&playドライバがインストールされ、設定されている必要があります。また、各計測器の[Advanced Instrument Properties]ダイアログ・ボックスで、正しいVXIplug&playアドレス文字列が指定されている必要があります。各計測器のアドレスは一意でなければなりません。

  • Direct I/O、Panel Driver、Component Driverの各オブジェクトの場合:インタフェースの論理装置番号と計測器アドレスが、[Instrument Properties]ダイアログ・ボックスの[Address]フィールドの設定と一致する必要があります。各計測器のアドレスは一意でなければなりません。また、[Advanced Instrument Properties]ダイアログ・ボックスの[Live Mode]フィールドがONに設定されている必要があります。

  • ユーザまたはシステム管理者が、計測器が使用できるようにVEEを正しく設定してある必要があります。通常これはVEEのインストール時に行われます。『インストール・ガイド』を参照してください。

計測器アドレスを判定できない。

GPIOおよびシリアル・インタフェースの場合、計測器アドレスはインタフェースの論理装置番号と同じです。GPIB計測器アドレスは、ハードウェア・スイッチまたはフロント・パネル・コマンドで設定されます。詳細については、計測器のプログラミング・マニュアルを参照してください。VXIデバイスの論理アドレスは、カードの外側にあるスイッチで設定されます（スイッチにアクセスするにはカードをカード・ケージから取り外す必要があるのが普通です）。アドレスの設定の詳細については、[Help] => [Contects and Index] => [以下の項目についての説明] => [計測器の設定]を参照してください。

インタフェースの論理装置番号を判定できない。

インタフェースの論理装置番号は、Agilent I/Oライブラリに付属するI/O Configユーティリティで設定する必要があります。詳細については、Agilent I/Oライブラリのインストールを参照してください。推奨される論理装置番号設定については、表推奨されるI/O論理装置番号を参照してください。

次の表は、VEEの一般的なトラブルシューティングを示します。

問題 | 考えられる原因 | 解決法のヒント
VEE 6.0より前のバージョンで作成したプログラムをVEE 6実行モードで実行したときに、プログラムが予期したとおりに動作しない。 |  | 考えられる解決法については、[Help] => [Contects and Index] => [以下の項目についての説明] => [実行モード]を参照してください。
UserObjectが予期したとおりに動作しない。 | コンテキスト境界を非同期データでまたいでいる可能性があります（例えば、UserObject内部のオブジェクトのXEQピンを接続するなど）。 | 考えられる解決法1:非同期の依存性をすべてUserObjectの外に出します。 考えられる解決法2:[Show Execution Flow]または[Show Data Flow]をオンにして、プログラムの実行順序を観察します。
オブジェクトの機能を変更したい。 |  | オブジェクト・メニューの機能を使えば、コントロール入力端子を追加したり、プロパティを編集したりできます。
UserObject内部の反復子から1つの出力値しか得られない。 | UserObjectは出力を1回しかアクティブにしません。 | 反復子をUserObjectの外に出します。
反復子が1回しか動作しない。 | 反復サブスレッドがデータ出力ピンでなくシーケンス出力ピンに接続されている可能性があります。 | 反復サブスレッドはデータ出力ピンから開始してください。
For Countが動作しない。 | For Countの値が0または負である可能性があります。 | 値を変更します。負の値が必要な場合、出力の符号を反転するか、For Rangeを使用します。
For RangeまたはFor Log Rangeが動作しない。 | ステップ・サイズの符号が誤っている可能性があります。FromがThruよりも小さい場合、Stepは正でなければなりません。ThruがFromよりも小さい場合、Stepは負でなければなりません。 | Stepを変更します。
VEEがハングしているように見える。マウス・ポインタが砂時計になっている。 | 考えられる原因1: [Auto Line Routing]が設定されているときにオブジェクトを移動したため、VEEがラインを引き直している可能性があります。 考えられる原因2:VEEが画面またはプログラムを印刷している可能性があります。 考えられる原因3:大きいオブジェクトまたは多数のオブジェクトを切り取ったため、VEEが貼り付けバッファにオブジェクトを保存している可能性があります。 | しばらくお待ちください。2、3分経ってもポインタが十字線に戻らない場合は、CTRL+C（またはVEE 6.0を開始したウィンドウのintr設定のキー）を押すか、VEEウィンドウを閉じるか、VEEプロセスを終了します。
プログラムのオープン、オブジェクトの切り取り、ラインの削除ができない（機能が淡色表示になっている）。 | プログラムが実行中の可能性があります。 | [Stop]を押してプログラムを停止してから、操作を実行してみてください。
貼り付けができない（機能が淡色表示になっている）。 | 貼り付けバッファが空である可能性があります。 | オブジェクトの切り取り、コピー、クローンをもう一度実行してください。
切り取り、UserObjectの作成、パネルへの追加ができない（機能が淡色表示になっている）。 | オブジェクトが選択されていない可能性があります。 | オブジェクトを選択してから、もう一度操作を実行してみてください。
UserObjectが生成された最後のデータ要素しか出力しない。 | UserObjectは出力端子バッファ中のデータを蓄積しません。バッファは最後に受け取ったデータ要素だけを保持します。 | Collectorを使って、生成されたすべてのデータを配列に収集します。このデータを出力端子に送ります。
ライン描画モードから抜けられない。 |  | 描画モードを終了するには、ダブルクリックするか、Escを押します。
プログラムを開くとParse Errorオブジェクトが現れる。 |  | Parse Errorオブジェクトを新しいオブジェクトに置き換えます。
文字が正しく表示されない。 | USASCII以外のキーボードを使用している可能性があります。 | 回復方法についてはVEEの設定を参照してください。
VEEの外部の色が変化している（VEEの中にいるときのVEEの色は正常）。 | カラー・マップ平面が使い尽くされている可能性があります。 | 回復方法についてはVEEの設定を参照してください。


Agilent VEEプロファイラ

プロファイラは、VEEのプロ開発環境における機能です。プロファイラを使用すると、プログラム内のUserFunctionまたはUserObjectの実行速度を表示することにより、プログラムを最適化することができます。

プロファイラを使ってプログラム内の遅いポイントを識別し、ここで説明した技法を適用してプログラム速度を改善します。examples\Applications\mfgtest.veeプログラムを下に示します。

プロファイラをオンにするには、 [View] [image] [Profiler]を選択します。次に、プログラムを実行します。画面の下半分にプロファイラが表示されます。プロファイラには、各UserObjectおよびUserFunctionの実行にかかった時間の長さに関する比較情報がリスト表示されます。

関連項目

実行パラメータをプロファイルするには

Profiler


ActiveXコントロール

VEEはすべてのActiveXコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、または使用しているときにエラーが発生する可能性があります。

VEE 8.0のリリース時点では、以下のActiveXコントロールがVEEで正常に動作しないことが知られています。これらの使用は避けてください。

Microsoft Forms Object Library

Microsoft ADO Data Control 6.0

Adobe PDF 7.0 Viewer


トランザクション・オブジェクトでのメモリ・リーク

VEEプログラムでトランザクション・オブジェクトを使用する際に、特定の条件でメモリ・リークが発生する可能性があります。トランザクション・オブジェクトの例としては、Direct I/OやFrom Fileがあります。

メモリ・リーク条件が存在するのは、トランザクション・オブジェクトに2つのREADトランザクションが含まれ、その両方が同じ出力ピンを参照するが、使用するデータ型が異なる場合です。例としては、次の2つのトランザクションが挙げられます。

READ TEXT x STR
READ TEXT x REAL

メモリ・リークを回避するためには、次のいずれかの対策が使用できます。

最初のトランザクションから生じるxの値が不要な場合、nullという名前の特殊なシンボルを参照できます。最初のREADトランザクションで、データ出力ピン名の代わりにnullを使用します。オブジェクトはデータを読み取って破棄し、次のREAD トランザクションを実行します。トランザクション・オブジェクトの内容は次のようになります。

READ TEXT null STR
READ TEXT x REAL

2つのデータを受け取るために出力ピンをもう1つ追加し、それぞれのトランザクションで別のデータ出力ピンを参照するようにします。トランザクションは次のようになります。

READ TEXT x STR
READ TEXT y REAL


演算式によるメモリ・リーク

エラーを起こす式によるメモリ・リーク

Formulaオブジェクトまたは演算式が使用できるトランザクション・オブジェクトで演算式を使用する際に、きわめてまれな条件において、メモリ・リークが発生する可能性があります。

メモリ・リークが発生する可能性があるのは、プログラムでFormulaオブジェクトがErrorピンを使用し、Errorピンがプログラム実行の予定された経路の途中で起動された場合です。この条件の例としては、式で0による除算が発生したためにErrorピンが起動される場合が挙げられます。

同様の条件は、演算式が使用でき、Errorピンを持つトランザクション・オブジェクトにも存在します。To Fileオブジェクトに次のトランザクションが含まれるとします。

WRITE TEXT a/b EOL

トランザクション・オブジェクトの演算式はFormulaオブジェクトと同様に評価されるので、同じようにメモリ・リークの可能性があります。


コンパイラ警告

不確かなデータ・フローのコンパイラ警告

Agilent VEEは、不確かなデータ・フローのコンパイラ警告を検出し、これらの警告を[Output]ウィンドウに表示できます。この警告はVEEコンパイラに関連しており、実行順序の混乱をもたらすおそれがあります。この警告を回避する方法を判断することはユーザには困難です。このトピックでは、この警告の意味と原因と回避方法について説明します。

不確かなデータ・フローのコンパイラ警告とは

不確かなデータ・フローのコンパイラ警告が記録されるのは、実行順序の混乱が生じ、いくつかのオブジェクトが実行されなくなるおそれがあるとVEEが判断した場合です。

下のVEEプログラムを例に取ります。オブジェクト3、4、5は、オブジェクト1、2の下流にあるオブジェクトです。オブジェクト6は、オブジェクト3、4、5の後に実行されます。正しい実行順序は、1-2-3-4-5-6または2-1-3-4-5-6です。

ところが、実際の実行順序は1-2-3-4-6-5または2-1-3-4-5-6です。どちらになるかはオブジェクト1と2の実行順序に依存します。2番目の実行順序は正常ですが、1番目のものは間違いです。1番目の実行順序では、オブジェクト6がオブジェクト5より先に実行されるからです。さらに、オブジェクト6が、Stop、Raise Errorなど、VEEプログラムの実行を停止させるオブジェクトだった場合、オブジェクト5は全く実行されなくなってしまいます。

一般的に、シーケンス出力ピンが下流のオブジェクトよりも前に伝達するおそれがある場合、VEEは[Output]ウィンドウにコンパイラ警告を記録します。これが不確かなデータ・フローのコンパイラ警告です。

不確かなデータ・フローのコンパイラ警告の理由

一般的に、VEEプログラムの実行フローは、データ・フロー、すなわちVEEプログラム内でのオブジェクトからオブジェクトへのデータの流れによって決まります。場合によっては、シーケンス・ピンを使って実行順序が指定されることもあります。シーケンス・ピンには、シーケンス入力ピンとシーケンス出力ピンがあります。

オブジェクトのシーケンス出力ピンは、そのオブジェクトのすべてのデータ出力ピンがアクティブになり、データ・フローが可能な限り遠くまで伝達した後で伝達します。ここで、「可能な限り遠くjまで伝達する」とは、下流のすべてのオブジェクトが実行されるという意味ではありません。場合によっては、下流のオブジェクトの一部が実行されていなくてもシーケンス出力ピンがアクティブになることがあります。これは実行順序の混乱を生じ、コンパイラ警告の原因となります。

例えば、上のプログラムで、オブジェクト1がオブジェクト2より先に実行されると、オブジェクト3のシーケンス入力ピンがアクティブになったとき、そのデータ入力ピンはまだアクティブになっていません。すなわち、オブジェクト2のデータ出力ピンはそれ以上伝達できません。しかも、オブジェクト1にはデータ出力ピンが1つしかないため、VEEはオブジェクト1のシーケンス出力ピンを動作させるため、オブジェクト 6を待ち行列に入れます。その後、オブジェクト2が実行され、オブジェクト3、オブジェクト4の順序で実行されます。オブジェクト4が実行された後、VEEはオブジェクト5をオブジェクト6が入っているのと同じ待ち行列に入れます。

現在のスレッドに実行の制約のないオブジェクトが存在しないため、待ち行列中のオブジェクトが実行を開始します。待ち行列はFIFO（先入れ先出し）方式なので、オブジェクト6がオブジェクト5よりも前に実行されます。

すなわち、オブジェクト6がオブジェクト5よりも先に実行される直接の理由は、オブジェクト6がオブジェクト5よりも先に起動されることです。根本的な原因は、下流のオブジェクトの一部が実行されていなくてもVEEコンパイラがオブジェクトのシーケンス出力ピンを伝達する場合があることです。理解の助けとなるように、さらに複雑な下のプログラムを参照してください。

このプログラムでは、オブジェクト4、5、6がオブジェクト1、2、3の下流にあるので、オブジェクト4、5、6はオブジェクト7、8、9よりも先に実行されるはずです。実際には、オブジェクト6はオブジェクト7、8、9のどれか1つだけよりも先に実行されます。言い換えれば、オブジェクト7、8、9のうち2つはオブジェクト6よりも先に実行されます。どの2つのオブジェクトが先に実行されるかは、オブジェクト1、2、3の実行順序によって決まります。例えば、オブジェクト1、2、3の実行順序が1-2-3の場合、上のプログラムの実行順序は1-2-3-4-5-7-8-6-9です。オブジェクト1、2、3の実行順序が3-2-1の場合、上のプログラムの実行順序は3-2-1-4-5-9-8-6-7です。したがって、このプログラムも不確かなデータ・フローのコンパイラ警告を発生します。

不確かなデータ・フローのコンパイラ警告を避ける方法

上記の分析のように、不確かなデータ・フローのコンパイラ警告はシーケンス出力ピンと直接の関連があります。したがって、シーケンス・ピンはできるだけ使用しないのが最善です。シーケンス・ピンの推奨される使用法とシーケンス・ピンの濫用の一般的な例については、シーケンス・ピンの理解を参照してください。不確かなデータ・フローのコンパイラ警告を避けるためのいくつかのヒントを以下に示します。

入力ピンを持たないデバイスにできる限り配線する

上のVEEプログラムは、不確かなデータ・フローのコンパイラ警告を発生します。TextオブジェクトがIf/Then/Elseオブジェクトよりも後に実行された場合、AlphaNumericオブジェクトとExit Threadオブジェクトは全く実行されません。これを避けるには、次のプログラミング・スタイルを使用します -- 入力ピンを持たないデバイスにできる限り配線する。

下流スレッドはできる限り1分岐だけにする

下のプログラムでは、2つの並列スレッド（1つはオレンジ、もう1つは緑）が互いに接続されており、不確かなデータ・フローのコンパイラ警告を発生します。If/Then/ElseオブジェクトがFormula 1オブジェクトよりも前に実行された場合、青の長方形内のオブジェクト（Text、Formula 5、Formula 6、Exit Thread）が実行されることなくRaise Errorが実行されます。

この問題を避けるには、下のプログラムのように、If/Then/Elseオブジェクトの下流スレッドに並列フローでなく直列フローを使用します。このプログラムでは、2つの並列スレッドがUserFunctionに収められています。

この種のコンパイラ警告を完全に避けることはユーザには困難なので、このコンパイラ警告をVEEに自動検出させ、[Output]ウィンドウに記録させる方が賢明と言えます。VEEが警告を検出した後、コンパイラ警告を分析して対応するVEEプログラムを修正するほうが、ユーザにとってははるかに簡単です。デフォルトでは、VEEはコンパイル時に不確かなデータ・フローのコンパイラ警告を自動的に検出します。この機能をオフにするには、[File] => [Default Preferences]を選択し、[General]タブで[Uncertain Data Flow Compiler Warning]のチェックを外します。

注記

VEEは不確かなデータ・フローのコンパイラ警告をコンパイル時に検出するため、同じプログラムを2回目以降に実行した場合、コンパイラ警告が検出されて[Output]ウィンドウに記録されることはありません。VEEプログラムのコンパイラ警告の検出と記録を実行させるには、VEEプログラムを再ロードしてから実行してください。

関連項目

伝達について、ピンと伝達


エラー758

.NET操作の準備に失敗しました。

現象

エラー758は、インストーラが必要なすべてのコンポーネントをインストールできなかった場合に発生することがあります。最も一般的な現象は次の2つです。

1. [Device]->[.NET Assembly References]ダイアログまたは[Device->Windows Forms Control]を選択すると、次のエラー・ダイアログが表示されます。

2. [I/O]->[Instrument Manager]を選択し、計測器の[IVI-COM Driver]ボタンをクリックすると、次の注意ダイアログが表示されます。

原因

上記の2つの現象は、IVI共有コンポーネントに対するプライマリ相互運用アセンブリ（PIA）が.NETグローバル・アセンブリ・キャッシュにインストールされていないことから発生します。

修正方法

.NET Framework 1.1のインストール・ディレクトリがどこかを知る必要があります。これは通常、<Windowsディレクトリ>\Microsoft.NET\Framework\v1.1.4322にあります。また、IVIインストール・ディレクトリがどこかを知る必要があります。デフォルトのディレクトリは<Program Files>\IVIです。

コマンド・プロンプトを開き、.NET Framework 1.1インストール・ディレクトリに移動し、IVIによってインストールされたバッチ・ファイルを実行します。例えば、.NET Framework 1.1がc:\windows\Microsoft.NET\Framework\v1.1.4322にインストールされており、IVIインストール・ディレクトリがc:\program files\IVIの場合、コマンド・ラインは次のようになります。

cd \Windows\Microsoft.NET\Framework\v1.1.4322

&ldquo;c:\Program Files\ivi\bin\Primary Interop Assemblies\IviPiaRegistration.bat&rdquo; &ldquo;c:\Program Files\IVI\bin\Primary Interop Assemblies&rdquo;

上記のバッチ・ファイルが正常に実行されると、&ldquo;Assembly successfully added to the cache&rdquo;のようなメッセージがコマンド・プロンプト・ウィンドウに表示されます。VEEを再起動します。


プログラムのプロパティ

VEEオブジェクトの次のプロパティはプログラムからアクセス可能です。

プロパティ | オブジェクト
BackColor、ForeColor、Title、Size、Location、Visibility | すべてのVEEオブジェクト
Value | Toggle Control、Constant、Continuous Control
EnumValue、EnumValues、EnumIndex | Selection Control
EnableOnPing | Confirm (OK)オブジェクト
EnableEditing | "Enable/Disable Editing"コントロール入力ピンを持つVEEデータ・オブジェクト
PopupPanelTitle | メイン、UserFunction、UserObject
Size、Location | メインまたはUserFunctionのPopupPanel
Tab index | パネル・ビュー上のVEEオブジェクト
BackColor | UserFunction/UserObjectパネル・ビューおよびMainパネル・ビュー

注記

プロパティ名の大文字と小文字は区別されません。プログラムからGET/SETできるのは実行時プロパティだけです。デザイン時プロパティは変化しません。

保護されたUserFunctionまたはインポートされたUserFunctionの中のオブジェクトのプロパティを、メインからGET/SETすることもできます。

場所

Device [image] Function & Object Browser [image] VEE Objects

関連項目

プログラムでプロパティを変更するには、オブジェクトの名前と範囲を変更するには


ユーザ提供プログラム

ユーザ提供VEEプログラム

以下の例は、もっぱら説明用として、「現状のまま」で提供されています。Agilent Technologiesは、これらに関わるいかなる保証も致しません。これらは、全世界のVEEユーザから提供されたものです。サンプルを提供していただける場合は、vrf-examples@agilent.comまでお送りください。サンプルには詳細なドキュメントをつけ、名前または電子メール・アドレスを公開してよいかどうかをお知らせください。

ExcelAsDatabase.vee Excelをテーブル検索用の「データベース」として使用します。

ExcelワークブックにはTableワークシートがあり、ID、Code、Project、Date、Commentの5つのフィールド（列）から構成されます。

Queryワークシートは、ExcelのDGET関数を使って、テーブル中のデータを検索します。問合せの検索値はVEEから送られ、問合せ結果はVEEに読み取られて表示されます。
InstrumentAssistant.vee 計測器アシスタント・サンプル・プログラム

このプログラムは、設定済みのすべてのGPIBおよびVXIインタフェースに接続されたすべての計測器を検出するために使用できます。このプログラムはまた、選択された計測器と通信するためにも使用できます（GPIB計測器だけがサポートされます）。標準のIEEE488.1/488.2コマンドのほかに、ユーザ定義コマンドを送信できます。送信されたコマンドの履歴を保持する履歴バッファが用意されています。計測器からのデータはASCIIまたはバイナリ・ブロック・フォーマットで読み取ることができます。

このサンプル・プログラムは、VEEの以下の機能を使用しています。
* ダイナミックI/Oオートメーション・サーバ
* Programmable Instrument Properties
* プログラム・ファイルに保存されたI/O構成
SQLServerUsingADO.vee VEEデータベース・アクセス

この単純なサンプル・プログラムは、VEEでMicrosoft ADO（リビジョン2.1）オートメーション・サーバを使って、SQL Server 7.0データベースとの統合を実現する方法を示します。SQL Server 7.0は、Serverフィールドの指定に応じて、リモート・サーバまたはこのシステム上で利用できる必要があります。VEEとSQL Serverが同じPC上で動作している場合は、Serverに(local)と指定します。

このプログラムは、SQLのpubsサンプル・データベースをデフォルトで使用し、次の動作を行います。

  • Catalog Schemaを読み取ることにより、SQLサーバのすべてのデータベースをリストします。
  • Tables Schemaを読み取ることにより、1つのデータベース（pubs）のすべてのテーブルを検出します。
  • SQL問合せを実行できます。
  • テーブルを表示できます。
  • SQLサーバからのADOエラーを捕捉します。
MakeSelections.vee 複数選択ポップアップ・オブジェクトを作成します。

このサンプル・プログラムには、ユーザが入力リストから1つまたは複数の選択を行うためのMultiple Selectionオブジェクトが含まれます。VEEの標準の選択オブジェクトでは、1つの項目しか選択できません。

VEE_Window_mods.vee このサンプルは、VEEウィンドウの属性を変更する方法を示します。次の内容があります。
  1. API関数のインポート（Function ImportLib）
  2. 実行時の文字列配列からのグローバル定数の作成（Function CreateGlobals）
  3. 現在のVEEアプリケーションのウィンドウ・ハンドルを取得し、次のウィンドウ属性を変更する方法:
    1. 常に手前に表示
    2. サイズ変更可能
    3. システム・メニューを表示
    4. 最小化ボックスの有効／無効
    5. 最大化ボックスの有効／無効
    6. VEEプログラム全体を指定した時間だけ非表示にする

提供者: Georg Nied、電子メール: info@gn-software.de

Change character in string.vee この関数は、文字列中の1文字を別の文字に変更します。

提供者: Juan Carlos Martín Castillejos

nidaq.vee NI-DAQライブラリのエントリ・ポイントを呼び出します。

このインクルード・ファイルは、Agilent VEEのImport LibraryオブジェクトがNIDAQ32.DLLをサポートするように変更されています。

この変更されたバージョンは、NI-DAQの6.6バージョンに基づいています。

これはVEEバージョン7.0以前で使用するのに適しています。VEE 7.5以降では、Instrument ManagerにNIDAQ関連の機能が追加されているからです。

以下のすべての計測器プログラムは、Tom Silchiaから提供されたものです。
856xTDFB.vee HP/Agilent 8560Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。TDF B（Bフォーマット）:

測定単位のバイナリ数値を返します。バイナリ（B）フォーマットは、測定単位のデータをバイナリ数として転送します。このフォーマットは、データ転送が最も早く、データの記憶に必要なメモリが最も少なくなります。各データ・ポイントは、2個の8ビット・バイトとしてバイナリで転送されます。最上位バイトが先、最下位バイトが後に送信されます。バイナリ・データは測定データに容易に変換できます。速度とメモリが重要な場合、PフォーマットよりもBフォーマットのほうが適している可能性があります。AブロックおよびIブロック・フォーマットと異なり、Bフォーマットではヘッダは送信されません。データは即座に送信され、EOI（End-Or-Identify）メッセージが最後のバイトとともに送信されます。

856xTDFI.vee HP/Agilent 8560Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。TDF I（Iブロック・フォーマット）:

測定単位の不定長ブロック・データ・フィールドを返します。Aブロック・フォーマットによく似ていますが、Iブロック・フォーマットは不明なサイズの不定長ブロック・データ・フィールドで測定単位のデータをバイナリ数値として転送します。各データ・ポイントは、2個の8ビット・バイトとしてバイナリで送信されます。最上位バイトが先、最下位バイトが後に送信されます。Iブロック・フォーマットは、トレース・データの前にヘッダを送信します。ヘッダはASCII文字"#"と"I"で構成されます。

856xTDFM.vee HP/Agilent 8560Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。TDF M（Mフォーマット）:

測定単位の10進数を返します（出力のみ）。測定単位（M）フォーマットは、トレース・データを測定単位のASCII整数値で返します。これはスペクトラム・アナライザが使用する内部フォーマットです。305ページの図5-8を参照してください。各要素の表示される振幅は、601個の垂直軸ポイントの1つに対応します（601番目が基準レベルに等しくなります）。例えば、305ページの図5-8の信号のピークは、-10 dBm、すなわち基準レベルから1目盛り下に相当します。これは540測定単位（基準レベルの600測定単位から1目盛り分の60測定単位を引くと540測定単位）に相当します。オーバーレンジ用の追加のポイントもあります。測定単位の範囲は0～610です。データ出力の後にラインフィード（ASCIIコード10）が付きます。ラインフィードとともに、EOI（End-Or-Identify）メッセージが送信されます。MフォーマットはPフォーマットよりも高速ですが、ほとんどのアプリケーションではパラメータ単位への変換が必要です。また、MフォーマットはデータをASCII文字で転送するので、データを直接表示できます。

856xTDFP.vee HP/Agilent 8560Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。

TDF P:パラメータ単位の10進数値を返します。実数（P）フォーマットでは、実数（パラメータ）単位の10進値でデータを送受信できます。これは、計測器をオンにしたとき、およびプリセット（IP）を実行したときのデフォルトのフォーマットです。数値の単位は、dBm、dBmV、dBmV、V、Wのいずれかで、振幅単位（AUNITS）コマンドで決定されます。デフォルトの単位は、リニア・トレース情報ではV、対数トレース情報ではdBmです。データ出力の後にはラインフィード（ASCIIコード10）が付きます。ラインフィードとともに、EOI（End-Or-Identify）メッセージが送信されます。Pフォーマットを使用する際には、必ずAUNITSコマンドを使って振幅情報をトレース・データに含めるようにしてください。実数データは、データを後でプログラムで使用する場合に便利です。ただし、Pフォーマットによるデータ転送には比較的時間がかかり、記憶領域を余分に必要とします（バイナリでは約1200バイト、実数では約4800バイト）。場合によっては、Pフォーマットではバイナリ・フォーマットに比べて4倍のコントローラ・メモリを使用します。

859xTDFBB.vee HP/Agilent 8590Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。

TDF Bは、バイナリ・フォーマットを有効にします。バイナリ・フォーマットでは、マーカまたはトレース・データがバイトで転送されます。すべてのトレース・データ・フォーマットの中で、TDF Bは最もデータ転送が高速です。MDSコマンドの設定によって、トレース・データは1個または2個の8ビット・バイトとして転送されます。注記:この例では、MDS Bで測定データ・サイズをBYTEとしています。データ・ポイント1個あたり1バイト（8ビット）が転送されます。トレース・データを転送する際には、MDS BのほうがMDS Wよりも高速にデータを転送できます。401バイトしか転送されないからです。MDS Bは2バイトを1バイトに結合するため、ある程度の分解能が失われます。

859xTDFBW.vee HP/Agilent 8590Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。

TDF Bは、バイナリ・フォーマットを有効にします。バイナリ・フォーマットでは、マーカまたはトレース・データがバイトで転送されます。すべてのトレース・データ・フォーマットの中で、TDF Bは最もデータ転送が高速です。MDSコマンドの設定によって、トレース・データは1個または2個の8ビット・バイトとして転送されます。注記:この例では、MDS Wで測定データ・サイズをWORDとしています。データ・ポイント1個あたり2バイト（8ビット×2）のワードが転送されます。MDS Wでは分解能の損失はありません。

859xTDFI.vee HP/Agilent 8590Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。

TDF IはIブロック・データ・フォーマットです。Iブロック・データ・フォーマットでは、トレース・データの前に"#"と"I"が付きます。MDSコマンドの設定により、トレース・データは1個または3個の8ビット・バイトで転送されます。Aブロック・フォーマットの場合と異なり、トレース・データをスペクトラム・アナライザに送る際にデータ・バイト数を指定しません。

859xTDFM.vee HP/Agilent 8590Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。

TDF Mは測定データ・フォーマットです。測定データ・フォーマットは、トレース・データを測定単位で転送します。測定データの範囲は-32768～+32767です。

859xTDFA.vee HP/Agilent 8590Eシリーズ・スペクトラム・アナライザからトレース・データを抽出します。
Aブロック・フォーマットは、バイナリ・フォーマットと同様に、各データ・ポイントを2個の8ビット・バイトで送信します（これも測定データの内部表現です）。Aブロック・フォーマットは、401ポイントのトレース・データの前に4バイトのヘッダを送信します。これらのバイトは、ASCII文字"f"、"A"、トレース・データの長さを表す2バイトの数値、その後にデータ・バイトです。
8510C_pass_thru.vee

8510のパススルー機能を使用する方法の概要を紹介します。

8510_hpgl_Acq.vee | 8510ファミリ・ネットワーク・アナライザからHPGLグラフィックスを取得してダンプするためのプログラミング・サンプル。
856xPlot2File.vee 8560Eシリーズ・スペクトラム・アナライザからHPGLプロッタ・ダンプを取得してファイルに保存します。

取得したtemp.pltファイルは、任意のHPGL互換ファイル・ビューアで表示できます。Microsoft Office製品の新しいバージョンは、デフォルトではHPGLビューアを含んでいません。MicrosoftのWebサイトでhpgl 32ビットを検索してダウンロードすると、Microsoft WordやMicrosoft ExcelにHPGLファイルをインポートできるようになります。

871xLearn_String.vee 計測器との間で871xラーン・ストリングを送受信します。

このアプリケーションは、8711C、8712C、8713C、8714C、および871xET/ESベクトル・ネットワーク・アナライザ・ファミリ全体を対象としています。このプログラムは、メイン、2つのUserObject、1つのUserFunctionから構成されます。UserObject "getLearnString"は、ラーン・ストリングを取得し、データをテキスト・ファイル"C:\learnData.txt"に保存します。このオブジェクトには、操作と実行に関する詳細なノートが付いています。UserObject "sendLearnStringOut"は、ファイル"C:\learnData.txt"からラーン・ストリング・データを読み取り、アナライザに書き込むことにより、ラーン・ストリング・ステートをリコールします。このオブジェクトには、操作と実行に関する詳細なノートが付いています。"err_check" UserFunctionは、プログラム実行中にエラーが発生しなかったことを確認する手段を提供します。OKボタンは、アナライザの設定、ラーン・ストリングの取得、アナライザのリセット（プリセット状態への）、取得したラーン・ストリングの送信、動作の確認のために使用します。

8753_freq_data.vee 8753/8720ファミリ・ネットワーク・アナライザからトレース周波数ポイント・データを抽出します。

OUTPLIMLコマンドを使って、スティミュラス／マーカ・データを抽出します。リミット・テスト機能はオンになっていません。このコマンドは、周波数ポイントを抽出する手段を提供します。

8753_marker.vee 8753/8720ファミリVNAからいくつかの方法でマーカ・データを読み取ります。

マーカ・データとデータの有効性は、アナライザのDISPLAY FORMATによって異なります。最初の値はマーカ読み値、2番目の値はDISPLAY FORMATに応じて有効な場合もそうでない場合もあります。3番目の値はスティミュラス（周波数または時間）です。詳細については、8753/8720プログラマーズ・ガイドのマーカ・データのセクションを参照してください。この例では、FORMATはLOG MAGであり、マニュアルによれば2番目のマーカ値は「無意味」、すなわち単なるプレースホルダあるいはごみデータです。

4395A_Extract_State.vee 4395Aコンビネーション・アナライザからステートを抽出します。

このアプリケーションは、4395Aコンビネーション・アナライザでテストされています。このアプリケーションは、内部メモリの内容リストを取得し、保存されているステート・タイプのファイル（ファイル・タイプが".STA"のもの）をすべて解釈します。ファイル・リストが作成されると、Agilent VEEアプリケーションはすべての*.STAファイルを外部コントローラに抽出します。*.STAファイルはバイナリ・ファイルであり、4395Aに（PCとVEEを使って、あるいは3.5インチ・フロッピー経由で）戻すことができます。

4396b_ascii_out.vee 4395A、4396A、4396Bコンビネーション・アナライザからフォーマットされたデータ・トレースを抽出します。

このプログラムは、"FORM4"（ASCII）データ転送で計測器からフォーマットされたデータ・トレースを読み取ります。データ・トレースの配列サイズは、読み取ったポイント数（"no_poin"）から自動的に判定され、real_32配列変数に渡されます。このプログラムは、Agilent VEEのその他の機能も利用しています。例えば、トレースのスタート周波数／ストップ周波数／ポイント数を問い合わせて、これらの値をlinRamp関数（Agilent VEEの組み込み関数）に渡すことにより、各データ値の周波数ポイントを自動的に作成します。また、アナライザから抽出した周波数／振幅データを表示するX/Yプロットを作成します。さらに、最小／最大データ値はAgilent VEEを使って容易に抽出して表示できます。

4194a_gain_delay.vee | Agilent 4194Aインピーダンス・アナライザから利得および群遅延データを抽出します。
4294A_ascii_out.vee Agilent 4294Aインピーダンス・アナライザ用のサンプル。

インピーダンス、位相、並列キャパシタンス、並列コンダクタンスを、フォーマットされた表示トレース・データと実数部と虚数部のデータ・トレース・フォーマットの両方で取得する方法を示します。

8753_Limit_test.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザでリミット・ライン違反を報告する方法を示します。
8753ES_registerRecall.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザで内部メモリから機器ステートをリコールする方法を示します。
8753ES_NumGroup_OPC.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザで、*OPC?およびNUMGコマンドを使って、アナライザでアベレージングが有効になっている場合に掃引の終了を同期する方法を示します。
8753ES_NumGroup_SPOLL.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザで、SPOLLおよびNUMGコマンドを使って、アナライザでアベレージングが有効になっている場合に掃引の終了を同期する方法を示します。
8753Graphics.vee | HPGLテキストを8753/8720ファミリ・ネットワーク・アナライザのディスプレイに書き込みます。
8753LearnStr.vee | 8753/8720ファミリ・ネットワーク・アナライザとの間でバイナリ・ラーン・ストリングを送受信するプログラム。
8757_PassThru.vee | 8757スカラ・ネットワーク・アナライザおよび互換信号源用のプログラム。このプログラムは、アナライザの「8757システム・インターコネクト」GPIBバスに接続された信号源と、パススルー・モードで通信するための方法を示します。これは、8757スカラ・アナライザから信号源を直接制御するための専用のGPIBです。
8757_E8257C_ScpiPassThru | 8757スカラ・ネットワーク・アナライザおよび互換信号源用のプログラム。このプログラムは、アナライザの「8757システム・インターコネクト」GPIBバスに接続された信号源と、パススルー・モードで通信するための方法を示します。これは、8757スカラ・アナライザから信号源を直接制御するための専用のGPIBです。
4284A_BIN_ASCII.vee | 4284Aインピーダンス・アナライザからASCIIまたはバイナリ・データ転送を抽出する方法を示すプログラム。
4263B_BIN_ASCII.vee | 4263B LCRメータ用のプログラム。LCRメータからバイナリまたはASCIIデータ転送を取得する方法を示します。
e5100a.vee | E5100A低周波ネットワーク・アナライザ用のプログラム。E5100Aの内蔵波形解析機能を使って、チャネル1（利得）およびチャネル2（位相）の統計値を取得する方法を示します。
E5100A_Resp_Cal_Array.vee | E5100A低周波ネットワーク・アナライザ用のプログラムで、伝送スルー応答校正配列を（FORM4 - ASCII転送で）アナライザから抽出する方法を示します。抽出された配列は、コントローラPC上のファイルに保存されます。
8753_form2.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザ用のプログラム。このプログラムは、SRQマスクを通じて掃引終了を同期し、トレース・データ配列をFORM2 - REAL 32バイナリ・ブロック転送で抽出する方法を示すチュートリアルです。
8753_form3.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザ用のVEEサンプル・プログラム。このプログラムは、SRQマスクを通じて掃引終了を同期し、トレース・データ配列をFORM3 - REAL 64バイナリ・ブロック転送で抽出する方法を示すチュートリアルです。
8753_form3_COMPLEX.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザ用のプログラム。このプログラムは、SRQマスクを通じて掃引終了を同期し、実数部と虚数部のトレース・データ配列をFORM3 - REAL 64バイナリ・ブロック転送で抽出し、COMPLEX配列として定義された変数にデータを読み取る方法を示すサンプルです。
8753_form4.vee | 8753/8720ファミリ・ベクトル・ネットワーク・アナライザ用のプログラム。このプログラムは、SRQマスクを通じて掃引終了を同期し、トレース・データ配列をFORM4 - ASCIIデータ配列転送で抽出する方法を示すチュートリアルです。
8753_hpgl_Acq.vee | 8753/8720ファミリ・ネットワーク・アナライザからHPGLグラフィックスを取得してダンプするためのプログラム。
EPM_Sensor_Status.vee | EPM Eシリーズ・アベレージ・センシングRFパワー・メータ用のプログラム。このプログラムは、"STATUS:DEVICE:CONDITION?"ビット応答を使って、どのチャネルにセンサが接続されており、センサがフロント・パネルとリア・パネルのどちらに接続されているかを判定します。
EPM_Averages_SPOLL.vee | EPM Eシリーズ・アベレージ・センシングRFパワー・メータ用のプログラム。このプログラムは、手動フィルタ・モードを使用し、ユーザによるフィルタ長（アベレージ）の設定を可能にします。このプログラムはまた、SPOLLを使って測定データが利用可能かどうかを判定します。
EPM_LoUpLimit_Test.vee | EPM Eシリーズ・アベレージ・センシングRFパワー・メータ用のプログラムで、"STAT:OPER:LLF:SUMM:COND?"（下限値違反報告）および"STAT:OPER:ULF:SUMM:COND?"（上限値違反報告）ステータス問合せの使用法を示します。
EPM_LoadCalTable.vee | EPM Eシリーズ・アベレージ・センシングRFパワー・メータ用のプログラム。このプログラムは、内部センサ校正テーブルのリストを取得し、テーブルを選択し、選択した校正テーブルのユーザ定義周波数にユーザ校正係数を書き込む方法を示します。
EPM_Meas_SPOLL.vee | EPM Eシリーズ・アベレージ・センシングRFパワー・メータ用のプログラム。このプログラムは、MEASUREコマンドを使って、計測器のセットアップを制御します。このプログラムはまた、SPOLLを使って測定データが利用可能かどうかを判定します。
ENA_StateRdWrt.vee | ENA（E5070/E5071）ファミリ・ネットワーク・アナライザ用のプログラム。メモリの内容リストを取得し、ステート・ファイルをバイナリ・ブロックでPCに抽出し、バイナリ・ステート・ファイルを（PCから）リコールし、バイナリ・ブロックをENAのメモリに書き戻すサンプルを示します。

ENA_Average_SPOLL.vee

ENA（E5070/E5071）ファミリ・ネットワーク・アナライザ用のプログラム。このプログラムは、ENAシリーズ・ベクトル・ネットワーク・アナライザでアベレージ終了条件を検出するための1つの方法を示します。E5071Aでテストしています。
ENA_Fast_SPOLL | ENA（E5070/E5071）ファミリ・ネットワーク・アナライザ用のプログラム。このプログラムは、ネットワーク・アナライザのさまざまな帯域幅に対する代表的なトレース掃引速度とデータ収集／転送速度を理解するための出発点として利用できます。


オブジェクトの接続によるプログラムの作成

このセクションではVEEのプログラムについて紹介します。例題 1-1では、VEEプログラムの作成、VEEの画面の印刷、プログラムのファイルへの保存を行います。

例題1-1: 波形表示プログラム

VEEプログラムは、実行可能なオブジェクト・ダイアグラムの形に接続されたVEEオブジェクト群で構成されています。次のプログラムは波形を表示します。

（VEEがすでに実行されている場合は、ツールバーの[New]ボタンをクリックするか、[File] [image] [New]を選択して、ワークスペースをクリアします。まだ起動していない場合は、VEEを起動して、次に進みます）

1 プログラムのドキュメントを作成します。[Display] [image] [Note Pad]を選択して、作業領域の上部中央に配置します。編集領域をクリックしてカーソルを置きます。これまでのテンプレート情報を削除し、以下を入力します。

Display Waveform generates a cosine waveform and sends it to a real time display. （波形表示プログラムは余弦波の波形を生成して、同時に画面に表示します）

画面によっては、Note Padのサイズを変更しなければならない場合があります。オブジェクトのサイズを変更するには、オブジェクト・メニューを開いて[Size]を選択し、サイズ変更矢印をオブジェクトの隅に移動してドラッグします。オブジェクトのいずれかの隅をクリックし、ドラッグすることもできます。

2 Function Generatorオブジェクトを追加します。[Device] [image] [Virtual Source] [image] [Function Generator]を選択します。 次に、輪郭線を作業領域の左側に置き、クリックしてオブジェクトを配置します。[Frequency]フィールド内でクリックし、「100」と入力して周波数に100を指定します。

3 Waveform (Time)オブジェクトを追加します。[Display] [image] [Waveform (Time)]を選択して、下のように作業領域の右側にオブジェクトを配置します。

上図のFunction GeneratorオブジェクトにあるFuncラベルはデータ出力ピンを表し、Waveform (Time)オブジェクトにあるTrace1ラベルはデータ入力ピンを表します。VEEプログラムでは、オブジェクト間でデータ・ピンを接続することにより、プログラムの流れを決定します。

4 Function Generatorのデータ出力ピン（Funcの右）をWaveform (Time)のデータ入力ピン（Trace1の左）に接続して、プログラムを完成します。接続するには、カーソルをピンの一方へ移動します。

カーソルを接続可能なピンに近づけると、カーソルの形が変化します。マウスの左ボタンをクリックし、マウス・カーソルをもう一方のピンまで移動して、もう一度クリックします。2つのピンの間にラインが自動的に引かれ、プログラムが完成します。

一方のオブジェクトのタイトル・バーをドラッグして、移動してみてください（ピンや端子をドラッグすると、ラインが引かれるので注意してください）。2つのオブジェクト間の論理パスに従って、ラインが自動的に引き直されます。

ラインが煩雑に見える場合は、[Edit] [image] [Clean Up Lines]を選択し、プログラム内のラインを引き直します。

プログラムの実行

5 同じ例題で練習を続けます。 ツールバーの[Run]ボタンをクリックするか、[Debug] [image] [Run]を選択して、プログラムを実行します。プログラムは、下に示すように、Waveform (Time)画面に100Hzの余弦波を表示します（なお、オブジェクトの周波数が異なってもかまいません。 周波数は、この例題では重要ではありません）。

ツールバーでは、[Run]ボタンだけでなく、[Stop]、[Pause]、[Step Into]ボタンもプログラムを制御するために使用できます。プログラムの実行を休止（[Pause]）した場合は、[Resume]ボタン（[Run]ボタンと同じ）を使って再開できます。ツールバーの[Step Into]ボタンを使用して、オブジェクトを1つずつ実行することもできます。

プログラムを実行するためには、ツールバーの[Run]ボタンをクリックするか、Ctrl+Gキーを押してください。次のキーボード・ショートカットも使用できます。

コマンド | キーストロークの組合わせ
Pause | Ctrl+P
Resume | Ctrl+G
Step Into | Ctrl+T

オブジェクトのプロパティの変更

オブジェクト・メニュー [image] [Properties]を選択してオブジェクトのプロパティを変更する方法については、すでに説明しました。オープン・ビューでは、オブジェクトの一般的なプロパティを直接変更できます。Function Generatorオブジェクトには2種類のフィールドがあります。右側に矢印が付いているフィールドは選択フィールドです。

6 同じ例題で練習を続けます。 [Function]フィールドの[Cosine]（または矢印）をクリックします。選択肢がドロップダウン・リストに表示されます。[Sine]をクリックして、正弦関数を選択します。 [Function]フィールドが[Cosine]から[Sine]に変わります。

ダイアログ・ボックスには、矢印が付いていないフィールドもあります。これらは入力フィールドで、クリックすると入力フィールドになります。フィールド内をクリックするとカーソルが表示されます。標準のキーボードとマウスによる編集方法でカーソルを移動し、目的の値を入力します。

7 [Frequency]フィールドの数値100の右側をクリックします。 次に、マウスのボタンを押したままマウスを左へ動かして、最後の0が強調表示されるようにします。

8 [Delete]キーを押して最後の0を削除して、[Frequency]の値を10に変更します。プログラムを実行します。下図のように表示されます。

今度は、10 Hzの正弦波の波形が表示されました。次に、オブジェクトのパラメータを以下のように変更してみます。

Function Generatorオブジェクトの[Deg]（または矢印）をクリックし、位相の単位を[Rad]に変更します。次に、[Phase]値フィールドをクリックして、値「PI」を入力します。プログラムを実行して、表示される波形に位相のシフトが起きていることを確認します。次に、[Phase]値を0に、単位を[Deg]に戻します。

Waveform (Time)オブジェクトのY軸の限界値は、あらかじめ-1から1までに設定されています。Y軸の名前[Mag]をクリックして、設定変更のためのダイアログ・ボックスを表示します。[Maximum]および[Minimum]フィールドをクリックして、限界値を2と-2に変更します。波形が新しい限界値で表示されます。X軸スケールに対して同様のパラメータの変更を行うには、[Time]をクリックします。

画面の印刷

9 同じ例題を使って練習を続けます。 画面を印刷するには、[File] [image] [Print Screen]を選択します。印刷ダイアログ・ボックスが表示されます。

[OK]をクリックすると、VEEはダイアログ・ボックスに示されたデフォルトのプリンタで画面を印刷します。プリンタの変更、印刷範囲の変更、部数の変更が可能です。[プロパティ]ボタンをクリックすると、ほかの設定も行うことができます。プリンタ・ドライバにより、表示されるダイアログ・ボックスも異なります。Windowsのダイアログ・ボックスの使用法についての詳細は、Microsoft Windowsのヘルプを参照してください。

ツールバーの[Print Screen]ボタンをクリックして、画面を直接印刷することもできます。

プログラムの保存

プログラムはいつでも保存できます（プログラムが完成しているかどうかにかかわりなく、作業領域の全内容が保存されます）。

10 同じ例題で練習を続けます。[File] [image] [Save As...] を選択して、ダイアログ・ボックスで必要事項を設定します。

[Save File]という名前のダイアログ・ボックスが表示されます。

11 特に指定しないかぎり、Windows版VEEは、My DocumentsディレクトリのサブディレクトリVEE Programsにファイルを保存します。作成中の例題プログラムを保存するには、[ファイル名]フィールドに「 simple-program 」と名前を入力して[保存]をクリックします。拡張子を指定しないと、VEEが自動的に拡張子.veeをファイル名に追加します。

注記

Windows 2000、Windows XPおよびWindows Vistaで認められている長いファイル名を使用できます。

[Save File]ダイアログ・ボックスでは、次の設定を行うことができます。

ファイルの保存オプション | 説明
[保存する場所] | ドロップダウン・メニューを開いてディレクトリまたはドライブを変更します。フォルダを開くには、そのフォルダをダブルクリックします。
[ファイル名] | 任意のファイル名を入力します。
[ファイルの種類] | VEEプログラムは、通常.veeという拡張子が付けられて保存されますが、ファイルの種類は変更できます。拡張子を付けずにファイル名を入力すると、拡張子.veeが自動的に付加されます。
[Save colors and fonts with program] | （オプション）[Default Preferences]メニューを使ってプログラムの色とフォントを変更し、次にプログラムをロードしたとき、デフォルトの色およびフォントではなく、変更した色およびフォントが使用されるように設定するには、この項目をチェックします。 チェックすると、デフォルト設定に加えた変更がプログラムの一部として保存されます。
[Save I/O configuration with program] | （オプション）[Instrument Manager]で計測器を設定しており、次にプログラムをロードする人にもデフォルトではなくこの設定を使用して欲しい場合には、この項目をチェックします。 チェックすると、I/O設定がプログラムの一部として保存されます。

注記

同じファイル名でプログラムを再保存するには、任意の時点で[Save]ボタンをクリックするか、Ctrl+Sキーを押します（[File] [image] [Save]）。プログラム作成中はファイルの保存を頻繁に行うことをお勧めします。編集したプログラムを別のファイル名で保存するには、Ctrl+Wキーを押すか、[File] [image] [Save As]を選択します。

Agilent VEEの終了

[File] [image] [Exit]を選択してVEEのアプリケーション・ウィンドウを閉じます。別のショートカットとして、Ctrl+Eキーを押してVEEを終了します。 またはタイトル・バーの右端にある[x]ボタンをクリックします。

万一、VEEがマウスやキーボードに反応しなくなった場合は、次の操作を行ってください。

オペレーティング・システム | 方法
Windows 2000、Windows XP、Windows Vista | Ctrl+Alt+Deleteキーを押し、[タスクマネージャ]ボタンをクリックします。アプリケーション・リストでVEEを選択し、[終了]をクリックします。

Agilent VEEの再起動とプログラムの実行

1 [スタート] [image] [プログラム] [image] [Agilent VEE Pro]をクリックします。

2 [File] [image] [Open]を選択し、[Open File]ダイアログ・ボックスに入力します。

ダイアログ・ボックスの形式は[Save File]ダイアログ・ボックスと同じです。Windows版VEEでは、インストール時に特に設定を行っていなければ、ユーザが作成したプログラムのデフォルトのディレクトリは、「VEE_USER」ディレクトリです。VEEはプログラムをメイン・ウィンドウで開きます。

3 [Run] ボタンをクリックします。このボタンは、小さい矢じりに似た形をしており、下図のように、ツールバーの[Debug]メニューの下にあります。

[Run]ボタン

注記

コマンドvee.exe -r filenameを入力すると、VEEが起動してfilenameで指定したプログラムが自動的に実行されます。たとえば、Windowsのデスクトップ上にアイコンを作成し、アイコンの[プロパティ] [image] [ショートカット]で特定のVEEプログラムを実行するように設定できます。こうしておくと、デスクトップ上のアイコンをダブルクリックするだけで、自動的にを起動してプログラムを実行できます。詳細は、Windowsのコマンドおよびプロンプトのパスについてのヘルプを参照してください。

ワークスペースでの複数ウィンドウの管理

ここまでの説明のほとんどは、メイン・ウィンドウ内の作業領域についてでした。しかし、大きなプログラムでは、メイン・ウィンドウ内に複数のウィンドウが含まれることがあります。たとえば、UserObjectやUserFunctionなど、ユーザが定義したオブジェクトがプログラムに含まれる場合があります（UserObjectおよびUserFunctionは、メイン・プログラムのサブ・ルーチンまたはサブ・プログラムと考えることができます。UserObjectとUserFunctionについては、「例題2-1: UserObjectの作成方法」で詳しく扱います）。ここでは、VEEにおける複数ウィンドウを含むプログラムの管理方法を説明します。

下図は、4つのウィンドウがあるプログラムを示しています。それぞれのウィンドウには、メニュー・コマンドを備えたアイコン、タイトル、[最小化]ボタン、[最大化]ボタン、および[閉じる]ボタンがあります。ウィンドウを最大化すると、VEEワークスペースで使用できる領域がそのウィンドウで占有されます。ウィンドウを最小化すると、VEEワークスペースの最下部にそのウィンドウのアイコンが表示されます。ウィンドウを閉じると、ウィンドウはワークスペースから削除されます。VEEは作業ウィンドウのタイトル・バーを強調表示します。

上図のように、プログラムの階層構造がプログラム・エクスプローラにリストされます。この組込みのモジュール構造により、プログラムのすべての部分に簡単にアクセスできます。

プログラム・エクスプローラが表示されない場合、[View] [image] [Program Explorer]をクリックします。

メイン・ウィンドウを一番手前に表示するには、メイン・ウィンドウをクリックするか、プログラム・エクスプローラでメイン・ウィンドウのアイコンをダブルクリックします。

注記

VEEでメイン・ウィンドウを閉じた後、再びメイン・ウィンドウを表示するには、[View] [image] [Main]を選択します。

関連項目

ピ ンと端子について,オブジェクトの操作,Agilent VEEの対話型操作,Agilent VEEプログラムの動作


Agilent VEEプログラムの動作

例題1-2：データ・フローと伝達の表示

例題1-3：ノイズ生成器の追加

例題1-4：Amplitude入力端子およびReal64 Sliderオブジェクトの追加

例題1-2：データ・フローと伝達の表示

VEEでは、プログラムの一般的な処理の流れを伝達と呼びます。プログラムの伝達は、プログラム内のオブジェクトの物理的な位置によって決定されるのではなく、オブジェクトの接続のされ方によって決まります。伝達は、第一にデータ・フローによって決定されます。 そしてデータ・フローは、オブジェクトのデータ入力ピンとデータ出力ピンがどのように接続されているかによって決定されます。

注記

C、BASIC、Pascalなどほかのプログラミング言語では、プログラム文が実行される順序は、シーケンスと選択ルールの組合わせによって決定されます。一般にプログラム文は、特定の文が別の文やコードのスレッドへの分岐を生じないかぎり、プログラムに記述されている順番で実行されます。

VEEプログラムでのデータ・フローの規則は次のとおりです。

データはオブジェクト内を左から右へ移動します。つまり、データ・ピンがあるすべてのオブジェクトにおいて、左側のデータ・ピンは入力ピン、右側のデータ・ピンは出力ピンということになります。

オブジェクトのデータ入力ピンは、すべて接続する必要があります。接続していない場合、プログラムを実行するとエラーになります。

オブジェクトは、すべてのデータ入力ピンが新しいデータを受け取るまで、動作しません。

オブジェクトは、接続されている適切なデータ出力ピンがすべてアクティブになったときに動作を終了します。

VEEでは、シーケンス入力／出力ピンを使って動作の順番を変更できます。しかし、通常はシーケンス・ピンを使用する必要はありません。一般に、シーケンス・ピンの使用はお勧めできません。できれば、データ・フローによってプログラムの実行を制御してください。

ツールバーの[Open]ボタンをクリックして、「simple-program.vee」プログラムを開いてください（「simple-program.vee」プログラムについては、「例題1-1: 波形表示プログラム」 で説明されています）。次に、プログラムを実行します。プログラムは下のようになりますが、パラメータの値は異なる可能性があります。

注記

このマニュアルに記載されている練習問題やプログラミング例で使用したVEEプログラムの多くは、VEEに付属しています。[Help] [image] [Open Example...] [image] [Manual] [image] [UsersGuide]を選択してください。

ここでは、Function Generatorオブジェクトのデータ出力ピンが、Waveform (Time)オブジェクトのデータ入力ピンに接続されています。プログラムを実行しても、Waveform (Time)オブジェクトは、Function Generatorオブジェクトからデータを受け取るまで動作しません。これは、データ・フローの簡単な一例です。

例題1-3：ノイズ生成器の追加

次のように、Noise Generatorオブジェクトをsimple-program.veeに追加することにより、「ノイズのある正弦波」を加えます。

1 元のプログラムで、Function GeneratorオブジェクトとWaveform (Time)オブジェクトを接続しているラインを削除します。ツールバーの[Delete Line]ボタンをクリックし、次にラインをクリックします。または、Shift+Ctrlキーを押したままでラインをクリックします。

2 Function Generatorを最小化してアイコンにします。

3 Noise Generatorオブジェクトを追加します。 それには、[Device] [image] [Virtual Source] [image] [Noise Generator]を選択します。

4 A+Bオブジェクトを追加します。それには、[Device] [image] [Function & Object Browser].を使用します。

Function & Object Browserが下のように表示されます。[Operators] => [Arithmetic] =>[+]を選択します。[Create Formula]をクリックし、作業領域のFunction GeneratorオブジェクトとWaveform (Time)オブジェクトの間にオブジェクトを配置します。A+Bオブジェクトを最小化します。

1 入力ピンと出力ピンを接続します。

2 プログラムを実行します。

A+Bオブジェクトは、Function GeneratorオブジェクトとNoise Generatorオブジェクトが動作するまで動作しません。ただし、Function GeneratorとNoise Generatorは、どちらが先に動作してもかまいません。 結果は同じになります。

A+Bのデータ入力ピンの両方がデータを受け取ると、A+Bオブジェクトは動作して2つの信号を合計し、結果をWaveform (Time)オブジェクトに出力します。

注記

VEEプログラムではデータ・フローが動作を決定します。

動作の順番を表示するには、[Debug]メニューで[Show Execution Flow]と[Show Data Flow]をオンにします。 または、ツールバーの該当するボタンをクリックします。プログラムを再度実行します。オブジェクトが動作すると、そのオブジェクトは強調表示され、小さい四角形のマーカがラインに沿って移動してデータの流れを表します。

注記

[Show Execution Flow]と[Show Data Flow]を同時に、または個別に有効にするには、ツールバーの該当するボタンをクリックするか、[Debug]メニューでそれぞれのコマンドを選択します。プログラムの実行速度が遅くなるため、通常、これらのコマンドはオフにしておくことをお勧めします。

例題1-4：Amplitude入力端子およびReal64 Sliderオブジェクトの追加

simple-program.veeプログラムにAmplitude(振幅)入力端子とReal64 Sliderオブジェクトを追加します。

1 オブジェクト・メニューをクリックするか、またはマウス・ポインタをNoise Generatorの左側の端子領域に置き、Ctrl+Aキーを押します。入力端子を追加するためのダイアログ・ボックスが表示されます。

2 OKをクリックして[Amplitude]を選択します。 Amplitude入力端子が表示されます

これで、Noise GeneratorオブジェクトにAmplitude入力ピンが追加され、振幅データを実数として入力できます。VEEには、[Data]メニューにReal64 Sliderというオブジェクトがあり、データ入力を簡単に行うことができます（Real64 ConstantオブジェクトまたはReal64 Knobオブジェクトを使用することもできます）。

3 Real64 Sliderオブジェクト（[Data] [image] [Continuous] [image] [Real64 Slider]）を追加し、Real64 Sliderオブジェクトのデータ出力ピンを次のようにAmplitude端子に接続します。プログラムを実行します。

Real64 Sliderオブジェクトのスライダをドラッグして、ノイズの振幅を変更してみてください。プログラムを実行すると、ノイズの振幅が変化します。表示される波形のノイズ成分はReal64 Sliderが出力する値で決まります。

ここでも、実行順序はデータ・フローで決定されます。Noise Generatorは、Real64 Sliderが動作するまで動作しません。A+Bオブジェクトは、Function GeneratorとNoise Generatorが動作するまで動作しません。 ただし、どちらのオブジェクトが先に動作するかは問題になりません。最後に、A+Bオブジェクトが動作した後でWaveform (Time)オブジェクトが動作します。

注記

マウスをライン上に合わせたままにすると、出力値が表示されます。たとえば、Real64 SliderオブジェクトからNoise Generatorオブジェクトまでのライン上にマウスを合わせたままにすると、0.401と表示されます。ライン上の数値（0.401）は、下図のようにReal64 Sliderに表示される値と一致します（オブジェクトはアイコン・ビューで表示されています）。

4 プログラムを「simple-program.vee」にもう一度保存します。この後の例題では、このプログラムにさらに機能を追加します。


一般的な技術

VEEでは、メイン・プログラム内に「UserObject」と呼ばれるオブジェクトの論理的なグループを作成できます。UserObjectは、UserObject編集ウィンドウにオブジェクトの論理的なグループを配置することによって作成します。UserObject編集ウィンドウでは、メイン・プログラムと同じ方法で入力ピンと出力ピンを接続します。また通常のオブジェクトと同じように、UserObject自体をメイン・プログラム内のほかのオブジェクトに入力ピンと出力ピンで接続できます。

UserObjectを開発するということは、メイン・プログラム内で有用な処理を行う独自のコンテキストを作成するということです。メイン・プログラムの作業領域内でスペースを節約できるうえに、構造化によってわかりやすいプログラムを記述することができます。

VEEプログラムでは、メイン・プログラム内に複数のUserObjectを入れ子構造で含めることができます。UserObjectはそれぞれ、メイン・ウィンドウ内ではアイコン・ビューで表示されます。メイン・プログラムにあるUserObjectのアイコン・ビューと、対応するUserObject編集ウィンドウとを関連付けるには、編集ウィンドウでUserObjectに名前を付けます。 対応するアイコン・ビューも同じ名前になります。たとえば、UserObjectに AddNoiseという名前を付けた場合、メイン・プログラム内のアイコン・ウィンドウとUserObjectのタイトル・バーの両方にAddNoiseが表示されます。次の例題では、UserObjectの作成方法を学びます。

例題2_1:UserObjectの作成方法

例題2_2:ユーザ入力のためのダイアログ・ボックスの作成方法

例題2_3:データ・ファイルの使用法

例題2_4:パネル・ビューの作成方法

例題2_5:データの数式処理方法

例題2_6:乱数の生成

例題2_7:グローバル変数の設定と表示


例題2-1：UserObjectの作成方法

VEE プログラムでUserObject を作成する方法はいくつかあります。

メニュー・バーから[Device] [image] [UserObject]を選択すると、メインウィンドウに空のUserObjectアイコンが現れるので、このアイコンにオブジェクトを追加します。UserObjectアイコンをダブルクリックすると、下のようにオープン・ビュー表示になります。

プログラム内のオブジェクトを選択します。 次に、[Edit] [image] [Create UserObject]をクリックして、選択したオブジェクトからUserObject を作成します。

作成したUserObjectは、メイン・プログラムの一部になります。またUserObject編集ウィンドウの表示方法には、アイコン、オープン・ビュー、画面最下部に最小化の3通りあります。

[閉じる]ボタンをクリックして編集ウィンドウを閉じます。 UserObjectはメイン・ウィンドウ内でアイコンとして表示されます。

[最大化]ボタンをクリックして編集ウィンドウを最大化します。 UserObject編集ウィンドウは、VEEワークスペース内で使用できる全領域を占有します。

[最小化]ボタンをクリックして編集ウィンドウを最小化します。最小化されたUserObjectはVEEのワークスペースの最下部に表示されます。

注記

UserObjectのアイコン・ビューはメイン・ウィンドウに常に存在しており、メイン・ウィンドウ内でほかのオブジェクトに接続できます。

これから、プログラムにUserObjectを作成します。

1 「例題1-4: Amplitude入力端子およびReal64 Sliderオブジェクトの追加」で作成したプログラム（simple-program.vee ）を開きます。プログラムは、主作業領域に表示されます。

2 プログラムからReal64 Sliderを削除します（このオブジェクトは、この例題では使用しません）。Real64 Sliderのオブジェクト・メニューを開いて[Delete]を選択するか、Real64 Sliderのオブジェクト・メニュー・ボタンをダブルクリックします。

注記

Real64 Sliderオブジェクトを削除し、Noise Generatorに入力ピンを残した状態でプログラムを実行すると、Noise Generator上の入力ピンAmplitudeが接続されていないというエラー・メッセージが表示されます。VEEプログラムを実行するときは、すべての入力ピンを接続する必要があります。

3 Noise Generatorオブジェクトで、オブジェクト・メニュー・ボタンをクリックするか、オブジェクト上でマウスの右ボタンをクリックして、オブジェクト・メニューを開きます。[Delete Terminal] [image] [Input]を選択し、削除する入力ピンを選択するためのダイアログ・ボックスで[Amplitude]を強調表示し、[OK]をクリックします。

4 プログラムの名前を変更します。[File] [image] [Save As...] を選択し、新しい名前「usrobj-program1.vee 」を入力します。

5 次に、Noise Generatorオブジェクトを最小化して、次のようにオブジェクトを再配置します。

6 Ctrlキーを押したままマウスの左ボタンを使用して、Noise GeneratorオブジェクトとA+Bオブジェクトを選択します。[Edit] [image] [Create UserObject]をクリックします。「Create UserObject」のラベルが付いたダイアログ・ボックスが表示されます（必要に応じて新しい名前を入力することにより、オブジェクトの名前を変更できます。ここでは、[OK]をクリックしてUserObjectを作成します）。

UserObject の編集ウィンドウにはNoise GeneratorおよびA+Bオブジェクトが含まれます。 またメイン・ウィンドウには、適切な入力ピンと出力ピンが付けられ、接続済みのUserObjectが自動的に作成されます。

キーボードのHomeボタンを押すだけで、UserObjectの左上にアイコンを配置できます。

注記

[Create UserObject]を実行する前にオブジェクトを整理しておくと、作業が楽になります。UserObjectに入れるオブジェクトを1か所に集めておかなかった場合、UserObjectは選択したオブジェクトすべてを囲む大きさになります。その場合は、UserObjectの作業領域を整理して大きさを変更し、主作業領域内の適切な位置にUserObjectを移動します。しかし、あらかじめオブジェクトを論理的に配置して置いた方が整理が簡単です。

注記

[Edit] [image] [Clean Up Lines]を使用して、プログラム内の経路指定ラインを整理できます。このコマンドはコンテキスト依存です。UserObjectのラインを整理するには、UserObject編集ウィンドウがアクティブでなければなりません。UserObject編集ウィンドウをクリックしてから、[Edit] [image] [Clean Up Lines]を使用します。

初めにUserObject編集ウィンドウ内でUserObjectを作成してから、UserObjectをアイコン表示にして使用すると、画面のスペースを節約できます。

7 UserObjectの動作を把握しやすいように、タイトルをUserObjectからAddNoiseに変更します。タイトル・バーをダブルクリックして[Properties]ダイアログ・ボックスに新しいタイトルを入力します。下の図のように、これでプログラムが見やすくなりました。

オブジェクトの[Properties]ダイアログ・ボックスをすばやく表示するには、タイトル・バーをダブルクリックします。

8 [Run] ボタンをクリックして、ノイズのある余弦波を表示します。

AddNoiseが最小化されてワークスペースの最下部にアイコンで表示されていることを確認してください。AddNoiseを最小化するには、タイトル・バーにあるアンダーバー （_）で示された[最小化]ボタンをクリックします。

有効なUserObject であるためには、プログラム内で論理的目的を満たす必要があります。この独自のオブジェクトは、単なるスペース節約の手段ではなく、むしろプログラムを構造化するための手段です。UserObjectを使用すると、VEEプログラムに「トップダウン」設計の手法を取り入れることができます。VEEにはUserFunctionと呼ばれるオブジェクトもありますが、これは繰返し使用できるコード・モジュールです。UserObjectとUserFunctionについての詳細は、次を参照してください。

UserObjectについての詳細を知るには、VEE メニュー・バーから[Help] [image] [Contents and Index]を選択します。その後、「使用法」、「以下の項目についての説明」、「リファレンス」のいずれかを参照します。

この後のセクションでも、この例題を使って学習を続けます。ここでいったん学習を終了する場合は、プログラムにusrobj-program3.vee と名前を付けて保存してください。


例題2-2：ユーザ入力のためのダイアログ・ボックスの作成方法

プログラムusrobj-program3.veeを開いていない場合は、まずプログラムを開きます。

[Data] [image] [Dialog Box]サブメニューには、ダイアログ・ボックス作成用として[Text Input]、 [Int32 Input]、[Real64 Input]、[Message Box]、[List Box]、[File Name Selection]の6つの選択肢があります。それぞれテキスト、整数、実数を入力する場合に、ダイアログ・ボックスで、プロンプトやラベル、デフォルト値、値の制約、エラー・メッセージなどを設定できます。これらのダイアログ・ボックスをプログラムに入れると、プログラム実行時にポップアップ入力ボックスが表示されます。

1 [Data] [image] [Dialog Box] [image] [Int32 Input] を選択し、Function Generatorの左側に配置します。[Prompt/Label]フィールドを[Enter Frequency:]に変更します（変更を行う前に、忘れずにフィールドをクリック・アンド・ドラッグして強調表示してください）。[Default Value]を[100]に変更します。

入力フィールドをダブルクリックして入力内容を強調表示することもできます。

2 [Value Constraints]の最低値を[1]に、最高値を[193]に変更します。エラー・メッセージの内容も、新しく入力した値を反映するように変更します。最後にInt32 Inputオブジェクトをアイコン化します。

3 Function Generatorのオブジェクト・メニューを開き、[Add Terminal] [image] [Data Input]を選択します。[Select input to add]のダイアログ・ボックスで [Frequency]を選択して[OK]をクリックします。

4 Int32 Inputオブジェクトの上の出力ピンをFunction Generatorの入力ピンに接続します。これで、Frequencyは、入力ピンを介してのみ変更可能になり、[Frequency]入力フィールドでは変更できなくなります。プログラムは次のように表示されます。

5 プログラムを実行します。Int32 Inputの入力ボックスが表示され、周波数の入力を求められます。入力ボックスにさまざまな周波数を入力してプログラムを実行してみてください。ポップアップ・ボックスをクリック・アンド・ドラッグするだけで表示位置を制御できます。

193より高い周波数を指定すると、エラー・メッセージ・ボックスが表示されます。 設定したエラー・メッセージが正確に表示されることを確認してください。

この後のセクションでも、この例題を使って学習を続けます。ここでいったん学習を終了する場合は、プログラムにusrobj1-program4.vee と名前を付けて保存してください。

注記

このマニュアルに記載されている練習問題やプログラミング例で使用したVEEプログラムの多くは、VEEに付属しています。[Help] [image] [Open Example...] [image] [Manual] [image] [UsersGuide]を選択してください。


例題2-3：データ・ファイルの使用

プログラムにTo FileおよびFrom Fileオブジェクトを入れることにより、VEEからデータをデータ・ファイルに書き出したり、ファイルのデータをVEEに読み込んだりすることができます。例題では、構築したプログラムの詳細ビューにTo Fileオブジェクトを追加します。

プログラムusrobj-program4.veeを開いていない場合は、まずプログラムを開きます。

1 [I/O] [image] [To] [image] [File]を選択して、To Fileオブジェクトを主作業領域に配置します。

2 デフォルトのファイル名myFileをwavedataに変更します。

[Clear File At PreRun & Open]の左にチェック・マークが付いていない場合は、小さい入力ボックスをクリックします。To Fileのデフォルト設定では、既存ファイルにデータを追加します。しかし、この場合は、プログラムを実行するたびにファイルをクリアします。この時点で、To Fileオブジェクトは次のように表示されるはずです。

3 データを書き出すには、Double-Click to Add Transaction のラベルが付いた領域をダブルクリックします。上記のダイアログ・ボックスが表示されます。[TEXT]フィールド（または右側の矢印）をクリックしてデータ型のドロップダウン・リストを表示し、[CONTAINER]をクリックします。[OK]をクリックします。[I/O Transaction]ダイアログ・ボックスで[OK]をクリックすると、To Fileオブジェクトに入力ピン「a」が自動的に追加されることを確認してください。

[WRITE CONTAINER]以外のトランザクションのオプションを確認するには、To Fileのオブジェクト・メニューでヘルプを参照してください。

4 AddNoise UserObjectのデータ出力ピンをTo Fileのデータ入力ピンに接続します。プログラムは次のように表示されます。

注記

1つのデータ出力ピンを複数のデータ入力ピンに接続できます。

5 ツールバーのRunボタンを再度クリックして、プログラムをテストします。プログラムは、AddNoise UserObjectが出力したノイズのある余弦波を表示し、波形のデータ・コンテナをwavedataファイルに書き出します。

To Fileオブジェクトをダブルクリックしてオープン・ビューにします。 次に入力端子「a 」をダブルクリックして内容を確認します。256の点を持つ配列が表示されます。

データを読み戻すには、From Fileオブジェクトをプログラムに追加します。

6 [I/O] [image] [From] [image] [File] を選択して、From Fileオブジェクトを主作業領域に配置します。READ CONTAINER xに読み取りトランザクションを追加して、ファイル名をwavedataに変更します（手順はTo Fileと同じです）。次に、AddNoiseオブジェクトとWaveform (Time)オブジェクト間のラインを削除して、オブジェクトを下のように接続します。To FileとFrom File間のシーケンス・ラインにより、データは読み取られる前に確実にファイルに書き込まれます。

7 プログラムを実行します。プログラムは上のように表示されるはずです。プログラムを「usrobj-program.vee 」のファイル名で保存します。


例題2-4：パネル・ビュー（オペレータ・インタフェース）の作成方法

プログラムを開発したら、今度は、オペレータ・インタフェースを作成することになります。これを行うには、プログラムのパネル・ビューを作成します。この例題では、「例題1-2: データ・フローと伝達の表示」で作成したプログラムsimple-program.veeを使用します。

1 プログラム「simple-program.vee」を開きます。プログラムは次のように表示されます。

2 オペレータ・インタフェースとして動作するパネル・ビューに表示するオブジェクトを選択します。Ctrl キーを押しながら、選択したいオブジェクトをすべてクリックします（間違ってオブジェクトを選択しないように注意してください）。ここでは、Real64 SliderおよびWaveform (Time)オブジェクトを選択します。選択したオブジェクトには、選択されていることを示す影が表示されます。

3 ツールバーの[Add to Panel]ボタンをクリックして、選択されたオブジェクトをパネルに追加します（あるいは、[Edit] [image] [Add To Panel]を使用します）。パネル・ビューが現れ、パネルに追加した2つのオブジェクトが表示されます。

パネル・ビュー内のオブジェクトのサイズを変更して適切な位置に移動し、下に示すようなパネルを作成します。

4 メイン・ウィンドウのタイトル・バーの左上にある[To Detail]ボタンを押して、詳細ビューに切り替えます。[To Panel]ボタンをクリックすると、パネル・ビューに戻ります。

詳細ビューは、プログラムを編集する通常のウィンドウです。パネル・ビューでは、詳細ビューとは独立してオブジェクトの移動、サイズの変更、削除を行うことができます。詳細ビューはプログラムの開発に使用され、パネル・ビューはオペレータ・インタフェースの提供に使用されます。

5 プログラムにsimple-program_with_panel.veeと名前を付けて保存します。

パネル・ビューでは次のような変更を行うことができます。

パネルの背景色を変更するには、パネル・ビューのメイン・ウィンドウでオブジェクト・メニューから[Properties]を選択します。[BackColor]プロパティを選択し、色を選択します。

オブジェクトの色またはフォントを変更するには、タイトル・バーをダブルクリックして[Properties]ダイアログ・ボックスを表示します。次に変更する[Colors]または[Fonts]プロパティをクリックします。

パネル・ビューのオブジェクトを浮出し表示するには、そのオブジェクトの[Properties]ウィンドウを開き、[Border]プロパティの下にある[Raised]を選択します。

パネル・ビューの名前を変更するには、メインの[Properties]ウィンドウを開き、[Title]プロパティを変更します。プログラムを実行すると、入力した名前が表示されます。


例題2-5：データの数式処理方法

VEEは、MATLABのデータ／信号処理能力のすべてを含む、広範な組込み数式処理能力を提供します。詳細については、データの処理を参照してください。

データ型の使用法

VEEは、テキスト、整数、実数、複素数、座標などを含むさまざまなデータ型をサポートします。すでに、前の例題で、A+Bオブジェクトを使って2つの波形を加算できることを学びました。加算（+）のような算術演算子は、複数のデータ型を処理できるだけでなく、データ型が混在している場合でも処理を行うことができます。

たとえば、次のプログラムを作成するには、メイン・ウィンドウをクリアし、メイン・ウィンドウに以下に示すオブジェクトを配置し、手順に従ってそれらのオブジェクトを接続します。

1 [File] [image] [New]を選択して作業領域をクリアします。

2 [Data] [image] [Constant] [image] [Real64] を選択して、Real64 Constantオブジェクトを追加します。

3 [Data] [image] [Constant] [image] [Complex] を選択して、Complex Constantオブジェクトを追加します。

4 A+Bオブジェクトを追加します。[Device] [image] [Function & Object Browser]を選択して、Function & Object Browserを開きます。次に、[Operators] => [Arithmetic] => [+]を選択します。[Create Formula]をクリックしてオブジェクトを作成します。

5 [Display] [image] [AlphaNumeric]を選択して、AlphaNumericオブジェクトを追加します。下に示すようにオブジェクトを接続します。Real64 Constantオブジェクトのデータ入力フィールドに数値「1.53」を入力します。 またComplexオブジェクトに複素数「(2,1)」を入力します。プログラムを実行すると、次のような結果になります。

VEEは、A+Bオブジェクトで、自動的に必要なデータ変換を行ったうえで加算を実行します。実数1.53は複素数(1.53,0)に変換され、複素数(2,1)に加算されます。結果の複素数(3.53,1)は、AlphaNumericオブジェクトに表示されます。

注記

通常、VEEは、すべてのデータ型変換を自動的に処理します。詳細は、VEEメニュー・バーから[Help] [image] [Contents and Index] を選択し、オンライン・ヘルプを参照してください。その後、「使用法」、「以下の項目についての説明」、「リファレンス 」のいずれかを参照します。

データの種類の使用法

VEEは、スカラや配列など、さまざまなデータの種類をサポートします。VEEのオブジェクトは多くのプログラミング言語とは異なり、1つの要素のみに対してではなく、配列全体に対して処理を実行できます。

次のプログラムは、10要素から成る1次元配列を作成し、10個の値の中央値を計算して表示します。

1 [File] [image] [New]を選択して作業領域をクリアします。

2 [Flow] [image] [Repeat] [image] [For Range] を選択して、For Rangeオブジェクトを追加します。

3 [Data] [image] [Sliding Collector] を選択して、Sliding Collectorオブジェクトを追加します。

4 median(x)オブジェクトを追加します。[Device] [image] [Function & Object Browser]を選択します。次に、[Built-in Functions] => [Probability & Statistics] => [median]を選択して、[Create Formula]をクリックします。

Function & Object Browserは、ツールバーの[fx]ボタンをクリックすると表示できます。

5 [Display] [image] [AlphaNumeric] を選択して、AlphaNumericオブジェクトを追加します。 オブジェクトを下のように接続します。

プログラムを実行します。オブジェクトの入力値を変更していなければ、結果が上のように表示されます。

Formulaオブジェクトの使用

VEEが提供する算術演算子と関数については、オンライン・ヘルプの「Reference」で解説されています。[Help] [image] [Contents and Index]を選択します。次に、「Reference」を選択して目的の項目を表示します。

定義済みの演算子および関数オブジェクトを使用するには、[Device] [image] [Function & Object Browser]（またはツールバーの[ fx]ボタン）を選択します。[Create Formula]をクリックしてオブジェクトを作成します。

定義済みの演算子および関数のほかに、[Device]メニューにあるFormulaオブジェクト内に任意の有効なVEE演算式を作成できます。このセクションでは、Formulaオブジェクトを使用してプログラムを作成します。初めにメイン・ウィンドウをクリアしてから、次のステップに進んでください。

1 メイン・ウィンドウにFunction Generatorオブジェクトを追加し、100 Hzの正弦波を発生するようにオブジェクトを変更します。[Device] [image] [Virtual Source] [image] [Function Generator]を選択します。

2 [Device] [image] [Formula]を選択して、Formulaオブジェクトをメイン・ウィンドウに追加します。オブジェクトの入力端子領域にマウス・ポインタを置いてCtrl+Aキーを押し、2番目の入力端子（B）をオブジェクトに追加します。

3 入力フィールドに演算式「abs(A)+B」を入力します。

4 [Data] [image] [Constant] [image] [Real64]を選択して、Real64 Constantオブジェクトをメイン・ウィンドウに追加します。値「0.5」を入力します。

5 [Display] [image] [Waveform (Time)]を選択し、[y-axis]スケールを[-2]から[2]までに設定します。[Automatic Scaling]を[Off]に設定します。これらのパラメータを設定するダイアログ・ボックスを表示するには、[Mag]をクリックします。

6 下に示すようにオブジェクトを接続します。プログラムを実行します。

プログラムを実行すると、Formulaオブジェクトは波形の入力値Aと実数Bを受け取り、Aの絶対値にBを加算します。式「abs(A)+B」は、正弦波を「整流」し、「DCオフセット」を付加する効果があります。同じ効果を実現するのに、A+Bオブジェクトとabs(x)オブジェクトを使用する方法もありますが、Formulaオブジェクトの式の方が理解が容易です（また、スペースの節約にもなります）。

Formulaオブジェクトの入力／出力端子をダブルクリックしてみてください。入力端子Bの実数のスカラが、入力端子Aの波形データ（1次元配列）の各要素に加算されます。 そして、結果として得られた波形がResult端子に出力されます。

注記

VEEの演算機能をより高めるためにMATLAB Scriptが統合されており、さらに数多くの算術関数が使用可能になりました。これらの関数は[Function & Object Browser]で表示できます。MATLAB関数の使用については、「Agilent VEEにおけるMATLAB Scriptの使用」を参照してください。


2-6: 乱数の生成

1 プログラムのドキュメントを作成します。

a Select [Display] [image] [Note Pad]を選択して、作業領域の上部中央に配置します。編集領域をクリックしてカーソルを置き、テンプレートが表示されている場合は削除します。次に以下を入力します。

This program, Random, generates a real number between 0 and 1, then displays the results. （このRandomプログラムは、0から1までの間の実数を生成して結果を表示します）

2 [Device] [image] [Function & Object Browser]を選択します。 [Built-in function] [image] [All] [image] [random]を選択します。[Create Formula]をクリックします。 オブジェクトを作業領域に配置し、クリックして位置を確定します。

3 [Data] [image] [Constant] [image] [Int32]をクリックし、ramdomの左側に配置します。Int32のオブジェクト・メニューを開いて[Clone]をクリックし、複製を元のInt32オブジェクトの下に配置します。0をダブルクリックしてカーソルを表示し、1を入力します。0が入力されているConstantオブジェクトをrandomのLow入力ピンに接続し、1が入力されているConstantオブジェクトをHigh入力ピンに接続します。

4 [Display] [image] [AlphaNumeric]を選択し、ramdomオブジェクトの右側に配置します。オブジェクト・メニューを開き、[Help]を選択すると、オブジェクトに関する詳細を知ることができます。

5 randomオブジェクトの出力ピンをAlphaNumericの入力ピンに接続します。2つのオブジェクトを接続するデータ・ラインが表示されます。

注記

ラインが付いているマウス・ポインタを目的のピンに近づけると、ピンがボックスで強調表示されます。そこで再度クリックすると接続が確定されます。

注記

何らかの原因で、接続を確定する前にライン接続の操作を中止する場合は、マウスをダブルクリックしてください。 ラインが消えます。

6 ツールバーの[Run]ボタンをクリックします。下に示すように、乱数が表示されます。

7 [File] [image] [Save As...]を選択し、Random.VEEと入力し、[OK]をクリックします。この名前は、次にこのプログラムを開いたときにタイトル・バーのVEEの隣に表示されます。


2-7: グローバル変数の設定と表示

このプログラムでは、VEEプログラムを構築する基本的な技術についてさらに練習できます。 またグローバル変数について理解できます。Set Variableオブジェクトを使って変数を作成し、後でGet Variableオブジェクトを使ってプログラム中で読み取ることができます。VEEのどのようなデータ型でも使用できます。この例題では、数値型のReal64を使用します（VEEのデータ型についての詳細は、データ型を参照してください）。

1 [Display] [image] [Note Pad]を選択して、オブジェクトを作業領域の上部中央に配置します。編集領域の左上隅をクリックしてカーソルを表示させ、テンプレートが表示されている場合は削除して、次の情報を入力します。

Set and Get a Global Variable prompts the user to enter a real number.The variable, num, is set to this real number.Then num is recalled and displayed.（グローバル変数の設定と取得では、実数入力のためのプロンプトをユーザに表示します。変数numがこの実数に設定されます。numが読み出され、表示されます）

2 [Data] [image] [Constant] [image] [Real64] を選択して、オブジェクトを作業領域の左側に配置します。オブジェクト・メニューを開いて、ヘルプの内容を調べます。

3 Real64のオブジェクト・メニューを開いて、[Properties]を選択します。タイトルを Enter a Real Number:というプロンプトに変更して[OK]をクリックします。

注記

この練習では、タイトルをプロンプトに変更することによって、Constantオブジェクトの1つを入力ダイアログ・ボックスとして使用しています。これは、ユーザに入力してもらうときの一般的なテクニックです。[Data] [image] [Dialog Box] [image] [Real64 Input]を使用することもできます。また、タイトル・バーをダブルクリックして[Constant Properties]ダイアログ・ボックスを表示することもできます。

4 [Data] [image] [Variable] [image] [SetVariable]を選択して、オブジェクトを作業領域の左側に配置します。[globalA]をダブルクリックして強調表示します。 次に「num」を入力します。オブジェクトの名前がSet numに変わります。

このことは、ユーザがReal64オブジェクトに実数を入力することを意味します。ユーザが[Run]ボタンをクリックすると、数値がグローバル変数numに設定されます。

5 Realオブジェクトのデータ出力ピンをSet numオブジェクトのデータ入力ピンに接続します。

6 [Data] [image] [Variable] [image] [Get Variable]を選択して、オブジェクトをSet numオブジェクトの下に配置します。この変数の名前をnumに変更します。オブジェクトの名前がGet numに変わります。

7 Set numのシーケンス出力ピンをGet numのシーケンス入力ピンに接続します。

注記

グローバル変数は、使用する前に設定する必要があります。したがって、Get numで読み取る前に変数numを確実に設定しておくために、シーケンス・ピンを使用します。

8 [Display] [image] [AlphaNumeric]を選択し、Get numオブジェクトの右側に配置します。

9 Get numのデータ出力ピンをAlphaNumericのデータ入力ピンに接続します。

10 実数を入力してツールバーの[Run]ボタンをクリックします。プログラムは下図のようになります。

11 [File] [image] [Save As...]を選択し、プログラムにglobal.veeと名前を付けて保存します。


例題3-1：計測器を接続しないで計測器構成を設定する方法

例題3-1：計測器の設定方法

VEEでは、計測器を接続していなくてもプログラムを開発できます。次の例題では、パネル・ドライバを使ってオシロスコープの設定を行います。次に、構成に物理計測器を追加します。

計測器を接続しないで計測器構成を設定する方法

1 [I/O] [image] [Instrument Manager...]を選択します。タイトル・バーをクリック・アンド・ドラッグして、ダイアログ・ボックスを作業領域の左上まで移動します。

注記

計測器を接続して電源を入れている場合、VEEは自動的に計測器とそのドライバを見つけます。計測器の自動検索および設定についての詳細は、VEEのメイン画面の[Help] [image] [Welcome] [image] [Tutorials]を参照してください。

特に指定しないかぎり、計測器構成は設定されていません。 この例では、Instrument Managerのリストに計測器が表示されていないと仮定します。

2 [Instrument Manager]ダイアログ・ボックスで、[My Configuration]が強調表示されていることを確認して、[Instrument]の下にある[Add...]をクリックします。[Instrument Properties]ダイアログが表示されます。

[Instrument Properties]ダイアログ・ボックスには、次の設定項目があります。

設定項目 | 説明
Name | プログラム内での計測器の呼び名を指定します。次の規則に従った名前を選択してください。 計測器名の最初の文字は英文字で、2文字目以降は英数字または下線文字です。 計測器名の中に空白を入れることはできません。
Interface | インタフェースの種類を指定します。GPIB、Serial、GPIO、USB、LAN、VXIから選択します。
Address | インタフェースの論理装置番号（通常GPIBは7）に計測器のローカル・バス・アドレス（0から31までの数値）を加えます。[Address]を0のままにした場合は、計測器を接続しないで開発を行っていることを意味します。 Direct I/OオブジェクトのI/Oデバイスのアドレスを変更した場合、実際には同じデバイスを参照するそれ以降のすべてのオブジェクトに適用されます。
Gateway | 計測器をローカルで制御するかリモート制御するかを指定します。計測器をローカルで制御する場合は、デフォルト値[This host]を使用します。 リモート制御を行う場合は[Gateway]を指定します（詳細については、I/O設定の手法を参照してください）。

3 [Name]をscopeに変更し、ほかの項目はデフォルト値のままにして、[Advanced...]をクリックします。[Advanced Instrument Properties]ダイアログが表示されます。

[General]フォルダの設定項目は次のとおりです。

設定項目 | 説明
Timeout | I/Oトランザクションが最大限何秒待機してから、エラー・メッセージを生成するかを指定します。
Live Mode | 計測器との通信をオンにするかどうかを指定します。計測器が接続されていない場合は、OFFに設定します。VEEのデフォルト設定はONです。
Byte Ordering | デバイスがバイナリ・データの読み取りや書き込みを行う際のバイト順を指定します。このフィールドは、[MSB]（最上位バイトから送信）と[LSB]（最下位バイトから送信）の間で切り替わります。IEEE 488.2準拠デバイスはすべて、[MSB]を指定する必要があります。
Description | 説明を入力します。たとえば、タイトル・バーに計測器の番号を入れたい場合は、その番号を入力します。

4 [Live Mode]をOFFに切り替えます。次に、[Panel Driver]フォルダをクリックすると、ダイアログ・ボックスが表示されます。

5 [ID Filename]の右側にあるフィールドをクリックすると、[Read from what instrument Driver?]という名前のリスト・ボックスが表示されます。このリストには、お使いのVEEのリビジョンととともに指定されたディレクトリにロードされたすべてのパネル・ドライバ・ファイルが含まれます。

注記

この例題を完了するには、VEE CD-ROMからパネル・ドライバをインストールしておく必要があります。*.cidファイルは、コンパイル済みの計測器ドライバ・ファイルを表します。

6 リストを下へスクロールしてhp54504a.cidを強調表示します。 次に[Open]をクリックします。上の図では、この計測器がすでに選択されています。強調表示したファイルをダブルクリックして選択することもできます。

[Panel Driver]フォルダのそのほかの設定項目は次のとおりです。

パネル・ドライバ 設定項目 | 説明
Sub Address | このフィールドには何も入力しないでおきます。[Sub Address]は、非VXIカードケージ計測器でプラグイン・モジュールを識別するためだけに使用されます。
Error Checking | デフォルト設定の[ON]のままにします。[Error Checking]は、スループットを上げたい場合はオフにできますが、その場合はI/Oエラーはチェックされません。
Incremental Mode | デフォルト設定の[ON]のままにします。[Incremental Mode] をオフにした場合は、設定を変更するたびに、すべての計測器ステートに対応する計測器コマンド文字列が送信されます。

7 [OK]をクリックして、[Instrument Properties]ボックスに戻ります。[OK]をクリックします。

使用できる計測器のリストに、ドライバ・ファイルhp54504a.cidを使用してscopeという名前の計測器構成が加わります。この計測器は現時点では接続されていないため、バス・アドレスがありません。このモードでプログラムの開発を行い、後で、計測器をコンピュータに接続できるようになった時点でアドレスを追加できます。

フィールド内の入力を終えて次のフィールドに移動するには、Tabキーを押します。 前のフィールドに移動するには、Shift+Tabキーを押します。Enterキーを押すのは、[OK]をクリックするのと同じです。VEEはダイアログ・ボックスを閉じます。

8 [Save]をクリックして[Instrument Manager]ダイアログ・ボックスを閉じます（[Create I/O Object]にある[Panel Driver]をクリックすると、パネル・ドライバがただちにプログラムに追加され、VEEは構成を自動的に保存します）。

これで、HP 54504Aオシロスコープをscopeという名前で計測器リストに追加できました。実際に計測器を接続していなくても、プログラム作成時にこのドライバを使用できます。

プログラムで使用する計測器の選択

1 [I/O] [image] [Instrument Manager...]を選択します。

2 [scope(@(NOT LIVE))]を選択して強調表示にします。 次に、[Create I/O Object]の下にある[Panel Driver]をクリックします。

注記

Instrument Managerでは、設定した計測器の種類に応じて、[Create I/O Object]にあるメニューを使って異なる種類のオブジェクトを作成できます。たとえば、この例題で[Panel Driver]ではなく[Direct I/O]を選択した場合、scope(@(NOT LIVE))という名前のDirect I/Oオブジェクトが作成されます。VEE は、コンポーネント・ドライバも提供します。コンポーネント・ドライバはパネル・ドライバが提供する関数のサブセットを使用します（詳細については、I/O設定の手法を参照してください）。

3 scopeパネルの輪郭線を配置し、クリックして場所を確定します。下の図のように表示されます。

これで、ほかのVEEオブジェクトと同じように、プログラム内でパネル・ドライバを使用できます。

構成への物理計測器の追加

1 [I/O] [image] [Instrument Manager...]を選択し、scopeを強調表示します。[Instrument...]の下にある[Properties]をクリックします。

2 [Address]フィールドをダブルクリックして現在の入力内容を強調表示し、709と入力します。709の7は、論理装置番号です（GPIB（HP-IB）の論理装置番号が7でない場合は、7を実際の論理装置番号に置き換えてください）。709の9は、オシロスコープのデフォルトのアドレスです。

3 [Advanced:]をクリックして[Live Mode]を[ON]に切り替えます。 次に[OK]をクリックします。[OK]をクリックし、[Instrument Properties]ボックスを閉じます。

4 [Save] をクリックして変更内容を保存します。


例題3-2：パネル･ドライバの設定の変更

例題3-2：パネル・ドライバの使用

この例題では、例としてHP 3325B Function Generatorを使用します。VEEのどのパネル・ドライバを使用する場合でも、基本的な操作は同じです。計測器を直接プログラムする代わりにパネル・ドライバを使用することによって、プログラムの開発／修正時間を節約できます。計測器の設定は、メニューを選択したり、ダイアログ・ボックスのフィールドを編集したりすることによって変更できます。計測器が接続されていて、[Live Mode]が[ON]の場合、変更した設定内容は計測器に登録されます。

プログラムでパネル・ドライバを使用するには、必要な入力／出力端子を追加して、パネル・ドライバをほかのオブジェクトに接続します。計測器に異なるステートを設定するために、プログラム内に同じドライバの複数のインスタンスを置くことができます。VEEでは、パネル・ドライバをアイコン化してスペースを節約することも、オープン・ビューにして計測器の設定を表示することもできます。またプログラム実行中に設定を変更できます。

パネル･ドライバの設定の変更

1 [I/O] [image] [Instrument Manager...]を選択します。[My Configuration]を選択して、[Instrument]の下にある[Add...] をクリックします。 [Instrument Properties]ダイアログ・ボックスが表示されるので、次のように設定を行います。

設定 | 説明
Name | 値を [fgen]に変更します。 次に、Tabキーを2回押して[Address]フィールドに移動します。
Address | 値を713、またはバス上の適切なアドレスに変更します。

2 [Advanced]をクリックします。[General]フォルダで[Live Mode]を[OFF]に切り替えます。

3 [Panel Driver]フォルダをクリックして、[ID Filename:]を[hp3325b.cid]に設定します。[OK]を2回クリックして、[Instrument Manager]に戻ります。

4 [Create I/O Object]の下にある[Panel Driver]をクリックします。オブジェクトをワークスペースの左側に配置します（この手順は、設定済みでリストに追加されている計測器の場合、計測器の種類に関わらず同じです）。

注記

ここでは、計測器を接続しない前提でプログラムを行っています。計測器を接続している場合は、適切なアドレスを設定してください。

5 [Function]フィールドの[Sine]をクリックしてポップアップ・メニューを表示し、[Triangle]を選択します。

6 [Frequency]の右側のフィールドをクリックします。

7 続いて表示される[Continuous component FREQUENCY]ダイアログ・ボックスに100と入力して[OK]をクリックします。[Frequency]の設定が変更されます。

どのようなドライバでも、同じ方法で計測器設定を変更できます。計測器にアドレスを設定し、[Live Mode]を[ON]にした場合、ドライバ・パネルで設定した変更内容はすべて、その計測器に反映されます。

同じドライバの別のパネルへの移動

ドライバの多くは、ユーザ・インタフェースをわかりやすくするためにパネルを2つ以上持っています。別のパネルへ移動するには、オブジェクトの[Main Panel]をクリックしてパネルのメニューを表示します。

1 Panel Driverオブジェクトで[Main Panel]をクリックし、[Discrete Component]メニューで[Sweep]を選択します。

.

2 [OK]をクリックして[Sweep Panel]を表示します。ほかのパネルも表示して設定内容を確認してください。

3 [OK] をクリックして[Main Panel]に戻ります。

パネル・ドライバへの入力／出力の追加

パネルで直接設定を行うほかに、ドライバにデータ入力／出力端子を追加することによってプログラム内の計測器の設定を制御したり、計測器からデータを読み取ったりすることができます。入力／出力端子領域を下に示します。

1 マウス・ポインタをFunction Generator計測器パネルのデータ入力端子領域に置き、 CTRL+Aキーを押してデータ入力端子を追加します。計測器コンポーネントのリスト・ボックスが表示されます。

2 表示されたメニューで目的のコンポーネントを選択します。

注記

オブジェクト・メニューを開き、[Component] [image] [Select Input Component]によって[Add Terminal]を選択することもできます。次に、ドライバで目的のコンポーネント・フィールドを選択します。

データ出力端子を追加するには、マウス・ポインタをデータ出力端子領域に置いて、同じ操作を行います。

データ入力／出力端子の削除

マウス・ポインタを端子の上に置き、CTRL+Dキーを押します。

注記

オブジェクト・メニューを開いて、オブジェクト・メニューから[Delete Terminal] [image] [Input...]を選択し、表示されるメニューで削除する入力端子を選択する方法もあります。

独習課題

HP 3325B Function Generator、または使用できるほかのFunction Generator上でステートを設定します。[Function]の設定を[Square]（方形波）に変更します。[Amplitude]および[Frequency]に対応する入力コンポーネントを追加します。振幅と周波数を入力するためのダイアログ・ボックスを作成し、タイトルをオペレータに対するプロンプトに変更します。振幅と周波数に異なる値を入力してプログラムを実行し、値の入力後に設定が変更されたかどうかを確認します（計測器を接続している場合は、[Live Mode]を[ON]にすると、設定が変更されます）。


例題3-3：Direct I/Oの使用法

特定の計測器用のドライバがない場合や、処理能力を上げたい場合は、Direct I/Oオブジェクトを使用します。

Direct I/Oの使用法

この例題では、Direct I/Oを使用してHP 3325B Function Generatorの設定を行います。

1 [I/O] [image] [Instrument Manager...]を選択します。

2 [fgen(@(NOT LIVE))]の項目を強調表示し、[Instrument]  [image] [Properties]を選択します。

3 [Advanced]をクリックします。[Direct I/O]フォルダを選択します。使用できるオプションをひととおり見たら、[OK]をクリックして[Instrument Properties]に戻り、もう一度 [OK] をクリックして[Instrument Manager]に戻ります。

注記

この例では、GPIBインタフェース（IEEE488）を使用します。シリアル、GPIO、VXI計測器の設定方法については｢I/O設定の手法｣を参照してください。

4 画面上にオブジェクトを配置するには、[fgen(@(NOT LIVE))]が強調表示されていることを確認して[Create I/O Object]  [image] [Direct I/O]をクリックします。

プログラム内でDirect I/Oオブジェクトを使用するには、I/Oトランザクションを設定する必要があります。次のセクションでは、テキスト・コマンドの書き込み、データの読み込み、計測器のステートのアップロード／ダウンロードについて説明します。

計測器への単一テキスト・コマンドの送信

計測器に単一のテキスト・コマンドを送信するには、適切な文字列を入力します。GPIB計測器のほとんどは、計測器に送信するコマンドに英数字の文字列を使用します。たとえば、HP3325B Function Generatorに振幅を5ボルトに設定するコマンドを送信するには、コマンド文字列"AM 5 VO"を入力します。

この例題では、前のセクションで設定したHP 3325B Function Generatorを使用します。必要なら、次へ進む前にDirect I/Oの使用法に戻り、計測器の設定を行ってください。

1 fgen(@(NOT LIVE))オブジェクトでトランザクション・バーをダブルクリックして、下に示す[I/O Transaction]ダイアログ・ボックスを表示します。

[WRITE]の隣にある下向き矢印をクリックすると、トランザクション・メニューに[READ]、[WRITE]、[EXECUTE]、[WAIT]が表示されます。計測器にデータを書き込むには、デフォルトの設定[WRITE]を使用します。各操作については、オブジェクト・メニューを開いてヘルプを参照してください。

2 デフォルトの設定、[WRITE]、[TEXT]、[DEFAULT FORMAT]、[EOL ON]を使用します。aのラベルが付いた入力フィールドをクリックし、"AM 5 VO"を（引用符も含めて）入力し、[OK]をクリックします。

下に示すように、トランザクションWRITE TEXT "AM 5 VO" EOLが表示されます。引用符で囲まれたテキストは、プログラムを実行するとHP3325Bに送信されるコマンドです。

ほとんどの場合、計測器にテキスト・コマンドを送信する方法は、同じです。ただし、計測器によっては、各コマンドの末尾やコマンド・グループの末尾に特定の文字を送信する必要があるものもあります。計測器のドキュメントを参照して、必要な場合は[Direct I/O Configuration]ダイアログ・ボックスでその文字を指定してください。

計測器への式リストの送信

計測器に式リストを送信したい場合があります。たとえば、Function Generatorで反復によりいくつかの周波数を発生させたい場合です。Direct I/Oトランザクションを使用してこれを行うには、式リストで周波数の変数を使用し、 Direct I/Oオブジェクトにその変数のためのデータ入力端子を追加します。次の手順で、計測器に式リストを送信します。

1 メイン・ウィンドウにHP3325B用のDirect I/Oオブジェクトをもう1個配置します。トランザクション領域内をダブルクリックして、[I/O Transaction]ダイアログ・ボックスを表示します。

コマンド文字列以外はすべてデフォルトの設定を使用します。この場合は、"FR", <frequency>, "HZ"というフォーマットを使用します。これは式リストであり、それぞれの式はカンマで区切られています。周波数は変数Aによって表されますが、これはDirect I/Oオブジェクトへのデータ入力になります。

2 コマンド文字列の入力フィールドをクリックして"FR",A,"HZ"と入力します（たとえば、Aの値が100の場合、VEEは文字列"FR100HZ"を送信します）。 [OK]をクリックします。VEEは、Aのラベルが付いたデータ入力ピンを自動的に追加します。

3 [Flow] [image] [Repeat]  [image] [For Range]を選択し、Direct I/Oオブジェクトの左に配置します。

4 For Rangeのデータ出力ピンをDirect I/Oのデータ入力ピンに接続します。

5 [For Range]の各フィールドを編集して、[From]に10、[Thru]に1.8M、[Step]に50kを指定します。

[For Range]は、10から180万までの範囲の数値を5万ステップで送信します。 数値がDirect I/Oオブジェクトで受け取られ、コマンド文字列によってFunction Generatorが周波数を出力します。Direct I/Oの設定は次のようになります。

6 （オプション）HP3325B（所有している場合）をコンピュータに接続し、このDirect I/Oオブジェクトの設定を編集して計測器のアドレスを付け加えます。プログラムを実行すると、計測器がこの周波数を生成します。

計測器からのデータ読込み

計測器はさまざまなフォーマットでコンピュータにデータを送信します。計測器からデータを読み込むには、読み込むデータの種類と、そのデータが単一の値（スカラ）と配列のどちらで返されるのかを知る必要があります。また計測器がデータをテキスト（ASCII）とバイナリのどちらで返すのかも知る必要があります。

返されるデータについての情報は、計測器のドキュメントで確認できるほか、VEEの[I/O]メニューにある[Agilent IO Monitor]を使って調べることができます。この情報により、I/Oトランザクションの設定方法が決まります。

この例では、1つ前の例題で説明したとおり、HP3478AマルチメータがHP3325B Function Generatorに接続されています。ファンクション・ジェネレータが特定の周波数を送信すると、マルチメータがデータを読み込んで結果をVEEに戻します。次の手順では、マルチメータに対するトランザクションの設定方法を説明します。

注記

この例では、READ TEXTトランザクションについて説明しています。READには、ほかにBINARY、BINBLOCK、CONTAINERの選択肢がありますが、これらについては Direct I/Oオブジェクトの使用法およびREADトランザクションで詳述しています。

1 [I/O] [image] [Instrument Manager...]を選択します。[Add...]をクリックします。この名前をdvmに変更します。[Advanced...]をクリックし、[Live Mode:]を[OFF]に設定します。HP3478Aを接続していない場合は、[OK]をクリックして[Instrument Manager]に戻ります（HP3478Aを接続している場合は、アドレスを修正すると、計測器がコマンドを実行します）。

2 [dvm(@(NOT LIVE))] を強調表示し、[Create I/O Object]の下にある[Direct I/O]をクリックします。

3 [<Double-Click to Add Transaction>]バーをダブルクリックして[I/O Transaction]ダイアログ・ボックスを表示します。

4 入力フィールドを強調表示し、 "T5"と入力して、[OK]をクリックします。これにより、計測器に "T"コマンドが書き込まれます。T5は、マルチメータに対する単一トリガ用のコマンドです。

5 オブジェクト・メニューを開いて[Add Trans...]をクリックし、トランザクション・バーをもう一つ追加します。 または、[<Double-Click to Add Transaction>] をダブルクリックしてトランザクションを追加し、[I/O Transaction]ダイアログ・ボックスを表示します。

6 [WRITE]の隣の下向き矢印をクリックしてドロップダウン・メニューを表示し、[READ]を選択します。[READ]を選択すると、[I/O Transaction]ダイアログ・ボックスに新しいボタンが表示されます。

7 [ExpressionList]入力フィールドをチェックして、xが入力されていることを確認します。Tab キーを押して次のフィールドに移動します。計測器から返されるデータは、データ出力ピンへ送られます。この場合は、データは計測器から読み込まれ、xという名前のデータ出力ピンへ送られます。

注記

名前の大文字と小文字は区別されません。

8 [REAL64 FORMAT]はデフォルト値のままにします。マルチメータは個々の読み取り値を実数として返します。

9 [DEFAULT NUM CHARS]は変更しません。

デフォルトの文字数は20です。 文字数を変更するには、[DEFAULT NUM CHARS]をクリックして[MAX NUM CHARS]に切り替え、20を目的の数値に変更します。

10 [SCALAR]は変更しないで[OK]をクリックします。

トランザクションがREAD TEXT X REAL64とバーに表示されます。VEEはxという名前のデータ出力端子を自動的に追加します。

注記

計測器が数値配列を返す場合は、[I/O Transaction]ダイアログ・ボックスの[SCALAR]メニューを選択して、次のような次元のメニューを表示します。配列次元を選択した場合は、配列のサイズも指定する必要があります。

11 [Display] [image] [AlphaNumeric]を右側に追加し、入力ピンをDirect I/Oのx のラベルが付いた出力ピンに接続します。

2つのDirect I/Oトランザクションはのようになります。

トランザクションを設定する手順は、READ TEXTトランザクションのデータ形式に関係なく、似ています。使用できるほかのフォーマットを調べることができます。詳細については、Direct I/Oオブジェクトの使用法およびREADトランザクションを参照してください。

完全なテスト・プログラムを作成するには、このマルチメータ・オブジェクトとFunction GeneratorオブジェクトをVEEのデータおよび表示オブジェクトと組み合わせて使用します。VEEでは、完全に機能するテスト・プログラムを簡単に作成できます。

計測器のステートのアップロード／ダウンロード

計測器のなかには、「ラーン・ストリング」機能を提供するものがあります。ラーン・ストリングには、計測器のステートを構成する関数設定のすべてが含まれます。Direct I/Oはこのラーン・ストリングをアップロードして、特定のDirect I/Oオブジェクトとともに保存します。 保存したラーン・ストリングは、後でプログラムから計測器にダウンロードできます。計測器のステートのアップロードは、次の手順で行います。

1 計測器を手動で目的のステートに設定します。

2 Direct I/Oオブジェクトのオブジェクト・メニューを開いて、[Upload State]をクリックします。

これにより、設定したステートが、Direct I/Oオブジェクトのこの特定のインスタンスに関連付けられます。

3 トランザクション領域でダブルクリックして、[I/O Transaction]ダイアログ・ボックスを開きます。

4 [TEXT]をクリックして[STATE (LEARN STRING)]を選択し、[OK] をクリックして[I/O Transaction]ダイアログ・ボックスを閉じます。このWRITEトランザクションを実行すると、あらかじめ取得したステートが計測器に送信されます。

アップロードおよびダウンロードは、[Direct I/O Configuration]ダイアログ・ボックスの設定によって制御されます。[Conformance]がIEEE 488.2の場合、VEEは、自動的に488.2の*LRN?定義を使ってラーン・ストリングを処理します。[Conformance]がIEEE 488の場合は、[Upload String]でステートの問合せに使用するコマンドを指定し、[Download String]でダウンロード時にステートの文字列の前に送信されるコマンドを指定します。下の図に例を示します。

[Conformance]には、[IEEE 488]または[IEEE 488.2]を指定できます。この例はHP 54100Aディジタイジング・オシロスコープを使用していますが、この製品はIEEE 488規格に適合しており、ラーン・ストリングの問合せには"SETUP?"コマンド、ダウンロード時のラーン・ストリングの前には"SETUP"コマンドを必要とします。[State (Learn String)]で[Configured]を選択すると、[Upload String]と[Download String]という2つのフィールドが表示されます。この2つの入力フィールドには、適切な文字列がすでに入力されています。

関連項目

Direct I/Oオブジェクトを使用するには、Direct I/O 、I/O設定の手法


例題3-4：VXIplug&playドライバの設定

例題3-4：VXI plug&playドライバの使用法

VXIplug&playドライバは、さまざまな計測器ベンダから提供され、サポートされています。これはCベースのドライバであり、最大限のパフォーマンスと使いやすさを実現するように設計されています。

Agilent VEEは、VXIplug&playと完全に互換性があります。Agilent Technologiesから入手できるすべての、VXIplug&playドライバは、別製品として搭載されています。またWebサイトhttp://www.agilent.com/find/inst_driversとAgilent Developers Network（ADN）、 http://www.agilent.com/find/adnでも入手できます。また同じドライバが、すべてのAgilent Technologiesパネル・ドライバと共にVEEに入っています。その他の計測器用のVXIplug&playドライバを入手するには、計測器ベンダにお問い合わせください。

VXIplug&playドライバの設定

この例では、hpe1412ドライバの設定方法を説明します。

1 [I/O] [image] [Instrument Manager...]を選択します。

2 [My Configuration]を強調表示して、[Instrument]の下にある[Add...] をクリックします。 [Instrument Properties]ダイアログ・ボックスが表示されます。instrumentなどの名前を入力し、[Advanced...]をクリックして、[Advanced instrument Properties]ダイアログ・ボックスを表示します。

3 [Advanced instrument Properties]ダイアログ・ボックスで、[Live Mode:]を[OFF]に切り替え、[Plug&play Driver]フォルダを選択します。 [Plug&play Driver Name:]フィールドをクリックして、コンピュータにインストールされているすべてのドライバをリストしたドロップダウン・メニューを表示します。この例では、下に示すようにhpe1412ドライバを使用します。

hpe1412ドライバを選択し、[OK] をクリックして、[Instrument Properties]ダイアログ・ボックスに戻ります。 次に、[OK]をクリックして[Instrument Manager]に戻ります。これで、リストに[instrument(@(NOT LIVE))]の項目が追加されます。

4 [instrument(@(NOT LIVE))]を強調表示して、[Create I/O Object]の下にある[Plug&play Driver]を選択します。クリックしてオブジェクトを配置します。

注記

VEEでは、VXIplug&playドライバはDirect I/Oオブジェクトに似ています。

計測器で測定を行うには、VXIplug&playドライバのC関数を使用するI/Oトランザクションを設定する必要があります。ドライバは、使用する適切な関数を選択するためのパネルを提供します。

5 <Double-click to Add Function>というラベルのトランザクション・バーをダブルクリックすると、Select a Function Panelが表示されます。

注記

VEEは、自動的に計測器を初期化します。ほかのプログラム言語のようにinit関数を使用する必要はありません。

次の図は、関数パネルの関数の階層を示します。選択した項目についてのヘルプがダイアログ・ボックスに表示されます。

6 [Configure Present Settings] [image] [Measurement Type] [image] [Measurement Type Setup]をクリックします。[Edit Function Panel]が表示されます。[func]の下でクリックしてドロップダウン・リストを表示します。デフォルトの[DC Voltage]を選択します。

7 [OK]をクリックします。これで、[To/From Instrument]オブジェクトにhpe1412_configure(instruHandle,hpe1412_CONF_VOLT_DC)の項目が追加されます。

8 To/From Instrumentオブジェクトで[Double-click to Add Function]をダブルクリックし、[Measure]の下にある[Take Measurement]を選択します。[Configuration]フォルダをクリックして、ダイアログ・ボックスを表示します。

9 [OK]をクリックします。2番目の関数の呼び出しがTo/From Instrumentオブジェクトにリストされます。


例題5-1：テスト結果の配列の作成

配列を作成する最も簡単な方法は、Collectorオブジェクトを使用することです。

この例題では、For Countオブジェクトを使用して、計測器からの読み取りを4回シミュレートします。読み取った値を配列に格納し、結果を出力します。Collectorでは、すべてのデータ型が受け入れられ、送信された要素の数に基づいて配列のサイズが自動的に決定されるため、データ型や配列のサイズにかかわりなく原理は同じです。

1 [Flow] [image] [Repeat] [image] [For Count]、[Data]  [image]  [Collector]、[Display] [image] [AlphaNumeric]を選択します。

オブジェクト名 | 説明
For Countオブジェクト | For Countは、入力フィールドで指定した反復回数を基にして、0から増加していく整数値を出力します。デフォルトの回数10をダブルクリックして強調表示してから、「4」と入力します。For Countは0、1、2、3を出力します。
Collectorオブジェクト | Collectorは、データ入力端子を介してデータ値を受け取ります。データの収集が完了したら、CollectorのXEQ端子を起動して、配列を作成して出力するように指示します。For Countのシーケンス出力ピンを使用して、CollectorのXEQピンを起動できます。Collectorは、1 Dim Arrayとn+1 Dim Arrayの間で切り替わるボタンを表示します。 このオブジェクトについて知るには、[Collector]をダブルクリックしてオープン・ビューを表示し、オブジェクト・メニューのヘルプを参照してください。

2 Collectorの[n+1 Dim]をクリックし、[1 Dim Array]に変更します。

3 For Countのデータ出力ピンをCollectorのデータ入力ピンに接続します。

4 For Countのシーケンス出力ピンをCollectorのXEQ入力ピンに接続します。

XEQピンは、いくつかのオブジェクトに存在する特殊なトリガ・ピンで、オブジェクトをいつ実行するかを決定します。この場合、配列のすべてのデータが収集されてから、オブジェクトを実行する必要があります。

5 Collectorのデータ出力ピンをAlphaNumericのデータ入力ピンに接続します。

6 AlphaNumericのどれかの隅をクリックしてドラッグし、配列を表示できるように拡大します（AlphaNumericを最初に選択したときに、オブジェクトの輪郭線をクリック・アンド・ドラッグして拡大することもできます）。

7 プログラムを実行します。次のように表示されます。

関連項目

配列を使ったテスト結果の格納


例題5-2：配列からの値の抽出

配列から値を抽出するには、式の中で角かっこ表記を使用するか、[Access Array] [image] [Get Values]オブジェクトを使用します。次の例では、Formulaオブジェクトの中で式を使用します。この例題では、プログラムに複数のオブジェクトを追加します。

1 CollectorとAlphaNumericをつなぐデータ・ラインにマウス・ポインタを置き、Shift-Ctrlキーを押し、マウスの左ボタンをクリックして、このラインを削除します。次にCollectorをアイコン化します。

2 [Device] [image] [Formula]を選択し、クローンします。AlphaNumericを右に移動し、Formulaオブジェクトを2つともCollectorの右に置きます。

3 Collectorのデータ出力を2つのFormulaオブジェクトのデータ入力に接続します。上のFormulaの入力フィールドにA[2]と入力し、下のFormulaの入力フィールドにA[1:3]と入力します。

4 A[2]は、配列の3番目の要素をスカラとして抽出し、A[1:3]は、A（A入力端子上の配列）の2、3、4番目の3つの要素から成るサブ配列を返します。

5 AlphaNumericのクローンを作成し、それぞれを各Formulaオブジェクトに接続します。

6 プログラムを実行します。次のように表示されます。

関連項目

配列を使ったテスト結果の記録


例題5-3：To/From Fileオブジェクトの使用方法

この例題では、テスト・データをファイルとやり取りするプロセスについて説明します。ここでは、一般的なテスト結果項目であるテスト名、タイム・スタンプ、Real値の1次元配列の3つの値の記録と読み取りを行います。すべてのVEEデータ型に同じプロセスが適用されます。

ファイルへのテキスト文字列の送信

1 [I/O]  [image] [To]  [image] [File]を選択します。エントリを次のように設定します。

操作 | 説明
filename | デフォルト・ファイルのmyFileを使用します。デフォルト・ファイルを変更するには、[To File]入力フィールドをクリックして、ホーム・ディレクトリ内のファイルを表示するリスト・ボックスを開きます。
Clear File At PreRun & Open | このボックスにチェック・マークを付けます。特に指定しないかぎり、VEEは、新しいデータを既存のファイルの末尾に追加します。このボックスにチェック・マークを付けると、ファイルがクリアされてから、新しいデータが書き込まれます。

2 トランザクション領域内をダブルクリックすると、[I/O Transaction]ダイアログ・ボックスが表示されます（必要なら、I/Oトランザクションを参照してください）。

デフォルト・トランザクションはWRITE TEXT an EOLです。このトランザクションは、TEXTエンコードと指定された行末シーケンスを使用して、ピンaにデータを書き込みます。VEEでは大文字と小文字の区別は必要ありません。データ入力端子名とデータ出力端子名には、大文字と小文字のどちらの文字列でも使用できます。

エントリを次のように設定します。

エントリ | 説明
a（式フィールド） | 式リスト・フィールドは、強調表示されており、デフォルトはaです。 「"Test1"」と入力してから、[OK]をクリックします（Text文字列であることを示すため、引用符が必要です。引用符を付けないで「Test1」と入力すると、VEEは、これを端子名またはグローバル変数名と解釈します）。
WRITE | デフォルトのWRITEを使用します。
TEXT | デフォルトのTEXTを使用します。TEXTエンコードは、ASCII文字を使ってデータを送信します。
DEFAULT FORMAT | DEFAULT FORMATを使用します。DEFAULT FORMATは、STRINGなどの適切なVEEフォーマットを選択します。
EOL ON | デフォルトを使用します。デフォルトのEOLシーケンスは、改行を表すエスケープ文字\nです。

3  [OK]をクリックして、To Fileオブジェクトに戻ります。トランザクション・バーには、ステートメントWRITE TEXT "Test1" EOLが表示されます。このトランザクションは、文字列Test1を指定されたファイルに送信します。

ファイルへのタイム・スタンプの送信

[Device] [image] [Function & Object Browser] [image] [Time & Date] カテゴリの中の関数now()は、Real64 Scalarで表された現在の時刻を返します。Real値は、西暦0001年1月1日00時00分から経過した秒数です。

したがって、now()は約63Gの値を返します。VEEがこのフォーマットを提供する理由は、数学的に操作しやすく、記憶域を節約できるためです。タイム・スタンプを読みやすいフォーマットで保管するには、To Fileオブジェクト内のTIME STAMP FORMATを使用します。タイム・スタンプをファイルに送信するには、次の手順に従います。

1 同じTo Fileオブジェクト内で、トランザクション領域の中をダブルクリックし、[I/O Transaction]ボックスを表示します。

2 式リスト入力フィールドをダブルクリックして[a]を強調表示し、「now()」と入力します。now()関数は、コンピュータ・クロックの現在の時刻をRealフォーマットで送信します。

3 RealフォーマットをTime Stampフォーマットに変更します。[DEFAULT FORMAT]の横の矢印をクリックしてドロップダウン・メニューを表示し、[TIME STAMP FORMAT]を選択します。[I/O Transaction]ダイアログ・ボックスに追加エントリが表示されます。エントリを次のように設定します。

タイム・スタンプ | 説明
Date & Time | ドロップダウン・メニューで[Time]を選択します。
HH:MM:SS | クリックして、時、分、秒のフォーマットから[HH:MM]（時、分のフォーマット）にトグルします。
24 HOUR | クリックして、24時間のフォーマットから[12 HOUR]（午前と午後のフォーマット）にトグルします。

[I/O Transaction]ダイアログ・ボックスは、次のように表示されます。

4 [OK]をクリックして、To Fileボックスに戻ります。2番目のトランザクション・バーには、現在、ステートメントWRITE TEXT now() TIME:HM:H12 EOLが表示されているはずです。

ファイルへのReal配列の送信

For CountオブジェクトとCollectorオブジェクトを使用して、4つの要素を持つ1次元の配列を作成し、myFileに追加します。

1 [Flow] [image] [Repeat] [image] [For Count]を選択します。For Countのデフォルト値を4に変更します。

2 [Data] [image] [Collector]を選択します。[Collector]をダブルクリックしてオープン・ビューに切り替えます。For Countのデータ出力をCollectorのデータ入力（一番上の入力ピン）に接続します。For Countシーケンス出力ピンをCollectorのXEQピン（下部にある入力ピン）に接続します。Collectorをアイコン化します。

3 Collectorは配列[0, 1, 2, 3]を作成するので、それをデータ・ファイルに送信します。

4 同じTo Fileオブジェクトを使用して、トランザクション領域をダブルクリックします。[I/O Transaction]ダイアログ・ボックスで[DEFAULT FORMAT]メニューをオープンし、[REAL64 FORMAT]を選択します。

5 [I/O Transaction]ダイアログ・ボックスは、REAL64 FORMATを選択するための追加ボタンを表示します。デフォルトの選択肢のままでよいのですが、参考のために、デフォルト以外の選択肢を調べることもできます。

6 [OK]をクリックして[I/O Transaction]ボックスをクローズします。To Fileオブジェクト内のトランザクション・バーには、現在、ステートメントWRITE TEXT a REAL64 STD EOLが表示されているはずです。VEEが入力端子aも自動的に追加します。

7 Collectorからの出力をTo Fileの入力 aに接続します。プログラムは次のように表示されます（設定した[I/O Transaction]ボックスも表示されます）。

From Fileオブジェクトを使ったデータの読み取り

From Fileオブジェクトを使ってデータを読み取る場合は、そのデータがどのように記録されたかを知っておく必要があります。

注記

To DataSetまたはFrom DataSetを使ってもデータの記録と読み取りができます。 この2つのオブジェクトを使用する場合は、ファイル内のデータの型を知っている必要はありません。データセットについては、例題5-5: データセットの使用方法を参照してください。

この例では、String Formatのテスト名、Time Stamp Format型のタイム・スタンプ、Real64数値の配列の順で記録されています。このデータをVEEに読み取るには、From Fileで3つのトランザクションを作成します。

1 [I/O] [image] [From] [image] [File]を選択し、To Fileオブジェクトの下に配置します。

2 To Fileオブジェクトのシーケンス出力ピンをFrom Fileオブジェクトのシーケンス入力ピンに接続します。

このようにシーケンス・ピンを接続すると、From Fileは、To FileオブジェクトがmyFileへのデータの送信を完了してから、データの抽出を開始します。

3 From Fileオブジェクトでは、デフォルトのデータ・ファイルmyFileをそのまま使用します。トランザクション・バーをダブルクリックして、[I/O Transaction]ダイアログ・ボックスを表示します。[REAL64 FORMAT]をクリックし、次に示すように、[STRING FORMAT]に変更します。

4 そのほかのデフォルト値はすべて適切なので、[OK]をクリックして[I/O Transaction]ボックスをクローズします。From Fileオブジェクト内のトランザクション・バーには、現在、ステートメントREAD TEXT x STRが表示されているはずです。

さらに2つのトランザクションを追加して、タイム・スタンプとreal配列を読み取ります。

5 同じFrom Fileオブジェクト内で、最初のトランザクション・バーの下をダブルクリックします。[I/O Transaction]ダイアログ・ボックスが表示されます。式リスト入力フィールドをダブルクリックして[x]を強調表示し、「y」と入力します。 2番目のトランザクションはピンyにデータを読み取るからです（このピンをxのままにしておくと、2番目のトランザクションは、最初のトランザクションがxに入力したデータを上書きしてしまいます）。[REAL64 FORMAT]を[STRING FORMAT]に変更してから、[OK]をクリックします。

注記

タイム・スタンプをテキスト文字列として読み取るには、STRING FORMATを使用します。TIME STAMP FORMATは、タイム・スタンプのデータを変換してReal数に戻します。

6 同じFrom Fileオブジェクト内で、2番目のトランザクション・バーの下をダブルクリックし、[I/O Transaction]ダイアログ・ボックスを表示します。エントリを次のように設定します。

エントリ | 説明
（式フィールド） | xをzに編集します。 これで、Real配列がZ 出力端子に読み取られます。
SCALAR | [SCALAR]を[ARRAY 1D]に変更します。
SIZE: | 現在、[I/O Transaction]ボックスには[SIZE]ボタンが追加されています。この例題では、配列は4つの要素を持ちます。10を4に変更し、[OK]をクリックします。

注記

配列のサイズがわからない場合は、[SIZE]を[TO END]にトグルします。これにより、VEEが正確なサイズを知らなくても、ファイルの最後までのデータが読み取られます。たとえば、この機能を使用すると、ファイルの全内容を文字列配列として読み取って、ファイルの内容を検査できます。

From Fileオブジェクト内のトランザクション・バーには、現在、READ TEXT y STRとREAD TEXT z REAL64 ARRAY:4のステートメントが表示されているはずです。 VEEがx、y、zのデータ出力端子を自動的に追加することに注目してください。入力端子と出力端子は手動で追加または削除することもできます。 それには、オブジェクト・メニュー [image] [Add Terminal]、[Delete Terminal]、またはショートカットのCtrl+AキーとCtrl+Dキーを使用します。

7 [Display] [image] [AlphaNumeric]を選択し、2回クローンして表示オブジェクトを3つ作成します。3つのAlphaNumericオブジェクトをFrom Fileの3つのデータ出力ピンに接続します。オブジェクトのいずれかの隅をクリック・アンド・ドラッグして、配列表示を拡大します。

AlphaNumericオブジェクトの表示サイズは、最初にメニューで選択してオブジェクトを作成したときに、オブジェクトの輪郭線をクリック・アンド・ドラッグして変更することもできます。

8 プログラムを実行します。次のように表示されます。

最初のAlphanumericがタイトルを表示し、2番目のAlphanumericがテスト時刻を表示し、3番目のAlphanumericが配列内の数字をリストしています。

関連項目

I/Oトランザクションについて、I/Oトランザクション・フォーマット


例題5-4：レコードの使用法

この例題では、Recordデータ型の使用法について説明します。ここで学ぶのは、レコードを構築する方法、レコード内の特定のフィールドを読み取る方法、選択されたフィールドを設定する方法、レコード全体を単一の手順で解体する方法です。また、タイム・スタンプ関数now()の別の使用法についても説明します。

レコードの構築

3つのフィールドを持つRecordを構築します。3つのフィールドとは、Stringのテスト名、Real Scalarのタイム・スタンプ、4つの要素からなるReal配列のシミュレートされたテスト結果です。次の例題でこれらのフィールドを読み取る際に、タイム・スタンプをさまざまなフォーマットに変換して表示できることがわかります。

[Data] [image] [Constant]  [image] [Text]を選択し、入力フィールドにTest1と入力してテスト名を作成します。オブジェクトの名前をText Constantに変更します。Text Constantをアイコン化します。

9 [Device] [image] [Function & Object Browser]を選択します。[Built-in Functions] => [Time & Date] => now を選択し、[Create Formula]をクリックします。オブジェクトをText Constantの下に配置します。

10 [Data] [image] [Constant]  [image] [Real64]を選択し、now()の下に配置します。

11 Real64のオブジェクト・メニューで[Properties...]をクリックし、[1D Array]を選択すると、このScalar Real64をArray 1Dに変えることができます。

12 Real64 のタイトル・バーをダブルクリックして[Constant Properties]ボックスを開きます。[Configuration]で[1D Array]を選択し、[Size]を4に変更し、[OK]をクリックします。

この配列に4つの値を入力します。 そのためには、要素0000の隣をダブルクリックして最初のエントリを強調表示し、値2.2、3.3、4.4、5.5を順番に入力します。次の値に移るにはTabキーを使用します。Real64をアイコン化します。

13  [Data]  [image] [Build Data] [image] [Record]を選択し、他の3つのオブジェクトの右に配置します。3つのフィールドを入力できるように、3番目のデータ入力端子を追加します。端子をダブルクリックしてそれぞれの端子を開き、3つの入力端子の名前をtestname、time、dataに変更します。

Build Recordオブジェクトの[Output Shape]はScalarとArrayの間で切り替わります。ほとんどの場合は、デフォルトのScalarを使用します。

14 Text ConstantオブジェクトをBuild Recordオブジェクトのtestname端子に、now()オブジェクトをtime端子に、Real64オブジェクトをdata端子に接続します。

15 プログラムを実行します。Recordデータ出力端子をダブルクリックして、レコードを検査します。次のように表示されます。

3つのフィールドとその値が表示されています。[Real64:Array 1D]ボタンをクリックすると、リスト・ボックスに実際の値が表示されます。タイム・スタンプはReal64 Scalarとして保管されています。次の例題では、タイム・スタンプを読みやすい形式に変換します。[OK]をクリックして[Output Terminal Information]ダイアログ・ボックスを閉じます。プログラムにrecords.veeと名前を付けて保存します。

Recordからのフィールドの取得

Get Fieldオブジェクトを使用して、レコードから3つのフィールドを抽出し、それぞれの値を表示します。

1 records.vee プログラムを開きます。

2 [Data] [image] [Access Record] [image] [Get Field]を選択します。タイトルがrec.fieldであるオブジェクトが表示されます。

recというラベルの付いたデータ入力は、フィールドの数と型に関係なく、どのようなレコードでも受け入れます。入力フィールドはデフォルトでRec.fieldとなっていますが、これを編集することにより任意のフィールドを読み取ることができます。Recは、Recという名前のデータ入力端子にあるレコードを指します（VEEでは大文字と小文字を区別をする必要はありません）。

注記

Get Fieldオブジェクトは、Function & Object BrowserにあるFormulaと同様、入力と式が設定されたFormulaです。

3 rec.fieldのクローンを2つ作成し、3つともBuild Recordの右に配置します。

4 Build Recordのデータ出力を3つのrec.fieldオブジェクトすべてに接続します。

5 3つのフィールドはtestname、time、dataという名前なので、適切なフィールドを取得するようにrec.fieldオブジェクトを編集する必要があります。

6 3つのrec.fieldオブジェクトの式フィールドを、rec.testname、rec.time、rec.dataに変更します。

7 [Display] [image] [AlphaNumeric]を選択し、クローンを2つ作成します。3つのAlphaNumericを3つのrec.fieldオブジェクトに接続します。Real配列を表示できるように、3番目の表示サイズをほかのオブジェクトの約3倍の長さに変更します。

8 2番目のAlphaNumeric表示のオブジェクト・メニューを開き、[Properties]を選択し、[Number]フォルダを選択します。[Global Format]の左をクリックしてチェック・マークを外します。

表示フォーマットを設定します。[Real]セクションで[Standard]メニューを開きます。[Time Stamp]を選択し、[OK]をクリックします。

9 [HH:MM:SS]をクリックして[HH:MM]に切り替えます。[24 HOUR]をクリックして[12 HOUR]に切り替えます。

10 プログラムを実行し、getfield.veeという名前で保存します。プログラムは次のように表示されます。

2番目の表示には、曜日、日付、および時、分、午前または午後の形式で時刻が表示されています。

Recordのフィールドの設定

この例題では、レコードの特定のフィールドのデータを変更する方法について説明します。

注記

異なるテストで同じRecordを再利用できます。

1 Random.veeプログラムを開きます。

2 Build Recordの後のすべてのオブジェクトを選択し、Ctrl+Xキーを押して削除します。

1 [Data] [image] [Access Record]  [image] [Set Field]を選択し、Build Recordの右に配置します。Build Recordからの出力をSet Fieldのrec入力に接続します。タイトルはrec.field= bとなります。

Set Fieldは、代入記号（=）の右辺の式を左辺に代入します。したがって、recの指定されたフィールドは、右辺の値で変更されます。レコードの残りの部分は変更されません。入力レコードをrecに、新しい値をbに接続します。変更されたレコードは、recというラベルの付いたデータ出力端子に出力されます。

注記

Set Fieldオブジェクトは、Function & Object Browserにある式と同様、入力と式が設定されたFormulaです。

2 式をrec.data[*]=bに変更して、dataフィールドの4要素の配列の値を変更します（このレコードのフィールドの配列全体を変更するので、配列の[*]表記を使用する必要があります）。配列の新しい値を入力端子bに入力します。

3 [Data] [image] [Constant]  [image] [Real64]を選択し、Build Recordオブジェクトの下に配置します。オブジェクト・メニューを開き、[Properties]を選択します。[Configuration]で[1D Array]を選択し、[Size]を4に変更し、[OK]をクリックします。

レコードのフィールドの新しい値が配列に格納されている場合、配列のサイズは、現在の配列のサイズと同じでなければなりません。

Real64で、最初のエントリを強調表示し、値1, 2, 3, 4を順番に入力します。次のエントリに移動するにはTabキーを使用します（最後の入力の後にはTabキーを押さないでください）。これをbというラベルの付いた（rec.field=bというタイトルの）Set Fieldの入力に接続します。

Get Fieldオブジェクトを使用して、そのレコードからフィールドrec.dataを抽出し、結果を表示します。

4 [Data] [image] [Access Record]  [image] [Get Field]を選択し、オブジェクトをSet Field（rec.field=b）オブジェクトの下に配置します。Get Fieldオブジェクトの式をrec.fieldからrec.dataに変更します。rec.field = bのデータ出力をrec.fieldのデータ入力に接続します。

注記

式フィールドで、Formula オブジェクトと A.dataを併用することもできます。

5 AlphaNumeric表示を選択し、配列を表示できるようにサイズを変更し、rec.fieldの出力ピンに接続します。

6 プログラムを実行し、setfield.veeという名前で保存します。プログラムは次のように表示されます。

Recordのフィールドはすべてこの例の方法で変更できます。フィールドの一部を変更することもできます。例えば、rec.field = bの式をrec.data[1]=20に変更してみてください。次に、rec.field = bの入力bを削除します。プログラムをもう一度実行すると、配列2.2, 20, 4.4, 5.5が表示されます。

単一手順でRecordを解体する方法

レコードのすべてのフィールドを抽出し、そのフィールドの名前と型のリストを取得するには、UnBuild Recordオブジェクトを使用します。

1 setfield.veeプログラムを開きます。Build Recordの後のすべてのオブジェクトを削除します。

2 [Data] [image] [UnBuild Data]  [image] [Record]を選択し、Build Recordの下に配置し、オープン・ビューに切り替え、Build Recordの出力をUnBuild Recordの入力に接続します。UnBuild Recordにデータ出力ピンをもう１つ追加し、A、B、C出力の名前をフィールド名testname、time、dataに変更します。

3 AlphaNumeric表示を選択し、クローンを4つ作成します。5つの表示をUnBuild Recordの5つの出力端子に接続します。配列を表示できるように、Name List、Type List、dataの表示を拡大する必要があります。さらに、time表示の設定を変更して、日/月/年、12時間制の時、分表記で時刻を表示するようにします。

4 プログラムを実行し、unbuild.veeという名前で保存します。次のように表示されます。

Name Listピンの値は、レコードの3つのフィールドの名前testname、time、dataを示します。また、Type Listは、testnameがText型、timeとdataがReal64型であることを示します。

関連項目

レコードを使ってさまざまな型のデータを記録するには


例題5-5：データセットの使用法

データセットは、単にファイルに保存されたRecordの配列です。この例題では、データセットへのデータの保存と読み取りの方法について説明します。

データセットへのレコードの保存と読み取り

この例題では、テスト名、Real64 Scalar、Real配列の3つのフィールドを持つRecord10個からなる配列を作成します。Recordの配列をデータセットに保存し、そのレコードを読み取って表示します。

1 [Flow] [image] [Start]を選択します。[Flow] [image] [Repeat] [image]  [For Count] を選択し、Startの下にオブジェクトを配置します。[Device] [image] [Formula]を選択し、For Countの右にオブジェクトを配置します。StartをFor Countのシーケンス入力ピンに接続し、For Countのデータ出力ピンをFormulaのデータ入力ピンに接続します。

2 Formulaの式フィールドをダブルクリックしてデフォルトの式を強調表示し、&ldquo;test&ldquo; + aと入力します。

Startをクリックすると、For Countオブジェクトは、整数0から9までを順にFormulaのAピンに出力します。Formulaオブジェクトでは、これらの整数が文字列&ldquo;test&rdquo;に追加され、Text Scalarsであるtest0, test1, test2,...,test9が出力されます。これらの値は、10個のRecordの最初のフィールドに書き込まれます。

3 [Data] [image] [Build Data] [image]  [Record] を選択し、Formulaの右にオブジェクトを配置します。データ入力ピンを1つ追加します。Formulaのデータ出力をBuild RecordのA入力に接続します。

4 ツールバーで[Function & Object Browser]アイコンを選択します。

a [Built-in Functions]、[Probability & Statistics]、randomを選択し、random (low, high)オブジェクトを作成します。このオブジェクトをFormulaオブジェクトの下に配置します。

b 入力端子を削除し、入力パラメータをlowから0に、highから1に変更します。

c オブジェクトの名前をRandom Numberに変更し、そのデータ出力をBuild RecordのB端子に接続します。

5 Formulaのシーケンス出力ピンをRandom Numberのシーケンス入力ピンに接続します。シーケンス・ピンを接続することにより、プログラムの反復ごとに、新しい乱数が特定のレコードのBフィールドに入力されるようになります。

6 [Data] [image] [Constant] [image]  [Real64]を選択します。Real64オブジェクトをFormulaオブジェクトの下に配置します。

a オブジェクト・メニューを開き、[Properties]をクリックします。タイトルにReal Arrayと入力し、[Configuration]で1D Arrayをクリックし、[Size]を3に変更します。[OK]をクリックします。

b 配列内の各エントリをダブルクリックして強調表示し、数値1、2、3を入力します。

c Real Arrayのデータ出力をBuild RecordのC端子に接続します。

7 [I/O] [image] [To] [image]  [DataSet]を選択し、Build Recordの下にオブジェクトを配置します。Build Recordのデータ出力をそのデータ入力に接続します。デフォルトのファイルmyfileはそのままにしておき、[Clear File At PreRun]にチェック・マークを付けます。

8 プログラムを実行します。下に示すように、10個のレコードからなる配列がmyFileという名前のデータセットに書き込まれます。

次に、From DataSetとRecord Constantオブジェクトを使用して、レコードの配列を読み取って表示します。

9 [I/O] [image] [From] [image]  [DataSet]を選択し、For Countの下にオブジェクトを配置します。デフォルトのファイル名myFileはそのままにしておきます。[Get Records] フィールドをクリックし、OneからAllに切り替えます。下の式フィールドのデフォルト値1はそのままにしておきます。

VEEは、これらの設定を使用して、myFile内のデータセットを調べ、式フィールド内の条件に一致するすべてのレコードを見つけます。[Get Records]をOneに設定した場合、VEEは式フィールド内の条件に一致する最初のレコードを出力します。1はTRUE条件を表し、すべてのレコードが条件に一致することを意味するので、ファイル内のレコード配列全体が、Recというラベルの付いた出力ピンに出力されます。式フィールドのそのほかの使用法については、ほかの例題で説明しています。詳細は、オブジェクト・メニューのヘルプを参照してください。

For Countのシーケンス出力ピンをFrom DataSetオブジェクトのシーケンス入力に接続します。これにより、プログラムの中のmyFileにデータを送信する部分は、必ずファイルからデータが読み取られる前に実行されます。[Show Data Flow]をオンにすると、イベントの順序を表示できます。

10 [Data] [image] [Constant] [image]  [Record]を選択し、To Data Setの下にオブジェクトを配置します。オブジェクト・メニューを開き、[Add Terminal] [image] [Control Input]を選択します。表示されるリスト・ボックスで[Default Value]をクリックし、次に、[OK]をクリックします。プログラムを実行したときに結果を表示できるように、Recordオブジェクトのサイズを大きくします。

受信したレコードがデフォルト値となります。この場合、Recordは、From DataSetオブジェクトからレコード配列を受信し、自分でフォーマットしてそのレコード配列を表示します。

11 From DataSetの出力ピンRecをRecordのDefault Valueピンに接続します。この端子を表示するには、オブジェクト・メニューを開いて[Properties]を選択し、[Show Terminals]を選択して[OK]を選択します。From DataSetとRecordを結ぶ破線が表示されます。

注記

オブジェクトを相互に結ぶ破線は、コントロール・ラインを表します。

12 プログラムを実行し、dataset1.veeという名前で保存します。プログラムは次のように表示されます。

注記

From DataSetオブジェクトは、条件に一致するレコードを少なくとも1つ保持する必要があります。 そうでない場合は、エラー・メッセージが表示されます。エラーを避けるには、オブジェクトにEOF（end-of-file）出力ピンを追加します。これは条件に一致するレコードがない場合にアクティブになります。これにより、EOFが発生したときの動作をプログラムに追加できます。

関連項目

データセットの使用法


例題5-6：データセットに対する検索／ソート操作の使用法

この例題では、データセットを検索して情報を取得する方法、検索操作のためのオペレータ・インタフェースを作成する方法、ソート操作をプログラミングする方法を学びます。

データセットを検索する方法

1 dataset1.veeプログラムを開きます。

2 From DataSetオブジェクトの下部の式フィールドをダブルクリックして、現在の式1を強調表示します。Rec.B>=0.5と入力します。このオブジェクトは、フィールドB（このプログラムでは乱数）が、0.5とと比べて大きいか等しいすべてのレコードを出力します。

3 式フィールド内の条件に一致するレコードが1つもない場合に起動するEOFピンを追加します。From DataSetオブジェクトのデータ出力領域にカーソルを置き、Ctrl+Aキーを押します。From DataSetオブジェクトにEOF出力ピンが追加されます。

注記

EOFピンを追加するには、オブジェクト・メニューを開き、[Add Terminal] [image] [Data Output...]をクリックする方法もあります。

4 プログラムを実行し、dataset2.veeという名前で保存します。

検索操作のためのオペレータ・インタフェースの作成方法

この例題では、オペレータがテスト結果データベースからデータを抽出するためのメニューを追加します。プログラムが不用意に変更されることがないように、オペレータ・インタフェースは保護されます。

プログラムの仕様は次のとおりです。

オペレータがtest0からtest9までの中から特定のテストを選択し、関連するすべてのテスト・データを取得するテスト・メニューを提供する。

指定されたテスト結果をフィールドと値にラベルを付けて表示する。オペレータは、対話形式で、より詳細な情報を取得できる。

明快な操作手順の説明を含める。

プログラムを作成するには、次の手順に従います。

1 dataset2.veeプログラムを開きます。

From DataSetオブジェクトにプログラムで式を入力できるようにコントロール入力を追加します。

2 From DataSetのオブジェクト・メニューを開き、[Add Terminal...]  [image]  [Control Input...]を選択します。表示されるメニューで[Formula]を選択します。Formula入力端子が表示されます。[Get records]フィールドをクリックし、AllからOneに切り替え、一度に1つのテスト・レコードにアクセスするようにします。

ユーザに特定のテスト名を選択させる必要があります。テスト名は、すべてのレコードのフィールドAにあります。次の式を追加します。

Rec.A==<引用符で囲んだテスト名>

Rec.Aは、フィールドAがオペレータの選択したテスト名と一致するレコードを出力します。例えば、オペレータがtest6を選択した場合、式はRec.A=="test6"となります。オブジェクトはテスト・レコードを抽出し、レコードはその後表示されます。

目的の選択肢をオペレータがクリックできるメニューを作成します。

3 [Data] [image] [Selection Control]  [image] [Radio Buttons] を選択し、For Countの左にオブジェクトを配置します。

a オブジェクト・メニューを開き、[Edit Enum Values...]を選択します。0000: Item 1 を強調表示し、test0と入力します。Tabキーを押して 0001: Item2 に移動し、test1と入力します。3番目のエントリ（test2）の後でTabキーを押すと、もう1つのエントリが自動的に出現します。test9になるまで、値の入力を続けます。[OK]をクリックすると、test0からtest9までの10個のエントリすべてが表示されます。

b オブジェクト・メニューで[Properties]をクリックし、オブジェクト名をRadio ButtonsからTest Menuに変更し、[Execution]で[Auto Execute]を選択し、[Open View] [image] [Show Terminals]を選択し、[OK]をクリックします。

4 これで、オペレータがメニューで選択を行うとプログラムが実行されるようになったので、Startオブジェクトは削除します。Startオブジェクト上でマウスの右ボタンを押し、[Cut]を選択します。

5 プログラムは、メニューが選択された場合にのみ実行する必要があるので、Test Menuのデータ出力ピンEnumをFor Count のシーケンス入力ピンに接続します。プログラムは次のように表示されます。

6 Test Menuの出力はFormulaオブジェクトに入り、Formulaが正しい式をFrom DataSetオブジェクトに送ります。

[Device] [image] [Formula]を選択し、Test Menuの下にオブジェクトを配置します（実習中に項目を追加するときには、必要に応じてオブジェクトの配置やサイズを変更してください）。新しいFormulaオブジェクトで、次の式を入力します。

"Rec.A==" + "\"" + A + "\""

要素 | 説明
&ldquo;Rec.A==&rdquo; | "Rec.A=="は、Textデータ型をFrom DataSetのFormula式入力に送信します（引用符はテキスト文字列を示します）。
A | VEEは、データセット・ファイル内のすべてのレコードの最初のフィールドAを調べ、選択されているテスト名と最初に一致するレコードを選択します。
&ldquo;\&rdquo;&rdquo; | 引用符のエスケープ文字は\&rdquo;です。エスケープ文字は、テキスト文字列であることを示すために引用符で囲みます。 test nameは、Test MenuからEnumデータ型として得られます。正しい式をFrom DataSetオブジェクトに設定するために、引用符が必要です。

たとえば、test6 が選択された場合、最後の式はRec.A=="test6"となります。From DataSetオブジェクトは、最初に見つけたレコードを出力します。 そのレコードのAフィールドはtest6 と一致しています。

7 Test MenuのEnumデータ出力ピンをFormulaオブジェクトのデータ入力ピンに接続します。Formulaオブジェクトをアイコン化します。

8 Formulaのデータ出力ピンをFrom DataSetオブジェクトのFormulaというラベルの付いたコントロール入力ピンに接続します。

9 Formulaの古いデータが再使用されないようにするため、For CountとFrom DataSetを結ぶシーケンス・ラインを削除します。For Countのシーケンス出力ピンをFormulaシーケンス入力ピンに接続します。

10 Formulaのシーケンス出力ピンをFrom DataSetのシーケンス入力ピンに接続します。これにより、確実にFormulaの正しいデータが使用されるようになります。

11 オペレータのための手順説明を表示するボックスを作成します。[Display]  [image] [Note Pad]を選択します。タイトルをTest Results Database Instructionsに変更します。テンプレート情報があれば削除します。Note Padの入力領域をクリックし、Select the test results you want from the Test Menu. と入力します。

12 Record Constantオブジェクトの名前をTest Resultsに変更します。

13 プログラムは次のように表示されます。プログラムを数回実行し、機能するかどうかを確認します。Test MenuオブジェクトでAutoExecuteがオンになっているので、メニューで選択を行うとプログラムが実行されます。

次に、オペレータ・インタフェースを作成します。

14 Ctrlを押したまま、オブジェクトTest Menu、Test Results Database Instructions、Test Resultsをクリックします。

選択したすべてのオブジェクトは、網かけ表示されます。上記以外のオブジェクトが選択されていないことを確認します。

[Edit] [image] [Add to Panel]を選択すると、オペレータ・インタフェースがパネル・ビューで表示されます。オブジェクトは移動したりサイズを変更したりできます。レイアウトの例を下に示します。

注記

[Add to Panel]が淡色表示になっている場合は、作業領域内に選択されたオブジェクトがないことを意味します。

15 Test Menuで選択を行い、プログラムを何回か実行します。プログラムにdatabase.veeと名前を付けて保存します。

特定のレコードについて詳しい情報を得るには、Record Constantオブジェクト（Test Resultsという名前）でフィールド名または値をクリックします。

注記

オペレータ・インタフェースとプログラムが変更されないようにするには、[File] [image] [Create RunTime Version...]を選択します。プログラムの名前を入力すると、VEEは、自動的に*.vxe拡張子を追加して、保護されていないバージョンから分離します。

レコードのフィールドに基づくソート操作

この例題では、前の例題のdataset2.veeプログラムを使用します。dataset2.veeプログラムでは、From DataSetオブジェクト内で、Rec.B>=0.5などの条件を設定し、それらの条件に一致するすべてのレコードを抽出します。結果レコードの配列がRecord Constantオブジェクトに表示されます。

この例題では、dataset2.veeを変更して、結果レコードをソートすることにより、最も大きな差で失敗したテストを見つけられるようにします。テストは2番目のフィールドで降順にソートされます。

1 dataset2.veeプログラムを開きます。

2 [Device] [image] [Formula] を選択し、From DataSetのデータ出力ピンRecをFormulaオブジェクトのデータ入力ピンに接続します。Formulaの式フィールドをダブルクリックしてデフォルトの式を強調表示し、sort(a, 1, &ldquo;B&rdquo;)と入力します。

Sortオブジェクトは、Function & Object BrowserのArray Categoryの関数の中にあります。オブジェクト・メニューの[Help]エントリで、その機能に関する詳細情報を参照できます。sort()関数は、Formulaオブジェクトから呼び出されます。

最初のパラメータは、FormulaオブジェクトのAピンのデータをソートします。これはレコードの配列です。2番目のパラメータはソートの方向を指定します。 0以外の数は昇順を指定し、0は降順を指定します。デフォルトは昇順です。3番目のパラメータは、Recordデータ型の場合、ソート対象のフィールドの名前を指定します。すなわち、レコード配列のBフィールドを使って、昇順のソートが実行されます。

3 [Display] [image] [AlphaNumeric]を選択し、Formulaオブジェクトのデータ出力ピンに接続します。

4 プログラムを何回か実行します。次のように表示されるはずです。プログラムは、データセット・ファイルから返された全レコードをフィールドBによって昇順でソートします。

関連項目

データセットの使用法


例題6-1：Agilent VEEデータのMS Excelへの送信方法

この例題では、MS Excel用の仮想テスト・データを生成します（ここではMS Office 2003とMS Excel 11.0オブジェクト・ライブラリを使用しますが、MS Office 2007/2000とMS Excel 12.0/9.0オブジェクト・ライブラリも使用できます）。適切なオートメーション・タイプ・ライブラリを参照した後、Object型のグローバル変数を複数個宣言し、globalsという名前でUserFunctionに保管します。グローバル変数を使用すると、プログラムが単純化して理解しやすくなります。

1 オートメーション・ライブラリを参照します。[Device] [image] [ActiveX Automation References...]をクリックし、[Microsoft Excel 11.0 Object Library]を選択し、[OK]をクリックします。

2 グローバル変数を保管するUserFunctionを作成します。[Device] [image] [UserFunction]をクリックします。名前をglobalsに変更します（UserFunctionの詳細については、[Help] [Contents and Index] [以下の項目についての説明]を参照してください）。

3 [Data] [image] [Variable] [image] [Declare Variable] をクリックし、globals内の左に配置します。[Name]をsheetに変更します。[Type]をObjectに変更します。ダイアログ・ボックスにそのほかの項目が表示されます。この例題の場合、[Object Type]と[Class]を指定する必要はありません（[Type]と[Class]は、この章の別の例で指定します）。

4 このオブジェクトのクローンを3つ作成し、3つのオブジェクトの名前をapp、range、windowに変更します。globals UserFunctionのサイズを変更し、メインの下に移動します。次のように表示されます。

5 エントリを上の図と比較した後で、4つのオブジェクトをアイコン化します。

globals UserFunctionでデータ型Objectを使用すると、Object TypeとClassを指定できます。Object TypeとClassを指定する理由は、より具体的に型を検査するためと、イベントを捕捉するためです。

より具体的な型の検査:たとえば、Object appの型をExcel.Applicationと指定した場合は、型がExcel.ApplicationであるObjectしか、appに代入できません。Excel.worksheet型やWord.bookmark型のObjectを代入するとエラーが発生します。

イベントの捕捉: VEEのUserFunctionを使用すると、アプリケーションで発生する可能性のあるMS Excelワークシートでマウスの右ボタンが押されるなどのさまざまなイベントを捕捉することもできます。任意の種類のイベントに対して、VEEのUserFunctionを指定し、そのイベントを処理して情報をMS Excelに返すことができます。

イベントは、ActiveXコントロール使用時に、コントロールからVEEへの通信手段が必要な場合に有用です。詳細については、オートメーション・オブジェクトのイベントの処理を参照してください。

6 UserFunction globalsのオブジェクト・メニューを開き、 [Generate] [image] [Call]をクリックします。これにより、正しく設定されたCall globalsオブジェクトが生成されます。それをメイン・ウィンドウ内の左側に配置し、globals UserFunctionウィンドウをアイコン化します。

7 [Device] [image] [Formula]をクリックし、それをメイン・ウィンドウの上部中央に配置します。名前をSet up Excel Worksheetに変更します。globalsのシーケンス出力ピンをFormulaのシーケンス入力ピンに接続します。Set Up Excel Worksheetから入力端子Aを削除します（オブジェクト・メニューを開き、[Delete Terminal] [image] [Input]を選択します）。

8 Set up Excel Worksheet内で、次のように入力します。ANSI Cと同じように、行の区切り文字にはセミコロンを使用します。

コマンド

説明

set sheet =

キーワードsetは、代入演算子（この場合は、等号）の右辺を式の左辺の変数に代入または設定するために使用します。たとえば、set appは、Excelワークシートとして定義されているアプリケーションsheet.applicationに設定します。

CreateObject
(&ldquo;Excel.Sheet&rdquo;).

オートメーション・サーバ（この場合は、MS Excel）の新しいインスタンスを作成し、空のシート（新しいワークブックを指すExcelの用語）を作成します。それぞれのオートメーション・サーバには独自の用語がありますが、構文は同じです。たとえば、MS Wordでレポートを作成する場合、Wordを起動して空白の文書を作成するために、CreateObject("Word.Document")と入力します。

setキーワードを使用した場合は、右辺のオブジェクト・ポインタ自体が左辺の変数に代入されます。setを使用しない場合は、右辺のデフォルトのプロパティ（多くの場合、名前）が左辺に代入されます。詳細については、オートメーション・オブジェクトの操作を参照してください。

worksheets(1);

CreateObject("Excel.Sheet")によってExcelが起動し、新しいワークブックが開かれるので、今度はその中の最初のワークシートを指定します。ステートメントにworksheets(1)を追加します。 ステートメント全体は次のようになります。

set sheet = CreateObject("Excel.Sheet").worksheets(1);

これにより、sheetが、レポートのSheet 1に設定されます（例を見るには、MS Excelをオープンし、[ファイル] => [新規作成]を選択して、新しいワークブックを作成します。Sheet1、Sheet2などとラベルの付いた複数のシートがあります。必要なのはSheet1です）。

set app = sheet.application;

ワークシート自体ではなくアプリケーション全体へのポインタをExcelから取得するために、ワークシートのプロパティApplicationを問い合わせて変数appに設定しています。

app.visible = true;

画面にExcelを表示するために、appのvisibleプロパティをtrueに設定します。

set window = app.windows(1);

最初のウィンドウを参照します。

window.caption = &ldquo;Test System Results&rdquo;;

最初のウィンドウのキャプションを"Test System Results"に設定します。

注記

アプリケーション・サーバのライブラリの詳細については、ActiveXオートメーションとMS Visual Basicについて書かれた書籍を参照してください。Office 2003に関する書籍や、『Office 97 Visual Basic Programmer's Guide』の注文方法については、WWW（World Wide Web）を参照してください。VEEの構文はMS Visual Basicと似ているため、これらの書籍はVEEでも役に立ちます。

9 Formulaオブジェクトを作成します（[Device] [image] [Formula]）。Formulaオブジェクトをクローンし、2つ目のFormulaオブジェクトを作成します。For Rangeオブジェクトを作成します（[Flow] [image] [Repeat] [image] [For Range]）。次のようにオブジェクトの名前を変更し、相互に接続し、設定します（FormulaオブジェクトFill in Titleの入力端子は削除します）。

Formulaオブジェクト内とFor Rangeオブジェクト内の命令について、以下で説明します。

Formula | 説明
sheet.cells(1,1) = &ldquo;DC Volts&rdquo; | Excelワークシートの1行目の1列目を参照します。そこにテキストDC Voltsが配置されます。これにより、セル(1,1)のデフォルトのプロパティ（value）が"DC Volts"に設定されます。
sheet.cells(A+1,1) = random(1,100) | このステートメントは、sheet.cells(A+1,1).value=random(1,100)の省略表記です。 行A+1、列1のワークシート・セルは、 入力ピンA の値に1を加算することで行番号を取得し、列は1のままです。randomから返された1と100の間の値が、ワークシート中の指定されたセルに代入されます。
1から20まで、ステップは1（For Rangeオブジェクト） | For Rangeオブジェクトは1から20までの整数を出力するので、Fill in Cellsは、指定されたセルにその乱数を書き込みます。

10 FormulaオブジェクトとAlphaNumericオブジェクトを作成し、次のように名前を変更し、設定し、相互に接続します。

Formulaオブジェクトの設定項目は次のとおりです。

設定項目 | 説明
set range = sheet.range(&ldquo;A2:A21"); | VEE変数の範囲をExcelワークシートのA2からA21までの範囲を参照するように設定します（Aはワークシートの最初の列を指します）。
range.NumberFormat = &ldquo;##,#00.00"; | 必要ならより大きな数字も入力できるように、ポンド記号（#）を使ってセルをフォーマットします。
app.worksheetFunction.average(range); | 指定されたrangeの値の平均値を返すExcelのメソッドaverage()を呼び出します。 平均値はResults Averageに表示されます。

11 このプログラムにresults_average.veeと名前を付けて保存します。プログラムを実行します。MS Excelが起動して、次のようなワークシートを表示します。


例題6-2：Agilent VEE→MS Excelテンプレートの作成方法

1 results_average.veeを開きます。

2 10回ループするようにFor Rangeオブジェクトを変更します。

3 入力 B をFill in Cellsに追加し、中のステートメントをsheet.cells(A+1,1) = B[A-1]に変更します。

4 [Device] [image] [Formula]をクリックし、名前をArray of Test Dataに変更し、組み込み関数randomize(ramp(20), 4.5, 5.5)を入力し、4.5から5.5までの値を持つ20個の要素から成る乱数配列を作成します。入力ピンを削除し、データ出力ピンをFill in CellsのB入力に接続します。

5 画面下部の [Formula] ボックスで、範囲をA21からA11に変更します。ステートメントは次のようになります。
set range = sheet.range(&ldquo;A2:A11");

6 report_template.vee という名前を付けてプログラムを保存し、実行します。下のExcelワークシートおよび完成したプログラムと比較します。

このプログラムは、テスト結果をMS Excelで表示するためのテンプレートとして再利用できます。使用法は、テスト・データを配列に格納し、適切なセルに適切なフォーマットで値を入力するようにテンプレートの残りの部分を変更するだけです。

MS Excelのライブラリで他のメソッドとプロパティを検索するには、[Function & Object Browser]を調べ、[ActiveX Objects]を選択し、[Excel]を選択します。[Class]または[Member]を選択し、[Help]を押すと、そのオートメーション・サーバの作成者（この場合、Microsoft）が提供しているヘルプを表示できます。これらのライブラリの詳細については、Microsoftのマニュアルを参照してください。

独習課題

波形を生成し、Time Spanを削除して配列を取得します。ワークシートを持つMS ExcelのためのVEEオブジェクトを作成し、Object変数に設定します。アプリケーションを表示します。次に、256の点を持つ配列をワークシートの範囲"A1:A256"に入力します。 一度に1セルずつではなく、1ステップで全部のセルを入力します。

Unbuild Waveformオブジェクトを使用します。配列構築構文[a]を使用して、1次元の配列から2次元の配列を作成します。次に、下に示すように、関数transpose()を呼び出し、Excelが1ステップでその配列を受け入れられるように、配列を1行256列の配列ではなく、256行1列の配列にします。

MS Excelによる機能の拡張

下の図は、テスト結果をMS Excelで表示するための複雑なプログラムの例です。MS Excelのライブラリをさらに使いこなすことができれば、VEEデータをMS Excelで表示するためのテンプレートの機能を拡張できます。

次のエントリがあります。

項目 | 説明
MS Excel Window Size | 作業領域の上部左にあるDrop-Down Listオブジェクトに注目してください。このオブジェクトを使用すると、3つの選択肢、xlMaximized、xlMinimized、xlNormalのいずれかを選択して、Excel内のワークシート・ウィンドウを表示するサイズを選択できます。ウィンドウの各サイズは番号に関連付けられるため、VEEはその番号を算出しwndState変数に保管します。この値は、次に、ExcelライブラリのwindowStateプロパティに代入されます。
Memory Tracking | （FormulaオブジェクトとMeterオブジェクトの[Properties]ボックスで[Show Terminals]をクリックします）ExcelライブラリのmemoryTotalプロパティとmemoryUsedプロパティが、VEEの変数memTotalとmemUsed に代入されています。2つの値を使い、MS Excelによって使用されているメモリが表示される前に、VEEのメータを設定するための範囲が計算されます。
Number Format | 数値フォーマットにドル記号を簡単に追加できます。
sheet.SaveAs (filename) | SaveAs()メソッドは、ワークシートを自動的に保存するために、Excelのライブラリから呼び出されます。[File Name Selection]ボックス（[Data] DE; [Dialog Box] メニュー）を使って、VEEから[Save As]ボックスがポップアップ表示されています。選択したファイル名は、次に、Excel SaveAs()メソッド呼び出しでパラメータとして使用されます。
Press to Kill Excel | 確認（[OK]）ボタンは、Excelをクローズする必要があるときに、それを知らせるために使用されています。
Close Excel | quit()メソッドは、MS Excelに終了するように指示する場合に呼び出されます。


例題6-3：MS Wordを使ってAgilent VEEレポートを表示する方法

まず、次の手順に従って、5つの変数をObject型として宣言します。

1 [Device] [image] [ActiveX Automation References...] をクリックし、[Microsoft Word 11.0 Object Library]を選択します。

2 [Data] [image] [Variable] [image] [Declare Variable]をクリックします。

a [Type]フィールドを[Object]に変更します。クローンを4つ作成します。

b 5つのオブジェクト変数に、App、Doc、Wnd、Sel、Bmpという名前を付けます。

c オブジェクトすべてで、[Specify Object Type]を選択します。Library内で特定のクラスを宣言することにより、VEEは型検査を行ってプログラムのエラーを見つけることができ、ユーザはオートメーション・サーバからのイベントを捕捉できるという利点があります。

d どの場合も、次に[Edit...]ボタンをクリックし、[Word for Library]を選択します。次の[Classes]を選択します。

[App]は[Application]を使用します。

[Sel]は[Selection]を使用します。

[Wnd]は[Window]を使用します。

[Doc]は[Document]を使用します。

[Bmp]は[Shape]を使用します。

e クラスに[Enable Events]がある場合は、選択します。5つをアイコン化します。これらの変数のオープン・ビューについては以下を参照してください。

3 Graphという名前のUserFunctionを作成します。 これは、Function Generator仮想ソースを使用して、正弦波をWaveform (Time)表示に送信します。表示のみのパネル・ビューを作成します。次に、メイン・ウィンドウにCall Graphオブジェクトを生成します（UserFunctionのオブジェクト・メニューには、呼び出しを生成する容易な方法があります）。

MS Wordでレポートを出力するときに使用するために、波形を表示するパネルのビットマップ・ファイルを作成します。

4 ビットマップのファイル名を作成するため、[Device] [image] [Formula]をクリックします。その名前をImage Filenameに変更します。[Formula]入力フィールドで、「installDir() + "\\panel.bmp"」と入力します（ASCII文字\を指定する場合は、エスケープ・シーケンス\\を使用します）。入力端子Aを削除します。

たとえばc:\Program Files\Agilent\にインストールした場合は、次のテキスト文字列をResult出力ピンに生成します。
C:\Program Files\Agilent\VEE Pro 8.5\panel.bmp.

5 Formulaオブジェクトをもう1つ作成し、｢savePanelImage("Graph", FileName, 256) ｣と入力します。その入力端子の名前をFileNameに変更します。

6 これにより、UserFunction Graphの画面ダンプが、インストール・ディレクトリ内のpanel.bmpファイルにピクセル当たりの色の深さ256でセーブされます。

7 Formulaオブジェクトをもう1つ作成し、次のステートメントを入力します。
Set App = CreateObject("Word.Application")
このステートメントは、MS Wordを起動し、アプリケーションのこのインスタンスを参照するためにオブジェクト変数appを割り当てます。入力端子Aを削除します。次のように、Call Graph、ImageFileName、savePanelImageを接続します。

8 [Device] [image] [Formula] をクリックし、下の図のステートメントを入力します。 このステートメントについても下で説明します。入力端子Aの名前をFileNameに変更します。データ入力ピンとシーケンス入力ピンを下の図に示すように接続します。

上の図では、Objectのドット表記を使用すると、プロパティとメソッドの呼び出しを一緒にネストできることに注目してください。ターゲット・アプリケーション内の適切なプロパティを検索する場合は、ActiveXのマニュアルを参照してください。ここで説明しているプロパティとメソッドを使用すると、テストと計測のレポートを生成できます。Formulaオブジェクトの設定項目は次のとおりです。

設定項目

説明

App.Visible = 1;

MS Wordを画面に表示します。

Set Doc = App.Documents.
Add();

MS Word内にDocumentを追加し、Object変数Docに代入します。

注記:Excelの例では、CreateObject(Excel.Sheet)を使用して、Excelを空白のワークシートで起動しました。ここでは、Wordを起動し、メソッドAdd()で空のDocumentをWordに追加します。それぞれの方法は、どちらのアプリケーションでも使用できます。

Doc.Activate();

上のDocumentをアクティブにします。

Set Wnd = App.Active Window;

アクティブなウィンドウ内の文書を選択し、Object変数Wndに代入します。

Set Sel = App.Selection;

フォーカス（Selection）を文書に設定し、Object変数Selに代入します。これにより、テキストを挿入できます。

Wnd.View.Type = 3;

文書を表示するためのウィンドウの種類を指定します。3は通常のサイズのウィンドウを示します。1はウィンドウをアイコン化します。

注記:ここでは、定数wdPageViewのかわりに、3を使用します。 この定数はOffice 2003のタイプ・ライブラリにないからです。

Sel.TypeText(*** Test Results ***),
Sel.TypeParagraph();

タイトル*** Test Results ***を文書に挿入し、キャリッジリターン／改行を入力します。

Set Bmp = Doc.Shapes.
AddPicture(FileName);

panel.bmpビットマップを文書に挿入し、Shapesクラス内でのこの呼び出しをObject変数Bmpに代入します。

Sel.TypeParagraph();

Sel.InsertDateTime
(M/d/yy h:mm:ss
am/pm, 0);

タイム・スタンプを文書に挿入します。

9 さらに3つのFormulaオブジェクトと1つのIf/Then/Elseオブジェクトを追加し、下の図に示すように設定し、相互に接続します。

追加したオブジェクト内のエントリについて以下で説明します。

オブジェクト | 説明
App.ActivePrinter | ポートを含む文字列を使用して、デフォルトのプリンタを要求します。
strLen(str) != 0 | ActivePrinterが、設定されたプリンタを検出した（入力の文字列がヌルでない）ことを確認し、確認されればThenピンに1（=TRUE）を出力します。 これにより、PrintOut呼び出しを持つFormulaオブジェクトが起動されます。
DocPrintOut(0) | 文書を出力します。
App.Quit(0) | MS Wordアプリケーションをクローズします。

10 プログラムを実行します。次のように表示されます（画面ダンプの色が正常でない場合は、オープンしているアプリケーションをすべてアイコン化すると、PCのカラー・パレットが完全に解放されます）。

ActiveXオートメーションを使ってMS ExcelとMS Wordを制御する方法の詳細については、Microsoftのマニュアルを参照してください。ActiveXオートメーション（単にオートメーションと呼んだり、OLEオートメーションと呼ばれることもあります）をサポートしているその他のサーバ・アプリケーションも制御できます。

ActiveXコントロールの使用法の詳細については、「オペレータ・インタフェースの使用法」を参照してください。 VEEを制御するためにMS Visual BasicプログラムからActiveXを使用する方法の詳細については、The Callable VEE Active X Automation Serverを参照してください。


例題8-1：ワークブックの処理方法

1 新しいVEEプロジェクトを開きます。

2 [Excel] [image] [Initialize Excel Library] を選択します。VEE Excelライブラリ関数がインポートされ、使用可能になります。

3 [Excel] [image] [New Workbook] を選択します。新しいMicrosoft Excelワークブックが作成され、開かれます。新しいワークブックを作成した場合、新しいワークブックが自動的にアクティブ・ワークブックになります。「アクティブ・ワークブック」とは、すべての操作の対象となるワークブックです。

4 [Excel] [image] [Save Workbook As] を選択します。

5 テキスト定数を追加し、SaveWorkbookAsオブジェクトのデータ入力端子に配線します。テキスト定数にC:\MyWorkbook.xlsと入力します。新しいワークブックを処理する場合には、このステップを必ず行うことをお勧めします。この保存操作も、アクティブ・ワークブックに対してのみ有効です。

注記

アクティブ・ワークブック／ワークシートは、最後に開かれたもの、またはSelect Workbook/Select Worksheetオブジェクトを使って明示的に選択されたものです。

6 [Excel] [image] [Close All Workbooks] を選択します。保存されているかいないかに関わらず、すべてのワークブックを閉じます。

7 [Excel] [image] [Quit Excel] を選択します。Microsoft Excelセッションを閉じ、VEE Excelライブラリを終了します。

これらのオブジェクトをすべてシーケンス入力からシーケンス出力まで配線すると、次の図のようになります。

注記

テキスト定数のファイル名には、ファイル拡張子が含まれています。VEE Excelライブラリは、ファイル名を書かれたとおりに処理します。したがって、ファイル名全体を指定する必要があります。必要に応じて、完全修飾パスを指定することも可能です。

この例題を続行する前に、VEEプログラムを閉じて、新しいプログラムを作成します。

8 [Excel] [image] [Initialize Excel Library] を選択します。VEE Excelライブラリ関数がインポートされ、使用可能になります。

9 [Excel] [image] [Open Workbook]を選択します。次の図は、Open Workbookオブジェクトを示します。自動的に開かれた最後のワークブックがアクティブ・ワークブックになります。

10 [Excel] [image] [Select Workbook]を選択します。ワークブックを選択した場合、そのワークブックがアクティブ・ワークブックになります。後続の操作は、アクティブ・ワークブックに対して行われます。Select Workbookオブジェクトについては、下の図に示されているように、ワークブックの名前を入力する必要があります。現在開いているワークブックのうちの1つから選択しなければ、VEE Excelライブラリはエラーを生成します。

注記

ワークブックを選択した後で、新しいワークブックを開くか作成した場合は、アクティブ・ワークブックは最後に開くか作成したワークブックに変更されます。

11 [Excel] [image] [Save Workbook]を選択します。保存は、アクティブ・ワークブックに対してのみ有効です。

12 [Excel] [image] [Quit Excel]を選択します。Microsoft Excelセッションを閉じ、VEE Excelライブラリを終了します。[Close All Workbooks]のステップは省略されています。これは簡略な終了方法ですが、特に問題はありません。

13 この練習にSelectWorkbook.veeという名前を付けて保存します。


例題8-2：Workbookの列挙の使用

1 この例題では、Cドライブのルート・ディレクトリに、スプレッドシートMyWorkbook.xlsがあると仮定しています。

2 例題8-1で使用したSelectWorkbook.veeプログラムから始めて、Select WorkbookとCall ｖxLib.SaveWorkbookの間の線を切断します。これら2つのオブジェクトの間に空間を空けます。

3 Select Workbookオブジェクトの後にNew Workbookオブジェクトを追加し、そのシーケンス入力をSelect Workbookのシーケンス出力に配線します。

4 [Excel] [image] [Enumerations] [image] [Enumerate Workbooks]を選択します。これらのオブジェクトをNew WorkbookオブジェクトとSave Workbookオブジェクトの間に配置します。

5 シーケンス・ピンを配線します。

6 プログラムを実行すると、次のような結果になります。


例題8-3：セルの書式設定

次の例題では、Excelワークシートのセル範囲の境界線と背景色を書式設定します。

1 新しいVEEプロジェクトを開きます。

2 セルA1～A4に値を追加して、MyWorkbook.xlsファイルを準備します。ワークブックを保存して閉じます。Excelを終了します。

3 Initialize Excel LibraryをVEEプログラムに追加します。

4 Open WorkbookオブジェクトをVEEプログラムに追加します。

5 [Excel] [image] [Formatting] [image] [Format Cells]オブジェクトをプログラムに追加し、シーケンス入力をOpen Workbook オブジェクトのシーケンス出力に配線します。

6 Format Cellsオブジェクトを開き、[BackColor]パラメータをGray25に設定します。

7 テキスト定数をプログラムに追加し、出力ピンをFormat Cellsオブジェクトの入力ピンに配線します。テキスト定数に範囲A1:A4を入力します。

8 [Excel] [image] [Formatting] [image] [Auto Fit Columns]オブジェクトをプログラムに追加し、シーケンス入力ピンをFormat Cellsオブジェクトのシーケンス出力ピンに配線します。

9 テキスト定数オブジェクトをプログラムに追加し、出力ピンをAutoFitColumnsオブジェクトの入力ピンに配線します。セル・アドレスA1を入力します。

10 SaveWorkbookオブジェクトを追加し、前に行ったようにシーケンス・ピンを配線します。

11 Quit Excel オブジェクトを追加し、前に行ったようにシーケンス・ピンを配線します。

12 プログラムを実行します。

13 MyWorkbook.xlsを開いてワークシートを調べることにより、変更結果を確認します。

14 Format Cellsオブジェクトを開いて、使用可能な他のフォーマット・オプションを調べます。


例題8-4：Send Recordの使用法

1 MyWorkbook.xlsを使ってMicrosoft Excelの名前付き範囲を作成します。使用したいセルの範囲を強調表示します。[Insert] [image] [Name] [image] [Define]を選択して、Excelの名前付き範囲を定義します。この範囲は、ダイアログ・ボックスの下部にあるテキスト・ボックスで参照されます。テキスト・ボックスの終わりには、名前定義モードからセル選択モードに切り替えるアイコンがあります。

2 3つの範囲A、B、Testを定義します。名前付き範囲が重複しないようにしてください。レコードには、AフィールドとBフィールドがあります。この時点で、名前付き範囲がレコードの各フィールドに対して定義されています。

3 [Send Data] [image] [Record to Named Range] UserFunctionには、1つの入力ピンと2つの出力ピンがあります。デフォルトのレコード定数を入力ピンに配線します。Alphanumericを上側の出力ピンに配線します。

4 プログラムを実行します。

5 ワークシートを見ると、Aフィールドの値が名前付き範囲A、Bフィールドの値が名前付き範囲Bにあることがわかります。

6 Alphanumericオブジェクトには出力「Test」があります。これは、名前付き範囲TestがVEEレコードによって使用されなかったためです。この機能を用いれば、フィールド構造が完全であるかどうかや、Excelに命名エラーがあるかどうかを簡単に確認できます。

7 このプログラムにSendRecord.veeと名前を付けて保存します。


例題8-5：パネル・イメージからExcelピクチャを作成する方法

1 SendingRecord.veeプログラムを使って、レコード定数、英数字、CallSendRecordオブジェクトを削除します。

2 [Excel] [image] [Send Panel Image]メニューからImageSettingsオブジェクトを挿入します。File Name Selectionオブジェクトの出力シーケンス・ピンに配線します。設定を調整するか、デフォルトを使用します。

3 次に示すように、UserFunction1という名前のUserFunctionを追加します。[Function Generator]の[Frequency]および[Num Points]パラメータがわずかに変更されいます。

4 Panel Image to Pictureオブジェクトを挿入します。2つのText定数と2つのInt16定数を追加し、次のように配線します。Panel Image to Pictureも次のように配線します。相対サイズ・パラメータを使って、ピクチャを拡大／縮小することができます。1は100%、0.8は80%です。

5 XY Traceオブジェクトをパネル上に配置します。

6 プログラムを実行して、Excelワークシートを調べます。


例題8-6：システム・コマンドの使用法

1 [I/O] [image] [Execute Program]を選択します。 [Prog with params] フィールドをクリックしてカーソルを表示し、次のように入力します。

command.com /c dir >> c:\bob

注記

Windows Vista、Windows 2000またはWindows XPの場合は、command.comをcmdに置き換えます。ドライブ名がc:と異なる場合は、ドライブ名を置き換えます。

（ command.com実行可能ファイルの完全パスを含める必要がある場合もあります）このコマンドはDOSコマンド・インタプリタを実行します。 DOSコマンド・インタプリタは、システム・コマンドを実行して現在のディレクトリを表示し、出力をコンピュータの画面ではなく、bobファイルにリダイレクト（>）します。

[Wait for prog exit]はYesのままにしておきます。[Run Style]はNormalのままにしておき、[Working directory]に「c:\」と入力します。

2 [I/O] [image] [From] [image] [File]を選択し、Execute Programの下に配置します。Execute Programのシーケンス出力ピンをFrom Fileオブジェクトのシーケンス入力ピンに接続します。

myFileというラベルの付いた[From File:]入力フィールドをクリックしてリスト・ボックスを表示し、「c:\bob」と入力してから、[OK].をクリックします（ファイルbobはプログラムによって作成されます）。

3 トランザクション・バーをダブルクリックして、[I/O Transaction]ボックスを表示します。

a [REAL64 FORMAT]を[STRING FORMAT]に変更します。

b [SCALAR]を[ARRAY 1D]に変更します。

c [SIZE: (10)]フィールドをクリックして、[TO END: (*)]に切り替えてから、[OK]をクリックします。トランザクション・バーは、READ TEXT x STR ARRAY:* となっているはずです。.このトランザクションがbobファイルの内容を読み取ります。

4 [Display] [image] [Logging AlphaNumeric]を選択し、データ入力ピンをFrom Fileのデータ出力に接続します。

5 プログラムを実行します。次のように表示されます。


例題9-1：UserFunctionの操作

この例題では、ArrayStatsという名前のUserFunctionの作成方法について説明します。このUserFunctionは、配列を受け入れ、その最大値、最小値、平均値、標準偏差を計算し、結果を出力ピンに出力します。

UserFunctionの作成

1 [Device] [image] [Formula]を選択し、デフォルトの入力ピンを削除し、デフォルトの式をramp(1024,1,1024)に変更します。

これにより、1から1024までの値を持つ1024要素の配列が作成されます。

2 [Device] [image] [UserFunction]を選択します。名前をArrayStatsに変更します。

a 配列のためのデータ入力端子を1つ追加します。

b 結果のためのデータ出力端子を4つ追加します。

c 出力端子の名前をMax、Min、Mean、Sdevに変更します。[Function & Object Browser]ボックスの[Probability & Statistics]カテゴリで、max、min、mean、sdevを選択します。

d それらをArrayStats内に配置し、そのデータ入力をAに接続し、データ出力を対応する出力端子に接続します。[ArrayStats]ウィンドウのサイズを小さくして、メインとArrayStatsの両方のウィンドウが見えるようにします。

3 ArrayStatsをアイコン化します。アイコンがワークスペースの下部に表示されます。

4 [Device] [image] [Call]をクリックし、オブジェクト・メニューを開き、[Select Function]をクリックします。次に[OK]をクリックします。VEEはオブジェクトの名前を自動的に変更し、正しいピンを追加します。

5 Formulaの出力をCall ArrayStatsの入力に接続します。[Display]  [image] [AlphaNumeric]を選択し、3つのクローンを作成し、Call ArrayStatsの出力ピンに接続します。表示オブジェクトの名前を変更します。

6 プログラムを実行します。次のように表示されます。プログラムをarray_stats.veeのファイル名で保存します。

ArrayStatsをプログラムの他の場所で使用するには、[Device]  [image]  [Call]をクリックし、オブジェクト・メニューから[Select Function]ボックスを開き、 ArrayStatsを選択します。VEEはオブジェクトの名前を自動的にCall ArrayStatsに変更し、必要な入出力端子を追加します。

UserFunction のオブジェクト・メニューで、[Generate] [image] [Call]を選択し、Call ArrayStatsオブジェクトを表示します（この際に、UserFunctionがワークスペース全体に拡大されているとうまくいきません）。

UserFunctionの編集方法

この例題では、ArrayStatsを編集し、配列の統計情報を記録した4つのフィールドを持つレコードを出力するようにします。

1 4つのAlphaNumeric表示を削除します。

2 [Edit] [image] [Edit UserFunction...] を選択し、[Edit UserFunction]リスト・ボックスからArrayStatsを選択します。プログラム内のすべてのUserFunctionが表示されます。

3 ArrayStatsのオブジェクト・メニューを開き、[size]をクリックし、編集ウィンドウを拡大します。オブジェクトのサイズを変更する必要がある場合は、オブジェクトの4隅のいずれかをクリック・アンド・ドラッグします。

4 出力端子につながる4本のラインを削除します（Ctrl+Shiftキーを押したまま、削除するラインをクリックします）。

5 [Data] [image] [Build Data]  [image] [Record] を選択し、ArrayStatsウィンドウの右側に配置します。

a データ入力端子を2つ追加します。

b 統計関数の名前に応じて、4つの端子にmax、min、mean、sdevというラベルを付けます。

c 4つのFormulaオブジェクトの出力をBuild Recordのそれぞれの入力に接続します。

d Max出力端子の名前をXに変更するために、Maxをダブルクリックし、新しい名前を入力し、[OK]をクリックします。

e ArrayStatsのほかのデータ出力端子を削除します。

f UserFunctionの編集ウィンドウで、Build Recordの出力をX出力端子に接続します。プログラムは次のように表示されます。次に、ウィンドウのアイコン化ボタンをクリックします。

6 Call ArrayStatsのオブジェクト・メニューを開き、[Configure Pinout]をクリックします。これにより、最新の変更結果に合わせてピンの数が調整されます。

注記

UserFunctionの入力または出力の数を変更した場合は、ピンの数を更新するために、オブジェクトを開いて[Configure Pinout]をクリックする必要があります。Callオブジェクトの入力ピンと出力ピンは手動でも更新できますが、[Configure Pinout]を使用するほうがずっと簡単です。[Find]を使用すると、UserFunctionを呼び出しているCallオブジェクトと式をすべて検索することができます。詳細については、「大規模プログラムで関数を検索する方法」を参照してください。

Record Constantオブジェクトを使ってレコードを1つ表示します。Default Valueコントロール入力を使用して、ArrayStatsからのレコードを受け入れます。VEEは、Record Constantが入力レコードを保持するように自動的に設定します。

7 [Data] [image] [Constant] [image] [Record]を選択し、Call Functionオブジェクトの右に配置します。

a Recordのオブジェクト・メニューを開き、[Add Terminal] [image] [Control Input....]をクリックします。表示されるリスト・ボックスで[Default Value]を選択します。端子を表示したい場合は、[Properties]メニューを開き、[Show Terminals]を選択します。

b Call Functionのデータ出力をRecordオブジェクトのコントロール入力ピンに接続します。コントロール・ラインは、データ・ラインと区別するために破線で表されています。

8 プログラムを実行します。

式からUserFunctionを呼び出す方法

この例題では、 Formula オブジェクトの式からArrayStatsを呼び出す方法を学びます。

1 [Device] [image] [Formula]を選択し、デフォルトの式をArrayStats(A)に変更します。Call ArrayStatsのオブジェクト・メニューで、[Replace] をクリックします。

VEE画面下部のステータス・バーに、置換後の新しいオブジェクトを選択するように表示されます。ArrayStats関数を呼び出すFormulaオブジェクトをクリックします。VEEは自動的にCall ArrayStatsオブジェクトを新しいFormulaオブジェクトに置き換え、データ・ラインの配線を維持します。

Formulaオブジェクトは、端子Aで入力を受け取り、UserFunction ArrayStatsに送信します。ArrayStatsは、統計情報のレコードを端子Xに出力します。UserFunction からの最初の出力値（X） は、Formulaオブジェクトに返され、Result出力に送られます。

2 プログラムを実行します。

Formulaオブジェクト中のArrayStatsの機能は、Call ArrayStatsオブジェクトにあったときとまったく同じです。この例ではFormulaオブジェクトを使用していますが、ArrayStatsは式を受け入れる任意の入力フィールド（To Fileオブジェクトなど）から呼び出すことができます。

注記

式からUserFunctionを呼び出した場合、UserFunctionは単一の出力（いちばん上のデータ出力ピン）だけを返します。すべての出力を必要とする場合、または出力全部をRecordにまとめられない場合は、Call Functionオブジェクトを使用します。

注記

式からUserFunctionを呼び出した場合、入力端子は、その関数に渡される関数パラメータとして使用されます。関数にデータを渡さない場合でも、関数名の後に空の括弧を付ける必要があります。そうしないとVEEは、Global変数または入力端子が参照されていると仮定します。たとえば、MyFunctionという名前のUserFunctionが入力パラメータを持っていなくても、式の中ではMyFunction()と書く必要があります。Callオブジェクトの場合、VEEは関数が参照されていることを認識できるので、括弧を必要としません。

UserFunctionの呼び出しを生成する方法

UserFunctionから呼び出しオブジェクトを生成し、メイン・プログラムに配置するには、UserFunctionのオブジェクト・メニューの[Generate]メニューを使用します。[Generate]メニューには、UserFunctionを呼び出す一般的なオブジェクトがほとんどそろっています。呼び出しオブジェクトを選択すると、名前とピンが適切に設定され、メイン・プログラムなどの呼び出し元のウィンドウに配置できます。

この例題では、ArrayStats UserFunctionから、メイン・プログラム内にArrayStatsオブジェクトを生成する方法を学びます。

1 上で使用した例で、FormulaオブジェクトArrayStatsをダブルクリックしてこのオブジェクトを削除します（オブジェクト・メニューを選択し、[Cut]を選択することもできます）。

2 UserFunction ArrayStatsで、オブジェクト・メニューを選択し、[Generate] [image] [Formula Call]を選択します。下の図は、UserFunctionのオブジェクト・メニューの[Generate]メニューを示します。

3 オブジェクトをメインに配置します。VEEは、新しいオブジェクトに自動的にArrayStats(A)という名前を付け、UserFunction ArrayStatsを呼び出す式ArrayStats(A) を設定します。

4 Formulaオブジェクトの出力をArrayStats(A)に接続し、ArayStats(A)の出力をRecordに接続します。

5 プログラムを実行します。次のように表示されます。

UserFunctionのオブジェクト・メニューを開き、[Generate]メニューを選択して、UserFunctionを呼び出すためにプログラム内に配置できる他のオブジェクトを調べてみてください。Call、Formula Call（この例で使用）、If/Then/Else Call、ShowPanel、HidePanelなどのオブジェクトがあります。

UserFunctionとProgram Explorer

UserFunctionとUserObjectを使うと、VEEプログラムがモジュール化され、わかりやすくなります。Program Explorerは、複雑なプログラムを扱うための便利なツールです。たとえば、上のプログラムの階層をProgram Explorerに表示してみます。Program Explorerを表示するには、[View] [image] [Program Explorer]をクリックするか、ツールバーのProgram Explorerアイコンをクリックします。

下の図は、Program Explorerを使用しているところです。


例題9-2：UserFunctionのライブラリの作成方法およびマージ方法

この例題では、UserFunctionのVEEライブラリを含むレポート生成プログラムを作成します。次に、UserFunctionのライブラリをマージする新しいプログラムを作成します。

UserFunctionのライブラリの作成方法

1 UserFunctionの詳細をプログラミングしないで、トップ・レベルのプログラムを作成します。

a 4個のUserFunctionを作成します。1個の出力ピンを持つBuildRecAry、ReportHeader、1個の入力ピンを持つReportBody、およびReportDisplayです。すべてのUserFunctionをアイコン化します。

b メインで、次に示すように設定され、接続された4個の[Device] [image] [Call]オブジェクトを作成します。プログラムをReport.veeとして保存します。

注記

Callオブジェクトは、UserFunctionを参照するとき、括弧を要求しません。関数をFormulaオブジェクトから呼び出している場合は、関数がパラメータを使用しているかどうかに関係なく、括弧を含める必要があります。

4個のUserFunctionは1つのライブラリです。[Edit] [image] [Edit UserFunction...]をクリックすると、それらをリストとして表示できます。[Cancel]をクリックして、リスト・ボックスをクローズします。

2 4個のUserFunctionを次の図に示すようにプログラムします。

下の図は、BuildRecAry UserFunctionを示します。BuildRecAryには、「A<=5」であるかをテストする3項式を持つFormulaオブジェクトが含まれます。式がTRUEであると評価された場合、オブジェクトが「"PASS"」を出力します。それ以外の場合、オブジェクトは「"FAIL"」を出力します。式には括弧が必要です。

ReportHeader UserFunctionを下に示します。

次の図は、ReportBody UserFunctionを示します。レコードの配列A[B]に注意してください。値Bが0から、1、2へ変化するので、レコードのValue、Limit、PassFailなどの特定フィールドに、<レコード>.<フィールド>表記を使ってアクセスできます。For Count出力は、ゼロから始まります。また、最初のトランザクションのEOLはオフになっています。

引用符で囲まれた垂直バー"|"は、垂直バーに対する一定文字列文字を表します。FW:5は、文字列フィールドの幅が5であることを表します。RJ は、right justified(右揃え)を表します。

ReportDisplay UserFunctionを詳細ビューで示します。UserFunctionはファイルの最後まで文字列配列を読み取ります。これは、STR ARRAYフォーマットの後のアスタリスク記号(*)により指定されています。

下の図は、[Properties]ボックスで[Show Panel on Execute]を選択したときの、ReportDisplay UserFunctionのパネル・ビューを示したものです。[Properties]ボックスのポップアップ・パネル・タイトルもReportDisplayに変更されています。パネルを作成するには、Confirm (OK)およびLogging AlphaNumericオブジェクトを選択し、[Edit] [image] [Add to Panel]をクリックします。Logging AlphaNumeric表示で、[Show Title Bar]の選択が解除されています。また、Confirm (OK)ボタンの名前がDONEに変化しています。Confirm (OK)ボタンを含めたのは、ユーザが見終わるまで画面に表示されているようにするためです。

3 プログラムを実行します。ReportDisplayパネルがポップアップされ、下に示すように値が表示されます。.[DONE] をクリックして実行を終了します。プログラムをReport.veeとして保存します。

別のプログラムを作成し、ライブラリでマージする方法

この例題では、新しいプログラムを作成し、ライブラリをマージします。ここでは、レポート生成用の関数のライブラリを構築します。新しいプログラムには、ライブラリの各関数について説明するNote Padオブジェクトを含めます。このプログラムにRepGenという名前を付けます。

RepGenを再使用するには、新しいレポート生成ユーザ関数を作成し、それをプログラムとマージし、最新情報に変えるためNote Padオブジェクトを更新します。[Merge Library...]コマンドを使用して、RepGenからすべての関数を流用することができます。

1 [File] [image] [New]を選択します。

2 [File] [image] [Merge Library...]を選択します。[Merge Library]リスト・ボックスからReport.veeを選択します。別のディレクトリにいる場合、完全なファイル・パスを入力します。

[Edit] [image] [Edit UserFunction]を選択するか、またはProgram Explorerを表示して、Report.veeからのライブラリが新しいプログラムに転送されたことを確認します。[Merge Library...]コマンドを使用すると、マージされた関数をローカル関数と同様に編集できます。

3 [Display] [image] [Note Pad]を選択し、下に示す説明と同様のUserFunctionの説明を入力します。次に、プログラムをRepGen.veeとして保存します。


例題9-3：ライブラリのインポートと削除

作成したUserFunctionのライブラリの使い方は、プログラムにマージするだけではありません。実行時にライブラリを読み込み、いくつかの関数を使用した後、ライブラリを削除すれば、メモリを節約できます。Import LibraryオブジェクトとDelete Libraryオブジェクトは、このような使い方を想定しています。

この例題では、RepGenプログラムから関数をインポートします。次に、BuildRecAry関数を呼び出し、テスト・データをシミュレートし、表示してから、最後にライブラリを削除して、メモリとスワップ領域を解放します。

1 [File] [image] [New]を選択します。

2 [Device] [image] [Import Library]を選択し、メインに配置します。Import Libraryオブジェクトのフィールドを次のように設定します。

Import Libraryのフィールド | 説明
Library Type | [Library Type]フィールドのメニューから、UserFunction、Compiled Function、またはRemote Functionを選択できます。この例ではUserFunctionライブラリを使用するので、デフォルトのままにします。
Library Name | [Library Name]には、myLibがデフォルトで表示されます。この名前は、インポートされるライブラリを識別するための「ハンドル」として、VEEプログラムによって用いられます。Delete Libraryオブジェクトは、この名前を使用して削除するライブラリを識別します。デフォルト名を使用できます。
File Name | [File Name]フィールドは、デフォルトで、ユーザ・プログラム・ディレクトリのダイアログ・ボックスを表示します。関数のライブラリが保存されているファイルを指定します。 デフォルト名myFileをクリックして、リスト・ボックスを表示します。RepGen.vee（「例題9-2: UserFunctionのライブラリの作成方法およびマージ方法」より）を選択します。このファイルは、インストール時にユーザ・プログラム用に指定したディレクトリにあります。

3 オブジェクト・メニューを開き、[Load Lib]を選択します。これにより、実行を待たずにただちにライブラリがインポートされます。このコマンドは、開発段階で非常に有効です（次のステップで、Callオブジェクトで[Select Function]を選択すると、関数の先頭にライブラリ・ハンドルが付いて、myLib.BuildRecAryのように表示されるはずです）。

インポートされた関数のライブラリを表示するには、Program Explorerを使用します。

注記

ライブラリをインポートしたため、UserFunctionに対しては、表示やブレークポイントの設定しか行えません。UserFunctionを編集することはできません。編集可能な方法でUserFunctionをプログラムに追加するには、[Merge Library...]コマンドを使用します。

4 [Device] [image] [Call]を選択し、Import Libraryオブジェクトの下に配置します。Import Libraryからの出力シーケンス・ピンをCallオブジェクトの入力シーケンス・ピンに接続します。

5 Call Functionのオブジェクト・メニューを開き、[Select Function]をクリックして、Load Libコマンドでインポートされた関数のリストを表示します。次に示すように、myLib.BuildRecAryを選択します。

VEEは、[Function Name]フィールドに関数を自動的に挿入し、必要な出力端子を追加します。[Function Name]フィールドにmyLib.BuildRecAryを入力しても、同じ結果を実現できます。ライブラリ内の関数の名前のリストから選択したい場合には、[Select Function]を使用します。

6 AlphaNumeric表示を選択し、表示を拡大し、Callデータ出力に接続します。

7 [Device] [image] [Delete Library] を選択し、Call オブジェクトの下に配置します。シーケンス・ピンを接続して、BuildRecAry関数が呼び出された後に、ライブラリが削除されるようにします。デフォルトのLibrary NameはImport Libraryオブジェクトで使用した名前と同じなので、そのまま使用できます。

8 プログラムを実行します。次のように表示されます。プログラムをlibraries.veeという名前で保存します。

マージされた関数とインポートされた関数の名前に関する注意事項を示します。

マージされた関数とローカル関数の名前が同じである場合、VEEはエラーを表示します。

インポートされた関数とローカル関数の名前が同じである場合、エラーは発生しませんが、関数名だけを使用するとローカル関数が呼び出されます。インポートされた関数を明示的に呼び出すには、上の図のCallオブジェクトのようにMyLib_func()構文を使用します。

インポートされた2つのライブラリが同じ関数名を持つ場合、結果は不確定です。CallオブジェクトはmyLib.BuildRecAryの用にライブラリ名を使用するので、混乱はありません。同じ名前を持つ別のローカル関数または他のインポートされた関数があったとしても、これによりBuildRecAryの名前と場所が指定されます。


例題9-4：棒グラフ表示プログラムのマージ方法

この例題では、既存のプログラムを新しいプログラムとマージします。例ではVEEのLibディレクトリのプログラムを使用しますが、任意のプログラムを使用できます。ramp()関数を使用し、1～5の5個の値を持つ配列を作成します。配列を表示するのにVEEの組み込み表示オブジェクトを使用せずに、BarChartプログラムを作成中のプログラムとマージします。

1 Formulaを選択し、左の作業領域に配置します。

2 データ入力端子を削除します。

3 デフォルトの式をramp(5,1,5)に変更します。

最初のパラメータは、ランプ配列の要素数です。2番目のパラメータは開始値、3番目のパラメータは最終値です。この関数の詳細を知るには、ramp呼び出しを持つFormulaのオブジェクト・メニューで[Help]を選択します（または、[Help] [image] [Contents & Index]を選択し、[Index]フォルダで[Search]機能を使用してみてください）。

4 [File] [image] [Merge...]をクリックして、[Merge File]リスト・ボックスを表示します。BarChart.veeを選択し、それをFormulaオブジェクトの右に配置します。2つのオブジェクトを接続します。

5 プログラムを実行します。次のように表示されます。

棒グラフ表示は1次元配列をとり、値を縦棒として表示します。表示される棒の数は、配列内の値を表示するのに必要な数です。プログラムがどのように作成されているかを見るには、表示の詳細ビューをオープンします。ライブラリ・ディレクトリの例を見ることにより、プログラムに対する理解が深まります。

注記

[File] [image] [Merge]コマンドは、UserObjectsとオブジェクトをマージするために用いられます。[File] [image] [Merge Library]コマンドは、UserFunctionをマージするために用いられます。


例題10-1：テストを設定する方法

注記

この例では、期待されるテスト結果の範囲によってrandom()関数を実装する方法について説明しますが、原則はどのようなテストでも同じです。

1 [Device] [image] [Sequencer]を選択し、作業領域の左上に配置します。

2 [Display] [image] [AlphaNumeric]表示を選択し、Sequencerの下に配置し、幅を広げ、SequencerのLog出力端子をAlphanumericのデータ入力端子に接続します。

3 Sequencerのトランザクション・バーをダブルクリックして、[Sequence Transaction]ダイアログ・ボックスを表示します。フィールドを次のように設定します。

注記

フィールドを編集する場合、フィールドを変更するには新しいフィールドをクリックし、次のフィールドに移動するにはTabキーを使用します。カーソルを前のフィールドに移動するにはShift+Tabキーを使用します。Enter キーは、ダイアログ・ボックスの編集が終わったときにだけ押します。

フィールド名

説明

TEST:

デフォルト名はtest1で、このデフォルト名を使用できます。これはSequencerのテストの単なるラベルです。テスト関数そのものではありません。

SPEC NOMINAL:

期待されるテスト値を表します。デフォルトは .5です。これを.25,に変更し、上のRANGEフィールド（右端）を1から.5に変更します。

FUNCTION:

デフォルトのエントリtestFunc(a)は、テストを実行する実際の関数を示します。この場合、デフォルトのフィールドをrandom()関数に置き換えます。random()は、テスト結果をシミュレートする 0 から 1 までのReal64値を返します。この結果がテスト仕様と比較されます。

random(low,high)オブジェクトは、[Function & Object Browser]ボックスの[Probability & Statistics]カテゴリにあります。この算術関数は、実際にFormulaオブジェクトを使用しなくても、任意の式フィールドから呼び出すことができます。この例のように、パラメータlowとhighを指定しなかった場合は、デフォルトのパラメータ0 と1が使用されます。

その他のフィールドはデフォルト値のままでかまいません。この設定で実行すると、約半分の結果が PASS になります。ダイアログ・ボックスは次のように表示されます。

[OK]をクリックして、ダイアログ・ボックスを閉じます。最初のトランザクション・バーに次のトランザクションが表示されます。
test1 0 <= (.25) <= .5
これは、戻り値が0以上.5以下である場合、test1は合格することを意味します。期待される結果は約.25です。

4 プログラムを実行します。プログラムは、テスト名、テスト結果、合否インジケータ（PASSの場合は1、FAILの場合は0）を表示します。

先に進む前に、次の表を見て、[Sequence Transaction]ダイアログ・ボックス内のさまざまな選択肢を理解しておいてください。トランザクション・バーをダブルクリックして、このダイアログ・ボックスをもう一度開きます。さまざまなメニューを開き、オプションを調べてみてください。

Sequence Transactionフィールド

説明

TEST:

Sequencerでテストを参照するために用いられる一意の名前。デフォルトの名前は、test1から始まり、テストごとに番号が大きくなります。TEST:を選択すると、テスト結果がテスト仕様と比較され、設定に基づいて次のテストへの分岐が行われます。

[TEST:]ボタンは[EXEC:]に切り替わります。[TEST:]を[EXEC:]に切り替えると、テスト結果とテスト仕様の比較なしでテストが実行されます。たとえば、UserFunctionでグローバル変数を設定している場合は、[EXEC:]を選択できます。[EXEC:]を選択すると、テストのログ記録もオフになります。

ENABLED

テストをいつ実行するかを決めます。このメニューには4つの選択肢が表示されます。

ENABLEDは、条件にかかわりなくテストを実行します。

ENABLED IF:では、記述されている式がTRUEに評価された場合にテストを実行します。たとえば、入力ピンAが値1を持つ(A == 1)場合にテストを実行できます。ENABLED IF:は監査テストの制御のために使用できます。たとえば、10回の実行ごとに、特定のテストを1回実行することもできます。

DISABLEDはENABLEDの反対です。

DISABLED IF:はENABLED IF:の反対です。

SPEC

NOMINAL:

テストの期待値。

RANGE:

テスト値の範囲を指定します。このメニューには4つの選択肢が表示されます。

RANGEは、PASS条件を表すテスト値の範囲を指定します。通常の比較演算子>、>=、<、<=、==、!=も使用できます。

LIMITは、テスト・データの比較のために1つの値だけを使用します。

TOLERANCEは、指定された公差値をSPEC NOMINAL値に加減算することにより、許容範囲を指定します。

%TOLERANCEは、SPEC NOMINAL値の指定された割合の公差を公称仕様に加減算することにより、許容範囲を指定します。

FUNCTION:

実行するテストを指定します。UserFunction、コンパイル済み関数、リモート関数を呼び出すか、評価対象となる式を入力できます。呼び出した関数（または評価した式）の結果は、仕様を基準としてテストされます。

UserFunctionが複数の値を返す場合、VEEは、いちばん上の出力ピンがテストする結果であると仮定します。

関数は組み合わせたり、ネストしたりすることもできます。例、(random(0,myfunc()+3,100)*2)。

LOGGING ENABLED

テスト・データのログを記録します。ログ記録に関するオプションを指定するには、Sequencerのオブジェクト・メニューを開き、[Properties]を選択し、[Logging]フォルダをクリックし、一覧から選択します。デフォルトでは、[Name]、[Result]、[Pass]がチェックされています。[Log to Output Pin Only]と[Log Each Transaction To:]のいずれかを選択するフィールドもあります。ログ記録を有効にした場合は、各テストでレコードがログに記録されます。

このボタンは[LOGGING DISABLED]に切り替わります。

IF PASS

分岐命令を決めます。テストが成功した場合、VEEは、ここで分岐命令を確認します。[IF PASS]では、VEEはドロップダウン・メニューで選択されている分岐命令を実行します。

このボタンは[IF PASS CALL:]に切り替わります。

[IF PASS CALL:]では、指定した関数が呼び出されてから、分岐メニューで選択した命令に分岐します

（この表の次の項目である[THEN CONTINUE]も参照してください）。

THEN CONTINUE

テストの分岐を決めます。[IF PASS]と[IF FAIL]の場合、ドロップダウン・メニュー[THEN CONTINUE]には6つの分岐オプションがあります。

[THEN CONTINUE]は、Sequencerで設定されている次のテストを実行します。

[THEN RETURN:]では、VEEはテストの実行を停止し、指定された式をSequencerのReturn出力ピンに出力します。

[THEN GOTO:]は、フィールドで指定しているテストにジャンプします。

[THEN REPEAT]は、[MAX TIMES:]フィールドで指定している回数まで、現在のテストを繰り返します。最大回数だけ繰り返した後もまだPASS/FAIL条件が存在する場合は、VEEは次のテストに進みます。

[THEN ERROR:]は、所定のエラー番号の付いたエラー条件を生成することにより、実行を停止します。エラーは、SequencerのError出力ピンを使って捕捉できます。ほかの出力ピンはデータを送信しません。

[THEN EVALUATE:]は、指定されたUserFunctionを呼び出します。 このUserFunctionは、分岐メニューのいずれかのオプションを指定する文字列を返す必要があります。UserFunctionが返す有効な文字列は、"Continue"、"Return <expr>"、"Goto <name>"、"Repeat <expr>"、"Error <expr>"のいずれかです。 ここで、<expr>は有効なVEE式、<name>はシーケンス内のテストの名前です。このオプションを使用すると、次に何を実行するかをユーザに尋ねることができます。

IF FAIL

分岐の指示。テストが失敗した場合、VEEは、ここで分岐命令を確認します。[IF FAIL]は[IF FAIL CALL:]に切り替わります。オプションは[IF PASS]の場合と同じです。

DESCRIPTION:

テストについてのテキスト・コメント。テキスト・コメントはSequencerトランザクション・バーに表示され、[Properties]ダイアログ・ボックス内のLoggingフォルダを使用すると、テスト・レコードとともに記録できます。

関連項目

テストを追加、挿入、または削除する方法、ログに記録されているテスト・データにアクセスする方法


テストを追加、挿入、または削除する方法

このセクションでは、別のテスト・トランザクションをSequencerオブジェクトに追加します。同じrandom()関数を使用するとテスト結果をシミュレートできますが、今回は、結果を値の範囲と比較するのではなく、リミットと比較します。

1 最初のSequencerトランザクション・バーの下をダブルクリックして、[Sequence Transaction]ダイアログ・ボックスを表示します。フィールドに次のように入力します。

項目 | 説明
test2 | デフォルトを使用します。
SPEC NOMINAL | 設定を.5から.25に変更します。
RANGE | ドロップダウン・メニューで[LIMIT:]を選択します。演算子は < を選択します。リミットを1から.5に変更します。
FUNCTION | testFunc(a)からrandom()に変更します。

ほかの選択肢はデフォルトのままにしておき、[OK] をクリックして、Sequencerに戻ります。

注記

オブジェクト・メニューで[Add Trans...]を選択すると、強調表示されているトランザクションの後にトランザクションを追加することもできます。

Sequencerテスト計画には、現在、test2 (.25) < .5という2番目のトランザクションが表示されています。次に、2つのテストの間にトランザクションを1つ挿入します。

2 2番目のトランザクション・バーが強調表示されているかどうか確認します。次に、オブジェクト・メニューをオープンし、[Insert Trans...]を選択します。フィールドに次のように入力します。

フィールド | 説明
TEST | 名前フィールドをInsertに変更します。
FUNCTION | random()に変更します。

[OK]をクリックします。2番目のトランザクション・バーにInsert 0 <= (.5) <= 1 と表示されます。プログラムを実行し、3つのテストからの3つのレコードを表示します（すべてのエントリを表示するには、表示を拡大しなければならない場合もあります）。

3 Insertを削除します。削除するには[Insert]トランザクション・バーをクリックして、マウス・ポインタを[Insert]トランザクション・バー上に置き、Ctrl+Kを押します。

注記

ターゲットのトランザクション・バーをクリックし、オブジェクト・メニューで[Cut Trans]を選択することもできます。オブジェクト・メニューで[Paste Trans]を選択し、切り取っておいたトランザクションを貼り付けることもできます（ショートカットはCtrl+Y）。同様に、[Copy Trans]を選択すると、トランザクションをコピーできます。

4 プログラムを実行し、2つのテストからのデータ・レコードを確認します。プログラムにseq1.veeと名前を付けて保存します。プログラムは次のように表示されます。

中かっこ{}は、Recordデータ型を示します。Sequencerは、AlphaNumeric表示に表示されているように、レコードのレコードを出力します。このことは、ループ内にSequencerを置いて同じテスト・シーケンスを数回実行すると、レコードのレコードを要素とする配列を生成できることを意味します。


ログに記録されているテスト・データにアクセスする方法

Sequencerはレコードのレコードを出力します。それぞれのテストは、Sequencerレコードのフィールド名としてテスト名を使用します。それぞれのテスト内のフィールドの名前は、ログの設定に基づいて決められます。フィールドName、Result、Passについてデフォルトの設定を使用すると、下に示すように、Log.Test1.Resultという表記を使ってtest1にある結果にアクセスできます。

.

テスト結果にアクセスするには、次の手順を実行します。

1 seq1.vee を開きます。

2 [Device] [image] [Formula]を選択し、表示の下に配置します。式をLog.Test1.Resultに変更します（VEEでは大文字と小文字は区別されません。名前の大文字は単に読みやすさのためです）。

入力端子名をAからLogに変更します（デフォルト名のAのままにしておいてもかまいません。その場合、式は A.Test1.Resultとなります）。Sequencerの出力端子LogをFormulaの入力端子Logに接続します。

3 [Display] [image] [AlphaNumeric]表示を選択し、Formulaオブジェクトに接続します。

4 プログラムを実行します。プログラムはTest1のResultフィールドにアクセスします。プログラムにseq2.veeと名前を付けて保存します。プログラムは次のように表示されます。

注記

それぞれのテストは、Sequencer内で実行されたときに、テスト名と同じ名前のレコードを作成します。このレコードは後続のテストで使用できます。例えば、test1が合格したときにtest2を有効にすることができます（ENABLED IF: test1.pass == 1）。テストの実行中に式フィールドでテスト・データにアクセスする必要がある場合、テスト・データは一時レコードthistestに記録されています。

5 式をLog.test1に変更し、プログラムをもう一度実行します。プログラムはtest1のレコード全体を読み取ります。これは表示では中括弧で囲まれた3つの値で示されます。

6 式を変更すると、test1およびtest2レコードのresult、pass、nameなどのフィールドにアクセスできます。[Properties]ボックスの[Logging]タブを選択し、ログに記録されるレコードにNominalおよびTime Stampフィールドを追加します。Formulaオブジェクトを使用して、これらの新しいフィールドにアクセスします。


例題10-2：入力端子を使用してデータを渡す方法

最初に、次の手順に従ってUserFunction Randを作成します。 これは測定手順をシミュレートするものです。Rand()は、入力パラメータをrandom(low,high)オブジェクトの出力に加算し、結果を出力ピンに出力します。Rand()は3つの異なるテストから呼び出されます。

1 [Device] [image] [UserFunction]を選択します。名前UserFunction1をRandに変更します。

2 random(low,high)関数を表示し、入力端子を削除し、パラメータを削除し、Rand内に配置します（パラメータがなければ、デフォルトは0と1になります）。A+Bオブジェクトをrandom(low,high)の右に配置します。random(low,high)の出力をA+Bオブジェクトの左上の入力に接続します。

3 Randにデータ入力端子を追加します。入力端子AをA+B オブジェクトの左下の入力端子に接続します。

4 Randにデータ出力端子を追加します。A+B オブジェクトの出力をRandの出力端子に接続します。

UserFunction Randは次のように表示されます。

5 プログラムにseqdat1.veeと名前を付けて保存します。右上隅のxボタンを使ってRandウィンドウを閉じます。

注記

ウィンドウを閉じても、UserFunctionは削除されません。このことを確認するには、[Edit] [image] [Edit UserFunction]をクリックします。 編集対象のUserFunctionを一覧表示したリスト・ボックスにRandが表示されます。または、Rand関数をアイコン化することもできます。 その場合は、VEE画面の下部にアイコンが表示されます。

Sequencer内の3つのテストをセットアップします。 3つのテストでは、Sequencerの入力ピンをRandへの入力パラメータとして、Randを呼び出します。

6 [Device] [image] [Sequencer] を選択し、メインに配置します。Sequencerに入力端子を追加します。トランザクション・バーをクリックして、[Sequence Transaction]ダイアログ・ボックスを表示します。[FUNCTION]フィールドをtestFunc(a)からrand(a)に変更します。これにより、UserFunction Rand()が呼び出され、Sequencerの入力端子Aの値がRand()に送信されます。[OK]をクリックして、Sequencerのオープン・ビューに戻ります。

注記

AなどのSequencerの入力端子名を使用しても、[Sequence Transaction]ボックス内の式フィールドにデータを渡すことができます。たとえば、Aを使用して、RANGE:とSPEC NOMINAL:にデータを渡すことができます。

トランザクションが強調表示されていることを確認してから、カーソルをトランザクション・バー上に置き、Ctrl+Kを押してテストをカットし、次に、Ctrl+Yを3回押して、テストをSequencerに再び貼り付けます（オブジェクト・メニューを使ってもカットと貼り付けができます）。

デフォルトのテスト名は、test1x2、test1x1、test1となります。3つの[Sequence Transaction]ダイアログ・ボックスをオープンし、これらの名前をtest1、test2、test3というわかりやすい名前に変更します。

1 [Data] [image] [Continuous]  [image] [Real64 Slider]を選択し、Sequencerの左に配置します。名前をSelect Num:というプロンプトに変更し、オブジェクトのサイズを小さくし、Sequencerの入力端子に接続します。

オブジェクトを配置する際に、マウスの左ボタンを使ってオブジェクトの四隅のいずれかをクリック・アンド・ドラッグすると、オブジェクトのサイズを決められます。

2 AlphaNumeric表示を選択し、Sequencerの下に配置し、幅を広げ、SequencerのLog出力端子に接続します。

3 プログラムにseqdat1と名前を付けて保存します。Real64 Sliderオブジェクトで数値を選択し、seqdat1を実行します。次のように表示されます。

テスト数が増えると、入力端子を使ってデータを渡すのに必要な入力ピンが多くなります。入力ピンを減らすには、入力端子にレコードを渡して、レコード内の別々のフィールドを別々のテストのために使用します。グローバル変数を設定するためのUserFunctionを別に用意する方法もあります。これを他のUserFunctionから、またはプログラム内の式フィールドから呼び出すことができます。これについては次の例題で説明します。

関連項目

グローバル変数を使用してデータを渡す方法、波形出力とマスクを比較する方法


グローバル変数を使用してデータを渡す方法

この例題では、seqdat1プログラムを変更して、UserFunction Randにパラメータaを渡すためにグローバル変数を追加します。

1 Select Numというラベルの付いているReal64 Sliderオブジェクトを削除します。Sequencerの A 入力端子を削除します。

2 test1トランザクション・バーを強調表示し、オブジェクト・メニューを開き、[Insert Trans...]をクリックします。[Sequence Transaction]ボックスが表示されたら、[TEST]をクリックして[EXEC]に切り替え、名前をSetupに変更します。

3 EXECモードを使用するのは、このUserFunctionがグローバル変数を設定するだけで、仕様と比較してテストする結果を生成しないからです。

4 [FUNCTION] フィールドを[global()]に変更し、[OK] をクリックして、ダイアログ・ボックスを閉じます。

5 次に、UserFunction global()を作成します。

6 [Device] [image] [UserFunction]を選択します。名前UserFunction1をglobalに変更します。

[Data] [image] [Continuous]  [image] [Real64Slider]を選択し、UserFunction内に置き、名前をSelect Num:に変更し、縦方向のサイズを小さくします。

[Data] [image] [Variable]  [image] [Set Variable]を選択し、Real64 Sliderの右に配置します。

グローバル変数名をglobalAからaに変更します。Real64 SliderをSet Variableオブジェクトに接続します。

関数を画面に表示してオペレータが数値を選択できるようにするため、ポップアップ・パネル・ビューを追加します。[Confirm (OK)]ボタンを加えます。 これにより、オペレータが選択を終えるまで、パネルは画面に表示されたままとなります（この作業は、global() UserFunction内でReal入力ダイアログ・ボックスを使って行うこともできます）。

7 [Flow] [image] [Confirm(OK)]を選択し、Real64 Sliderオブジェクトの上に配置します。OKデータ出力ピンをReal64 Sliderのシーケンス入力ピンに接続します。

注記

[OK]ボタンをSet Variableオブジェクトの下に配置した場合は、論理エラーとなります。これは、VEEがSliderにある古い値をSet Variableオブジェクトに送信し、[OK]ボタンが押されるまで休止するからです。ポップアップ・パネルで新しい値を入力しても、それは無視されます。OKをReal64 Sliderの上に接続した場合は、[OK]が押されてからグローバル変数が設定されるため、新しいSlider値を使用できます。[Show Data Flow]をオンにすると、実行の順序を確認できます。

8 [Display] [image] [Note Pad]を選択し、テンプレート情報を削除します。オブジェクトを[OK]ボタンの右に配置します。Note Padに、次のユーザ・プロンプトを入力します。

Please select a number for this run of tests 1, 2, and 3.

9 Ctrlキーを押したまま、Note Pad、Real64 Slider、[OK]ボタンの3つのオブジェクトをクリックして選択します。各オブジェクトは、選択されていることを示す網かけ表示になります。[Edit]  [image]  [Add To Panel]をクリックします。 （[Edit]メニューは、VEE画面、あるいはUserObjectまたはUserFunctionの詳細ビューの空いている領域で右ボタンをクリックしても表示できます）。パネル・ビューで、パネルのサイズを小さくし、Note Padを上、Real64 Sliderを中央、[OK]ボタンを下に配置します。

注記

パネル・ビュー内でオブジェクトを再配置しても、詳細ビュー内でのオブジェクトのレイアウトには影響しません。

UserFunctionの[Properties]ウィンドウを開きます。[Pop-up Panel]の下の[General]フォルダで、[ShowPanelonExecute]プロパティをTrueに設定します。UserFunctionの詳細ビュー

パネル・ビュー:

10 seqdat2 という名前を付けてプログラムを保存し、実行します。ポップアップ・パネルが表示されたら、値を選択し、[OK]を押します。次のように表示されます。

注記

ポップアップ・パネルは、デフォルトでは、画面の中央に表示されます。移動するには、タイトル・バーをクリック・アンド・ドラッグします。


波形出力とマスクを比較する方法

この例題では、noisyWvという名前のUserFunctionを作成し、Sequencer内の単一のトランザクション・バーから呼び出します。オペレータは、波形の振幅を0から1までの間で変更できます。この関数は、ノイズのある波形を返すテスト結果をシミュレートします。[Data]  [image] [Constant]メニューのCoordオブジェクトを使用して、0.6で直線マスクを作成します。 Sequencerは、これを使ってノイズのある波形をテストします。

1 noisyWvという名前のUserFunctionを詳細ビューで作成します。

2 パネル・ビューを作成するため、Ctrlキーを押したまま、[OK]ボタン、[Real64 Slider]、[Note Pad]をクリックして、強調表示します。[Edit] [image] [Add To Panel]を選択します。

パネル・ビューが表示されたら、オブジェクトを適当に並べ替え、ウィンドウのサイズを変更します。

オブジェクト・メニューを開き、[Properties]をクリックし、[Pop-up Panel]で[Show Panel on Execute]の横をクリックします。

パネル・ビューは次のように表示されます。

3 [Device] [image] [Sequencer]を選択し、メインの左中央に配置します。データ入力端子を追加し、maskという名前を付けます。

4 トランザクション・バーをクリックして、[Sequence Transaction]ダイアログ・ボックスを表示します。フィールドを次のように変更します。

フィールド | 説明
FUNCTION | noisyWv()と入力します。
RANGE | クリックしてポップアップ・メニューでLIMITを選択します。<=はそのままにし、LIMIT端子名フィールドにmaskと入力します。その他のデフォルト値はすべてそのままでよいので、[OK]をクリックします。

test1はnoisyWv()から結果を取得し、その結果をmaskという名前の入力端子でリミット値と比較するテストを行います。ノイズのある波形がすべての点でマスクと比較して小さいか等しい場合、波形はテストに合格します。そうでない場合、波形は不合格となります。

5 [Data] [image] [Constant] [image] [Coord]を選択し、Sequencerの上に配置します。その出力をSequencerの入力端子maskに接続します。

Coordのオブジェクト・メニューをオープンし、[Properties]をクリックし、フィールドを次のように設定します。

プロパティ | 説明
DataShape | 1D Arrayに設定します。
ArraySize | 「2」と入力します（直線を指定するには、2組の座標があればよいためです）。

6 Coordオブジェクトに2組の座標のインデックスが表示されます。最初のインデックスの0000:をダブルクリックして、カーソルを表示します。カンマで区切って座標を入力すると、VEEが自動的に括弧を追加します。0, 0.6と入力し、Tabキーを押し、20m, 0.6と入力してから、このオブジェクトの外の作業領域をクリックします。次のエントリがあります。

noisyWv()内のNoise Generatorのx軸（時間軸）は 0から20 ミリ秒まで進みます。 したがって、xの2つの値は0と20mです。

直線マスクが必要なので、yの2つの値は、両方とも 0.6 です。

注記

正しい数の座標の組を設定して入力すると、どのようなマスク波形でも作成できます。

Sequencerの比較のメカニズムは、Coordデータ型を受け入れて波形をテストするComparatorオブジェクトと同じように働きます。もちろん、2つのWaveformデータ型を比較することもできます。座標の組の間を移動するときはTabキーを押し、入力が終わったら作業領域をクリックします。

7 AlphaNumeric表示を選択し、幅を広げ、SequencerのLog出力に接続します。

8 seqdat3という名前を付けてプログラムを保存し、実行します。次のように表示されます。

Sequencerを使ってデータを渡す例題はこれで完了です。次の例題では、Sequencerを数回繰り返して得たデータにアクセスし、解析する方法を学びます。


Sequencerから得たデータを解析する方法

Sequencerのデータは、レコードのレコードとして出力されます。ただし、多くの場合、Sequencerは一連のテストを数回実行することができます。これにより、レコードを要素とする配列が生成されます。各レコードはSequencerによる1回の実行を表し、1回の実行内の各テストを表すほかのレコードを保持しています。このことを視覚的に理解する最も容易な方法は、次に示すようなメモリ内のデータから成る立方体を想像してみることです。

レコードを要素とする配列はLogと呼ばれます。 これは、LogがSequencerの出力ピンに関連付けられている名前だからです。特定の実行にアクセスするには、角かっこ[]表記を使って配列のインデックスを指定します。

Log[0]はSequencerによる最初の実行、Log[1]は2番目の実行などとなります。

各実行のメイン・レコードには、Test1とTest2の2つのフィールドがあります。

レコードTest1 内には、Name、Result、Passの3つのフィールドがあります。レコードTest2の場合も同じです。

したがって、Log.Test1.Resultは、4回の実行のいずれかを表す4つの値を要素とする配列となります。Log[0].Test1.Resultは、1回目の実行（Log[0]）でのTest1のResultであるスカラ値を出力します。

ログとして記録されたレコードを要素とする配列は、データの解析と調査を簡略化してくれます。たとえば、特定の実行で成功したテストの数を確認する場合があります。あるいは、すべての実行でのTest2の結果を平均したい場合があります。あるいは、4番目の実行でのTest1のすべてのデータを見たい場合もあります。このデータを使用すれば、これらの照会はすべて可能です。

関連項目:

例題10-3：Sequencerを複数回実行して得られたデータを解析する方法


例題10-3：Sequencerを複数回実行して得られたデータを解析する方法

1 画面をクリアし、seqdat1.vee プログラムを開きます。

Sequencerを3回実行するようにseqdat1.veeプログラムを変更します。次に、そのデータに対する解析操作を行います。

2 [Flow] [image] [Repeat] [image] [For Count]を選択し、Real64 Sliderオブジェクトの上に配置します。繰返し回数を3に変更し、データ出力ピンをSequencerのシーケンス入力ピンに接続します。

3 SequencerのLogピンと表示オブジェクトを結んでいるデータ・ラインを削除します。[Data] [image] [Collector]を選択し、Sequencerの右に配置します。左上のデータ入力ピンをSequencerのLogピンに接続し、XEQピン（左下）をFor Countオブジェクトのシーケンス出力ピンに接続します。Collectorデータの出力ピンをAlphaNumeric表示に接続します。3つの要素を持つ配列が表示できるように表示を縦方向に少し拡大します。

Sequencerはtest1とtest2を3回実行し、データを3要素の配列に収集します。各要素は各実行のレコードからなるレコードを保持します（これを視覚的に理解するには、データの立方体を参照してください）。

この時点でプログラムを実行し、Sequencerデータの表示を調べます。

Formulaオブジェクトを使用して、解析するデータを抽出します。この例題では、3回の実行でのtest1の結果を例に取り、配列の平均値を計算します。

4 [Device] [image] [Formula] を選択し、表示の下に配置します。Formulaの入力ピンをCollectorの出力に接続します。Formulaの入力フィールドをa[*].test1.resultに変更します。mean(x)オブジェクトをFormulaに、AlphaNumeric表示をmean(x)に接続します。

aは入力端子Aにある配列を参照します。Test1.resultは正しいフィールドにアクセスします。すべての実行が1つの配列に表示されます（A[0].test1.resultとすると、最初の実行だけが参照されます）。

5 プログラムを実行します。次のように表示されます。

この例題では単一の配列にアクセスしていますが、Sequencerの出力から他のデータ配列を抽出する場合も、原則は同じです。[Sequencer Properties]ダイアログ・ボックスのLoggingフォルダを開くことにより、それぞれの配列についてどのフィールドを保存するかを容易に変更できます。

関連項目

Sequencerから得たデータを解析する方法


例題10-4：ログに記録されたデータに対してTo/From Fileオブジェクトを使用する方法

1 seqdat2ファイルを開き、表示へのデータ・ラインを削除します。

2 [Flow] [image] [Repeat] [image] [For Count]を選択し、Sequencerの左に配置します。For Countの数を3に変更し、データ出力ピンをSequencerのシーケンス入力ピンに接続します。

3 作業領域を縦方向に拡大し、AlphaNumeric表示を下部近くに配置します。[Data] [image] [Collector] を選択し、作業領域の左に配置します。SequencerのLogピンをCollectorのデータ入力ピンに接続します。For Countのシーケンス出力ピンをCollectorのXEQピンに接続します。

CollectorはSequencerのレコードを使用して、レコードのレコードを要素とする配列を作成します。To Fileオブジェクト内のWRITE CONTAINERトランザクションを使用すると、任意のVEEデータ・コンテナを容易にファイルに書き込むことができます。

4 [I/O] [image] [To] [image] [File]を選択し、Collectorの右に配置します。[I/O] [image] [From] [image] [File]を選択し、To Fileオブジェクトの下に配置します。To Fileオブジェクトに入力端子を追加し、Collectorの出力を接続します。To Fileのシーケンス出力をFrom Fileのシーケンス入力ピンに接続します。From Fileのデータ出力を表示オブジェクトに接続します。

To Fileの[Clear File At PreRun & Open]にチェックを付け、WRITE CONTAINER aトランザクションを設定します。From Fileオブジェクト内でトランザクションをREAD CONTAINER xと設定します。

デフォルトのデータ・ファイルを記録用に使用できます。

5 seqdat4.vee という名前を付けてプログラムを保存し、実行します。次のように表示されます。

関連項目

ログに記録されたデータに対してTo/From DataSetオブジェクトを使用する方法


ログに記録されたデータに対してTo/From DataSetオブジェクトを使用する方法

テスト・データをレコードとして保存しようとしているので、To/From DataSetオブジェクトが適しています。この場合、Collectorは必要ありません。 Sequencerの毎回の実行結果をDataSetの末尾に追加できるからです。

プログラムseqdat4.veeを次のように変更します。To/From DataSetオブジェクトは[I/O]メニューにあります。From DataSetに向かうシーケンス・ラインに注目してください。このシーケンス・ラインが加えられているのは、3回の実行結果がすべてDataSetに追加された後で、From DataSetを起動したいからです。

.

To/From FileオブジェクトでなくTo/From DataSetオブジェクトを使ってデータを収集した方がよい理由の1つは、From DataSetオブジェクトのSearch Specifier機能を使って、データを有用な情報に変換できるからです。

注記

From DataSetの[Get records]フィールドを必ず[One]から[All]に変更してください。


例題11-1：メニューの使用

この例題では、3つの選択肢die1、die2、die3のあるメニューを持つオペレータ・インタフェースを作成します。オペレータが選択肢を選択すると、同じ名前の関数が呼び出され、表面に1つ、2つ、または3つの目を持つサイコロを表示します。このプログラムでは、オペレータが実行するテストをメニューで選択しなければならない状況をシミュレートします。アイコンの外観を変更するため、ビットマップをインポートする方法も習得します。このプログラムはDice Programと呼びます。

3つのUserFunctionを作成することから始めます。

1 [Device] [image] [UserFunction] を選択します。

インポートされたビットマップを表示するには任意のアイコンを使用できますが、この例ではPictureオブジェクトを使用します。

2 [Display] [image] [Picture] を選択し、UserFunction内に配置します。

3 Picture のオブジェクト･メニューをオープンし、 [Properties]をクリックしてから、[ShowTitleBar]プロパティを[False]に設定します。[Picture]で die1.gif を選択し、 [Scaled]をクリックしてから、 [OK]をクリックします。

注記

[Show Title Bar]がオフのときにオブジェクト・メニューにアクセスするには、オブジェクト上で右ボタンをクリックします。

注記

デフォルトではbitmapsサブディレクトリが使用されますが、どのディレクトリにあるビットマップでも使用できます。

次に、サイコロの表面に目が1つあるピクチャを作成する必要があります。

4 [Flow] [image] [Confirm (OK)]を選択し、サイコロの下に配置します。Pictureのシーケンス出力ピンをOKのシーケンス入力ピンに接続します。

5 PictureオブジェクトとOKオブジェクトを選択します（Ctrlキーを押したままオブジェクトをクリックして、網かけ表示にします）。背景にマウス・ポインタを置いてマウスの右ボタンを押し、ポップアップの[Edit]メニューをオープンします。[Add to Panel]を選択します。

6 UserFunction TitleとPanel Titleをdie1に変更します。必要に応じて、オブジェクトの配置とサイズを変更します。

注記

パネル･ビュー内でオブジェクトを移動するには、オブジェクトを右クリックし、[Move]を選択します。またはオブジェクトを強調表示し、オブジェクトに灰色の境界線が現われたら、それを新しい場所までドラッグします。

[Properties]ダイアログ・ボックスで[ShowPanelonExecute]を選択します。位置合わせをより正確に行うため、[Panel]フォルダをクリックし、[PanelGridSize]プロパティをアクティブにして、グリッド・サイズを2に変更します。次に [OK]をクリックします。

7 die1のオブジェクト・メニューで[Clone]を選択し、UserFunctionのクローンを2つ作成します。新しいUserFunctionは、自動的に die2およびdie3として表示されます。ピクチャ・オブジェクトをそれぞれdie2.gifとdie3.gifに変更します。名前とビットマップを除いて、新しい関数のすべての設定が必ずdie1と一致するように設定します。プログラムは次のように表示されます。関数ウィンドウをアイコン化します。

3つの関数から呼び出す関数を選択するメニューを作成します。

8 [Data] [image] [Selection Control] [image] [Radio Buttons]を選択します。

Radio Buttonsは、ユーザ定義のリストにある列挙型の値（Enumデータ型は、序数が関連付けられているテキスト文字列）を上の出力ピンに出力するオブジェクトです。たとえば、リストをMonday、Tuesday、Wednesday、Thursday、Fridayと定義した場合、オペレータはメニューで曜日を選択でき、選択すると、Radio Buttonsは曜日を出力します。

リスト内の最初の項目には、順序を表す位置0が割り当てられます。 リスト内のn番目の項目には、順序を表す位置n-1が割り当てられます。 たとえば、上記のリスト内のMondayの順序を表す位置は0、Fridayの順序を表す位置は4です。 順序を表す位置は、下の出力ピンに出力されます。詳細は、オブジェクト・メニュー内のヘルプのエントリを参照してください。

9 Radio Buttonsのオブジェクト・メニューをオープンし、[Edit Enum Values...]を選択します。

関数の名前を 「die1」、「die2」、「die3」と入力します。 最後のエントリを除き、次のエントリに移るときはTabキーを押します。 [OK]をクリックします。

注記

データ選択を制御するためのメニュー・フォーマットは6種類あります。Radio Buttonsは、エントリをボタンとして表示します。オペレータの選択したデータは、Enumデータ型としてテキスト・フォーマットで出力されます。Cyclic Buttonは、オペレータがボタンを1度クリックするたびに1つずつ列挙型値を循環させます。Listは、リスト内のすべての列挙型値について選択されている項目を強調表示して表示します。そのほかの選択肢としてDrop-down list、Pop-up list、Slider listがあります。

10 Radio Buttonsのオブジェクト・メニューをオープンし、 Properties をクリックしてから、 [Auto Execute]を選択します。タイトルをプロンプト形式の Make a Selection:に変更します。

Radio Buttonsオブジェクトで選択される値がCall Functionオブジェクトによって呼び出される関数の名前となるように、Callオブジェクトをセットアップします。

11 [Device] [image] [Call]をクリックします。 [Add Terminal] [image] [Control Input]を選択し、[Function Name]を選択し、[OK]をクリックします。Function Nameコントロール・ピンはEnum値またはText値を入力として受け入れます。Radio Buttonsのデータ出力ピンをCall FunctionオブジェクトのFunction Name入力端子に接続します。Radio Buttonsのシーケンス出力ピンをCall Functionのシーケンス入力ピンに接続します。 Make a Selection:内の [die2] をクリックして、 Call Function Name が die2に変わることを確認します。

注記

Callの入力端子はText Scalarを要求するため、VEEはEnum ScalarをText Scalarに変換します。

点線はコントロール・ピンを示します。Auto Executeをオンにした場合、Radio Buttonsは、変更が加えられたときはいつでも実行され、選択されたデータをCallに送信します。Call Functionのコントロール・ピンは、データを受信するとすぐ関数名を置き換えます。Callオブジェクトは、シーケンス入力ピンが起動されるまで、指定された関数を呼び出しません。

注記

プログラムがAuto Executeとシーケンス・ピンを使用している場合、オペレータは[Run]ボタンをクリックしてプログラムを開始する必要はありません。

プロンプト、メニュー、および選択対象を表示するポップアップ・パネルだけを表示するオペレータ・インタフェースを追加します。

12 Ctrlを押したままターゲット・オブジェクトをクリックして、Radio Buttonsオブジェクトを選択します。次に、 [Edit] [image] [Add To Panel]を選択します。

13 必要であれば、オブジェクト・メニューをオープンし、[Properties]を選択し、色とフォントを調整します。

選択を行ってプログラムを実行します（[Run]ボタンを使用すると、あらかじめメニューで選択されている内容が使用されてしまうので注意してください）。

プログラムを実行すると、次のように表示されます。

次の例題に移る前に留意点がいくつかあります。

この例題と同じ方法で、あらゆるプログラムのためのメニューを作成できます。

呼び出し対象のプログラムを示すコントロール・ピン（Command）のあるExecute Programオブジェクトを使用すると、コンパイル言語プログラムを選択する場合にもRadio Buttonsを使用できます。コンパイル済み関数のライブラリをすでにインポートしている場合は、Callオブジェクトを使ってライブラリの関数を実行することもできます。

このプログラムを最適化するには、1つのUserFunction内のPictureオブジェクトにFile Nameデータ入力ピンを持たせ、適切なビットマップ・ファイルをオブジェクトに送信します。多数の異なるビットマップを使用する場合には、この方法の方が効率的です。

より複雑なプログラムでは、AutoExecuteの代わりにRunを使用するのが普通です。AutoExecuteの代わりにWait for Inputを使用すると、データ定数または選択制御オブジェクトで、プログラムを休止させることができます。


例題11-2：パネルの背景に使用するビットマップをインポートする方法

ビットマップはプログラムに必須のものではありませんが、テストに明快さとインパクトを加えることができます。たとえば、回路図をインポートすれば、テスト対象がよりわかりやすくなる場合があります。ここでは、標準VEEオブジェクトが表示されるパネルの背景に使用するビットマップをインポートします。

ビットマップは、アイコンやPictureオブジェクト用、またはUserObjectやUserFunction内のパネル・ビューの背景用としてインポートできます。LabelオブジェクトとConfirm (OK)オブジェクトを含むBitmapという名前のポップアップUserFunctionを作成します。

1 [Device] [image] [UserFunction]を選択します。

2 [Flow] [image] [Confirm (OK)]および [Display] [image] [Label]を選択し、UserFunctionウィンドウに配置します。

3 UserFunctionの名前をBitmapに変更します。

4 OKオブジェクトとLabelオブジェクトを選択して、網かけ表示で強調表示します。ポインタをUserFunctionの作業領域に置き、マウスの右ボタンをクリックして、ポップアップの[Edit]メニューをオープンします。[Add to Panel]を選択します。

5 UserFunctionのメニューをオープンし、[Properties]を選択してから、[ShowPanelonExecute]を選択します（[Properties]ボックスを表示するにはタイトル・バーをダブルクリックします）。[Pop-up Panel]で[Show Title Bar]の選択を解除します。

Panelフォルダをオープンし、[Grid Size]を[2]に変更し、[Background Picture]で[default.gif] と[Scaled]を選択してから、 [OK]をクリックします。

6 Label オブジェクトの [Properties] ボックスをオープンし、次のように設定します。

Labelプロパティ | 説明
Title: | [Bitmap Function]に変更します。
Justification | [Center]に変更します。
BackColor | [Light Gray]を選択し、 [OK]をクリックします。
フォント | 太字のより大きいフォントを選択し、 [OK]をクリックします。[Automatically Resize Object on Font Change]にチェック・マークを付けます。
Border | [Raised] をクリックします。 [OK] をクリックして変更を行い、[Properties]ダイアログをクローズします。

7 タイトルBitmap Functionと[OK]ボタンの配置を決めます。Bitmap UserFunctionをアイコン化します。

8 メイン・ウィンドウに移動します。 [Device] [image] [Call]をクリックし、オブジェクト・メニューで[Select Function]をクリックし、[Bitmap]を選択します。プログラムを実行します。ポップアップ・ボックスは次のように表示されます。


例題11-3：インパクトの強い警告を作成する

この例題には、ネストされている数個のUserFunctionがあります。最初のUserFunctionは、alarm自体で、赤い四角とビープを表示します。2番目のUserFunctionは、オペレータがalarmをオフにするまで、光が点滅する効果と短い間隔の断続音を繰り返し生成するalarmを呼び出します。

alarm関数のプログラミングから始めます。

1 [Device] [image] [UserFunction]を選択します。名前をalarmに変更します。

2 [Display] [image] [Beep] を選択し、UserFunction内の左上に配置します。大きいビープ音が1秒間鳴り続くように設定を調整します。[Duration (sec)]フィールドを[1]に変更します。[Volume (0-100)]フィールドを[100]に変更します。

注記

この手順は、コンピュータにビープ音をサポートするハードウェアが装備されていることを前提としています。一部のWindows Vista、Windows 2000およびWindows XPシステムでは、[Default System Beep]の[Default System configuration]が変更されています。

注記

Beepオブジェクトはどこにも接続する必要はありません。関数が実行されると、このオブジェクトがアクティブ化します。

3 [Display] [image] [Indicator] [image] [Color Alarm] をクリックし、UserFunction内に配置します。Color Alarmのオブジェクト・メニューをオープンし、[Properties]をクリックし、次のように設定します。[ShowTitleBar]プロパティをFalseに設定します。[Shape]プロパティを[Rectangular]に設定します。[HighLimit]のプロパティを[.66]に設定し、[HighText]プロパティの横にテキストがあれば削除します。

4 [Data] [image] [Constant] [image] [Real64]をクリックし、[1]に変更し、Color Alarmの入力ピンに接続します。

5 Beepオブジェクトと同期して表示オブジェクトを1秒間画面に表示するため、1秒に設定したDelayオブジェクトを使用します。

6 [Flow] [image] [Delay]を選択し、[1]に設定し、シーケンス入力ピンをColor Alarmのシーケンス出力ピンに接続します。これにより、アラームは1秒間継続します。

7 [Display] [image] [Note Pad] を選択し、テンプレートを削除します。TURN OFF INSTRUMENTS!というメッセージを追加します。必要に応じてNote Padのサイズを調整します。

8 メイン・ウィンドウに移動します。 [Device] [image] [Call]をクリックし、Callのオブジェクト・メニューで[Select Function]をクリックし、[alarm]を選択します。プログラムを実行してテストします。UserFunction alarmの詳細ビューは次のように表示されます。

9 alarmウィンドウに戻ります。Color Alarm表示とNote Padを選択します。ポップアップの[Edit]メニューをオープンし、[Add To Panel]を選択します。パネル･ビューで、オブジェクト･ハンドル、Align関数、またはオブジェクトの移動を使って、オブジェクトのサイズと配置を調整します。グリッドへのスナップが必要な場合は、[PanelDrawGrid]プロパティをTrueに設定します。Note Padのオブジェクト・メニューをオープンし、[Properties]をクリックします。次のように設定します。

プロパティ | 説明
ShowTitleBar | False
EditEnabled | False
Border | [Raised border]に変更します。

10 [Color Alarm]も[Raised Border]に変更します。

11 UserFunction内の空き領域をクリックして、[Properties]ダイアログ･ボックスを表示し、[ShowPanelonExecute]を選択します。[ShowTitleBar]プロパティをFalseに設定します。[Panel Title]を[alarm]に変更します。alarmをアイコン化します。

12 メイン・ウィンドウに移動し、Callオブジェクトを削除します（VEEはまだ関数alarmをメモリに保持しています。この関数をもう一度編集したい場合は、 [Edit] [image] [Edit UserFunction] を選択するか、アイコンをダブルクリックします）。

13 alarm関数を繰り返し呼び出す関数を作成します。

14 [Device] [image] [UserFunction] を選択し、UserFunctionの名前をwarningに変更します。

15 [Flow] [image] [Repeat] [image] [Until Break]を選択します。

16 [Device] [image] [Call]を選択し、Function Nameをalarmに変更し、シーケンス入力ピンをUntil Breakのデータ出力ピンに接続します。

alarmをオフにする必要があるかどうかをオペレータに尋ねるためのCheck Boxオブジェクトを追加します。

17 [Data] [image] [Toggle Control] [image] [Check Box]を選択します。[Check Box Properties]ボックスをオープンし、[Title]プロパティを Turn off alarm?に変更し、[Scaled]プロパティを選択し、それをTrueに設定します。[InitializeAtPreRun]を選択して、プロパティ値が[False]であることを確認し、名前の[TitleFont]プロパティのサイズを大きくします。Callのシーケンス出力ピンをCheck Boxのシーケンス入力ピンに接続します。

これにより、Check Boxを使用する入力オブジェクトが作成されます。オペレータがこのボックスをクリックした場合、Xが表示され、1が出力されます。 そうでない場合は0が出力されます。この出力をIf/Then/Elseオブジェクトでテストすると、次に何を行うかをVEEに指示できます。

18 [Flow] [image] [If/Then/Else] を選択し、Toggleの右側に配置します。Toggleのデータ出力をIf/Then/Elseオブジェクトのデータ入力Aに接続します。If/Then/Elseオブジェクトの式を編集して、a == 1にします（｢等しい」を意味する記号は=でなく==です）。端子Aが1を保持している場合は、Then出力が起動され、そうでない場合は、Else出力が起動されます。

Toggleの出力をIf/Then/Elseの入力に接続します。

19 [Flow] [image] [Repeat] [image] [Break] を選択し、次のようにIf/Then/ElseオブジェクトのThen出力に接続します。

20 Check Boxオブジェクト（Turn off alarm?）の右側をクリックして選択します。ポップアップの[Edit]メニューをオープンし、[Add To Panel]を選択します。Check Boxを囲むようにパネル・ビューのサイズを調整します。

21 warning UserFunctionの[Properties]ボックスをオープンし、[ShowPanelonExecute]を選択し、[ShowPopupPanelTitle]をFalseに設定します（タイトルはオペレータにとって意味がないため）。

22 メインに移動し、 [Device] [image] [Call]をクリックし、オブジェクト・メニューをオープンし、[Select Function]をクリックしてから、[warning]を選択します。Callオブジェクトを画面の上部中央に移動します。メイン・ウィンドウをアイコン化します。

23 デフォルトでは、alarmとwarningの両方のパネルが画面の中央に表示されるので、alarmは、alarmを停止するためのチェックボックスの上で点滅します。画面上の位置は両方ともロックされないので、ポップアップ・パネルを新しい場所にクリック・アンド・ドラッグすると、画面上の位置を変更できます。ただし、alarmパネルが点滅していると、位置が変更しづらくなります。その代わりに、パネルの端をクリック・アンド・ドラッグします。必要であれば、ツールバーのstopボタンを使用して、プログラムを停止します。プログラムを実行します。

2つのパネルを次に示すように配置した場合は、Turn off alarm?プロンプトの横のボックスをクリックするとプログラムを停止できます。


例題11-4：ActiveXコントロールの使用法

この例題では、VEE内でのActiveXコントロールの使用法を示します。ほかのアプリケーションのActiveXコントロールをVEEプログラムに組み込むことができます。この例題では、ProgressBarコントロールを組み込み、ループを使用して、進行状況表示バーを0%から100%完了まで表示します。一般的な原則は、他のActiveXコントロールにも当てはまります。

1 [Device] [image] [ActiveX Control References...]をクリックし、[Microsoft Windows Common Controls 6.0]を選択します。[OK]をクリックします。

2 [Device] [image] [ActiveX Controls] [image] [ProgressBar]をクリックします。ProgressBarオブジェクトのサイズを少し大きくします。オブジェクト・メニューをオープンし、オブジェクト名がProgressBarであることを確認します。ActiveXコントロール・オブジェクトを参照する宣言された変数が自動的に作成されています。ほかの変数やデータ入力と同じように、ProgressBarという名前をFormula式の中で使用できます。

3 [Device] [image] [Formula & Object Browser]をクリックし、[ActiveX Objects]、[Library: MSComcltLib]、[Class: ProgressBar]、[Members: Value]を選択し、[Create Set Formula]をクリックします。オブジェクトをメイン・ウィンドウの上部中央に配置します。

4 0から100までループさせ、完了済みの割合をパーセントで表示させるために、For Rangeオブジェクトを追加します。 [Flow] [image] [Repeat] [image] [For Range]を選択し、ProgressBarの下に配置し、 [From:]を[0]に、[Thru:]を[100]に、[Step:]を[10]に設定します。For Rangeの出力をProgressBarの入力端子Valueに接続します。

5 ProgressBarが更新されていくのを確認できるように、プログラムの実行速度を遅くするには、 [Flow] [image] [Delay] を選択し、For Rangeオブジェクトの右に配置します。 .2に設定します。ProgressBarのシーケンス出力ピンをDelayオブジェクトのシーケンス入力ピンに接続し、プログラムを実行します。

注記

ActiveXコントロールのオブジェクト・メニューには[Properties]と[Control Properties]があります。[Properties]メニューではオブジェクトのVEEプロパティを設定します。[Control Properties]は、ActiveXコントロールが提供するもので、ActiveXコントロールの種類ごとに異なる可能性があります。

VEEに付属しているコントロールのサンプルを調べて、その動作をよく理解しておいてください。その後、VEEのユーザ・インタフェース機能を拡張するために利用できる市販のコントロールや表示を探してみてください。

下図は、MS ChartのコントロールをVEEに組み込んだ例を示します。 [Device] [image] [ActiveX Controls References] ダイアログ・ボックスでコントロール・ライブラリを選択したら、[Function & Object Browser]または[Declare Variable Object]を使用して、コントロールのプロパティとメソッドを識別できます。


例題11-5：ステータス・パネルの作成方法

この例題では、サイコロのプログラムからの関数を使用して、ステータス・パネルを作成する方法を習得します（サイコロのプログラムの例題は「例題11-1: メニューを使用する方法」にあります）。ステータス・パネルは通常、多数のテストがあり、返ってきた結果を表示したい場合に、Sequencerオブジェクトといっしょに使用します。ここでは関数random()を使用します。この関数は、デフォルト設定を使用する場合、0から1の間の実数値を返します。

1 [Device] [image] [Sequencer]をクリックします。トランザクション・バーをダブルクリックし、デフォルト名test1を使い、[FUNCTION:]フィールドをrandom()に置き換えることで、テストを設定します。次を参照してください。

2 test2という名前で2番目のテストも同様に設定します。

3 [Sequencer Properties]ボックスをオープンし、[Logging]タブを選択し、[Logging Mode]で[Log Each Transaction To: logTest(thisTest)]を選択してから、 [OK]をクリックします。

Sequencerが各トランザクションを実行すると、各テストに対して"thisTest"という名前のレコードが作成されます。レコードのフィールドは、同じタブで設定できます。次に"logTest"という名前（または別の名前）を持つUserFunctionを作成できます。Sequencerは、実行された各トランザクションの最後にレコードthisTestを持つ、LogTest() UserFunctionを呼び出します。この方法で、ステータス・パネルを更新することができます。

4 [Device] [image] [Function & Object Browser] [image] [Built-in Functions] [image] [Panel] [image] [showPanel] を選択し、Sequencerの上に配置します。入力ピンを削除し、パラメータを"logTest", 420, 180に編集し、最後の2つのパラメータはそのままにしておきます。showPanelからのResult出力ピンをSequencerのシーケンス入力ピンに接続します。成功すると、showPanelは1を出力します。

LogTestは、UserFunctionの名前です。他の2つのパラメータは、画面の左上隅を基準としたXおよびY座標です。これにより、VEEに表示する際のUserFunctionパネルの配置場所を指示しています（パネルの寸法は、この例には含まれていません）。

5 下図に示すように、logTestという名前のUserFunctionを作成します。入力ピンを追加します（ログとして記録されたRecordが入力となります）。Logging AlphaNumericをパネル上に配置し、それを入力ピンに接続します。Logging AlphaNumericを選択し、 [Edit] [image] [Add to Panel]を選択します。パネル・ビューで、サイズと配置場所を調整します。表示とパネルのタイトル・バーの選択を解除します。

次の図は、プログラム実行後のパネル・ビューを示します。この図から、データがどのように表示されるかがわかります。

6 [Function & Object Browser]ボックスからhidePanelを選択し、[Flow] [image] [Confirm(OK)]を選択します。hidePanel()パラメータをlogTestに変更します。入力ピンを削除します。次に示すようにオブジェクトを接続します。

7 プログラムを実行します。次のように表示されます。

要約すると、showPanelオブジェクトはUserFunctionパネルを表示しますが、UserFunctionを呼び出しません。Sequencerは、logging関数を介してUserFunctionを2回呼び出し、各呼び出しによってパネルを更新します。次に、オペレータが[OK]を押すと、パネルが非表示になります。この例ではOKオブジェクトを使用してhidePanelオブジェクトをトリガしますが、適切なタイミングで動作するようにプログラムの別の場所に配置することもできます。プログラムをステップ実行して、ステータス・パネルが表示され、Test1とTest2の結果で更新されてから非表示になるのを確認します。


例題13-1：Agilent VEE Webブラウザを使った練習セッション

この練習では、リモート・ユーザがサーバ側のシステム上でSolitaire.vee プログラムを表示するWebセッションを紹介します。この場合、プログラムにはエラーが1つあるため、リモート・ユーザからその解決方法の問い合わせがあります。

1 VEEを起動します。 [File] [image] [Default Preferences] [image] [Web Server] ダイアログ・ボックスを選択し、[Enable Server]をクリックします。デフォルトの設定を使用します。リモート・ユーザが表示する Solitaire.vee プログラムを開きます。サーバ側のネットワーク・ブラウザを実行します。

2 リモート・ユーザに連絡し、http://Server5 と入力してWeb経由でサーバ側のシステムに接続するように知らせます（http://Server5は、実際に使用しているコンピュータ名に置き換えてください）。

3 リモート・ユーザがURLとして http://Server5を入力すると、リモート・ユーザのブラウザにサーバ側のVEE Webサーバ・ホームページが表示されます（表示内容については、図301を参照してください）。

4 リモート・ユーザは、最初にVEEプログラム全体を表示することにしました。リモート・ユーザは、VEE Webサーバ・ホームページで[Main Detail] [image] [View]をクリックします。ブラウザにビューが表示されます。

上の図は、VEEのメイン・プログラムを示します。

注記

この練習の Solitaire.vee プログラムには1つのエラーがありますが、このエラーは、VEE プログラム・サンプルにはありません。このプログラムを表示する場合は、 [Help] [image] [Open Example...] [image] [Games] [image] [Solitaire.vee].を選択してください。

5 リモート・ユーザは、ブラウザで[戻る]をクリックしてVEE Webサーバ・ホームページを表示し、[Last Error Message]を選択します。ブラウザにエラー・メッセージが表示されます。

VEE エラー・メッセージにはUserFunction  makeAMoveが示されています。

6 リモート・ユーザは、再びVEE Webサーバ・ホームページに戻り、[Detail View of UserFunction]をクリックして、UserFunction名のmakeAMoveを入力します。下に示すように、UserFunction makeAMoveがブラウザに表示されます。

リモート・ユーザは、VEEプログラム内のエラーを確認できます。上の図に示すように、JCTオブジェクトの入力ピンが接続されていません。ここで、リモート・ユーザは、Solitaire.vee のトラブルシューティングに参加して、エラーを解決します。Webを介した同様の共同作業を行うことにより、リモート・ユーザと協力して作業を行ったり、合同でプログラムを開発したりすることができます。

関連項目

Callable VEE ActiveX Automation Server、Agilent VEEを使ったWebモニタ管理、Agilent VEEのデータをリモート・ユーザに提供する方法、リモート・ユーザがサーバ側システムのAgilent VEEにアクセスする方法、Agilent VEE Webサーバ・ページの表示方法、Webを介して表示されるプログラムへのアクセスを制限する方法、[Web Server]ダイアログ・ボックス


一般的なプログラミング技術

以下の例題では、VEEの概念を実践します。練習問題は、いくつかのカテゴリに分かれています。

この例題を使用する場合は、自分の解答を作成してから、記載されている解答と比較してください。指定された作業をプログラミングする方法は多数あるため、自分の解答が問題の条件を満たしていれば、有効な解法を開発できたことになります。ただし、実行時間が短く、使いやすいプログラムの方が一般に優れた解法です。解答には、それぞれのキー・ポイントが簡潔にまとめられています。

一般的なプログラミング技術

文字列とグローバルの使用法

最適化の手法

UserObject

Agilent VEE UserFunction

オペレータ・パネルとポップアップの作成

ファイルの扱い方

レコード

テスト・シーケンスの作成方法


りんごのかご入れ

かごにりんごを入れて10ポンドにするには何個のりんごが必要かを調べます。何個のりんごでかごがいっぱいになるかを数えるVEEプログラムを作成してください。りんご1個の重さは0～1ポンドの範囲内であるとします。

ヒント

このプログラムは、10個以下のオブジェクトを使って作成できます。次の中から選択してください。

Start

Until Break

random()関数

Accumulator

Break

Real64

Conditional（A>=B）

Stop

Counter

If/Then/Else

Alphanumeric

注記

このマニュアルに記載されている練習問題やプログラミング例で使用したVEEプログラムの多くは、VEEに付属しています。[Help] [image] [Open Example...] [image] [Manual] [image] [UsersGuide]を選択してください。

「りんごのかご入れ」解答1

キー・ポイント

最適な解法:

プログラムのパフォーマンスを上げるには、できるだけ使用するオブジェクトの数を少なくします。この解答では、6個のオブジェクトを使用しています。このプログラムは、次に示すように、10個のオブジェクトを使って実装することもできます。

Until BreakとBreakオブジェクト:

これらのオブジェクトは、条件の判定を必要とするループに使用します。この例のループは、りんごの総重量が10ポンドより大きくなったときに、停止する必要があります。

Accumulator:

Accumulatorを使って積算合計を保持します。

Counter:

Counterを使って積算カウントを保持します。この例のCounterは、かごの中のりんごの数を追跡するために使用されます。総重量が10を超えた場合、If/Then/ElseオブジェクトのThenピンだけが起動して、Counterから正しい答が得られます。

「りんごのかご入れ」解答2

次に、もう少しオブジェクトを使った解答例を示します。

キー・ポイント

Start:

このプログラムにStartオブジェクトを使用するのは冗長です。 なぜなら、メイン・メニュー・バーの[Run]ボタンを使用できるからです。Startを使用するのが適切なのは、画面に2つのプログラムがあり、それらを互いに独立に実行する必要がある場合です。また、プログラムにフィードバック・ループがあり、どこで実行を開始するのかを定義する必要がある場合も、Startを使用するのが適切です。

Shift Register:

Shift Registerは、以前の出力値にアクセスするために使用します。解答2では、Counterは、りんごの重さを測定する前にりんごの積算カウントを保持しているため、総重量が10を超えた場合は、そのカウントから1だけ減算する必要があります。

Gate:

Gateは、別の操作が発生し、それがシーケンス・ピンをアクティブ化するまで、出力を保持するために使用します。この図では、条件A<=10はすでにTrueではなくなっており、If/Then/ElseオブジェクトのEｌseピンがゲートをアクティブ化します。


数の判定

「数の判定」ステップ1

ユーザが0～100の数を入力できるプログラムを作成します。 その数を50と比較し、大きいか等しい場合はその数を表示します。その数が50より小さい場合は、ポップアップ・ボックスに"Please enter a number between 50 and 100."というメッセージを表示します。

ヒント

このプログラムは、5個以下のオブジェクトを使って作成できます。次の中から選択してください。

Start

Int32

Slider

Real64

If/Then/Else

Formula

Gate

Text

Junction

Alphanumeric

Message Box

解答 - 「数の判定」ステップ1

5つのオブジェクトを使った練習「数の判定」の解答例を次に示します。

「数の判定」ステップ2

5つのオブジェクトを使ったモデルが動作し、Message Boxがポップアップを生成したら、Gateオブジェクトを使用しないで、4つのオブジェクトでプログラミングしてみてください。

解答 - 「数の判定」ステップ2

4つのオブジェクトを使った練習「数の判定」の解答例を次に示します。

キー・ポイント

Auto Execute:

Int32 Sliderなどのすべての入力オブジェクトは、[Properties]ダイアログ・ボックスに[Auto Execute]オプションを持っています。これを選択した場合は、[Start]または[Run]ボタンを押さなくても、オブジェクトの値が変わるごとに、オブジェクトが動作します。

式の統合:

If/Then/Elseオブジェクトの式（A>=50)*A は、評価されると、A>=50がTRUEの場合は1*Aになり、FALSEの場合は0になります。したがって、この式がTRUEの場合はAがThenピンに出力され、FALSEの場合は0がElseピンに出力されます（非0と評価される式はすべてTRUEと見なされ、その値がThenピンに伝達されます）。

「数の判定」ステップ3

オブジェクトを3つだけ使った解法を作成してください。

ヒント:Formulaオブジェクト内で3項式を使用します。その構文は、(<式> ?<TRUEの場合の出力値> : <FALSEの場合の出力値>)です。たとえば、A < 10がTRUEと評価される場合は、Aの値をResultピンに出力し、そうでない場合は、文字列"FALSE"をResultピンに出力するとします。この場合は、3項式(A<10 ? A : "FALSE")を使用します。

解答 - 「数の判定」ステップ3

3つのオブジェクトを使った練習「数の判定」の解答例を次に示します。

注記

これは、自動エラー検出機能を持つ[Real64 Input]ダイアログ・ボックスを使っても実現できます。ただし、オペレータが有効な数を入力するまで、プログラムは完了できません。


乱数の収集

100個の乱数を生成し、それらを表示するプログラムを作成します。それらの値の生成と表示にかかった合計時間も記録してください。

ヒント

このプログラムは、6個以下のオブジェクトを使って作成できます。次の中から選択してください。

Start

For Range

Until Break

randomseed()関数

random()関数

Collector

Formula

Set Values

Alloc Int32

Logging AlphaNumeric

Strip Chart

Meter

Date/Time

Timer

Now()

Break

Do

ヒント: パフォーマンスを上げるには、最初にCollectorオブジェクトを使って配列内にデータを収集したうえで、データを一度だけ表示に送信します。パフォーマンスの違いに注意してください。

「乱数の収集」解答

下の図に、練習「乱数の収集」の解答例を示します。

キー・ポイント

Logging AlphaNumericとAlphaNumeric:

連続する入力（ScalarとArray 1Dのどちらか）を以前の値に続けて表示する場合は、Logging AlphaNumericを使用します。一度（直前）の実行のデータだけを単一の値、Array 1D、またはArray 2Dとして表示する場合は、AlphaNumericを使用します。Logging表示は、インデックス値のない配列であり、AlphaNumeric表示は、省略可能なインデックス番号と値を持つ同じ配列です。

時間測定のピン:

Doオブジェクトは、どのオブジェクトを最初に実行するかを制御します。プログラム終了までの時間は、For Countオブジェクトのシーケンス出力ピンを使って測定されます。 このピンは、ループ内のすべてのオブジェクトの実行が終わるまで起動されません。


乱数生成プログラム

「乱数生成プログラム」ステップ1

外部入力を必要とする乱数生成プログラムを作成します。乱数は、ストリップ・チャートに表示してください。次の項目を入力できる必要があります。

乱数の最大値

乱数の最小値

生成する乱数の数

解答 - 「乱数生成プログラム」ステップ1

練習「乱数生成プログラム」ステップ1の解答例を次に示します。

キー・ポイント

Sliderオブジェクトのレイアウト:

Sliderオブジェクトの画面イメージについては、[Properties]ボックス内の[Layout]にある[Horizontal}をクリックすると、垂直または水平の形式を選択できます。

XY Trace:

連続して生成されるデータの最近の履歴を表示するには、XY Traceを使用します。

「乱数生成プログラム」ステップ2

乱数を配列に収集します。移動平均を計算し、それを乱数とともに表示してください。

解答 - 「乱数生成プログラム」ステップ2

練習「乱数生成プログラム」ステップ2の解答例を次に示します。

MovingAvg(x, numPts):

[Function & Object Browser]の[Data Filtering]カテゴリにあるこのオブジェクトは、入力データを平滑化します。対象のデータ点より前の指定した数のデータ点の平均を使って、平滑化されたデータ・ポイントが計算されます。


マスクの使用法

「マスク・テスト」ステップ1

調整可能な量のノイズを伴う50 Hzの正弦波を作成します。正弦波のノイズが次の制限内にあるかどうかを判定してください。

(0,0.5)

(2.2m, 1.2)

(7.2m, 1.2)

(10.2m, 0.5)

(20m, 0.5)

正弦波が制限を超えた場合は、その点を赤いひし形でマークします。

ヒント: 線の表示フォーマットは、ドットやひし形に変更できます（[Properties]ダイアログ・ボックスで、各トレース入力の[Traces]タブを選択して、線の種類を実線、破線、点のみなどに変更できます。 また、[Point Type]には、単なる点、ひし形、四角などの形状があります）。Comparatorオブジェクトが使用できる可能性もあります。

解答 - 「マスクの使用法」ステップ1

ステップ1の解答を次に示します。

「マスクの使用法」ステップ2

失敗の割合を計算して表示するように、プログラムの機能を拡張してください。

解答 - 「マスクの使用法」ステップ2

ステップ2の解答を下に示します。

キー・ポイント

マスク:

マスクを作成するには、 [Data] [image] [Constant] [image] [Coord] オブジェクトを使用します。 これを5つの配列要素用に設定します。座標の組をカンマで区切って入力すると、VEEによって丸かっこ()が追加されます。x値は、波形のタイム・スパンが20ミリ秒であることによって選択されています。また、Waveform (Time) 表示は、Coordデータ型を入力として受け入れることに注意してください。 [Data] [image] [Build Data] [image] [Arb Waveform] オブジェクトを使用することもできます。 このオブジェクトは、Waveform内の点の数を指定することにより、CoordをWaveformデータ型に変換します。

Comparator:

このオブジェクトは、テスト値を参照値と比較します。つまり、波形と座標の配列を比較できます。Failuresピンは、失敗したデータ点の配列を出力します。 それを表示に送信し、異なる種類の線や色で強調表示できます。

TotSize:

このオブジェクトは、単に、配列内の要素の数を出力します。この配列には失敗の数が保持されているので、その数を元の波形の要素の総数256で除算し、100を乗算すると、失敗の割合(%)を得ることができます。

Formula:

A/256*100は、失敗の割合(%)を計算する式です。 Function GeneratorとNoise Generatorは、256の点を出力するように設定されています。


文字列とグローバルの操作

文字列のオブジェクトや関数を使用して、<空白> <名> <空白> <姓>という形式のユーザ名を受け付けるプログラムを作成してください。ユーザが名前を入力した後は、「名」を外して「姓」だけを出力します。文字列をグローバル変数に保管します。Formulaオブジェクトを使用して、文字列を取得します。

解答 - 文字列とグローバルの操作

練習「文字列とグローバルの操作」の解答例を下に示します。

キー・ポイント

文字列のオブジェクトと関数:

まず、StrTrim(str)は、名前の先頭と末尾からすべてのスペースとタブを削除します。StrPosChar(str1, " ")は、名と姓の間にあるスペースのインデックスを生成します。StrLen(str)は、文字列の長さを出力します。これらの操作は、文字列のオブジェクトを使って実行されましたが、Formulaオブジェクト内で文字列の関数を使って実行することもできます。

Formulaオブジェクト:

StrFromThru(A,B+1,C-1)では、入力Aから文字列を受け取り、入力Bのスペースのインデックスに1を加算し、入力Cの文字列の長さから1を減算しています（インデックスは0から始まることに注意してください）。

Set Variable:

lastnameという名前のグローバル変数を簡単に設定できることに注目してください。 この後、この変数は、任意の式フィールド（この例では、Formulaオブジェクト）で参照できます。

最適化:

3つの式は、組み合わせて1つの式にできます。strTrim()の出力は何回か使用されるため、1つのままにしておく方が適切ですが、ほかの式は組み合わせて1つの式にすると、処理速度が上がります（ただし、多少読みにくくなります）。


最適化の手法

この例題では、2つの異なる方法でVEEプログラムを構築し、その実行速度の差に注目します。

「最適化の手法」ステップ1

0～710（ステップ10）の範囲でsin関数とcos関数の値を求めるプログラムを作成してください。関数の結果は、X vs.Y表示に出力します。プログラムの実行にかかる時間を測定するには、Timerオブジェクトを使用します（[Trig Mode]のデフォルトを[Radians]に設定します）。

解答 - 「最適化の手法」ステップ1

ステップ1の解答を下に示します。

「最適化の手法」ステップ2

最初のプログラムにあるすべてのオブジェクトをクローンします。範囲を配列内に収集するように新しいセットを変更します。これで、sinとcos関数は点の配列に対して実行され、一度だけプロットされます。どれだけ時間が節約されるかに注目してください。

解答 - 「最適化の手法」ステップ2

ステップ2の解答を下に示します。

キー・ポイント

配列を使った最適化:

配列を使用したことで、ステップ1とステップ2の間でパフォーマンスが向上していることに注目してください。できるかぎりスカラ値ではなく配列を使用して、結果の解析や表示を行ってください。

X vs. Y表示:

この例では、WaveformやXY表示のかわりに、この表示を使用しています。 それは、XとYにデータが分かれているからです。


ランダム・ノイズUserObject

「ランダム・ノイズUserObject」ステップ1

ランダム・ノイズ波形を生成するUserObjectを作成してください。ノイズの波形とノイズ・スペクトルをUserObjectの外に表示します。UserObjectの外に、振幅、ポイント数、インターバル（タイム・スパン）、DCオフセットの各コントロールを用意します。

注記

UserObjectの中で仮想ソースを使用しないでください。Use objectの作成には、Build WaveformやRandomなどのオブジェクトを使用します。

解答 - ランダム・ノイズUserObject

「ランダム・ノイズUserObject」の解答例を下に示します。

解答 - 「ランダム・ノイズのNoiseGenオブジェクト」

NoiseGen UserObjectの回答例の1つを次に示します。

キー・ポイント

UserObject:

UserObjectは、本質的に、ユーザがカスタマイズしてVEEに追加するオブジェクトです。

Build Waveform:

このオブジェクトは、振幅値のReal配列とタイム・スパン（yデータがサンプリングされる秒単位の周期）からWaveformデータ型を作成します。


UserFunctionの使用法

「UserFunction」ステップ1

スライダから振幅値（0～1）を受け入れ、ノイズ波形を返す、NoiseGenという名前の関数を作成してください。

次のものは使用しないでください。

Virtual Source

For Count

For Range

次のものを使用してください。

Formula

Ramp

Build Waveform

ヒント: randomize(array, -a,a)を使用します。 ここで、配列の要素は256であり、aは振幅です。この関数を呼び出す簡単なメイン・プログラムを構築して、それが正しく機能していることを確認してください。

解答 - 「UserFunction」ステップ1

ステップ1の解答を下に示します。

キー・ポイント

Ramp():

256の点を持つ配列を生成するために、randomize()のパラメータ・リスト内でramp()関数を使用しています。

Build Waveform:

デフォルトのタイム・スパンは20ミリ秒であり、このオブジェクトに配列を送信するだけで、波形を構築できます。

「UserFunction」ステップ2

同じプログラム内で、最初の関数NoiseGenを呼び出すAddNoiseという名前の別の関数を作成します。AddNoiseは、NoiseGen関数のノイズ波形を正弦波に加算するものです。AddNoiseは、NoiseGenの振幅と正弦波の2つの入力を持つ必要があります。また、結果の出力を1つ持ちます。

ノイズ振幅用のスライダを持つ簡単なメイン・プログラムを構築し、ノイズの追加先の波形として [Virtual Source] [image] [Function Generator (sine wave, Freq = 100 Hz)] を選択します。結果の波形を表示します。

解答 - 「UserFunction」ステップ2

ステップ2の解答を下に示します。

「UserFunction」ステップ3

同じプログラム内で、今回はFormulaオブジェクトから再びAddNoise関数を呼び出し、その結果の絶対値を受け取ります。その絶対値波形を同じ表示上に表示します。次に、AddNoise関数を編集する準備をします。[Debug] [image] [Show Data Flow]をオンにします。AddNoiseウィンドウを開いたまま、プログラムを実行します。こうするとデバックにたいへん便利であることに注目してください。

解答 - 「UserFunction」ステップ3

ステップ3の解答を次に示します。

「UserFunction」ステップ4

スライダでAmplitudeという名前のグローバル変数を設定するように、プログラムを変更します。NoiseGen関数でそのグローバルを使用します（したがって、NoiseGenに入力ピンは必要なくなります）。プログラムが正しく実行されるようにします。このファイルを uflab.veeという名前で保存します。

解答 - 「UserFunctionの使用法」ステップ4

ステップ4の解答を次に示します。

ヒント:Call AddNoiseとFormulaオブジェクトはグローバルAmplitudeを使用するので、それらのオブジェクトは、どちらもSet Amplitudeオブジェクトの実行後に実行される必要があります。シーケンス・ピンをSet AmplitudeからCall AddNoiseに、またCall AddNoiseからFormulaに接続すると、これらのオブジェクトが必要な順序で実行されます。


UserFunctionのライブラリのインポートと削除

uflab.vee の関数をインポートする簡単なプログラムを作成します。ノイズを追加する関数を呼び出し、ライブラリをプログラムによって削除します。Callオブジェクトのオブジェクト・メニューで[Select Function]選択肢を使用します。

ヒント:Import Libraryオブジェクト・メニューの[Load Lib]をクリックして、指定したライブラリを手動でロードし、CallでSelect Function機能が使用できるようにします。

解答-プログラムによるライブラリのインポートと削除

ライブラリをプログラムにより削除するための解答例を次に示します。

キー・ポイント

Select Function:

この選択により、選択した関数に適切な入力ピンと出力ピンが設定されます。

UserFunctionの編集:

UserFunctionのライブラリをプログラムによりインポートすると、UserFunctionを編集することができません。UserFunctionを表示したり、デバッグのためにブレークポイントを設定したりすることはできます。インポートしたUserFunctionを編集したい場合は、Merge Libraryコマンドを使用します。

変数設定の注意事項:

ある関数でグローバル変数を使用したら、他のプログラムでその関数を使用するときにそのグローバルを忘れずに作成する必要があります。入力と出力を明示的に作成するほうが、追跡が容易であるという利点があります。


オペレータ・パネルとポップアップの作成

「オペレータ・パネルとポップアップの作成」ステップ1

オペレータに数字の入力を求めるパネルを作成してください。オペレータと対話するためのUserObjectを作成します。オペレータに、AとBの2つの入力を要求します。両方の入力を表示に送信します。[Show On Execute]をチェックしてUserObjectを使用すると、パネルを表示できます。

解答 - 「オペレータ・パネルとポップアップの作成」ステップ1

下の図は、解答の詳細ビューです。

下はプログラムが実行されたときに表示されるパネルです。

キー・ポイント

UserObjectのプロパティ:

[UserObject Properties]ダイアログ・ボックスで、[Pop-Up Panel]を選択し、[Show Panel On Execute]をクリックしてオンにします。 [Pop-Up Panel] [image] [Panel Title]で名前を"Enter A or B"に変更します。

「オペレータ・パネルとポップアップの作成」ステップ2

2つの数が異なる場合は、 AとBの両方を表示するかわりに、オペレータに AとB のどちらを表示するかをたずねてください。2つの値の入力を求めた後、 AとB の値が等しい場合は、その値を表示します。 AとB の値が異なる場合は、表示する値の選択をオペレータに求めます。オペレータの選択に基づいて、 AまたはB を表示します。

ヒント: [Show Panel on Execute]を設定したポップアップ・パネルを持つ別のUserObjectを追加し、そこでオペレータに値をたずねます。

解答 - 「オペレータ・パネルとポップアップの作成」ステップ2

下に示すのは、AとBが異なる数値だった場合にオペレータに選択を求めるUserObjectです。

AとBのどちらを表示するかをオペレータに問い合わせる2番目のポップアップ・パネルを次に示します。

キー・ポイント

Gate:

Gateオブジェクトは、2つの数が等しい場合のみ値を送信します。

ジャンクション:

JCTオブジェクトは、オブジェクトAlphanumericに対する複数の入力を可能にします。JCTオブジェクトは、配線によるORオブジェクトです。

オブジェクト・リストのメニュー:

2つの選択肢とリストが配置されるように編集された [Data] [image] [Selection Controls] [image] [List] オブジェクトの使用法に注意してください。この設定により、テキストAまたはBが出力されます。序数値（0または1）が必要な場合は、かわりにListオブジェクトの序数データ出力を使用します。

「オペレータ・パネルとポップアップの作成」ステップ3

オペレータが数を入力しなかった場合に、エラー・メッセージを生成します。2つの数が異なる場合に、AとBのどちらを表示するかをオペレータにたずねる2つ目のUserObjectにエラーを追加します。オペレータが10秒以内にAかBを選択しなかった場合は、エラーを生成します。

解答 - 「オペレータ・パネルとポップアップの作成」ステップ3

オペレータが10秒以内にAかBを選択しなかった場合にエラーを生成するように変更されたUserObjectを次に示します。

キー・ポイント

Exit UserObject:

ユーザが10秒以内に応答した場合、Delayオブジェクトがまだ実行を完了していなくても、このオブジェクトはUserObjectを終了させます。

DelayとRaise Error:

10秒経つとDelayオブジェクトがRaise Errorオブジェクトを起動し、Raise Errorオブジェクトはプログラムの実行を休止して指定されたエラー・メッセージを表示します。エラーを起こしたオブジェクトの周りには赤の輪郭線も表示されますが、メイン・メニュー・バーの[Stop]または[Run]ボタンをクリックすると消えます。

OKとDelay:

AnotB内の2つのスレッドは独立しているため、 OK と Delay の両方が同時に実行されることに注意してください。


ファイルとの間のデータの移動

ファイルに現在の時刻を書き込むVEEプログラムを作成します。100個の乱数を生成し、そのファイルに書き込みます。それらの平均と標準偏差を計算し、次の形式でファイルの末尾に追加します。

Mean:xxxxxx

Std Dev:yyyyyy

次に、ファイルから平均と標準偏差だけを読み取ります。

解答 - ファイルとの間のデータの移動

「ファイルとの間のデータの移動」の解答例を次に示します。

キー・ポイント

配列の生成

Formulaオブジェクト内でrandomize(ramp(100,0,1), 0, 1) を使用して、100個の乱数の配列を作成します。ramp()関数は、1次元配列を生成し、それをrandomize()関数に渡します。次に、randomize()が0～1の乱数値を生成します。

タイム・スタンプ:

To Fileオブジェクトのトランザクション1に対する[I/O Transaction]ダイアログ・ボックスの式フィールドで、now()関数が使用されています。フォーマットをTIME STAMP FORMATに変更した場合、ダイアログ・ボックスには、時刻を保存する方法を指定するための追加ボタンが表示されます。

1行への2つの値の記録:

To Fileオブジェクトの3番目と4番目のトランザクションでは、定数のText文字列の後にReal値を保存します。たとえば、3番目のトランザクションでは、 [I/O Transaction] ボックスの式フィールドに"Mean: ",Bと入力します（平均値が B 入力ピンにある場合）。

ファイルからの値の抽出:

平均と標準偏差を取得するには、まず、読み取りポインタを先頭に置くため、EXECUTE REWINDを送信します。次に、READでNULLを適切なフォーマットで使用して、タイム・スタンプとReal配列を読み飛ばします（これで、読み取った値は出力端子に入らずに捨てられます）。最後に、ファイル内の最後の2行を文字列として読み取ります。

ジャンクション:

複数の出力を単一の入力に接続する場合は、 [Flow] [image] [Junction] オブジェクトを使用します。 この例では、 mean とsdev の出力を Logging AlphaNumeric 表示に接続します。


レコードの操作

「レコードの操作」ステップ1

3つのフィールドを持つレコードを構築し、そのレコードに整数、現在の時刻の文字列、および4つのReal要素を持つ配列を1つずつ格納します。フィールドには、それぞれint、daytime、rarryという名前を付けます。このレコードと、0～1の乱数と波形を保持する別のレコードをマージします。これらのフィールドには、randとwaveという名前を付けます。

解答 - 「レコードの操作」ステップ1

結果のレコードには5つのフィールドがあります。

キー・ポイント

タイム・スタンプ:

このプログラムのためのタイム・スタンプを作成するには、To Stringオブジェクト内でnow() 関数を使用します。その後、フォーマットを指定します。

データ定数の配列としての設定:

[Data] [image] [Constant] メニューにある任意のデータ型は配列にできます。 それには、[Properties]を選択し、[Configuration]の[1D Array]を選択します。ここでサイズを入力できます。 または、値を入力してEnterキーを押すと、続けて値を追加できます。

フィールドの名前:

Build Recordオブジェクトの入力端子の名前を変更すると、レコードの特定のフィールドにint、rand、waveなどの名前を付けることができます。

デフォルト値コントロール入力:

Default Valueコントロール・ピンを追加すると、Record Constantは優れた対話型表示オブジェクトとなります。Record Constantは、自分が受信したレコードで自分を自動的に設定します。

「レコードの操作」ステップ2

Formulaオブジェクト内で条件式を使用して、レコード内の乱数を判定し、値またはテキスト文字列のどちらかを表示します。値が0.5より小さい場合はその乱数値を表示し、そうでない場合は、テキスト文字列"More than 0.5"を出力します。次に、時刻と波形だけを抽出します。

ヒント:時刻と波形を抽出するには、Formulaオブジェクトを使用しません。このレコードはAlphaNumericオブジェクトを使って表示します。

解答 - 「レコードの操作」ステップ2

レコードの操作のステップ2は次のとおりです。

キー・ポイント

条件式の使用法:

VEEは条件式をサポートしており、if-then-else操作を効率的に実装できます。このFormulaオブジェクトの条件式は3項演算子と呼ばれます。(a.rand < 0.5? a.rand: "More than 0.5")というのがそうです。これは全体で1つの式であり、図に示すようにFormulaオブジェクトで改行を入れて記述することもできます。Formulaオブジェクト内に複数の式がある場合、式の間はセミコロン（;）で区切られます。

Sub Recordオブジェクト:

Sub Recordのfieldsというラベルの入力ピンにはフィールド名のText配列が入ります。フィールド名をSub Recordオブジェクトに指定すると、それらのフィールドだけを持つレコードが出力されます。

「レコードの操作」ステップ3

1番目のフィールドの整数入力をFor Countオブジェクトに置換し、10回の反復実行を行います。各反復で、乱数生成と時刻の関数を起動します。完成したレコードをTo DataSetオブジェクトに送信します。別のスレッドで、データセット内のレコードのうち、乱数値が0.5より大きいレコードをすべて読み取ります。読み取ったレコードをレコード定数に入力します。

ヒント: Record Constantオブジェクトには、Default Valueのためのコントロール・ピンが必要です。

解答 - 「レコードの操作」ステップ3

「レコードの操作」ステップ3の解答例を下に示します。

キー・ポイント

To DataSetオブジェクト:

[Clear File at PreRun]オプションは、データがファイルに初めて送信される前に、ファイルをクリアします。プログラムは、10個の異なるレコードを同じファイルに順次送信し、それらのレコードはファイルに追加されていきます。

From DataSetオブジェクト:

このオブジェクトは、randフィールドが0.5より大きいレコードをすべて読み取るように設定されます。この例では、10個のレコードのうち5個のレコードが条件を満たし、最初のレコードがインデックス番号0として表示されています。


テスト・シーケンスの作成方法

「テスト・シーケンサの使用」ステップ1

UpperLimitという単純なUserFunctionを作成します。 これは、Real64 SliderとConfirm (OK)オブジェクトを持つポップアップ・パネルです。スライダの出力を、UpLimitというグローバル変数と、出力端子に送信します。Sequencerオブジェクトを作成し、UpperLimitsを呼び出すEXECトランザクションとして、test1 をSequencerに設定します。

呼び出すテストをシミュレートする、AddRandと呼ばれる別の関数を作成します。この関数は、入力値をランダム値（0～1）に追加します。関数は、1個の入力ピンと1個の出力ピンを持ちます。

Sequencerで test2 を作成し、AddRandを呼び出して0を渡します。戻り値をグローバルUplimitの値と比較し、小さいかどうかのテストを行います。合格の場合は、"PASS" + test2.resultを返します。不合格の場合は、"FAILED" + test2.resultを返します。SequencerのReturnピンにAlphanumeric表示を接続します。

Sequencerオブジェクトの後、Get Variableオブジェクト（UpLimit）および別のAlphanumeric表示を起動します。プログラムを数回実行します。

解答 - 「テスト・シーケンサの使用」ステップ1

Sequencerの使用の最初のステップに対する解答を次に示します。

キー・ポイント

UserFunctionによるグローバル変数の設定:

最初のSequencerトランザクションは通常、この実行例のように、グローバル変数を設定するUserFunctionの呼び出しに使用されます。これらの変数は、ここで示すように、後続の任意のテストで利用できるようになります。

SequencerのReturnピン:

この例のReturnピンは、PASSまたはFAILメッセージと、テストの値を出力します。このピンは、テスト結果に基づく任意のメッセージや値を出力するために使用できます。

「テスト・シーケンサの使用」ステップ2

最初のテストを無効にします。他の場所でグローバルを必要としない場合は、UpperLimit関数を直接呼び出すことができます。test2を変更し、AddRand(0)の戻り値をUpperLimit関数の結果と比較するようにします。

ヒント:最初のテストを無効にするため、次に示すような[Sequencer Transaction]ボックスを使用します。

上の図では、無効になっていることを示すため、Sequencerの最初のテストが2個のスラッシュでコメントアウトされています。

解答 - 「テスト・シーケンサの使用」ステップ2

「テスト・シーケンサの使用」ステップ2に対する解答を次に示します。

キー・ポイント

[Expression]フィールドのUserFunction:

この例では、テスト結果をUpLimit変数と比較するかわりに、変数が使用されるはずのフィールドに関数名UpperLimit()を入力できます。

「テスト・シーケンサの使用」ステップ3

VEE関数random (0,1)を呼び出すtest2 Sequencer トランザクションを編集します。結果を0.5未満のリミットと比較します。test1トランザクションを切り取って貼り付け、合計4つのテストを作成します。

Sequencerを5回実行するプログラムを構築します。データをレコードのデータ・セットに記録し、配列にデータを収集します。配列を使用し、2番目のテストの結果の最小値、最大値、平均値、標準偏差を求めます。

解答 - 「テスト・シーケンサの使用」ステップ3

ステップ3の解答を次に示します。

キー・ポイント

Sequencerの複数実行用のデータ・フォーマット（最初のスレッド）:

Sequencerを1回実行すると、レコードのレコードが出力されます。最初のレコードはテスト名に対応する名前のフィールドを持ち、それぞれのフィールドには対応するテストに関連するデータを持つレコードが格納されます。Sequencerを複数回実行し、レコードのレコードを配列に収集して調査できます。Formulaオブジェクトで<レコード>[*].<レコード>.<フィールド>の形式を使用した場合、データの配列が得られます。この場合、test2の5回の実行のテスト結果を表す実数値の配列が得られます。次に、この配列から最小値、最大値、平均値、標準偏差を計算できます。レコードのレコードの配列の特定の要素を指定することにより、test2の1回の実行を指定できます。たとえば、test2の最初の実行結果を得るには、式A[0].test2.result を使用します。

「テスト・シーケンサの使用」ステップ4

記録レコードにタイム・スタンプ・フィールドを追加します。各ステップの実行間隔が1秒となるよう、遅延を追加します。別のスレッドでtest2のすべての結果を入手し、それらをレコード定数に送信します。

Delayオブジェクト（最初のスレッド）:

このオブジェクトは、指定した秒数のあいだ実行フローを停止します。ここでは、Sequencerが実行されるたびにタイム・スタンプ値が変化することを保証する働きをします。

Time Stampの追加:

タイム・スタンプを追加するには、Sequencerのオブジェクト・メニューを開き、 [Properties] [image] [Logging] タブを選択して、 [Record Fields to Log] [image] [Time Stamp]をチェックします。[Properties] [image] [Logging] タブ・ダイアログを次に示します。

解答 - 「テスト・シーケンサの使用」ステップ4

「テスト・シーケンサの使用」ステップ4に対する解答を次に示します。

ヒント: レコードを表示するには、いずれかのテストの [Record] [image] [Record: Scaler] フィールドをクリックします。 [Record Field Data]ダイアログ・ボックスが表示されます。[Record Field Data]ダイアログ・ボックスを次に示します。

「テスト・シーケンサの使用」ステップ5

レコードのタイム・スタンプ・フィールドをLogging Alphanumeric表示に出力します。

ヒント:4個のFormulaオブジェクト（各テストに1つ）を使用します。4つのFormulaの結果すべてを1つのLogging Alphanumeric表示に表示するには、Junctionオブジェクトを追加します。To Stringを使用して、63Gタイム・スタンプ値をより読みやすい文字列にフォーマットします。

解答 - 「テスト・シーケンサの使用」ステップ5

下の図に、「テスト・シーケンサの使用」ステップ5のタイム・スタンプを表示に印刷するためのプログラム・スレッドを示します。

キー・ポイント

タイム・スタンプ・フォーマットの変換:

Logging Alphanumericの前のTo Stringオブジェクトによって、タイム・スタンプをRealフォーマットからより見やすいTime Stampフォーマットに変換します。

「テスト・シーケンサの使用」ステップ6

シーケンサに多くのテストが含まれる場合、多数のFormulaオブジェクトをいちいちJunctionに接続するのは煩雑です。その代わりに、1つの式を含むFormulaを使用して、実行時に式を生成し、可能な式をループ内で順次使用する方法があります。

例では最初に式文字列を生成します。

別スレッドで、LoopとFormulaを使用し、テストの式文字列を生成します。情報を文字列としてLogging Alphanumericに出力します。Formulaで生成される文字列は、"a[*].test<x>.timestamp"となるはずです。 <x>は、1から4まで変化します。

解答 - 「テスト・シーケンサの使用」ステップ6

ステップ6の解答を次に示します。

「テスト・シーケンサの使用」ステップ7

ステップ6で構築したLoopとFormulaを取り込み、前のステップの4つのFormulaとJunctionを、そのLoopとFormulaで置き換えます。さらに、構築した文字列の評価を行います。生成された文字列（式"a[*].test<x>.timestamp"）をFormulaに送信して、実行時に評価させます。

Formulaオブジェクト上のFormula Controlピン:

評価したいFormulaは、Loop内のFormulaによって生成されます。そのFormula式に対するコントロール入力を持つ2番目のFormulaボックスを作成できます。2番目のFormulaが評価する式は、実行時に生成されます。

解答 - 「テスト・シーケンサの使用」ステップ7

ステップ7の解答を次に示します。

キー・ポイント

To Stringオブジェクトが、Real64をタイム・スタンプ・フォーマットにフォーマットするためそのまま使用されています。

最初の「生成」Formulaと2番目の「評価」Formulaとの間にシーケンス・ラインがあります。これにより、2番目のFormulaは、評価する新しい文字列を取得するまで動作しません。

「テスト・シーケンサの使用」ステップ8

テスト1に合格し、テスト2に不合格になったレコードだけを表示します。

解答 - 「テスト・シーケンサの使用」ステップ8

「テスト・シーケンサの使用」最終ステップに対する解答を次に示します。

キー・ポイント

From DataSetオブジェクト上のEOFピン（2番目のスレッド）:

基準に適合するレコードがない場合のために、EOFピンが追加されています。この場合、VEEがプログラムを停止してエラー・メッセージを表示するかわりに、EOFピンが起動します。

From DataSetオブジェクト内の条件式（2番目のスレッド）:

式は、(Rec.test1.pass==1) OR (Rec.test2.pass==0)で、同じ<レコード>.<レコード>.<フィールド>フォーマットを持ちます。Recは、読み取られ、テストされるデータセット内の各レコードの名前です。test1とtest2は、どのテストをVEEが調査するかを指定します。フィールド名passは、VEEで割り当てられた合否インジケータ（1または0）のデフォルト名です（[Sequencer Properties]ボックスの[Logging]タブを選択して、全部のテストの異なるフィールドを有効または無効にします）。


VEEサンプル・プログラム・ガイド

このガイドは、Agilent VEE Proに付属するサンプル・プログラムの概要を示します。これらのサンプルは、役に立つプログラミング技法を示すもので、以下のカテゴリに分類されます。

カテゴリをクリックすると、プログラムのリストとその概要が見られます。各VEEプログラムに付属するボタンを使用すると、プログラムが新しいVEEウィンドウで開きます。

例 | 説明
.NETサンプル | .NETの威力と柔軟性を示す複数の.NETサンプルです。難易度によって分類されています。
ActiveXコントロール | 代表的ないくつかのActiveXコントロールの使用法を示すActiveXサンプルのリスト。
解析 | VEEのデータ解析機能を示すサンプルのリスト。
電気アプリケーション | タイム・ドメイン波形の構築と解体、DS1パルス・テンプレート・テスト・シミュレーション、リサジュー・パターンの生成を示すサンプルのリスト。
ダイナミックI/O構成 | ローカルまたはリモートの計測器をVEEから検出する方法を示すサンプルのリスト。
Excelライブラリ | Excelライブラリを使って、Excelとの間でデータを転送したり、Excelのセルをフォーマットしたり、Excelのグラフを作成したりする方法を示すサンプル。
金融アプリケーション | NPV、投資回収、将来価値などの一般的な金融計算のリスト。
ゲーム | VEEの基本機能と高度な機能を面白く学ぶためのゲームのリスト。
Instrument Manager統合サンプル | Instrument Managerに統合されたサンプルのリスト。
計測器測定 | さまざまな計測器測定を実行する方法を示すサンプル。十数種類の計測器が用いられます。
IVIドライバのサンプル | パワー・メータとスペクトラム・アナライザを使ったIVIサンプルのリスト。
製造アプリケーション | 製造アプリケーションでのVEEの使用法を示すサンプル。さまざまなVEEオブジェクトとシーケンス機能を示します。
MATLAB Script | MATLABを使ってVEEアプリケーションの機能を拡張する方法を示すサンプルのリスト。
機械アプリケーション | VEEの機能を機械工学の問題に応用したサンプルのリスト。
Microsoft Access | ActiveXを使ってAccessとやりとりするサンプルのリスト。データをデータベースに移動して表示します。
Microsoft Excel | ActiveXを使ってExcelとやりとりするサンプルのリスト。ランダム・データ、データの配列、チャート・データを挿入します。
Microsoft Outlook | ActiveXを使ってOutlookとやりとりするサンプルのリスト。電子メールを送信します。
Microsoft Word | ActiveXを使ってWordとやりとりするサンプルのリスト。データとビットマップの挿入、検索と置換、メールのマージを実行します。
古いVEE RPC API | 古いVEEリモート・プロシージャ・コールのライブラリ。
プログラムのプロパティ | プログラムのプロパティを使用するいくつかの例
VEE Libサンプル | VEE Libディレクトリの内容のサンプル。
VEEプログラミングの概念 | VEEオブジェクトを使ってVEEの機能を示すサンプル。広範で完備した参考になる内容です。
Visual Basic | パルスを合成し、テスト・リミットとともにパルスを表示するサンプル。
VB Script | VB Scriptのさまざまな使用法を示すサンプルのリスト。DS1パルス・テスト、callable VEE serverの情報などです。
Visual C++ | DS1パルス・テストを示すサンプル。
Windowsフォーム・コントロール | VEEからWindowsフォーム・コントロールを使用するサンプル。

注記

examples\Manualディレクトリのサンプルは、他のVEEヘルプ項目とVEEマニュアルで説明されているので、ここには示していません。


名前が変更されたサンプル・ファイル

VEE 6.0/6.2 | VEE 7.0 | VEE 7.5
Access97DataClient.vee | Access97DataClient.vee | AccessDataClient.vee
Access97Enumerate.vee | Access97Enumerate.vee | AccessEnumerate.vee
Excel97Graph.vee | Excel97Graph.vee | ExcelGraph.vee
Excel97a.vee | excela.vee | ExcelInsertData.vee
Excel97b.vee | Excel97b.vee | ExcelInsertArrayData.vee
 | Excela UFunction.vee | ExcelUFunction.vee
 | Excel97a UFunction Lib.vee | ExcelUFunctionLib.vee
Excel97Weather.vee | Excel97Weather.vee | ExcelWeather.vee
 | LabVIEW.vee | LabVIEW.vee
Outlook97.vee | Outlook97.vee | OutlookSendMail.vee
Word97.vee | Word97.vee | Word.vee
Word97DataSheet.vee | Word97DataSheet.vee | WordDataSheet.vee
Word97MailMerge.vee | Word97MailMerge.vee | WordMailMerge.vee


.NETサンプル

Microsoft .NETサンプル

サンプル名

説明

参照されるアセンブリ／
名前空間／クラス

難度

ComputingHash.vee

VEEレコードの内容のハッシュを計算する方法を示します。VEEレコードとハッシュはファイルに保存されます。そのファイルが再び読み込まれます。ファイルから抽出されたレコードに対してハッシュが再計算され、ファイルに記録されているハッシュと比較されます。これは、ファイルの内容が元通りであることを確認する簡単な方法です。

アセンブリ:mscorlib

名前空間:System.System.Text、System.Security.Cryptography

クラス:System.Security.Cryptography.SHAManaged、System.Text.Encoding

3

DatabaseReadUsingDataset.vee

OleDbConnection、OleDbAdapter、Datasetクラスを使って、複数のデータベース・テーブルのコピーをメモリ上に作成する方法を示します。

アセンブリ:mscorlib、System.Data

名前空間:System、System.Data、System.Data.OleDb

型:System.Data.OleDb.OleDbConnection、System.Data.OleDb.OleDbAdapter、System.Data.Dataset

2

DatabaseReadUsingOleDbReader.vee

OleDbコネクション、コマンド、データ・リーダ・クラスを使って、Accessデータベース・ファイルから情報を問い合わせる方法を示します。

アセンブリ:mscorlib、System.Data

名前空間:System、System.Data、System.Data.OleDb

型:System.Data.OleDb.OleDbConnection、System.Data.OleDb.OleDbCommand、System.Data.OleDb.OleDbDataReader

2

DateTime.vee

.NET Frameworkの組み込みのDateTime関数を使って、現在の日付と時刻を取得したり、曜日を取得したり、年を取得したり、うるう年かどうかを問い合わせたりする方法を示します。

この例はまた、スタティック・メンバとインスタンス・メンバを混在させてVEEから呼び出す方法も示します。 入力の手間を省くため、System名前空間がインポートされています。

アセンブリ:mscorlib

名前空間:System

クラス:System.DateTime、System.DayOfWeek

1

DateTimeConversion.vee

.NETのDateTimeとVEEの時刻の間の変換方法を示します。また、新しい型変換関数asClrTypeの使用法も示します。 .NETのDateTimeクラスを使えば、UTC時刻を容易に地方時に変換できます。入力の手間を省くため、System名前空間がインポートされています。また、.NETのすべてのオブジェクトには少なくとも1つのToStringメソッドがあり、オブジェクト情報を見やすくフォーマットして出力する役割を果たします。この例にはその威力が示されています。

アセンブリ:mscorlib

名前空間:System

クラス:System.DateTime

2

DeleteDir.vee

ディレクトリが存在するかどうかを問い合わせ、深いディレクトリ階層を作成し、再帰的にそれを削除する簡単な方法を示します。この小さい例は、.NET Frameworkにある多数の容易に使用できるファイル・システム管理関数への導入の役割を果たします。より詳細な例についてはFileOperations.veeを参照してください。概要を知るには、System.IO名前空間の下のクラスを参照してください。また、MSDNで詳細情報が提供されています。

アセンブリ:mscorlib

名前空間:System.IO

クラス:System.IO.Directory

1

DiskInfo.vee

ディスクのサイズと空き容量を取得する方法を示します。以前はこのためには、kernel32.dllをインポートしてWin32 APIを呼び出すという面倒な作業が必要でした。この例と、examples\contrib\Win32\kernel32.veeとを比べてみてください。この例では、他のさまざまなディスク情報も問い合わせています。ユーザ関数show_all_diskpropertiesを参照してください。この例は、.NETコレクションにアクセスして列挙する方法も示します。

アセンブリ:mscorlib、System.Management

名前空間:System、System.Management

クラス:System.Management.ManagementObject

3

DrawOnBitmap.vee

必要なサイズと種類のビットマップを作成する方法を示します。その後、System.Drawing.Graphicsオブジェクトを使ってその上に絵を描くことができます。結果のビットマップは指定したファイルに保存され、VEEのピクチャ・オブジェクトを使ってビットマップが表示されます。この例には2つの重要な概念があります。1つは、スタティック・メソッドSystem.Drawing.Graphics.FromImage()を使ってビットマップから"Graphics"オブジェクトを取得することです。BitmapクラスはSystem.Drawing.Imageクラスから派生しているので、ビットマップのインスタンスをこの関数に渡すことができます。グラフィックス・オブジェクトができたら、その上に好きなものを描くことができます。もう1つの重要な概念は、明示的に作成した描画オブジェクトを破棄することです。この例では、FromImageを呼び出して作成したGraphicsオブジェクト、作成したフォント、Bitmapオブジェクトがすべて破棄されています。そうしないと、VEEプログラムがGDIリソースを過大に消費し、プログラムのパフォーマンスに影響を与えるおそれがあります。

アセンブリ:mscorlib、System.Drawing

名前空間:System.Drawing、System.Drawing.Imaging

クラス:System.Drawing.Bitmap、System.Drawing.Graphics、System.Drawing.Font、System.Drawing.Brushes、System.Drawing.Pens、system.Drawing.Imaging.PixelFormat、System.Drawing.Imaging.ImageFormat

3

Environment.vee

.NET Frameworkを使うと、プログラム環境に関するさまざまな情報、例えば現在のディレクトリ、コマンド・ライン、マシン名、ユーザ名などを容易に取得できます。

この例はまた、スタティック・メンバをVEEから呼び出す方法も示します。

アセンブリ:mscorlib

名前空間:System

クラス:System.Environment

1

EnumboundtoSelectionControl.vee

VEEのドロップダウン・リストなどの選択コントロールに.NETの列挙のすべての列挙値を入力したり、その逆の変換を行ったりする方法を示します。

アセンブリ:mscorlib

名前空間:System

クラス:System.Enum

1

EnumerateEnums.vee

.NETの列挙で実現できるいくつかのことを示します。この例では、System.FileAttributesの型を取得し、その型で定義された列挙に対して反復を行い、それらの列挙値のテキスト値と数値を出力します。 この例は汎用的に作成されており、EnumNamesAndValuesユーザ関数はSystem.FileAttributes型に限らず任意の.NET列挙型に適用できます。

アセンブリ:mscorlib

名前空間:System

クラス:System.Enum、System.FileAttributes

3

FileInfo.vee

ファイルの作成時刻、最終アクセス時刻、長さ、読み取り専用かどうかなどの属性を簡単に取得する方法を示します。 入力の手間を省くため、SystemまたはSystem.IO名前空間がインポートされています。

このIsFileReadOnlyユーザ関数は、.NETの列挙型に対してビット操作を行ったり、System.Convertクラスを使ってある.NET型を別の.NET型に変換したりする方法も示します。

アセンブリ:mscorlib

名前空間:System、System.IO

クラス:System.Convert、System.FileInfo、System.FileAttributes

2

FileOperations.vee

VEE 7.5での.NET FrameworkのFileおよびDirectoryクラスの使用法を示します。 まず、特別な「パーソナル・フォルダ」ディレクトリが取得されます。これは通常、"document settings\username"の下にあります。次に、パーソナル・フォルダの下に深いディレクトリ階層が作成されます（すでに存在する場合を除く）。その後、その下にテキスト・ファイルが作成され、フォーマットされた1行がファイルに書き込まれます。最後に、ファイルが読み取り用に開かれます。 この例はまた、マシン上のすべての論理ドライブを取得する方法も示します。

アセンブリ:mscorlib

名前空間:System.IO

クラス:System.IO.Directory、System.IO.File、System.IO.Path、System.IO.StreamWriter

2

GetStockQuote.vee

わずか10行のコードで株価を取得する方法を示します。お好きな銘柄のティッカーシンボルを入力すると、20分遅れの株価が表示されます。

この例は、.NET Frameworkの強力な機能を示します。Webリクエスト／応答、ストリームの読み取り、正規表現を使った文字列照合などです。

アセンブリ:mscorlib、System

名前空間:System.Net、System.IO、System.Text.RegularExpressions

クラス:System.Net.WebRequest、System.Net.WebResponse、System.IO.Stream、System.IO.StreamReader、System.Text.RegularExpressions.Regex

3

HashTable.vee

.NET Frameworkの組み込みデータ構造の1つを示します。 ハッシュ・テーブルとは、キーと値の組の集合で、キーのハッシュ・コードに基づいて構成されています。ハッシュ・テーブルを使うと、配列よりも効率的な検索アルゴリズムを実現できます。 任意の型のオブジェクトを任意の型のキーに基づいて記憶できます。必要なのは、キーが2つのメソッド（GetHashCodeおよびEquals）を実装していることだけです。 この例は、キーと値の組を追加したり、記憶されている項目の数を取得したり、キーがハッシュ・テーブルに存在するかどうかを判定したり、キーに基づいて検索を実行したりする方法を示します。

アセンブリ:mscorlib

名前空間:System.Collections

クラス:System.Collections.Hashtable

1

IPAddress.vee

自分のマシン（または任意のマシン）のIPアドレスを簡単に取得する方法を示します。 この例はまた、配列メソッドGetValueを使って.NETオブジェクトの配列にアクセスする方法も示します。

アセンブリ:mscorlib、System

名前空間:System.Net

クラス:System.Net.Dns、System.Net.IPHostEntry、System.Environment、System.Array

1

PasswordManagement.vee

ユーザ名とパスワードによる簡単なログイン・システムを作成する方法を示します。

アセンブリ:mscorlib

名前空間:System、System.Security.Cryptography

型:System.Security.Cryptography.SHA1CryptoServiceProvider、System.Convert

2

ProcessInfo.vee

プロセスの仮想メモリ・サイズ、合計プロセッサ時間、ハンドル・カウント、優先度、開始時刻、スレッド数、スレッドID、スレッド・ステート、スレッド優先度などの情報を簡単に取得する方法を示します。

アセンブリ:mscorlib、System

名前空間:System、System.Diagnostics

クラス:System.Diagnostics.Process、System.Threading.Thread

2

Registry.vee

.NET Frameworkクラスを使ってレジストリにアクセスする方法を示します。以前はこのためには、advapi32.dllをインポートして、わかりにくいWin32 APIを呼び出すという面倒な作業が必要でした。この例と、examples\contrib\advapi32.veeとを比べてみてください。

アセンブリ:mscorlib

名前空間 Microsoft.Win32

クラス:Microsoft.Win32.Registry、Microsoft.Win32.RegistryKey

1

SelectFiles.vee

.NET Frameworkの組み込みコモン・ダイアログの1つの使用法を示します。 この例では、OpenFileDialogクラスを使ってWindows標準の「ファイルを開く」ダイアログ・ボックスを表示しています。この他に、SaveFileDialog、PrintDialog、ColorDialog、FontDialogなども同様に使用できます。 VEEのFile Name Selectionダイアログ・ボックスも使用できますが、.NETのOpenFileDialogBoxの方が高い柔軟性が得られます。例えば、複数ファイルの選択を簡単に有効にできます。

アセンブリ:System.Windows.Form

名前空間:System.Windows.Form

クラス:System.Windows.Forms.OpenFileDialog

1

SelectFolder.vee

ファイルを選択せずにフォルダを選択する方法を示します。

アセンブリ:mscorlilb

名前空間:System、System.Windows.Forms

クラス:Systems.Windows.Forms.FolderBrowserDialog、System.Environment.SpecialFolder

1

Sendmail.vee

.NET Frameworkを使って簡単に電子メールを送る方法を示します。 この例は、lib\SmtpMail.veeと同じ結果をはるかに少ない手間で実現しています。 .NETを使えば、8行以下のコードでVEEプログラムからメールを送信できます。

アセンブリ:System.Web

名前空間:System.Web.Mail

クラス:System.Web.Mail.SmtpMail

2

SendMailWithAttachments.vee

.NETを使って添付ファイル付きの電子メールを簡単に送る方法を示します。

アセンブリ:System.Web

名前空間:System.Web.Mail

クラス:System.Web.Mail.SmtpMail

1

SpecialFolders.vee

マシン上のさまざまな特殊フォルダのパスを取得する方法を示します。以前はこのためには、shfolder.dllをインポートしてWin32 APIを呼び出すという面倒な作業が必要でした。この例と、examples\contrib\win32\shfolder.veeとを比べてみてください。

名前空間がインポートされています。

アセンブリ:mscorlib

名前空間:System

クラス:System.Environment、System.Environment.SpecialFolder

1

Stack.vee

.NET Frameworkの組み込みデータ構造の1つを示します。 スタックは後入れ先出し方式のコレクションであり、これに対して待ち行列は先入れ先出し方式のコレクションです。 この例は、スタックにオブジェクトを追加（プッシュ）し、除去（ポップ）する方法を示します。

アセンブリ:mscorlib

名前空間:System.collections

クラス:System.Collections.Stack

1

StringOperations.vee

.NETを使ったさまざまな文字列操作を示します。

アセンブリ:mscorlib

名前空間:System

クラス:System.String

1

StringSplit.vee

任意の数の区切り文字を使って文字列を複数の文字列に分割する方法を示します。

.NET System.Stringクラスには、多くの有用な機能があります。VEEは.NETのStringをVEEのTextに自動的に変換しますが、この多くの機能を利用するために、Stringを.NETオブジェクトのままで使用する方法もあります。この例では、VEEのTextを.NETのStringに変換する方法を示します。 また、VEEのTextを.NETのSystem.Charの配列に変換する方法も示します。

これは、新しい型変換関数AsClrTypeの使用法の例でもあります。

アセンブリ:mscorlib

名前空間:System

クラス:System.String、System.Char

2

TextEncodedBInary.vee

.NET Frameworkクラスを使って、バイナリ・データをBase64によるテキストにエンコードし、エンコードされたBase64テキストをバイナリ形式に戻す方法を示します。この方法を使うと、添付ファイルが使用できない場合に、バイナリ・データをテキスト・メールで送信できます。

アセンブリ:mscorlib

名前空間:System

クラス:System.Convert

2

TimeZone.vee

System.TimeZoneオブジェクトの使用法を示します。

  • 現在時刻のUTCオフセットを取得

  • 時刻が夏時間かどうかを判定

  • 夏時間の名前を取得

  • 標準時間の名前を取得

  • 夏時間の開始／終了時刻を取得

アセンブリ:mscorlib

名前空間:System、System.Globalization

クラス:System.TimeZone、System.Globalization.DaylightTime

1

UsingTemperatureWebService.vee

VEEのWebサービスを使用する方法を示します。

アセンブリ:TemperatureService

名前空間:

クラス:TemperatureService

2

UsingTerraServerWebService.vee

VEEのWebサービスを使用する方法を示します。

アセンブリ:mscorlib、TerraService

名前空間:System、Agilent.VeeExample

クラス:TerraService、Place、TileId

2

WhichOS.vee

オペレーティング・システムのバージョンとプラットフォームを取得する方法を示します。

例を再現する方法はREADMEに記述されています。

アセンブリ:mscorlib

名前空間:System

クラス:System.Environment、System.OperatingSystem

1

WriteEventLog.vee

システム・メニューのWrite to Event Logエントリ・オブジェクトを使って、VEEのエラー情報をアプリケーション・イベント・ログに記録し、記録したエントリをログから読み取る方法を示します。

アセンブリ:mscorlib、System

名前空間:System.Diagnostics

型:System.Diagnostics.EventLog

1

XmlReadingUsingXmlTextReader.vee

System.IO.StringReaderを使ってXMLを読み取る方法を示します。

アセンブリ:mscorlib、System.Xml

名前空間:System、System.IO、System.Xml

型:System.IO.StringReader、System.Xml.XmlTextReader

2

XmlSearchingUsingXPathNavigator.vee

XMLをXPathDocumentに読み取り、XPathNavigatorを作成する方法を示します。

アセンブリ:mscorlib、System.Xml,System.Xml.XPath

名前空間:System、System.IO、System.Xml、System.Xml.XPath

型:System.IO.StringReader、System.Xml.XPath.XPathDocument、System.Xml.XPath.XPathNavigator、System.Xml.XPath.XPathNodeIterator

2

*難度レベルは1～3であり、1が最も易しくて、.NETとVEEの経験をあまり必要としないものです。


dotnet_controls

ｵ・ | ｬ | ﾂgU結｢ｻ・ Mz・ｯ鮖
Button.vee | Windowsnﾕｩ・﨤犱・ﾜｿ(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・Button
CheckBox.vee | WindowsnGroupBoxCheckBoxn2dnﾕｩ・﨤犱・(ｹﾕ・W~YSn黍ﾖnｳ犱・cfｳ犱・\Y胸ﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・GroupBoxCheckBox
CheckListBox.vee | WindowsnCheckListBoxLabeln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・CheckedListBoxLabel
ComboBox.vee | WindowsnComboBoxLabeln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・ComboBoxLabel
ContainerControl.vee | WindowsnDataGridContainerControln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・DataGridContainerControl
CustomCounter.vee | ｫｹｿ瓔ｳ犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms
CustomFolderTreeView.vee | ｫｹｿ瓔ｳ犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms
CustomGrid.vee | ｫｹｿ瓔ｳ犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms
CustomProgressBarImage.vee | ｫｹｿ瓔ｳ犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms
DataGrid.vee | WindowsnDataGridContainerControln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・DataGridContainerControl
DateTimePicker.vee | WindowsnDateTimePickerLabeln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・DataTimePickerLabel
DomainUpDown.vee | DomainUpDownｳ犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・DomainUpDown
GroupBox.vee | WindowsnGroupBoxRadioButtonn2dnﾕｩ・﨤犱・(ｹﾕ・W~YSn黍ﾖnｳ犱・cfｳ犱・\Y胸ﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・GroupBoxRadioButton
GroupRadioAndCheckbox.vee | WindowsnGroupBoxCheckBoxRadioButtonn3dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.FormsSystem.Drawing Mz・System.Windows.FormsSystem.Drawing ・CheckBoxGroupBoxRadioButtonPoint
HScrollBar.vee | WindowsnHScrollBarVScrollBarLabeln3dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・HScrollBarVScrollBarLabel
LinkLabel.vee | WindowsnLinkLabelﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・LinkLabel
ListBox.vee | WindowsnListBoxLabeln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・ListBoxLabel
ListView.vee | WindowsnListViewﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・ListView
MenuStrip.vee | WindowsnMenustripﾕｩ・﨤犱・(ﾕ・W~Y | ｢ｻ・ System.Windows.Forms Mz・System.Windows.Forms ・MenuStrip
MonthCalendar.vee | WindowsnMonthCalendarﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・MonthCalendar
NumericUpDown.vee | WindowsnNumericUpDownﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・NumericUpDown
Panel.vee | WindowsnPanelﾕｩ・﨤犱・(ｹﾕ・W~Yｳ犱・\ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・PanelCheckBox
PictureBox.vee | WindowsnPictureBoxﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・PictureBox
ProgressBar.vee | WindowsnProgressBarﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・ProgressBar
RadioButton.vee | WindowsnGroupBoxRadioButtonn2dnﾕｩ・﨤犱・(ｹﾕ・W~Yﾖnｳ犱・cfｳ犱・\Y胸ﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・GroupBoxRadioButton
RichTextBox.vee | WindowsnRichTextBoxﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・RichTextBox
Splitter.vee | WindowsnSplitterPanelTreeViewListViewﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・SplitterPanelTreeViewListView
StatusBar.vee | WindowsnStatusBarﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・StatusBar
TabControl.vee | WindowsnTabControlﾕｩ・﨤犱・(ｹﾕ・W~YSn黍~_ｳ犱・\ｹﾕ・W~YTabPagesn-kButtonCheckBoxRadioButtonL+~掲D~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・TabControlTabPageButtonRadioButtonCheckBox
TabPage.vee | WindowsnTabControlﾕｩ・﨤犱・(ｹﾕ・W~YSn黍~_ｳ犱・\ｹﾕ・W~YTabPagesn-kButtonCheckBoxRadioButtonL+~掲D~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・TabControlTabPageButtonRadioButtonCheckBox
TextBox.vee | WindowsnTextBoxﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・TextBox
ToolStrip.vee | WindowsnToolStripﾕｩ・﨤犱・(ﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・ToolStrip
TrackBar.vee | WindowsnLabelTrackBarn2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・LabelTrackBar
TreeView.vee | WindowsnTreeViewLabeln2dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・TreeViewLabel
VScrollBar.vee | WindowsnHScrollBarVScrollBarLabeln3dnﾕｩ・﨤犱・(ｹﾕ・W~Y | ｢ｻ・System.Windows.Forms Mz・System.Windows.Forms ・HScrollBarVScrollBarLabel


ActiveXコントロール
examples\ActiveXControls

これらのプログラムを正しく実行するには、ここに記載されたActiveXコントロールがシステムにインストールされている必要があります。

1. ActiveMovieコントロール

2. Microsoft Common Dialogコントロール

3. ListViewコントロール

4. ProgressBarコントロール

5. Microsoft RichTextBoxコントロール

この他に、VEEではActiveXオートメーションを使用するためにMicrosoft Office 2000以降が必要です。

ActiveXコントロールの例
 | サンプル名 | 説明
1 | ActiveMovie.vee | ActiveMovieコントロールを使ってムービー・ファイルを表示する方法を示します。
2 | CommonDialog.vee | Common Dialog ActiveXコントロールに実装されたWindowsのいくつかのコモン・ダイアログ・ボックスの使用法を示します。
3 | ListView.vee | comctl32.ocxで提供されるListViewコントロールの使用法を示します。
4 | ProgressBar.vee | comctl32.ocxで提供されるProgressBarコントロールの使用法を示します。
5 | RichTextBox.vee | RichTextBoxコントロールにRTFテキストを入力し、そのテキストをVEEプログラムに保存することにより、プログラムと別に.rtfファイルを配布しなくてすむようにする方法を示します。

関連項目

ActiveX参照の解放


解析
examples\Analysis

解析の例
サンプル名 | 説明
AnalogFilter.vee | フィルタの伝達関数を表示する方法と、反復子の代わりに配列演算を使用する方法を示します。
curvefit.vee | さまざまな回帰法を使用してカーブ・フィッティングを行う方法を示します。
magDist.vee | magDist()関数を使ってデータ・ポイントの分布のヒストグラムを作成する方法を示します。
mixer.vee | 次の方法を示します。 仮想信号源を使った信号のシミュレーション。 複雑なデータ構造からの情報の取得。
psk.vee | 多数のオブジェクトを高度な方法で使用してメッセージのエンコード／デコード方式を実現する方法を示します。
ReadMarkerValues.vee | XY Trace表示にマーカを設定する2つのUserFunctionを示し、値を読み取ります。
setmap.vee | [Data] [image] [UnBuild Data] [image] [Spectrum]、[PComplex]、[Data] [image] [Access Array] [image] [Set Mappings]の各オブジェクトを使って、Spectrumデータ型から意味のある情報を読み取る方法を示します。
traj1.vee | 軌跡を計算するプログラムで、詳細ビューとパネル・ビューの違いを示します。
traj2.vee | 要求に応じてデータを表示するUserObjectでのShow Panel on Executeモードの使用を示します。
xfftfunc.vee | ScaleFFT UserFunctionを使って波形に対してFFTを実行します。


電気アプリケーション
examples\Applications

電気アプリケーションの例
サンプル名 | 説明
digfilt.vee | 次の内容を示します。 タイム・ドメイン波形の解体と構築。 3次楕円デジタル・フィルタの構築。 タイム・ドメインから周波数ドメインへの自動変換。
telecomm.vee | 以前に保存された波形データを使用して、DS1 Pulse Templateテストをシミュレートします。通信分野で一般的な測定として、DS1テスト・フィクスチャからのパルス形状のモニタがあります。このプログラムは、測定されたDS1パルスと波形テンプレートの照合を自動化する方法を示します。
lissajou.vee | X vs Y Plot表示オブジェクトへの2つの波形入力を使ったリサジュー・パターン生成を示します。
pid.vee | 閉ループ・プロセス制御のための単純なPID（Proportional-Integral-Derivative）コントローラを示します。


ダイナミックI/O構成
examples\InstrumentIO

ダイナミックI/O構成の例
サンプル名 | 説明
DynamicFindDMM.vee | システムの最初のデジタル・マルチメータまたはすべてのDMMを検出できます。
DynamicFindInstruments.vee | システムのすべてのGPIBおよびVXI計測器を検出し、モデル名とバス・アドレスを返します。計測器は、IEEE 488.2に適合し、"IDN?"コマンドを理解する必要があります。
DynamicFindInterfaces.vee | システムのすべての計測器インタフェースの種類と論理装置番号を報告します。
DynamicFindRemoteInstruments.vee | 指定されたリモート・ホストで使用可能なすべての計測器を検出します。リモート検出が動作するためには、リモート・ホストにAgilent VEEがインストールされている必要があります。
PreRunDeviceCheck.vee | VEEのPreRun段階で使用可能な計測器設定チェック機能のいくつかを紹介します。


Excelライブラリ
examples\ExcelLibrary

Excelライブラリのサンプル
サンプル名 | 説明
AddComment.vee | セルにコメントを追加する方法を示します。
AlphaColAndNumericCol.vee | 1～256までの数値入力に対応する列名を計算します。
BarChart.vee | Microsoft Excelで棒グラフを作成します。
ColoredLimits.vee | リミットに応じてテキストの色を変更する方法を示します。
CreateVbaMacro.vee | 単純なVBAマクロを作成して実行します。
DataFromCells.vee | ワークブック・ファイルを選択した後、ファイル中のある範囲からデータを読み取って表示します。
DataToCells2D.vee | このサンプルは、2次元データの往復をExcelに送信します。
DataToCells3D.vee | このサンプルは、3次元データの往復をExcelに送信します。データは自動的に複数のシートに送信されます。
EnumerateCharts.vee | ワークブック中のチャート名を表示します。
EnumerateNames.vee | ワークシート中の範囲名を表示します。
EnumerateSheets.vee | 指定されたワークブック中のワークシート名を表示します。
EvaluateCellFormula.vee | 1個のセルの計算値を読み取ります。
ExcelVisibleOnTop.vee | Excelを表示したときに常にいちばん上に表示させる方法を示します。
FindFirstEmptyRow.vee | 行の範囲の中の最初の空白行を検索します。
FormatCell.vee | さまざまなセル・フォーマットを示します。
FormatCellsAllColors.vee | すべてのセル背景色がテキストでExcelに送られ、各セルがその背景色でフォーマットされます。
FormatText.vee | データの範囲全体に対してフォントを設定します。
FormatTextAllColors.vee | セルのすべてのテキストを指定された前景色にフォーマットします。
IterateColumns.vee | 列のグループ内を反復してまずデータ・シーケンスを送信し、次にもう一度反復して同じシーケンスを読み取ります。
IterateRows.vee | 行の集合内を反復してまずデータ・シーケンスを送信し、次にもう一度反復して同じシーケンスを読み取ります。
LineChart1D.vee | Excelで1次元折れ線グラフを作成します。
LineChart2D.vee | Excelで2次元折れ線グラフを作成します。
LineChart2DLogarithmic.vee | Excelで2次元対数折れ線グラフを作成します。
Macro.vee | Excelワークブック中の既存のマクロの実行方法を示します。
MergeCells.vee | Excelで複数のセルを結合する方法を示します。
MultipleWorkbooks.vee | 2次元配列をExcelに繰り返し送信して複数の新規ワークブックを作成します。
NavigateCells.vee | まず相対位置から、次に絶対位置からセル・アドレスを計算します。
NumericRowColFromCell.vee | セル・アドレスを行と列の数値出力に変換する方法を示します。
OpenSaveAs.vee | ワークブックを読み取り専用で開き、新しい名前で保存します。
PanelImage.vee | VEEのグラフをExcelのレポートに入れる方法を示します。
PieChart.vee | Excelで円グラフを作成します。
Print.vee | Excelワークブック・ファイルを印刷します。
PrintPreview.vee | ワークブックを印刷プレビュー・モードで表示します。
ReUsingCharts.vee | Excelのグラフ機能とExcelライブラリのデータ管理機能を使用してカスタム・チャートを作成する方法を示します。
SaveAsHTML.vee | HTMLファイルとして保存できるように設定を変更します。また、DisplayAlerts設定をFalseに設定することにより、SaveAsファイルを何度でも上書きできるようにします。
SearchArray.vee | 1次元または2次元の配列を検索します。
SelectWorkbookAndEnumerations.vee | OpenWorkbook、SelectWorkbook、ワークブックのEnumerateの使用法を説明します。
SendColumnByColumn.vee | Microsoft Excelに列単位でデータを送信します。
SendComplexData.vee | Complexを垂直方向の直交座標Complex配列として送信する1つの方法を示します。
SendCoordData.vee | 座標値に対する垂直方向のSendDataを作成します。
SendPComplexData.vee | PComplex値に対する垂直方向のSendDataを作成します。
SendRecordData.vee | レコード配列を、決まった名前の範囲を持つワークブックの、レコード配列中のフィールド名に一致する最初のワークシートに送信します。
SendSpectrumData.vee | Spectrumデータ型を解体してStart、StopによってExcelに送信する方法を示します。
SendWaveformData.vee | 波形データ型を解体し、TimeSpanとDataによって、好みに応じて変更可能な特定の配置でExcelに送信する方法を示します。
SettingABorderOnARange.vee | 別のセル範囲内に埋め込まれたセル範囲の境界を設定します。
StringReplace.vee | 文字列を与えられて、その中の副文字列を置換します。大文字と小文字を区別することができます。
XYChart.vee | ExcelでXY図表を作成します。

関連項目

ActiveX参照の解放


金融アプリケーション
examples\Applications

金融の例
サンプル名 | 説明
simp_npv.vee | 税金の影響を考慮しない単純な正味現在価値モデルを使用した金融計算を示します。
payback.vee | 税金の影響をある程度考慮した単純な正味現在価値「割り引き回収期間」モデルを使用した金融計算を示します。
futValue.vee | 金融に関するVEEの機能を示すため、グラフによる曲線プロットによって元本の将来価値成長を示します。


ゲーム
examples\Games

これらの例は、VEEのさまざまなプログラミング手法を示す完成したプログラムです。

ゲームの例

サンプル名

Battleship

BlackJack

Euchre

MineSweeper

Movies

Race

Reversi

Slots

Solitaire

StraVEEgo

Wheel


Instrument Manager統合サンプル
examples\InstrumentIO\InstrManagerIntegrated

Instrument Manager統合サンプル
サンプル名 | 説明
Ag33220A_IVI-COM.vee | 定義済みの信号を33220A LXI測定器にダウンロードし、そのIVI-COMドライバを使用して出力します。
Ag34410a_LXI.vee | Agilent 34410Aデジタル・マルチメータ（DMM）からLAN経由で測定値を読み取ります。
Ag344xxa.vee | Agilent 34401A、34405A、34410A、34411Aのいずれかのデジタル・マルチメータ（DMM）から測定値を読み取ります。
Ag344xxa_Excel.vee | Agilent 34401A、34405A、34410A、34411Aのいずれかのデジタル・マルチメータ（DMM）から5個の測定値を読み取ります。その後、データをプログラムでExcelに送信します。
Ag34980A_IVI-COM.vee | 34980Aから設定とデータを読み取ります。
AgDSO3000.vee | DSO3000ファミリ・オシロスコープとVEE ProのDirect IO機能を使って、波形のパラメータを測定します。
AgDSO603xMSO603x.vee | Agilent 6000シリーズDSOまたはMSOオシロスコープからアナログ・データを取得し、VEEのデータ表示オブジェクトに表示します。
AgDSO603xMSO603x_MATLAB1.vee | VEEの組み込みMATLAB関数を使って、アナログ・チャネル1と2の相互相関を計算し、結果を表示します。
AgDSO603xMSO603x_MATLAB2.vee | MATLABのexp()およびabs()関数とプロット関数を使用します。
AgDSO603xMSO603x_MATLAB3.vee | VEEの組み込みMATLAB関数を使って、アナログ・チャネル1をバターワース・フィルタに通し、計算結果を表示します。
AgE4980a_directIO.vee | E4980A LCRメータを使ってキャパシタンスと損失係数を測定します。
AgN1996a.vee | Agilent CSAスペクトラム・アナライザから測定値を取得します。
AgN19XXA.vee | N19XXAパワー・メータを設定して制御し、測定器からPCにデータを転送します。
AgN57xx_directIO.vee | Direct IOを使って、N5700Bモジュラ電源の出力を設定し、データを取得します。
AgN57xx_IVI_COM.vee | VEE 8.0でのIVI-COMドライバの使用法を説明します。
AgN67xx_IVI_COM.vee | VEEとIVI-COMドライバを使って、N6700Bモジュラ電源の出力を設定し、データを取得します。
Ag87xxEx.vee | 87XXET/ESを制御して測定データを読み取ります。
Ag87xx-VNA.vee | VNAで複数トレースを設定し、掃引し、データをダウンロードして表示します。
Ag332x0a1.vee | 定義済みの信号を発生器にダウンロードして出力します。
Ag332x0a2.vee | AM変調された信号を発生器から出力します。
Ag661xc-Ag663xb.vee | 出力をプログラムし、出力条件を測定し、出力パワーを計算します。
Ag681x.vee | 突入電流測定を実行します。
Ag811xx-AgE831x.vee | パルス／パターン／バースト・モードを設定します。
Ag5313xa1.vee | チャネル1で周波数を測定し、データを読み取ります。
Ag 5313xa2.vee | チャネル1で周波数を測定し、データ・ロギングを実行します。
Ag34970a.vee | フレーム中のカードを認識し、データをプロットします。
AgE36xx.vee | 電圧掃引を設定し、電流を記録し、Excelファイルに保存します。
AgE44xx.vee | 中心周波数とスパンを設定し、トレースを表示し、Excelファイルに保存します。
AgE44xxCdma2000.vee | CDMA2000の占有帯域幅を測定し、Excelに保存します。
AgE50xxx-ENA1.vee | ENAで複数トレースを設定し、掃引し、データをダウンロードして表示します。
AgE50xxx-ENA2.vee | ECalモジュールを使って2ポートSパラメータを設定して校正します。
AgE82xx.vee | ECalモジュールを使って2ポートSパラメータを設定して校正します。
AgE83xxx-AgN52xxx-AgE880xx-Agn338xx-PNA1.vee | PNAで複数トレースを設定し、掃引し、データをダウンロードして表示します。
AgE83xxx-AgN52xxx-AgE880xx-Agn338xx-PNA2.vee | ECalモジュールを使って2ポートSパラメータを設定して校正します。
AgE443xb.vee | 周波数掃引を実行し、終了時にSRQを実行します。
AgE443xb_Excel.vee | 周波数掃引を実行し、終了時にSRQを実行し、Excelに保存します。
AgE4438c-AgE8267x.vee | 任意波形発生器に波形をダウンロードします。
AgE4438c-Ag8267x_Excel.vee | 任意波形発生器に波形をダウンロードし、Excelに保存します。
AgInfiniiumScopeAdvanced1.vee | MATLABで相互相関を表示します。
AgInfiniiumScopeAdvanced2.vee | バターワース・フィルタを表示します。
AgInfiniiumScopeAnalog.vee | アナログ波形とパラメータを表示します。
AgInfiniiumScopeDigital.vee | デジタル波形とパラメータを表示します。
AgN33xxa.vee | 入力をプログラムし、入力条件を測定し、ストリップ・チャートを表示します。
AgN4901b.vee | 自動アライメントとBER測定を実行します。
AgN6700b.vee | 出力をプログラムし、出力条件を測定し、出力パワーをストリップ・チャートに表示します。
Hp33120a.vee | 波形の形状、ピーク振幅、周波数を設定します。
Hp34401a.vee | 34401Aからデータを読み取ります。
Hp34401a_Excel.vee | 34401Aからデータを読み取ってExcelに送ります。
AgU2353a1.vee | Shows how to use VEE and the IVI COM driver to generate and retrieve data from a AgU2353a DAQ.
AgU2353a2.vee | Shows how to use VEE and the SCPI commands to generate and retrieve data from a AgU2353a DAQ.


計測器I/O
examples\InstrumentIO

計測器測定の例
サンプル名 | 説明
4195imp.vee | チップ型コンポーネントのインピーダンス特性を測定します。
4195net.vee | バンドパス・フィルタの伝送周波数応答を調べるための準備です。
4195s11.vee | 被試験デバイスのリターン・ロスを測定します。
4195s12.vee | 被試験デバイスの逆方向伝送係数を測定します。
4195s21.vee | 被試験デバイスの順方向伝送係数を測定します。
4195s22.vee | 被試験デバイスの逆方向反射係数を測定します。
4195spec.vee | 次のパラメータを持つ周波数信号の高調波歪みを調査します。 掃引開始周波数: 5 MHz 掃引終了周波数: 105 MHz R1入力減衰: 40 dB S1信号源振幅: -15 dB
4338_ext.vee | HP 4338A外部トリガを制御し、計測器ドライバ・シーケンス出力を使用してSRQおよびSPOLLを実行し、HP 4338Aコンポーネント・ドライバからの測定値を記録する方法を示します。
8720cal.vee | HP 8720Cの校正データを校正後にファイルに記録し、後でファイルから校正データを読み取って計測器にダンプする方法を示します。
8720lims.vee | HP 8720Cによるリミット・セグメント編集方法を示し、テスト・デバイス特性の測定結果に対してリミット・ライン・テストを実行します。
8720smp1.vee | 位相測定を実行し、リニア位相からのずれを調査します。
8720smp2.vee | HP 8720Cによる位相測定を実行し、選択したスティミュラス周波数に対する位相値を検出します。2番目のステートでは、Z:伝送特性測定を実行します。
8753lims.vee | HP 8753Cによるリミット・セグメント編集方法を示し、テスト・デバイス特性の測定結果に対してリミット・ライン・テストを実行します。
BpTr_STR.vee | バイポーラ・トランジスタに対するストレス測定を示します。
DIOFreq.vee | Direct I/Oオブジェクトを使ってHP 3478マルチメータの周波数応答を検出します。HP 3325Bファンクション・ジェネレータとHP 3478マルチメータが必要です。
enum_id.vee | Selection Controlオブジェクト（Enum）を使って、番号によって内部状態を選択するIDデバイスへの入力を生成します。
hpe1326.vee | HP E1326から測定値を取得します。測定値を取得するための遅延の後、測定値がファイルにアップロードされます。
hpe1413.vee | HP E1413データをファイルにアップロードし、データを表示します。
hpe1488a.vee | HP E1431Aの測定値を取得し、ローカル・バス経由でHP E1488Aに転送し、GPIB経由でデータを読み取って、Waveform表示に表示します。
hpe1562.vee | HP E1413の測定値を取得し、VMEバックプレーン経由でHP E1413 FIFOからHP E1562に直接転送します。その後、HP E1562から測定値を読み取って、ローカル・バスを通じてHP E1488Aに送信します。
gpibtest.vee | このユーティリティは、計測器との単純なGPIBトランザクションを実行します。
IC_IB_VB.vee | IC>1mAおよびIC<4mAに対応するhFE値を表示します。これは、上記の結果に基づくトランジスタ特性とhFE計算のよい例です。
IC_VCE.vee | バイポーラ・トランジスタのIC対VCE特性の例です。
ID_VDS1.vee | MOSFETのID-VGS特性の例です。Vth@ID=10mAおよびVth@MAX(Gm)に関する情報も提供します。
ID_VDS2.vee | MOSFETのID対VGS特性の例です。
IDfreq.vee | HP計測器ドライバ（HP-ID）を使ってHP 3478マルチメータの周波数応答を検出します。HP 3325Bファンクション・ジェネレータとHP 3478マルチメータが必要です。
cap4291.vee | 以下の調査に使用できます。 インピーダンスの周波数特性 キャパシタンスおよび損失係数のOSCレベル特性 キャパシタンスおよび損失係数の周波数特性 キャパシタンスおよび損失係数のDCバイアス電圧特性
imp4291.vee | 1000 kHz～1800 MHzの周波数掃引で抵抗およびリアクタンス測定を実行します。
instr.vee | VEEで計測器をプログラミングする3つの方法を示します。
k2000.vee | Keithley 2000デジタル・マルチメータの動作をテストします。
k2000_dc.vee | Keithley 2000電圧計を使用する例です。100 DCVの測定値が取得され、XY Traceに表示されます。
k2001.vee | Keithley 2001デジタル・マルチメータの動作をテストします。
k2001_dc.vee | 0.01のNPLCアパーチャを使ってDC測定値を取得するようにKeithley 2001を設定します。100個の測定値が取得され、平均されます。平均と値のプロットが表示されます。
logger1.vee | 単純なマルチチャネル・データ・ロガーの作成方法を示します。
logger2.vee | 測定データをファイルに保存するデータ・ロガーを示します。
loss4291.vee | 比誘電率の周波数特性を測定するために使用できます。チャネル1は実数誘電率（Er'）、チャネル2はロス・タンジェント（tan δ）を測定します。
perm1_91.vee | HP 4291A用のプログラムで、チャネル1で実数透磁率、チャネル2で磁気損失係数を測定します。
perm2_91.vee | 以下の測定に使用します。 比透磁率の周波数特性 比透磁率のOSCレベル特性 比透磁率のDCバイアス電流特性
prmtty_91.vee | HP 4291A用のプログラムで、チャネル1で実数誘電率、チャネル2で誘電損失係数を測定します。
rd126014.vee | 「データ・バッファ」のデータをRacal Dana 1260-14のポート1に書き込み、ポート0から読み取ります。
scopeMask.vee | HP 54502またはHP 54504オシロスコープの波形メモリ中にDS1マスクを表示します。これは、オシロスコープの波形メモリ中にマスクを作成するという概念を示します。これはDS1マスクに似たものを作成しますが、マスクの作成に用いられるデータは何らかの標準に準拠したものではありません。
smallsig.vee | 小信号利得を測定します。この測定は、増幅器などのアクティブ・デバイスのリニア動作領域での特性を調査するために使用できます。このプログラムには校正測定は含まれません。
Vdownld.vee | VXIコマンド・モジュールにドライバをダウンロードします。
DynamicChangeVisaAddress.vee | This programs shows how to change an instrument's VISA address programmatically.
DynamicControlMultiInstruments.vee | Controls a couple of instruments using the dynamic change of VISA interface and address.


IVIドライバのサンプル

AgilentPowerMeterAverages_VEE7.vee

AgilentPowerMeterCalAndZero_VEE7.vee

AgilentSA_VEE7.vee

AgilentSA.vee

Agilent33220.vee


製造アプリケーション
examples\Applications

製造の例

サンプル名

説明

mfgtest.vee

製造テスト・システムの構築に利用できるVEE機能を示します。次のようなVEE機能が紹介されています。

ダイアログ・ボックス:
このサンプルでは、何種類かのダイアログ・ボックスが使用されています。最も多く使用しているのは"login"関数です。これらは[Data] [image] [Dialog Box]メニューにあります。

キーボード操作:
このプログラムは、ダイアログ・ボックスでTabキー、スペース・バー、Enterキーを使って完全に制御できます。また、ファンクション・キーを押すことで使用できるカスタム・ダイアログもあります。

インジケータ:
Color AlarmやThermometerなどの表示オブジェクトを使って、実行中のテストの合否条件を示します。インジケータは、[Display] [image] [Indicator]メニューにあります。

Pictureオブジェクト:
このオブジェクトは、拡大縮小可能なオブジェクトにグラフィックスを表示します。これはテスト接続ダイアグラムの表示に使用されています。使用できるグラフィックス・ファイルは、GIF（Graphics Interchange Format）、BMP（ビットマップ）、XWD（X Window Dump）の各形式のものです。このオブジェクトは[Display]メニューにあります。

Sequencerステータス・パネル:
パネル・ビューの表示／非表示をプログラムで制御できる汎用関数が用意されています。これを使って、Sequencerの実行中にテストを動的に表示しています。

Sequencer:
SequencerにはExecTransという名前のデータ・ピンがあり、実行するテスト名の配列を取ります。複数選択リスト・ボックス（Dialog Boxオブジェクトの1つ）を使用することで、Sequencerが実行するテストをプログラムのユーザが動的に選択できるようになります。


MATLAB

MATLAB Script
examples\MATLAB

MATLAB Scriptの例
サンプル名 | 説明
BasicGraphManipulation.vee | 基本的なグラフとプロットの操作を示します。
FindMaximums.vee | グラフのピークを検出して強調表示する方法を示します。
Interpolation.vee | MATLABの1次元データ補間関数Interplを示します。
Logo3DPlot.vee | 見栄えのする3次元陰影付き表面プロットを作成します。
MultiGraphFigure.vee | サブプロットを作成して表示する方法を示します。
MultiTraceGraph.vee | 複数のグラフ・トレースをプロットして色分けする方法を示します。
Plot2DArray.vee | VEEの2次元配列データをプロットする方法を示します。
SignalProcessing.vee | MATLABの豊富な信号処理機能を紹介します。
Surf3DPlot.vee | MATLABの3次元陰影付き表面プロットを作成して回転する方法を示します。


機械アプリケーション
examples\Applications

機械の例
サンプル名 | 説明
beam.vee | 片持ち梁のたわみの問題にVEEを使用する方法を示します。このプログラムは、XY Trace表示を使用して、一様／ランプ／複合荷重条件での梁のたわみを示します。
chaos.vee | 単純な人口モデルの定常状態値を示します。
coilspr.vee | コイルばねの固有振動数を複数の可変パラメータを使って計算する方法を示します。
convcoef.vee | 自然対流熱伝達モデルにVEEを使用して、何種類かの立体または表面に対して熱伝達計数"h"を計算する方法を示します。
fluidflw.vee | 単純な機械工学問題の準備と解法を示します。また、データの入力／表示方法、式計算のための配列とグローバル変数の使用法も示します。
torsion1.vee | 単純な機械工学問題と解法を示します。基本的なデータ入力と表示、および計算式の使用法も示します。 このプログラムは、単純な式を使って、丸ねじれシャフトの角度たわみを、指定された直径、長さ、印加トルク、材料の剪断弾性係数に基づいて計算します。
torsion2.vee | 機械工学問題の準備と解法を示します。さまざまなデータ入力／表示方法、および計算式の使用法を示します。 このプログラムは、単純な式を使って、丸ねじれシャフトの角度たわみを、指定された直径範囲、長さ、印加トルク範囲、材料の剪断弾性係数に基づいて計算します。


Microsoft Access
examples\ActiveXAutomation

これらのプログラムを正しく実行するには、ここで参照されるアプリケーションと関連するActiveXオートメーション・タイプ・ライブラリがシステムにインストールされている必要があります。

Microsoft Accessとの連携の例
サンプル名 | 説明
AccessDataClient.vee | Accessを起動し、テスト・データとVEEのレコード・データをデータベース・ファイルtestData.mdbに保存し、その後に読み取ります。
AccessEnumerate.vee | testData.mdbという名前のDAO 3.6（ACCESS）データベースを読み取り、データベース中のテーブルを列挙（すべて表示）します。次に、resultsTable中のすべてのフィールドが列挙されます。これは、DAOがインストールされていること、データベースとレコードセットの開き方、カウントおよび名前プロパティの使用法などを示します。DAOエンジンによっていくつかの"MSys"テーブルが作成されることに注意してください。

関連項目

ActiveX参照の解放


Microsoft Excel
examples\ActiveXAutomation

これらのプログラムを正しく実行するには、ここで参照されるアプリケーションと関連するActiveXオートメーション・タイプ・ライブラリがシステムにインストールされている必要があります。

Microsoft Excelとの連携の例
サンプル名 | 説明
ExcelInsertData.exe | ExcelとActiveXオートメーションを使って、スプレッドシートのセルに1つずつランダム・データを入力します。その後、ExcelのAverage関数を使って、Excelに入力されたデータの平均を計算します。
ExcelInsertArrayData.vee | ExcelとActiveXオートメーションを使って、スプレッドシートのセルにランダム・データの配列を1動作で入力します。その後、ExcelのStDev関数を使って、Excelに入力されたデータの標準偏差を計算します。
ExcelGraph.vee | ExcelとActiveXオートメーションを使って、スプレッドシートにデータを入力します。その後、Excelを使って新規チャートを作成し、チャートを適切にフォーマットします。
ExcelUFunction.vee | ExcelとActiveXオートメーションを使って、スプレッドシートのセルに1つずつランダム・データを入力します。その後、ExcelのAverage関数を使って、Excelに入力されたデータの平均を計算します。
ExcelWeather.vee | ExcelとActiveXオートメーションを使って、天気予報を計算します。

ExcelからのVEEの呼び出し

SpreadsheetApp.xlsは、lib.vee中のVEE関数を呼び出すExcelファイルです。1つの関数は、ファイルから読み取ったデータからパルスを合成します。もう1つの関数は、パルスをテスト・リミットとともに表示します。例を開くには、Windows Explorerで次のファイルをダブルクリックします。

<VEE_install_dir>\examples\CallableVEE\Excel\SpreadsheetApp.xls

関連項目

ActiveX参照の解放


Microsoft Outlook
examples\ActiveXAutomation

これらのプログラムを正しく実行するには、ここで参照されるアプリケーションと関連するActiveXオートメーション・タイプ・ライブラリがシステムにインストールされている必要があります。

Microsoft Outlookの例
サンプル名 | 説明
Outlook.vee | VEEとMicrosoft OutlookのActiveXオートメーション機能を使って電子メールを送信します。

関連項目

ActiveX参照の解放


Microsoft Word
examples\ActiveXAutomation

これらのプログラムを正しく実行するには、ここで参照されるアプリケーションと関連するActiveXオートメーション・タイプ・ライブラリがシステムにインストールされている必要があります。

ActiveXオートメーションの例
サンプル名 | 説明
Word.vee | WordとActiveXオートメーションを使って、テスト・データとVEEのUserFunctionのビットマップをWord文書に挿入します。
WordDataSheet.vee | 1ページのデータシートのテンプレートとして使用されるWord文書内で、ActiveXオートメーション検索／置換を実行します。
WordMailMerge.vee | ActiveXを使って、mmerge.docという名前のWord文書内で、データベース・ファイルmmerger.mdbを使ってメール・マージを実行します。

関連項目

ActiveX参照の解放


Callable VEE

古いVEE RPC API
examples\CallableVEE\Rpc_api

古いVEE RPC APIの例
サンプル名 | 説明
lib.vee | DS1パルス・テスト関数など、いくつかの関数を含むVEEライブラリ。

DS1 Pulse Test

CallVEE.cは、lib.vee中の2つのVEE関数を呼び出すCソース・ファイルです。1つは、ファイルから読み取ったデータからパルスを合成します。もう1つは、パルスをテスト・リミットとともに表示します。

VEE 6.0以上を呼び出すには、Callable VEE ActiveX Automation Serverを使用することをお勧めします。ただし、古いC APIも引き続き使用できます。K&R C（C++でなく）を使用している場合は、古い方法を使用する方がよいでしょう。

例を開くには、Windows Explorerで次のファイルをダブルクリックします。

<VEE_install_dir>\examples\CallableVEE\Rpc_api\CallVEE.c


複数トレースの例

サンプル名

説明

2dXyTrace.vee

グラフィック・オブジェクトで1つの入力ピンを使って複数のトレースを表示する方法を示します。

MatrixInputStripChart.vee

-100～100の範囲の4つのRead64データをランダムに繰り返し生成し、Strip Chartに表示します。


PP_Examples

プログラムのプロパティの例

サンプル名

説明

ProgrammaticPropertyDemo.vee

プログラムでプロパティのGET/SETを行う方法を示します。

DemoTabIndexChangeDemo.vee

パネル・ビューのオブジェクトのTableIndexをプログラムで変更する方法を示します。

SelectionControlPropertiesDemo.vee

SelectionコントロールのEnableEditing、EnumIndex、EnumValue、EnumValuesをプログラムで変更する方法を示します。


Lib

VEE Libサンプル
examples\Lib

VEEのインストール・ディレクトリの下に、\libというディレクトリがあります。ここには、VEEプログラムで使用できるさまざまな関数やオブジェクトが用意されています。これらのオブジェクトをインポートするには、File [image] Mergeを使用します。次の例は、これらのライブラリ・オブジェクトを使用したプログラムを示します。

Libサンプル
サンプル名 | 説明
1dto2d.vee | Formulaオブジェクトと配列構築構文を使って、固定サイズの1次元入力配列から2次元配列を構築する方法を示します。
2dto1d.vee | MatToAry.veeライブラリ・オブジェクトを使って、多次元配列を1次元配列に平坦化する方法を示します。
barcht1.vee | BarChart.veeライブラリ・オブジェクトを使って、データの配列を表示する方法を示します。
barcht2.vee | BarPF.veeライブラリ・オブジェクトを使って、各要素を固定のリミットと比較することによりデータの配列を表示する方法を示します。
barcht3.vee | BarStack.veeライブラリ・オブジェクトを使って、2つのデータの配列を同時に表示する方法を示します。
barcht4.vee | BarComp.veeライブラリ・オブジェクトを使って、2つのデータの配列を同時に表示する方法を示します。
dialog.vee | dialogライブラリ・オブジェクトを使って、プログラムの特定のポイントでユーザ入力を求める方法を示します。このプログラムは、複雑なダイアログ・ボックスのための出発点として使用できます。単純なダイアログ・ボックスには、VEEの[Data]メニューにあるDialog Boxオブジェクトが使用できます。
keypad.vee | keypad.veeライブラリ・オブジェクトの使用法を示します。
maparray.vee | mapArray.veeライブラリ・オブジェクトを使って、SpectrumまたはWaveform入力の各要素に対応する数値の配列を構築する方法を示します。
multiplex.vee | Formulaオブジェクトをマルチプレクサ・オブジェクトとして使用する方法を示します。
pathsep.vee | pathSep.veeライブラリ・オブジェクトを使って、DOSとposixの両方のパス名に対してパス区切り文字を正規化する方法を示します。
piechart.vee | PieChart.veeライブラリ・オブジェクトを使って、データの配列を表示する方法を示します。
rmfile.vee | rmfile.veeライブラリ・オブジェクトの使用法を示します。
SMTPMail.vee | このライブラリ・オブジェクトは、To/From Socketオブジェクトを使って送信専用のSMTP（Simple Mail Transfer Protocol）機能を実現する方法を示します。
xy_cntrl.vee | XY Trace表示のトレースとスケールを、Record ConstantオブジェクトのTraces ControlおよびScales Controlを使って調整する方法を示します。これらのコントロールは、XY_cntrl.veeライブラリ・オブジェクトにあります。1つのスケールまたはトレースだけを制御するには、Traces ControlまたはScales Controlの[Properties]ダイアログ・ボックスを開き、[General]タブで[Array Size]を0に設定します。


概念

VEEプログラミングの概念
examples\Concepts

VEEプログラミングの例
サンプル名 | 説明
AdvancedDialog.vee | 初期パラメータを取り、ユーザ入力を検証し、ユーザが入力した情報を返すダイアログ・ボックスを作成する方法を示します。
alternateToIfThenElse.vee | デマルチプレクサ・オブジェクトとジャンクション・オブジェクトの使用法を示します。これらを使って複雑なif/then構造を回避することができます。
ascii.vee | キーボードの文字をASCIIコードに変換したり、ASCIIコードを文字に変換したりする方法を示します。
convert.vee | 10進、16進、8進、2進などのデータをVEEで簡単に処理する方法を示します。
complex.vee | 複素数および極座標複素数の生成／加算／処理／表示方法を示します。
datacomp.vee | 変更をチェックし、変更部分だけをタイムスタンプとともに記録することで、新規データを圧縮します。
feedback.vee | フィードバックを使用して単純な1極IIRデジタル・フィルタを実現する方法を示します。
fib.vee | フィードバックを使用して次のフィボナッチ数列などの式をモデリングする方法を示します。 a(n) = a(n-1) + a(n-2).
holdBackAndDelay.vee | GateおよびDelayオブジェクトを使ってプログラム・フローを制御する方法を示します。
if.vee | If/Then/Elseオブジェクトを使って値を出力する方法を示します。
ifThenExpressions.vee | 3項式の使用法を示します。
infoAbout.vee | これらのプログラム例の多くで使用されているポップアップ・ヘルプ・デバイスについて説明します。
integrate.vee | ダイアログ・ボックスに入力された上限と下限の間で関数を積分し、積分結果をグラフに表示する方法を示します。
iterateColumnOrRow.vee | 1次元配列を反復します。行と列の両方の反復方法を示します。
iterateOneDim.vee | For Eachオブジェクトを使って1次元配列を反復します。
iterateRecordFields.vee | この例は、レコード・スカラのフィールドを反復によって網羅する方法を示します。この例ではFor Eachオブジェクトを使用します。
iterateTwoDim.vee | For Eachオブジェクトを使って2次元配列を反復します。
layout1.vee | 左から右にデータが流れるようにVEEプログラムを配置することでプログラムが読みやすくなることを示します。
layout2.vee | プログラムのレイアウトでオブジェクトの位置とサイズを揃える効果を示します。
loop.vee | 1から10の間の整数乱数の列を生成し、合計が100以下になるものがいくつあるかを調べます。
magphase.vee | タイム・ドメイン波形の振幅／位相対周波数を表示する簡単な方法を示します。プログラム中のMag/Phase DisplayはUserObjectであり、組み込みの表示オブジェクトではありません。
nestedRecord.vee | Build Recordオブジェクトのネスト機能を示します。
oneshot.vee | トグル・ボタンを使ってワンショット・ボタンを作成する方法を示します。
opt1.vee | 並列演算を使ってデータの配列を処理します。
opt2.vee | データの2次元配列をファイルから読み取ります。
opt3.vee | 2つのスレッドのFormulaオブジェクトが式を評価する方法によって、「ふるい」の動作が高速または低速になることを示します。
redim.vee | 配列の次元を変更する方法を示します。
scattrgm.vee | X vs Y表示を使って散布図をプロットする方法を示します。
strings.vee | Function & Object Browser（[Device] [image] [Function & Object Browser]メニュー）から使用できる組み込みString関数の使用法を示します。
subrecord.vee | サブレコードをレコードとして扱う方法を示します。
text1.vee | テキスト文字列を結合するいくつかの方法を示します。
timetick.vee | On Cycleオブジェクト（[Flow] [image] [Repeat]メニュー）を使って、1秒の時刻クロックを生成します。
tofrom1.vee | プログラムの次の実行までの間データを保存するために、ファイルに記録されたデータを読み取って変更した後、同じファイルに最新データを書き込む方法を示します。
tofrom2.vee | 1つのスレッドがファイルに書き込み、別のスレッドがそれとは非同期にデータを読み取って処理する方法を示します。
tofrom3.vee | Radio ButtonsなどのSelection Controlオブジェクト（[Data] [image] [Selection Control]メニュー）とWRITE CASE I/Oトランザクションを組み合わせて使用する方法を示します。この方法を使って、わかりやすい文字列を対応する出力文字列にマッピングできます。
tofrom4.vee | トランザクションI/Oを使ってVEEの波形を書き込む方法を示します。このプログラムは、データ型変換とトランザクションI/Oのいくつかの概念を組み合わせたものです。結果を表示するのに便利なようにTo Stringオブジェクトを使用しています。To Stringオブジェクトの代わりに、同じトランザクションを持つTo Fileオブジェクトを使用することもできます。
tr_ctrl.vee | Strip Chart表示のTracesコントロール入力ピンの使用法を示します。このコントロール・ピンは、データの値に応じて、ラインの色を緑から赤に変更します。
truefals.vee | 数値からテキスト文字列TRUEおよびFALSEを生成する3つの方法を示します。
UserFunctions.vee | UserFunctionの呼び出し方法と、プログラム全体でUserFunctionを変更なしで使用する方法を示します。
whichos.vee | whichOS()およびwhichPlatform()関数を使ってコンピュータのオペレーティング・システムとプラットフォームを読み取る方法を示します。
wizbang.vee | アラーム、インジケータ、コントロールの使用法を示します。
zerofill.vee | 指定された長さまで0を補うことで配列を拡大するいくつかの方法を示します。Formulaオブジェクト内部で演算関数を使用する方法と、Allocate Arrayとrampを使って固定配列を生成する方法が示されます。


Visual Basic
examples\CallableVEE\VisualBasic

DS1 Pulse Test

CallVEE.vbpはVisual Basicプロジェクトです。このプログラムは、lib.vee中の2つのVEE関数を呼び出します。1つは、ファイルから読み取ったデータからパルスを合成します。もう1つは、パルスをテスト・リミットとともに表示します。Microsoft Visual Basicがシステムにインストールされていれば、Windows Explorerでこのファイルをダブルクリックすることでサンプルを開くことができます。

<VEE_install_dir>\examples\CallableVEE\VisualBasic\CallVEE.vbp


Visual Basic Script

VB Script
examples\CallableVEE\VBScript

Microsoft VB Scriptがシステムで使用可能であれば、Windows Explorerでダブルクリックすることでサンプルを開くことができます。

DS1 Pulse Test

CallVEE.vbsは、lib.vee中の2つのVEE関数を呼び出すVB Scriptファイルです。1つは、ファイルから読み取ったデータからパルスを合成します。もう1つは、パルスをテスト・リミットとともに表示します。

<VEE_install_dir>\examples\CallableVEE\VBScript\CallVEE.vbs

Callable VEEサーバ情報の取得

GetServerInfo.vbsはVB Scriptファイルであり、登録されているCallable VEEサーバの情報、例えばホストが使用しているI/O構成ファイルなどを返します。

<VEE_install_dir>\examples\CallableVEE\VBScript\GetServerInfo.vbs

波形の作成と表示

GetWaveform.vbsは、VEE固有のデータ型の1つを使用するVB Scriptファイルです。これは、Waveformデータを作成し、受け渡し、返す方法を示します。

<VEE_install_dir>\examples\CallableVEE\VBScript\GetWaveform.vbs

VEEライブラリの検索とロード

UsingInstallDir.vbsはVB Scriptファイルであり、VEEのインストール・ディレクトリを検出し、そのディレクトリを基準としてVEEライブラリをロードして呼び出します。

<VEE_install_dir>\examples\CallableVEE\VBScript\UsingInstallDir.vbs


Visual C++
examples\CallableVEE\VisualC++

DS1 Pulse Test

CallVEE.cppは、lib.vee中の2つのVEE関数を呼び出すVisual C++ファイルです。1つは、ファイルから読み取ったデータからパルスを合成します。もう1つは、パルスをテスト・リミットとともに表示します。Microsoft Visual C++がシステムにインストールされていれば、Windows Explorerでこのファイルをダブルクリックすることでサンプルを開くことができます。

<VEE_install_dir>\examples\CallableVEE\VisualC++\CallVEE.cpp


ASCII表

次の表は、ASCII 7ビット文字コードの一覧です。

 | 2進 | 8進 | 16進 | 10進 | GPIBメッセージ
NUL | 0000000 | 000 | 00 | 0 |
SOH | 0000001 | 001 | 01 | 1 | GTL
STX | 0000010 | 002 | 02 | 2 |
ETX | 0000011 | 003 | 03 | 3 |
EOT | 0000100 | 004 | O4 | 4 | SDC
ENQ | 0000101 | 005 | 05 | 5 | PPC
ACK | 0000110 | 006 | 06 | 6 |
BEL | 0000111 | 007 | 07 | 7 |
BS | 0001000 | 010 | 08 | 8 | GET
HT | 0001001 | 011 | 09 | 9 | TCT
LF | 0001010 | 012 | 0A | 10 |
VT | 0001011 | 013 | 0B | 11 |
FF | 0001100 | 014 | 0C | 12 |
CR | 0001101 | 015 | 0D | 13 |
SO | 0001110 | 016 | 0E | 14 |
SI | 0001111 | 017 | OF | 15 |
DLE | 0010000 | 020 | 10 | 16 |
DC1 | 0010001 | 021 | 11 | 17 | LLO
DC2 | 0010010 | 022 | 12 | 18 |
DC3 | 0010011 | 023 | 13 | 19 |
DC4 | 0010100 | 024 | 14 | 20 | DCL
NAK | 0010101 | 025 | 15 | 21 | PPU
SYN | 0010110 | 026 | 16 | 22 |
ETB | 0010111 | 027 | 17 | 23 |
CAN | 0011000 | 030 | 18 | 24 | SPE
EM | 0011001 | 031 | 19 | 25 | SPD
SUB | 0011010 | 032 | 1A | 26 |
ESC | 0011011 | 033 | 1B | 27 |
FS | 0011100 | 034 | 1C | 28 |
GS | 0011101 | 035 | 1D | 29 |
RS | 0011110 | 036 | 1E | 30 |
US | 0011111 | 037 | 1F | 31 |
SPACE | 0100000 | 040 | 20 | 32 | listen 0
! | 0100001 | 041 | 21 | 33 | listen 1
" | 0100010 | 042 | 22 | 34 | listen 2
# | 0100011 | 043 | 23 | 35 | listen 3
$ | 0100100 | 044 | 24 | 36 | listen 4
% | 0100101 | 045 | 25 | 37 | listen 5
& | 0100110 | 046 | 26 | 38 | listen 6
' | 0100111 | 047 | 27 | 39 | listen 7
( | 0101000 | 050 | 28 | 40 | listen 8
) | 0101001 | 051 | 29 | 41 | listen 9
* | 0101010 | 052 | 2A | 42 | listen 10
+ | 0101011 | 053 | 2B | 43 | listen 11
, | 0101100 | 054 | 2C | 44 | listen 12
- | 0101101 | 055 | 2D | 45 | listen 13
. | 0101110 | 056 | 2E | 46 | listen 14
/ | 0101111 | 057 | 2F | 47 | listen 15
0 | 0110000 | 060 | 30 | 48 | listen 16
1 | 0110001 | 061 | 31 | 49 | listen 17
2 | 0110010 | 062 | 32 | 50 | listen 18
3 | 0110011 | 063 | 33 | 51 | listen 19
4 | 0110100 | 064 | 34 | 52 | listen 20
5 | 0110101 | 065 | 35 | 53 | listen 21
6 | 0110110 | 066 | 36 | 54 | listen 22
7 | 0110111 | 067 | 37 | 55 | listen 23
8 | 0111000 | 070 | 38 | 56 | listen 24
9 | 0111001 | 071 | 39 | 57 | listen 25
: | 0111010 | 072 | 3A | 58 | listen 26
; | 0111011 | 073 | 3B | 59 | listen 27
< | 0111100 | 074 | 3C | 60 | listen 28
= | 0111101 | 075 | 3D | 61 | listen 29
> | 0111110 | 076 | 3E | 62 | listen 30
? | 0111111 | 077 | 3F | 63 | UNL
@ | 1000000 | 100 | 40 | 64 | talk 0
A | 1000001 | 101 | 41 | 65 | talk 1
B | 1000010 | 102 | 42 | 66 | talk 2
C | 1000011 | 103 | 43 | 67 | talk 3
D | 1000100 | 104 | 44 | 68 | talk 4
E | 1000101 | 105 | 45 | 69 | talk 5
F | 1000110 | 106 | 46 | 70 | talk 6
G | 1000111 | 107 | 47 | 71 | talk 7
H | 1001000 | 110 | 48 | 72 | talk 8
I | 1001001 | 111 | 49 | 73 | talk 9
J | 1001010 | 112 | 4A | 74 | talk 10
K | 1001011 | 113 | 4B | 75 | talk 11
L | 1001100 | 114 | 4C | 76 | talk 12
M | 1001101 | 115 | 4D | 77 | talk 13
N | 1001110 | 116 | 4E | 78 | talk 14
O | 1001111 | 117 | 4F | 79 | talk 15
P | 1010000 | 120 | 50 | 80 | talk 16
Q | 1010001 | 121 | 51 | 81 | talk 17
R | 1010010 | 122 | 52 | 82 | talk 18
S | 1010011 | 123 | 53 | 83 | talk 19
T | 1010100 | 124 | 54 | 84 | talk 20
U | 1010101 | 125 | 55 | 85 | talk 21
V | 1010110 | 126 | 56 | 86 | talk 22
W | 1010111 | 127 | 57 | 87 | talk 23
X | 1011000 | 130 | 58 | 88 | talk 24
Y | 1011001 | 131 | 59 | 89 | talk 25
Z | 1011010 | 132 | 5A | 90 | talk 26
[ | 1011011 | 133 | 5B | 91 | talk 27
\ | 1011100 | 134 | 5C | 92 | talk 28
] | 1011101 | 135 | 5D | 93 | talk 29
^ | 1011110 | 136 | 5E | 94 | talk 30
_ | 1011111 | 137 | 5F | 95 | UNT
` | 1100000 | 140 | 60 | 96 | second 0
a | 1100001 | 141 | 61 | 97 | second 1
b | 1100010 | 142 | 62 | 98 | second 2
c | 1100011 | 143 | 63 | 99 | second 3
d | 1100100 | 144 | 64 | 100 | second 4
e | 1100101 | 145 | 65 | 101 | second 5
f | 1100110 | 146 | 66 | 102 | second 6
g | 1100111 | 147 | 67 | 103 | second 7
h | 1101000 | 150 | 68 | 104 | second 8
i | 1101001 | 151 | 69 | 105 | second 9
j | 1101010 | 152 | 6A | 106 | second 10
k | 1101011 | 153 | 6B | 107 | second 11
l | 1101100 | 154 | 6C | 108 | second 12
m | 1101101 | 155 | 6D | 109 | second 13
n | 1101110 | 156 | 6E | 110 | second 14
o | 1101111 | 157 | 6F | 111 | second 15
p | 1110000 | 160 | 70 | 112 | second 16
q | 1110001 | 161 | 71 | 113 | second 17
r | 1110010 | 162 | 72 | 114 | second 18
s | 1110011 | 163 | 73 | 115 | second 19
t | 1110100 | 164 | 74 | 116 | second 20
u | 1110101 | 165 | 75 | 117 | second 21
v | 1110110 | 166 | 76 | 118 | second 22
w | 1110111 | 167 | 77 | 119 | second 23
x | 1111000 | 170 | 78 | 120 | second 24
y | 1111001 | 171 | 79 | 121 | second 25
z | 1111010 | 172 | 7A | 122 | second 26
{ | 1111011 | 173 | 7B | 123 | second 27
| | 1111100 | 174 | 7C | 124 | second 28
} | 1111101 | 175 | 7D | 125 | second 29
~ | 1111110 | 176 | 7E | 126 | second 30
[del] | 1111111 | 177 | 7F | 127 |


エラー・コード

下の表は、エラー端子から出力されるエラー・コードに対応するエラー・メッセージの一覧です。

エラー・コード | 説明
オブジェクト |
300 | 入力端子番号<n>が接続されていません
301 | 入力<n>が存在しません（有効範囲 = [<n>..<n>]）
302 | 入力をこれ以上追加できません - 上限値<n>
303 | 入力は<type>でなければなりません
304 | 入力は<type>にはできません
305 | 入力が一致しません:<name>、<name>
306 | 必須入力<name>が存在しません
308 | 必須出力<name>が存在しません
309 | 出力が一致しません:<name>、<name>
310 | 出力<n>が存在しません（有効範囲 = [<n>..<n>]）
311 | 出力をこれ以上追加できません - 上限値<n>
312 | <type>が選択されていません
313 | <operation>はサポートされていません
314 | パラメータの組み合わせが無効です:<n>
315 | コンポーネント<name>を追加できません
317 | 切り替えるパネルがありません
318 | UserFunction <name>にはパネル・ビューがありません
320 | 子プロセスを実行できませんでした
321 | 子プロセスが終了しました
322 | パイプを開けませんでした
323 | リストに要素がありません
330 | 最大値は最小値より大きくなければなりません。
331 | VEE はこのプログラムをロードまたは実行できません
340 | 複数のXEQピンを持つオブジェクトはコンパイルできません
341 | XEQピンはいちばん下のデータ入力ピンでなければなりません
342 | XEQピンを持つコンテキスト・オブジェクトはコンパイルできません
343 | UserObjectは自分の編集ウィンドウに存在できません
344 | CallBoxは呼び出し元の関数に存在しません（再帰は使用できません）
345 | デバイス名が重複しています。<name>を一意に変更してください。
346 | デバイスのNameを指定する必要があります。
347 | 反復子またはジャンクションにエラー・ピンがあるプログラムはコンパイルできません
コンテナ |
400 | 値が空またはNULLです（0要素配列の可能性もあります）
401 | 値が範囲外です（有効範囲 = [<n>..<n>]）
402 | <name>の値は<type>でなければなりません
403 | <name>の値が範囲外です
404 | 数値は正でなければなりません
405 | <name>が見つかりませんでした
410 | 値はスカラでなければなりません
411 | 値は配列でなければなりません
412 | 値はスカラまたはリニア配列でなければなりません
413 | 値は<n>次元配列でなければなりません
414 | 値は波形またはリニア配列でなければなりません
415 | 値は同じ数の次元を持つ必要があります
416 | 値は同じサイズと種類でなければなりません
417 | レコード構造が一致する必要があります
418 | レコードをマージできません
420 | 値は正方行列でなければなりません
421 | 行列値の種類が行列乗算に適合しません
422 | 値は列の数が奇数の行列でなければなりません
430 | スカラに0以外のインデックスでアクセスすることはできません
431 | 配列インデックスの値が範囲外です
432 | 配列／サブ配列のインデックスの値が不適切です
433 | 指定された配列次元の数が多すぎます（最大値 = <n>）
434 | 値は<n>個のフィールドを持つ必要があります
435 | 2つの値は同じ数のフィールドを持つ必要があります
440 | データ型<type>に対する無効な操作です
441 | スカラ値に対する無効な操作です
442 | <n>次元配列に対する無効な操作です
443 | 数値に対してのみ有効な操作です
444 | 宣言された変数に対する無効な代入です
445 | 初期化されていない宣言された変数<name>にアクセスしようとしました
450 | この操作では配列がマッピングされている必要があります
451 | 値の配列マッピングが一致する必要があります
452 | 配列マッピングのサンプル周波数が一致する必要があります
453 | <type>は垂直ステップを持つことはできません
454 | 配列の構築は使用できません
460 | 配列と関数は増減できません
461 | 値は16桁を超えています -- 増減できません
462 | 定数またはパラメータ<name>の上書きに失敗しました
463 | 入力座標が"X"について単調ではありません
464 | <type>を<type>に変換できません。
465 | <action>は使用できません<message>
演算 |
500 | 関数<name>の引数の値が無効です
501 | 関数<name>には負の値は使用できません
502 | 関数<name>には<n>個の引数が必要です
510 | 関数<name>での演算エラーです
511 | 0で除算／モジュロを実行しました
512 | 負の値の整数でない数のべき乗（<n>）を取ることはできません
513 | 0の正でない数のべき乗（<n>）を取ることはできません
514 | 関数<name>での数値データ・オーバーフローです
515 | 関数<name>での数値データ・アンダーフローです
516 | <name>の計算中に和のオーバーフローが生じました
517 | 関数またはUserFunction'<name>'が不明です
520 | 対数マッピングの境界は0より大きくなければなりません
521 | 対数マッピング関数のXデータは0より大きくなければなりません
522 | <n>次の導関数はサポートされません
523 | 多次元配列の補間はサポートされません
ActiveX |
550 | ActiveXオブジェクト<name>でエラーが発生しました
551 | ActiveXオブジェクトが互換性のないデータ型<name>を返しました
552 | 参照されたActiveXオブジェクトの<name>でエラーが発生しました
553 | ActiveXオブジェクトが<action> <name>中にエラーを返しました
554 | <name>は参照されたActiveXオブジェクトのメンバではありません
555 | プロパティ<name>を値を指定せずに設定しようとしました
556 | ActiveXオブジェクトはインタフェース<name>を実装していません
557 | ActiveXオブジェクトを作成できませんでした
558 | <name>のターゲット・オペレーティング・システム・プラットフォームはWIN32ではありません
559 | <name>からタイプ・ライブラリをロードできませんでした
560 | プロパティ<name>が見つかりませんでした
561 | <name>に関する型情報がロードされていません
562 | 無効なCLSID:<number>
563 | 無効なProgID:<name>
564 | <name>とのイベント接続を確立できませんでした
565 | ActiveXオブジェクト<name>にアクセスできません
566 | ActiveXオブジェクトが互換性のない値を返しました
567 | ActiveXオブジェクト<name>のインスタンスを取得できませんでした
568 | VEEオブジェクト・プロパティへのプログラムからのアクセスに失敗しました
569 | ActiveXオートメーション配列エラー
570 | ActiveXオートメーション配列のデータにアクセスできません
571 | リモート・オブジェクトを作成できません。DCOMがインストールされていません。MicrosoftのWebサイトからDCOM95をダウンロードしてインストールしてください
MATLAB SCRIPT |
590 | MATLABがインストールされていません。VEEを再インストールし、MATLAB Scriptインストール・オプションを選択してください。
591 | MATLAB Scriptエンジンを開始できませんでした
592 | 一般MATLABエラー<message>
593 | MATLAB Scriptのエラー
594 | MATLABデータに無限大またはNaNが含まれます
式 |
600 | 構文エラー:<description>
601 | 無効な式:<description>
602 | 関数が見つかりませんでした:<name>
603 | 変数が見つかりませんでした:<name>
604 | 関数がロード不可能でした:<name>
610 | 与えられた引数が多すぎます（最大値 = <n>）
611 | 関数<name>に与えられたパラメータの数が間違っています
620 | 名前または文字列定数が長すぎます（> n文字）
621 | シンボル名<name>が重複しています
622 | 変数／端子名<name>が無効です
623 | 文字列の終了引用符が見つかりませんでした
624 | 文字列の解釈中に無効な文字が見つかりました
625 | エスケープ・シーケンス<sequence>が無効です
626 | レコード・ファイル名<name>が重複しています
627 | ライブラリ名<name>が重複しています
628 | レコード・ファイル名<name>が無効です
629 | UserFunction名<name>が無効です
630 | 値が無効です
631 | 式の値はすべて0またはすべて0以外でなければなりません
640 | 不一致エラー:<name>であるべきところが<name>になっています
641 | 不明なパラメータ:<name>
642 | 未定義のパラメータ:<name>
643 | このプログラムには実行ウィンドウがありません
650 | ライブラリ<name>には実行中の関数が含まれます。削除できません
660 | 無効な名前:<name>
ファイル |
700 | ファイル<name>が見つかりませんでした
701 | ファイル終了、またはデータが見つかりません
702 | ファイル<name>を開けません:権限が拒否されました
703 | ファイル<name>を読み取れません
704 | ファイル<name>に書き込めません
705 | ファイル<name>の読み取りエラーです
706 | ファイル終了、または一致が見つかりません
707 | <n>を読み取る必要があるところで<m>しか見つかりませんでした
708 | 読み取るバイト数はデータ・サイズの倍数でなければなりません
710 | ファイル<name>は名前付きパイプではありません
711 | ファイル<name>を作成できません
712 | ファイル<name>はすでに存在します
713 | パスに無効なディレクトリ名<name>があります
714 | ファイルはディレクトリです
715 | ディレクトリが空ではありません
716 | ファイル<name>を実行できません
717 | 作業ディレクトリ<name>が無効です
718 | プロセスを作成できませんでした（Windowsエラー番号:<n>）
720 | ファイルが使用中です
721 | デバイスがビジーです
722 | 異なるファイル・システムにアクセスできません
723 | 開かれているファイルが多すぎます
724 | ファイルが大きすぎます
725 | ディスクがいっぱいです
726 | ファイルのシーク中にエラーが発生しました
727 | システム・ファイル番号が無効です
728 | シンボリック・リンクが多すぎます
729 | ファイル・フォーマットが無効です
730 | ファイルにUserFunctionが見つかりません
733 | 保護されたプログラムをマージできません
734 | 共有メモリ・セグメントを作成できませんでした
736 | バイナリ・ファイル<name>を読み取れません
737 | バイナリ・ファイル<name>に書き込めません
738 | 解釈エラーから回復できませんでした
739 | コンパイル済み関数から戻った後でスタック・ポインタが破損しています
.NET |
751 | .NET呼び出しエラーです
752 | 例外
753 | デフォルト・メンバがありません
754 | .NETにアクセスできません
755 | プロパティ設定値がありません
756 | オブジェクトを作成できませんでした
757 | メンバ情報を取得できませんでした
758 | VEEを.NETに接続できませんでした
759 | 名前空間を取得できませんでした
760 | 型が見つかりません
761 | イベント接続に失敗しました
763 | イベント接続を確立できませんでした
764 | .NET操作を構築できませんでした
765 | コントロールは別のコントロールにプログラムで追加しなければならない可能性があります
I/O |

800

デバイスが存在しないか、間違ったアドレスです

801

構成エラー:<description>

802

無効な特殊デバイス・ファイル<name>が見つかりました

803

デバイス<name>はメッセージ・ベースではありません

804

デバイス<name>のメモリへの無効なアクセスです

810

計測器ドライバ・エラー<n>:<description>
詳細については計測器のマニュアルを参照してください

811

I/Oエラーまたはタイムアウトが発生しました

812

無効なbinブロック・ヘッダです

813

GPIBにアクセスするにはアクティブなシステム・コントローラでなければなりません

814

<device> <interface>に対するロック取得に失敗しました

815

VXIplug&play関数呼び出しからエラーが返されました。エラー値<n>

816

VXIplug&playのinit()関数呼び出しからエラーが返されました。エラー値<n>

817

NIDAQドライバ関数呼び出しからエラーが返されました

818

NIDAQのNIxxxx_init()関数呼び出しからエラーが返されました

821

<name>インタフェースに対するトランザクションはサポートされません

830

アプリケーション<name>、トピック<name>に対するDDEリンクを開始できませんでした

831

アイテム<name>に対するDDE POKEに失敗しました

832

アイテム<name>からのDDE REQUESTに失敗しました

833

DDE EXECUTEが失敗しました

850

ホスト<name>が不明です

851

ホスト<name>にサービス・マネージャがありません

852

このホストではネットワーク機能が初期化されていません

853

接続がタイムアウトしました

854

ネットワークでの受信前に割り込みが発生しました

855

ピアによって接続がシャットダウンされました

856

オペレーティング・システムのバッファ・スペースが不足しています

857

ネットワークが停止しています

858

ホスト<name>への接続前に割り込みが発生しました

859

ポート<name>はすでに使用中です

860

<name>への接続試行がタイムアウトしました

861

<name>のサービス・マネージャが応答しませんでした

862

ホスト<name>のサービス<name>が応答しませんでした

863

ホスト<name>のサービス<name>が見つかりません

864

ホスト<name>のサービス<name>を開始できません

865

ホスト<name>のサービス<name>でエラーが発生しました

866

ホスト<name>で接続が拒否されました

867

サービス<name>のUserFunction<name>が見つかりませんでした

868

ホスト<name>のユーザ<name>に対する権限が拒否されました

869

ホスト<name>のリモート・サービス<name>がエラーを報告しています:<n>

870

非ブロッキング受信

871

リモート・デバッグが完了前に終了しました

876

COM HRESULTにエラー・コードが返されました

877

パラメータ<name>はByRefで渡されるべきです

878

<name>から無効な値が返されました

879

VEEデータ・コンテナが空です

880

配列<name>のサイズはフィールド数<n>の倍数でなければなりません

システム

900

プログラムの実行中にはこの操作は使用できません

901

無効なフィードバック形式です

902

予期しないBREAKが見つかりました

903

予期しないCONTINUEが見つかりました

904

無効なデバイスが見つかりました

905

リビジョン"<rev>"が無効です（正しくは"<rev>"）

906

フィードバックを持つスレッドにはSTARTオブジェクトが必要です

910

プロセスのメモリが不足しています。ただちにプログラムを保存してください

911

浮動小数点例外です。オーバーフロー／アンダーフローの可能性があります

912

システム・プロセスの数が多すぎます

913

リセットまたはブレークが発生しました

914

表示を開けません

915

オペレーティング・システムのリソースが不足しています

920

読み取るプロセスのないパイプに書き込みました（シグナル = <n>）

921

ユーザ定義シグナル1が受信されました（シグナル = <n>）

922

ユーザ定義シグナル2が受信されました（シグナル = <n>）

930

PreRun中にエラーが発生しました

935

フィードバック・サイクル中にはJunctionが必要です

936

UserFunctionはリエントラントではありません

937

Sample & Holdにデータが与えられませんでした

938

VEEはプログラムのこの部分をコンパイルできませんでした

939

スレッドが入力端子に接続されている場合はSTARTを押すことはできません

940

無効なフィードバック形式です

941

T1はT2より前にアクティブになる必要があります

950～999

Excelライブラリ

2001

  • 256列目より後ろまたは1列目より前に移動しようとしました

  • 1行目より上または最終行より下に移動しようとしました

  • 無効なセルまたは範囲アドレスが見つかりました。行または列番号に変換します:<column>

  • 256列目より後ろにデータを送ろうとしました

2002

  • 3つ以上の次元を持つデータを送ろうとしました

  • データ型エラー\nENUM - レコードの一部としてのみ送信できます\nSPECTRUM - 例を参照\nCCOMPLEX、例を参照\nPCCOMPLEX、例を参照\nCOORD、例を参照\nOBJECT - Excelライブラリではサポートされません

  • 3次元以上のレコードを送ろうとしました

2003

このシートは保護されており、変更できません

2004

  • このシートは現在のワークブックに見つかりません

  • このワークブックは現在開いているワークブックのセットに見つかりません

2005

ワークブックが開いていない状態でデータを送ろうとしました

2006

SendRecordの入力がレコードではありません

2007

  • SendDataSettings.ThreeDArraysに対する値が不明です

  • Printの入力端子の値が不明です

2008

配列のサイズが254を超えています。254個を超える新規シートは作成できません

2022

チャート・タイプが不明です

2023

折れ線グラフ設定のNames配列のエラーです。原因としては、配列がデータ配列よりも小さいことが考えられます。また、Logarithmicを選択した場合、データ中に負の値がないことを確認してください。

2025

ActiveChart.ApplyCustomType(xlBuiltIn, &ldquo;Logarithmic&rdquo;)のエラーです。英語版以外のOfficeはこれをサポートしません。対策についてはオンライン・ヘルプを参照してください。

関連項目

VEEでの.NETエラーについて


アクティブにする

1. コンテナを端子に送ること。関連項目: コンテナ、端子.

2. UserObjectが動作する前にそのコンテキストをリセットする動作。関連項目: コンテキスト、PreRun.


ActiveX

Windowsプラットフォームでのプロセス間通信のための機構。ActiveXはMicrosoft COMに基づくテクノロジーの集合であり、ActiveXコントロールやActiveXオートメーション・サーバなどの分散コンピューティングのためのさまざまな機能を含みます。


割り当てる

VEE配列を初期化すること。割り当てでは、次元数と各次元の要素数が設定され、配列に初期データが格納されます。例えば、2次元整数配列はデフォルトで0の値で初期化されます。


配列

数学的な配列に対応するデータの種類で、データ項目（すべて同じデータ型）のグループを含み、1つまたは複数の次元を持ちます。データ項目にアクセスするには配列インデックスを使用します。VEEでは、1次元の配列を「Array 1D」、2次元の配列を「Array 2D」などと呼びます。関連項目: データの種類.


非同期

非同期動作では、デバイスはイベントを同期する共通の信号なしで動作します。イベントは不定の時刻に発生します。VEEのコントロール・ピン（表示オブジェクトのClearピンなど）は非同期です。


Auto Execute

データ定数オブジェクトのオブジェクト・メニューのオプション。Auto Executeが設定され、プログラムがまだ実行されていない場合、オブジェクトは値が編集されたときに動作します。プログラムの実行中はAuto Executeは無視されます。


ビットマップ

ビット・パターンまたは画像。VEEでは、Pictureオブジェクトまたはアイコンにビットマップを表示できます。また、メイン・プログラムのパネル・ビュー、UserObjectのパネル・ビュー、UserFunctionのパネル・ビューの背景にもビットマップを表示できます。


ブレークポイント

プログラムのデバッグ用のツール。オブジェクトにブレークポイントを設定すると、プログラムはそのオブジェクトが動作する直前に休止します。


バッファ

情報が一時的に記憶されるメモリ領域。


ボタン

押しボタンや選択ボタンに似せたVEEのグラフィカル・オブジェクト。画面から飛び出たように表示されます。VEEのボタンをマウスでクリックして「押す」と、特定の操作が実行されます（マウスの左または右のボタンを指す場合もあります）。


カスケード・メニュー

プルダウン・メニューやポップアップ・メニューで追加の選択肢を提供するサブメニュー。


チェックボックス

メニューやダイアログ・ボックスに表示されるくぼんだ四角形のボックス。設定を選択するために使用します。設定を選択するには、ボックスをクリックします。ボックスの中にチェック・マークが表示されて、選択されたことが示されます。設定をキャンセルするには、ボックスを再びクリックします。


クリック

マウス・ボタンを押して離すこと。クリックは通常、VEEウィンドウ内のメニュー機能やオブジェクトを選択します。関連項目: ダブルクリック、ドラッグ.


クローン

オブジェクト・メニューにあるメニュー項目の1つ。オブジェクトとオブジェクト間の相互接続を複製し、そのコピーをPasteバッファに置きます。クローンは、クローンされるオブジェクトのピン、パラメータ、サイズなどのすべての属性をコピーします。


コンパイル済み関数

Cなどのプログラミング言語で作成されたプログラムをVEEプロセスに動的にリンクすることによって作成されるユーザ定義関数。ユーザはDLL（動的リンク・ライブラリ）ファイルと定義ファイルを作成する必要があります。Import LibraryオブジェクトがDLLをVEEプロセスに接続し、定義ファイルの宣言を解析します。コンパイル済み関数は、Call Functionオブジェクトまたは一部の式から呼び出すことができます。関連項目: UserFunction、リモート関数.


コンポーネント

VEEの計測器パネルやコンポーネント・ドライバにある単一の計測機能または測定値。例えば、電圧計ドライバには、レンジ、トリガ・ソース、最新の表示値を記録するコンポーネントがあります。関連項目: コンポーネント・ドライバ、ドライバ・ファイル、ステート、計測器パネル.


コンポーネント・ドライバ

選択した特定のコンポーネントに対する値の読み書きを行う計測器制御オブジェクト。一度に少数のコンポーネントの値だけを設定することにより、ドライバを使用する計測器を制御するには、コンポーネント・ドライバを使用します（コンポーネント・ドライバは連動をサポートしません）。


複合データ型

種類を持つデータ型。関連項目: データの種類、データ型.


コンテナ

参照: データ・コンテナ.


コンテキスト

ほかのレベルの作業領域（ネストされたUserObjectsなど）を保持できるが、それに依存しない作業領域のレベル。


コントロール・ピン

オブジェクトの他の入力ピンにデータが入るのを待たずにオブジェクトにデータを伝送する非同期入力ピン。例えば、VEEのコントロール・ピンは表示のクリアやオートスケールに多く用いられます。


連動

計測器のいくつかの機能の相互関係。計測器パネルで機能AとBが連動している場合、Aの値を変更すると、Bを明示的に変更していなくても、Bの値が自動的に変更されます。


カーソル

キーボードから情報を入力するときに、英数字データが表示される箇所を示す入力フィールド内のポインタ（カレット）。


カット・バッファ

切り取りまたはコピーされたオブジェクトを保持するバッファ。オブジェクトはEdit [image] Pasteを使って作業領域に貼り付けることができます。


データ・コンテナ

ライン上を伝送され、オブジェクトによって処理されるデータ・パッケージ。各データ・コンテナは、データのほか、データ型、データの種類、およびマッピング（存在する場合）を保持します。


データ・フィールド

トランザクション指定の中のフィールドで、書き込む式（WRITEトランザクション）または読み取るデータを受け取る変数（READトランザクション）を指定します。関連項目: トランザクション.


データ・フロー

VEEオブジェクトを介したVEEオブジェクト間のデータの流れ。データは、オブジェクトを介して左から右へと流れますが、オブジェクトは、そのデータ入力ピンのすべてにデータが伝達されるまで実行されません。データは、1つのオブジェクトのデータ出力ピンから、次のオブジェクトのデータ入力ピンに伝達されます。データ・フローは、VEEプログラムの実行を決定する主要な要素です。


データ入力ピン

オブジェクトの左側にある接続点。ここからオブジェクトにデータが流れ込みます。


データ出力ピン

オブジェクトの右側にある接続点。データ・フローを次のオブジェクトに伝達し、このオブジェクトの動作結果を次のオブジェクトに渡します。


データセット

「レコード」コンテナの集合をファイルに保存して後で読み取れるようにしたもの。To DataSetオブジェクトは、入力でレコード・データを収集し、そのデータを指定されたファイル（データセット）に書き込みます。From DataSetオブジェクトは、指定されたファイル（データセット）からレコード・データを読み取り、そのデータをレコード・コンテナとしてRec出力ピンから出力します。関連項目: レコード.


データの種類

各データ・コンテナには、種類と型の両方があります。データの種類は、スカラまたは配列です。データの種類は、スカラまたは1次元以上の配列のどちらかになります。VEEでは、1次元の配列を「Array 1D」、2次元の配列を「Array 2D」などと呼びます。


データ型

各データ・コンテナには、型と種類の両方があります。VEEでは、Text、Int16、Real64、Complex、Waveformなどのデータ型がサポートされます。


DDE（Dynamic Data Exchange）

Windowsプラットフォームでのプロセス間通信のための機構。DDEは古い機構であり、ActiveX .


デフォルト

自動的に選択される値または動作。例えば、VEEではデフォルトの色やフォントが用意されています。これらはDefault Preferencesダイアログ・ボックスで変更できます。


デフォルト・ボタン

EnterまたはReturnが押されたとき、または選択肢がダブルクリックされたときにデフォルトでアクティブにされるダイアログ・ボックスのボタン。デフォルト・ボタンのラベルは太字で表示されます。


降格

情報量の多いデータ型から少ないデータ型への変換。関連項目: データ型、昇格.


詳細ビュー

すべてのオブジェクトと、それらの間のラインを表示するVEEプログラムのビュー。


デバイス・ドライバ

参照: インタフェース・ドライバ.


ダイアログ・ボックス

VEEが続行するためにユーザからの情報を必要とするときに表示される2次的なウィンドウ。例えば、ダイアログ・ボックスにはユーザが選択できるファイルのリストが表示されます。


Direct I/Oオブジェクト

VEEが専用ドライバを使用しないで計測器を直接制御するための計測器制御オブジェクト。


DLL（Dynamically Linked Library）

Windows版のVEEから呼び出せるCで書かれた関数の集合。DLLは、Microsoftから提供されているツールを使って、熟練したCプログラマが作成することができます。


ダブルクリック

マウス・ボタンを続けて2度すばやく押して離すこと。ダブルクリックは通常、選択と操作の実行を一度に行う簡単な方法です。例えば、File [image] Openでファイル名をダブルクリックすると、そのファイルが選択されて開かれます。


ドラッグ

マウス・ボタンを押し、それを押したままマウスを移動すること。ドラッグはオブジェクトやスクロール・バーなどを移動するために用いられます。


ドライバ

コンピュータが他のソフトウェアやハードウェアと通信するために使用するソフトウェア。関連項目: コンポーネント・ドライバ、ドライバ・ファイル、インタフェース・ドライバ、計測器パネル.


ドライバ・ファイル

計測器制御のための計測器パネルおよびコンポーネント・ドライバ・オブジェクトを作成するために必要な情報を記録した、VEEに付属する一群のファイル。


ドロップダウン・リスト

選択フィールドの右側にある矢印をクリックすることによって表示される選択肢の一覧。


入力フィールド

データ入力に使用されるフィールド。ダイアログ・ボックスや編集可能なオブジェクトの一部であることが普通です。編集可能な入力フィールドは背景色が白になっています。


エラー・メッセージ

エラー・ダイアログ・ボックスに表示され、問題が発生したことを説明する情報。


エラー・ピン

オブジェクトで発生したエラーをトラップするピン。エラー・メッセージが表示される代わりに、エラー番号がエラー・ピンに出力されます。エラーが発生した場合、データ出力ピンはアクティブになりません。


実行

プログラム（またはその一部）が動作すること。


実行フロー

オブジェクトが動作する順序。関連項目: データ・フロー.


式

入力フィールドに記入され、入力端子名、ローカル／グローバル変数名、演算子、組込み関数、ユーザ定義関数を含むことができる計算式。式は、実行時に評価されます。式が使用できるのは、Formula、If/Then/Else、Get Values、Get Field、Set Field、Sequencer、Dialog Boxの各オブジェクトとI/Oトランザクション・オブジェクトの中です。


フィードバック

シーケンスまたはデータ・ラインの連続するスレッド・パスにおいて、前の実行からの値を使って現在の実行の値を変更すること。


フロー

参照: データ・フロー、実行フロー.


フォント

書体のサイズとスタイル。


関数

出力が入力の関数となるオブジェクトの名前と動作。これらのオブジェクトは、Function & Object Browser（Device [image] Function & Object Browser）中に存在し、Formulaオブジェクトで使用できます。例えば、sqrt(x)は関数ですが、+は関数ではありません。


グローバル変数

グローバルに設定され、VEEプログラムのどのコンテキストでも名前で使用できる名前付き変数。例えば、グローバル変数をルート・コンテキストでSet Variableを使って設定し、UserObjectのコンテキスト内のGet Variableや一部の式から名前でアクセスすることができます。ただし、式の中では、グローバル変数と同じ名前を持つローカル変数が優先します。参照: 変数.


淡色表示

メニューが黒ではなく灰色で表示されること。これは、その機能がアクティブでないか、使用できないことを示します。ボタン、チェックボックス、ラジオ・ボタンなどのダイアログ・ボックスの項目も、淡色表示になることがあります。


強調表示

1. オブジェクトの周りの色つきの部分や陰影。オブジェクトのステータスを視覚的に表現する役割を果たします。

2. メニュー機能の色の変化。その機能を現在ポイントしていることを示します。


ホスト

1. スレッドまたはサブスレッドを開始すること。例えば、For Countがホストするサブスレッドは反復するサブスレッドです。

2. 分散システムで、機能またはアプリケーションを実行（提供）しているコンピュータ。


ハイパーテキスト

項目をリンクすることにより、詳細を知りたいときに関連項目に移動できるようにするシステム。オンライン・ヘルプ・システムでは、ハイパーテキスト・リンクは下線付きのテキストとして示されるのが普通です。そのテキストをクリックすると、関連情報が表示されます。


アイコン

1. VEEオブジェクトを小さくグラフィカルに表現したもの。計測器、制御、表示などのオブジェクトを表します。

2. アプリケーション、ファイル、フォルダを小さくグラフィカルに表現したもの。


計測器

測定や試験信号発生に用いられる電子機器。計測器は、GPIB、RS-232、GPIO、VXI、LAN、USBのいずれかのインタフェースでコンピュータに接続されます。計測器との通信は、Direct I/Oオブジェクトやパネル・ドライバといった専用のVEEオブジェクトが担当します。


計測器ドライバ

参照: ドライバ・ファイル、コンポーネント・ドライバ、計測器パネル.


計測器パネル

対応する物理計測器のすべての機能設定をオブジェクトのオープン・ビューに表示されている制御パネルの設定と一致させる計測器制御オブジェクト。


インタフェース

異なるハードウェア（またはソフトウェア）システムのオブジェクトの間の共有される境界。GPIB、RS-232、GPIO、LAN、USB、VXIは、計測器I/Oに用いられるインタフェースです。インタフェースにコマンドを送信できるのは、Interface Eventオブジェクトなどの専用のVEEオブジェクトだけです。


インタフェース・ドライバ

コンピュータがGPIBやRS-232などのハードウェア・インタフェースと通信するために使用するソフトウェア。


反復

繰り返しオブジェクト（For Countなど）を使ってVEEプログラムの一部を繰り返す（ループする）こと。


ライブラリ

頻繁に使用されるオブジェクトやプログラムをグループにまとめてアクセスしやすくしたもの。


ライン

VEEの2つのオブジェクトの間のリンク。処理対象のデータ・コンテナを伝送する役割を果たします。関連項目: スレッド.


論理装置番号

ハードウェア・インタフェースの論理アドレスを識別するために用いられる番号。例えば、ほとんどのGPIBインタフェースの工場設定論理装置番号は7です。


ループ

繰り返しオブジェクト（For Countなど）を使ってVEEプログラムの一部を繰り返すこと。


メイン・メニュー

VEEのメニュー・バーにあるメニュー。メイン・メニューを開くには、メニュー・バーの適切なメニュー・タイトルをクリックします。アクセラレータを使うこともできます。例えば、Alt+Fを押すとFileメニューが開きます。


メイン作業領域

メイン・ウィンドウとも呼ばれます。


メイン・ウィンドウ

VEEプログラムを開発するルート（プライマリ）作業領域。このメイン・ウィンドウ作業領域は、VEEウィンドウのワークスペースに存在し、他のすべてのコンテキストの親コンテキストになります。


マッピング

配列の独立変数（波形のタイム・スパンなど）を表す連続値または離散値の集合。


最大化

最大化ボタンを使って、メイン、UserObject、UserFunctionなどのウィンドウを拡大し、VEEウィンドウの使用可能なワークスペース全体を占めるようにすること。VEEウィンドウの場合は、使用可能な画面スペース全体を占めます。


最大化ボタン

UserObject、UserFunction、メインの各ウィンドウにあるボタンの1つ。UserObject、UserFunction、メインの各ウィンドウを、VEEウィンドウの使用可能なワークスペース全体に拡大します。VEEウィンドウの場合は、使用可能な画面スペース全体を占めます。


メニュー

リストに表示される機能の集合。関連項目: カスケード・メニュー、メイン・メニュー、オブジェクト・メニュー、ポップアップ・メニュー、プルダウン・メニュー.


メニュー・バー

VEEウィンドウの上部にあるバー。プルダウン・メイン・メニューのタイトルが表示され、そこから機能を選択できます。


メニュー・タイトル

VEEメニュー・バーにあるメニューの名前。例えば、FileやEditなどです。


最小化

1. オブジェクトのオープン・ビューを最小サイズであるアイコンに縮小すること。

2. ウィンドウを最小サイズであるアイコンに縮小すること。


最小化ボタン

オブジェクトまたはVEEウィンドウにあるボタンの1つ。そのオブジェクトまたはVEEウィンドウをアイコン化します。


マウス

ポインティング・デバイスの一種。平らな表面上で動かすことにより、VEEウィンドウ内のポインタを移動させることができます。


マウス・ボタン

マウスのボタンの1つで、クリックまたはダブルクリックすることにより、VEEウィンドウ内の対応するポインタで特定の動作を実行することができます。


ネットワーク

相互に接続されたコンピュータや周辺機器のグループ。データや作業負荷の共有が可能です。


オブジェクト

計測器、制御、表示、算術演算子などのプログラム内の要素をグラフィカルに表現したもの。オブジェクトは作業領域に配置され、ほかのオブジェクトに接続されてプログラムを形成します。


オブジェクト・メニュー

オブジェクトに関連付けられ、そのオブジェクトを操作するための機能（移動、サイズ変更、コピー、削除など）を備えたメニュー。オブジェクト・メニューを利用するには、オブジェクトの左上隅にあるオブジェクト・メニュー・ボタンをクリックするか、マウス・ポインタをオブジェクト上に置き、マウスを右クリックします。


オブジェクト・メニュー・ボタン

オープン・ビュー・オブジェクトの左上隅にあるボタン。これをクリックすると、オブジェクト・メニューが表示されます。


開く

動作を開始したり、テキスト、データ、グラフィックス・ファイルの操作を開始したりすること。VEEでOpenを選択すると、プログラムが作業領域にロードされます。


オープン・ビュー

アイコンより詳細なVEEオブジェクトの表示方法。ほとんどのオブジェクトのオープン・ビューには、そのオブジェクトの動作を変更するためのフィールドがあります。


動作

オブジェクトがデータを処理して結果を出力すること。オブジェクトが動作するのは、そのデータおよびシーケンス入力ピンがアクティブになったときです。参照: アクティブにする.


オペレータ・インタフェース

オペレータ（エンド・ユーザ）がプログラムを制御するためにVEEプログラマが作成するインタフェース。代表的なオペレータ・インタフェースには、パネル・ビューとダイアログ・ボックスがあります。


輪郭線ボックス

オブジェクトまたはオブジェクトの集合の外部境界を表すボックス。オブジェクトが作業領域のどこに配置されるかを示します。


パレット

VEEで使用可能な色の集合。


パネル・ドライバ

対応する物理計測器のすべての機能設定をオブジェクトのオープン・ビューに表示されている制御パネルの設定と一致させる計測器制御オブジェクト。


パネル・ビュー

ユーザがプログラムを実行し、その結果データを表示するために必要なオブジェクトだけが表示されるVEEプログラム、UserObject、UserFunctionのビュー。パネル・ビューを使用すると、プログラムのオペレータ・インタフェースを作成できます。


ピン

ラインを接続できるオブジェクトの外部接続点。


ポインタ

マウスの移動位置をグラフィカルに示すもの。ポインタは、選択を行ったり、実行中の特定のプロセスに関する情報を伝えたりする働きをします。VEEには、処理モードに応じて、矢印、十字線、砂時計などの何種類かのポインタがあります。


ポップアップ・メニュー

マウスの右ボタンをクリックすると画面に表示されるメニュー。たとえば、作業領域内の何もない領域でマウスの右ボタンをクリックすると、Editメニューが表示されます。また、オブジェクトのアクティブでない領域でマウスの右ボタンをクリックすると、オブジェクト・メニューが表示されます。


PostRun

プログラムが停止したときに実行される動作の集合。


設定

設定はVEE環境の属性で、ツールバーのDefault Preferencesボタンか、メニューのFile [image] Default Preferencesを使って変更できます。たとえば、デフォルトの色、フォント、数字のフォーマットなどを変更できます。


PreRun

プログラムの実行開始前に、プログラムをリセットし、エラーをチェックする一連の動作。


プログラム

VEEでは、ラインで接続されたオブジェクトの集合で構成されるグラフィカルなプログラム。一般に、プログラムは、エンジニアリング上の問題に対する解決策を表現します。


プログラム・エクスプローラ

プログラム、特に物理画面に表示されないプログラムの部分を検索可能にするVEEウィンドウの機能。


昇格

情報量の少ないデータ型から多いデータ型への変換。関連項目: データ型、降格.


伝達

オブジェクトやプログラムが動作または実行される場合に従う規則。関連項目: データ・フロー.


プロパティ

色、フォント、タイトルなどのVEEオブジェクトの属性。オブジェクト・メニューのPropertiesを使って変更できます。メイン、UserObject、UserFunctionウィンドウのプロパティを変更するには、それぞれのオブジェクト・メニューのPropertiesを使用します。プロパティには、色、フォント、タイトルがあります。


プテロダクティル

ジュラ紀と白亜紀の翼竜目に属する絶滅した飛翔爬虫類の一種。プテロダクティルの特徴は、前肢の非常に長い第4指に支えられた皮膜から構成される翼です。


プルダウン・メニュー

メニュー・タイトルの上にポインタを置き、マウスの左ボタンをクリックしたときに、メニュー・バーの下に表示されるメニュー。


ラジオ・ボタン

VEEダイアログ・ボックスにある菱形のボタンで、同じダイアログ・ボックスの他のラジオ・ボタンと相互に排他的な設定を選択するために用いられます。設定を選択するには、ラジオ・ボタンをクリックします。設定を解除するには、同じダイアログ・ボックスの別のラジオ・ボタンをクリックします。


レコード

複数の値を格納できる名前付きデータ・フィールドを持つVEEデータ型。レコードは一般的に、関連する情報を1つにまとめるために用いられます。ただし、レコードの各フィールドには異なるデータ型を格納できます。各フィールドには、他のレコード・コンテナ、スカラ、配列を格納できます。レコード・データ型は、すべてのVEEデータ型のうち最も優先度が高いものです。ただし、レコードと他のデータ型との間の変換は、自動昇格／降格処理によっては行われません。Build RecordおよびUnBuild Recordオブジェクトを使ってレコードを構築／解体する必要があります。


リモート関数

ローカル・ホストから呼び出せるUserFunction（リモート関数はVEE Proだけでサポートされます）。Import Libraryオブジェクトがリモート・ホスト上のプロセスを開始し、リモート・ホスト上のVEEプロセスにUserFunctionをロードします。リモート関数は、Call Functionオブジェクトまたは一部の式から呼び出すことができます。関連項目: UserFunction、リモート関数、コンパイル済み関数.


元のサイズに戻す

最小化されたウィンドウまたはアイコンをダブルクリックして、ウィンドウまたはオープン・ビューの完全なサイズに戻すこと。


実行

プログラムまたはスレッドでオブジェクトを開始すること。


保存

ファイルをハード・ディスクなどの記憶装置に書き込むこと。


スカラ

1つの値を持つデータの種類。関連項目: データの種類.


スキーマ

データ・レコードの定義に用いられる構造または枠組み。これには、各フィールドの名前、型、種類（および次元サイズ）、マッピングが含まれます。


画面ダンプ

ウィンドウまたはその一部のグラフィカル・プリントアウト。


スクロール

スクロール・バーを使って、ダイアログ・ボックス内でデータ・ファイルなどの選択対象のリスト内を移動したり、作業領域の表示範囲を移動したりすること。


スクロール矢印

クリックすることにより、ダイアログ・ボックス内でデータ・ファイルなどの選択対象のリストをスクロールしたり、作業領域を移動したりするための矢印。


スクロール・バー

ドラッグすることにより、ダイアログ・ボックス内でデータ・ファイルなどの選択対象のリストをスクロールしたり、作業領域を移動したりするための長方形のバー。


選択

オブジェクト、実行する操作、またはメニュー項目を選ぶこと。選択するには通常マウスをクリックします。


セレクト・コード

ハードウェア・インタフェースのアドレスを識別するために用いられる番号。「セレクト・コード」という用語は、論理装置番号.


選択

1. メニューの選択肢（機能）。

2. VEEウィンドウで選択したオブジェクトまたは動作。


選択フィールド

オブジェクトやダイアログ・ボックス内にあり、ドロップダウン・リストから項目を選択できるフィールド。


シーケンス入力ピン

オブジェクトの上部のピン。接続された場合、このピンがコンテナを受信する（起動される）まで、オブジェクトの実行は延期されます。


シーケンス出力ピン

オブジェクトの下部のピン。接続された場合、このオブジェクトとこのオブジェクトからのすべてのデータ伝達が実行を完了したときに、この出力ピンがアクティブ化されます。


シーケンサ

一連のシーケンス・トランザクションを通じた実行フローを制御するオブジェクト。それぞれのシーケンス・トランザクションは、UserFunction、コンパイル済み関数、リモート関数を呼び出すことができます。シーケンサは通常、一連のシーケンス・トランザクションを指定して一連のテストを実行するために使用されます（シーケンサが使用できるのはVEE Proだけです）。


スリープ

オブジェクトが実行中にスリープするのは、動作または一定時間の終了を待っているか、イベントの発生を待っている場合です。オブジェクトがスリープしている間、他の並列スレッドは実行できます。イベント、一定時間、動作が発生すると、オブジェクトは実行され、実行が継続します。


起動ディレクトリ

参照: 作業ディレクトリ.


ステート

VEE計測器パネルに関連するすべてのコンポーネントの値の特定の集合。計測器の測定状態を表します。例えば、デジタル・マルチメータでは、高速電圧測定用の1つのステートと、高精度抵抗測定用の別のステートが使用されます。関連項目: 計測器パネル.


ステータス・バー

VEEウィンドウの下端にある行。VEEの現在の状態やVEEに関する情報が表示されます。


ステータス・フィールド

編集できない情報が表示されるフィールド。ステータス・フィールドは、入力フィールドに似ていますが、背景が灰色です。


ステップ実行

VEEプログラムを一度に1オブジェクトずつ動作させること（プログラムのデバッグ用）。次に動作するオブジェクトは、黄色の強調表示で示されます。VEEには、Step Into、Step Over、Step Outの3つのステップ実行方法が用意されています。これは、UserObjectやUserFunctionの中のオブジェクトの動作を制御するためです。


端子

ピンとピンが保持するデータ・コンテナに関する情報を表示するためのピンの内部的な表現。端子をダブルクリックすると、コンテナ情報が表示されます。


端子領域

オブジェクトの左右の端にあり、そのオブジェクトに対してShow Terminalsがアクティブな場合に端子が表示される領域。入力端子領域はオブジェクトの左側、出力端子領域は右側にあります。


スレッド

VEEプログラムで実線で接続されたオブジェクトの集合。複数のスレッドを持つプログラムでは、すべてのスレッドを同時に実行できます。


タイトル・バー

オブジェクトのオープン・ビューまたはウィンドウの上部にある長方形のバー。そのオブジェクトまたはウィンドウのタイトルが表示されます。オブジェクト・メニューのPropertiesを使用すると、オブジェクトのタイトル・バーを非表示にできます。


ツールバー

VEEウィンドウの上部にある長方形のバー。頻繁に使用するコマンドにすばやくアクセスするためのボタンが用意されています。ボタンは、File、Edit、View、Debug、Deviceなどのメニューのコマンドを実行します。


トランザクション

VEEの一部のオブジェクトによって使用される入出力（I/O）の仕様。このようなオブジェクトには、To File、From File、Direct I/O、Sequencerがあります。トランザクションは、これらのオブジェクトのオープン・ビューの中に句としてリストされます。


Trigモード

Trigモードは、三角関数値を度、ラジアン、グラジアンのどれで表示するかを決定する属性です。VEEは計算の際には三角関数値を自動的にラジアンに変換します。


ユーザ定義関数

ユーザが作成してVEEプログラムで呼び出すことができる関数。作成できるユーザ定義関数には3つの種類があり、Call Functionオブジェクトまたは一部の式から呼び出すことができます。関連項目: UserFunction、コンパイル済み関数、リモート関数.


UserFunction

ユーザ定義関数の一種で、UserFunctionウィンドウで直接、または既存のUserObjectから作成されます。UserFunctionはVEEプロセスのバックグラウンドに存在しますが、UserObjectと同じ機能を提供します。UserFunctionは、Call Functionオブジェクトまたは一部の式から呼び出すことができます。UserFunctionは、ローカルに作成して呼び出すことも、ライブラリに保存してImport LibraryによりVEEプログラムにインポートすることもできます（UserFunctionのインポートはVEE Proだけでサポートされます）。関連項目: コンパイル済み関数、リモート関数、UserObject.


UserObject

プログラム内で特定の目的を果たすためにオブジェクトのグループをカプセル化できるオブジェクト。UserObjectを使用すると、トップダウンの設計手法を使ってプログラムを構築できます。また、ユーザ定義オブジェクトを構築し、ライブラリ内に保存して再使用できます。


変数

名前付きの変数。宣言されたものと宣言されないものがあります。変数は、Declare Variableを使って、ローカル、コンテキストにグローバル、ライブラリにグローバルのいずれかに宣言できます。ローカル変数とグローバル変数は、宣言せずに実行時に値を設定することができます。ただし、宣言された変数を使う方がプログラムの実行は高速になります。


ビュー

VEEはプログラムとオブジェクトをさまざまなビューで表現できます。プログラムは詳細ビューまたはオープン・ビュー、オブジェクトはオープン・ビューまたはアイコン・ビューで表示できます。参照: 詳細ビュー、アイコン、オープン・ビュー、パネル・ビュー.


待ち

参照: スリープ.


ウィンドウ

Agilent VEEなどの特定のアプリケーション・プログラムを保持する画面上の長方形の領域。


Windows NT、2000、XP

Windows Vista、XP、2000

Microsoft Corporationが開発したウィンドウ・インタフェースのオペレーティング・システム。VEEはこの上で動作します。Windows Vista、XPおよびWindows 2000システムは32ビット・アプリケーションを実行し、明確なユーザ／カーネル境界を持つことが特長です。


作業領域

メイン、UserObject、UserFunctionウィンドウ内にあり、VEEオブジェクトを配置して接続することによりVEEプログラムを作成するための領域。プログラムを開くと、プログラムはメイン・ウィンドウの作業領域にロードされます。


ワークスペース

VEEアプリケーション・ウィンドウ内にあり、メイン、UserObject、UserFunctionなどのプログラミング／編集ウィンドウを含むスペース。これらのウィンドウ内には、VEEオブジェクトを配置し、それらを互いに接続してVEEプログラムを作成するための作業領域があります。


作業ディレクトリ

VEEが動作するディレクトリ。例えば、Windows版VEE Proのデフォルトの作業ディレクトリは"C:\Program Files\Agilent\VEE Pro 8.5"です。作業ディレクトリは、VEEを起動するショートカットで指定されるため、「起動ディレクトリ」と呼ばれることもあります。


XEQピン

データまたはシーケンス入力ピンがアクティブになっていなくてもオブジェクトを強制的に動作させるピン。CollectorおよびSample & Holdオブジェクトでのみ使用できます。関連項目: コントロール・ピン、データ入力ピン、シーケンス入力ピン.


VEEでの.NETエラーについて

Agilent VEE Proでの.NETエラーについて

VEEは、.NETから渡されたすべての情報を提供します。ほとんどの場合、使用している.NETメソッドを確認すれば、例外の性質を知るために十分な情報が得られます。それができない場合は、MSDNで例外タイプを直接調べることができます。

次に示すのは、例外の意味がその場でわかる情報量の多い例外ボックスの例です。

次に示すのは、上よりも情報量が少ない一般的なエラー・メッセージで、メソッドが手がかりとなります。


Access Array

メニュー項目。

使用法

Access Arrayは、次の配列変更オブジェクトにアクセスするために使用します。

Set Values

Get Values

Set Mappings

Get Mappings

注記

これらのオブジェクトは通常、Allocate Arrayオブジェクトの後で、新規作成した配列に対して要素を変更したりマッピングを追加したりするために使用します。

場所

Data [image] Access Array

関連項目

Allocate Array、Get Mappings、Get Values、Set Mappings、Set Values、オブジェクト・メニュー.

配列から値を抽出するには


Access Record

メニュー項目。

使用法

Access Recordは、次のレコード変更オブジェクトにアクセスするために使用します。

Merge Record

SubRecord

Set Field

Get Field

注記

これらのオブジェクトは通常、Build Recordオブジェクトの後で、要素を変更したり、レコードをマージしたり、レコードの一部にアクセスしたりするために使用します。

場所

Data [image] Access Record

関連項目

Build Record、Merge Record、SubRecord、Set Field、Get Field、オブジェクト・メニュー.

レコードのフィールドを変更するには


Accumulator

入力値の累積和を表示して出力するオブジェクト。

使用法

Accumulatorは、累積合計を保持するために使用します。

オブジェクト・メニュー

Clear - Accumulatorの内容をクリアします。

注記

累積された出力データの型は、入力値のうち最も順位の高いものと同じになります。すなわち、AccumulatorにReal64とInt32を入力した場合、出力はReal64になります。

例えば、Accumulatorのデータ入力にReal64を与え、その後にComplexを与えた場合、現在累積されているデータはComplexであり、AccumulatorはReal64をComplexに変換します。入力の1つがテキストの場合、すべてのデータがテキストに変換されます。

データ型を混在させる場合は注意してください。入力する順序によって、出力が異なる可能性があります。入力が実数、実数、テキストの場合、Accumulatorは実数を加算してから結果をテキストに変換し、入力テキスト文字列を実数文字列の末尾に追加します。入力がテキスト、実数、実数の場合、Accumulatorは2つの実数をテキストに変換し、テキスト文字列の末尾に追加します。2つの実数は加算されず、結果の文字列に2つの別々の数として含まれます。

場所

Device [image] Accumulator

関連項目

Counter、Properties（オブジェクト）、オブジェクト・メニュー


Activate Breakpoints

チェックされている場合、設定されているすべてのブレークポイントが有効になります。チェックされていない場合、設定されているすべてのブレークポイントが無効になります。

使用法

Activate Breakpointsは、プログラムのデバッグ実行と通常実行を切り替えるために使用します。Activate Breakpointsがオンの場合、メニュー項目にチェックが付きます。ブレークポイントに達すると、プログラムは実行を停止します。

注記

Activate Breakpointsをオフにしても、ブレークポイントが設定されているオブジェクトを囲むオレンジ（デフォルト）の境界は表示されたままです。Activate Breakpointsの状態に関わらず、オブジェクトのプロパティではSet Breakpointがチェックされています。

ブレークポイントは、VEE 4以上の実行モードで、Default PreferencesのDisable Debugging Featuresボックスがチェックされていない場合のみ有効です。オブジェクトにブレークポイントが設定されている場合、Step Intoは停止し、Step Overは停止しません。

場所

Debug [image] Activate Breakpoints

関連項目

Clear All Breakpoints、Default Preferences、Properties（オブジェクト）、Step Into、Step Over、Toggle Breakpoint


ActiveX Automation References

ActiveX Automation Referencesダイアログ・ボックスを表示します。ここから、ActiveXオートメーション・ライブラリをVEEで使用可能にすることができます。

使用法

ActiveX Automation Referencesダイアログ・ボックスは、他のアプリケーションを制御するためにVEEで使用するActiveXオートメーション・ライブラリを選択するために使用します。ライブラリがこのダイアログ・ボックスに表示されるのは、関連するアプリケーションがインストールされており、Windowsのレジストリに認識される場合です。必要なライブラリを選択したら、[OK]を押すと、ライブラリがメモリにロードされてVEEで使用可能になり、そのオブジェクト・クラス、ディスパッチ・インタフェース、エクスポートされたイベントを検索できるようになります。タイプ・ライブラリを選択する必要があるのは、タイプ・ライブラリから発生するイベントを処理する必要があるか、タイプ・ライブラリを参照してその機能（プロパティ、メソッド、列挙、イベント）がFunction & Object Browserに表示されるようにしたい場合だけです。

タイプ・ライブラリを参照する前に、組込み関数CreateObject()またはGetObject()を使って、オートメーション・オブジェクトと接続します。その後、ライブラリを選択し、VEEのFunction & Object Browser（[Device] [image] [Function & Object Browser]）を開き、ActiveX Objectsを選択して、オブジェクトを操作するFormulaオブジェクトに式を作成します。プロパティを設定したり、メソッドを呼び出したりするには、さらに別のFormula式を使用します。

ダイアログ情報

Registered Automation Servers:- 登録されているActiveXオートメーション・ライブラリのリストを表示します。名前をクリックして強調表示すると、リストの下のステータス・エリアに情報が表示されます。名前の隣のボックスをクリックして、[OK]をクリックすると、VEEで使用するために選択できます。

Browse… - システムに存在するライブラリがリストに表示されない場合、[Browse]をクリックして、[Add ActiveX Automation Reference]ダイアログ・ボックスで探します。ライブラリを見つけて開くと、VEEはそれをリストに追加し、登録を試みます。VEEでそれを使用するには、ボックスをチェックして、[OK]をクリックします。

注記

ActiveXサポートを有効にするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。ActiveXオートメーションでは、オートメーション・サーバとして動作する能力を持つアプリケーションに対するオートメーション・コントローラとしてVEEを使用できます。これにより、Microsoft Word、Excel、Accessなどのアプリケーションと通信して、VEEからデータを送信してレポートを生成するなどのことが可能です。これは、オートメーション対応のアプリケーションに対して、VEEの現在のアプリケーション制御方法であるDynamic Data Exchange（DDE）に完全に取って代わるものです。

オートメーション・ライブラリは、それを含むアプリケーションと同時にインストールされます。

メモリの無駄遣いを避けるため、プログラムに必要なライブラリだけを選択するようにしてください。

ActiveX参照のクリーンアップを実行するプログラミング技法については、CreateObjectの項目を参照してください。

場所

Device [image] ActiveX Automation References…

関連項目

ActiveX Control References、Default Preferences、Formula、Function & Object Browser、CreateObject、GetObject、ActiveXサンプル

[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
[Help] [image] [Open Example…]


ActiveX Control Host

VEE作業領域に追加されたActiveXコントロールを収容するVEEオブジェクト。

使用法

ActiveX Control Hostは、ActiveXコントロール用のコンテナとして用いられます。作業領域にコントロールを追加した場合（[Device] [image] [ActiveX Controls]）、VEEによってコンテナが作成されるため、他のVEEオブジェクトと同じように追加したコントロールにアクセスできます。コンテナからは、コントロールの開発者によって組み込まれたコントロール固有のプロパティにもアクセスできます。

コントロールが作業領域に表示される場合、タイトル・バーにタイトルと変数名が表示されます。ピンはないので、ラインを使って他のオブジェクトと接続することはできません。コントロールを操作するには、式から変数名を参照することにより、プロパティの取得／設定や、メソッドの呼出しを行う必要があります。VEEのFunction & Object Browser（[Device] [image] [Function & Object Browser]）を使って、Formulaオブジェクトに式を作成できます。変数名は、基本的にはコントロールの宣言された変数名です。コントロールの宣言された変数名は、Declare Variableオブジェクトによって作成された変数とよく似ていますが、コントロールの変数はすでに初期化されています。宣言はコンテキストにローカルなので、デフォルトでは、変数名はそれが存在するコンテキストの中でのみ使用できます。ActiveXコントロールにグローバルにアクセスする方法については、下記の注記を参照してください。

オブジェクト・メニュー

  • Help - このVEEヘルプ項目を開き、コンテナ・オブジェクトの説明を表示します。

  • Properties - VEEコンテナ・オブジェクトのプロパティ（タイトル、変数名、色、フォント、アイコン・ビューなど）にアクセスします。

  • Control Properties - 開発者によって組み込まれたコントロールのプロパティ・ページにアクセスします。プロパティはコントロールの種類ごとに異なります。表示されたプロパティ・ウィンドウで[Help]ボタンをクリックすると、詳細情報が表示されます。

  • Edit Event Handler… - コントロールに対してイベント・ハンドラUserFunctionが作成されている場合、[Edit Event Handler]ダイアログ・ボックスを開きます。

  • Create Event Handler… - [Create Event Handler UserFunction]ブラウザを開きます。このブラウザでは、コントロールから発生したイベントを処理するUserFunctionを作成できます。ブラウザの[Member]エリアに表示された各イベントに対して、イベント・ハンドラを作成できます。

プロパティ（コンテナ・オブジェクト）

Title - コンテナ・オブジェクトの現在のタイトルを表示します。編集も可能です。

Name - コントロールの現在のローカル変数名を表示します。編集も可能です。これにより、コントロールはコンテキストにローカルな変数として宣言され、初期化されます。

注記

ActiveXサポートを有効にするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。ActiveXコントロールは、個別の製品として入手できる場合も、アプリケーションの一部としてインストールされる場合もあります。

VEEはすべてのActiveXコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、または使用しているときにエラーが発生します。

コントロールをVEEの作業領域に追加すると、割り当てられたローカル変数名がタイトル・バーに表示されます。割り当てられた変数名を変更するには、コントロールのタイトル・バーをダブルクリックして[ActiveX Control Properties]ダイアログ・ボックスを開きます。Designカテゴリで、Nameの値を変更します。コントロールにはピンがないので、プログラム中の他のオブジェクトとラインで接続することはできません。コントロールを操作するには、コントロールの変数名を参照する式をFormulaオブジェクトで使用する必要があります。変数はコンテキストにローカルなので、式はコントロールと同じコンテキストに存在する必要があります。

変数名をグローバルにしたい場合は、Declare Variable（[Data] [image] [Variable] [image] [Declare Variable]）を使って新しい変数を宣言します。コントロールの変数名はすでに存在するので、単にグローバルに宣言することはできません。VEEが衝突を禁止するからです。Declare Variableに変数名を入力し、ScopeをGlobalに設定し、Type:をObjectに設定します。[Specify Object Type]はチェックしなくてもかまいません。ただし、オブジェクト型の詳細を指定すれば、VEEが自動的に型チェックを行い、指定したLibraryとClassだけがこの変数に代入されるようにします。その後、下の式のように、コントロールのローカル変数（例えばCalendar1）を宣言された変数（例えばg_calendar1）に等しく設定できます。

Set g_calendar1 = Calendar1

場所

Device [image] ActiveX Controls

関連項目

ActiveX Control References、Declare Variable、Default Preferences、Formula、Function & Object Browser、ActiveXサンプル

[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
[Help] [image] [Open Example…]


ActiveX Control References

[ActiveX Control References]ダイアログ・ボックスを表示します。ここから、ActiveXコントロールをVEEで使用可能にすることができます。

使用法

[ActiveX Control References]ダイアログ・ボックスは、VEEプログラムで使用するActiveXコントロールを選択するために使用します。コントロールがこのダイアログ・ボックスに表示されるのは、コントロールまたは関連するアプリケーションがインストールされており、Windowsのレジストリに認識される場合です。必要なコントロールを選択したら、[OK]を押すと、コントロールがメモリにロードされてVEEで使用可能になり、そのオブジェクト・クラス、ディスパッチ・インタフェース、エクスポートされたイベントを検索できるようになります。

コントロールを選択した後、[Device] [image] [ActiveX Controls]でコントロールを選んで、他のVEEオブジェクトと同様にプログラムの詳細ビューに配置できます。配置したコントロール「オブジェクト」は、タイトルバーに変数名が表示されます。コントロールには他のオブジェクトと違ってピンがないので、操作するにはFormula式でコントロールの変数名を使用する必要があります。VEEのFunction & Object Browser（[Device] [image] [Function & Object Browser]）を使って式を作成できます。

ダイアログ情報

Registered Controls:- 登録されているActiveXコントロール・タイプ・ライブラリのリストを表示します。名前をクリックして強調表示すると、リストの下のステータス・エリアに情報が表示されます。名前の隣のボックスをクリックして、[OK]をクリックすると、VEEで使用するために選択できます。

Browse… - システムに存在するコントロールがリストに表示されない場合、[Browse]をクリックして、[Add ActiveX Control Reference]ダイアログ・ボックスで探します。コントロールを見つけて開くと、VEEはそれをリストに追加し、登録を試みます。VEEでそれを使用するには、ボックスをチェックして、[OK]をクリックします。

注記

ActiveXサポートを有効にするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。ActiveXコントロールは、個別の製品として入手できる場合も、アプリケーションの一部としてインストールされる場合もあります。

メモリの無駄遣いを避けるため、プログラムに必要なコントロールだけを選択するようにしてください。

[ActiveX Control Reference]ダイアログ・ボックスで名前を選択すると、VEEはコントロール名をメニュー[Device] [image] [ActiveX Controls]に追加します。場合によっては、1回の選択で複数のActiveXコントロールがメニューに追加されることがあります。

VEEはすべてのActiveXコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、または使用しているときにエラーが発生します。

場所

Device [image] ActiveX Control References…

関連項目

ActiveX Automation References、ActiveX Controls、Declare Variable、Default Preferences、Formula、Function & Object Browser、ActiveXサンプル [Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
[Help] [image] [Open Example…]


ActiveX Controls

[Device]メニューの項目。ActiveXコントロールをVEE作業領域に追加するために使用します。

使用法

[ActiveX Controls]メニューは、VEEで使用可能なActiveXコントロールを追加するために使用します。[ActiveX Controls Reference]ダイアログ・ボックス（[Device] [image] [ActiveX Controls Reference…]）で選択されたコントロールは、カスケード・メニューに表示されます。

注記

ActiveXサポートを有効にするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。ActiveXコントロールは、個別の製品として入手できる場合も、アプリケーションの一部としてインストールされる場合もあります。

VEEはすべてのActiveXコントロールをサポートするわけではありません。コントロールがVEEと互換性がない場合、コントロールをプログラムに追加したとき、または使用しているときにエラーが発生します。

場所

Device [image] ActiveX Controls

関連項目

ActiveX Control Host、ActiveX Control References、Default Preferences、ActiveXサンプル [Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
[Help] [image] [Open Example…]


Add Days

与えられた日付／時刻に日を加算します。

場所

System [image] DateTime [image] Add Days


Add Hours

与えられた日付／時刻に時を加算します。

場所

System [image] DateTime [image] Add Hours


Add Minutes

与えられた日付／時刻に分を加算します。

場所

System [image] DateTime [image] Add Minutes


Add Months

与えられた日付／時刻に月を加算します。

場所

System [image] DateTime [image] Add Months


Add Seconds

与えられた日付／時刻に秒を加算します。

場所

System [image] DateTime [image] Add Seconds


Add Terminal

メニュー項目。

使用法

Add Terminalは、端子を追加する次の機能にアクセスするために使用します。

Data Input

Control Input

Data Output

Error Output

ショートカット

データ端子を簡単に追加するには、入力／出力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに新しいデータ端子がカーソル位置に挿入されます。

場所

各オブジェクト・メニュー [image] Add Terminal

関連項目

Properties（オブジェクト）、Line Probe、Delete Terminal、Control Input（オブジェクト・メニュー）、Data Input（オブジェクト・メニュー）、Data Output（オブジェクト・メニュー）、Error Output（オブジェクト・メニュー）

UserObjectに入出力端子を追加するには

表示のスケールを自動的に変更するには

プログラムでファイル名を選択するには


Add To Panel

選択したオブジェクトを、VEEプログラムの対応するコンテキスト・パネルにコピーします。

使用法

Add To Panelは、選択したオブジェクトの集合をパネル・ビューに配置して、プログラムのユーザ・インタフェースを作成するために使用します。例えば、パネル・ビューにはプログラムの入力オブジェクトと表示オブジェクトだけを配置することができます。プログラムの詳細ビューは表示されません。

パネル・ビューが存在し、プログラムが保護されていない場合、UserObjectまたはUserFunctionのタイトル・バーに、ビューを切り替えるための2つのボタンが表示されます。

Add To Panelを選択したときに、パネル・ビューが存在しない場合、パネル・ビューが作成されます。

注記

オブジェクトが選択されていない場合、Add To Panel機能は使用できません。

UserObjectのパネル・ビューは、メイン・パネル・ビューまたは、上位のコンテキストであるUserObjectのパネル・ビューに追加できます。すなわち、パネルはネストできます。パネルを親パネルに追加した場合、ソース・パネルの正確な複製が作成されます。ソース・パネルを変更した場合、すべての複製パネルも更新されます。

UserObjectパネルを親パネル（メイン・パネルなど）に追加するには:

1. UserObjectとそのパネルを作成した後、UserObjectのアイコン・ビューをクリックして、オブジェクト・メニューを表示します。

2. Restoreをクリックして、オープン・ビューにします。これはパネル・ビューと似ています。これを削除すると、UserObjectが親プログラムから削除されてしまうので注意してください。

3. UserObjectを選択して強調表示します。

4. ツールバーのAdd To Panelボタン（Edit [image] Add To Panel）をクリックします。UserObjectが親パネルに表示されます。

場所

Edit [image] Add To Panel

またはUserObjectオブジェクト・メニューのEdit [image] Add To Panel

関連項目

Create UserObject、Delete（オブジェクト・メニュー）、Create RunTime Version、Select All、View Detail、View Panel

メイン・パネルにUserObjectパネルを追加するには

ネストしたUserObjectパネルにオブジェクトを追加するには

パネルにオブジェクトを追加するには

UserFunctionパネルを構築するには

UserObjectパネルを構築するには


Add Years

与えられた日付／時刻に年を加算します。

場所

System [image] DateTime [image] Add Years


Advanced Instrument Properties

計測器デバイス・ドライバとインタフェース通信パラメータの設定に用いられるダイアログ・ボックス。

使用法

[Instrument Properties]ダイアログ・ボックスで[Interface:]タイプ（GPIB、シリアルなど）を選択した後、[Advanced...]ボタンをクリックすると、[Advanced Instrument Properties]ダイアログ・ボックスが表示されます。

[Advanced Instrument Properties]ダイアログ・ボックスには、次のインタフェース・タイプのそれぞれに対して1つずつ、合計6つの種類があります。

1. GPIB

2. Serial

3. GPIO

4. VXI

5. TCPIP

6. USB

ダイアログ情報

[Advanced Instrument Properties]ダイアログ・ボックスには、次のフィールドとボタンがあります。

注記
必要とされる通信パラメータは、インタフェースのタイプ（GPIB、Serial、GPIO、VXI、TCPIP、USB）に応じて異なります。例えば、GPIOインタフェース構成の[Direct I/O]タブにあるフィールドは、GPIBインタフェース構成の[Direct I/O]タブにあるフィールドの一部だけです。以下のタブの説明では、それぞれのタイプのタブに表示される可能性があるすべてのフィールドを挙げています。

Generalタブ:

Timeout (sec):- 計測器が通信要求に応答するのをVEEが待つ時間の長さ（秒数）を指定します。この時間が経過するとエラーが発生します。デフォルトは5秒です

Live Mode:- Live ModeがONかOFFかを指定します。Live Modeがオフの場合、計測器が接続されていなくてもVEEプログラムを実行できます。ただし、実際に計測器と通信するには、Live ModeがONでなければなりません。Live ModeがOFFのときに[Instrument Properties]ダイアログ・ボックスの[Address]フィールドに0でないアドレスを入力すると、Live ModeはONに変わります。ONまたはOFFフィールドをクリックすると、オン／オフが切り替わります。Live ModeはPlug&play Driversには適用されません。

Byte Ordering:- デバイスがバイナリ・データの読み取りや書き込みを行う際のバイト順を指定します。VEEはバイトの入れ替えが必要かどうかを判断します。このフィールドをクリックして、MSB（最上位ビットを最初に送信）かLSB（最下位ビットを最初に送信）を選択します。すべてのIEEE 488.2準拠デバイスは、MSB順序を使用します。MSBはデフォルトでもあります。詳細については計測器のマニュアルを参照してください

Description (optional):- 英数字からなる計測器の短い識別子を入力できます。

Direct I/Oタブ:

Read Terminator:- 計測器のReadトランザクションを終了するために用いられる文字を指定できます。デフォルトの終了文字は\n（改行）です。

Write - 計測器のwriteトランザクションのいくつかのパラメータを指定できます。パラメータを指定するために編集できるフィールドは5つあります。これらのフィールドを以下に示します。

EOL Sequence:- EOL（End Of Line）を識別するために用いられる文字を指定できます。デフォルトの文字は\n（改行）です。

Multi-Field as:- Data Only（デフォルト）と(...) Syntaxが選択可能です。

Array Separator:- 配列の区切り文字として用いられる文字を指定できます。デフォルトの文字は","（カンマ）です。

Array Format:- LinearまたはBlockが選択可能です。デフォルトはLinearです。

END (EOI) on EOL:- 行末でEOI（End Or Identify）を送信するかどうかを指定します。YESまたはNOが選択できます。デフォルトはNOです。

Conformance:- Direct I/Oトランザクションで用いられるGPIB IEEEコンフォーマンス仕様を指定できます。IEEE 488（デフォルト）とIEEE 488.2が選択できます。

Binblock:- Direct I/OトランザクションのBinblockフォーマットを指定できます。Binblockフォーマットには以下の選択肢があります。

None - Conformance（上記）をIEEE 488.2に設定した場合、これがデフォルトの選択肢になります。

#A - IEEE 728ブロック・ヘッダ。フォーマットは次のとおり。#A<Byte_Count><Data>

#I - IEEE 728ブロック・ヘッダ。フォーマットは次のとおり。#I<Byte_Count><Data>

#T - IEEE 728ブロック・ヘッダ。フォーマットは次のとおり。#T<Data><END>

ここで:

- #は実際の文字。
- A、I、Tは実際の文字。
- <Byte_Count>は2つのバイトから構成される16ビットの符号なし整数で、この後の<Data>部分のバイト数を指定します（これはVEEが自動的に計算します）。
- <Data>は任意のバイト列です。
- <END>は、送信される最後のデータ・バイトとともにEOIがアサートされることを示します。

State (Learn String):- [State]フィールドは、計測器がラーン・ストリングのアップロード／ダウンロードが可能なように設定されているかどうかを指定します。Not Config'd（デフォルト値）またはConfiguredが選択できます。Configuredを選択した場合、入力に対して[Upload String]および[Download String]フィールドが強調表示されます。

Upload String:- [Upload String]フィールドは、Direct I/Oオブジェクト・メニューから[Upload State]を選択したときに計測器に送信されるコマンドを指定します。計測器にラーン・ストリングを出力させるコマンドを指定します。詳細については計測器のプログラミング・マニュアルを参照してください。コマンドは二重引用符で囲む必要があります。

Download String:- [Download String]フィールドは、Direct I/OオブジェクトのWRITE STATE (LEARN STRING)トランザクションの結果として、ラーン・ストリングの直前に計測器に送信される文字列を指定します。このフィールドは、ラーン・ストリングのダウンロード時にコマンド・プレフィックスを要求する計測器をサポートするために設けられています。詳細については計測器のプログラミング・マニュアルを参照してください。

Plug&play Driverタブ:

Plug&play Driver Name:- 設定中のPlug&playデバイスに割り当てられたドライバ名。デフォルト名はUnknownです

Parameters to init() callグループ:

Address (eg GPIB-VXI0::12::INSTR):- Plug&play計測器のデバイス・アドレス。

Perform Indentification Query - このボックスがチェックされている場合、初期化時にPlug&playデバイスIDの問合せが実行されます。このボックスはデフォルトでチェックされています。

Perform Reset - このボックスがチェックされている場合、デバイスに自動的にResetコマンドが送信されます。このボックスはデフォルトでチェックされています。

IVI-COM Driverタブ:

IVI-COM Driver/Session Name:- IVI-COMドライバまたはIVI Config Storeセッションの名前。

Address:- 計測器のアドレス。セッション名が提供されている場合、このフィールドは空白です。

Perform Identification Query:- *IDNなどの識別コマンドを実行します。

Perform Reset:- 計測器をリセットします。

Use Class Compliant Interface:- IVIには、DMMやScopeなどのさまざまな計測器クラスの定義があります。このチェック・ボックスをチェックした場合、製造者に固有の情報を持つデバイス固有のIVIドライバ（デフォルト）から、製造者に依存しないクラス固有のIVIドライバに切り替わります。

Configure IVI Driver Session:- このボタンを選択すると、Instrument Explorerが起動します。Instrument Explorerは、IVI Config Storeを使って計測器を検出します。Instrument Explorerを使うと、リソース文字列や計測器のその他のパラメータを含むIVIセッションを定義できます。Instrument Explorerとその機能の詳細については、Instrument Explorerのオンライン・ヘルプを参照してください。

Panel Driverタブ:

ID Filename:- このフィールドをクリックすると、[Read from what Instrument Driver?]ダイアログ・ボックスが表示されます。[Read from what Instrument Driver?]ダイアログ・ボックスでは、表示されるディレクトリとファイルの中から必要なID Filenameを選択できます。

Sub Address:- Panel Driverのサブアドレス（存在する場合）を入力します。

Error Checking:- エラー・チェックをONまたはOFFにします。デフォルトはONです。

Incremental Mode:- インクリメンタル・モードをONまたはOFFにします。デフォルトはONです。

Serialタブ:

Baud Rate:- デフォルトのボー・レートは9600（ビット/s）です。

Character Size:- デフォルトは8（ビット）です。可能な値は、5、6、7、8、Noneです。

Stop Bits:- デフォルトは1です可能な値は1と2です。

Parity:- デフォルトはNoneです可能な値は、None（なし）、Odd（奇数）、Even（偶数）、Mark（マーク）、Space（スペース）です。

Handshake:- デフォルトはNoneです可能な値は、None（なし）、Xon/Xoffです。

Receive Buffer Size:- デフォルトは4096（バイト）です。

GPIOタブ:

Data Width:- [Data Width]フィールドは、GPIOインタフェースで1単位として送信されるパラレル・データのビット数を指定します。このフィールドは、8ビット（デフォルト値）または16ビット幅でデータを読み書きするようにインタフェースを構成します。このフィールドに関連してハードウェア・スイッチを設定する必要はありません。

A16 Spaceタブ: （VXIのみ）

Byte Access (D8) - [Byte Access]フィールドは、VXIデバイスが8ビットのA16メモリ・アクセスをサポートするかどうかを指定します。Byte Accessには以下の選択肢があります。

NONE - デバイスはバイト・アクセスをサポートしません。これがデフォルトです。

ODD ACCESS - デバイスは、奇数バイト境界のみのバイト・アクセス（D08(O)）をサポートします。

ODD/EVEN ACCESS - デバイスは、すべての境界でのバイト・アクセス（D08(E)）をサポートします。

Word Access (D16) - [Word Access]フィールドは編集できません。すべてのVXIデバイスは16ビット・アクセス（D16）をサポートする必要があります。

LongWord Access (D32) - [LongWord Access]フィールドは、VXIデバイスが32ビットのA16メモリ・アクセスをサポートするかどうかを指定します。LongWord Accessには以下の選択肢があります。

NONE - デバイスは32ビット・アクセスをサポートしません。これがデフォルトです。

D32 ACCESS - デバイスは32ビットのA16メモリ・アクセスをサポートします。

Add Register - Add Registerフィールドをクリックするたびに、ダイアログ・ボックスの右半分に新しいフィールドの行が表示されます。これらの新しいフィールドは、デバイスのA16メモリへのアクセスを設定するために使用します。以下の4つのフィールドがあります。

Name - レジスタのシンボル名。これは、READ REGISTERまたはWRITE REGISTERトランザクションを使用するDirect I/Oオブジェクトで、特定のレジスタを参照するために用いられます。

Offset - 設定するレジスタの、デバイスのA16メモリの相対ベースからのバイト単位のオフセット。デフォルトのOffsetは0です。

Format - 設定するレジスタの読み書きに用いられるデータ・フォーマット。読み取りまたは書き込みアクセスは、[Offset]フィールドで指定されたバイトに対して行われます。可能なフォーマットは次のとおりです。
- BYTE - バイトを読み書きします。デバイスは、8ビット・アクセスをサポートし、上記の[Byte Access]フィールドで正しく設定されている必要があります。[BYTE]フィールドがODDの場合、[Offset]フィールドに指定されたバイト位置は奇数でなければなりません。
- WORD16 - 16ビット・ワードを読み書きします。16ビットは2の補数整数で表されます。すべてのVXIデバイスは明示的にこのフォーマットをサポートします。
- WORD32 - 32ビット・ワードを読み書きします。32ビットは2の補数整数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。
- REAL32 - IEEE 754の32ビット浮動小数点数で表された32ビット・ワードを読み書きします。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

Mode - レジスタがサポートするI/Oモードを指定します。以下の選択肢があります。
- READ - このレジスタは、READ REGISTERトランザクションでのみ選択肢として表示されます。
- WRITE - このレジスタは、WRITE REGISTERトランザクションでのみ選択肢として表示されます。
- READ/WRITE - このレジスタは、READ REGISTERトランザクションとWRITE REGISTERトランザクションの両方で選択肢として表示されます。

Delete Register - [Delete Register]フィールドをクリックすると、[Select Register To Delete]ボックスが表示されます。これには、現在設定されているレジスタのシンボルNameが表示されます。削除したいレジスタのシンボルNameをクリックし、[OK]ボタンをクリックして削除を確認します。

A24/A32 Spaceタブ: （VXIのみ）

A24/A32 SpaceはVXIデバイスのA24またはA32拡張メモリを指します。VXIデバイスはA24メモリまたはA32メモリのどちらか一方だけを実装できます。

Byte Access (D8) - [Byte Access]フィールドは、VXIデバイスが8ビットの拡張メモリ・アクセスをサポートするかどうかを指定します。Byte Accessには以下の選択肢があります。

NONE - デバイスはバイト・アクセスをサポートしません。これがデフォルトです。

ODD ACCESS - デバイスは、奇数バイト境界のみのバイト・アクセス（D08(O)）をサポートします。

ODD/EVEN ACCESS - デバイスは、すべての境界でのバイト・アクセス（D08(E)）をサポートします。

Word Access (D16) - [Word Access]フィールドは編集できません。すべてのVXIデバイスは、すべてのメモリ空間で16ビット・アクセス（D16）をサポートする必要があります。

LongWord Access (D32) - [LongWord Access]フィールドは、VXIデバイスが32ビットの拡張メモリ・アクセスをサポートするかどうかを指定します。LongWord Accessには以下の選択肢があります。

NONE - デバイスは32ビット・アクセスをサポートしません。これがデフォルトです。

D32 ACCESS - デバイスは32ビットの拡張メモリ・アクセスをサポートします。

Add Location - Add Locationフィールドをクリックするたびに、ダイアログ・ボックスの右半分に新しいフィールドの行が表示されます。これらの新しいフィールドは、デバイスの拡張メモリへのアクセスを設定するために使用します。以下の4つのフィールドがあります。

Name - メモリ位置のシンボル名。これは、READ MEMORYまたはWRITE MEMORYトランザクションを使用するDirect I/Oオブジェクトで、特定のメモリ位置を参照するために用いられます。

Offset - 設定するメモリ位置の、デバイスの拡張メモリの相対ベースからのバイト単位のオフセット。デフォルトのOffsetは0です。

Format - 設定するメモリ位置の読み書きに用いられるデータ・フォーマット。読み取りまたは書き込みアクセスは、[Offset]フィールドで指定されたバイトに対して行われます。可能なフォーマットは次のとおりです。
- BYTE - バイトを読み書きします。デバイスは、8ビット・アクセスをサポートし、上記の[Byte Access]フィールドで正しく設定されている必要があります。[BYTE]フィールドがODDの場合、[Offset]フィールドに指定されたバイト位置は奇数でなければなりません。
- WORD16 - 16ビット・ワードを読み書きします。16ビットは2の補数整数で表されます。すべてのVXIデバイスは明示的にこのフォーマットをサポートします。
- WORD32 - 32ビット・ワードを読み書きします。32ビットは2の補数整数で表されます。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。
- REAL32 - IEEE 754の32ビット浮動小数点数で表された32ビット・ワードを読み書きします。VEEでは、このフォーマットは[LongWord Access]フィールドがNONEに指定されていてもサポートされます（2回のD16アクセスによって32ビットすべてが読み書きされます）。[LongWord Access]フィールドがD32 ACCESSに指定されている場合、32ビットすべてがアクセスされます。

Mode - メモリ位置がサポートするI/Oモードを指定します。以下の選択肢があります。
- READ - このメモリ位置は、READ MEMORYトランザクションでのみ選択肢として表示されます。
- WRITE - このメモリ位置は、WRITE MEMORYトランザクションでのみ選択肢として表示されます。
- READ/WRITE - このメモリ位置は、READ MEMORYトランザクションとWRITE MEMORYトランザクションの両方で選択肢として表示されます。

Delete Location - [Delete Location]フィールドをクリックすると、[Select Memory Location To Delete]ボックスが表示されます。これには、現在設定されているメモリ位置のシンボルNameが表示されます。削除したいメモリ位置のシンボルNameをクリックし、[OK]ボタンをクリックして削除を確認します。

場所

I/O [image] Instrument Manager...でAdd...またはPropertiesを選択し、Advanced...を選択

関連項目

Instrument Properties、Instrument Manager

計測器設定を追加するには

Direct I/Oオブジェクトを使用するには


Advanced I/O

メニュー項目。

使用法

Advanced I/Oは、GPIB、RS-232（シリアル）、VXI、LAN、USBインタフェースの低レベル制御（バス・コマンド、ポーリング、サービス・リクエストなど）のための次のオブジェクトにアクセスするために使用します。

Interface Operations

Device Event

Interface Event

MultiDevice Direct I/O

注記

VXIplug&playは、Advanced I/O機能をサポートしません。

場所

I/O [image] Advanced I/O

関連項目

Agilent IO Monitor、Device Event、Interface Event、Interface Operations、MultiDevice Direct I/O

GPIB計測器をポーリングするには


Align

Editメニューの選択肢で、VEEのパネル・ビューと詳細ビューでオブジェクトを物理的に整列するために使用します。

使用法

Alignには、VEEオブジェクトの物理的配置を操作するためのいくつかのオプションがあります。オプションは、水平／垂直位置と、オブジェクトの分布を制御します。CTRLキーを押しながらマウスの左ボタンを使って、整列したいオブジェクトを選択できます。または、CTRLキーを押しながら、左マウス・キーで選択領域の左上隅から右下隅までドラッグすることにより、整列したいオブジェクトの周りにボックスを作成します。また、すべてのオブジェクトを選択したい場合は、EditメニューからSelect Allを選択します。オブジェクトを選択したら、次のメニュー・オプションの1つを使って整列を実行します。

  • Middles - 最も左にあるオブジェクトの中央をY座標基準点として、選択したVEEオブジェクトを水平方向に整列します。

  • Tops - 最も左にあるオブジェクトの上端をY座標基準点として、選択したVEEオブジェクトを水平方向に整列します。

  • Bottoms - 最も左にあるオブジェクトの下端をY座標基準点として、選択したVEEオブジェクトを水平方向に整列します。

  • Centers - 最も上にあるオブジェクトの中心をX座標基準点として、選択したVEEオブジェクトを垂直方向に整列します。

  • Lefts - 最も上にあるオブジェクトの左端をX座標基準点として、選択したVEEオブジェクトを垂直方向に整列します。

  • Rights - 最も上にあるオブジェクトの右端をX座標基準点として、選択したVEEオブジェクトを垂直方向に整列します。

  • Distribute Horizontally - 最も左にあるオブジェクトの左端を使用し、水平面上にオブジェクトが均等に分布するように、選択したVEEオブジェクトを水平方向に配分します。

  • Distribute Vertically - 最も上にあるオブジェクトの上端を使用し、垂直面上にオブジェクトが均等に分布するように、選択したVEEオブジェクトを垂直方向に配分します。

注記

オブジェクトを整列したときに、新しい配置でオブジェクトが重なり合う場合、Bring-to-FrontまたはSend-to-Back機能を使って、必要に応じてオブジェクトを再配置できます。

整列したオブジェクトは、整列の実行後も選択解除されません。これにより、同じオブジェクトに対して続けてグループ整列を実行できます。

整列または配分の際に、基準オブジェクトは移動されません。

場所

Edit [image] Align

Middlesまたは

Topsまたは

Bottomsまたは

Centersまたは

Leftsまたは

Rightsまたは

Distribute Horizontally

Distribute Vertically

関連項目

Default Preferences、Bring to Front（オブジェクト・メニュー）、Send to Back（オブジェクト・メニュー）、Select All


Allocate Array

メニュー項目。

使用法

Allocate Arrayは、次の配列構築／初期化オブジェクトにアクセスするために使用します。

Alloc Text

Alloc UInt8

Alloc UInt16

Alloc Int16

Alloc Int32

Alloc Int64

Alloc Real32

Alloc Real64

Alloc Coord

Alloc Complex

Alloc PComplex

注記

既存の配列を変更するには、Set Valuesを使用します。

場所

Data [image] Allocate Array

関連項目

Alloc Coord、Alloc Complex、Alloc UInt8、Alloc Int16、Alloc Int32、Alloc PComplex、Alloc Text、Alloc Real32、Alloc Real64、Get Values、Set Mappings、Set Values

配列を割り当てるには

配列の値を変更するには

オブジェクト・メニュー


Alloc Boolean

Boolean配列を作成するオブジェクト。

使用法

Alloc Booleanは、Boolean要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値はBooleanと解釈されます。デフォルトはFalseです。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Boolean

関連項目

Boolean、Get Values、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc Complex

Complex配列を作成するオブジェクト。

使用法

Alloc Complexは、Complex要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value - 各配列要素に格納する値。デフォルトは(0, 0)です。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Complex

関連項目

Complex、Get Values、Set Mappings、Set Values

配列を割り当てるには、Properties（オブジェクト）、オブジェクト・メニュー


Alloc Coord

Coord配列を作成するオブジェクト。

使用法

Alloc Coordは、Coord要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Int32やReal64などの他の配列型と異なり、Num Dimsは1でなければなりません。VEEでは1より大きい次元のCoord配列が作成できないからです。

Num Coord Dims - 各Coordの値の数。有効範囲は2～10です。

Init Value - 各配列要素に格納する値。デフォルトは、Num Coord Dimsの値に応じて、(0, 0)、(0,0,0)、(0,0,0,0)などです。

Size - 次元の要素数。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

場所

Data [image] Allocate Array [image] Coord

関連項目

Allocate Array、Build Data、Coord、Get Values、Set Values、UnBuild Data

配列を割り当てるには、Properties（オブジェクト）、オブジェクト・メニュー


Alloc Int16

整数配列を作成するオブジェクト。

使用法

Alloc Int16は、2バイト整数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値は整数と解釈されます。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した整数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り対数的に分布した整数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Int16

関連項目

Int16、Get Values、Set Mappings、Set Values

配列を割り当てるには、Properties（オブジェクト）、オブジェクト・メニュー


Alloc Int32

整数配列を作成するオブジェクト。

使用法

Alloc Int32は、4バイト整数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値は整数と解釈されます。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した整数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り対数的に分布した整数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Int32

関連項目

Int32、Get Values、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc Int64

整数配列を作成するオブジェクト。

使用法

Alloc Int64は、8バイト整数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値は整数と解釈されます。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した整数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り対数的に分布した整数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Int64

関連項目

Int64、Get Values、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc PComplex

PComplex配列を作成するオブジェクト。

使用法

Alloc PComplexは、PComplex要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value - 各配列要素に格納する値。初期値の位相は、π～-πラジアンの間に入るように正規化されます。値の大きさが負の場合、位相角を180度ずらすことによって正に変換されます。デフォルトは(0, @0)です。

Size - 次元の要素数。フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] PComplex

関連項目

Allocate Array、Get Values、PComplex、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc Real32

実数配列を作成するオブジェクト。

使用法

Alloc Real32は、4バイト実数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した実数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間で対数的に分布した実数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Real32

関連項目

Get Values、Real32、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc Real64

実数配列を作成するオブジェクト。

使用法

Alloc Real64は、8バイト実数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した実数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間で対数的に分布した実数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Real64

関連項目

Get Values、Real64、Set Mappings、Set Values

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc Text

Text配列を作成するオブジェクト。

使用法

Alloc Textは、Text要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value - 各配列要素に格納する値。この値は文字列と解釈されます。デフォルトはヌル（空文字列）です。

Size - 次元の要素数。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] Text

関連項目

Get Values、Set Mappings、Set Values、Text

配列を割り当てるには、 Properties（オブジェクト）、オブジェクト・メニュー


Alloc UInt8

整数配列を作成するオブジェクト。

使用法

Alloc UInt8は、1バイト整数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値は整数と解釈されます。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した整数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り対数的に分布した整数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] UInt8

関連項目

UInt8、Get Values、Set Mappings、Set Values

配列を割り当てるには、Properties（オブジェクト）、オブジェクト・メニュー


Alloc UInt16

整数配列を作成するオブジェクト。

使用法

Alloc UInt16は、2バイト整数要素の配列を作成するために使用します。

オープン・ビュー・パラメータ

Num Dims - 出力配列の次元数。Num Dimsは1～10の整数です。デフォルトは1です。

Init Value | Lin Ramp | Log Ramp

Init Value - 各配列要素に格納する値。この値は整数と解釈されます。デフォルトは0です。

Lin Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り均等に分布した整数値のリニア・ランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Log Ramp - ランプ初期値（含む）からランプ終了値（含む）までの間でできる限り対数的に分布した整数値のランプ。このオプションは、Num Dims = 1の場合のみ使用できます。

Size - 次元の要素数。サイズ・フィールドは各次元ごとにあります。デフォルトは10です。

Init ValueとSizeは、オブジェクトで設定することも、データ入力ピンから設定することもできます。

注記

個々の要素の値を変更するには、Set Valuesを使用します。

Num Dimsの値を変更した場合、次元サイズ・フィールドの数がNum Dimsの値に一致するように、オープン・ビューのフィールドが自動的に作成または削除されます。

出力配列はマッピングされません。配列の次元をマッピングするには、Set Mappingsを使用します。

場所

Data [image] Allocate Array [image] UInt16

関連項目

UInt16、Get Values、Set Mappings、Set Values

配列を割り当てるには、Properties（オブジェクト）、オブジェクト・メニュー


AlphaNumeric

英数字データを表示するオブジェクト。

使用法

AlphaNumericは、任意のデータ型を単一の値、Array 1D、Array 2Dとして表示するために使用します。配列を表示する場合、スクロール・バーを使って表示をスクロールできます。

プロパティ

ShowArrayIndices - このプロパティがTrueで、受け取ったデータが配列の場合、表示領域の各行にインデックスが表示されます。デフォルトはTrueです。

Number Format - Globalフォーマットをチェックした場合、デフォルト・フォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

Real:- Global Formatがオフの場合、このオブジェクトに表示するReal数値の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

Significant Digits:- Global Formatがオフの場合、Real値に対して表示する有効桁数を指定します。

注記

AlphaNumericオブジェクトの現在の幅が狭すぎて、数値型のデフォルトの精度で（現在指定されている表示フォントを使って）表示できない場合、アスタリスクの列(***)が表示されます。データを表示するにはオブジェクトのサイズを変更します。

2D Arrayがある場合、スクロール・バーが表示されます（配列全体を表示できるようにオブジェクトのサイズが変更されていない場合）。

3次元以上の配列は、文字列3D Arrayなどで表示されます。

ASCII値0～31の表示はフォントに依存し、正常に表示されない場合があります。

2048文字より長いテキスト文字列は、プラットフォーム（オペレーティング・システム）によっては正常に表示されません。32767文字より長いテキスト文字列は、すべてのプラットフォームで正常に表示されません。

場所

Display [image] AlphaNumeric

関連項目

Default Preferences、Logging AlphaNumeric.

スカラ値を表示するには、Properties（オブジェクト）

値の配列を表示するには、オブジェクト・メニュー


Arrange Icons

Windowsのメニュー項目で、VEEワークスペース中の最小化されたウィンドウ・アイコンの配置を制御します。

使用法

Arrange Iconsは、次のアイコン配置機能にアクセスするために使用します。

by Position - これを選択すると、最小化されたすべてのウィンドウ・アイコンが現在の位置に基づいてVEEワークスペースの下端に沿って整列されます。

by Name - これを選択すると、最小化されたすべてのウィンドウ・アイコンがVEEワークスペースの下端に沿って辞書順で整列されます。

注記

開かれて最小化されたウィンドウがない場合、Arrange Iconsメニュー項目は使用できません（淡色表示されます）。

場所

Window [image] Arrange Icons

関連項目

Minimize All、by Name、by Position


ArrayList - Add

配列、リスト、コレクションに項目を追加します。

場所

System [image] Collections [image] ArrayList [image] Add


ArrayList - Clear

配列、リスト、コレクションの項目をクリアします。

場所

System [image] Collections [image] ArrayList [image] Clear


ArrayList - Contains Item?

配列、リスト、コレクションに指定された項目が含まれるかどうかをチェックします。

場所

System [image] Collections [image] ArrayList [image] Contains


ArrayList - Count

配列、リスト、コレクションの項目を数えます。

場所

System [image] Collections [image] ArrayList [image] Count


ArrayList - Create

新しい配列、リスト、コレクションを作成します。

場所

System [image] Collections [image] ArrayList [image] Create


ArrayList - Enumerate

配列、リスト、コレクションのメンバを列挙します。

場所

System [image] Collections [image] ArrayList [image] Enumerate Items


ArrayList - Get

配列、リスト、コレクションから項目を取得します。

場所

System [image] Collections [image] ArrayList [image] Get Item


ArrayList - Remove Item

配列、リスト、コレクションから要素を削除します。

場所

System [image] Collections [image] ArrayList [image] Remove


ArrayList - Set Item

配列、リスト、コレクションの既存の値を新しい値に設定します。

場所

System [image] Collections [image] ArrayList [image] Set Item


asClrType

asClrType(x, t)

VEEデータ・コンテナ"x"を型"t"の.NETオブジェクトに変換する関数。

使用法

asClrTypeは、VEEデータ・コンテナを型"t"の.NETオブジェクトに変換するために使用します。 VEEは、VEEと.NETの両方がネイティブにサポートするすべてのデータ型に対して、VEEと.NET間でデータ型を自動的に変換します。例えば、Int16、Int32、Real64などです。これはVEEのほとんどの用途に適した動作として設計されています。ただし、まれにはこの自動変換を無効にし、データを真の.NETオブジェクトとして使用したい場合があります。このような場合、型変換関数asClrTypeを使って、VEEデータ型を.NET/CLRオブジェクトに変換できます。

"x"はVEEデータ・コンテナです。 使用できるVEEデータ・コンテナ型は、Boolean、Uint8、Int16、Int32、Int64、Real32、Real64、Text、およびこれらの型の配列です。 "t"は.NET/CLR型です。 使用できる.NET/CLR型は、すべてのプリミティブ型（System.Boolean、System.Byte、System.Sbyte、System.Int16、System.Uint16、System.Int32、System.Uint32、System.Int64、vUint64、System.Char、System.Double、System.Single）と、System.Decimal、System.DateTime、System.Stringです。

型"t"の.NETオブジェクトを返します。 VEEデータ・コンテナまたは.NET/CLR型のどちらかが使用できない場合、エラー440が発生します。 変換が失敗した場合、エラー464が発生します。

仮定:アセンブリmscorlib.dllを参照していること。 このアセンブリは、この関数で使用できるすべての.NET/CLRデータ型を提供します。

例

VEEは.NET型System.Stringを自動的にVEEのテキストに変換します。 System.Stringクラスのさまざまな便利な機能を使用したい場合、asClrTypeを使ってテキストをSystem.Stringに戻すことができます。

Set dotnetString = asClrType("abacusabcus", System.String);

dotNetString.EndsWith("us";);

examples\DotNet\StringSplit.veeも参照してください。

場所

Device [image] Function & Object Browser

Type: Built-in Functions

Category: Type Conversion

Member: asClrType


オート・スクロール

詳細ビューで、オブジェクトをメイン作業領域の境界にドラッグして、ドロップせずにそのままにしておくと、作業領域がその方向にスクロールします。オブジェクトは任意の境界または角に移動できます。


Beep

音を発生するオブジェクト。

使用法

Beepは、指定した周波数、長さ、音量の音を発生するために使用します。

オープン・ビュー・パラメータ

Frequency (Hz) - 音の周波数、Hz単位。デフォルトは1000 Hzです。

Duration (sec) - 音の長さ、秒単位。デフォルトは0.1 sです。

Volume (0-100) - 音の相対音量。0が無音、100が最大音量。デフォルトは80です（PCの場合、1から100まではすべて同じ音量です。ただし、0を指定すると無音になります）。このパラメータは、Windowsのすべてのバージョンで無視されます。

3つのオーブン・ビュー・パラメータはすべてデータ入力端子として追加できます。

注記

Beepオブジェクトの機能はハードウェアに依存します。場合によっては、オープン・ビュー・パラメータの一部が実際に発生する音に関連しないことがあります。また、コンピュータによっては、内蔵スピーカを持たず、外部スピーカ・モジュールを接続する必要があるものもあります。お使いのコンピュータのオーディオ出力機能については、コンピュータのマニュアルを参照してください。

FrequencyまたはVolumeの値を0以下に設定すると、指定した時間だけ休止します。

Beepオブジェクトは、長い音が終了する前に実行を終了する（シーケンス出力ピンをアクティブにする）場合があります。ただし、それ以降にBeepオブジェクトが実行された場合、前のトーンの実行が終了するまでプログラムは休止します。

Windows XP/2000/Vistaでは周波数と音量は無視されます。

場所

Display [image] Beep

関連項目

Properties（オブジェクト）、オブジェクト・メニュー


Boolean

定数のBooleanスカラまたは1次元配列を出力するオブジェクト。

使用法

Booleanは、Boolean定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

Booleanの間でサポートされる演算は次のとおりです。

  • 論理演算:AND、OR、XOR、NOT（!）

  • 比較演算: ==, !=

次の表は、Booleanデータ型に関する実行モード8とその他の実行モードの間の違いです。

演算 | 実行モード VEE 8 | 実行モード VEE 7 | 実行モード VEE 6 | 実行モード VEE 4&5
TRUE、FALSEの型 | Boolean | Int32 | Int32 | 非サポート
.NETまたはCOMへの代入 例:TreeView.ShowLines = TRUE | サポート | 非サポート | 非サポート | 非サポート
Booleanと他のデータ型との間の論理演算: OR、NOT、XOR、AND 例:TRUE OR 0.0 | 非サポート | サポート | サポート | 非サポート
数値演算: 例:sin(true) | 非サポート | サポート | サポート | 非サポート
基本的な数値演算: +, -, *, / 例:1 + True、True + False | 非サポート | サポート | サポート | 非サポート

例

Booleanをパネル・ビュー上のプロンプトとして使用するには、Booleanオブジェクトの名前をプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

プロパティ

 DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

 ArraySize - DataShape 1D Arrayが選択されている場合、 ArraySizeは配列の長さを設定します。

 ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

Stepping Category -DataShapeがArray 1Dの場合は無効です。

 ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

 Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

 AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、 AutoExecuteは無視されます。デフォルトはFalseです。

 InitialValue - 設定する値を指定します。デフォルト値はFalseです。

 InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

 InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

注記

バージョン8.0以降、Agilent VEEはコンパイル済み関数でBooleanをサポートします。コンパイル済み関数の戻り値型とパラメータ型にVEE_BOOLを使用できます。Agilent VEEはVEE_BOOLをBooleanとして扱います。

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値をFalseに設定できます。ConstantがArray 1Dとして構成されている場合、すべての値がFalseに設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Booleanが配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Boolean

関連項目

Alloc Boolean、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Text、Boolean、Toggle Control

データ定数を使用するには


Break

現在の反復ループを終了するオブジェクト。

使用法

Breakは、ループを終了し、反復子のシーケンス出力ピンを通って実行を継続するために使用します。

注記

BreakはUntil Breakオブジェクトとともに用いられるのが普通です。他の反復オブジェクトとともに使用することもでき、多くの場合If/Then/Elseオブジェクトと組み合わせて条件付きで反復を停止するために使用されます。

場所

Flow [image] Repeat [image] Break

関連項目

For Count、For Range、For Log Range、Next、On Cycle、If/Then/Else、Until Break

VEEプログラムの一部をループするには、Properties（オブジェクト）、オブジェクト・メニュー


Bring to Front（オブジェクト・メニュー）

オブジェクトのZオーダを変更することにより、オブジェクトを可視平面の前面に移動します。

使用法

パネル・ビューのオブジェクト・メニューから、選択したオブジェクトを可視平面のフォアグラウンドに移動します。

関連項目

Send to Back（オブジェクト・メニュー）、Align、Move（オブジェクト・メニュー）


Build Arb Waveform

座標データの組から波形を作成するオブジェクト。

使用法

Build Arb Waveformは、Coord値のArray 1Dから一様にサンプリングされた波形を作成するために使用します。

オープン・ビュー・パラメータ

Num Points - 出力波形のポイント数。デフォルトは256です。Num Pointsはデータ入力から設定することもできます。

注記

Build Arb Waveformは次の公式を使用します。

dx = (Xmax-Xmin)/Num Points

Xvalue = Xmin + (point * dx)

したがって、最後のデータ・ポイントはCoordの最後の独立値ではありません。

各Coordの(x)の独立値は、配列中の前のCoordの独立値以上でなければなりません。

Input Coord配列は(x,y,z)でなく(x,y)ペアでなければなりません。

場所

Data [image] Build Data [image] Arb Waveform

関連項目

Build Waveform、Comparator、Coord、Function Generator、Noise Generator、Pulse Generator、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

ScopeMask.vee


Build Complex

Complex数値を作成するオブジェクト。

使用法

Build Complexは、実数と虚数のコンポーネントからComplex数値を作成するために使用します。

注記

入力の1つが配列の場合、もう1つの入力はScalarまたはサイズと種類が一致する配列でなければなりません。両方の入力がReal64型に変換されます。出力は、入力と同じサイズと種類になります。入力値のマッピングは無視され、出力Complex値はマッピングされません。

場所

Data [image] Build Data [image] Complex

関連項目

Build Data、UnBuild Complex、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

Complex.vee


Build Coord

実数からCoordを作成するオブジェクト。

使用法

Build Coordは、実数のコンポーネントからCoordを作成するために使用します。

注記

座標のフィールド数は、データ入力の数によって決まります。デフォルト値（最小値）は2（x,y）です。座標フィールドの最大数は10です。

入力の1つが配列の場合、もう1つの入力はScalarまたはサイズと種類が一致する配列データでなければなりません。すべての入力がReal64型に変換されます。出力は、入力と同じ種類になります。入力値のマッピングは無視されます。

データ入力の種類はScalarまたはArray 1Dでなければなりません。

注記
Coordinateデータ型の場合、フィールド名は常に x、y、z、w、v、u、t、s、r、qです。ただし、入力端子名を変更することは可能です。これらのフィールド名は、UnBuild Coordおよびsort(x)で用いられます。

場所

Data [image] Build Data [image] Coord

関連項目

Build Data、Coord、UnBuild Coord、UnBuild Data、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

FutValue.vee


Build Data

メニュー項目。

使用法

Build Dataは、別々のコンポーネントから特定のデータ型のコンテナを作成する以下のオブジェクトにアクセスするために使用します。

Build Coord

Build Complex

Build PComplex

Build Waveform

Build Arb Waveform

Build Spectrum

Build Record

場所

Data [image] Build Data

関連項目

Allocate Array、Build Arb Waveform、Build Complex、Build Coord、Build PComplex、Build Record、Build Spectrum、Build Waveform、Set Mappings、Set Values、UnBuild Data


Build PComplex

別々のコンポーネントからPComplex（極座標複素数）数値を作成するオブジェクト。

使用法

Build PComplexは、大きさと位相のコンポーネントからPComplex数値を作成するために使用します。位相コンポーネントの単位は、File [image] Default Preferencesの下のTrig Mode設定によって決まります。

注記

入力の1つが配列の場合、もう1つの入力はScalarまたはサイズと種類が一致する配列でなければなりません。両方の入力がReal64型に変換されます。出力は、入力と同じ種類になります。入力値のマッピングは無視され、出力PComplex値はマッピングされません。

初期値の位相は、π～-πラジアンの間に入るように正規化されます。大きさが負の場合、正に変換され、位相角が180°シフトされます。

場所

Data [image] Build Data [image] PComplex

関連項目

Alloc PComplex、Build Complex、Build Data、Default Preferences、PComplex、UnBuild PComplex、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

Complex.vee、FutValue.vee、Manual10.vee


Build Record

別々のコンポーネントからレコードを作成するオブジェクト。

使用法

Build Recordは、スカラまたは配列のコンポーネントからレコードを作成するために使用します。入力データ・コンポーネントは出力レコードのフィールドになります。出力レコードは、スカラまたは1次元配列のどちらかになります。

オープン・ビュー・パラメータ

Output Shape - 出力レコードの種類をScalarまたはArray 1Dに設定できます。

注記

レコードのフィールド名は、対応する入力端子の名前から付けられます。フィールド名の大文字小文字は区別されません。1つのレコード内では同じフィールド名は使用できません。データ入力を追加することにより、任意の数のフィールドを持つレコードを作成できます。レコードのレコード（レコードのフィールドがそれ自体レコードであるもの）も作成できます。再帰のレベルに制限はありません（使用可能メモリの制限のみ）。

すべての入力がスカラ量の場合、Record出力ピンのレコードは、指定されたOutput Shapeと無関係に、各入力と1対1に対応するフィールドを持つスカラレコードとなります。

入力の中に1つでも配列がある場合、結果のレコードの種類は指定されたOutput Shapeによって次のように決まります。

Output ShapeにScalarが指定された場合、出力レコードは各入力と1対1に対応するフィールドを持つスカラとなります。各フィールドの種類は、対応する入力の種類に応じて、スカラまたは配列となります。

Output ShapeにArray 1Dが指定された場合、出力レコードは各入力に対応するフィールドを持つレコードの1次元配列となります。入力がスカラまたは1次元配列の場合、レコードの対応するフィールドはスカラとなります。入力がn次元配列の場合、対応するフィールドはn-1次元の配列となります。入力の中に配列が複数ある場合、それらすべてのサイズと種類が一致する必要があります。以下に例を挙げます。

入力Aが10要素の1次元配列で、入力Bがスカラの場合、出力はAとBの2つのフィールドを持つ10要素の1次元レコード配列となります。A入力配列の各要素が、出力レコードのフィールドAの各配列要素となります。入力Bは出力レコードのBフィールドとして10回繰り返されます。

入力が2次元以上の配列の場合でも、出力レコードはArray 1Dです。例えば、入力フィールドがサイズ10×3の2次元配列の場合、出力レコードは長さ10の1次元配列で、そのフィールドが3要素の1次元配列となります。

場所

Data [image] Build Data [image] Record

関連項目

From DataSet、Get Field、Merge Record、Record Constant、Set Field、SubRecord、To DataSet、buildRecord()、Declare Variable、UnBuild Record

レコードにデータを収集するには、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

appA_Records1.vee、Ch5_UnBuild.vee


Build Spectrum

別々のコンポーネントからSpectrumを作成するオブジェクト。

使用法

Build Spectrumは、PComplexまたはComplex数値と周波数間隔情報からスペクトラム値を構築するために使用します。

例

Array 1Dの[5]、PComplex (0,@1)、(0,@2)...があり、開始周波数が11で終了周波数が16の場合、周波数サンプルは11、12、13、14、15となります。

オープン・ビュー・パラメータ

Start/Stop Freq |Center/Span Freq - 2つの入力値がStart/StopとCenter/Spanのどちらを表すかを決定します。Start/StopまたはCenter/Spanのどちらかの値を入力として追加できます。

Freq Sampling - 周波数サンプリング値が線形と対数のどちらでサンプリングされるかを指定します。デフォルトはLinearです。

注記

入力PComplex値のマッピングは無視されます。

VEEはdBスケールのデータを管理しません。dBスケールのデータに対する演算を実行する場合、演算が適切に実行されるようにユーザが注意する必要があります。

リニア・スケールとdBスケールの間の変換を行うには、VEEに付属するライブラリ・プログラムを使用します。これは、VEEプログラムのインストール・ディレクトリの下のlibディレクトリにあります。

ポイントの数はサンプリング間隔の数と同じです。各ポイントは、サンプリング間隔の先頭に存在します。

場所

Data [image] Build Data [image] Spectrum

関連項目

Build Data、Build Waveform、UnBuild Spectrum

fft(x)、Properties（オブジェクト）、オブジェクト・メニュー


Build Waveform

別々のコンポーネントからWaveformを作成するオブジェクト。

使用法

Build Waveformは、振幅値の実数配列とタイム・スパン情報からWaveformを作成するために使用します。

オープン・ビュー・パラメータ

Time Span - yデータがサンプリングされる時間の長さ（秒単位）。Time Spanはデータ入力として追加できます。デフォルトは20 msです。

注記

入力値のマッピングは無視されます。Build Waveformは、yデータが指定された間隔中に一定のレートでリニアにサンプリングされると仮定します。

ポイントの数はサンプリング間隔の数と同じです。各ポイントは、サンプリング間隔の先頭に存在します。

場所

Data [image] Build Data [image] Waveform

関連項目

Build Arb Waveform、Build Data、Build Spectrum、UnBuild Waveform

ifft(x)、Properties（オブジェクト）、オブジェクト・メニュー

例の参照

DigFilt.vee、ReadMarkerValues.vee


Agilent I/O Monitor

I/O Monitor

I/O Monitorは、目標のライブラリ・レイヤのI/O呼出しをトレースするユーティリティです。I/O Monitorは.NET Framework用に設計されていますが、目標のI/Oライブラリ・レイヤを使用するレガシ・アプリケーションに対しても使用できます。

I/O Monitorの情報フロー

I/O Monitorは、I/Oライブラリ・レイヤおよびその他のソフトウェア・コンポーネントからトレース／デバッグ情報を受け取ります。各ソースから生成される個々の情報のことを（トレース）イベントと呼びます。I/O Monitorはトレース情報を受け入れますが、情報の流れは必ずしも一方向ではありません。I/O Monitorは、トレースのオン／オフやトレース・パラメータの動的な変更など、ソースの制御を実行できる必要があります。したがって、I/O Monitorとそのソースとの間の情報の流れは双方向で非同期です。

上の図のVISAおよびSICLトレース・ポイントは、測定器を制御するための有効なエントリ・ポイントです。VISAトレースが動作するためには、Agilent VISAライブラリが必要です。SICL詳細トレースは、測定器ドライバと測定器との間の最低レベルの対話を捕捉するもので、トレースの中でも特に有効な場合が多いものです。

I/O Monitorの利点

DirectIOやVISA-COMなどのソースからの高レベルの呼出しと、それに対応する低レベルのAPIとを関連付けることができます。あるDirectIOを実行したときにAPIで実際に何が行われるかを知ることができます。特定のデバイス・ドライバや高レベルI/Oアプリケーションからデバイスに送信される測定器コマンド・シーケンスを見ることができます。プログラムで予期した結果が得られないとか、デバイスからエラーが返されるなどの問題が発生した場合に、プログラムをトレースし、トレースをファイルに記録して、ファイルをサポート・チームに送ることにより支援を受けることができます。I/Oのボトルネックが存在する場合、I/O Monitorを使ってAPI呼出しをトレースすることで、どこで時間がかかっているかを突き止めることができます。

注記

Agilent IO Monitorは汎用のバス・モニタであり、他のプログラムがバス上で入力／出力するメッセージを記録できます。

場所

I/O [image] I/O Monitor

関連項目

Advanced I/O、Instrument Manager

バス・メッセージをモニタするには


ボタン

Toggle Controlを参照してください。


by Name

VEEワークスペース中のアイコン（最小化されたウィンドウ）の配置を管理する機能。

使用法

by Nameは、VEEワークスペース中のアイコン（最小化されたウィンドウ）を辞書順で整列するために使用します。アイコンはワークスペース下部に整列または積み重ねて表示されます。辞書順は、アイコンのタイトル・バーに表示された名前に適用されます。

場所

Window [image] Arrange Icons [image] by Name

関連項目

Arrange Icons、by Position、Minimize All


by Position

VEEワークスペース中のアイコン（最小化されたウィンドウ）の配置を管理する機能。

使用法

by Positionは、VEEワークスペース中のアイコン（最小化されたウィンドウ）を物理的に整列するために使用します。アイコンはワークスペース下部に整然と整列または積み重ねて表示されます。

場所

Window [image] Arrange Icons [image] by Position

関連項目

Arrange Icons、by Name、Minimize All


Call

定義済みの関数を実行するオブジェクト。

使用法

Callは、定義済みのUserFunction、リモート関数、コンパイル済み関数を実行する（呼び出す）ために使用します。Call Functionオブジェクトの入力と出力は、呼び出される関数の入力／出力と1対1に対応します。Call Functionの入力は、呼び出される関数に名前でなく位置によって渡されます。例えば、Call Functionオブジェクトの入力がAとBだとします。呼び出される関数の入力はxとyでもかまいません。この場合でも、Call Functionの最初の入力（A）は呼び出される関数の最初の入力（x）として渡されます。重要なのは位置だけです。

UserFunction、コンパイル済み関数、リモート関数を呼び出すには、実行時まで評価が遅延される式にその名前を含める方法もあります。これには、Formula、If/Then/Else、Set Valuesなどのオブジェクトの中の式や、SequencerおよびI/Oトランザクションの中の式が含まれます。例えば、関数someUsrFuncを呼び出すには、式2+someUsrFunc(a)をFormulaオブジェクトに含めることができます。

呼び出す関数を選択するには2つの方法があります。オブジェクト・メニューでSelect Functionを実行して使用可能な関数のリストから名前を選択する方法と、Function Nameフィールドに直接名前を入力する方法です。どちらの場合も、呼び出される関数をVEEが認識できれば、Callの入力と出力は自動的にその関数に合わせて構成されます。

Callで呼び出せる関数としては、UserFunction（ローカルに作成されたものまたはライブラリからインポートされたもの）、コンパイル済み関数、リモート関数があるので、同じ名前を持つ2つの関数が存在する可能性があります。Callオブジェクトでの名前の衝突は、以下の順序でトークンを検索することによって解決されます。

1. 呼び出し元のオブジェクトと同じライブラリに存在する関数名

2. ローカルUserFunction

3. インポートされたUserFunction、コンパイル済み関数、リモート関数。これら3つの間の優先順位は保証されません。目的の関数を選択するには、ドット記法を使って呼び出しにライブラリ名を含めます。例えば、myLib.func()のようにします。

上記の検索順序は、実行モードがVEE 5以上である場合に当てはまります。それより前の実行モードでは、関数名の検索順序が異なります。この検索順序の違いは、異なるライブラリからの同じ名前の関数を含むプログラムに対して大きな影響を与える可能性があります。詳細については、実行モードを参照してください。

オープン・ビュー・パラメータ

Function Name - 呼び出すUserFunction、リモート関数、コンパイル済み関数の名前。

オブジェクト・メニュー

Edit UserFunction - 指定されたUserFunctionの編集ウィンドウを表示します。編集が終わったら、ウィンドウ右上隅の閉じるまたは最小化ボタンを押します。

Select Function - VEEが現在認識している関数のリストを表示します。インポートされたUserFunctionとリモートUserFunction、コンパイル済み関数はライブラリ名で表示されます。関数を選択すると、その関数の定義に合わせてこのオブジェクトの入力／出力ピンが自動的に構成されます（UserFunctionもコンパイル済み関数も存在しない場合、この選択肢は淡色表示されます）。

Configure Pinout - 呼び出される関数の定義に合わせてこのオブジェクトの入力／出力ピンを自動的に構成します（指定された関数が現在VEEに存在しない場合、この選択肢は淡色表示されます）。

注記

Call Functionオブジェクトの動作は、演算関数の呼び出しに似ています。入力はVEE内部関数の仮引数と似た働きをし、出力は関数の戻り値と似た働きをします。

VEE 4以上のExecution Mode - Default PreferencesのExecution ModeがVEE 4以上に設定されている場合、Call Functionは非同期的です。UserFunctionの呼び出しは並列スレッドでタイムスライス実行されます。UserFunctionが実行中にプログラムの別の部分から再び呼び出された場合、2番目の呼び出しは最初の呼び出しが戻るまでブロックされます。コンパイル済み関数およびリモート関数への呼び出しは同期的です（下記参照）。

VEE 3 - Default PreferencesのExecution ModeがVEE 3に設定されている場合、Call Functionの実行は同期的です。関数が呼び出されると、並列スレッドの実行は関数が戻るまで中断されます。

場所

Device [image] Call

関連項目

Delete Library、Edit UserFunction、Formula、Import Library、UserFunction、UserObject、Properties（オブジェクト）、オブジェクト・メニュー

プログラムでUserFunctionを呼び出すには


Call Stack

プログラムのデバッグに役立つViewメニューのオブジェクト。

使用法

[Call Stack]ツール・ウィンドウは、VEEプログラムをデバッグするための補助として使用します。[Call Stack]ツール・ウィンドウは、プログラムが現在実行しているUserObjectまたはUserFunctionを表示します。このツール・ウィンドウには、現在実行中のオブジェクトだけでなく、現在実行中のオブジェクトを呼び出したUserObjectまたはUserFunctionのリスト（階層）が表示されます。

Call Stackに意味のある情報が表示されるのは、プログラムが休止状態にあるときだけです。プログラムの実行中には情報は表示されません。プログラムを休止する方法としては、Activate Breakpoint、Pauseなどがあります。

ウィンドウ情報

[Call Stack]ツール・ウィンドウには、ユーザが編集可能なフィールドやボタンはありません。プログラムが休止中でCall Stackがアクティブなときには、次の2つのことが起こります。

1. 次に実行されるオブジェクトがVEEワークスペースで強調表示されます。

2. 現在実行中のオブジェクトまたは関数に至る呼び出しの階層が、ツール・ウィンドウ内部に表示されます。階層中の項目をクリックすると、そのUserObjectまたはUserFunctionがVEEワークスペースで強調表示されます。

注記

Call Stackは、Step Into、Step Out、Step Over関数と組み合わせて、VEEプログラムのデバッグの補助に使用できます。

場所

View [image] Call Stack

関連項目

Activate Breakpoints、Find、Pause、Profiler、Run/Resume、Step Into、Step Out、Step Over、Toggle Breakpoint

Call Stackを表示するには

Copyright (c) 1991-2007 Agilent Technologies, Inc.


Cascade

VEEワークスペースのウィンドウを管理する機能。

使用法

Cascadeは、VEEワークスペースの開いている（最小化されていない）ウィンドウをすべて重なり合うウィンドウとして整列します。ワークスペースのウィンドウは重ねて表示され、右下方向に少しずつ位置がずらされます。

注記

VEEワークスペースに複数のウィンドウが開いている場合、Ctrlキーと他のキーを組み合わせることにより、ワークスペース中の他の最小化されていないウィンドウに順番に移動することができます。

Ctrl+TabまたはCtrl+F6キーを同時に押すと、現在いちばん上にあるウィンドウがウィンドウ・スタックのいちばん下に移動します。スタックですぐ下にあるウィンドウが見えるようになります。

Ctrl+Shift+TabまたはCtrl+Shift+F6キーを同時に押すと、ウィンドウ・スタックのいちばん下のウィンドウがウィンドウ・スタックのいちばん上に移動します。

場所

Window [image] Cascade

関連項目

Arrange Icons、Close All、Minimize All、Tile Horizontally、Tile Vertically


Change Extension

ファイル名の拡張子を変更します。例えば、このオブジェクトを使うと、ファイルtest.txtをtest.docに変更できます。

場所

System [image] Path [image] Change Extension


Check Box

Toggle Controlを参照してください。


Clean Up Lines

Mainプログラム、UserObject、UserFunctionのすべての線を再描画し、水平と垂直の線分だけを使ってオブジェクトを回避するようにします。

使用法

Automatic Line Routingをオフにした場合、接続の線はピンとピンの間の直線となります（タックした場合を除く）。ときどきClean Up Linesを選択することにより、プログラムの線を整理することができます。

注記

Clean Up Linesの動作はコンテキストに依存します。 UserObjectまたはUserFunctionの Editメニューから選択した場合、そのコンテキスト内の線だけが対象となります。メニュー・バーのEditから選択した場合、ルート・コンテキスト内の線だけが対象となります（UserObject内の線は対象となりません）。

複雑なプログラムの線をすべて再描画するには、多少時間がかかることがあります。

特定のルーティングが複雑になりすぎる場合、一部のオブジェクトを別の場所に移動して、Auto Line Routing機能が短い経路を発見できる余地を作るとうまくいくことがあります。

Clean Up Linesを使用した後では、2本の線が交差しているのか、あるいは1本の線が3箇所に接続されているのかがわかりにくくなることがあります。このような場合、Line Probeを使用して線の端点を表示します。

場所

Edit [image] Clean Up Lines
または
UserObject（オブジェクト・メニュー） [image] Edit [image] Clean Up Lines

関連項目

Default Preferences、Line Probe、UserObject


Clear All Breakpoints

実行ブレークポイントをクリアします。

使用法

Clear All Breakpointsは、デバッグ終了後にオブジェクトからすべてのブレークポイントを削除するために使用します。

場所

Debug [image] Clear All Breakpoints

関連項目

Activate Breakpoints、Properties（オブジェクト）、Toggle Breakpoint

ブレークポイントを制御するには


Clone（オブジェクト・メニュー）

このオブジェクトを複製し、オブジェクトのコピーをPasteバッファに置きます。

使用法

Cloneは、オブジェクトのコピーを作成するために使用します。Cloneは、ただちに使用可能な複製オブジェクトを作成し、かつオブジェクトのコピーをPasteバッファに置きます。Cloneは、クローンされるオブジェクトの端子、パラメータ、サイズなどのすべての属性をコピーします。

注記

複数のオブジェクトを同時にコピーするには、CTRL-左ボタンまたはEdit [image] Select Allでオブジェクトを選択し、Edit [image] CopyおよびEdit [image] Paste（または CTRL-cおよびCTRL-v）を使用します。

Cloneを実行するたびに、Pasteバッファの以前の内容は上書きされます。

UserObjectの各Cloneは、その中のすべてのオブジェクトのそれぞれ独立したコピーです。あるコピーを変更しても、他のコピーは変更されません。

Instrument Panelの各Cloneは、同じ計測器のそれぞれ異なる状態を反映します。

ショートカット

クローンするオブジェクトを選択します。マウスをオブジェクトの上に置き、CTRL+左ボタンを押したままにします。クローンするオブジェクトを目的の位置にドラッグします（オブジェクトをクローンするには少なくとも65ピクセルの距離を移動する必要があります）。

場所

各オブジェクト・メニュー [image] Clone

関連項目

オブジェクト・メニュー、Cut（オブジェクト・メニュー）、Copy、Paste、Replace


Close All

VEEワークスペースのウィンドウを管理する機能。

使用法

Close Allは、開いているウィンドウと最小化されたウィンドウ（アイコン）をすべて閉じ、VEEワークスペースを空にします。

場所

Window [image] Close All

関連項目

Arrange Icons、Cascade、Minimize All、Tile Horizontally、Tile Vertically


CLR Version

CLR（Common Language Runtime）のバージョンをホスト・マシンから読み取ります。

場所

System [image] Environment [image] CLR Version


Collector

データを収集して配列を出力するオブジェクト。

使用法

Collectorは、スカラ入力データから1次元配列を作成したり、収集した入力配列から出力配列を作成したりするために使用します。入力配列が"n"次元の場合、コレクタはn+1次元の配列を出力することも、1次元配列を出力することもできます（後者の場合、入力データは1次元に展開されます）。すべてのデータが収集されたら、XEQピンをアクティブにすると、結果の配列が出力されます。

オープン・ビュー・パラメータ

Output Shape - 次の2つのいずれかを選択します。

n+1 Dim Array - 入力信号（n次元の配列）が収集され、n+1次元の配列として出力されます。

1 Dim Array - 入力信号は、種類と無関係に、コレクタによって1次元に展開され、Array 1Dとして出力されます。

（スカラ入力データの場合、どちらを選択しても出力の種類は"Array 1D"です）

オブジェクト・メニュー

Clear - Collectorの内容をクリアします。

注記

CollectorにはXEQが必須なので、別のXEQピンを追加したり、このピンを削除したりすることはできません。

CollectorはXEQピンがトリガされるまで入力データの収集を続けます。

Collectorには2つの入力があります。1つは入力データ（任意の種類と型）用で、もう1つは実行のタイミングをオブジェクトに通知するためのものです。Collectorは第1のデータ入力ピンで複数のデータを受け入れ、XEQピンがアクティブにされるまでデータを収集し続けます。その後、オブジェクトはすべてのデータを出力ピンにコピーし、出力を伝達します。XEQピンがアクティブにならない限り、出力データ・ピンが伝達することはありません。データが伝達されると、Collectorは内部バッファをクリアし、再びデータの収集を開始します。出力信号の型は、XEQまたはClearの後で最初に入力されたデータ・コンテナの型によって決まります。それ以降のコンテナはすべて最初のコンテナの型に変換されます。変換が失敗した場合、エラーが報告されます。

出力信号の種類は、選択されたOutput Shapeによって決まります。

n+1 Dim Array動作 - Output Shapeとしてn+1 Dim Arrayを選択した場合、CollectorはDataピンに入力されるデータを収集し、入力データの次元数より1大きい次元を持つ配列を出力します。各入力信号は、XEQピンがトリガされるまで、最初の入力信号と同じサイズおよび種類でなければなりません。マッピング情報はコピーされません。出力信号はマッピングされません。

例えば、最初の入力データが長さ10のReal64の1次元配列の場合、それ以降の入力信号は、XEQピンがトリガされるまで、Real64に変換可能な型の長さ10の1次元配列でなければなりません。出力信号は、10列n行のReal64の2次元配列です。ここで、"n"はXEQがトリガされるまでにData入力ピンにデータが送られた回数です。

1 Dim Array動作 - Output Shapeとして1 Dim Arrayを選択した場合、CollectorはDataピンに入力されるデータを収集し、入力データの種類と無関係にArray 1Dを出力します。ScalarまたはArray 1Dのデータは末尾に結合されます。多次元配列はArray 1Dに展開されてから結合されます。

例えば、値1.2のReal64と値34のスカラInt32がデータとして入力され、その後にXEQがアクティブにされた場合、値[1.2, 34.0]の長さ2のReal64 Array 1Dが出力されます。その後、いくつかのComplexデータ・コンテナを入力した場合、Complex Array 1Dが出力されます。

任意の型のスカラ入力に対しては、CollectorはOutput Shapeの選択と無関係に同じ出力を生成します。

WaveformおよびSpectrum信号は多次元をサポートしないため、Collectorがn+1 Dim Arrayモードで動作している場合は入力として使用できません。WaveformまたはSpectrumデータを2次元配列に収集するには、まずデータを解体してから、2次元配列に収集します。マッピング情報は失われることに注意してください。

RecordおよびCoordコンテナは1次元までの配列しかサポートしないので、Collectorがn+1 Dim Arrayモードで動作している場合は、スカラのRecordまたはCoordコンテナだけが入力として使用できます。

Enum入力はText型に変換されてから配列に格納されます。

Record入力の場合、各フィールドの名前、型、サイズが一致する必要があります。

Collectorの初期状態では内部バッファはクリアされています。内部バッファの収集データは、XEQピンがアクティブになるたびにクリアされます。Clearコントロール入力を追加することにより、XEQがアクティブになる前にCollectorのデータをプログラムでクリアすることができます。その後にデータ入力をアクティブにすると、収集が最初から開始されます。XEQがアクティブにならないと、出力は伝達されません。

XEQピンがアクティブになったときに、データ入力が前回のクリア以後ヌルでないデータを受け取っていない場合、CollectorはVEE 3実行モードではヌル信号を出力します。VEE 4以上の実行モードで、入力データの型がわかっている場合、そのデータ型の0要素の配列が出力されます。入力データ型が不明の場合、Int32型の0要素配列が出力されます。

場所

Data [image] Collector

関連項目

Allocate Array、Concatenator、Get Values、Set Values、Sliding Collector、Properties（オブジェクト）、オブジェクト・メニュー

配列にデータを収集するには


Color Alarm

Scalar入力の値に応じて異なる色とテキスト文字列を表示するオブジェクト。

使用法

Color Alarmは、入力値とユーザ定義のレンジに基づいて色とテキスト文字列を表示する"LED"として使用します。オプションのデジタル数値フィールドに入力値を表示することもできます。

プロパティ

ClearAtPreRun - このプロパティがTrueの場合、Color Alarmの内容はPreRun時にクリアされます。デフォルトはTrueです。

ClearAtActivate - このプロパティがTrueの場合、Color Alarmの内容はアクティブ化時にクリアされます。デフォルトはTrueです。

Shape - Color Alarm表示の種類を選択します。デフォルトはCircularです。

Show 3-D Border - このプロパティがTrueの場合、Color Alarmには3次元に見えるような陰影が付けられます。このプロパティがFalseの場合、Color Alarmは単色で表示されます。これは、きわめて小さい"LED"表示が必要な場合、オブジェクトを多少高速に動作させたい場合、3次元の外見が好ましくない場合などに使用します。

ShowDigitalDisplay - このプロパティがTrueの場合、入力値のデジタル表示がオブジェクトのオープン・ビューの下部に表示されます。このプロパティがFalseの場合、デジタル表示は表示されず、オブジェクトの動作が高速になります。デフォルトはFalseです。

HighColor - 最高レンジ（High Limitより上）に使用する色を指定します。

High Text - HighColor使用時にColor Alarmに表示されるテキストを指定します。デフォルトはHighです。

High Limit - 最高レンジの下限値を定義します。この値はLow Limit以上でなければなりません。

MidColor - 中央レンジ（High Limit以下でLow Limitより上）に使用する色を指定します。

Mid Text - MidColor使用時にColor Alarmに表示されるテキストを指定します。デフォルトはMidです。

Low Limit - 最低レンジの上限値を定義します。この値はHigh Limit以下でなければなりません。

LowColor - 最低レンジ（Low Limit以下）に使用する色を指定します。

Low Text - LowColor使用時にColor Alarmに表示されるテキストを指定します。デフォルトはLowです。

注記

入力データはScalarで、Real64に変換可能なものでなければなりません（Complex、PComplex、Spectrum、Coordは「解体」しておく必要があります）。

Low LimitはHigh Limitより小さくなければなりません。

色のレンジを2つだけにするには、Low LimitをHigh Limitと等しく設定します。

1つの色だけを使用するには、LowColor、MidColor、HighColorを同じ色に設定します。

場所

Display [image] Indicator [image] Color Alarm

関連項目

AlphaNumeric、Fill Bar、Logging AlphaNumeric、Meter、Tank、Thermometer

Color Alarmを表示するには

オブジェクト・メニュー


COMオブジェクト - トラブルシューティング

Microsoft Visual Studio .NETまたはAgilent VEE環境でCOMタイプ・ライブラリを.NETアセンブリとして使用しようとした場合、まれに注意メッセージが表示されることがあります。

原因

Microsoft Visual Studio .NETもAgilent VEEも、TypeLibConverter.ConvertTypeLibToAssembly APIを使ってCOMタイプ・ライブラリを.NET interopアセンブリに自動的に変換しようとします。エラー・メッセージが表示されるのは、このAPIがCOMタイプ・ライブラリを.NET interopアセンブリに変換するのに失敗したためです。

回避方法

この問題を回避するには、.NET Framework SDK 1.1に付属するコマンド・ライン・ユーティリティTlbImpを使ってみてください。このSDKはVEEには付属しないので、Microsoft Developer's Networkからダウンロードする必要があります。Visual Studio .NET 2003がインストールされている場合、このSDKはすでにインストールされているのでダウンロードの必要はありません。

  1. コマンド・ウィンドウを開き、空のフォルダに移動します。

  2. 次のように入力します:<SDKのパス>\TlbImp.exe <COMタイプ・ライブラリ.dllのパス>

例: c:\program files\Microsoft Visual Studio .NET 2003\sdk\v1.1\bin\TlbImp.exe
c:\program files\IVI\bin\rsfs.dll

これにより、空のフォルダに.NET interopアセンブリ（例: Rsfs_RohdeAndSchwarzLib.dll）が作成されます。従属アセンブリがある場合はそれも同じディレクトリに作成されます。

  3. 作成されたアセンブリをVEEプログラムのある場所にコピーします。例えば、プログラムがC:\VEE programs\Rsfs.veeの場合、作成されたすべてのアセンブリをc:\VEE programsにコピーします。

  4. VEEプログラムを開き、普通に使用を開始します。例えば、IVI-COMドライバの場合なら、"To/From IVI-COM"のオンライン・ヘルプ項目を参照してください。他のCOMタイプ・ライブラリの場合、Device [image] .NET Assembly Referencesダイアログを使ってinteropアセンブリに移動します。

注記

TlbImpを使ってプライマリInteropアセンブリを作成することもできます。この場合、アセンブリをプログラムと同じディレクトリにコピーせずに複数のプログラムから共有できます。IVI-COMドライバなどにはこの方法が最適な場合があります。TblImpの詳細については、Microsoft Developer's Networkを参照してください。


Command Line

このVEEセッションを起動したコマンド・ライン全体をパラメータ付きで取得します。

場所

System [image] Environment [image] Command Line


Command Line Args

VEEの現在のセッションの起動に使用されたコマンド・ライン引数を1次元配列に取得します。

場所

System [image] Environment [image] Command Line Args


Comparator

2つの値を比較し、比較が失敗した場所の座標を出力するオブジェクト。

使用法

Comparatorは、WaveformやCoordなどの数値テスト値を基準値と比較するために使用します。Test Valueの値の中に比較に失敗したものがあった場合、Coord Array 1DがFailures出力ピンに出力され、Failed出力ピンがアクティブになります。すべての値が比較に成功した場合、空のCoordがFailures出力ピンに出力され、Passed出力ピンがアクティブになります。

Failures出力のCoord Array 1Dの独立フィールド（x）には、失敗した各点のインデックスまたはマッピングが格納されます。従属フィールド（y）には、失敗したTest Valueが格納されます。

オープン・ビュー・パラメータ

Test Value == Ref Value - 比較演算子をクリックし、表示されるリストから機能を選択することで、比較演算子を変更できます。デフォルトは==です。

注記

Comparatorは数値を比較します。Textオブジェクトの場合はその中の数値だけが比較されます。Comparatorはテキスト文字列の比較には使用できません。

Ref Valueの種類は、Test Valueの種類と同じとして扱われます。例えば、Test ValueがArray 1Dの場合、Ref ValueがScalarの3なら、Array 1D（すべての要素が3）として扱われます。配列同士を比較する場合、サイズと次元数が一致する必要があります。

Test Valueがスカラの場合、Ref Valueもスカラでなければなりません。

Test Valueがマッピングされていない配列の場合、Ref Valueのマッピングは無視されます。

Test Valueがマッピングされた配列の場合、Failures出力のCoordの独立変数（x）は失敗した要素のマッピングになります。

Test ValueがCoordの場合、Coordの従属変数だけが比較に使用されます。Failures出力のCoordには、失敗したCoord値が格納されます。

すべてのテストには、最低6桁の有効数字で等しいまたは等しくないと判定する「ほぼ等しい」アルゴリズムが用いられます。Ref Valueが複数要素の配列の場合、基準データの大きさから「仮想0」の値が導出されます。値が"0"のデータ・ポイントは、この「仮想0」の値と比較されます。

場所

Device [image] Comparator

関連項目

Allocate Array、Build Arb Waveform、Coord、If/Then/Else、Set Values、Properties（オブジェクト）、オブジェクト・メニュー


Complex

定数のComplexスカラまたはArray 1Dを出力するオブジェクト。

使用法

Complexは、Complex Constantを設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Complexをパネル上のプロンプトとして使用するには、Complexオブジェクトの名前をEnter the AC voltage:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

(2,10/27)と入力すると、Complex定数は式を評価して答えを表示します。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。デフォルトはScalarです。

ArraySize:- 1D Arrayを選択した場合、ArraySizeは配列の長さを設定します。デフォルトは10です。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、1D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は(0, 0)です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1DのComplex値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Complexが配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

実数部と虚数部を単にカンマで区切って入力すれば、VEEが値を適切にフォーマットします。

場所

Data [image] Constant [image] Complex

関連項目

Alloc Complex、Build Complex、Default Preferences、Constant、Coord、Date/Time、Selection Control、、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Text、Boolean、 Toggle Control

データ定数を使用するには、オブジェクト・メニュー


Complex Plane

連続的に生成された複素数データを直交座標プロットに表示するオブジェクト。

使用法

Complex Planeは、Complex、PComplex、Coordのいずれかのデータ値を実数対虚数軸上に表示するために使用します。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Imag - Y（虚数）軸の名前。

Trace1 - 最初のトレースの名前。

Real - X（実数）軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、Scalesプロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化（コンテキスト開始）時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType - デフォルトはAxisです。

NumMarkers:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、オープン・ビューに移り、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

 MarkersInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

 MarkerColor - マーカの色。

DisplayBackColor - 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。デフォルトのBackground色は、[Default Preferences]の[Colors]タブの[Screen Element: Graph Background]で設定されます。

 ScaleLabelFont:- スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Traces Category:

Name - グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color - トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトは黄色です。

LineStyle - データ・ポイントを接続する線のフォーマット。デフォルトは連続線です。

PointStyle - 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはドットです。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

ScaleNumberFormat:（X/Yスケール、および追加のYスケールに対して存在するプロパティ）

Scales Group:

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはTrueです。これをオフにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- xデータとyデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles:- Automatic Scalingがオンのときに表示されるデケードの最大数（xとyの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

Global Format - Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

入力の型は、Spectrum、Waveform、Coord（ScalarまたはArray 1D）のいずれかでなければなりません。

Coord型の入力データは、Spectrum型に変換されず、単にxとyの値を直交座標値として使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

AutomaticScalingプロパティがTrue（Scalesカテゴリ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、その[Properties]ウィンドウを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersカテゴリの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Complex Plane

関連項目

Magnitude Spectrum、Polar Plot、Strip Chart、Waveform (Time)、X vs Y Plot、XY Trace、Default Preferences、表示にマーカを設定するには、マーカのプロパティを取得／設定するには、オブジェクト・メニュー


Component Driver

選択した特定のコンポーネントに対する値の読み書きを行う計測器制御オブジェクト。計測器に対する制御パネルが表示されない点がPanel Driverオブジェクトと異なります。

使用法

Component Driverは、一度に少数のコンポーネントの値だけを設定することにより計測器を制御するために使用します。Component Driverを使用するには、目的の計測器に対する計測器ドライバがインストールされている必要があります。

Component DriverオブジェクトをVEE作業領域に追加するには、I/O [image] Instrument Manager...をクリックして、Instrument Managerダイアログ・ボックスを表示します。設定済みの計測器のリストを見て、使用したい計測器のエントリがあるかどうかを調べます。

使用したい計測器がリストに存在し、正しく設定されている場合:

1. 計測器エントリを1回クリックして強調表示します。

2. Component Driverボタンをクリックします。

使用したい計測器がリストに存在するが、設定を変更する必要がある場合、Properties…をクリックし、ダイアログ・ボックスを使って設定を変更し、設定を保存し（OKをクリック）、その後に上記のステップ1と2を実行します。

使用したい計測器がリストに存在しない場合、Add…をクリックし、ダイアログ・ボックスを使って計測器を設定し、設定を保存し（OKをクリック）、その後に上記のステップ1と2を実行します。

設定ダイアログ・ボックスの詳細については、Instrument ManagerおよびInstrument Propertiesを参照してください。

注記

コンポーネント・ドライバは、Live Modeをオフにして動作させることができます。これにより、計測器がコンピュータに接続されているかどうかに関わらず、計測器と通信せずにプログラムを実行することができます。プログラムを物理計測器と通信させるには、Live Modeをオンに設定する必要があります（Instrument Propertiesを参照）。

Component Driverがその役割を果たすには、少なくとも1つの入力または1つの出力を追加する必要があります。複数の入力または出力を追加することもでき、入力と出力の両方が同じオブジェクトにあってもかまいません。入力は、コンポーネントに対して設定動作を実行します。出力は読み取り動作を実行します。コントロール・ピンを入力として使用することにより、コンポーネントを初期化したり、プログラムからデバイス・アドレスを変更したり、タイムアウト値を設定したりすることができます。

場所

I/O [image] Instrument Manager...

関連項目

Direct I/O、Instrument Manager、Instrument Properties、Panel Driver、Add Terminal、Properties（オブジェクト）

Component Driverオブジェクトを使用するには、パネル・ドライバおよびコンポーネント・ドライバの概要


Concatenator

すべての入力データを連結してArray 1Dを出力するオブジェクト。

使用法

Concatenatorは、2つ以上のデータ要素を1つのArray 1Dの要素に結合するために使用します。結果の配列のサイズは、入力のサイズの合計です。データ入力を追加することにより、3つ以上のコンテナを連結することもできます。

Enum入力はText型に変換されてから連結されます。

注記

出力のデータ型は、すべての入力データ型のうち最も順位の高いものです。入力が多次元の配列の場合、配列はArray 1Dに展開（行優先）されてから連結されます。

Textの複数の行を1行に連結するには、Accumulatorを使用します。

ヌル入力は無視されます。この点は、式ボックス内で動作するconcat(x,y)関数と異なっています。式ボックスでは、ヌル入力はすべて値0を持つReal64スカラに自動的に変換されます。したがって、aがヌルでbが値5のInt32スカラの場合、concat(a,b)は値[0, 5]の長さ2のReal64 Array 1Dを返します。Concatenatorオブジェクトにヌルと値5のInt32スカラを与えると、値[5]の長さ1のInt32配列が出力されます。

最初の値（1つめのデータ入力）がマッピングされている場合、他の入力値は同じポイント間隔でマッピングされているか、マッピングされていないかのいずれかでなければなりません。結果はXminからXmin + dx * Nまでマッピングされます。ここで、"Xmin"は最初の配列値のマッピングの最小値、"dx"は最初の値の2つの連続する点の間の距離、"N"は結果の配列のサイズです。

場所

Data [image] Concatenator

関連項目

Accumulator, Allocate Array、Collector、Set Values、Sliding Collector、Properties（オブジェクト）、オブジェクト・メニュー

concat(x,y)


Conditional

メニュー項目。

使用法

Conditionalは、次の条件分岐にアクセスするために使用します。

If A == B

If A ~= B

If A != B

If A < B

If A > B

If A <= B

If A >= B

Conditionalオブジェクトは、どちらのサブスレッドを実行するかを決定するために使用します。

注記

Device [image] Functions & Object Browserの下のComparison項目とConditional項目との違いに注意してください。Comparisonsは0または1を出力する式であるのに対して、ConditionalsはIf/Then/Elseであって、複数の出力のうち1つが起動されます。

Device [image] Function & Object Browser...のLogical itemsにあるAND、OR、XOR、NOTの戻り値はInt32型であり、オペランドと同じ種類です。これは、常にスカラを返す==などの条件式と異なっています。

論理演算子は、テキスト型に対しては、文字列がヌルかヌルでないかという意味でのみ定義されています。すなわち、"0"および"1"は空文字列でないので論理的には真であり、""は偽です。したがって、"zoo" AND ""（ヌル文字列）は、2番目の文字列がヌルなので論理的に偽です。テキスト型を文字列以外の型と比較する場合、後者がText型に変換されます。したがって、"zoo" AND "0"は真となります。実数値0は文字列"0"に変換され、両方の文字列がヌルでないため、ANDは真となり、1を返します。

場所

Flow [image] Conditional

その後、目的の条件分岐オブジェクトを選択

関連項目

If A ~= B、If A == B、If A != B、If A < B、If A > B、If A <= B、If A >= B、If/Then/Else

Comparison、Triadic Operator、Function & Object Browser

VEEプログラム内で分岐するには


Confirm (OK)

OKを参照してください。


Constant

メニュー項目。

使用法

Constantは、スカラまたは配列の種類を持つ次の入力定数にアクセスするために使用します。

Text

Boolean

UInt8

UInt16

Int16

Int32

Int64

Int64

Real32

Real64

Coord

Complex

PComplex

Date/Time

Record

注記

Text以外のすべてのConstantオブジェクトは、入力ボックスで任意の式を使用できます（グローバル変数を使用する場合は、プログラムのそれ以前の実行でその変数が設定されている必要があります。存在する変数を見るには、プログラム・エクスプローラでGlobalsをクリックします）。式は、編集フィールドに入力された後すぐに解釈されて評価されます。結果のスカラ数値がConstantの値として用いられます。Constantは、Formulaオブジェクトと異なり、入力変数をサポートしません。したがって、式で入力変数名を使用することはできません。入力した式は、使用するConstantに該当する型か、その型に変換可能な型のスカラ値に評価される必要があります。

サポートされる構文は、以下の例外を除いて、Formulaオブジェクトの場合と同じです。配列構築構文([, ])演算子を使って配列を構築することはできません。戻り値がスカラにならないからです。また、入力名変数をConstantオブジェクトで使用することはできません。

一般的に、すべての2項演算子、ネストのための括弧、関数呼び出し、既定義の数値定数PI (3.1416...)が使用できます。

Variant型はConstantオブジェクトには存在しません。Variantデータ型を作成する唯一の方法は、Declare Variableを使用し、型として"Variant"を選択することです。

例

PComplexオブジェクトに(2, @PI/2)と入力すると、これが評価されて(2, @90)が返されます（Trig ModeがDegreesに設定されている場合）。

Real64オブジェクトに14 + exp10(3)と入力すると、これが評価されて1014が返されます。

Real64オブジェクトに(1, 2)と入力すると、エラーが返されます。VEEではComplexからReal64への変換はできないからです。

場所

Data [image] Constant

関連項目

Complex、Coord、Date/Time、PComplex、Real32、Real64、Record Constant、Selection Control、Text、Toggle Control、、UInt8、UInt16、Int16、Int32、Int64、Boolean、

レコード定数を作成するには

配列定数を作成するには

データ定数を使用するには


Continuous

メニュー項目。

使用法

Continuousは、次のオブジェクトにアクセスするために使用します。

Int32 Slider

Int64 Slider

Real64 Slider

Int32 Knob

Int64 Knob

Real64 Knob

場所

Data [image] Continuous

関連項目

Int32 Knob、Int32 Slider、Real64 Knob、Real64 Slider

データ・スライダおよびノブを使用するには


Control Input（オブジェクト・メニュー）

オブジェクトに非同期コントロール入力端子を追加します。

使用法

Control Inputは、ResetやClearなどの非同期入力をオブジェクトに追加するために使用します。

Control Inputを選択した後、追加するコントロールをダイアログ・ボックスから選択します。システムによっては、コントロール入力の端子はデータ入力と色が異なっています。

注記

コントロール入力は一部のオブジェクトでは使用できません。

コントロール入力ピンをアクティブにしても、オブジェクトが動作するわけではありません。単に該当する動作（Clearなど）が実行されるだけです。

コントロール入力で実行される動作は、オブジェクト・メニューの選択肢またはオープン・ビューのボタンによっても実行できる場合があります。

場所

各オブジェクト・メニュー [image] Add Terminal [image] Control Input

関連項目

Add Terminal、Data Output（オブジェクト・メニュー）、Delete Terminal、オブジェクト・メニュー


Coord

定数のCoordスカラまたはArray 1Dを出力するオブジェクト。

使用法

Coordは、Coord Constantを設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。デフォルトはScalarです。

ArraySize:- Datashape 1 D Arrayを選択した場合、ArraySizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、Datashape 1 D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、Datashape 1 D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は(0, 0)です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

Number Format - Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1DのCoord値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Coordが配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

Coordには3つ以上のフィールドが含まれる場合もあります。例えば、(x, y, z)は3つのフィールドを持つCoordです。

Coordに対する数学的演算は、従属変数だけを対象とします。すなわち、(x, y)ペアのyの値を対象とします。

例

2, 5 + exp10(2)と入力すると、Coord定数(2,105)が作成されます。

Coord Array 1Dを使って、波形の境界エンベロープを定義し、波形に対するComparatorに入力できます。境界波形の制限点を定義するには、CoordのArray 1Dを使用します。制限点とは、制限波形の形状を定義する線分の端点です。この配列をBuild Arb Waveformボックスに送ることにより、制限波形を作成します。新しい境界波形をComparatorボックスの入力の1つに使用することにより、境界波形の外側にある点を得ることができます。

境界波形をclipUpperまたはclipLower関数で使用することにより、波形を制限境界にクリッピングすることができます。

Coordをパネル上のプロンプトとして使用するには、タイトルを"Enter the Coordinates"などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

場所

Data [image] Constant [image] Coord

関連項目

Complex、Constant、Date/Time、PComplex、Real32、Real64、Selection Control、Text、Toggle Control、、UInt8、UInt16、Int16、Int32、Int64、Boolean、 データ定数を使用するには。


Copy

選択されたオブジェクトのコピーを、Pasteバッファと、Windows 2000/XPのクリップボードに入れます。

使用法

Copyを使用した後、Pasteを使用して、選択したオブジェクト群の複数のコピーを作成できます。

注記

Copyはオブジェクトが選択されている場合のみ使用できます。

Copyを実行するたびに、Pasteバッファの以前の内容は上書きされます。

コピーしたオブジェクトは、同じプログラムの別の場所や、別のVEEセッションに貼り付けることができます。Windows 2000/XPでは、コピーしたオブジェクトを他のアプリケーションに貼り付けることもできます。

1つのオブジェクトをコピーするには、オブジェクト・メニューのCloneを使用します。CopyとCloneの違いは、Cloneではオブジェクトの複製がただちに作成されるのに対して、Copyではオブジェクトの複製がPasteバッファに入れられ、後で使用可能になるという点です。

場所

Edit [image] Copy

関連項目

Clone（オブジェクト・メニュー）、Cut、オブジェクト・メニュー、Paste、Replace、Select All


Counter

データ入力ピンがアクティブにされた回数を表示して出力するオブジェクト。

使用法

Counterは、積算回数を記録するために使用します。Counterは、前のオブジェクトの出力によって入力がアクティブにされた積算回数を記録します。Counterの出力はReal64スカラです。

オブジェクト・メニュー

Clear - Counterの内容をクリアします。

注記

Counterのデータ入力は特定の型のデータである必要はなく、ヌル値の入力もカウントされます。Clearコントロール・ピン入力をアクティブにすることによってもクリアできます。

Counterの値であるReal64スカラは、Counter出力から得ることができます。

場所

Device [image] Counter

関連項目

Accumulator、Properties（オブジェクト）、オブジェクト・メニュー


Create Directory

新しいディレクトリを作成します。

場所

System [image] Directory [image] Create Directory


Create RunTime Version

編集不可能なプログラムの保護されたバージョンを保存します。

使用法

Create RunTime Versionは、プログラムが完成した後、ユーザがアクセスする前に、プログラムのメイン・パネル・ビューをロックするために使用します。保護された項目の詳細ビューへのアクセスはできなくなります。

Create RunTime Versionを使用した場合、保護されたバージョンを呼び出すためのファイル名の入力を求められます。保護されたファイルは、<filename>.vxeという名前で保存されます。保護されたファイルを実行するには、[File] [image] [Open...]を選択し、[Files of type:]をSecure VEE Programs (*.vxe)に変更して、ファイルを選択します。保護されたファイルをロードした場合、VEEの開発ツールの多く（Edit、Debugなど）は使用できません。

注記

保護されたプログラムは、保護されたプログラムよりもロードと実行が高速です。

[Default Preferences]を使って、保護されたプログラムのファイル・フォーマットをASCIIまたはバイナリに設定できます。デフォルト設定のバイナリ・フォーマットを使うと、保存されるファイルのサイズが小さくなり、ロードが高速になります。

セキュリティのため、VEEでは.vxeファイルを別のプログラムにマージすることはできません。ただし、.vxeファイルとして保存されたライブラリをインポートすることはできます。

場所

File [image] Create RunTime Version...

関連項目

Default Preferences、UserFunction、UserObject

プログラムを保護するには


Create UserObject

選択されたオブジェクトをUserObjectに入れます。

使用法

Create UserObjectは、オブジェクトを論理的／物理的にグループ化するために使用します。含めるオブジェクトを選択して、Create UserObjectを選択します。作成されたUserObjectには、選択されたオブジェクトが含まれます。

UserObjectは、他のオブジェクトと同様に動作します。UserObject内部のすべてのオブジェクトは、UserObjectのすべてのデータ入力がアクティブになるまで動作しません。UserObject内部のすべての動作が完了した後で、データ出力がアクティブになります。

オープン・ビューのタイトル・バーの右側にある最大化ボタンは、UserObjectのサイズをVEE作業領域のサイズに拡大します。

UserObject内部のオブジェクトが、UserObjectに入る前に他のオブジェクトに接続されていた場合、接続を維持するためにUserObjectに端子が自動的に作成されます。UserObject内部のオブジェクトはUserObject外部のオブジェクトと直接接続することはできません。このためには、まずUserObjectメニューから入力／出力ピンを追加する必要があります。

注記

オブジェクトが選択されていない場合、Create UserObjectは使用できません。空のUserObjectを作成するには、DeviceメニューからUserObjectを選択します。UserObjectを作成した後で新しいオブジェクトをその内部に配置するには、UserObjectウィンドウ内部にオブジェクトを移動します。既存のオブジェクトを新しいUserObjectの内部に配置するには、CutおよびPasteを使用します。

共通に使用される機能を持つUserObjectsを（Save Objects...を使って）保存することにより、再使用可能な機能のライブラリを作成しておくと便利です。

UserObjectに対してStep Overを実行すると、UserObjectのコンテキスト全体が実行されます。UserObject内部の個々のオブジェクトを実行するにはStep Intoを使用し、残りのすべてのオブジェクトを実行してUserObjectを終了するにはStep Outを使用します。

場所

Edit [image] Create UserObject

関連項目

Add To Panel、Default Preferences、Create RunTime Version、Select All、Step Into、Step Over、Step Out、Unpack（オブジェクト・メニュー）、UserFunction、UserObject

UserObjectのライブラリを作成して使用するには

プログラム中のオブジェクトからUserObjectを作成するには

プログラムにUserObjectを作成するには


Create UserFunction

Editメニューの選択肢で、ユーザが選択したVEEオブジェクトからUserFunctionを作成するために使用します。

使用法

Create UserFunctionを使用すると、機能的に関連しているVEEオブジェクト群を独立したUserFunctionにまとめることができます。関連するVEEオブジェクトをUserFunctionに変換するのは、それらのオブジェクトをVEEプログラム中で繰り返し使用する場合に特に便利です。

UserFunctionを作成するには、関数に含めたいVEEオブジェクトを、CTRLキーを押しながらマウスの左ボタンを押すことによって選択します。選択したオブジェクトは陰影で強調表示されます。

関数に含めたいオブジェクトを選択したら、EditメニューからCreate UserFunctionを選択します。Create UserFunctionダイアログ・ボックスが表示されます。このダイアログ・ボックスのFunction Name:フィールドには、作成するUserFunctionに対するわかりやすい名前を入力できます。新しいUserFunction名を入力しない場合、名前はデフォルトでUserFunction1になります。新しいUserFunctionの名前を選択したら、Create UserFunctionダイアログ・ボックスでOKボタンをクリックします。

新しいUserFunctionを作成すると、選択したオブジェクトがすべて新しいUserFunctionウィンドウに表示されます。新しいウィンドウでは、指定したUserFunction名がタイトル・バーに表示されます。さらに、この新しいUserFunctionに対するCallが、新しいUserFunctionが作成されたVEEウィンドウの位置にCallオブジェクトとして表示されます。

注記

現在アクティブなウィンドウで選択されているVEEオブジェクトがない場合、Create UserFunctionメニュー項目は淡色表示（選択不可）になります。

場所

Edit [image] Create UserFunction

関連項目

Call、Edit UserFunction、Import Library、UserFunction、UserObject

プログラム中のオブジェクトからUserFunctionを作成するには

プログラムにUserFunctionを作成するには


Cut

選択されたオブジェクトを削除し、Pasteバッファと、Windowsのクリップボードに入れます。

使用法

Cutは、選択されたオブジェクトの組を削除したり、オブジェクトを作業領域のある場所から取り除いて、作業領域の別の場所に（Pasteを使って）その複数のコピーを配置したりするために使用します。

注記

Cutはオブジェクトが選択されている場合のみ使用できます。

Cutはプログラム実行中には使用できません。

1つのオブジェクトを削除するには、オブジェクト・メニューのDeleteを使用します。

Cutを実行するたびに、Pasteバッファの以前の内容は上書きされます。

間違ってオブジェクトをCutした場合、Undoを使って復元できます。

Cutしたオブジェクトは、同じプログラムの別の場所や、別のVEEセッションや、別のアプリケーションに貼り付けることができます。

オブジェクトを削除せずに複数のコピーを作成するには、CloneまたはCopyを使用します。クリップボードを変更せずにオブジェクトを切り取るには、オブジェクトのコンテキスト・メニューのDeleteを使用します。

Cut操作はパネル・ビューでも詳細ビューでも元に戻すことができます。

場所

Edit [image] Cut

関連項目

Clone（オブジェクト・メニュー）、Cut（オブジェクト・メニュー）、Copy、Paste、Replace、操作を元に戻すには、Delete（オブジェクト・メニュー）、Select All


Cut（オブジェクト・メニュー）

オブジェクトを削除し、Pasteバッファとクリップボードに入れます。

使用法

Cutは、このオブジェクトを作業領域から削除するために使用します。

注記

CutはUserObjectおよびUserFunctionからのみ使用できます。

Cutを実行するたびに、Pasteバッファの以前の内容は上書きされます。

Cut（オブジェクト・メニュー）はプログラム実行中には使用できません。

間違ってオブジェクトをCutした場合、PasteまたはUndoを使って復元できます。

切り取ったオブジェクトは、同じプログラムの別の場所や、別のVEEセッションに貼り付けることができます。切り取ったオブジェクトを他のアプリケーションに貼り付けることもできます。

複数のオブジェクトを削除したい場合、EditメニューのCutを使用するか、CTRLキーを押しながら左マウス・ボタンを押して移動することにより、切り取りたい項目の周りに長方形を描画します。作業領域の空いた部分で右クリックし、メニューからCutを選択します。

ショートカット

ポインタの下のオブジェクトを削除するには、CTRL+Dを押します。

場所

オブジェクト・メニューの [image] Cut

関連項目

Clone（オブジェクト・メニュー）、Copy、Cut、Paste、Replace、Select All


Cyclic Button

Selection Controlを参照してください。


Data Input（オブジェクト・メニュー）

オブジェクトにデータ入力端子を追加します。

使用法

Data Inputは、オブジェクトが使用するデータ入力端子の数を増やすために使用します。オブジェクトによっては、追加したデータ入力には自動的にA、B、Cなどの名前が付けられます。ほとんどの端子の名前は、もっと意味のある名前に変更できます。

ほとんどの入力端子ではデータの型と種類は変更できませんが、一部のオブジェクトではこれらの制約を変更できます。例えば、If/Then、Formula、Shift RegisterおよびI/Oメニューの下のオブジェクトなどです。

注記
入力端子のデータの型や種類を変更するのは、オブジェクトがそのデータ型だけを必要とする場合に限ってください。制約をAny以外に変更した場合、オブジェクトがデータを処理する前に入力データを端子の制約に合わせて変換する必要があります。変換には時間がかかります。変換が失敗すると、オブジェクトはエラーを返します。

注記

Data Inputは、データ入力の追加が可能なオブジェクトでのみ使用できます。

ショートカット

データ入力端子を簡単に追加するには、入力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに、カーソル位置に新しいデータ入力端子が追加されます。Add Terminal [image] Data Inputは、いちばん後ろに端子を追加します。CTRL+Dを押すと、カーソル位置の端子が削除されます。

場所

各オブジェクト・メニュー [image] Add Terminal [image] Data Input...

関連項目

Add Terminal、Data Output（オブジェクト・メニュー）、Control Input（オブジェクト・メニュー）、Conditional、Delete Terminal、オブジェクト・メニュー、Properties（オブジェクト）


Data Output（オブジェクト・メニュー）

オブジェクトにデータ出力端子を追加します。

使用法

Data Outputは、データ出力端子の数を増やすために使用します。オブジェクトによっては、追加したデータ出力には自動的にX、Y、Z、W、Vなどの名前が付けられます。これらのデータ出力名は、もっと意味のある名前に変更できます。

出力端子のコンテナ情報（データの型と種類）は、オブジェクトが実行されるまで端子情報ダイアログ・ボックスには表示されません。

注記

Data Outputは、データ出力の追加が可能なオブジェクトでのみ使用できます。

ショートカット

データ出力端子を簡単に追加するには、出力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに、カーソル位置に新しいデータ出力端子が追加されます。Add Terminal [image] Data Outputは、いちばん後ろに端子を追加します。CTRL+Dを押すと、カーソル位置の端子が削除されます。

場所

各オブジェクト・メニュー [image] Add Terminal [image] Data Output...

関連項目

Add Terminal、Data Input（オブジェクト・メニュー）、Delete Terminal、Error Output（オブジェクト・メニュー）、Instrument Manager、オブジェクト・メニュー


Date/Time

An object that outputs a constant date and time value. Date/Time takes an input date and time and converts it to the number of seconds between the input and the beginning of the Epoch (defined as beginning at 0000 hours UTC January 1, 0001 AD).

Use

Use Date/Time to display the time and date at the moment an object or data is created.

Date/Time can be used to calculate elapsed time between a past and current event by comparing the two mathematically.

To change a value such as the day, date, or time, type the value. For example, typing Tue changes Mon 27/Oct/2003 15:43:33 to Tue 28/Oct/2003 15:43:33. If you don't specify a value, the current day, date, or time is displayed. If you change just one of these the other time elements will stay the same.

Example

You can use Date/Time to determine the length of time that has passed between the moment a specific piece of experimental data was produced and another moment in time, either past or present. Use a Date/Time box to enter the new, arbitrary date then take the difference between the original, experimental data and the new arbitrary date.

To determine the length of time it takes for all or part of your program to execute, use Timer or now().

Properties

DataShape - Sets the initial data shape of the value(s) to be output with this object. Default is Scalar.

 ArraySize: - When 1D Array is selected, ArraySize sets the length of the array.

 ArraySizeFixed - When the property is True, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

 ShowArrayIndices - When the property is True, each line in the entry field is indexed. This selection is only available if 1D Array is selected. Default is True.

 PasswordMasking - When this property is True, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive date/time data. The string that is output on the Date/Time output pin is not masked. Masking is disabled when Configuration is 1D Array. Default is False.

Wait for Input - When the property is True, the object does not operate until the object's value is changed. When the property is False, the object operates as soon as any constraints are met, and the currently selected value is output. Default is False.

 AutoExecute - When the property is True, the object operates and starts the rest of the program when a value is selected. If the program is already running, AutoExecute is ignored. Default is False.

InitialValue - Specifies the value to be set. Default value is Sat 01/Jan/1 17:00:00 MST.

 InitializeAtPreRun - When the property is True, the InitialValue is set at PreRun time. Default is False.

 InitializeAtActivate - When the property is True, the InitialValue is set at Activate time. Default is False.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value, Reset, Enable Editing, and Disable Editing.

The Default Value input allows you to programmatically change the current value(s). The Constant is reconfigured to match the shape of the incoming data. The control input should be a valid Date/Time string as given by the parse rules for date/time constants. These are the same rules as those for Direct I/O.

The Reset input allows you to programmatically set the value(s) to zero. If the Constant is configured as an Array 1D, all values are set to zero. The actual data on the Reset input is ignored.

The Enable Editing and Disable Editing inputs allow you to programmatically control whether the value can be changed in the object痴 open view.

Note that the InitialValue field is always a scalar, even if Date/Time is configured to be an array.

You can display Date/Time output in AlphaNumeric or Logging AlphaNumeric by using the Time Stamp number format available in those objects' Properties window.

You can write the Date/Time output to various locations such as a string, file, or printer by using objects such as To String, To File, or To Printer (I/O [image] To [image]). In these objects, use the Time Stamp format in a WRITE TEXT transaction.

For MS Windows, you can change the time zone that appears in this object by using the Date/Time Properties dialog box (Time Zone tab) in Control Panel. After changing the time zone setting, you must restart VEE for the change to take effect.

Location

Data [image] Constant [image] Date/Time

See Also

Timer

To Use a Data Constant


DateTime Compare

2つの日付／時刻を比較します。

場所

System [image] DateTime [image] Compare


DateTime To Local Time

日付／時刻値を地方時に変換します。

場所

System [image] DateTime [image] To Local Time


DateTime To String

日付／時刻値を文字列に変換します。

場所

System [image] DateTime [image] To String


DateTime To Universal Time

日付／時刻値を世界時に変換します。

場所

System [image] DateTime [image] To Universal Time


Day of the Week

指定された日付の曜日を求めます。

場所

System [image] DateTime [image] Day of the Week


Day of the Year

指定された日付の年頭からの日数を求めます。

場所

System [image] DateTime [image] Day of the Year


Declare Variable

プログラミング変数を宣言するために使用するオブジェクト。

使用法

Declare Variableオブジェクトは、VEEプログラムの任意の場所で変数を宣言するために使用します。次の3つの種類の変数が宣言できます。

Global - 宣言された変数はプログラムの任意の場所で使用できます。これは宣言される変数のデフォルトのスコープです。

Local to Context - 宣言された変数は、宣言されたコンテキスト、例えばUserObjectやUserFunctionに専用となります。

Local to Library - 宣言された変数は、特定のLibrary専用となり、その中のUserFunctionだけから使用できます。

オブジェクト・メニュー

Add Field -- レコードのフィールド・リストの末尾に新しいフィールドを追加します。ダイアログ・ボックスを使って、新しいフィールドの名前、型、種類を定義できます。このフィールドは、Record型を選択した場合以外は淡色表示されます。

Insert Field -- レコードの指定された位置に新しいフィールドを挿入します。ダイアログ・ボックスを使って、新しいフィールドの名前、型、次元を定義できます。もう1つのダイアログ・ボックスを使って、複数のフィールドが存在する場合の挿入位置を指定できます。このフィールドは、Record型を選択した場合以外は淡色表示されます。

Delete Field -- レコードのフィールドを削除できます。ダイアログ・ボックスに削除可能なフィールドのリストが表示されます。この選択は、レコードに複数のフィールドがある場合のみ使用できます。このフィールドは、Record型を選択した場合以外は淡色表示されます。

Edit Event Handler… - 宣言されたActiveXオブジェクトに対してイベント・ハンドラUserFunctionが作成されている場合、[Edit Event Handler]ダイアログ・ボックスを開きます。

Create Event Handler… - [Create Event Handler UserFunction]ブラウザを開きます。このブラウザでは、ActiveXオートメーション・オブジェクトから発生したイベントを処理するUserFunctionを作成できます。ブラウザの[Member]エリアに表示された各イベントに対して、イベント・ハンドラを作成できます。このメニュー項目は、TypeがObject設定されており、指定されたLibraryおよびClassに対してイベントを有効にしている場合に使用できます。

Generate

Record Constant -- このRecordの構成と一致するフィールドを持つRecord定数オブジェクトを作成できます。この選択は、宣言された変数の型がRecordの場合のみ使用できます。

Build Record -- このRecord構成に一致する入力を持つBuild Recordオブジェクトを作成できます。この選択は、宣言された変数の型がRecordの場合のみ使用できます。

Unbuild Record -- このRecord構成に一致する出力を持つUnbuild Recordオブジェクトを作成できます。この選択は、宣言された変数の型がRecordの場合のみ使用できます。

オープン・ビュー・パラメータ

Name:- ユーザ定義変数名。デフォルトの名前はglobal1です。

Scope:- 宣言される変数のプログラム・スコープ。有効なプログラム・スコープの値は、Global、Local to Context、Local to Libraryです。デフォルトのプログラム・スコープはGlobalです。

Type:- 変数のデータ型。Real64、Int32、Enumなど。デフォルトの型はReal64です。

TypeがRecordに設定された場合、[Declare Variable]ダイアログ・ボックスは右側に拡張されます。拡張された領域では、レコードを定義して構築できます。レコードを構築するには、オブジェクト・メニューの[Add Field]、[Insert Field]、[Delete Field]を使用します。

TypeがObjectに設定された場合、新しいフィールド"Sub Type"が表示され、[Declare Variable]ダイアログ・ボックスは右側に拡張されます。拡張された領域では、ActiveXまたは.NETオブジェクトに対して変数を宣言する際のオプションの詳細を指定できます。変数を宣言する際にこれらの詳細は指定しなくてもかまいません。ただし、指定すれば、VEEが自動的に型チェックを行い、宣言された変数への代入でこれらの指定が満たされることを保証します。ActiveXオブジェクトのLibrary、Class、Eventsの値を変更するには、[Edit…]をクリックし、表示されるダイアログ・ボックス[Specify Object Type]で値を変更します。.NETオブジェクトのAssembly、Namespace、Type、Membersの値を変更するには、Sub Typeを.NETに変更し、[Edit...]をクリックします。表示されるダイアログ・ボックス（Specify Object Type）で値を変更します。Sub Typeを"Any"にすると、サブタイプとして.NET、ActiveX（COM）、VEEオブジェクト（XYDisplayなど）が使用できます。

TypeがVariantに設定された場合、変数に代入する値はどのデータ型でもかまいません。

Num Dims:- 変数の次元数。有効範囲は0～10です。デフォルト値は0です。

注記

ActiveX参照のクリーンアップを実行するプログラミング技法については、CreateObjectの項目を参照してください。

場所

Data [image] Variable [image] Declare Variable

関連項目

ActiveX Automation References、ActiveX Control References、Delete Variable、Get Variable、Set Variable、Specify Object Type、Variant、Properties（オブジェクト）、オブジェクト・メニュー

変数を作成するには、ActiveX参照の解放

ActiveXオブジェクト／コントロールのVEEでの使用方法の詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照してください。


Default Preferences

VEEプログラミング環境のデフォルト設定を指定するためのダイアログ・ボックスを表示するメニュー項目。

使用法

Default Preferencesは、VEE作業領域のオプションを設定するために使用します。保存されたオプションは、VEEを開始して[New]を選択したときに使用されます。これらのオプションの一部はプログラムにも保存されるので、各プログラムに異なるデフォルトのセットを設定できます。

ダイアログ情報

[General]タブ:

[Environment]グループ

Auto Line Routing- [Auto Line Routing]チェック・ボックスを選択した場合、オブジェクトを移動またはサイズ変更したときに、オブジェクトに接続されたラインが自動的に描き直されます。ラインが他のオブジェクトを避けて通る場合は、水平と垂直のラインだけが用いられます。複雑なプログラムの場合、ラインをすべて再描画するには多少時間がかかることがあります。[Automatic Line Routing]チェック・ボックスを選択していない場合、接続ラインはピンとピンの間を直線で結びます（タックした場合を除く）。オブジェクトを避けてラインを引き直すには、[Edit] [image] [Clean Up Lines]を選択します。

Delete Variables at PreRun - [Delete Variables at PreRun]チェック・ボックスが選択されている場合、プログラムが実行される前に、すべての変数に格納されている値が削除されます。Get Variableオブジェクトは、参照している変数がSet Variableオブジェクトによって設定されるまで実行できないため、必要な変数が設定されていないとエラーが返されます。[Delete Variables at PreRun]チェック・ボックスが選択されていない場合、変数に格納されている値はPreRun時に削除されず、プログラムは前回の実行による値を使って動作します。ただし、このデータは無効な（今回のプログラム実行では正しくない）可能性があり、エラーが報告されないため、予期しない結果が生じることがあるので、注意が必要です。

Uncertain Data Flow Compiler Warning - [Uncertain Data Flow Compiler Warning]チェック・ボックスがチェックされている場合、不確かなデータ・フローのコンパイラ警告が[Output]ウィンドウに表示されます。チェックされていない場合、VEEは警告とエラーだけを[Output]ウィンドウに記録します。

Code Completion and Insight- [Code Completion and Insight]チェック・ボックスが選択されている場合、Code CompletionおよびInsight機能が有効になります。Formulaボックスでの入力の際に、使用可能な選択肢がすべて提示されます。

Code Completion Supports Build-in Functions - [Code Completion Supports Build-in Functions]チェック・ボックスが選択されている場合、VEEの組み込み関数が[Code Completion]ウィンドウに表示されます。この項目がチェックされていない場合、Code Completionは組み込み関数を表示しません。

Code Completion Supports COM Constants- [Code Completion Supports COM Constants]チェック・ボックスが選択されている場合、COM定数が[Code Completion]ウィンドウに表示されます。この項目がチェックされていない場合、Code CompletionはCOM定数を表示しません。

Match Brackets in Formula- [Match Brackets in Formula]チェック・ボックスが選択されている場合、Formulaで一致する括弧が自動的にグレーで示されます。この機能は、複雑な式の場合に便利です。

[Execution Mode]グループ:
詳細については、実行モードの理解を参照してください。実行モードの間の互換性の問題については、実行モードを参照してください。

VEE 8.5 - VEE 8.5製品と同じ設定を使ってプログラムを実行します。VEE 8.5モードには、VEE 8モードのすべての機能と、新しいデータ型であるUInt16が含まれます。

VEE 8 - VEE 8.0製品と同じ設定を使ってプログラムを実行します。VEE 8モードには、VEE 6&7モードのすべての機能と、新しいデータ型であるInt32およびBooleanが含まれます。

VEE 6&7 - VEE 6.0製品と同じ設定を使ってプログラムを実行します。VEE 6モードには、VEE 5モードのすべての機能と、新しいデータ型であるUInt8、Int16、Real32、Variantが含まれます。

VEE 5 - VEE 5.0製品と同じ設定を使ってプログラムを実行します。これにより、VEE 5.0で作成されたプログラムが、そのバージョンと全く同じように動作します。VEE 5モードには、VEE 4モードのすべての機能と、WindowsでのActiveXのサポートが含まれます。注記:VEE 4.0以前で作成されたプログラムは、VEE 5モードでは異なる動作をする可能性があります。

VEE 4 - VEE 4.0製品と同じ設定を使ってプログラムを実行します。これにより、VEE 4.0で作成されたプログラムが、そのバージョンと全く同じように動作します。VEE 4モードでは、コンパイラ・テクノロジーが追加され、それ以前のバージョンよりもプログラム実行が高速になりました。注記:VEE 3.2以前のバージョンで作成されたプログラムは、このモードでは異なる動作をする可能性があります。プログラムが正常に動作しているように見えても、タイムスライス実行の違いによってエラーが発生する可能性があります。

VEE 3 (Not Compiled) - プログラムを古いVEEインタプリタで実行することにより、VEE 3.2以前のバージョンで作成されたプログラムが、そのバージョンと全く同じように動作するようにします。

[Trig Mode]グループ:

Degrees | Radians | Gradians - このプログラムで使用されるデフォルトの三角関数単位を指定します。Radiansを選択した場合、三角関数計算は最も高速に実行されます。

[Debug]グループ:

Data Flow Rate:プログラム中のデータ・フローを示すData Flowマーカの移動速度を設定します。1～10の速度を選択します（10が最高速）。デフォルトの速度は6です。

Disable Debug Features - すべてのデバッグ機能をオフにして、プログラムが最高速で実行されるようにします。

Check Instrument Addresses at PreRun - 計測器チェックを有効にすると、VEEは実行前にサポートされるすべての計測器をチェックして、参照されている計測器がアクセス可能（動作中）であることを確認します。計測器またはインタフェースがアクセス不能の場合は、次の動作が行われます。

1. 問題を修正した後で再試行するように促すダイアログ・ボックスが表示されます。"Yes"と答えるとこの計測器の検出が再試行され、"No"と答えると次の計測器がチェックされ、"Cancel"と答えるとこの計測器が完全にバイパスされます。

2. 再試行後に計測器が検出された場合、次の計測器がチェックされます。

3. 再試行が失敗した場合（または答が"No"だった場合）、同じインタフェース・タイプ上の動作中の計測器のリストが表示されます。ユーザは現在の計測器の代替アドレスを選択できます。

[Program Development]グループ:

Alignment Spacing - [Edit] [image] [Align] [image] [Space Equally]をチェックした場合にVEEオブジェクトの間に置かれるスペースの量（ピクセル単位）を指定します。その他の[Align] [image] コマンドの1つを選択すると、指定したスペースの量を使ってオブジェクトが整列されます。

Binary RunTime File Format - [File] [image] [Create RunTime Version]を使ってプログラムを.vxeファイルに保存する場合に用いられるファイル・フォーマットを制御します。[Binary RunTime File Format]（デフォルト）をオンにすると、ファイルのサイズが小さくなり、プログラムのセキュリティが向上します。これをオフにすると、ファイルはASCIIフォーマットで保存されます。

Show Description Indicators - これをチェックすると、オブジェクトに説明がある場合に、オブジェクトの右上隅に小さい赤い三角形が表示されます。赤い三角形をクリックすると、説明の編集セッションを開始できます。

[Colors]タブ:

Screen Element - デフォルト・カラーを設定する画面要素（VEEのグラフィック部分）を選択します。これらの要素の一部については、各VEEオブジェクトの[Properties]を選択することで、ローカルにカラーを変更できます。

Color Value - 画面要素のカラーをパレットから選択できます。

Color Coding group:

Enable Color Coding - [Enable Color Coding]がチェックされている場合、カラー・コードが有効になります。詳細ビュー・オブジェクトのタイトル・バーと、アイコン・ビュー・オブジェクトの背景カラーが、現在のカラー・コード・テーマに従って色付けされます。カラー・コード・テーマを変更する方法については、「カラー・コード・パターンを変更するには」を参照してください。この項目がチェックされていない場合、すべての画面要素がClassic Blue Themeを使って色付けされます。

Change Color Coding... - [Change Color Coding Theme]ダイアログ・ボックスを開き、カラー・コード・テーマの変更を可能にします。

Import Color Coding... - 保存されたカラー・コード・テーマをXMLファイルからロードできます。

Export Color Coding...- 現在使用されているカラー・コード・テーマをXMLファイルにエクスポートできます。

[Fonts]タブ:

Screen Element - デフォルト・フォントを設定する画面要素（VEEのグラフィック部分）を選択します。これらの要素の一部については、各VEEオブジェクトの[Properties]を選択することで、ローカルにフォントを変更できます。

Font Value - 画面要素のテキスト・フォントを、システムで使用可能なフォントのリストから選択できます。

[Number]タブ:

Integer:- このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

Real:- このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）があります。デフォルトはStandardです。

[Printing]タブ:

Screen Element - プリントの際のグレーの陰影を設定する画面要素（VEEのグラフィック部分）を選択します。

B & W Printer Darkness - モノクロ・プリンタに出力する際に、各画面要素に使用するグレーの陰影を選択します。ほとんどのプリンタに対してはデフォルト値で十分です。

Print Magnification:- VEEプログラムまたはプログラムの一部をプリントする際の拡大率を指定します。値が小さいほど、プリントアウトのイメージは小さくなります。プリントアウトの1ページに最大の大きさで画面を収めるために、デフォルトのプリント拡大率は75%に設定されています。

Print Header and Index Page - このボックスがチェックされている場合、VEEプログラムのプリントアウトの各ページに、日付、時刻、プログラム・ファイル名、ページ番号を示す2行のヘッダが印刷されます。プリントアウトの末尾に、索引項目のページ番号を示す索引ページが出力されます。

Print Program Explorer - このボックスがチェックされている場合、VEEプログラムのプリントアウトには、Program Explorerウィンドウに表示される情報が出力されます。

Print Cover Page - このボックスがチェックされている場合、VEEプログラムのプリントアウトの最初のページには、以下の内容が示されます。

Agilent VEE製品ロゴのグラフィック。

プリントされるプログラムのファイル名。

プログラムの保存に用いられたファイル・フォーマット。

使用されているVEEソフトウェアのリビジョン・コード（6.0など）。

現在のVEE実行モード（VEE 6、VEE 5など）。

Main UserObjectのDescriptionファイル（入力されている場合）。

Print I/O Configuration - このボックスがチェックされている場合、計測器設定の拡大されたツリー・ビューが印刷されます。計測器設定は[I/O] [image] [Instrument Manager…]で見ることができます。

プロットを生成するには、表示オブジェクトのオブジェクト・メニューから[Print]メニュー項目を選択します。現在のPrinter SetupがPrint to Fileモードの場合、指定されたファイルまたはディレクトリ名が用いられます。

表示オブジェクトのビュー全体がプロットされ、元の表示オブジェクトの縦横比を維持しながら、定義されたプロット領域いっぱいになるようにスケールが設定されます。表示オブジェクトのサイズを変更すると、プロットされるイメージの縦横比を調整できます。表示オブジェクトを拡大すると、プロットの周囲のテキストと数値ラベルの相対的なサイズが小さくなります。

[Web Server]タブ:

Enable Server - VEEの内蔵Webサーバをオンにします。デフォルトはオフです。Webサーバを使うと、VEEアプリケーションのモニタとトラブルシューティングを、標準のHTTP 1.0プロトコルを使ってリモートWebブラウザから実行できます。VEEはネットワークに接続されたシステム上で動作している必要があります。

Root Directory:- リモートWebブラウザからアクセスできるファイルの場所を指定します。デフォルトは~installDir/wwwです。このディレクトリやそのサブディレクトリには、個人的なファイルを置かないでください。ここに置いたファイルは、このホスト・システムにアクセスできるすべてのWebブラウザから参照できます。ファイルindex.htmlがデフォルトのルート・ディレクトリにインストールされています。このファイルは、Webサーバのデフォルトのホーム・ページであり、必要に応じて変更できます。Root Directoryを変更した場合は、index.htmlを同じ名前で新しい場所に移動してください。

HTTP Port Number:- Webサーバのポート番号を指定します。デフォルトは80です。デフォルトのポート番号を変更する必要があるのは、同じシステムでもう1つのWebサーバ（別のVEEなど）が動作している場合、またはVEEのWebサーバへのアクセスを制限したい場合だけです。すでに割り当てられているポート番号は使用しないでください。使用可能な値の範囲は0～65535です。現在割り当てられているポートの一覧は、servicesファイルに記載されています。
Windows NT: \Winnt\system32\drivers\etc\services

Server Timeout (sec):- VEEがWebサーバのコマンドを処理するのをWebサーバが待つ時間の最大の長さを設定します。デフォルトは60秒ですVEEプログラムが時間のかかる作業を実行していて応答できない場合は、Webブラウザにタイムアウト・メッセージが送信されます。

Log File:- ログ・ファイルhttp.logの場所を指定します。デフォルトの場所は、C:\tmp\http.logなどのテンポラリ・ディレクトリです。ログ・ファイルが存在しない場合、[Default Preferences]で変更を行ったときに作成されます。このログには、Webサーバによって処理されるすべての着信HTTP要求が記録されます。データはログ・ファイルの末尾に追加されるので、ファイルのサイズを監視する必要があります。

[I/O]タブ:

IO Preferences

 Enable Pre 8.0 Legacy IO:- このボックスをチェックした場合、Instrument Managerは古いスタイルのSICLデバイスを検索します。デフォルトでは、Instrument Managerはこれらのデバイスを検索しません。

MATLAB

 Use MATLAB installed on your machine - このボックスがチェックされている場合、VEEはマシンにインストールされているMATLABを使用します。このボックスがチェックされていない場合、VEEはAgilent VEEに付属する内蔵MATLAB Scriptエンジンを使用します。これら2つのバージョンのMATLABの違いについては、「MATLAB Scriptの概要」を参照してください。

Version - PCにインストールされているMATLABのうち使用するバージョンを選択できます。

Location - 選択したMATLABの場所が自動的に表示されます。

VEEで使用するMATLABを変更した後、変更を有効にするには、設定を保存し、Agilent VEEを再起動する必要があります。

注記

VEE Webサーバを有効にしてその属性を設定すると、HTTP 1.0仕様をサポートする任意のWebブラウザ（通常入手可能なすべてのブラウザ）からWebサーバにアクセスできるようになります。次の2つの形式のいずれかでURLを入力します。

http://hostname{:port}{/file}

または

http://hostname{:port}{/command}{?parameter}

ここで:

hostname（必須）はVEEが動作しているホスト・システムを識別します。単独でURLに使用した場合、Webサーバのホーム・ページindex.htmlが開かれます。

port（オプション）WebサーバのHTTP Port Numberを識別します（デフォルト値以外を使用する場合）。

file（オプション）ブラウザで開きたいディレクトリまたはファイルをRoot Directoryを基準として識別します。.jpegや.htmlなどのファイル名拡張子を含めることもできます。

command（オプション）Webサーバがサポートするコマンドを指定します。これにより、ブラウザからVEEプログラムの監視、トラブルシューティング、制御を行うことができます。コマンドについてはこの後で説明します。

parameter（オプション）コマンドが必要とするパラメータを指定します。パラメータについてはこの後でコマンドといっしょに説明します。

Agilent VEE Webサーバは次のコマンドをサポートします。

ViewVEEはVEEウィンドウ全体を表示します。

ViewMainDetailはメイン・ウィンドウの詳細ビューを表示します。プログラムが保護されたランタイム・バージョンとして保存されている場合は、エラーが表示されます。

ViewMainPanelは、メイン・ウィンドウのパネルを表示します。メイン・ウィンドウにパネルがない場合は、エラーが表示されます。

ViewExecWindowは、VEEの実行ウィンドウを表示します。実行ウィンドウが存在しない場合は、エラー・メッセージが表示されます。

ViewDetail?UserFuncNameは、UserFuncNameという名前のUserFunctionの詳細ビューを表示します。UserFuncNameが存在しないか、保護されたランタイム・ファイルとして保存されている場合は、エラー・メッセージが表示されます。ビューのサイズは、現在のUserFunctionウィンドウのサイズが小さい場合でも、UserFunction内のすべてのオブジェクトが見えるように設定されます。

ViewPanel?UserFuncNameは、UserFuncNameという名前のUserFunctionのパネル・ビューを表示します。UserFuncNameが存在しないか、パネルを持たない場合は、エラー・メッセージが表示されます。

ViewErrorは現在のプログラムのエラー・ウィンドウを表示します。

次の例は、Webブラウザに入力できるURLの例を示します。ここでは、VEEがネットワークに接続されたmy_systemというホスト名のシステムで動作しており、Webサーバが有効であり、デフォルトのHTTPポート番号80を使用していると仮定しています。

http://my_system/public_docs/page.html
public_docsディレクトリにあるファイルpage.htmlを表示します。このディレクトリとファイルは、Webサーバのルート・ディレクトリを基準としたホスト・システム上の場所に存在します。

http://my_system/ViewExecWindow
VEE実行ウィンドウを表示します。

[Save]を押した場合、デフォルト設定が、VEEプログラム・インストール・ディレクトリにあるデフォルト・ファイルVEE.RCファイルに保存されます（MS Windowsの場合）。これらのプロパティの一部は、デフォルト・ファイルに加えてプログラムにも保存されます。これには、[General]タブの[Environment]および[Trig Mode]グループの設定と、[Number]タブの数値フォーマットが含まれます。カラーとフォントの値がプログラムに保存されるのは、[File] [image] [Save]ダイアログの[Save colors and fonts with program]ボックスがチェックされた場合だけです。また、色とフォントに関しては、変更した設定だけがデフォルト・ファイルに保存されます。

[OK]を押した場合、変更は現在の作業セッションだけで有効になります。

[Reset]を押すと、現在の設定が破棄され、デフォルト・ファイルが再び読み込まれます。

[Cancel]を押すと、変更はキャンセルされます。

場所

File [image] Default Preferences

関連項目

Align、Clean Up Lines、Delete Variable、Get Variable、Set Variable、Show Data Flow、Program Explorer、Properties（オブジェクト）

デフォルトの色を変更するには

デフォルトのフォントを変更するには

数値フォーマットを変更するには

印刷設定を変更するには

プリンタを設定するには

Copyright (c) 1991-2007 Agilent Technologies, Inc.


Delay

指定された時間だけ待ってからDoneデータ出力端子をアクティブにするオブジェクト。

使用法

Delayは、スレッド・セグメントの実行を指定された秒数だけ遅延させるために使用します。

例

Delayは、UserObjectで作成したダイアログ・ボックスのタイムアウトとして使用できます。

オープン・ビュー・パラメータ

遅延の秒数を編集フィールドに入力します。データ入力ピンを追加した場合、そのピンに供給された値によって遅延の秒数が決まります。

注記

遅延の値は秒単位で指定され、分解能はシステム・クロックとDelayが動作しているプログラムの性質に依存します。Delayの値はデータ入力を通じて設定できます。

遅延時間は、シーケンス入力ピンがアクティブになった時点から測定されます。指定された時間が経過すると、Doneデータ出力端子がアクティブになります。待ち時間の間Delayは「スリープ」状態です。したがって、その間に他のオブジェクトが動作することができます。

ほとんどの場合、Doneデータ出力端子とシーケンス出力ピンのどちらを使っても、Delay時間が経過した後で伝達を継続することができます。ただし、Delayオブジェクトが並列に実行される他のオブジェクトを含むスレッドの一部である場合、シーケンス出力ピンはもっと長い時間が経過しないと起動されない可能性があります。これは、シーケンス出力ピンは実行可能なオブジェクトが他に存在しない場合のみ起動するからです。遅延されたスレッドがDelay時間の後で継続することを保証するには、Doneデータ出力端子を使用します。これは常にDelay時間の後で起動します。

場所

Flow [image] Delay

関連項目

Instrument Event、Interface Event、OK、On Cycle、Properties（オブジェクト）、オブジェクト・メニュー

タイムアウトを設定するには


Delete（オブジェクト・メニュー）

このオブジェクトをパネル・ビューまたは詳細ビューから削除します。

使用法

Deleteは、オブジェクトを詳細ビューまたはパネル・ビューから削除するために使用します。オブジェクトをパネル・ビューから削除した場合、オブジェクトは詳細ビューには残ります。

オブジェクトを詳細ビューから削除すると、パネル・ビューからも削除されます。

注記

Deleteはクリップボード（Paste用）は変更しません。

Delete操作を元に戻すには、CTRL+Zを押すか、メイン・メニューからEdit > Undoを選択するか、タスクバーから [image] を選択します。

ショートカット

オブジェクトをすばやく削除するには、オブジェクトの左上隅にあるオブジェクト・メニュー選択ボックスをダブルクリックします。

場所

オブジェクト・メニュー [image] Delete

関連項目

Cut、オブジェクト・メニュー、操作を元に戻すには、Properties（オブジェクト）.

パネルからオブジェクトを削除するには


Delete Directory

指定されたディレクトリを削除します。

場所

System [image] Directory [image] Delete Directory


Delete File

指定されたパスのファイルを削除します。

場所

System [image] File [image] Delete File


Delete Library

UserFunction、コンパイル済み関数定義、またはリモート関数定義のライブラリを、実行中のプログラムから削除（アンロード）するオブジェクト。

使用法

Delete Libraryは、VEEプログラムからライブラリを削除するために使用します。実行される動作は、ライブラリの種類によって異なります。

UserFunction - Delete Libraryは、Import LibraryオブジェクトによってロードされたUserFunctionをVEEプログラムから削除します。これによって削除されるのは、Library Nameフィールドに指定されたライブラリに含まれるUserFunctionだけです。

Compiled Function - Delete Libraryは共有ライブラリをVEEプロセスから接続解除します。ただし、共有ライブラリを含むファイルが実際に接続解除されるのは、そのファイルを指している最後のライブラリが接続解除されたときです。すなわち、いくつかの異なるライブラリが同じ共有ライブラリ・ファイルを指している場合（定義ファイルは同じ場合も異なる場合もあります）、共有ライブラリ・ファイルがVEEプロセスから接続解除されるのは、接続されたコードを使用しているライブラリが存在しなくなったときだけです。オペレーティング・システムは、プロセスに接続された共有ライブラリ・ファイルの移動や削除を許可しません。新しい共有ライブラリ・ファイルを作成したい場合は、Import LibraryオブジェクトのDelete Libオプションを使用する必要があります。

Remote Function - Delete LibraryはリモートVEEプロセスをシャットダウンし、リモート関数定義をローカルVEEプロセスから削除します。Delete Libraryが実際にリモート・プロセスをシャットダウンするのは、そのリモート・プロセスを参照する最後のライブラリがローカル・ホストで削除されたときです。

オープン・ビュー・パラメータ

Library Name - このフィールドには、削除するライブラリの名前を入力します。

注記

Delete Libraryは通常、実行中のVEEプロセスからライブラリ・オブジェクトを動的にロードし、その後に削除するという高度な操作に用いられます。これはVEEプロセスの必要メモリを減らす効果があります。

Delete Libraryオブジェクトは1つのData Input端子を受け入れます。入力端子のデフォルトの名前はLibraryNameです。

場所

Device [image] Delete Library

関連項目

Call、Edit UserFunction、Import Library、UserFunction、UserObject、Properties（オブジェクト）


Delete Line

2つのピンの間のラインを削除します。

使用法

Delete Lineは、プログラム中の間違った接続を削除したり、接続を変更したりするために使用します。Delete Lineを選択した後、削除するラインまたはその近くをクリックします。

ラインを削除せずにこのモードを終了するには、作業領域でどのラインからも離れた空白の場所をクリックします。

注記

ラインの端点を（ラインを削除せずに）表示するには、カーソルを一時的にライン上に置きます。これにより、ラインが強調表示され、端点が表示されます。また、ラインが運んでいる値も表示されます。

Delete Lineはプログラム実行中には使用できません。

Delete Lineは元に戻すことができます。

ショートカット

CTRL+Shiftを押しながらポインタをラインの上に置き、マウスの左ボタンをクリックするとラインを削除できます。

この方法で、一連のラインを1本ずつ削除できます。

場所

Edit [image] Delete Line

関連項目

Cut、操作を元に戻すには、Line Probe


Delete Terminal

メニュー項目。

使用法

Delete Terminalは、端子を削除する次の機能にアクセスするために使用します。

Input - オブジェクトに追加されたデータ／コントロール入力ピンを削除するために用いられます。Inputを選択した後、表示されるダイアログ・ボックスで削除するピンを選択します。ピンとそれへの接続がすべて削除されます。2つのピンが同じ名前を持つ場合、ピンはリスト中の順序に従って削除されます。

Output - オブジェクトに追加されたデータ／エラー出力ピンを削除するために用いられます。Outputを選択した後、表示されるダイアログ・ボックスで削除するピンを選択します。ピンとそれへの接続がすべて削除されます。2つのピンが同じ名前を持つ場合、ピンはリスト中の順序に従って削除されます。

注記

Inputは、オブジェクトに削除可能な入力ピンがある場合のみ使用可能です。一部のピンは削除できません。

Outputは、オブジェクトに削除可能な出力ピンがある場合のみ使用可能です。一部のピンは削除できません。

ショートカット

データ端子をすばやく削除するには、端子表示領域にカーソルを置いて、CTRL+Dを押します。

場所

各オブジェクト・メニュー:
Delete Terminal [image] Input…

Delete Terminal [image] Output…

関連項目

Add Terminal、Line Probe、オブジェクト・メニュー、Properties（オブジェクト）.


Delete Variable

現在のプログラムの実行中に作成された変数の値を削除するオブジェクト。

使用法

Delete Variableオブジェクトは、名前を指定して変数を削除したり、プログラムで現在設定されているすべての変数を削除したりするために使用します。変数はあらかじめプログラム内でSet Variableオブジェクトによって作成されている必要があります。

オープン・ビュー・パラメータ

By Name - オープン・ビューに変数名のフィールドが表示されます。名前の大文字と小文字は区別されません。すなわち、globalAとGLOBALaは同じ変数です。名前フィールドはコントロール入力として追加できます。

All Variables - すべての変数を削除すると、すべてのスコープのすべての宣言された変数と、すべての宣言されない変数が削除されます。名前フィールドは淡色表示（使用不可）になります。

注記

名前で参照される変数が存在しない場合、Delete Variableオブジェクトはエラーを発生します。このエラーを避けるには、Delete Variableオブジェクトにエラー出力ピンを追加します。

Delete Variableオブジェクトが実行されると、名前で参照される変数（またはすべての変数）が削除され、作成される前と同じ状態になります。その後にその変数をGet Variableオブジェクトで使用すると、変数が存在しないためエラーになります。

不要になった変数をDelete Variableオブジェクトで削除することにより、メモリを節約でき、変数の管理が容易になります。

Default Preferencesで、Delete Variables at PreRunがオン（デフォルト）の場合、プログラムが実行される前にすべての変数が削除されます。Delete Variables at PreRunがオフにされている場合、変数は削除されないので、不正なデータを伝達しないようにプログラムで注意が必要になります。

ActiveX参照のクリーンアップを実行するプログラミング技法については、CreateObjectの項目を参照してください。

場所

Data [image] Variable [image] Delete Variable

関連項目

Default Preferences、Get Variable、Set Variable、Properties（オブジェクト）、WatchWindow

変数を削除するには、ActiveX参照の解放


DeMultiplexer

入力値を選択された出力ピンに導くオブジェクト。

使用法

DeMultiplexerは、入力データを特定の出力ピンに導くために使用します。どの出力がアクティブになるかは、アドレス入力の値によって決まります。

注記

DeMultiplexerには2つの入力があります。1つはデータ出力、もう1つはアドレス値（伝達する出力を決定）です。オブジェクトが動作したときに伝達する出力は一度に1つだけです。アドレス入力の値が出力数の範囲内[0 [image] (N-1)]にない場合、エラーが返されます。オブジェクトには出力を追加できます。出力は削除できますが、それ以降の出力（存在する場合）の番号が変化します。

場所

Device [image] DeMultiplexer

関連項目

If/Then/Else、JCT、Properties（オブジェクト）、オブジェクト・メニュー


Description

オブジェクト・メニューからオブジェクトに関する情報を表示するため、またはタイトル・バー・メニューからメイン・プログラム、UserObject、UserFunctionに関する情報を表示するために使用できます。

編集可能なRich Text Format（RTF）ダイアログ・ボックスに、ユーザが入力した情報が表示されます。Descriptionダイアログ・ボックスを開いたときには、ダイアログ・ボックスの機能を説明するデフォルトの説明が表示されます。デフォルトの説明を独自に作成するには、installdir\templatesの下のdescription.rtfファイルを編集します。Descriptionダイアログ・ボックスを空白にしたい場合は、description.rtfを編集して空白にします。

使用法

説明のあるオブジェクトは、右上隅に小さい赤い三角形が表示されます。

Descriptionは、オブジェクトのドキュメントを記述したり、オブジェクトが使用される方法や理由を説明したりするために使用します。または、タイトル・バー・メニューからDescriptionを使用して、ファイル全体のドキュメントを記述できます。

説明を記入するには、テキスト領域をクリックして説明を入力するか、RTFファイルから説明を切り取って貼り付けます。終わったらOKをクリックします。

オープン・ビュー・パラメータ

OK - 説明情報をプログラムに保存します。

Cancel - 説明の現在の変更をキャンセルし、Descriptionウィンドウを閉じます。

Insert Template - テンプレート・ファイルDescription.rtfをカーソル位置に挿入します。テンプレートはユーザが編集可能で、%installDir%\Templatesに保存されています。

Clear All - Descriptionウィンドウの内容をすべてクリアします。キャンセルしたテキストを復元するには、Cancelを押し、Descriptionウィンドウを開き直します。

注記

テキスト領域の編集には、VEEの通常の編集機能が使用できます。

Print AllでPrint All Objectsを選択して印刷する場合、またはPrint Objectsを使って印刷する場合、オブジェクトの説明も印刷されます。

DescriptionはRTFダイアログ・ボックスなので、RTFが使用できるアプリケーションを使って、複数のフォント、色、表、アクティブURLなどを使った見栄えのいいテキストを作成できます。

Descriptionテキストは印刷できますが、常にテキストのみで印刷されます。

場所

各オブジェクト・メニュー [image] Description

または

各タイトル・バー・メニュー [image] Description

関連項目

Note Pad、オブジェクト・メニュー、Create RunTime Version、オブジェクト・メニュー


ダイアログ・ボックス

メニュー項目。

使用法

Dialog Boxは、次の組込みダイアログ・ボックス・オブジェクトにアクセスするために使用します。

Text Input

Int32 Input

Int64 Input

Real64 Input

Message Box

List Box

File Name Selection

場所

Data [image] Dialog Box

関連項目

File Name Selection、Int32 Input、List Box、Message Box、Real64 Input、Text Input、UserObject

組み込みDialog Boxオブジェクトについて

データ入力ダイアログ・ボックスを使用するには


Direct I/O

トランザクション・ステートメントを使って、計測器にデータを書き込んだり計測器からデータを読み取ったりするオブジェクト。

使用法

Direct I/Oは、さまざまなエンコードとフォーマットを計測器との間で入出力するために使用します。

オブジェクト・メニュー

Show Config - 計測器構成を表示します

Upload State - 現在の機器ステートをラーン・ストリングにアップロードし、このステートとDirect I/Oオブジェクトのこの特定のインスタンスとを関連付けます。ラーン・ストリングをサポートするGPIBおよびメッセージ・ベースVXIデバイスをサポートします。

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

オープン・ビュー・パラメータ

Direct I/Oの操作:

READ - 指定されたエンコーディングとフォーマットを使用して計測器からデータを読み取ります。

WRITE - 指定されたエンコーディングとフォーマットを使用して計測器にデータを書き込みます。

EXECUTE - GPIB計測器の場合、Selected Device Clear、Go To Local、Remote、Group Execute Triggerのいずれかのコマンドを送信します。シリアル計測器の場合、BreakまたはResetを送信します。GPIO計測器の場合、Resetを送信します。VXIメッセージ・ベース計測器の場合、Selected Device Clear、Go To Local、Remote、Triggerのいずれかのコマンドを送信します。

WAIT - 特定の秒数だけ待ってから次のトランザクションを実行します。GPIB計測器またはVXIメッセージ・ベース計測器の場合、シリアル・ポール応答とマスクのビットごとのANDが0（ALL CLEAR）または0以外（ANY SET）になるまで待ちます。

GPIO計測器の場合のみ、READ操作ではIOSTATUS、WRITE操作ではIOCTLが使用できます。

VXI計測器の場合のみ、READおよびWRITE操作ではREGISTER:およびMEMORY:が使用できます。WAIT操作では、メモリまたはレジスタ・オフセット中の値とマスク値のANDが、ANYSET、ALL CLEAR、EQUALのいずれかの条件を満たすまで待つことができます。

Direct I/Oのエンコード:

TEXT - すべてのデータ型を人間が読める形式で書き込みます。VEEの数値データは書き込みの際に自動的にテキストに変換されます。

BINARY - すべてのデータ型をマシン固有のバイナリ・フォーマットで書き込みます。

BINBLOCK - すべてのVEEデータ型をIEEE 488.2固定長ブロック・ヘッダを持つバイナリ・ファイルで書き込みます。

末尾にラインフィードを出力する計測器に対してBINBLOCKを使用する場合、End byte (LF)を選択して、VEEが末尾のラインフィードを消費するようにします。計測器が末尾のラインフィードを出力しない場合、No END byteを選択します。

CONTAINER - すべてのデータ型をプラットフォームに依存しないテキスト・フォーマットで書き込みます。

ショートカット

データ端子を簡単に追加するには、入力／出力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに新しいデータ端子が追加されます。

データ端子をすばやく削除するには、端子表示領域にカーソルを置いて、CTRL+Dを押します。

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

コントロール・ピンを入力として使用することにより、プログラムからデバイス・アドレスやタイムアウト時間を変更できます。これらのトランザクションでは、タイムアウト時間は秒単位で測定されます。

場所

I/O [image] Instrument Manager

関連項目

Advanced I/O、Component Driver、Formula、Instrument Manager、Panel Driver、To/From VXIplug&play

I/O性能を上げるには

Direct I/Oを使ってデータを読み取るには

Direct I/Oオブジェクトを使用するには

トランザクションを編集するには


Directory Exists

指定されたディレクトリが存在するかどうかを調べます。

場所

System [image] Directory [image] Directory Exists


Do

スレッドの実行フローを制御する分岐点を作成するオブジェクト。

使用法

Doは分岐点の作成に使用します。データ出力ピンに接続されたオブジェクトは、シーケンス出力ピンに接続されたオブジェクトの前にアクティブになります。これにより、オブジェクトが動作する順序が強制的に決まります。

場所

Flow [image] Do

関連項目

Break、Start、Properties（オブジェクト）、オブジェクト・メニュー


Domain Name

ホスト・マシンが参加しているドメイン名を取得します。

場所

System [image] Environment [image] Domain Name


ドロップダウン・リスト

Selection Controlを参照してください。


Edit UserFunction

プログラム内にローカルに作成したUserFunctionを編集するためのメニュー項目。ライブラリによってインポートされたUserFunctionの表示も可能です（変更はできません）。

使用法

Edit UserFunctionは、UserObjectのオブジェクト・メニューからMake UserFunctionを実行することによってプログラム内にローカルに作成されたUserFunctionを編集するために使用します。UserFunctionをライブラリ・ファイルに保存している場合、これらのUserFunctionを編集するにはライブラリ・ファイルを開く必要があります。

注記

Edit UserFunctionを選択すると、編集可能なローカルUserFunctionのリストを持つダイアログ・ボックスが表示されます。UserFunctionを選択すると、UserFunctionを作成する元になったUserObjectの機能を示す作業領域を表示するウィンドウが作成されます。この作業領域は、通常のUserObjectと同様に編集できます。終わったらウィンドウを閉じます。ファイルを保存すると、編集されたUserFunctionもともに保存されます。

UserFunctionの編集中に、タイトル・バーのパネル・アイコンと詳細アイコンを使用することにより、パネル・ビューと詳細ビューを切り替えることができます。

ライブラリによってインポートされたUserFunctionを表示する場合、UserFunctionの変更はできません。ただし、デバッグのために、ブレークポイントを設定したり、オブジェクトを開いたりアイコン化したり移動したりすることはできます。このような変更はライブラリ・ファイルには保存されません。

ショートカット

Program ExplorerでUser Functionをダブルクリックすると編集できます。

場所

Edit [image] Edit UserFunction

Call Function のオブジェクト・メニュー [image] Edit UserFunction

関連項目

Call、Create UserFunction、Delete Library、Import Library、UserFunction、UserObject

UserFunctionを編集するには


Ends With

指定された文字列がテスト値で終わる場合に論理値の真を返します。

場所

System [image] String [image] Ends With


Error Output（オブジェクト・メニュー）

オブジェクトにエラー出力端子を追加します。

使用法

Error Outputは、プログラムでVEEエラーをトラップして処理するために使用します。Errorピンが存在するオブジェクトでエラーが発生した場合、エラー・ダイアログ・ボックスは表示されません。その代わりに、エラー番号がErrorピンに出力されます。

エラーがトラップされると、エラー出力ピンとシーケンス出力ピンがアクティブになり、データ出力ピンにはデータが出力されません。

エラー出力ピンは、発生したエラー番号の値を持つScalar Int32コンテナを出力します。

注記

Error Outputはほとんどのオブジェクトで使用できます。一部のオブジェクト、例えばNote Padは、エラーを返さないため、エラー出力ピンを追加することはできません。

エラー出力端子は、VEEエラーのエラー番号を出力します。番号の意味や回復のための情報は出力しません。エラー情報は、Help [image] Contents and Indexのエラー・コードの項目に記載されています。

errorInfo()を使って、エラー出力ピン使用時にトラップされた最新のエラーの情報を得ることができます。エラーがトラップされた後、errorInfo()オブジェクトを実行すると、エラー・ダイアログ・ボックスに表示されるはずのすべての情報を含むレコードが出力されます。

UserObject内でRaise Errorオブジェクトを使用すると、UserObjectのエラー・ピンでトラップされたエラーを発生することができます。

UserObjectのエラー・ピンは、UserObject内のすべてのオブジェクトのすべてのエラーをトラップします。

場所

各オブジェクト・メニュー [image] Add Terminal [image] Error Output

関連項目

Add Terminal、Delete Terminal、errorInfo、オブジェクト・メニュー、Raise Error、UserObject

エラーをトラップするには


Execute Program

MS-DOSまたはWindowsプロセスを開始するオブジェクト。

使用法

Execute Programを使えば、実行可能プログラム、オペレーティング・システム・コマンド、バッチ・ファイルなどのMS-DOSまたはWindowsプロセスを開始できます。PCのExecuteオブジェクトは、実行されたプログラムからの終了コードを返します。Wait for prog exitがNoに設定されている場合、終了コード出力端子は戻り値を伝達しません。

オープン・ビュー・パラメータ

Run Style - 実行したいプログラムがウィンドウで動作する場合、Run Styleはウィンドウのスタイルを指定します。

  1. Normalはプログラムを標準のウィンドウで実行します。

  2. Minimizedはプログラムをアイコンに最小化されたウィンドウで実行します。

  3. Maximizedはプログラムを最大サイズに拡大されたウィンドウで実行します。

Wait for prog exit - Wait for prog exitがYesに設定されている場合、VEEは外部プロセスを実行し、外部プロセスが終了してから、Execute Programオブジェクトのシーケンス出力ピンをアクティブにします。

Wait for prog exitがNoに設定されている場合、VEEは外部プロセスを実行し、その終了を待たずにExecute Programオブジェクトのシーケンス出力ピンをアクティブにします。

Prog with params - 実行したいプログラム。このフィールドの内容の例を以下に示します。

C:\MYDIR\MYFILE.BAT

"\Program Files\Windows Media Player\mplayer2.exe" "\WINNT\Media\Mozart's Symphony No. 40.rmi"

www.favorite_site.org/index.htm

最後から2つめの例のように、スペースを含むパス名は引用符で囲む必要があります。

最後の例で、既知のサフィックス".htm"はインターネット・ブラウザを起動し、指定されたURLをロードします。ブラウザがすでに動作している場合、指定されたURLがそれにロードされます。

Working directory - 実行したいプログラムが必要なファイルを探すためのディレクトリを指定します。例えば、ディレクトリc:\progs\cprog1にあるmakefileを使ってプログラムnmakeを実行したい場合は、次のパラメータを使用します。

Prog with params:にnmakeと入力します。

Working directory:にc:\progs\cprog1と入力します。

注記

Execute Program はトランザクションを使用しません。トランザクションを使って外部プロセスと通信することはできません。

PATH変数に適切なパスを指定してある場合、Prog with paramsフィールドにパスを指定する必要はありません。PATH変数は、Windows 98の場合はAUTOEXEC.BATファイル、Windows NTの場合はユーザ環境変数（メイン／コントロール パネル／システム）で設定します。.

.EXEファイルを実行する場合、Prog with paramsフィールドにサフィックスを指定する必要はありません。一方、.COMファイルと.BATファイルの場合は、サフィックスを指定する必要があります。

Prog with paramsに指定された動作がプログラムの新しいインスタンスを起動しない場合、ExecuteオブジェクトはWait for prog exitがYesに設定されている場合でもプログラムの終了を待ちません。この場合、終了コード端子は終了コードを伝達しません。この動作の例としては、インターネット・ブラウザがすでに動作しているときにURLを「実行」する場合が挙げられます。指定されたURLは動作中のブラウザで開かれ、VEEはユーザがブラウザを閉じるのを待ちません。その他の一般的な例としては、ワード・プロセッサやスプレッドシート・エディタの既存のインスタンスにファイルを渡す場合が挙げられます。このような場合に、新しいインスタンスが起動されるか、既存のインスタンスが用いられるかは、外部アプリケーション（ブラウザ、スプレッドシートなど）の設計によって決まります。

ExecuteオブジェクトはShellExecuteEx() Win32 APIを使用します。

場所

I/O [image] Execute Program

関連項目

To/From DDE、Properties（オブジェクト）


Execution Window

Viewメニューの選択肢。

使用法

Main UserObjectにパネルがあり、MainのProperties WindowでShowPanelOnExecuteがオンになっている場合、そのパネルはVEEプログラムを実行したときにExecution Window内に表示されます。これにより、Mainオブジェクト・ウィンドウとExecution Windowの両方を見ることができます。また、Execution Windowでは、VEE Pro RunTimeで実行したときに実行可能プログラムがどのように見えるかもわかります。

Execution Windowは、移動、サイズ変更、最大化、最小化、ウィンドウ・スタックのいちばん下への移動が可能ですが、閉じることはできません。

Execution Windowのタイトル・バーに表示される名前は、Mainウィンドウのオブジェクト・メニューから設定できます。Mainのオブジェクト・メニューからPropertiesを選択し、PopUpPanelTitleを変更します。

場所

View [image] Execution Window

関連項目

Add To Panel、Main、Create RunTime Version

VEE Pro RunTime製品について


Exit

VEEを終了します。

使用法

Exitは、VEEのこの作業セッションを終了するために使用します。

注記

Exitを選択したときにプログラムの変更が保存されていない場合は、保存するためのプロンプトが表示されます。

Exitはプログラム実行中には使用できません。実行中のプログラムを終了するにはStopオブジェクトを使用してください。

ショートカット

終了するにはCTRL+Eを押します。VEEウィンドウの左上隅のウィンドウ・コントロール・ボタンで、ボタンをダブルクリックするか、ボタンをクリックしてメニューからCloseを選択します。

場所

File [image] Exit

関連項目

Raise Error、Exit Thread、Exit UserObject、New、Open、Stop


Exit Thread

スレッドの実行を停止するオブジェクト。

使用法

Exit Threadは、独立したスレッドの実行を終了するために使用します。Exit Threadは、自分が存在するスレッドの実行だけを停止します。

場所

Flow [image] Exit Thread

関連項目

Break、Raise Error、Exit UserObject、Start、Stop、Properties（オブジェクト）、オブジェクト・メニュー

VEEプログラムを停止するには


Exit UserObject

UserObjectの実行を停止するオブジェクト。

使用法

Exit UserObjectは、UserObjectのすべてのスレッドの実行を停止し、プログラムでUserObjectの後にある次のオブジェクトの実行を開始します。Exit UserObjectより前にUserObjectの出力端子に送られたデータは、これらの出力をアクティブにすることにより、後続のオブジェクトに渡されます。

Exit UserObjectは、UserObjectを途中終了するために使用します。

場所

Flow [image] Exit UserObject

関連項目

Create UserObject、Raise Error、Exit Thread、Start、Stop、UserObject、Properties（オブジェクト）

UserObjectを途中終了するには


File Exists?

指定されたパスにファイルが存在するかどうかをチェックします。

場所

System [image] File [image] File Exists?


File Name Selection

ユーザにファイルのリストを表示するポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

File Name Selectionは、ディスク・ドライブ上のファイルのリストをユーザに表示するために使用します。ユーザはダイアログ・ボックスで選択を実行できます。File Name Selectionは、To FileおよびFrom Fileオブジェクトで使用するファイル名を対話的に問い合わせるために便利です。

ポップアップ・ダイアログ・ボックスでファイルが選択されてOKボタンが押されると、選択内容がFile Name出力ピンに出力されます。キャンセル・ボタンが押されると、Cancel出力ピンに1が出力されます。

オープン・ビュー

Prompt/Label - ユーザにファイル名の選択を求めるプロンプトの文字列。このパラメータはデータ入力として追加できます。デフォルトはEnter File Name:です。

Initial Directory - File Name Selectionポップアップ・ダイアログ・ボックスに最初に表示されるディレクトリ。このパラメータはデータ入力として追加できます。デフォルトは、VEEを起動したディレクトリです。

Initial File/Wildcard - デフォルトのファイル名を設定したり、ワイルドカード文字を使ってファイル名をフィルタしたりするために使用します。このパラメータはデータ入力として追加できます。デフォルトは*.*です。

Select File For:Reading | Writing - Readingを選択した場合、ユーザはポップアップ・ダイアログ・ボックスで既存のファイル名を選択する必要があります。ユーザがポップアップ・ダイアログ・ボックスに存在しないファイル名を入力してOKを押した場合、既存のファイル名を入力するように求められます。

Writingを選択した場合、ユーザはポップアップ・ダイアログ・ボックスで新しいファイル名を入力することも、既存のファイル名を選択することもできます。既存のファイル名が選択された場合、ファイルを上書きしてもよいかどうか尋ねる警告ダイアログ・ボックスがポップアップ表示されます。ユーザがYesを押した場合、ファイル名がFile Name出力ピンに出力されます。ユーザがNoを押した場合、ユーザはFile Name Selectionダイアログ・ボックスに戻り、別のファイル名を選択できます。このパラメータはデータ入力として追加できます。

注記

File Name Selectionダイアログ・ボックスのポップアップ位置は選択できません。このダイアログ・ボックスは常にVEEウィンドウの左上隅近くに表示されます。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたときに、EnterまたはEscキーを使用します。または、Tabキーを使ってボタンと選択領域の間を移動します。選択肢の間の移動には矢印キーを、ファイル名の選択にはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

入力端子"Dialog Mode"は、WritingまたはReadingの2つのテキスト文字列を受け入れます。これらの文字列は大文字と小文字が区別されます。

場所

Data [image] Dialog Box [image] File Name Selection

関連項目

From File、Int32 Input、List Box、Message Box、Real64 Input、Text Input、To File、UserObject、Properties（オブジェクト）

プログラムでファイル名を選択するには


Fill Bar

カラー・バーを使ってスカラ数値をグラフィカルに表示するオブジェクト。

使用法

Fill Barは、カラー・バーとオプションのデジタル数値フィールドを使って数値をアナログ・スケールで表示するために使用します。

オープン・ビュー

Fill Barの最小値と最大値を設定するには、オブジェクトのオープン・ビューで現在の値をクリックし、新しい値を入力します。目盛とそのラベルは自動的に計算されて表示されます。最小値は最大値より小さくなければなりません。

これらの値はコントロール入力として追加できます。

プロパティ

Orientation - Fill Barの表示方法を選択します。デフォルトはVerticalです。

ShowDigitalDisplay - このプロパティがTrueの場合、入力値のデジタル表示がオブジェクトのオープン・ビューの下部に表示されます。このプロパティがFalseの場合、デジタル表示は表示されず、オブジェクトの動作が高速になります。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - これをオンにすると、スケールがリニアから対数に変わります。デフォルトはFalseです。

Label Spacing - どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

HighColor - 最高レンジ（High Limitより上）に使用する色を指定します。

High Limit - 最高レンジの下限値を定義します。この値はLow Limit以上でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

MidColor - 中央レンジ（High Limit以下でLow Limitより上）に使用する色を指定します。

Low Limit - 最低レンジの上限値を定義します。この値はHigh Limit以下でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

LowColor - 最低レンジ（Low Limit以下）に使用する色を指定します。

NumberFormat - Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

入力データはScalarで、Real64に変換可能なものでなければなりません（Complex、PComplex、Spectrum、Coordは「解体」しておく必要があります）。

Low LimitはHigh Limitより小さくなければなりません。

色のレンジを2つだけにするには、Low LimitをHigh Limitと等しく設定します。

1つの色だけを使用するには、Low Color、Mid Color、High Colorを同じ色に設定します。

ショートカット

Fill Barの方向を簡単に変更するには、目的の形状にサイズ変更します。方向は自動的に変更されます。

場所

Display [image] Indicator [image] Fill Bar

関連項目

AlphaNumeric、Color Alarm、Logging AlphaNumeric、Meter、Tank、Thermometer

データをアナログ表示するには


Find

このメニュー項目は、VEEプログラム中のテキスト文字列や一部のオブジェクト・プロパティを検索するためのダイアログ・ボックスを表示します。

使用法

Find機能を使うと、VEEプログラム中のテキスト文字列の検索を便利に実行できます。これにより、プログラム・オブジェクト中の特定のテキストを容易に発見でき、オブジェクトのタイトル・バーの色や背景色などの一部のオブジェクト・プロパティも検索できます。

ただし、Findでは以下のものは検索できません。

パネルやパネル上のオブジェクト

ラインやラインの値

端子の値

ダイアログ情報

Findダイアログ・ボックスには、検索可能なテキスト文字列を入力する1行のテキスト・フィールドがあり、検索指定を設定するためのいくつかのオプションがあります。ダイアログ・ボックスの機能は次のとおりです。

Find What:- この行には検索するテキスト文字列を入力します。この行を空白にしておくと、検索はすべてのテキストに一致します。

Search in:- テキスト検索の範囲をVEEプログラムの特定の部分に制限できます。デフォルトはEntire Programで、プログラム全体が検索されます。

Find - Findボタンは、ユーザがダイアログ・ボックスのGeneralおよびAdvancedタブで指定した検索パラメータを使って、テキスト検索を開始します。

Stop - Stopボタンは、検索プロセスを停止します。検索プロセスが停止されるまでに見つかった一致は保持されます。

Help - Helpボタンは、Findダイアログ・ボックスに関するオンライン・ヘルプ情報を表示します。

Status BarはFindダイアログ・ボックスの下部にあります。Status Barには、検索プロセスの状態が表示されます。Status Barの情報は、新たに一致が見つかるたびに更新されます。

プロパティ

Generalタブ

Generalオプション・タブでは、一般的なテキスト検索を制限するための制約を指定します。以下のオプションがあります。

Match Case - チェックした場合、テキストはユーザ指定の検索文字列に正確に一致する必要があります。デフォルトはオフです。

Find all matches on each object - 各オブジェクトですべての一致を検索します。デフォルトはオフです。

Search nested UserObjects - ネストされたUserObjectを検索します。デフォルトはオンです。

Show occurrences that - 検索の制約を以下のように指定します。

Contain search text - 検索テキストを含むものを検索します。デフォルトはオンです。

Exactly match search text - 検索テキストに正確に一致するものを検索します。デフォルトはオフです。

Begin with search text - 検索テキストで始まるものを検索します。デフォルトはオフです。

End with search text - 検索テキストで終わるものを検索します。デフォルトはオフです。

Advancedタブ:

Advancedタブをクリックすると、Findダイアログ・ボックスの別のオプション群が表示されます。Advancedタブのオプションを使うと、オブジェクトの型とオブジェクトの特性に基づいて検索を制約できます。AdvancedタブのPropertyおよびValueボタンの組み合わせにより、検索基準を定義できます。Propertyボタンを定義した場合、それに対応するValueボタンも定義する必要があります。

PropertyおよびValue - Property列には3つのボタン、Value列にも3つのボタンがあります。Property列のボタンの1つをクリックすると、Property Nameダイアログ・ボックスが表示されます。これには個々の検索プロパティの名前のリストが表示されます。選択されたProperty Nameのそれぞれに対して、隣にあるValueボタンをクリックすることにより、値を選択する必要があります。PropertyとValueの組み合わせは次のようになります。

Object Type（デフォルト） - このProperty Nameが選択された場合、ValueボタンのデフォルトはAll Typesになります。Valueボタンをクリックすると、Select Object Type(s)ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、VEEワークスペースでオブジェクトを開くことができるすべてのVEE関数がリストされます。使用できる各オブジェクト型の説明については、Helpの各オブジェクト型の項目を参照してください。

Select Object Type(s)ダイアログ・ボックスでは、使用可能なすべてのオブジェクト型があらかじめデフォルトで選択されています。1つまたはいくつかのオブジェクト型だけを選択するには、ダイアログ・ボックスのClear Allボタンをクリックし、マウスの左ボタンを使って必要なオブジェクト型を選択します。Clear Allボタンをクリックすると、選択されたすべてのオブジェクト型が選択解除されます。PropertyボタンのProperty Nameには、Object Type以外を割り当てることもできます。プロパティ名のいくつかの例とそれに対応するValueを以下に示します。

- Description - 有効な値は、ユーザがValueフィールドに入力するユーザ定義のDescriptionです。
- Device name - 有効な値は、ユーザがValueフィールドに入力するユーザ定義のDevice nameです。
- Popup Panel Title Background Color - 有効な値はVEEカラー・マップ中の任意の色です。この値のデフォルトの色は、ユーザがDefault Preferencesダイアログ・ボックスで指定した色です。Valueフィールドをクリックすると、Select Color for Object Titleダイアログ・ボックスが開きます。ユーザはマウスの左ボタンを使ってこのダイアログ・ボックスのカラー・パレットから任意の色を選択できます。

Reset - Resetボタンは、最初のPropertyボタンをデフォルトのObject Typeに設定し、ValueボタンをAll Typesに設定します。Advancedタブの残りのPropertyボタンとValueボタンの2つのペアで選択されたオプションがある場合は、クリアされます。

ショートカット

Ctrl+Fを押すとFindダイアログ・ボックスが開きます。

スコープを自動的に制限するには、プログラム・エクスプローラでUserFunctionやUserObjectなどの特定のコンテキストをマウスの右ボタンでクリックしてFindを開きます。

場所

Edit [image] Find...

関連項目

Default Preferences、Find Results

プロパティを検索してオブジェクトを見つけるには

テキストを検索してオブジェクトを見つけるには


Find Results

前回のFind検索の結果を示すツール・ウィンドウを表示します。

使用法

Find Resultsは、前回実行されたFind検索の結果を示すツール・ウィンドウを表示するために使用します。Findテキスト検索が実行されていない場合、[Find Results]メニューは淡色表示（選択不可）になります。

[Find Results]ツール・ウィンドウは、[Find]ダイアログ・ボックスで[Find]ボタンをクリックしたときにも表示されます。

ウィンドウ情報

[Find Results]ツール・ウィンドウのタイトルには、Find検索の要約が表示されます。内容は、見つかった一致の数と、VEEオブジェクトの総数です。タイトル・バーの下には、いくつかのコントロール・ボタン、使用された検索テキスト、検索範囲（Entire Programなど）が表示されます。

ツールバー・ボタン - コントロール・ボタンは、Find Resultsを表示するためのショートカットの役割を果たします。次のコントロール・ボタンがあります。

Display previous item - Find Resultsリストの前の一致を表示します。

Display next item - Find Resultsリストの次の一致を表示します。

Find - [Find]ダイアログ・ボックスを再表示します。

Clear - Find Resultリスト中のすべての結果を削除します。

Find: - この領域には、検索対象のテキストが引用符で囲まれて表示され、検索範囲が示されます。デフォルトはプログラム全体です。

Object Location - 一致が見つかったUserFunctionまたはUserObjectのパス名。ネストされたVEE UserObjectの場合、これはネストされた各オブジェクトを通るパスです。

Object Title - テキストが見つかったオブジェクトのタイトル。このタイトルはObject Propertiesで設定されます。

Object Type - テキストが見つかったVEEオブジェクトの型（Formulaオブジェクト、Constantオブジェクトなど）。

Text Found - オブジェクトのどこかで見つかったテキスト。このテキストは、オブジェクトのタイトルまたはオブジェクト内部のどこかに存在します。

Adv - "Adv"ラベルは、ユーザが[Find]ダイアログ・ボックスで詳細オプションを選択した場合に表示されます。

ショートカット

Ctrl+Rを押すと[Find Results]ツール・ウィンドウが開きます。

ツール・ウィンドウの列の並び順は、列の見出しをクリックすることで変更できます。

場所

Edit [image] Find Results

関連項目

Find

検索操作の結果を表示するには


For Count

データ出力ピンを指定された回数アクティブにするオブジェクト。

使用法

For Countは、サブスレッドを指定された回数反復実行するために使用します。For Countの出力は、サブスレッドの以降のオブジェクトに対する値として使用できます。

オープン・ビュー・パラメータ

反復回数を入力フィールドに入力するか、入力として与えます。

注記

For Countの出力値は、0からn-1までの範囲のReal64スカラです。ここで、nは指定されたカウント値です。マッピングされない配列オブジェクトへのアクセスは0から始まるので、For Countはこのようなオブジェクトの次元全体を処理する必要がある場合に便利です。For Countの値は次元サイズです。

指定されたFor Countの値が0または負の場合、出力はアクティブになりませんが、シーケンス出力ピンはアクティブになります。

For Count出力から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタが増加し、カウント値が指定されたカウントよりも少ない場合は、For Countオブジェクトが新しい反復値で起動されることにより、サブスレッドが再びアクティブになります。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。For Count出力に残っている値は、Breakが動作した時点での値と同じです。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタが増加します。カウント値が指定されたCountよりも少ない場合は、Count出力が新しい反復値で起動されることにより、サブスレッドが再びアクティブになり、サブスレッドの実行が通常通りに行われます。反復カウンタがCount値に達した場合は、シーケンス出力ピンがアクティブになります。

For Countオブジェクトから始まるサブスレッドが反復を終了した場合、前の反復中に送られたすべてのデータ・コンテナは次の反復の前に無効になります。これは、前の反復の「古い」データが次の反復に再使用されるのを防ぐためです。ただし、反復サブスレッドの中にフロー分岐が存在する場合、一部のオブジェクトはすべての反復で動作しない可能性があります。したがって、これらのオブジェクトから送られるデータ・コンテナは、他のオブジェクトがそのデータを使って実行する前に無効になる可能性があります。このような場合に必要な伝達を実現するには、Sample & Holdオブジェクトを使用します。

場所

Flow [image] Repeat [image] For Count

関連項目

Break、For Log Range、For Range、Get Values、Next、On Cycle、Sample & Hold、Set Values、Until Break、Properties、オブジェクト・メニュー

（オブジェクト）

VEEプログラムの一部をループするには


For Each

For Eachステートメントは、配列またはコレクションを反復します。

使用法

VEE配列サポートとしては、For Eachステートメントは、任意の数（1～10）の次元、任意の次元サイズ、任意の型のVEE配列を処理します。これはすべてのExecModeで動作します。

COMサポートとしては、For Eachステートメントは列挙またはループ可能な任意のCOM（ActiveX）オブジェクトを処理します。この型のオブジェクトには通常、コレクションであることを示すために"Count"プロパティと"Item()"メソッドがありますが、厳密に言うとこれは必須ではありません。COM/ActiveXはExecMode 5以上で動作します。

.NETサポートとしては、For Eachステートメントは列挙またはループ可能な任意の.NETオブジェクトオブジェクトを処理します。例えばStringCollectionなどです。この型のオブジェクトにも通常、コレクションであることを示すために"Count"プロパティと"Item()"メソッドがありますが、厳密に言うとこれは必須ではありません。.NETオブジェクトはExecMode 6/7以上で動作します。

例

この例では、For Countメソッドを使って1次元配列を処理するには3つのオブジェクトが必要ですが、もう1つの方法では1個のFor Eachオブジェクトだけですんでいることに注意してください。もちろん、配列の次元数が増えるにつれて、For Countの方法はますます複雑になっていくのに対して、For Eachの方法は10次元まで変更なしに動作します。

For Eachオブジェクトはレコードに対しては動作しません。

場所

Flow [image] Repeat [image] For Each


For Log Range

データ出力ピンを指定された回数アクティブにするオブジェクト。

使用法

For Log Rangeは、サブスレッドを指定された回数反復実行するために使用します。For Log Rangeでは、開始値、終了値、増分値を指定して、10の対数スケールで均等に分布した出力値を生成できます。

オープン・ビュー・パラメータ

From - 反復ループの開始値。

Thru - 反復ループの終了値。反復子の値がThruの値以上になった場合、ループは終了します。

/Dec - 反復子から出力される値の間隔を決定します。0番目の値はFromです。n番目の値はFrom*exp10(n/(/Dec))です。

From、Thru、/Decは入力として追加できます。

注記

For Log Rangeの出力値は、FromからThruまでの範囲のReal64スカラです。

For Log Range出力から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタが/Decの値だけ増加し、カウント値がThruの値よりも小さい場合は、サブスレッドはFor Log Range出力を新しい反復値で再びアクティブにします。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。For Log Range出力に残っている値は、Breakが動作した時点での値と同じです。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタが/Decの値だけ増加します。カウント値が指定されたThruの値よりも小さい場合は、サブスレッドはData出力を新しい反復値で再びアクティブにし、サブスレッドの実行が通常通りに行われます。反復カウンタがThru値に達した場合は、シーケンス出力ピンがアクティブになります。カウンタが超過した場合、Data出力に残っている値は範囲外の値です。

オプションのデータ入力を追加した場合、値を供給するフィールドの名前と必ずしも一致しないことがあります。入力する値とピンとの対応に注意してください（必要ならShow Terminalsを使用してください）。

Thruの値がFromの値よりも小さい場合、/Decが負でないとループは実行されません。

/Dec = 0の場合、ループはサブスレッドでBreakオブジェクトが実行されるまで無限に反復されます。

FromがThruに等しい場合、ループは1回だけ実行されます。

For Log Rangeオブジェクトから始まるサブスレッドが反復を終了した場合、前の反復中に送られたすべてのデータ・コンテナは次の反復の前に無効になります。これは、前の反復の「古い」データが次の反復に再使用されるのを防ぐためです。ただし、反復サブスレッドの中にフロー分岐が存在する場合、一部のオブジェクトはすべての反復で動作しない可能性があります。したがって、これらのオブジェクトから送られるデータ・コンテナは、他のオブジェクトがそのデータを使って実行する前に無効になる可能性があります。このような場合に必要な伝達を実現するには、Sample & Holdオブジェクトを使用します。

場所

Flow [image] Repeat [image] For Log Range

関連項目

Break、For Count、For Range、Next、On Cycle、Sample & Hold、Properties（オブジェクト）、Until Break、Properties（オブジェクト）、オブジェクト・メニュー

VEEプログラムの一部をループするには


Formula

ユーザ定義の演算、関数、その他数学的な式で指定される動作を実行するオブジェクト。

注記
Formulaオブジェクトがサポートする個々の演算や関数については、Function & Object Browserを参照してください。

使用法

Formulaを使うと、VEEでサポートされる任意の式を実行できます。多数の定義済みの演算子や関数がFunction & Object Browserに用意されています。さらに、Function & Object Browserには、ユーザ定義関数と、使用可能なActiveXオブジェクト／コントロールも表示されます。デフォルトのFormulaオブジェクトには、1つの入力（A）と、サンプル式（2*A+3）が含まれます。このサンプル式は任意の式に置き換えることができ、ユーザ定義の式に必要な入力と出力を任意の数だけ追加できます（式に入力が不要な場合、すべての入力を削除できます）。

入力は任意のデータ型です。関係式（A <= Bなど）の場合、結果の出力はスカラInt32で、値は0（偽）または1（真）です。他の式の場合、結果の出力は、入力と式自体に依存するデータ型になります。Formulaオブジェクトや、式を含むI/Oトランザクションへのヌル入力は、すべて値0.0を持つReal64数値に自動的に変換されます。式の結果のデータ型と種類を決定する規則については、データ・コンテナの理解を参照してください。

出力には式で値を代入できます。Result出力は常に最後の式の結果を値として持ちます。出力端子は基本的に、Formulaに局所的なローカル変数です。

式の構文と演算の詳細については、[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [関数と演算]を参照してください。

オープン・ビュー・パラメータ

Formulaフィールド（ラベルなし） - デフォルトは2*A+3です。Function & Object Browserにある演算子や関数を使って任意の式を入力できます。式を入力してプログラムの別の部分をクリックすると、構文が自動的にチェックされ、エラーがあれば報告されます。Formulaフィールドは、配列とスカラ・テキストを受け入れるコントロール入力として追加できます。

Formulaオブジェクトは複数行を持つように拡張できます。編集カーソルを式フィールドに置いてEnterキーを押すと、カーソルが新しい行に移動します。

次の例に示すように、式の間にコメントを入力できます。

c=2*a+3; // a comment to the end of line
d=sin(40); // another comment
// one last comment

注記

サポートされる2項演算子と関数はすべてFunction & Object Browserにあります。これらの演算子と関数は、UserFunction、リモート関数、コンパイル済み関数の呼び出しを含めて、Formulaオブジェクトで前述の構文により式を構成するために使用できます（ただし、MATLAB関数は例外で、MATLAB Scriptオブジェクトからしか呼び出すことはできません）。ActiveXコントロール／オートメーション・オブジェクトがVEEで使用可能な場合、Formula式の中で操作できます。

定義済みの個別のFormulaオブジェクトを複数使用して一連の計算を実行することもできますが、同じ式を持つ1つのFormulaオブジェクトを使った方が、同じ計算を高速に実行できます。これは、プログラムの各グラフィカル・オブジェクトには一定量のオーバヘッドが存在するため、オブジェクトが少ない方がプログラムの性能が上がるからです。

複数の式を1行に入力することも、複数の行に入力することもできます。Formulaオブジェクトの式は、読みやすいように配置できます。式を区切るにはセミコロンを使用します。1つの式を複数行に分割することもできます。ただし、1つの変数名を複数行に分割することはできません。

複数の式を使って、複数の出力に値を代入することもできます。Formulaオブジェクトに出力a、b、c（およびResult）がある場合、

a=2*3;
b=a+2;
c=a+b

上の式は3つの出力端子に適切な値を代入します。Resultは最後の式の値、すなわちこの場合はcを持ちます。

出力端子は、式の中で一時記憶用にも使用できます。次の式は配列内の値を交換します。ここで入力aは配列を持ち、出力tmpは一時記憶として用いられます。

tmp=a[2];
a[2]=a[3];
a[3]=tmp

FormulaオブジェクトはRich Text Format（RTF）ボックスです。Formulaオブジェクトの編集機能は、RTFボックスで通常使用できる以下の機能をすべて含みます。

矢印キーの全機能

Delete、End、Home、Insert、Page Up、Page Downキーの使用

テンキーの完全なサポート

式の評価の詳細

トークンの検索に関する以下の説明は、評価が実行時まで遅延されるすべての式に当てはまります。これには、Formula、If/Then/Else、Set Valuesなどのオブジェクトの中の式や、SequencerおよびI/Oトランザクションの中の式が含まれます。

VEEで呼び出せる関数としては、UserFunction（ローカルに作成されたものまたはライブラリからインポートされたもの）、コンパイル済み関数、リモート関数があるので、同じ名前を持つ2つの関数が存在する可能性があります。式での名前の衝突は、以下の順序でトークンを検索することによって解決されます。

1. ローカル入出力端子

2. 呼び出し元のオブジェクトと同じライブラリに存在する関数名

3. ローカルUserFunction

4. sin()などの組み込み関数

5. インポートされたUserFunction、コンパイル済み関数、リモート関数。これら3つの間の優先順位は保証されません。目的の関数を選択するには、ドット記法を使って呼び出しにライブラリ名を含めます。例えば、myLib.func()のようにします。

関数名を解決するための優先順位は、注意して衝突を回避しないと予期しない結果やエラーの原因となることがあります。次の例を考えます。

この式は一見、30のサインを入力端子の数値と加算し、結果として2.5を出力するように見えます。しかし、端子名は組み込み関数名よりも優先されます（上記参照）。式sin(30)は入力端子を呼び出そうとし、関数またはActiveXメソッドとして扱います。sinがsin(30)を評価できるオブジェクトの場合、有効な結果が得られます。しかし、このような例はプログラミングの誤りや理解不足から生じることのほうが多いのです。上の例では、プログラムの実行が失敗し、意味不明のエラー・メッセージが発生します。この種のエラーは、入力ピン名に限定されません。2つのトークンが同じ名前を持ち、その優先度が予期したものと異なる場合はいつでも起こりえます。優先順位の問題を回避するため、変数と関数には固有の名前を選択することをお勧めします。

上記の検索順序は、実行モードがVEE 5以上である場合に当てはまります。それより前の実行モードでは、変数名と関数名の検索順序が異なります。例えば、VEE 4モードでは、sin()などの内部関数が最も高い優先順位を持っていました。VEE 5（およびそれ以上）のモードでは、ローカルUserFunctionの方が内部関数よりも優先順位が高いので、sin()などの関数のカスタマイズ版を作成することができます。この検索順序の違いは、異なるライブラリからの同じ名前の関数を含むプログラムに対して大きな影響を与える可能性があります。

場所

Device [image] Formula

関連項目

ActiveX Automation References、ActiveX Control References、Function & Object Browser、UserFunction

入力端子のデータ型の変換、Code Completion、Code Insight、実行モード

データの処理（シーケンス全体を参照）、データ・コンテナの理解（シーケンス全体を参照）

式を入力するには、配列または配列要素を式で使用するには、Properties（オブジェクト）

算術演算子と関数を使用するには、式でレコードを使用するには、オブジェクト・メニュー


For Range

データ出力を指定された回数アクティブにするオブジェクト。

使用法

For Rangeは、開始値、終了値、増分で指定された回数サブスレッドを反復実行するために使用します。For Rangeを使うと、FromとThruの間で一様に分布した値を生成できます。

オープン・ビュー・パラメータ

From - 反復ループの開始値。

Thru - 反復ループの終了値。反復子の値がThruの値以上になった場合、ループは終了します。

Step - 反復子の現在値と次の値の間の増分。

すべてのオープン・ビュー・パラメータはデータ入力から得ることができます。

注記

For Rangeの出力値は、FromからThruまでの範囲のReal64スカラです。

For Range出力から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタがステップ値だけ増加し、カウント値がThruの値よりも小さい場合は、For Range出力が新しい反復値で起動されることによりサブスレッドが再びアクティブになります。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。For Range出力に残っている値は、Breakが動作した時点での値と同じです。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタがStepの値だけ増加します。カウント値が指定されたThruよりも少ない場合は、Data出力が新しい反復値で起動されることにより、サブスレッドが再びアクティブになり、サブスレッドの実行が通常通りに行われます。反復カウンタがThru値に達した場合は、シーケンス出力ピンがアクティブになります。

オプションのデータ入力を追加した場合、値を供給するフィールドの名前と必ずしも一致しないことがあります。入力する値とピンとの対応に注意してください（必要ならShow Terminalsを使用してください）。

Thruの値がFromの値よりも小さい場合、Stepが負でないと出力は一度もアクティブになりません。

Step = 0の場合、ループはサブスレッドでBreakオブジェクトが実行されるまで無限に反復されます。

FromがThruに等しい場合、ループは1回だけ実行されます。

For Rangeオブジェクトから始まるサブスレッドが反復を終了した場合、前の反復中に送られたすべてのデータ・コンテナは次の反復の前に無効になります。これは、前の反復の「古い」データが次の反復に再使用されるのを防ぐためです。ただし、反復サブスレッドの中にフロー分岐が存在する場合、一部のオブジェクトはすべての反復で動作しない可能性があります。したがって、これらのオブジェクトから送られるデータ・コンテナは、他のオブジェクトがそのデータを使って実行する前に無効になる可能性があります。このような場合に必要な伝達を実現するには、Sample & Holdオブジェクトを使用します。

場所

Flow [image] Repeat [image] For Range

関連項目

Break、For Count、For Log Range、Next、On Cycle、Sample & Hold、Properties（オブジェクト）、Until Break、Properties（オブジェクト）、オブジェクト・メニュー

VEEプログラムの一部をループするには


From

メニュー項目。

使用法

Fromは、I/O動作のソースとなる次のオブジェクトにアクセスするために使用します。

File

DataSet

String

場所

I/O [image] From

関連項目

To


From DataSet

データセットから条件付きでレコードを読み取るためのオブジェクト。

使用法

From DataSetは、論理式の制約を満たす1つのレコードまたはすべてのレコードをデータセットから検索して読み取るために使用します。読み取ったレコードが問合せ式の制約を満たす場合、レコードはRec出力ピンに出力されます。

Formulaフィールドのデフォルトの式は1（真）です。したがって、見つかった最初のレコード（One）またはデータセット中のすべてのレコード（All）が出力されます。

レコード・フィールドの値をテストしたい場合は、フィールドAに対してRec.A、フィールドBに対してRec.Bのような形式を使用します。例えば:

Rec.A<10

は各レコードをテストして、フィールドAが10より小さいかどうかを調べます。Get records: Oneが指定された場合、フィールドAが10より小さいデータセット中の最初のレコードがRecに出力されます。Get records: Allが指定された場合、フィールドAが10より小さいすべてのレコードが出力されます。レコード全体が出力されることに注意してください。

次のコントロール・ピンを追加できます。

File Name - このコントロール・ピンは、レコードを読み取るファイルの名前を変更するために使用します。

Rewind - このコントロール・ピンは、From DataSetファイルの読み取り位置をファイルの先頭に戻します。

Formula - このコントロール・ピンは、ファイルから読み取ったレコードのうちデバイスが出力するものを決定する式を変更するために使用します。

Close - このコントロール・ピンは、ファイルをクローズします。

オープン・ビュー・パラメータ

From DataSet - 名前フィールドをクリックしてダイアログ・ボックスを表示し、データセットを含むファイルの名前を選択します。

Get Records - OneまたはAllを選択します。

Oneが選択された場合、選択式の制約を満たすデータセット中の最初のレコードが出力され、From DataSetは実行を停止します。Oneが選択された場合、出力の種類は常にスカラです。

Allが選択された場合、選択式の制約を満たすデータセット中のすべてのレコードが出力されます。出力の種類は常に配列です。From DataSetはファイルの末尾に達したときに実行を停止します。

Search Specifier - データセット中のレコードをテストする式を入力します。Get RecordsでOneが選択されている場合は式を満たす最初のレコード、Allが選択されている場合は式を満たすすべてのレコードが出力されます。デフォルトの式は1（真）です。

注記

条件式としては任意の有効な式が使用できます。Formulaオブジェクトの場合と同様、式で使用する入力を追加できます。レコードのフィールドの値をテストしたい場合は、Rec.A、Rec.Bなどのように表します。次のような複雑な式も使用できます。

Rec.A > Rec.B AND Rec.C < 2.3

条件式の真偽を判定するための以下の一般的規定を守る必要があります。

あらゆる関係テスト（2つのオペランドが等しいかどうかなど）において、一方のオペランドが配列の場合、もう一方はスカラまたは同じサイズと種類の配列でなければなりません。1つめのオペランドが2つめのオペランドに等しい場合、結果はTrueです。そうでない場合はFalseです。

両方のオペランドがCoord型の場合、結果がTrueになるのは独立変数と従属変数がすべて正確に一致した場合だけです。独立変数が一致しない場合、エラーが返されます。Complex、PComplex、Spectrum型のオペランドの場合、両方の部分が等しい場合に限ってTrueが返されます。EnumはTextに変換されて比較されます。

配列同士の演算結果がTrueになるのは、両方のオペランドの対応する値同士がすべて等しい場合だけです。

データセット（レコードの配列）をファイルから読み取り、編集してからファイルに保存したい場合があります。このためには、From DataSet、Default Value入力ピンを持つRecord Constant、To DataSetを使用します。詳細についてはRecord Constantを参照してください。

このオブジェクトにはEOF出力ピンを追加できます。オブジェクトが実行されたときに、問合せ式の制約を持たすレコードがない場合、またはすでにデータセットの末尾にいる場合は、このピンが起動されます。このピンがない場合、上記の条件ではEnd of file with no Data Foundエラーが発生します。

複数のFrom DataSetオブジェクトが同じファイルから読み取りを行っている場合、同じファイル・ポインタが使用されます。すなわち、ファイルを読み取るオブジェクトがいくつあっても、すべてのオブジェクトがファイルからシーケンシャルに読み取りを実行します。詳細についてはFrom Fileを参照してください。

場所

I/O [image] From [image] DataSet

関連項目

Build Record、Formula、Record Constant、To DataSet、UnBuild Record、Properties（オブジェクト）、オブジェクト・メニュー

ファイルからデータを読み取るには


From File

I/Oトランザクションを使ってファイルからデータを読み取るオブジェクト。

使用法

From Fileオブジェクトは、さまざまなファイル・エンコーディングやフォーマットを読み取るために使用します。From Fileが特に便利なのは、他のソフトウェア・パッケージで作成されたデータ・ファイルをインポートする場合です。

複数のFrom Fileオブジェクトが同じディスク・ファイルを参照する場合、オブジェクトが異なるスレッドや異なるコンテキストにある場合でも、すべてのオブジェクトが1つの読み取りポインタを共通に使用します。すなわち、あるFrom Fileオブジェクトが読み取ったデータは、REWIND操作がファイルに対して実行されない限り、同じファイルを参照している他のFrom Fileオブジェクトから再び読み取られることはありません。PreRun後に特定のファイルに対する最初のFrom Fileオブジェクトが動作した時点で、そのファイルは開かれ、ファイル・ポインタがファイルの先頭に位置付けられます（暗黙のREWIND）。プログラムが停止するとすべてのファイルが閉じられます。

From Fileの操作:

READ - 指定されたエンコーディングとフォーマットを使用してファイルからデータを読み取ります。

EXECUTE - REWINDは、ファイルの内容を消去せずにファイルの読み取りポインタをファイルの先頭に位置付けます。CLOSEは開いているファイルを閉じます。DELETEはファイルを削除します。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

From Fileのエンコーディング:

TEXT - VEEや他のソフトウェア・パッケージから書き込まれたテキストASCIIファイルを読み取ります。

BINARY - すべてのデータ型をマシン固有のバイナリ・フォーマットから読み取ります。

BINBLOCK - すべてのVEEデータ型をIEEE 488.2固定長ブロック・ヘッダを持つバイナリ・ファイルから読み取ります。

CONTAINER - すべてのデータ型をマシン固有のテキスト・フォーマットから読み取ります。

オープン・ビュー・パラメータ

Open Viewには、データ・ファイル名と使用可能なトランザクションのリストのフィールドがあります。データ・ファイル名はコントロール入力として追加できます。

Open Viewには実行されるファイル・トランザクションのリストが表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

注記

EOF（End of File）出力端子を[Add Data Output]で追加できます。EOFは特殊な出力端子で、トランザクションがEnd of Fileを超えてデータを読み取ろうとするとヌル・コンテナを伝達します。End of File条件が検出され、EOF出力がアクティブになった場合、他のデータ出力は、新たに読み取ったデータを持っている場合でも、いっさいアクティブになりません。

EOFが検出され、EOF出力ピンがない場合、エラーが返されます。

ファイル中のすべてのデータを読み取るには、READ ... ARRAY TO END:トランザクションを使用します。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] From [image] File

関連項目

To File、ファイルからデータを読み取るには、Properties（オブジェクト）、オブジェクト・メニュー、トランザクションを編集するには


From String

トランザクションを使って文字列からデータを読み取るオブジェクト。

使用法

From Stringは、文字列中のテキスト・データからさまざまなエンコーディングやフォーマットを読み取るために使用します。

Textの1次元配列がAString入力に渡された場合、From Stringトランザクションは、配列中のテキストがFrom Fileオブジェクトによってファイルから行として読み取られた場合と同様に動作します。すなわち、Textの配列は、各文字列要素の間に改行文字がある1つのテキスト・ストリームとして扱われます。

From Stringの操作:

READ - 指定されたエンコーディングとフォーマットを使用してデータを読み取ります。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

From Stringのエンコーディング:

TEXT - すべてのデータ型をAString入力から読み取ります。

CONTAINER - すべてのデータ型をVEE固有のテキスト・フォーマットから読み取ります。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

注記

From Stringは、READ TEXTトランザクションの動作を調べるためのデバッグ・ツールとして便利です。Text ConstantオブジェクトをFrom StringのAStringという入力端子に接続し、Logging AlphaNumeric表示をFrom Stringの出力端子に接続すると、ただちに結果を見ることができます。また、計測器から返された文字列を解析するためにも有効です。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] From [image] String

関連項目

From、From File、To String、Properties（オブジェクト）、オブジェクト・メニュー、文字列を数値に変換するには、トランザクションを編集するには


Function & Object Browser

[Device]メニューの項目で、数学／論理関数、ActiveXオブジェクト、Agilent VEEオブジェクトなどにアクセスするために使用します。

使用法

Function & Object Browserは、Agilent VEEの関数やオブジェクトにアクセスするために使用します。このブラウザからは次の項目を選択できます。

演算子

組込み関数

MATLAB関数

ローカルUserFunctions

インポートされたUserFunctions

リモート関数

コンパイル済み関数

ActiveXオブジェクト

.NET/CLR オブジェクト

VEEオブジェクト

計測器

ウィンドウ情報

[Function & Object Browser]ツール・ウィンドウには、ツールバーと、[Types]枠、[Members]枠、[Description]枠の3つの枠があります。[Types]枠はFunction & Object Browserの左側、[Members]枠は右側の上、[Description]枠は右側の下に表示されます。

[Types]枠

[Types]枠には、参照可能なすべてのタイプの関数とオブジェクトが含まれます。これらは、VEEが提供する演算子および組込み関数、MATLAB関数、ユーザが作成したローカル、インポート、リモート、コンパイル済み関数、ActiveXオブジェクト、VEEオブジェクト、.NET/CLR オブジェクト、計測器です。

[Types]枠の内容はツリー・ビューで表示されます。タイプをダブルクリックするか名前の隣のプラス記号（+）をクリックして展開すると、サブタイプが表示されます。

ActiveXオブジェクトの場合、現在参照されているライブラリ名に展開し、さらに選択したライブラリに含まれるクラスに展開できます。クラス名を選択すると、ActiveXオブジェクトに対して使用可能なプロパティ、メソッド、イベントが[Member]枠に表示されます。

.NET/CLR オブジェクトの場合、アセンブリに展開できます。アセンブリは、再使用可能、 バージョン設定可能で、説明を内蔵した.NETアプリケーションの機能ブロックです。アセンブリは 名前空間に展開できます。 名前空間 を選択すると、その 名前空間 で使用可能なメンバの部分的なリストが[Member]枠に表示されます。

[Member]枠

Operatorsまたは関数名が[Type]枠で強調表示されている場合、選択されたタイプで使用可能な演算子と関数の名前のリストが[Member]枠に表示されます。リストが用意されているスペースよりも大きい場合は、スクロール・バーが表示されます。このリストから演算子または関数を選択してプログラムに追加するには、[Member]名をクリックして[Create Formula]ボタン [image] をクリックするか、単に名前をダブルクリックします。

[Type]枠でActiveX Objectsが選択されている場合、[Member]枠には、選択されている[Library]および[Class]名に関連するActiveXオブジェクトで使用可能なプロパティ、メソッド、イベントが表示されます。プログラムでプロパティやメソッドを使用した式を作成するには、プロパティ名またはメソッド名をクリックし、ツールバーの[Create Get Formula]ボタン [image] をクリックするか、名前をダブルクリックします。

.NET/CLRが[Type]枠で選択されている場合、[Member]枠には、.NET/CLRオブジェクト（[Type]枠で選択された）で使用可能なコンストラクタ、プロパティ、メソッド、列挙子が表示されます。プログラムでプロパティやメソッドを使用した式を作成するには、プロパティ名またはメソッド名をクリックし、ツールバーの[Create Get Formula]ボタン をクリックするか、名前をダブルクリックします。

イベント名からは何も作成できません。ActiveXオートメーション・オブジェクトに対するイベント・ハンドラを作成するには、Declare Variableを使ってObject型の変数を宣言し、イベントを有効にし、オブジェクト・メニューで[Create Event Handler]を使用します。ActiveXコントロールに対するイベント・ハンドラを作成するには、まずプログラムにコントロールを追加し（[Device] [ActiveX Controls]）、次にオブジェクト・メニューで[Create Event Handler]を使用します。

[Description]枠

この枠には、[Member]枠で選択された名前の詳細情報が表示されます。

組込み関数の場合、強調表示された関数に対してVEEが用意している説明が表示されます。ローカル／インポート／リモート関数の場合、強調表示された関数に対する[Show Description]ダイアログ・ボックスの内容が表示されます。ActiveXオブジェクトの場合、パラメータ付きの式構文が表示されます。

[Member]枠に表示された名前に関する追加情報を見るには、名前を強調表示し、[Help]ツールバー・ボタンをクリックするか、F1を押します。. OperatorsおよびBuilt-in Functionsに関する情報は、VEE Helpから得られます。ActiveXのMembersに関する情報は、ベンダが用意しているオンライン・ヘルプ（存在する場合）から得られます。

ツールバー

[Function & Object Browser]ツールバーでは、以下のことが可能です。

  • 選択された演算子、組込み関数、MATLAB関数、ActiveXオブジェクトのメンバ関数、.NET/CLR オブジェクトのメンバ関数を使用した式を作成します。

  • 選択されたActiveXオブジェクトのプロパティ、.NET/CLRオブジェクトのプロパティ、Agilent VEEオブジェクトのプログラムのプロパティ、計測器のプロパティに対するSet式を作成します。

  • 選択されたActiveXオブジェクトのプロパティ、.NET/CLRオブジェクトのプロパティ、Agilent VEEオブジェクトのプログラムのプロパティ、計測器のプロパティに対するGet式を作成します。

  • 選択されたローカル／インポート／リモートUserFunction、コンパイル済み関数に対するCallを作成します。

  • 選択されたUserFunctionに対するCallを作成します。

  • 選択されたイベントに対するイベント・ハンドラを作成します。

  • 選択された.NETオブジェクトに対する.NETオペレーションを作成します。

  • 選択されたメンバをクリップボードにコピーします。これはエディタ・ウィンドウにテキストとして貼り付けできます。

  • [Type]枠のすべての項目の階層を非表示にします。

  • 選択されたメンバのオンライン・ヘルプ・トピックを開きます。

[Member]枠で項目を右クリックすると、その項目のコンテキスト・メニューが開きます。コンテキスト・メニューにはツールバーと同じコマンドが用意されています。

[Member]枠で項目をダブルクリックすると、その項目に対するVEEオブジェクトが自動的に作成されます。作成されるVEEオブジェクトのタイプは、選択された項目のタイプによって異なります。

場所

Device [image] Function & Object Browser

関連項目

ActiveX Automation References、ActiveX Control Host、ActiveX Control References、ActiveX Controls、Assignment、Call、Declare Variable、Delete Library、Edit UserFunction、Import Library、Miscellaneous Operators、UserFunction

算術演算子と関数を使用するには


Function Generator

Waveformを出力するオブジェクト。

使用法

Function Generatorは、独自仕様のWaveformを作成するために使用します。

プロパティ

ErrorOnAliasing - Num PointsをTime Spanで割ったもの（同じ周波数）が指定された周波数の2倍より小さいかどうかを評価します。このような場合、エラーが返されます。この評価の目的は、作成されるポイントが対象の関数を正確に表現しているかどうかを判定することです。チェック・ボックスを選択すると、ポイントのそのままの表現が作成されます。デフォルトはオンです。

オープン・ビュー・パラメータ

これらのパラメータはすべて、オープン・ビューで設定することも、データ入力として追加することもできます。

Function - 波形の形状（Sine、Square、Triangleなど）。デフォルトはCosineです。

Frequency - 波形の周波数。Hz単位。FunctionがDcOnlyに設定されている場合、このパラメータは無視されます。デフォルトは200 Hzです。

Amplitude - dcOffsetが加算される前のリニア単位での最大値と最小値の絶対値。デフォルトは1です。

dcOffset - 波形のオフセット（上または下に移動される量）。デフォルトは0です。

Phase Units - 位相の単位。度（Deg）、ラジアン（Rad）、グラジアン（Grad）のいずれか。Phase Unitsは、位相値に対する現在のTrig Modeをオーバライドします。デフォルトはDegです。

Phase - 周期の割合で表した波形の移動量。位相が正の場合、波形は負の時間の方向に移動されます。FunctionがDcOnlyに設定されている場合、Phaseは無視されます。デフォルトは0です。

Time Span - 波形の持続時間（秒単位）。デフォルトは20 msです。

Num Points - 波形のポイント数。波形のポイントの間の時間は、Time Span/Num Pointsとなります。Num Pointsは正でなければなりません。デフォルトは256です。

注記

ポイントの数はサンプリング間隔の数と同じです。各ポイントは、サンプリング間隔の先頭に存在します。

場所

Device [image] Virtual Source [image] Function Generator

関連項目

Build Arb Waveform、Comparator、Noise Generator、Pulse Generator、オブジェクト・メニュー


Gate

シーケンス・ピンがアクティブになっている場合に入力データをデータ出力に通すオブジェクト。

使用法

Gateは、別の操作が発生してシーケンス入力ピンがアクティブになるまで、コンテナを抑制するために使用します。

注記

シーケンス入力ピンが接続されていない場合、抑制効果はありません。すなわち、Gateはデータ入力ピンがアクティブになると常に、データ入力ピンからデータ出力ピンにデータを通します。

Gateに流れ込むデータは記憶されません。シーケンス入力ピンがアクティブになったときのコンテナ出力は、そのときデータ入力ピンにあるコンテナです。

場所

Flow [image] Gate

関連項目

DeMultiplexer、JCT、Properties（オブジェクト）、オブジェクト・メニュー

タイムアウトで値を出力するには


Get Current Directory

ホストマシンの現在のディレクトリを取得します。

場所

System [image] Directory [image] Get Current Directory


Get Directory Name

指定されたパスのディレクトリ名を取得します。

場所

System [image] Path [image] Get Directory Name


Get Extension

ファイル名の拡張子を取得します。例えば、ファイルtest1.xlsの場合は拡張子xlsが返されます。

場所

System [image] Path [image] Get Extension


Get Field

レコードを解体して、そのフィールドまたはサブフィールドの1つを取得するためのオブジェクト。

使用法

Get Fieldは、レコードのフィールドまたはサブフィールドを抽出するために使用します。Get Fieldオブジェクトは実際にはFormulaオブジェクトであり、入力端子Rec付きで初期化され、式Rec.Aを持ちます。レコード入力から抽出するフィールドを指定するには、「ドット」構文を使用します。例えば、Rec.AはRecレコード入力からAフィールドを抽出します。

オープン・ビュー・パラメータ

Formulaフィールド（ラベルなし） - デフォルトはRec.Aです。Formulaオブジェクトで使用できる任意の式を入力できますが、通常はA.Bドット構文を使ってレコードからフィールドを抽出します。Formulaコントロール入力を追加できます。

注記

Get Fieldオブジェクトは実際にはFormulaオブジェクトであり、Rec入力と式Rec.Aによって初期化されています。Get FieldではFormulaオブジェクトで使用可能な任意の式が使用できますが、フィールドを抽出するにはRec.AやA.B.Cなどの「ドット」構文を使用する必要があります。

Get FieldのA.Bというドット構文は、すべてのFormulaオブジェクトで完全にサポートされます。これには、Formula、If/Then/Else、Get Values、Set Field、およびすべてのトランザクション・デバイス（To File、To Stringなど）が含まれます。

Get Field、UnBuild Record、SubRecordの各オブジェクトの違いに注意してください。

Get Fieldオブジェクトは、Formulaオブジェクトと同様に動作し、ドット構文（A.B）を使ってレコードを解体します。Get Fieldでは、A.B.Cのような式を使うことで、レコードのレコードを一度に解体できます。このためにはUnBuild Recordオブジェクトなら2個必要です。

UnBuild Recordオブジェクトは、入力レコードのフィールドのName ListとType Listの出力を持ちます。UnBuild Recordオブジェクトのその他の（オプションの）出力A、Bなどは、複数のGet Fieldオブジェクトと同様の結果を返します。

SubRecordオブジェクトは、UnBuild RecordやGet Fieldと異なり、常にレコードを出力します。SubRecordデバイスを使ってレコードからサブレコードを作成する場合、包含または除外するフィールドのリストを指定できます。

場所

Data [image] Access Record [image] Get Field

関連項目

Build Record、Formula、Record Constant、Set Field、SubRecord、UnBuild Record

レコードからフィールドを抽出するには


Get File Creation Time

指定されたパスのファイルの作成時刻を取得します。

場所

System [image] File [image] Get File Creation Time


Get File Name

指定されたパスからファイル名を取得します。

場所

System [image] Path [image] Get File Name


Get File Name Without Extension

指定されたパスのファイルの拡張子を除いたファイル名を取得します。

場所

System [image] Path [image] Get File Name Without Extension


Get Full Path

現在のディレクトリを出発点として、ファイルのフル・パスを取得します。例えば、tempディレクトリに現在いるとします。tempディレクトリにはtestという名前のディレクトリがあり、testディレクトリにはbalderdashというファイルがあるとします。このオブジェクトを使ってファイルbalderdashを検索すると、tempディレクトリ・ツリーが検索され、ファイルのフル・パスが返されます。

場所

System [image] Path [image] Get Full Path


Get Files

入力パスのディレクトリにあるファイルを取得し、1次元配列で表示します。

場所

System [image] Directory [image] Get Files


Get Last File Access Time

指定されたファイルの前回のファイル・アクセス時刻を取得します。

場所

System [image] File [image] Get Last File Access Time


Get Last File Write Time

指定されたファイルの前回のファイル書き込み時刻を取得します。

場所

System [image] File [image] Get Last File Write Time


Get Logical Drives

ホスト・システム上の論理ドライブの1次元配列を取得します。

場所

System [image] Directory [image] Get Logical Drives


Get Mappings

コンテナのマッピング情報を出力するオブジェクト。

使用法

Get Mappingsは、マッピングされた配列に関する情報を取得するために使用します。Get Mappingsは、マッピングの種類（対数またはリニア）と、各次元の各マッピングの開始値および終了値を出力します。

オープン・ビュー・パラメータ

NumDims - 入力配列の次元数。これは整数値で、最小値は1、最大値は10です。

注記

入力配列がマッピングされていない場合、Get MappingはLinear (0,n-1)を出力します。ここで、"n"は入力配列のその次元のポイント数です。

Get Mappingの入力としてCoordは使用できません。Coordデータ型は明示的なマッピングを持つからです。

Num Dimsは入力配列の次元数と一致する必要があります。

Num Dimsの値が変更された場合、ビューは自動的に出力端子を作成または削除して、出力の数（各次元につき3つ）がNum Dimsの値に対応するようにします。Get Mappingsは各次元に対して3つのデータ出力を持ちます。

ショートカット

マッピングされた配列のマッピングを表示するには、ラインに対してLine Probeを使用するか、端子を開いてコンテナ・データを表示します。

場所

Data [image] Access Array [image] Get Mappings

関連項目

Line Probe、Set Mappings、Properties（オブジェクト）、UnBuild Data、Properties（オブジェクト）


Get Parent Directory

親ディレクトリのパスを取得します。

場所

System [image] Directory [image] Get Parent Directory


Get Path Root

渡されたパスのルートを取得します。

場所

System [image] Path [image] Get Path Root


Get Root Directory

現在のVEEセッションのホスト・システムのルート・ディレクトリを取得します。

場所

System [image] Directory [image] Get Root Directory


Get Specified Files

パスとワイルドカード・パターン（*.veeなど）を渡します。このオブジェクトはそのパターンに一致するファイルを取得します。

場所

System [image] Directory [image] Get Specific Files


Get Subdirectories

サブディレクトリの1次元配列を取得します。これは再帰的なリストではありません。パス・パラメータに指定されたディレクトリのすぐ下のサブディレクトリです。

場所

System [image] Directory [image] Get Subdirectories


Get Temp Directory Path

一時ディレクトリのパスを取得します。これは通常、C:\Documents and Settings\{UserName}\Local Settings\Temp\です。

場所

System [image] Path [image] Get Temp Directory Path


Get Temp File Name

C:\Documents and Settings\{UserName}\Local Settings\Tempに一時ファイルを作成します。そのファイルの名前を取得します。

場所

System [image] Path [image] Get Temp File Name


Get Values

配列から要素を抽出するオブジェクト。

使用法

Get Valuesは、配列の特定の要素にアクセスするために使用します。1つまたは複数の要素、列、行を1つまたは複数の配列から抽出できます。

Get Valuesを使ってデータのセットから取得できる情報としては、データ型、次元数、次元サイズ、入力配列のすべての配列要素の総数があります。

オープン・ビュー・パラメータ

Formulaフィールド（ラベルなし） - 抽出する配列の要素を指定します。配列に関連する記号は次のとおりです。

カンマ（,） - 要素の次元を区切ります。

コロン（:） - 要素の集合の範囲（両端含む）を示します。

アスタリスク（*） - 列または行全体を表すワイルドカード。

例

[3,3]要素の2次元配列から2番目の列を抽出するには、配列のインデックスが0から始まることに注意して、次のようにします。

- - - -
|1 2 3 | | 2 |
|4 5 6 | Array [*,1]の出力: | 5 |
|7 8 9 |                      | 8 |
- - - -

注記

配列はすべて0から始まります。

各配列次元に対して1つずつの指定が必ず必要です。

Get Valuesオブジェクトは実際にはFormulaオブジェクトであり、Ary入力と式Aryといくつかの出力によって初期化されています。Get Valuesでは、Formulaオブジェクトで使用可能な任意の式が使用できます。

Get ValuesのAry[2,3]というサブ配列構文は、すべてのFormulaオブジェクトで完全にサポートされます。これには、Formula、If/Then/Else、Get Field、Set Field、およびすべてのトランザクション・デバイス（To File、To Stringなど）が含まれます。

データ型文字列の出力値は、typeName()関数から返される文字列と同じです。

場所

Data [image] Access Array [image] Get Values

関連項目

Array、Formula、Set Values、typeName()、UnBuild Data、Properties（オブジェクト）

配列から値を抽出するには


Get Variable

現在のプログラムの実行中に作成された変数の値を取得するオブジェクト。

使用法

Get Variableオブジェクトは、VEEプログラムでデータとして使用するために、変数を（名前を指定して）取得するために使用します。変数はあらかじめプログラム内でSet VariableまたはFormula代入オブジェクトによって作成または初期化されている必要があります。

あるコンテキストで（Set Variableを使って）作成された宣言されないグローバル変数は、そのプログラムのUserObjectやUserFunctionなどの別のコンテキストでデータとして使用できます。例えば、プログラムのルート・コンテキストにあるSet Variableで宣言されないグローバル変数を作成し、UserObjectにGet Variableを含めることによってそれをデータとして使用することができます。これは特に、プログラムにUserObjectsのネストされたレイヤが複数存在する場合に便利です。

変数は、次のオブジェクトの式フィールドでも名前で使用できます。Formula、If/Then/Else、Get Values、Get Field、Set Field、およびトランザクションに式を使用するすべてのオブジェクト、すなわちTo File、From File、Direct I/O、From Stdin、Sequencerです。このような直接の使用の方がGet Variableオブジェクトよりも便利な場合が多くあります。

オープン・ビュー・パラメータ

オープン・ビューには変数名のフィールドが表示されます。名前の大文字と小文字は区別されません。すなわち、globalAとGLOBALaは同じ変数です。名前フィールドはコントロール入力として追加できます。名前は変数の名前だけでなければなりません。globalA+1やglobalRec.fieldなどの式は使用できません。このような式は、Formulaで使用してください。

注記

予期しない結果を避けるために、Get Variable（または式に変数名を含むオブジェクト）オブジェクトの実行より前にSet Variableで変数を設定しておく必要があります。一般的に、これを保証するための最善の方法は、Set Variableオブジェクトのシーケンス出力ピンを、Get Variableオブジェクトまたは変数を使用するその他のオブジェクトのシーケンス入力ピンに接続することです。ただし、シーケンス入力ピンを接続する必要がない場合もあります。詳細については、『VEE Advanced Techniques』の"Variables"を参照してください。

[Default Preferences]で、[Delete Variables at PreRun]がオン（デフォルト）の場合、プログラムが実行される前にすべての変数が削除されます。[Delete Variables at PreRun]がオフにされている場合、変数は削除されないので、不正なデータを伝達しないようにプログラムで注意が必要になります。

グローバル変数は、UserObjectレベルで定義されるのではないため、真にグローバルです。プログラムのあるコンテキストで定義されたグローバル変数は、そのプログラムの他のすべてのコンテキストで使用できます。例えば、プログラムのルート・コンテキストでSet Variableオブジェクトを使ってグローバル変数を定義し、UserObjectにGet Variableを含めることによりそのグローバル変数を使用できます。ただし、プログラム全体を通じて名前の衝突を避ける必要があります。

複数のSet Variableオブジェクトが同じ変数（同じ名前を持つもの）を設定しようとした場合、Set Variableの実行のたびに現在の値は上書きされます。名前の重複に気づかなかった場合、これによって予期しない結果が生じるおそれがあります。

変数と同じ名前のデータ端子変数が存在する場合、データ端子変数が優先されます。

詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [変数]を参照してください。

場所

Data [image] Variable [image] Get Variable

関連項目

Default Preferences、Delete Variable、Set Variable、変数を使用するには、Properties（オブジェクト）


Has Extension?

指定されたパスのファイルにファイル名拡張子があるかどうかを表す論理値を取得します。例えば、ファイルtest.xlsの場合、xlsはファイル名拡張子であり、論理値の真が返されます。

場所

System [image] Path [image] Has Extension?


Hashtable - Add Key/Value Pair

ハッシュ・テーブルにキー／値ペアを追加します。

場所

System [image] Collections [image] Hashtable [image] Add Key/Value Pair


Hashtable - Clear

ハッシュ・テーブルをクリアします。

場所

System [image] Collections [image] Hashtable [image] Clear Hashtable


Hash Table - Contains Key?

指定されたハッシュ・テーブルに指定されたキーが含まれるかどうか。

場所

System [image] Collections [image] Hashtable [image] Contains Key?


Hashtable - Count

ハッシュ・テーブルのキー／値ペアの数を求めます。

場所

System [image] Collections [image] Hashtable [image] Count


Hashtable - Create

新しいハッシュ・テーブルを作成します。

場所

System [image] Collections [image] Hashtable [image] Create


Hashtable - Enumerate Key/Value Pairs

指定されたハッシュ・テーブルのキー／値ペアをリストします。

場所

System [image] Collections [image] Hashtable [image] Enumerate Key/Value Pairs


Hashtable - Get Value

ハッシュ・テーブルとハッシュ・キーからハッシュ値を取得します。

場所

System [image] Collections [image] Hashtable [image] Get Value


Hashtable - Remove Key/Value Pair

ハッシュ・テーブルからキー／値ペアを削除します。

場所

System [image] Collections [image] Hashtable [image] Remove Key/Value Pair


Hashtable - Set Value

指定されたハッシュ・テーブルの指定されたキーの値を設定します。

場所

System [image] Collections [image] Hashtable [image] Set Value


Help（オブジェクト・メニュー）

このオブジェクトのヘルプを表示します。

使用法

Helpは、このオブジェクトのリファレンス・ページを表示します。ヘルプを終了するには、ヘルプ・ウィンドウを閉じます。

注記

複数のオブジェクト、用語、手順情報に関するヘルプを見るには、VEEメニュー・バーのHelpメニューを使用します。

Instrument PanelやComponent DriverのHelpには、ドライバ自体のヘルプが含まれています。

ショートカット

選択されたオブジェクトに関するヘルプを簡単に表示するには、F1を押します。

場所

各オブジェクト・メニュー [image] Help

関連項目

オブジェクト・メニュー、Properties（オブジェクト）


Home

プログラムの左上隅を作業領域（メイン、UserFunction、UserObject）の左上隅に移動します。

ショートカット

ツールバーの [image] ボタンを押すか、Homeキーを押します。

場所

Edit [image] Home

関連項目

プログラム中を移動するには


Horizontal Paddle

Toggle Controlを参照してください。


Horizontal Rocker

Toggle Controlを参照してください。


Horizontal Slide

Toggle Controlを参照してください。


If A ~= B

データ入力値がほぼ等しい場合に出力を分岐するオブジェクト。

使用法

If A ~= Bは、ほぼ等しいかどうかをテストし、テストに基づいて分岐します。

注記

If A ~= Bは、入力がほぼ等しいかどうかをテストするようにあらかじめ設定されたIf/Then/Elseオブジェクトです。

入力がほぼ等しい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

「ほぼ等しい」の判定は、ComplexおよびPComplexの数値に対しては微妙に異なります。2つの実数（aとb）に対する「ほぼ等しい」の判定は次のとおりです。

a - b <= a * 10E-7

これに対して、2つのComplex値（aとb）に対する判定は次のとおりです。

re(a) - re(b) <= mag(a) * 10E-7

ここで、

re(a)はaの実数部

re(b)はbの実数部

mag(a)はaのベクトルの大きさ

場所

Flow [image] Conditional [image] If A ~= B

関連項目

Comparison、Conditional、If/Then/Else、If A == B、If A != B、If A < B、If A > B、If A <= B、If A >= B

VEEプログラム内で分岐するには


If A == B

データ入力値が等しい場合に出力を分岐するオブジェクト。

使用法

If A == Bは、等しいかどうかをテストし、テストに基づいて分岐します。

注記

If A == Bは、入力が等しいかどうかをテストするようにあらかじめ設定されたIf/Then/Elseオブジェクトです。

入力が等しい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A == B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A != B、If A < B、If A > B、If A <= B、If A >= B

VEEプログラム内で分岐するには


If A >= B

一方の入力がもう一方よりも大きいか等しい場合に出力を分岐するオブジェクト。

使用法

If A >= Bは、一方の入力がもう一方よりも大きいか等しいかどうかをテストし、テストに基づいて分岐します。

注記

If A >= Bは、あらかじめ設定されたIf/Then/Elseオブジェクトです。

Aの値がBの値より大きいか等しい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A >= B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A == B、If A != B、If A < B、If A > B、If A <= B

VEEプログラム内で分岐するには


If A > B

一方の入力がもう一方よりも大きい場合に出力を分岐するオブジェクト。

使用法

If A > Bは、一方の入力がもう一方よりも大きいかどうかをテストし、テストに基づいて分岐します。

注記

If A > Bは、あらかじめ設定されたIf/Then/Elseオブジェクトです。

Aの値がBの値より大きい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A > B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A == B、If A != B、If A < B、If A <= B、If A >= B.

VEEプログラム内で分岐するには


If A <= B

一方の入力がもう一方よりも小さいか等しい場合に出力を分岐するオブジェクト。

使用法

If A <= Bは、一方の入力がもう一方よりも小さいか等しいかどうかをテストし、テストに基づいて分岐します。

注記

If A <= Bは、入力が異なるかどうかをテストするようにあらかじめ設定されたIf/Then/Elseオブジェクトです。

Aの値がBの値より小さいか等しい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A <= B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A == B、If A != B、If A < B、If A > B、If A >= B

VEEプログラム内で分岐するには


If A < B

一方の入力がもう一方よりも小さい場合に出力を分岐するオブジェクト。

使用法

If A < Bは、一方の入力がもう一方よりも小さいかどうかをテストし、テストに基づいて分岐します。

注記

If A < Bは、あらかじめ設定されたIf/Then/Elseオブジェクトです。

Aの値がBの値より小さい場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A < B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A == B、If A != B、If A > B、If A <= B、If A >= B

VEEプログラム内で分岐するには


If A != B

入力が等しくない場合に出力を分岐するオブジェクト。

使用法

If A != Bは、等しくないかどうかをテストし、テストに基づいて分岐します。

注記

If A != Bは、入力が異なるかどうかをテストするようにあらかじめ設定されたIf/Then/Elseオブジェクトです。

Aの値がBの値と異なる場合、Then出力にInt32スカラ1が伝達されます。そうでない場合、Else出力にInt32スカラ0が伝達されます。

場所

Flow [image] Conditional [image] If A != B

関連項目

Comparison、Conditional、If/Then/Else、If A ~= B、If A == B、If A < B、If A > B、If A <= B、If A >= B

VEEプログラム内で分岐するには


If/Then/Else

入力の値に基づいて実行フローを分岐するオブジェクト。

使用法

If/Then/Elseは、どのサブスレッド分岐を実行するかを決定するために使用します。オープン・ビューの式ボックスに、任意の有効な式を入力できます。

真の条件に対応する出力ピンだけがアクティブになります。コンテナ出力は式の値です。

If/Then/Elseは、If/Else If節の中の式を（上から下に）評価し、どれかが0でない値に評価されるまで続けます。この0でないコンテナがその式に対応する出力にコピーされ、その出力が伝達されます。伝達される出力は1つだけです。ゼロでない値に評価される式がない場合、最後に評価された式の0値がElse出力に伝達されます。

どれかの式の値が配列に評価された場合、配列の値がチェックされ、すべて0かすべて0でないかがチェックされます。0と0でない値が混在している場合、配列がtrueかfalseかを決定できないため、エラーが返されます。スカラを生成するには、expr == 0またはexpr!=0を使用します。比較は常にスカラを返すからです。

オープン・ビュー・パラメータ

編集フィールドに式を入力します。

オブジェクト・メニュー

Add Else/If - 前の条件が満たされなかったときにテストされる条件と、条件が真の場合にアクティブになる出力を追加します。新しい条件は、現在のすべての条件の下に追加されます。

Insert Else/If - 現在の条件のリストを表示したダイアログ・ボックスを開き、新しい条件（および関連する出力ピン）をどれかの条件の前に挿入できるようにします。

Delete Else/If - 条件を削除します。Delete Else/Ifを選択した後、表示されるダイアログ・ボックスから削除する条件を選択します。

Delete Else/Ifは、1つの条件だけが表示されている場合には使用できません。この機能が使用できるのは、2つ以上のElse/If条件が存在する場合に限ります。

注記

条件ステートメントの中では任意の有効な演算ステートメントが使用できます。Formulaオブジェクトの場合と同様、式で使用する入力を追加できます。

条件を満たしたときに特定の値を出力するには、条件ステートメントに値を乗算します。例えば、変数Aが10より小さい場合にAの値を出力するには、編集フィールドに次の式を使用します。

(A<10)*A

この条件が真の場合、Aの値がThenデータ出力ピンに出力されます。この方法が使用できるのは、真のステートメント（ThenまたはElse Ifデータ出力ピン）の場合だけです。また、この方法はAが0でない場合のみ使用できます。Aが0の場合、式の結果は偽になり、Elseデータ出力ピンに0が出力されます。Elseデータ出力ピンは条件が偽の場合は常に0を返します。

Flow [image] Conditionalの下のオブジェクトは、特定の条件をテストするようにあらかじめ設定されたIf/Then/Elseオブジェクトです。

TRUE|FALSE（1|0）の出力を得るには、Comparisonオブジェクトを使用します。これらは、Function & Object BrowserのType: Operators、Category: Comparisonの下にあります。

また、ComparisonオブジェクトとConditionalオブジェクトの違いにも注意してください。Comparisonsは0または1を出力する式です。ConditionalsはIf/Then/Elseであり、2つの出力のうち1つがアクティブになります。

場所

Flow [image] If/Then/Else

関連項目

Comparison、Conditional、Formula、Triadic Operator、Properties（オブジェクト）、オブジェクト・メニュー

VEEプログラム内で分岐するには


Import Library

UserFunction、コンパイル済み関数定義、またはリモート関数定義のライブラリを、実行中のVEEプログラムにロードするオブジェクト。

使用法

Import Libraryは、次のいずれかの種類の関数のライブラリを実行時にVEEプログラムにロードするために使用します。

UserFunction - Import Libraryは指定されたファイルからすべてのUserFunctionをロードします（UserFunctionを作成するには、UserObjectのオブジェクト・メニューでMake UserFunctionを選択します。ライブラリを作成するには、複数のUserFunctionを作成してファイルに保存します）。

Compiled Function - Import Libraryは、ダイナミック・リンク・ライブラリ（DLL）をVEEプロセスに接続し、Definition Fileの宣言を解釈します（コンパイル済み関数は、Cなどのプログラミング言語で作成され、VEEプロセスに動的にリンクされるプログラムです。詳細についてはVEE Advanced Techniquesを参照してください）。

Remote Function - Import Libraryはリモート・ホスト上でVEEプロセスを開始し、Remote FileをそのVEEプロセスにロードします（リモート関数は実際にはリモートVEEプロセスにロードされるUserFunctionですが、ローカル・ホストから呼び出すことができます）。

UserFunction、コンパイル済み関数、リモート関数のライブラリをロードしたら、Call Functionオブジェクトを使って関数を名前で実行する（呼び出す）ことができます。

オープン・ビュー・パラメータ

Library Type - ダイアログ・ボックスで、UserFunction、Compiled Function、Remote Functionのいずれかを選択できます。

Library Name - ロードするライブラリに論理名を割り当てます。

File Name - （UserFunctionまたはコンパイル済み関数のみ）インポートするライブラリが記録されているファイルを選択します。コンパイル済み関数の場合、これは.dllです。

Definition File - （コンパイル済み関数のみ）コンパイル済み関数の定義ファイルを選択します。これは、関数呼び出しのプロトタイプを記録したファイル（.hファイル）です。

Host Name - （リモート関数のみ）リモート関数が動作するリモート・ホストの名前を指定します。

Remote File Name - （リモート関数のみ）ライブラリのファイル名の完全なパス（/users/MyUserName/MyDir/MyFileなど）を入力します。

Remote Timeout - （リモート関数のみ）リモート関数のタイムアウト値を秒単位で設定します。

Geometry - （リモート関数のみ）リモートVEEのビューを表示するウィンドウの初期ジオメトリを、標準のジオメトリ形式で入力します。例えば、800x500+0-0（幅 x 高さ+/-xオフセット+/-yオフセット）のようになります。

Remote Debug - （リモート関数のみ）このチェック・ボックスが選択されている場合、ライブラリ中のすべてのUserFunctionがデバッグ・モードで動作します（ブレークポイントの設定やライン・プローブの実行などのデバッグ機能をこれらの関数に対して使用できます）。プログラムは各リモートUserFunctionを実行する直前に休止します。この設定は、UserFunctionにパネル・ビューがあってもなくても動作します。

オブジェクト・メニュー

Load Lib - 指定されたライブラリをただちにVEEにロードします。同じ名前のライブラリが以前にロードされている場合、そのライブラリは削除され、新しいライブラリで上書きされます。

Delete Lib - 指定されたライブラリをただちにVEEから削除します（これはDelete Libraryオブジェクトと同じ機能を実行します）。

注記

Import Libraryオブジェクトは通常、UserFunction、コンパイル済み関数、リモート関数のセットからライブラリを作成するという高度な操作のために用いられます。Import Libraryを使うと、そのようなライブラリを実行時に動的にロードできます。UserFunctionの場合、ライブラリを作成してImport Libraryでロードすることにより、スペースを大幅に節約できます。UserFunctionのコピーを個々のプログラムに保存しなくてすむからです。また、標準のUserFunctionのライブラリを作成した場合、これらの関数のソース・コードを1つの場所に保存できます。

Import Libraryで実行時にロードしたUserFunctionは、プログラム内にローカルに作成したUserFunctionと全く同様に動作します。すべてのUserFunctionは、Call FunctionまたはFormulaオブジェクトによって実行できます。ただし、プログラム内で編集できるのはローカルに作成したUserFunctionだけです。インポートされたUserFunctionは編集できませんが、デバッグ目的のために[Edit UserFunction]を使って表示することはできます。外部UserFunctionを編集したい場合、UserFunctionを含むライブラリ・ファイルを開き、[Edit]メニューの[Edit UserFunction]項目を使用する必要があります。UserFunctionを編集したら、ファイルを再びディスクに保存します。

埋込みI/O構成を持つプログラム・ファイルからImport Libraryを実行した場合、I/O構成はインポートされません。埋込みI/O構成とマージを参照してください。

場所

Device [image] Import Library

関連項目

Call、Delete Library、Edit UserFunction、UserFunction、UserObject、Properties（オブジェクト）、コンパイル済み関数の使用法、C関数の作成、ダイナミック・リンク・ライブラリの作成


Indicator

このメニュー項目は、Scalar数値入力値に基づくさまざまなアナログ型グラフィカル表示を作成するために使用します。

使用法

Indicatorメニューからは、Scalar数値入力値をグラフィカル表示するための5種類のVEEオブジェクトを選択できます。5種類のオブジェクトは次のとおりです。

Meter - Scalar数値をアナログ型のメータ・スケールに表示します。

Thermometer - Scalar数値をグラフィカルな温度計の中のカラー・バーで表示します。

Fill Bar - Scalar数値をカラー・バーでグラフィカルに表示します。

Tank - Scalar数値をグラフィカルなタンクの中のカラー・バーでグラフィカルに表示します。

Color Alarm - Scalar入力値に基づいて異なる色とテキスト文字列を表示するグラフィカルなアラーム・インジケータ。

場所

Display [image] Indicator

関連項目

Color Alarm、Fill Bar、Meter、Tank、Thermometer

Color Alarmを表示するには

データをアナログ表示するには


Instrument Event

GPIBまたはVXIデバイスから発生したイベントを捕捉するオブジェクト。

使用法

Instrument Eventオブジェクトは、さまざまなデバイス・イベントを検出するように設定できます。設定に応じて、このオブジェクトはイベントを待って他の並列スレッドに実行を譲ることも、単にデバイスの状態を示す論理値（0または1）またはその他の値を返すこともできます。

Instrument Eventがイベントを待つように設定されている場合、イベントが発生するとオブジェクトは実行されます。このオブジェクトから始まるスレッドは他の並列スレッドよりも優先され、最後まで実行されます。Instrument Eventオブジェクトが単にデバイス状態を示す値を返すように設定されている場合、これを含むスレッドは通常の優先度を持ち、他のスレッドと並列に実行されます。

オープン・ビュー・パラメータ

Device - Deviceフィールドには現在選択されているデバイスが表示されます。このフィールドをクリックすると、現在設定されているGPIBおよびVXIデバイスのリストが表示されます。

Event - 特定のイベントを選択できます。このフィールドをクリックすると、次の選択肢が表示されます。

Spoll - GPIBデバイスおよびメッセージ・ベースのVXIデバイスのステータス・バイトを返します。GPIBデバイスを選択した場合、選択可能なのはSpollだけです。返されるステータス・バイトはMask値とともに用いられます。

SRQ - VXIの場合、メッセージ・ベースのデバイスがSRQを発生するのは、デバイスがrequest-trueイベントであるVME割り込みまたはシグナル・レジスタ書き込みを送信した場合です。非同期イベントが発生した場合、デバイスのステータス・バイトが返され、デバイスはrequest-falseイベントを発生します。返されるステータス・バイトはMask値とともに用いられます。

Signal Interrupt - この非同期イベントは、メッセージ・ベースまたはレジスタ・ベースのVXIデバイスから発生します。このイベントは、デバイスがデバイス定義イベントまたは未定義イベントであるVME割り込みまたは信号レジスタ書き込みを送信した場合に発生します。返される32ビット値は、シグナル書き込みレジスタに格納された値、またはデバイスが割り込み確認応答（IACK）を実行したときにVXIバスに送出された値です。この値は、Mask値とともに用いられます。

Action - 指定されたイベントを指定されたビット・マスクとの組み合わせで検出したときのDevice Eventオブジェクトの実行動作を決定します。

No Wait - ただちに実行し、設定されたイベントの現在の状態を32ビット整数でstatusピンに出力します。この値は、論理値FALSE（0）またはデバイス依存のビット・パターンです。イベントの選択がSpollの場合、返された整数の下位バイトがデバイスのステータス・バイトです。2つの非同期VXIイベントの場合、イベントが発生していない場合はFALSE（0）が返されます。イベントが発生している場合は、デバイス依存のビット・パターンが返されます。

All Clear - イベントの発生を待ち、返された値とMask値との論理AND演算を実行します。セットされているビットがない場合、元のマスクされない値をstatus出力ピンに出力して実行します。

Any Set - イベントの発生を待ち、返された値とMask値との論理AND演算を実行します。結果のビット・パターンにセットされているビットがある場合、元のマスクされない値をstatus出力ピンに出力して実行します。

Mask - ビット・マスクとして使用する値を入力できます（デフォルト=0）。Mask値は、指定されたイベントが発生したときにデバイスから返された値との論理AND演算に使用されます。

注記

Instrument Eventオブジェクトの実行動作は、Actionパラメータの選択に応じて、非同期または同期のいずれかです。No Waitは同期的なポーリング動作を指定します。オブジェクトはただちに実行され、接続されたスレッドは現在実行中の他のすべてのスレッドと同じ優先度を持ちます。Any SetまたはAll Clearを選択すると、Device Eventオブジェクトは、イベントが発生し、かつ Mask値とデバイスから返された値との論理ANDが「セットされているビットがある」または「セットされているビットがない」という条件を満たすまで待ちます。これら2つの条件がともに満たされた場合、オブジェクトは実行されます。接続されたスレッドは高い優先度を持ち、並列に実行されている他のスレッドをブロックして最後まで実行されます。

厳密に言うと、Spollイベントは、VXIのSRQやSignal Interruptと異なり、真の非同期イベントではありません。Mask値とAny SetまたはAll Clear動作を指定することで、ステータス・バイトをMask値を使って連続的に評価し、目的のビットがデバイスによって変更されたかどうかをチェックできます。オブジェクトは変更が起こるまで待ち、その間並列スレッドは実行を継続できます。Spollイベントの場合、ActionでNo Waitを選択するのは、ActionでAll Clearを選択し、マスク値に0を指定することと同じです。Device Eventオブジェクトはただちに実行されます。

真の非同期イベントであるSRQおよびSignal Interruptでは、デバイスはイベントが発生するまで待ち、並列スレッドは実行を継続できます。割り込みが発生すると、結果のステータス・バイト、シグナル書き込みレジスタ内容、またはIACK値とマスク値との論理AND演算が行われます。オブジェクトが実行されるのは、結果のビット・パターンがAny SetまたはAll Clear条件を満たした場合だけです。All Clear動作が指定され、マスク値が0の場合、Device Eventオブジェクトは割り込みが発生すると常に動作します。

コントロール・ピンを入力として使用することにより、デバイスのタイムアウト時間をプログラムで変更できます。

場所

I/0 [image] Advanced I/O [image] Instrument Event

関連項目

Interface Event、Interface Operations、Properties（オブジェクト）

GPIB計測器をポーリングするには


Instrument Manager

[Instrument Manager]ツールウィンドウを表示します。

使用法

[I/O] [image] [Instrument Manager]を選択して[Instrument Manager]ツール・ウィンドウを表示します。このツール・ウィンドウは、インタフェースと計測器の追加、削除、編集、設定に使用します。また、Direct I/O、IVI-COMドライバ、NIDAQドライバ、VXIplug&playドライバ、パネル・ドライバ、コンポーネント・ドライバの各タイプの計測器I/Oオブジェクトも作成できます。

ウィンドウ情報

[Instrument Manager]ツール・ウィンドウには、[Instrument]枠とツールバーがあります。

ツールバー

[Instrument Manager]ツールバーでは、計測器の検索と追加、サンプル・プログラムのロード、I/O設定ファイルの保存とプリント、保存されているI/O設定の復元、ヘルプ・トピックのオープン、I/Oオブジェクトの作成を実行できます。

 Find Instruments - このボタンは、選択したインタフェースで使用可能なすべての計測器の自動検索を開始します。ルート・ノードが選択されている場合、すべてのローカル・インタフェースで計測器が検索されます。[Auto Discovery Settings]ダイアログ（[Settings… ]ボタンを押すことにより表示）で、この検索の詳細を制御できます。

バージョン8.0以降、VEEは、I/Oデバイスの宣言／使用の際に、古い一貫性のないI/Oデバイス（SICLとVISAの混在）から、より一貫性のある方法（VISA）への移行を開始します。従来の方法との互換性は保たれますが、新しいスタイルのデバイスの使用を推奨します。

ユーザの古いプログラムI/Oは、VEE 8.0より前と正確に同じ動作をします。古いSICLスタイルのデバイスも動作しますが、[File] => [Default Preferences]を選択して、[I/O]タブで[Enable Pro 8.0 Legacy I/O]にチェックを入れないと検出されません。

注記: GPIB/LANインタフェースを使用している場合、ルート・ノードからLANデバイスを検出する際のタイムアウト時間が長いため、GPIBインタフェースから検出操作を起動することをお勧めします。この方法で起動した検出操作は、すばやく適切に実行されます。

L oad Sample: このボタンは、新しいAgilent VEEを起動し、VEEサンプル・プログラムを開きます。VEEは、強調表示されている計測器に基づいて自動的に適切なサンプル・プログラムを選択します。

Add Instruments: このボタンを使うと、リストに計測器を追加できます。これは[Add Interface/Device]ダイアログ・ボックスを開き、[Instrument Properties]ダイアログ・ボックスを開きます。これらのダイアログ・ボックスのフィールドに入力することにより、計測器を設定できます。

Instrument Properties...: このコマンドでは、選択したインタフェース設定を編集できます。[Properties]をクリックすると、[Interface Properties]ダイアログ・ボックスが開きます。編集したいインタフェースをダブルクリックしてプロパティ・ダイアログ・ボックスを開くこともできます。

Save I/O Configuration: このボタンをクリックすると、計測器設定をvee.io設定 ファイルに保存できます。 計測器設定がVEEプログラムに埋め込まれている場合は、このボタンは淡色表示になります。

Print I/O Configuration: このボタンは[Print]ダイアログ・ボックスを表示します。

Restore to Saved I/O Configuration: このボタンは、Instrument Managerでこれまでに実行されたすべての操作を破棄し、保存されているvee.io設定ファイルから測定器設定をロードします。

Help: このボタンは、Instrument Managerのヘルプ・トピックを開きます。

Create I/O Objects: これらのボタンは、選択された計測器に対するI/Oオブジェクトを作成します。計測器が強調表示されている状態では、[Create Direct I/O Object]は常にアクティブです。これは、この計測器に対するDirect I/Oオブジェクトを選択して配置できることを示します。他の計測器設定に対しては、インストールされているドライバに応じて、[Plug&play Driver]、[NI-DAQ Driver]、[IVI-COM Driver]、[Panel Driver]、[Component Driver]の各ボタンがアクティブになっている場合があります。

[Instrument]枠

[Instrument]枠には、計測器とインタフェースのリストがツリー・ビューで表示されます。ツリー・ビューには、My Configuration（ルート）、インタフェース、計測器の3種類のノードがあります。ノードをクリックすると選択できます。選択されたノードによって、ツールバーで実行される操作が決まります。リスト中の計測器をダブルクリックすると、選択した計測器に対するDirect I/Oオブジェクトがワークスペースに作成されます。

コンテキスト・メニュー

測定器リスト中のノードを右クリックすると、コンテキスト・メニューが表示されます。コンテキスト・メニューの内容は、選択されているノードのタイプによって異なります。

ルート・ノードの場合、コンテキスト・メニューには次の3つのコマンドがあります。

    • Find Instruments

    • Auto Discovery Settings: このコマンドは、[Auto Discovery Settings]ダイアログを表示します。このダイアログは、計測器検出の動作を制御します。

    • [Detect only]が選択されている場合、[Find Instruments]ボタンは単にデバイスが各バス・アドレスに存在するかどうかだけを検出します。

    • [Detect, identify, and configure...]が選択されている場合、[Find Instruments]ボタンは、検出された各計測器に対して識別とドライバ設定も実行します（これは計測器のコンテキスト・メニューの[Configure Drivers]コマンドが実行するのと同じ設定です）。

    • [Ask before sending...]がチェックされている場合、各計測器を識別するために*IDN? が送信される前に確認ダイアログが表示されます。チェックされていない場合、オペレータの確認なしに*IDN? がすべての計測器に送信されます。システムにIEEE-488.2非対応の古い計測器が含まれる場合は、確認ダイアログをオンにしておくとよいでしょう。

    • Add Instruments...

インタフェース・ノードの場合、コンテキスト・メニューには次の3つのコマンドがあります。

    • Find Instruments

    • Properties...: このコマンドは、VXI、およびGPIBレガシ・インタフェースに対するインタフェース設定ダイアログを表示します。

    • Add Instruments...

計測器ノードの場合、コンテキスト・メニューには次の3つのグループに分かれた複数のコマンドがあります。

    • Create IO Objectグループ: このグループのコマンドをクリックすると、計測器I/Oオブジェクトを作業領域に追加できます。選択された計測器に対して使用できないコマンドは表示されません。

リストからメイン・ワークスペースに計測器をドラッグすることによっても計測器I/Oオブジェクトを追加できます。追加できる計測器I/Oオブジェクトが1つしかない場合は、計測器I/Oオブジェクトが追加されます。複数ある場合は、計測器O/Oオブジェクトのリストが表示され、追加するオブジェクトを選択できます。

プログラムがパネル・ビューで表示されている場合、パネル・ビューにI/Oオブジェクトが追加されるのを防ぐため、このグループは表示されません。

    • Configurationグループ: このグループには2つのコマンドがあります。

      • Add Instrument...

      •  Configure Drivers - このコマンドは、選択されている計測器を識別し、その計測器に対して使用可能なドライバを設定します識別可能なのは、IEEE-488.2計測器（およびほとんどのVXI計測器）だけです。RS-232などの単純なインタフェースに接続されている計測器は、自動的に検出／識別できません。

      • Configure Driversは、Instrument Listで選択されている計測器に対して動作します。これは計測器が選択されている場合のみ使用できます。ルート・ノードまたはインタフェースが選択されている場合、このボタンは淡色表示（使用不可）になります。

      • 計測器が選択されているときにこのボタンが淡色表示されている場合は、システムで計測器I/Oが使用できません。この場合、計測器インタフェースをサポートする適切なI/Oライブラリ（VISA、SICLなど）をインストールする必要があります。

      • Load Sample

      • Propertyグループ: このグループには2つのコマンドがありす。

        • Delete Instruments: このコマンドは、現在選択されている計測器を計測器リストから削除します。インタフェースに対応するすべての計測器を削除すると、インタフェース・ノードは自動的に削除されます。間違えて実行した場合、Restore to Saved I/O Configurationツールバー・ボタンをクリックすれば復元できます。

        • Instrument Properties...: このコマンドを使うと、選択した計測器設定を編集できます。[Properties]をクリックすると、[Instrument Properties]ダイアログ・ボックスが開きます。

自動検出の詳細

[Find Instruments]は、Instrument Listで選択されているノードに対して動作します。ルート・ノード（通常は"My Configuration"）が選択されている場合、すべてのローカル・インタフェースが検索されます。個々のインタフェースが選択されている場合、そのインタフェースだけが検索されます。GPIOおよびRS-232インタフェースでは計測器検索は実行できません。自動計測器検出のためのサポートされる標準プロトコルが存在しないからです。

[Find Instruments]操作をルート・ノードから実行した場合、LANゲートウェイ上のインタフェースは検索されませんが、ゲートウェイ上のインタフェース・ノードから実行した場合は、リモート計測器が検索されます。[Find Instruments]操作はLANゲートウェイ上の新しいインタフェースは検索しません。ゲートウェイ上のインタフェースは最初は手動で入力する必要があります。

検索を実行すると、[Instrument List]領域に次の結果が表示されます。

計測器設定中にすでに存在し、インタフェース上に物理的に存在する計測器は、コンピュータ・アイコンで示されます。

計測器設定中に存在しないが、インタフェース上に物理的に存在する計測器は、リストに追加され、疑問符で示されます。

計測器設定中にすでに存在するが、インタフェース上に物理的に存在しない計測器は、マークが付きません。

自動検出プロセスは、現在の設定から計測器を削除することはありません。新しいエントリを追加することと、既存のエントリが動作中の計測器に対応するかどうかを確認することはできます。しかし、[Find Instruments]ボタンを押したときに対応する計測器が動作中でなかったためにエントリが削除されることはありません。この安全な動作は、ほとんどの場合にユーザの要求に適合します。あえて欠点を挙げるとすれば、現在接続されている計測器に正確に一致するI/O設定をボタン1つで作成できないことだけです。ある時点でローカルに接続されている計測器だけを含む設定を作成したい場合は、まずすべての計測器エントリを削除してから、[Find Instruments]を押します。

I/O設定の保存の詳細

計測器設定は、別ファイルに保存することも、VEEプログラムに埋め込むこともできます。別ファイルを使用する場合、設定はvee.ioに保存されます。 I/Oオブジェクトを持つVEEプログラムは、プログラムで参照される計測器を検出するために、計測器I/O設定ファイルを必要とします。プログラムが設定ファイルと一致しない場合（例えば、プログラム・ファイルを別のマシンにコピーしたときに、対応するvee.ioファイルをいっしょにコピーしなかった場合）、対応する計測器が設定されていないためにオブジェクトが動作できない可能性があります。

もう1つの方法として、計測器設定情報をVEEプログラム・ファイルに埋め込むこともできます。埋込み設定を作成するには、[File] [image] [Save As…]（新規プログラム・ファイルの場合は[Save]）を選択し、[Options]領域の[Save I/O configuration with program]ボックスをチェックします。その後、[OK]をクリックしてプログラムを保存します。I/O設定がプログラムとともに保存されると、Instrument Managerの[Save]ボタンが無効になります。

Instrument Managerは、I/O設定が別のvee.ioファイルにあるかプログラムに埋め込まれているかを表示します。

注記

I/Oオブジェクト（Plug&play DriverオブジェクトとIVI-COM Driverオブジェクトを除く）は、実際の計測器がコンピュータに接続されているかどうかに関わりなく動作します。動作中の計測器を制御したい場合は、0でない正しいアドレスを設定し、Live Modeをオンにする必要があります。アドレスとLive Mode設定は、[Instrument Properties]ツール・ウィンドウから制御されます。アドレスが0であるか、Live Modeがオフの場合、計測器オブジェクトは動作しますが、物理計測器との通信は行いません。Plug&play DriverオブジェクトとIVI-COM Driverオブジェクトは、Live Mode設定がオフであっても無視して、実際の計測器にアクセスしようとします。

VEEが物理計測器と通信するためには、計測器（およびそのインタフェース）が正しく設定されている必要があります。詳細については、I/Oライブラリのインストール手順を参照してください。

各計測器独自のヘルプを見るには、Panel DriverまたはComponent Driverオブジェクトのオブジェクト・メニューから[Help]を選択します。

パネル・ドライバは、対話的に使用することも、プログラムから使用することもできます。個々のコンポーネントの値を設定するには、コンポーネントの値を含むフィールドをクリックし、表示されるダイアログ・ボックスに記入します。測定を実行して結果を表示するには、Panel Driverオープン・ビュー内部の対応する測定数値またはXY表示をクリックします。

1台の計測器を複数のオブジェクトで制御する場合もあります。また、同じドライバの複数のコピーがそれぞれ異なる物理計測器を制御する場合もあります。どちらの場合も、どのオブジェクトがどの計測器を制御するかは設定された名前によって決まります。

場所

I/O [image] Instrument Manager

関連項目

Advanced Instrument Properties、Advanced I/O、Agilent IO Monitor、Component Driver、Direct I/O、Instrument Properties、Panel Driver、To/From VXIplug&play、To/From IVI-COM、To/From IVI-COM - Advanced

計測器設定を削除するには、計測器設定を追加するには , 計測器設定を編集するには

I/O設定の手法、I/O制御の手法、論理装置番号とI/Oアドレス指定


Instrument Properties

計測器の設定に用いられるダイアログ・ボックス。

使用法

[Instrument Properties]ダイアログ・ボックスは、新しい計測器設定を追加したり、既存の設定を編集したりするために使用します。[Instrument Properties]は、GPIB、Serial、GPIO、VXI、TCPIP、NIDAQ、USB計測器とそれに対応するDirect I/O、Plug&play Driver、IVI-COM、、Panel Driverなどのオブジェクトを設定するために使用します。

ダイアログ情報

[Instrument Properties]ダイアログ・ボックスには、次のフィールドとボタンがあります。

注記
フィールド間を移動するには、Tabキーを使うか、目的のフィールドをマウスでクリックします。Enter（またはReturn）キーは、ダイアログ・ボックスの操作がすべて終了してから押すようにしてください。Enter（またはReturn）キーを押すと、ダイアログ・ボックスが閉じます。これは[OK]を押すのと同じです。

Name - この計測器設定を識別する固有の名前を入力します。なお、それぞれ固有の名前を持つ複数の設定で1つの計測器を制御することもできますが、この方法は推奨されません。2つの異なる計測器に対して同じ名前を使用することはできません。

Interface - 計測器との通信に使用されるハードウェア・インタフェースの種類を指定します（デフォルトはGPIBです）。GPIBをクリックすると、使用可能なインタフェースの種類のリストが表示されます（GPIB、TCPIPなど）。GPIBインタフェースを使用する場合、このフィールドで GPIB を選択します。

Board Number - このインタフェースの種類のボードには0から始まる番号が付いています。デフォルトは0です。

VISA Alias - VISAアドレス文字列に対するエイリアス。VISAアドレス文字列は長いので扱いが不便です。エイリアスを使えば、計測器の識別がより簡単になります。

GPIB Address - 計測器のGPIBアドレス。

ASRL Address - 計測器のASRLアドレス。

USB Address - 計測器のUSBアドレス。

TCPIP Address - 計測器のTCP/IPアドレス。TCP/IPアドレス文字列の形式は、TCPIP[board]::host address[::LAN device name]::INSTRです。ここで、かぎ括弧の中の項目はオプションです。例えば、TCPIP0::jetscrm3::GPIB0,9::INSTRです。0はボードです。jetscrm3はホスト・アドレスです（これは129.82.135.12のようなIPアドレスでもかまいません）。GPIB0はGPIB/LANコンバータ・ボックスのポータルです。9は計測器のアドレスです。INSTRはインタフェースです。

Drive Type - NI計測器のドライバ・タイプ。ドロップダウン・リストから1つを選択します。VEEは6種類のNIドライバをサポートします。NI-DAQmx、NI-DAQ、NI-DMM、NI-FGEN、NI-SCOPE、NI-SWITCHです。

Address (eg 714) - 計測器のI/Oアドレスを指定します。デフォルトは0です（0以外のアドレスを入力した場合、Live ModeがONに変わります）。アドレス設定の詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [計測器の設定]を参照してください。

Gateway - リモート・コンピュータに接続された計測器をVEEプロセスからアクセスする場合、LANゲートウェイのホスト名を指定します。デフォルト値はThis hostです。高度なI/O制御の詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [Advanced I/O Topics]を参照してください。

Advanced...- [Advanced...]ボタンをクリックすると、[Advanced Instrument Properties]ダイアログ・ボックスが開きます。[Advanced Instrument Properties]ダイアログ・ボックスでは、デバイス・ドライバと、上記のインタフェースの種類のそれぞれに対する通信パラメータを設定できます。Advanced Instrument Propertiesに関する別のHelp項目を参照してください。

OK - 設定が終わったら、[OK]をクリックして変更を確認します。

場所

I/O [image] Instrument Manager…、その後Instrument List中の計測器の行をダブルクリックして選択。

関連項目

Advanced Instrument Properties、Advanced I/O、Agilent IO Monitor、Component Driver、Direct I/O、Instrument Manager、Panel Driver、計測器設定を追加するには


Int16

定数の2バイト整数スカラまたは1次元配列を出力するオブジェクト。

使用法

Int16は、整数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Int16をパネル・ビュー上のプロンプトとして使用するには、Int16オブジェクトの名前をEnter the number of seconds to delay:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

12*1024のような式をInt16に入力すると、結果が計算されます。

プロパティ

Generalタブ:

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

ArraySize:- DataShape 1D Arrayを選択した場合、ArraySizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

Initializationグループ:

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Int16が配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Int16

関連項目

Alloc Int16、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt8、UInt16、Int32、Int64、PComplex、Real32、Real64、Text、Boolean、 Toggle Control

データ定数を使用するには


Int32

定数の4バイト整数スカラまたは1次元配列を出力するオブジェクト。

使用法

Int32は、整数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Int32をパネル・ビュー上のプロンプトとして使用するには、Int32オブジェクトの名前をEnter the number of seconds to delay:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

12*1024のような式をInt32に入力すると、結果が計算されます。

プロパティ

DataShape:- このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

ArraySize:- DataShape 1D Arrayを選択した場合、 ArraySizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D A rrayが選択された場合だけです。

Stepping Category:-（DataShapeがArray 1Dの場合は無効）

ShowArrayIndices - このプロパティが Trueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトは Trueです。

  • EnableStepping- このプロパティが Trueの場合、入力フィールドの右端にステッピング・コントロールが表示され、値をスクロールできるようになります。デフォルトは Falseです。

  • DetentSize- EnableStepping プロパティがTrue の場合、ステッピング・コントロールを使って値をスクロールする際の値の間のサイズを設定します。デフォルトは1です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティが Trueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、 AutoExecuteは無視されます。デフォルトは Falseです。

InitialValue- 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティが Trueの場合、InitialValueはPreRun時に設定されます。デフォルトは Falseです。

InitializeAtActivate - このプロパティが Trueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトは Falseです。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Int32が配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Int32

関連項目

Alloc Int32、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt8、UInt16、Int16、Int64、PComplex、Real32、Real64、Text、Boolean、Toggle Control

データ定数を使用するには


Int32 Input

整数入力を受け入れるポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

Int32 Inputは、整数を入力するためのプロンプトをユーザに表示し、数値を受け入れ、ユーザ定義のテストによって数値の有効性をチェックするために使用します。

ポップアップ・ダイアログ・ボックスでOKボタンが押されると、ユーザが入力した整数がValue出力ピンに出力されます。キャンセル・ボタンが押されると、Cancel出力ピンに1が出力されます。

オープン・ビュー

  • Prompt/Label - ユーザにテキスト・フィールドへの入力を求めるプロンプトの文字列。このパラメータはデータ入力として追加できます。デフォルトはEnter Integer Value:です。

  • Default Value - ユーザの入力の前にダイアログの入力フィールドに存在するテキスト。ユーザが何も入力せずにOKを押した場合、このテキストが出力されます。このパラメータはデータ入力として追加できます。デフォルトは5です。

  • Value Constraint - 入力テキストの有効性をテストする式。任意の式またはUserFunctionの呼び出しが使用できます。このパラメータはデータ入力として追加できます。デフォルトは0<=value AND value<=10です。これは、ユーザ入力が0～10の範囲内の値であることをチェックします。任意の値を受け入れるには、式1を使用します。

  • Error Message - ユーザ入力がValue Constraintを満たさない場合にメッセージ・ボックスに出力されるテキスト。このパラメータはデータ入力として追加できます。デフォルトはYou must enter a integer between 0 and 10.です。

プロパティ

  • PopupTimeoutEnabled - このプロパティがTrueの場合、Timeout出力ピンがオブジェクトに追加されます。デフォルトはFalseです。

  • PopUpDuration - ポップアップ・ダイアログ・ボックスが表示されている時間の長さを設定します。この時間が過ぎると、ダイアログ・ボックスはタイムアウトし、Timeout出力ピンに値1が出力されます。Timeoutピンが実行された場合、他のすべての出力ピンはデータを持ちません。このフィールドが使用できるのは、Timeout Enabledチェックボックスが選択されている場合だけです。デフォルトは60秒です。

  • PopupOKLabel - Trueの場合、ボタンのラベルをOKにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupCancelLabel - Trueの場合、ボタンのラベルをCancelにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupPasswordMasking - このプロパティがTrueの場合、入力テキストはアスタリスク（*）で表示されます。この機能は、パスワードなどの秘密データをオペレータが入力する場合に便利です。Value出力ピンに出力される文字列はマスクされません。デフォルトはFalseです。

注記

ポップアップ・ダイアログ・ボックスのデフォルトの位置は、作業領域のほぼ中央です。ダイアログ・ボックスを移動すると、次のときには新しい場所にポップアップします。

エラー・メッセージ・ダイアログ・ボックスのタイトル・テキストは、Int32 Inputオブジェクトのタイトルと同じです。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたら、値を入力した後EnterまたはEscキーを使用します。入力フィールドとボタンの間を移動するにはTabキーを、ボタンを選択するにはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスとエラー・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

場所

Data [image] Dialog Box [image] Int32 Input

関連項目

File Name Selection、List Box、Message Box、Real64 Input、Text Input、UserObject、オブジェクト・メニュー

データ入力ダイアログ・ボックスを使用するには


Int64

定数の8バイト整数スカラまたは1次元配列を出力するオブジェクト。

使用法

Int64は、整数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Int64をパネル・ビュー上のプロンプトとして使用するには、Int64オブジェクトの名前をEnter the number of seconds to delay:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

1024*1024のような式をInt64に入力すると、結果が計算されます。

プロパティ

 DataShape:- このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

 ArraySize:- DataShape 1D Arrayを選択した場合、 ArraySizeは配列の長さを設定します。

 ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D A rrayが選択された場合だけです。

 Stepping Category:-DataShapeがArray 1Dの場合は無効です。

 ShowArrayIndices - このプロパティが Trueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトは Trueです。

  • EnableStepping- このプロパティが Trueの場合、入力フィールドの右端にステッピング・コントロールが表示され、値をスクロールできるようになります。デフォルトは Falseです。

  • DetentSize- EnableStepping プロパティがTrue の場合、ステッピング・コントロールを使って値をスクロールする際の値の間のサイズを設定します。デフォルトは1です。

 Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

 AutoExecute - このプロパティが Trueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、 AutoExecuteは無視されます。デフォルトは Falseです。

 InitialValue - 設定する値を指定します。デフォルト値は0です。

 InitializeAtPreRun - このプロパティが Trueの場合、InitialValueはPreRun時に設定されます。デフォルトは Falseです。

 InitializeAtActivate - このプロパティが Trueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトは Falseです。

NumberFormat:

 Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

 Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Int64が配列として構成されている場合でも、InitialValue フィールドは常にスカラです。

Int64と実行モードについての詳細

Int64は、最も精度の大きい整数表現です。AgilentVEEには、Int64の最大値と最小値を表す2つの組み込み数値定数があります。MaxInt64とMinInt64です。定数は、実行モードによって異なる型に解釈されます。次の表に例を示します。

定数 | 実行モード VEE 8 | 実行モードVEE 7 | 実行モードVEE 6 | 実行モード VEE 4&5
1 | Int32 | Int32 | Int32 | Real
1G | Real64 | Real64 | Real | Real
2147483648（Int32の最大値+1） | Int64 | Real64 | Real | Real
2147483647（Int32の最大値） | Int32 | Real64 | Real | Real
9223372036854775808（Int64の最大値+1） | Real64 | Real64 | Real | Real
9223372036854775807（Int64の最大値） | Int64 | Real64 | Real | Real
-9223372036854775808 | Real64* | Real64 | Real | Real
MinInt64** | Int64 | Int64 | Int64 | Int64

* -9223372036854775808をInt64として扱わせたい場合は、組み込み定数MinInt64を使用します。

** MinInt64とMaxInt64は組み込み数値定数です。これらは常にInt64定数として振る舞います。組み込み定数MinInt64とMaxInt64は他の実行モードでも使用できます。

場所

Data [image] Constant [image] Int64

関連項目

Alloc Int64、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt8、UInt16、Int16、Int32、PComplex、Real32、Real64、Text、Boolean、Toggle Control

データ定数を使用するには


Int32 Knob

ノブの整数値を出力するオブジェクト。

使用法

Int32 Knobは、Int32値を入力するために使用します。Int32 Knobはパネル・ビューで特に便利です。

オープン・ビュー・パラメータ

オープン・ビューには、ノブの現在値、最小値、最大値、ノブのコントロールが表示されます。

プロパティ

Orientation - Knobの表示方法を設定します。デフォルトはHorizontalです。

ShowDigitalDisplay - このプロパティがTrueの場合、オブジェクトのオープン・ビューの下部の編集フィールドにノブの現在値が表示されます。この値を変更すると、ノブの位置が変化します。デフォルトはTrueです。

ShowTic - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

LabelSpacing:- どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEveryOtherTicです。

DetentSize:- Knobで入力できる値の間隔を設定します。これ以外の値が入力されると、最も近い値に丸められます。実数のDetentsはInt32に切り捨てられます。デフォルトは1です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

Number Format - Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializationは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editing、MaxValue、MinValue、Detentsを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力はInt32 Scalar値を必要とします。

Reset入力を使うと、プログラムで値を0に設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、現在値、最小値、最大値をオープン・ビューで変更できるかどうかをプログラムで制御できます。

MaxValueおよびMinValue入力を使うと、最小値および最大値フィールドをプログラムで設定できます。これらの入力は実数スカラ値を必要とします。値はInt32に変換されます。

Detents入力を使うと、デテント値をプログラムで設定できます。

場所

Data [image] Continuous [image] Int32 Knob

関連項目

Complex、Selection Control、Int32、Int32 Slider、PComplex、Real64、Real64 Knob、Text、Toggle Control、オブジェクト・メニュー

データ・スライダおよびノブを使用するには


Int32 Slider

スライダの整数値を出力するオブジェクト。

使用法

Int32 Sliderは、Int32値を入力するために使用します。Int32 Sliderはパネル・ビューで特に便利です。

オープン・ビュー・パラメータ

オープン・ビューには、スライダ値、最小値、最大値、スライダ・コントロールが表示されます。

プロパティ

Orientation - Sliderの表示方法を設定します。デフォルトはVerticalです。

ShowDigitalDisplay - このプロパティがTrueの場合、オブジェクトのオープン・ビューの上部の編集フィールドにスライダの現在値が表示されます。この値を変更すると、スライダ・コントロールの位置が変化します。デフォルトはTrueです。

ShowTics - このプロパティがTrueの場合、スライダの最小値と最大値の間に値の目盛とラベルが表示されます。デフォルトはTrueです。VEEリビジョン4.0より前のプログラムの場合、デフォルトはFalseです。

LabelSpacing:- どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

Detent Size:- Sliderで入力できる値の間隔を設定します。これ以外の値が入力されると、最も近い値に丸められます。実数のDetentsはInt32に切り捨てられます。デフォルトは1です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat - Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editing、MaxValue、MinValue、Detentsを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力はInt32 Scalar値を必要とします。

Reset入力を使うと、プログラムで値を0に設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、現在値、最小値、最大値をオープン・ビューで変更できるかどうかをプログラムで制御できます。

MaxValueおよびMinValue入力を使うと、最小値および最大値フィールドをプログラムで設定できます。これらの入力は実数スカラ値を必要とします。値はInt32に変換されます。

Detents入力を使うと、デテント値をプログラムで設定できます。

場所

Data [image] Continuous [image] Int32 Slider

関連項目

Complex、Selection Control、Int32、Int32 Knob、PComplex、Real64、Real64 Knob、Real64 Slider、Text、Toggle Control、オブジェクト・メニュー

データ・スライダおよびノブを使用するには


Interface Event

VXI、GPIB、シリアルの非同期インタフェース・イベントを捕捉するオブジェクト。

使用法

Interface Eventオブジェクトは、さまざまなインタフェース・イベントを検出するように設定できます。設定に応じて、このオブジェクトはイベントを待って他の並列スレッドに実行を譲ることも、単にインタフェースの状態を示す論理値（0または1）またはその他の値を返すこともできます。

Interface Eventがイベントを待つように設定されている場合、イベントが発生するとオブジェクトは実行されます。VEE 3実行モードの場合のみ、このオブジェクトから始まるスレッドは他の並列スレッドよりも優先され、最後まで実行されます。Interface Eventオブジェクトが単にインタフェース状態を示す値を返すように設定されている場合、これを含むスレッドは通常の優先度を持ち、他のスレッドと並列に実行されます。

オープン・ビュー・パラメータ

Interface - このフィールドには現在選択されているインタフェースが表示されます。このフィールドをクリックすると、現在設定されているインタフェースのリストが表示されます。インタフェースがこのリストに表示されるためには、そのインタフェースの計測器が少なくとも1つ[I/O] [image] [Instrument Manager...]で設定されている必要があります。同じタイプの複数のインタフェースは、論理装置番号（例: "hpib7"、"hpib8"）によって識別されます。

Action - イベントを検出したときのInterface Eventオブジェクトの実行動作を決定します。

Wait - イベントの発生を待ちます。イベントが発生するとオブジェクトが実行されます。このオブジェクトから始まるスレッドは他の並列スレッドよりも優先され、イベントが発生した場合は最後まで実行されますが、イベントが発生するまではブロックされます。イベントが発生した場合、論理値TRUE（1）またはインタフェース・イベント固有のビット・パターンが出力されます。

No Wait - ただちに実行し、設定されたイベントの現在の状態を32ビット整数でevent出力ピンに設定します。イベントが発生していない場合、値は論理値FALSE（0）です。イベントが発生した場合、TRUE（1）またはインタフェース・イベントに依存するビット・パターンが返されます。No Wait設定の場合、Interface Eventオブジェクトから始まるスレッドは通常の実行優先度を持ち、他のスレッドと並列に実行されます。

Event - 特定のインタフェース・イベントを選択できます。このフィールドをクリックすると、次の選択肢が表示されます。以下の各選択肢に対して、WaitとNo Waitの両方の動作が説明されています。それぞれの場合において、WaitとNo Waitのスレッド伝達優先度は先に説明したとおりです。

SRQ - これはGPIBインタフェースに対する唯一の選択肢です。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、GPIBデバイスがサービス・リクエスト・ラインをアサートするまで実行を遅延します。その後、論理値TRUE（1）がevent出力ピンに設定されます。
-- Actionの選択がNo Waitの場合、イベントが発生していなければ、論理値FALSE（0）が出力されます。イベントが発生している場合、論理値TRUE（1）がeventピンに出力されます。

DAV - （Data Available）これはシリアル・インタフェースに対する唯一の選択肢です。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、受信バッファにデータが到着するまで実行を遅延します。受信バッファ中のバイト数がevent出力ピンに設定され、次のオブジェクトにバッファからバイトを読み取るように通知します。
-- Actionの選択がNo Waitの場合、Interface Eventオブジェクトはただちに実行し、受信バッファ中のバイト数をevent出力ピンに出力します。

Sys Reset - Interface Eventオブジェクトは、VXIインタフェースでシステム・リセットが発生した場合に実行します。
-- Actionの選択がWaitの場合、システム・リセットが発生したときに、論理値TRUE（1）がeventピンに出力されます。
-- Actionの選択がNo Waitの場合、システム・リセットが発生していなければ、FALSE（0）が出力されます。

Sys Active - VXIリソース・マネージャは、VXIの初期化と管理を終了した後で、Begin Normal Operation（BNO）コマンドをVXIインタフェースに送信します。Sys Activeが設定された場合、Interface Eventオブジェクトは上記の時点で実行します。
-- Actionの選択がWaitの場合、BNOコマンドが発生したときに、論理値TRUE（1）がeventピンに出力されます。
-- Actionの選択がNo Waitの場合、イベントが発生していなければ、FALSE（0）が出力されます。

Sys Deactive - 通常のVXI動作が中止された場合、Abort Normal Operation（ANO）またはEnd Normal Operation（ENO）コマンドがインタフェースに送信されます。Sys Deactiveが設定された場合、Interface Eventオブジェクトは上記の時点で実行します。
-- Actionの選択がWaitの場合、ANOまたはENOコマンドが発生したときに、論理値TRUE（1）がeventピンに出力されます。
-- Actionの選択がNo Waitの場合、イベントが発生していなければ、FALSE（0）が出力されます。

TTL Trig - TTL Trigが設定された場合、Interface EventオブジェクトはVXIのTTLトリガ・ラインをモニタします。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、VXIデバイスがVXIバックプレーンの8つのTTLトリガ・ラインのうち少なくとも1つをアサートしたときに実行し、event出力ピンに32ビット整数を設定します。この整数で意味があるのは下位バイトだけです。これは、8つのTTLトリガ・ラインのどれがアクティブかを示すビット・パターンです（ビット0がトリガ・ライン0、ビット7がトリガ・ライン7に対応します）。セットされているビット（1）は、対応するラインがトリガされたことを示します。例えば、00010001は、TTLライン0と4がトリガされたことを示します。
-- Actionの選択がNo Waitの場合、トリガが発生していなければ、論理値FALSE（0）が出力されます。

ECL Trig - ECL Trigが設定された場合、Interface EventオブジェクトはVXIのECLトリガ・ラインをモニタします。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、VXIデバイスがVXIバックプレーンの4つのECLトリガ・ラインのうち少なくとも1つをアサートしたときに実行し、event出力ピンに32ビット整数を設定します。この整数の下位バイトは、4つのECLトリガ・ラインのうちどれがアクティブかを示すビット・パターンです（ビット0がトリガ・ライン0、ビット3がトリガ・ライン3に対応します）。セットされているビット（1）は、対応するラインがトリガされたことを示します。例えば、00001001は、ECLライン0と3がトリガされたことを示します。
-- Actionの選択がNo Waitの場合、トリガが発生していなければ、論理値FALSE（0）が出力されます。なお、VXIカード・ケージによっては、ECLトリガ・ラインが2つしか実装されていないものもあります。

EXT Trig - EXT Trigが設定された場合、Interface EventオブジェクトはVXIのEXTトリガ・ラインをモニタします。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、外部デバイスが組み込みコントローラの"Trig In"入力をアサートしたときに実行します。最大4つの外部トリガ入力が発生する可能性があります。Interface Eventオブジェクトが実行したときに、32ビット整数がeventピンに出力されます。この整数の下位バイトは、4つのEXTトリガ・ラインのうちどれがアクティブかを示すビット・パターンです（ビット0が外部トリガ0、ビット3が外部トリガ3に対応します）。セットされているビット（1）は、対応するトリガが発生したことを示します。例えば、00001001は、EXTトリガ・ライン0と3がトリガされたことを示します。
-- Actionの選択がNo Waitの場合、トリガが発生していなければ、論理値FALSE（0）が出力されます。コントローラによっては、外部トリガ入力が実装されていないものもあります。

Unknown Interrupt - Unknown Interruptが設定された場合、Interface Eventオブジェクトは、VMEまたはVXIデバイスからのVME割り込みのうち、VXIコントローラのサーバント・エリアにないものをチェックします。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、このような割り込みが発生したときに実行します。返される32ビット値は、デバイスが割り込み確認応答（IACK）を実行したときにVXIバスに送出された値です。
-- Actionの選択がNo Waitの場合、割り込みが発生していなければ、論理値FALSE（0）が出力されます。

Unknown Signal - Unknown Signalが設定された場合、Interface Eventオブジェクトは、VXIデバイスからのシグナル・レジスタ書き込みのうち、VXIコントローラのサーバント・エリアにないものをチェックします。
-- Actionの選択がWaitの場合、Interface Eventオブジェクトは、このようなシグナルが発生したときに実行します。返される32ビット値は、シグナル書き込みレジスタの内容です。
-- Actionの選択がNo Waitの場合、シグナルが発生していなければ、論理値FALSE（0）が出力されます。

注記

Interface Eventオブジェクトの実行動作は、Actionパラメータの選択に応じて、非同期または同期のいずれかです。NO WAITは同期的なポーリング動作を指定します。オブジェクトはただちに実行され、接続されたスレッドは現在実行中の他のすべてのスレッドと同じ優先度を持ちます。WAITを選択すると、Interface Eventオブジェクトはイベントが発生するまで待ちます。このオブジェクトから開始されるスレッドは高い優先度を持ち、並列に実行されている他のスレッドをブロックして最後まで実行されます。

Timeoutコントロール・ピン - オブジェクトがイベントを処理しようとしてロックされたインタフェースを取得するために待つ時間の長さを設定します。インタフェースが取得されなかった場合、エラーが発生します。

場所

I/O [image] Advanced I/O [image] Interface Event

関連項目

Instrument Event、Interface Operations

GPIB計測器をポーリングするには


Interface Operations

トランザクションを使って、低レベルのインタフェース・コマンドとデータを、GPIB、VXI、シリアル経由で送信するオブジェクト。

Interface Operationsは、インタフェース固有の作業や、Direct I/OまたはInstrument Driverによる通信では必要なレベルの制御が得られない特別な場合に使用します。

使用法

Interface Operationsは、次のような低レベル操作に使用します。

非標準GPIBアドレッシング・シーケンスの送信。

GPIBグループ・トリガ・メッセージの送信、またはVXIトリガ・ラインをオンにする操作。

GPIB経由での任意のバイトのATN trueありまたはなしでの送信。

VXIまたはGPIBインタフェースへのクリアまたはリセット・コマンドの送信。

IEEE 488.1で定義されたマルチライン・メッセージの送信。

シリアル・インタフェースへのインタフェース・ロック／アンロック・メッセージの送信。

Interface Operationsを使用するには、トランザクションを追加する必要があります。このためには、オブジェクト・メニューで[Add Trans]をクリックします。トランザクションは、オブジェクトのオープン・ビューの中にテキスト行としてリストされます。トランザクションを編集するには、トランザクションをダブルクリックして、表示されるダイアログ・ボックスに入力します。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

Interface:- バス構成を表示し、別のインタフェースへの切り替えを可能にします。同じタイプの複数のインタフェースは、論理装置番号（例、"hpib7"、"hpib8"）によって識別されます。

 Timeout:- タイムアウト時間を設定します。コントロール入力ピンでも設定できます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] Advanced I/O [image] Interface Operations

関連項目

Advanced I/O、Agilent IO Monitor、Formula、Instrument Manager、トランザクションを編集するには


Interface Properties

さまざまなインタフェース・アドレスを設定するために用いられるダイアログ・ボックス。

使用法

Interface Propertiesダイアログ・ボックスは、VXI、GPIB(Legacy)の各インタフェース・アドレスの設定または編集に使用できます。

オープン・ビュー・パラメータ

以下のパラメータがInterface Propertiesダイアログ・ボックスから設定できます。

Interface:- 設定するインタフェース・タイプ（デフォルトのインタフェース・タイプはInstrument Listから選択したものです）。

Address:- 設定または編集するインタフェースの論理装置番号。

Gateway:- リモート・コンピュータに接続された計測器をVEEプロセスからアクセスする場合、LANゲートウェイのホスト名を指定します。デフォルト値はThis hostです。

場所

I/O [image] Instrument Manager...

[Instrument Manager]ダイアログ・ボックスの[Instrument List]で、VXI、GPIB(Legacy)などのいずれかのインタフェース・アイコンを選択（強調表示）し、[Properties]ボタンをクリックします。[Interface Properties]ダイアログ・ボックスが表示されます。

関連項目

Advanced I/O、Advanced Instrument Properties、Instrument Properties、To Add an Instrument Configuration、To Edit an Instrument Configuration


IP Address

ホストマシンのIPアドレスを取得します。

場所

System [image] Environment [image] IP Address


Is Leap Year?

閏年の場合は真の論理値を返します。

場所

System [image] DateTime [image] Is Leap Year?


Is Path Rooted?

パスがルートを含むかどうかを示す論理値を返します。例えば、vee\srcはルートを含まず、\vee\srcはルートを含みます。

場所

System [image] Path [image] Is Path Rooted?


JCT

最も新しくアクティブにされたデータ入力（複数の入力の1つ）の値を出力するオブジェクト。

使用法

JCTは、OR配線として動作し、複数のオブジェクトのデータ出力ピンを別のオブジェクトの1つのデータ入力ピンに接続するために使用します。JCTはフィードバック・ループでデータ初期化のために多く用いられます。JCTはデータを受動的に伝送します。VEE 4.0以降では、フィードバックを含むスレッドにはJCTが必須です。

注記

JCTは初期条件の設定に便利です。

JCTへの入力は非同期データ入力です。すなわち、JCTはどれかのデータ入力がアクティブになるとただちに動作します。JCTの複数の出力ピンがJCTの動作前にアクティブになった場合、入力データは受け取った順にキューにつながれます。その後、JCTはデータ・キューが空になるまで反復子のように出力を繰り返しアクティブにします。入力データ・ピンがフィードバック・ループによってアクティブにされた場合、複数回のアクティブ化は無視されます。

JCTの一般的な用途の1つは、フィードバック・ループで最初に入力の1つから初期値を供給し、その後に他のデータ入力からフィードバック値を供給する場合です。

場所

Flow [image] Junction

関連項目

DeMultiplexer、Properties（オブジェクト）、オブジェクト・メニュー


Join

テキスト値の配列をテキスト区切り文字によって連結します。例えば、値が"one"、"two"、"three"、"four"の場合、カンマを区切り文字にすると、"one,two,three,four"が得られます。これはCSVファイルを簡単に作成する方法です。

場所

System [image] String [image] Join


Junction

JCTを参照してください。


Label

パネル・ビューにテキスト・ラベルを置くために使用するオブジェクト。

使用法

Labelは、パネル・ビューにラベルや見出しを作成するために使用します。このオブジェクトは実行される必要はなく、背景色はパネル・ビューの背景色に溶け込みます。

オープン・ビュー

現在のLabel文字列が表示されます。デフォルトはLabelです。Labelを変更するには、オブジェクト・メニューの[Properties]を使ってオブジェクトのタイトルを変更するか、データ入力を使用します。

プロパティ

Justification - オブジェクト境界内のテキストのレイアウトを指定します。デフォルトはLeftです。

注記

Labelのデフォルトのオブジェクト色はパネル・ビューのデフォルトの色と同じなので、Labelの背景はパネル・ビューに溶け込みます。

パネル・ビュー上のLabelオブジェクトのデフォルトのBorder設定はNoneです。

ラベル値に対するデータ入力を使用する場合、Labelオブジェクトが実行時に文字列の長さに合わせて自動的にサイズ変更されないことに注意が必要です。Labelのデータ入力に送られた文字列がラベル・オブジェクトよりも長い場合、文字列のテキストは切り詰められて表示されます。データ入力を使用する場合は、文字列を表示するのに十分な大きさにLabelオブジェクトを設定する必要があります。

場所

Display [image] Label

関連項目

Beep、Text

領域にラベルを付けるには


Last Directory Access Time

ディレクトリが前回アクセスされた時刻を返します。

場所

System [image] Directory [image] Last Directory Access Time


Last Directory Write Time

指定されたディレクトリが前回変更された時刻を返します。

場所

System [image] Directory [image] Last Directory Write Time


Last Error

[View]メニューの項目で、VEEプログラムで前回生成された[Error]ダイアログ・ボックスを読み取ります。

使用法

Last Errorは、VEEプログラムで前回生成された[Error]ダイアログ・ボックスを読み取るために使用します。[Error]ダイアログ・ボックスの[Go To]ボタンをクリックすると、VEEプログラムの詳細ビューがVEEワークスペースに表示されます。プログラムがError状態にある間は、エラーが発生したUserObjectまたはUserFunctionが強調表示されます。プログラムがError状態でなくなった場合、例えばプログラムが停止された場合、オブジェクトは強調表示されません。

ダイアログ情報

[Last Error]ダイアログ・ボックスには、次の情報とボタンがあります。

エラー・メッセージとエラー番号 - Last Errorダイアログ・ボックスのメイン・ウィンドウには、発生したエラーの簡単な説明と、エラーが発生したオブジェクトのタイトル（[Object Title]）および型（[Object Type]）が表示されます。エラー番号（[Error number]）も表示されます。

Go To - Go Toボタンをクリックすると、VEEプログラムの詳細ビューが表示され、プログラムがまだError状態にある場合は、エラーが発生したUserObjectまたはUserFunctionが強調表示されます。

Call Stack - Call-Stackボタンをクリックすると、[Call Stack]ダイアログ・ボックスが表示されます。[Call Stack]ダイアログ・ボックスには、Errorが発生した場所に関するより詳細な情報が示されます。

Close - Errorダイアログ・ボックスを閉じます。

Help - Helpをクリックすると、発生したエラー番号（[Error number]）に関する詳細を説明したHelp項目が開きます。

注記

Error pinでトラップされて処理されたエラーは、Last Errorでは読み取れません。

場所

View [image] Last Error

関連項目

Error Output（オブジェクト・メニュー）、Call Stack、errorInfo()、Raise Error


Line Probe

2つのオブジェクトの間のラインで伝達されるコンテナ情報を表示します。

使用法

Line Probeは、ライン上で伝達されるコンテナを調べるためのデバッグ・ツールとして使用します。Line Probeを使用すると、カーソルが拡大鏡の形に変わり、作業領域をクリックするまでそのモードになります。調べたいラインをクリックします。そのラインの現在のコンテナを表示したダイアログ・ボックスが開きます。

ライン上のコンテナがヌルでない場合、ダイアログ・ボックスにはコンテナの現在の型、種類、サイズが表示されます。2次元配列までのデータ値が表示されます。コンテナのいずれかの次元がマッピングされている場合、各次元のマッピング値が表示されます。

コントロール入力にはデータがない場合があります。シーケンス出力ピンはデータを持つことはありません。オブジェクトがまだ動作していない場合、その入力／出力に接続されたラインではヌルまたは古いデータが表示されることがあります。

注記

ラインの端点を表示するには、Line Probeを選択し、ポインタをラインにドラッグします。強調表示されたラインの上でマウスの左ボタンをクリックして、そのラインの現在の属性を表示します。

データを表示せずにラインの端点を表示するには、Line Probeを選択し、ポインタがラインの上にある時にマウス・ボタンを押し続けます。ポインタをラインから離してからボタンを放します。

オープン・ビュー・オブジェクトの端子内部から現在のデータを調べるには、端子をダブルクリックします。

ショートカット

単純なスカラ値とラインの端点を表示するには、単にマウス・ポインタをライン上に置きます。ラインの上にしばらくポインタを置いておくと、コンテナの値（表示可能な単純な値の場合）が表示され、端点が強調表示されます。マウスの左ボタンでラインをクリックすると、詳細なコンテナ情報が表示されます。

2つのピンの間のラインが短くて、ラインの上にポインタを置いても端子名しか表示されない場合は、Shiftキーを押すとマウス・ポインタがLine Probeモードに変わります。

場所

Debug [image] Line Probe

関連項目

Default Preferences、Properties（オブジェクト）

ライン上のデータを表示するには


List Box

ユーザにリストを表示するポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

List Boxは、リスト・メッセージをユーザに表示するために使用します。ユーザはダイアログ・ボックスで1つ（または複数）の選択肢を選択することにより応答します。ボタンのテキストはカスタマイズできます。

ポップアップ・ダイアログ・ボックスで選択が実行されると、選択内容がText出力ピンに出力され、リスト中のそのインデックスがIndex出力ピンに出力されます。複数の項目が選択された場合、テキストの配列がText出力ピンに出力され、インデックスの配列がIndices出力ピンに出力されます。

オープン・ビュー

  • List Entries Edit ...- List Boxポップアップ・ダイアログ・ボックスに表示される選択肢のリストを編集するために使用します。このパラメータはデータ入力として追加できます。

  • Default Entry - ポップアップ・ダイアログ・ボックスに表示されるList Entriesからデフォルト・エントリを選択するために使用します。このパラメータはデータ入力として追加できます。

  • Allow Multiple Selections - このチェック・ボックスが選択されている場合、ユーザはリストから1つまたは複数の選択肢を選択できます。この場合、ポップアップ・ダイアログ・ボックスに2つのボタンが追加されます。Select AllとClear Allです。

プロパティ

  • PopupTimeoutEnabled - このプロパティがTrueの場合、Timeout出力ピンがオブジェクトに追加されます。デフォルトはFalseです。

  • PopUpDuration - ポップアップ・ダイアログ・ボックスが表示されている時間の長さを設定します。この時間が過ぎると、ダイアログ・ボックスはタイムアウトし、Timeout出力ピンに値1が出力されます。Timeoutピンが実行された場合、他のすべての出力ピンはデータを持ちません。このフィールドが使用できるのは、Timeout Enabledチェックボックスが選択されている場合だけです。デフォルトは60秒です。

  • PopupOKLabel - Trueの場合、ボタンのラベルをOKにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupCancelLabel - Trueの場合、ボタンのラベルをCancelにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupSelectAllLabel -Allow Multiple Selectionsが選択されている場合のみ使用できます。

  • PopupClearAllLabel -Allow Multiple Selectionsが選択されている場合のみ使用できます。

  • PopupPasswordMasking - このプロパティがTrueの場合、入力テキストはアスタリスク（*）で表示されます。この機能は、パスワードなどの秘密データをオペレータが入力する場合に便利です。Value出力ピンに出力される文字列はマスクされません。デフォルトはFalseです。

  • PopupNumDisplayedItems - List Boxにスクロールバーなしに表示される行の最大数を設定します。この値がリスト・エントリの数よりも大きい場合、リストのエントリの数に合わせて（空行が入らないように）ダイアログ・ボックスのサイズが調整されます。デフォルトは10です。

注記

ポップアップ・ダイアログ・ボックスのデフォルトの位置は、作業領域のほぼ中央です。ダイアログ・ボックスを移動すると、次のときには新しい場所にポップアップします。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたときに、EnterまたはEscキーを使用します。また、ボタンと選択領域の間を移動するにはTabキーを、選択肢を選択するにはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

場所

Data [image] Dialog Box [image] List Box

関連項目

File Name Selection、Message Box、Int32 Input、Real64 Input、Text Input、UserObject

組み込みDialog Boxオブジェクトについて


List

Selection Controlを参照してください。


Logging AlphaNumeric

英数字データのScalarまたはArray 1Dを表示するオブジェクト。Logging AlphaNumericでは、表示を上書きせずにデータを表示できます。

使用法

Logging AlphaNumericは、連続する入力（ScalarまたはArray 1D）を以前の値に続けて表示するために使用します。

オブジェクト・メニュー

Clear - Logging AlphaNumericに表示されたすべてのデータをクリアします。Clearはコントロール入力として追加できます。

プロパティ

ClearAtPreRun - このプロパティがTrueの場合、Logging AlphaNumericの内容はPreRun時にクリアされます。デフォルトはTrueです。

ClearAtActivate - このプロパティがTrueの場合、Logging AlphaNumericの内容はアクティブ化時にクリアされます。デフォルトはTrueです。

Buffer Size - 表示バッファが保持できる行数を指定します。これより多くの行がLogging AlphaNumericに入力された場合、最後の値が保持され、前の値は上書きされます。デフォルトは256です。

NumberFormat- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

  • Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/1994 17:01:38）があります。デフォルトはStandardです。

注記

Logging AlphaNumericオブジェクトの現在の幅が狭すぎて、数値型のデフォルトの精度で表示できない場合、アスタリスクの列(***)が表示されます。データを表示するには、オブジェクトのサイズを変更してプログラムを再実行します。

ASCII値0～31の表示はフォントに依存し、正常に表示されない場合があります。

2048文字より長いテキスト文字列は、プラットフォーム（オペレーティング・システム）によっては正常に表示されません。32767文字より長いテキスト文字列は、すべてのプラットフォームで正常に表示されません。

場所

Display [image] Logging AlphaNumeric

関連項目

AlphaNumeric、Default Preferences、オブジェクト・メニュー

一連の値をログに表示するには


Machine Name

ホストマシンの名前を取得します。

場所

System [image] Environment [image] Machine Name


Magnitude Spectrum

スペクトラムをグラフィカルに表示するオブジェクト。

使用法

Magnitude Spectrumは、SpectrumまたはWaveformを周波数ドメインで表示するために使用します。Waveformはフーリエ変換によって自動的にSpectrumに変換されます。X軸は入力Spectrumのサンプリング単位（通常は周波数）です。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Mag - Y軸の名前。

Trace1 - 最初のトレースの名前。

Freq - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、[Scales]プロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType - デフォルトはLinesです。

NumMarkers - グラフに表示されるマーカ数。マーカを別のトレースに移動するには、オープン・ビューに移り、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

 MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

DisplayBackColor - 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。

ScaleLabelFont- スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Traces Group:（各トレースに1つずつ）

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトはyellow（黄色）です。

LineStyle:- データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle:- 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはオンです。これをオフにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- xデータとyデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles:- Automatic Scalingがオンのときに表示されるデケードの最大数（xとyの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

ScaleNumberFormat:（X/Yスケール、および追加のYスケールに対して存在するプロパティ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはTrueです。

Real - Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

入力の型は、Spectrum、Waveform、Coord（ScalarまたはArray 1D）のいずれかでなければなりません。

Coord型の入力データは、Spectrum型に変換されず、単にxとyの値を使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

Automatic Scalingプロパティがオン（Scalesタブ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

PrintおよびPlotコントロール入力ピンを追加できます。Windowsの場合、これらの入力は、Windowsの[Print Setup]ダイアログ・ボックス（[File] [image] [Print Setup…]）の設定を使用して、同じ動作をします。現在のPrinter SetupがPrint to Fileモードの場合、出力先のファイルまたはディレクトリ名をPlotコントロール入力に対する文字列データとして指定できます。コントロール入力値を指定しない場合、Printer Setupに指定されたファイルまたはディレクトリ名が使用されます。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesウィンドウを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Spectrum (Freq) [image] Magnitude Spectrum

関連項目

Magnitude vs Phase、Phase Spectrum、Polar Plot、Default Preferences、Spectrum (Freq)、Waveform (Time)

波形を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには、オブジェクト・メニュー


Magnitude vs Phase

複素Spectrumの振幅対位相の極座標プロットを表示するオブジェクト。

使用法

Magnitude vs Phaseは、SpectrumまたはWaveformを表示するために使用します。Waveformはフーリエ変換によって自動的にSpectrumに変換されます。各データ・ポイントのRadiusはスペクトラムの振幅です。Angleはスペクトラムの位相（現在の三角関数単位）です。

オブジェクト・メニューの[Properties]を使って、表示モードをPolar（極座標）とSmith Chart（スミス・チャート）の間で切り替えることができます。LinesからSmith Chartに変更します。

マーカ値は、Polarグリッド・タイプの場合は極座標形式（r:半径、a:角度）で表示され、Smith ChartおよびInv Smith Chartグリッド・タイプでは複素インピーダンスまたはアドミタンス形式で表示されます。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Mag - 半径スケールの名前。

Span:- 表示の垂直次元。原点が表示の中心にある場合、Spanは半径の2倍です。このパラメータは、表示のスケールを制御します。デフォルトは2です。

Trace1 - 最初のトレースの名前。

Polar Reference Location - 表示される極座標プロットの部分を指定します。これは当該領域までスクロールするより高速です。入力フィールドで基準点を変更すると、指定されたグラフの部分（Centerなど）が指定された位置（(0, @0)など）までスクロールします。

Ref Radius:- 太い目盛円の半径値。

オブジェクト・メニュー

Auto Scale [image] Auto Scale - トレース全体が表示されるように表示のスケールをただちに変更します。Auto Scaleは極座標の基準位置をCenter (0,@0)にリセットします（コントロール・ピンとして追加することも、Scalesプロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale X - 使用不可。

Auto Scale Y - 使用不可。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つの半径軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType: - デフォルトはLinesです。メジャー・グリッドに線、マイナー・グリッドに目盛を表示します。X軸とY軸は太線で表示されます。

Smith Chart - データをスミス・チャート（「インピーダンス・チャート」とも呼ぶ）に表示します。マーカ値は、実数と虚数のインピーダンスで与えられます。太線の円は「基準半径」であり、その半径が表示の右下隅に表示されます。スミス・チャートのグリッドとマーカが正しいスケールの値を示すのは、入力データが正規化されている場合に限ります。データを正規化するには、すべての振幅を特性インピーダンスで除算します。

Inv Smith Chart - データを逆スミス・チャート（「アドミタンス・チャート」とも呼ぶ）に表示します。逆スミス・チャートは、スミス・チャートと同じ方法で使用しますが、グリッドとマーカの値がインピーダンス値でなくアドミタンス値である点が異なります。

NumMarkers:- グラフに定義されるマーカ数。マーカを別のトレースに移動するには、オープン・ビューに移り、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

DisplayBackColor:- 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。

Traces Group:（各トレースに1つずつ）

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトはyellow（黄色）です。

LineStyle:- データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle:- 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数の半径スケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはTrueです。これをFalseにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[AutoScale]コマンドを使って表示のスケールを変更できます。

Vertical Span:- 表示の垂直次元。デフォルト値は2です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

Reference Corner:- 表示される極座標プロットの部分を指定します。これは当該領域までスクロールするより高速です。Reference Valueを変更すると、指定されたグラフの部分（Centerなど）が指定された位置（(0, @0)など）までスクロールします。デフォルト値はCenterです。

Reference Value:- 極座標プロットで使用される座標値を定義します。デフォルト値は(0, @0)です。

注記

入力の型は、Spectrum、Waveform、Coord（ScalarまたはArray 1D）のいずれかでなければなりません。

Coord型の入力データは、Spectrum型に変換されず、単にxとyの値を直交座標値として使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

Automatic Scalingプロパティがオン（Scalesタブ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesダイアログ・ボックスを開きます。DesignタブでDeclared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Spectrum (Freq) [image] Magnitude vs Phase (Polar)

Display [image] Spectrum (Freq) [image] Magnitude vs Phase (Smith)

関連項目

Magnitude Spectrum、Phase Spectrum、Polar Plot、Spectrum (Freq)、Default Preferences

波形を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには、オブジェクト・メニュー


Main

Mainは、VEEのルートUserObjectウィンドウです。

使用法

Mainウィンドウは、VEEプログラムのルートUserObjectです。これはプログラムに必要であり、削除できません。他のUserObjectやUserFunctionのウィンドウは、Mainウィンドウから作成されます。

Mainが最小化されたり閉じられたりしている場合、Viewメニューから選択することにより再び開くことができます。また、VEEのProgram ExplorerウィンドウでMainを選択することによっても開くことができます。

プロパティ

Title - プログラムの現在のタイトルを表示します。オブジェクトがパネル・ビューに配置されている場合、タイトルは編集できます。このタイトルは、プログラムが-rコマンド・ライン・オプション付きで実行された場合に、プログラムのタイトル・バーに表示されます。デフォルトはUntitledです

ShowPanelonExecute:- このプロパティは、Mainパネル・ビューにオブジェクトを追加した場合に使用可能です。ShowPanelonExecuteがオンの場合、プログラムを実行するとMainパネル・ビューが実行ウィンドウに表示されます。

TrigModeグループ:

Degrees | Radians | Gradians - メイン・プログラムで用いられる三角関数単位を指定します。Radiansを選択した場合、三角関数計算は最も高速に実行されます。UserObjectsで用いられるTrig Modeは、この設定には影響されません。

Convert Infinity to 9.9E37 on Binary Reads - このチェック・ボックスが選択されていると、計測器（または計測器データが含まれるファイル）が+INF（+無限大）、-INF（-無限大）、NAN（not a number）をバイナリ読み取りで返した場合、値は変換されます。この変換を行った場合、バイナリ読み取りのたびに入出力速度が多少低下します。

このチェック・ボックスは、SCPI標準に準拠した計測器からデータを読み取り、そのデータをグラフィカル表示オブジェクトに出力する場合に使用します。このチェック・ボックスが選択されていない場合、+INF、-INF、NANのいずれかが表示オブジェクトに送られると、浮動小数点例外エラーが発生します。このチェック・ボックスが選択されていると、+INF、-INF、NANの値がグラフのスパイクでわかります。

注記

Mainウィンドウが閉じられていない場合、Windowメニューにも次のように表示されます。

Window [image] 1 Main

場所

View [image] Main

関連項目

Arrange Icons、Cascade、Close All、Minimize All、Program Explorer、Tile Horizontally、Tile Vertically、Properties（オブジェクト）


Make UserFunction（オブジェクト・メニュー）

UserObjectのオブジェクト・メニューだけにあるメニュー項目で、UserObjectをUserFunctionに変換します。

使用法

Make UserFunctionは、UserObjectをUserFunctionに変換するために使用します。UserObjectのタイトル領域に表示されている名前が、UserFunctionの名前になります。UserObjectはなくなり、Call Functionオブジェクトに置き換えられます。

注記

UserObjectのタイトル領域の名前が有効なUserFunction名でない場合、あるいは名前を"UserObject"から変更していない場合、UserObjectの新しい名前の入力を求めるプロンプトが表示されます。

有効なUserFunction名は、先頭が英字で、その後に英数字または下線文字が続くものです。

場所

オブジェクト・メニュー（UserObjectsのみ）で [image] Make UserFunction

関連項目

Call、Edit UserFunction、hidePanel()、showPanel()、UserFunction、UserObject


Make UserObject

Edit UserFunctionの下にだけあるメニュー項目で、UserFunctionをUserObjectに再変換します。

使用法

Make UserObjectは、UserFunctionをUserObjectに再変換するために使用します。

注記

Make UserObjectはMake UserFunctionとほぼ逆の働きをします。Make UserObjectはUserFunctionをUserObjectに再変換しますが、Call Functionオブジェクトはそのまま残り、プログラムのメイン・コンテキストで接続されたままになります。ただし、UserFunction自体はなくなります。

場所

Edit [image] Edit UserFunction [image] Make UserObject（UserFunctionオブジェクト・メニュー）

関連項目

Edit UserFunction、Make UserFunction（オブジェクト・メニュー）、UserFunction、UserObject


math_syntax

演算構文

このリストには、VEEの演算子と演算関数に関するヘルプ・トピックへのリンクが含まれます。

abs(x)
acos(x)
acosh(x)
acot(x)
acoth(x)
a + b（加算）
Ai(x)
a ~= b（ほぼ等しい）
a AND b
+ - * /
Array
asin(x)
asinh(x)
atan(x)
atan2(y,x)
atanh(x)
bartlet(x)
Bessel
beta(x,y)
Bi(x)
binomial(a,b)
bit(x,n)
bitAnd(x,y)
bitCmpl(x)
bitOr(x,y)
bits(str)
bitShift(x,y)
Bitwise
bitXor(x,y)
blackman(x)
Calculus
ceil(x)
charToInt(a)
clearBit(x,n)
clipLower (x,a)
clipUpper (x,a)
cofactor(x, row,col)
comb(n,r)
カンマ演算子
Complex Parts
concat(x,y)
conj(x)
convolve(a,b)
cos(x)
cosh(x)
cot(x)
coth(x)
cubert(x)
Data Filtering
defIntegral (x,a,b)
deriv(x, order)
derivAt(x, order,pt)
det(x)
a div b（切り捨て除算）
a / b（除算）
dmyToDate (d,m,y)
a == b（等しい）
erf(x)
erfc(x)
exp(x)
exp10(x)
a ^ b（指数）
指数回帰
factorial(n)
fft(x)
floor(x)
fracPart(x)
Freq Distribution
gamma(x)
Generate
a > b（大きい）
a >= b（大きいか等しい）
hamming(x)
hanning(x)
hmsToHour (h,m,s)
hmsToSec (h,m,s)
Hyper Bessel
Hyper Trig
i0(x)
i1(x)
identity(x)
ifft(x)
im(x)
init(x,val)
integral(x)
intPart(x)
intToChar(a)
inverse(x)
j(x)
j0(x)
j1(x)
jn(x,n)
k0(x)
k1(x)
a < b（小さい）
a <= b（小さいか等しい）
線形回帰
log(x)
log10(x)
対数回帰
Logical
logMagDist (x,from,thru, logStep)
logRamp (numElem, from,thru)
mag(x)
magDist(x, from,thru, step)
matDivide (numer, denom)
matMultiply (A,B)
Matrix
max(x)
maxIndex(x)
maxX(x)
mday(aDate)
mean(x)
meanSmooth (x,numPts)
median(x)
min(x)
minIndex(x)
minor(x,row, col)
minX(x)
a mod b（モジュロ）
mode(x)
month(aDate)
movingAvg (x,numPts)
a * b（乗算）
NOT a
a != b（等しくない）
now()
a OR b
ordinal(x)
perm(n,r)
phase(x)
poly(x,vec)
Polynomial
多項式回帰
polySmooth (x)
Power
べき曲線回帰
product(x)
ramp (numElem, from,thru)
random (low,high)
randomize (x,low,high)
randomSeed (seed)
re(x)
Real Parts
recip(x)
rect(x)
Regression
rms(x)
rotate(x, numElem)
round(x)
sdev(x)
setBit(x,n)
Signal Processing
signof(x)
sin(x)
sinh(x)
sort(x, direction, field)
sq(x)
sqrt(x)
Statistics
strDown(str)
strFromLen (str,from,len)
strFromThru (str,from, thru)
String
strLen(str)
strPosChar (str,char)
strPosStr (str1,str2)
strRev(str)
strTrim (str,trimlist)
strUp(str)
a - b（減算）
sum(x)
tan(x)
tanh(x)
Time & Date
totSize(x)
transpose(x)
Triadic Operator
Trig
vari(x)
wday(aDate)
xcorrelate (a,b)
xlogRamp (numElem, from,thru)
a XOR b
xramp (numElem, from,thru)
y0(x)
y1(x)
year(aDate)
yn(x,n)


MATLAB Script

MATLABｮ Script

MATLAB Scriptコマンドで指定された動作を実行するためにMATLAB Scriptエンジンを呼び出すオブジェクト。VEEデータをMATLAB Scriptエンジンに渡し、MATLAB Scriptエンジンからデータを返すことができます。

MATLABヘルプ

このヘルプ項目では、VEEからMATLABを呼び出す方法を説明します。MATLABプログラムの書き方や、MATLABを呼び出した後で何ができるのかについては説明しません。MATLABとそのスクリプト言語に関するヘルプは、次の2つの方法で参照できます。

VEEのFunction & Object Browserの下部にある[Help]ボタン。MATLAB関数が選択されているときに[Help]ボタンをクリックすると、MATLABヘルプ・システムが起動され、その関数の項目が表示されます。

MATLABオブジェクト・メニュー（右クリック・メニュー）の[MATLAB Help]項目（注記: このメニューには"Help"と"MATLAB Help"の両方があります）。[MATLAB Help]をクリックすると、MATLABヘルプ・システムが起動されます。

MATLAB ScriptオブジェクトをVEEの[Device]メニューから作成した場合、ヘルプ・システムはメインMATLAB HelpDeskウィンドウで起動されます。MATLAB ScriptオブジェクトをVEEのFunction & Object Browserから作成した場合、ヘルプ・システムはMATLAB Scriptオブジェクトを作成したときに選択されていた関数のヘルプ項目で起動されます。

使用法

MATLAB Scriptオブジェクトは、MATLABソフトウェアの機能をVEEから利用するために使用します。このオブジェクトは、VEEのFormulaオブジェクトに似ています。MATLAB Scriptコマンドを式フィールドに入力でき、入出力ピンを使ってデータを渡すことができます。

Function & Object BrowserからMATLAB Scriptオブジェクトを作成する場合、多くの既定義関数が使用できます。別の方法として、[Device]メニューから作成できるデフォルトのオブジェクトには、2つの入力とサンプル・スクリプト（X=A+B）が備わっています。これらのサンプル・オブジェクトを変更して、入出力ピンの数を変えたり、別のMATLAB Scriptコマンドのセットを指定したりすることができます。VEEに付属するMATLAB Scriptエンジンには、約1800の関数が用意されています。MATLAB Signal Processing Toolkitにはさらに220の関数があります。VEEのFunction & Object Browserには、約 1200の最も一般的な関数が表示されます。MATLABの全関数については、MATLAB HelpDeskを参照してください。

MATLAB Scriptの変数名は大文字と小文字が区別されますが、VEEでは区別されません。すなわち、"A"と"a"はVEEでは同じ変数を表しますが、MATLABでは別の変数を表します。MATLAB Scriptで式を作成する際にはこの点に注意してください。例えば、VEEデータ端子の名前が"A"の場合、MATLAB Scriptでは"A"は使用できますが"a"は使用できません。

VEEはMATLAB Scriptコマンドの構文チェックをいっさい行いません。MATLAB Scriptオブジェクトに構文エラーがある場合、MATLAB Scriptエンジンが呼び出されるまでエラーは発見されません。MATLABから報告されたエラーは、VEEのエラー591または592にマッピングされます。MATLABが警告を報告した場合、これらはVEEの注意メッセージとして表示されます。

最初に実行されるMATLAB Scriptオブジェクトは、1つのMATLABセッションを開きます。プログラム内にあるほかのMATLAB Scriptオブジェクトはすべて、その同じセッションを共有します。これにより、MATLAB ScriptオブジェクトはMATLABワークスペース内のグローバル変数を共有できます。

このVEEオブジェクトで提供されるMATLAB Scriptは、MATLABの関数定義機能をサポートしません。

データに関する注記

MATLAB Scriptに入力できるVEEのデータ型には制限があります。入力端子のデータ型を制限することによって、VEEの入力データをサポートされているデータ型に確実に変換できます。例えば、Int32データがあるとします。MATLAB Scriptオブジェクトは整数データを受け入れませんが、Real64データは受け入れます。入力端子をダブルクリックし、Required TypeでReal64を選択します。この制約を設定することにより、入力されたInt32データは、入力ピンで自動的にReal64に変換され、MATLABに渡されます。VEEには、1次元配列の使用に便利なように、自動配列変換機能も用意されています。次の表に、VEEデータ型とMATLABデータ型の対応を示します。

入力ピン・データ

変換前のVEE型 | 変換後のMATLAB型 | 注記
Text Scalar | character array | 配列サイズ（1×n）に昇格されます。ここでnはVEE文字列の長さです。
Text 1D Array | character array | 配列サイズ（m×n）になります。ここで、mはVEE配列の要素数、nは配列中のVEE文字列の最大の長さです。
Text Array、2D以上 | -- | サポートされません。
Real64 Scalar | double array | 配列サイズ（1×1）に昇格されます。
Real64 Array | double array | VEEの 1次元配列は、配列サイズ（m×1）に昇格されます。VEEの2次元以上の配列は、元の種類のままです。
Complex Scalar | complex array | 配列サイズ（1×1）に昇格されます。
Complex Array | complex array | VEEの 1次元配列は、配列サイズ（m×1）に昇格されます。 VEEの2次元以上の配列は、元の種類のままです。
Waveform 1D Array | double array | VEEの 1次元配列は、配列サイズ（m×1）に昇格されます。 Waveformのタイムベース・マッピングは失われます。

出力ピン・データ

変換前のMATLAB型 | 変換後のVEE型 | 注記
Empty Matrix | nil | 出力コンテナは生成されません。
character array、サイズ（1×n） | Text Scalar |
character array、サイズ（1×m×n） | Text 1D Array | m要素の 1次元配列。
character array、3D-10D | -- | サポートされません。
サイズ（1×1）のdouble array | Real64 Scalar |
double array、サイズ （m×1）または（1×n） | Real64 1D Array または Real64 2D Array | VEE 1次元配列への自動降格をオブジェクトのプロパティで選択できます。選択しない場合は、2次元配列が返されます。
double array、2D-10D | Real64 Array |
complex array、サイズ（1×1） | Complex Scalar |
complex array、サイズ （m×1）または（1×n） | Complex 1D Array または Complex 2D Array | VEE 1次元配列への自動降格をオブジェクトのプロパティで選択できます。選択しない場合は、2次元配列が返されます。
complex array、2D-10D | Complex Array |

MATLAB Scriptでは、無限大が数値として使用できます（結果として生成される場合もあります）。VEEでは無限大の値は使用できません。MATLAB Scriptオブジェクトが、正の無限大、負の無限大、NaN（not a number）のいずれかの浮動小数点表現を返そうとした場合、呼び出しは失敗し、VEEのエラー594が発生します。

複数のMATLABバージョン

複数のMATLABバージョンがマシンにインストールされている場合、Agilent VEEで使用するバージョンを簡単に選択できます。詳細については、VEEで使用するMATLABの選択を参照してください。

MATLAB 5.3、6.1、6.5、7.x（R2006a、2006b、2007aを含む）はすべてVEE 8.5で動作します。

場所

Device [image] Function & Object Browser [image] MATLAB Functions

Device [image] MATLAB Script

関連項目

MATLAB Scriptの概要


Merge

作業領域の既存の内容を保持しながら、プログラムまたは保存されたオブジェクト・セットの内容を作業領域に追加します。

使用法

Mergeは、保存されているプログラムまたはオブジェクト・セットを、VEE作業領域の既存のプログラムに結合するために使用します。Mergeは、頻繁に使用する関数のライブラリから、すでに作成されたプログラムまたはオブジェクト・セットを導入する場合に便利です。

注記

プログラムとともに保存されているDefault Preferences（Trig Modeなど）は、そのプログラムをMergeによってVEE作業領域に導入した場合にはロードされません。作業領域で現在有効なDefault Preferencesが引き続き使用されます。

MergeはUserFunctionに対しては使用できません。Merge Libraryを使用してください。

Mergeは、開きたいファイルの名前を選択するダイアログ・ボックスを表示します。Mergeを使用する場合、ダイアログ・ボックスはVEEプログラムのインストール・ディレクトリの下のlibディレクトリを指します。

Mergeでは、SaveまたはSave Asで保存されたファイルをロードできます。

保存されているプログラムにパネル・ビューがある場合、パネルはプログラムにインポートされません。UserObjectのパネル・ビューはインポートされます。

埋込みI/O構成を持つプログラム・ファイルからMergeを行った場合、I/O構成はマージされません。埋込みI/O構成とマージを参照してください。

場所

File [image] Merge

関連項目

Merge Library、Open、Save、Save Objects

UserObjectのライブラリを作成するには

ライブラリ・ファイルからオブジェクトやプログラムをマージするには


Merge Library

UserFunctionのライブラリを作業領域にロードします。

使用法

Merge Libraryは、関数ライブラリ・ファイルに保存されているUserFunctionを現在の作業領域にマージします。

Merge Libraryは、指定されたファイルからすべてのUserFunctionをロードします（UserFunctionを作成するには、UserObjectのオブジェクト・メニューでMake UserFunctionを選択します。ライブラリを作成するには、複数のUserFunctionを作成してファイルに保存します）。

UserFunctionのライブラリをロードしたら、Callオブジェクトを使って関数を名前で実行する（呼び出す）ことができます。

注記

Merge Libraryは、複数のUserFunctionのライブラリを作成するという高度な操作のために使用します。UserFunctionのライブラリを作成した場合、これらの関数のソース・コードを1つの場所に保存できます。UserFunctionの使用法の詳細については、[Help] [image] [Content] [image] [以下の項目についての説明] [image] [ユーザ定義関数]を参照してください。

Merge LibraryでロードしたUserFunctionは、プログラム内にローカルに作成したUserFunctionと全く同様に動作します。UserFunctionは、Callオブジェクトを使うか、式を取る任意のオブジェクト（Formulaなど）にUserFunctionを指定することによって実行できます。Merge LibraryでロードされたUserFunctionは、VEE作業領域にマージされているので、編集も可能です。

関数とともに保存されているDefault Preferences（Trig Modeなど）はロードされず、使用されません。作業領域で現在有効なDefault Preferencesが引き続き使用されます。

Merge Libraryは、開きたいファイルの名前を選択するダイアログ・ボックスを表示します。ダイアログ・ボックスは、VEEプログラムのインストール・ディレクトリの下のlibディレクトリを指します。

埋込みI/O構成を持つプログラム・ファイルからMerge Libraryを行った場合、I/O構成はマージされません。埋込みI/O構成とマージを参照してください。

場所

File [image] Merge Library

関連項目

Call、Delete Library、Edit UserFunction、Import Library、Open、Save、Save Objects、UserFunction、UserObject


Merge Record

同じ種類の複数のレコードをマージして1つのレコードにするためのオブジェクト。

使用法

Merge Recordは、複数のレコードを1つのレコードにマージするために使用します。任意の数のスカラ・レコードをマージできます。すべての配列が同じ数の要素を持つ限り、任意の数のレコード配列をマージできます。

注記

任意の数の入力ピン（A、Bなど）を追加できますが、すべてがRecordデータ型でなければなりません。マージされたレコードはRecord出力ピンに出力されます。

マージするレコードは、重複するフィールド名を持っていてはなりません。フィールド名は入力レコードから取られます（入力端子名は無視されます）。

場所

Data [image] Access Record [image] Merge Record

関連項目

Build Record、From DataSet、Record Constant、Set Field、To DataSet、UnBuild Record、Properties（オブジェクト）


Message Box

ユーザへのメッセージを記したポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

Message Boxは、情報メッセージをユーザに表示するために使用します。ユーザはダイアログ・ボックスのボタンの1つを押すことによって応答します。ボタンのテキストはカスタマイズできます。

ポップアップ・ダイアログ・ボックスでボタンが押されると、そのボタンに対応する（同じ名前を持つ）出力ピンに1が出力されます。

オープン・ビュー

  • Message - Message Boxポップアップ・ダイアログ・ボックスに表示される情報の文字列。このフィールドのテキストに改行を入れるには\nを使用します。このパラメータはデータ入力として追加できます。デフォルトはUser Messageです。

  • Symbol - Message Boxポップアップ・ダイアログ・ボックスの左側に表示されるグラフィカル・イメージ。このパラメータはデータ入力として追加できます。

    • Question - 緑の円の中の白の疑問符。

    • Exclamation - 黄色の円の中の黒の感嘆符。

    • Information - 青の円の中の白の文字"i"。

    • Stop - 赤の六角形の中の白のテキスト"STOP"。

    • Blank - ポップアップにグラフィックを表示しない場合に使用します。

    • <Custom...> - 記号として使用する画像のグラフィックス・ファイルを選択するためのダイアログ・ボックスを表示します。
      ダイアログ・ボックスで:
      - Picture - ファイル・システム中のグラフィックス・ファイルの名前を入力します。表示されるディレクトリは、インストール・ディレクトリの下のbitmapsディレクトリです。別のディレクトリからファイルを選択するには、Browse...ボタンを押します。
      - Actual（デフォルト）は、グラフィック・イメージの実際のサイズに合わせて自動的にオブジェクトのサイズを変更します。
      オブジェクトのサイズが変更された場合、イメージは拡大縮小されません。- Scaledは、オブジェクトのサイズが変更されたときに、イメージのサイズを拡大縮小します。

このパラメータはデータ入力として追加できます。デフォルトはInformationです。

  • Buttons - Message Boxポップアップ・ダイアログ・ボックスの下部にあるボタンに表示されるテキスト。選択肢は次のとおりです。

  • OK

    • OK Cancel

  • Abort Retry Ignore

    • Yes No

    • Yes No Cancel

    • Retry Cancel

    • <Custom ...> - 最大3つのボタンのラベルのテキストを入力するためのダイアログ・ボックスを表示します。入力フィールドを空白にした場合、そのフィールドに対応するボタンは表示されません。

データ出力ピンは、Buttonsの選択に応じて自動的に設定されます。

  • Default - ユーザがEnterキーを押したときに選択されるボタン。表示される選択肢は、Buttonsの選択によって異なります。このパラメータはデータ入力として追加できます。デフォルトはOKです。

プロパティ

  • PopupTimeoutEnabled - このプロパティがTrueの場合、Timeout出力ピンがオブジェクトに追加されます。デフォルトはFalseです。

  • PopUpDuration - ポップアップ・ダイアログ・ボックスが表示されている時間の長さを設定します。この時間が過ぎると、ダイアログ・ボックスはタイムアウトし、Timeout出力ピンに値1が出力されます。Timeoutピンが実行された場合、他のすべての出力ピンはデータを持ちません。このフィールドが使用できるのは、Timeout Enabledチェックボックスが選択されている場合だけです。デフォルトは60秒です。

注記

ポップアップ・ダイアログ・ボックスのデフォルトの位置は、作業領域のほぼ中央です。ダイアログ・ボックスを移動すると、次のときには新しい場所にポップアップします。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたら、Enterキーを押すと左端のボタン、Escキーを押すと右端のボタンが選択されます。また、ボタンの間を移動するにはTabキーを、ボタンを選択するにはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

GeneralタブのPropertiesのTimeout EnabledをオンにしてTimeout出力ピンをオブジェクトに追加した場合、このピンを削除するにはTimeout Enabledをオフにする必要があります。オブジェクト・メニューの[Delete Terminal]やCtrl+D（Delete Terminalのショートカット）ではこの出力ピンは削除できません。

場所

Data [image] Dialog Box [image] Message Box

関連項目

File Name Selection、List Box、Int32 Input、Real64 Input、Text Input、UserObject、オブジェクト・メニュー

組み込みDialog Boxオブジェクトについて


Meter

スカラ数値をグラフィカルに表示するオブジェクト。

使用法

Meterは、アナログ・スケールとデジタル数値フィールドで値を表示するために使用します。

オープン・ビュー

Meterの最小値と最大値を設定するには、オブジェクトのオープン・ビューで現在の値をクリックし、新しい値を入力します。最小値が最大値より大きい場合、Meterの針の動作方向が（左→右から右→左に）変化します。

これらの値はコントロール入力として追加できます。

プロパティ

ClearAtPreRun - このプロパティがTrueの場合、Meterの内容はPreRun時にクリアされます。デフォルトはTrueです。

ClearAtActivate - このプロパティがTrueの場合、Meterの内容はアクティブ化時にクリアされます。デフォルトはTrueです。

Orientation - Meterの表示方法を設定します。Meterの方向がverticalの場合、最小値が上、最大値が下になります。デフォルトはHorizontalです。

ShowDigitalDisplay - このプロパティがTrueの場合、表示値のデジタル表示がオブジェクトのオープン・ビューの下部に追加されます。このプロパティがFalseの場合、デジタル表示は表示されず、オブジェクトの動作が高速になります。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - このプロパティがTrueの場合、スケールがリニアから対数に変わります。デフォルトはFalseです。

LabelSpacing - どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

Sub-Range Configuration カテゴリ:- 表示の各範囲に異なる色を設定します。色の範囲は、赤が下、緑が上で相互に重なり合います。これにより、スケールのそれぞれの端に赤（デフォルト）のサブ範囲が現れます。

Show Range - このプロパティがTrueの場合、サブ範囲の色がオブジェクトに表示されます。

Meter Range - サブ範囲のリミットを設定します。

ColorRange- 各範囲の色を設定します。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはTrueです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

入力データはScalarで、Real64に変換可能なものでなければなりません（Complex、PComplex、Spectrum、Coordは「解体」しておく必要があります）。

場所

Display [image] Indicator [image] Meter

関連項目

AlphaNumeric、Logging AlphaNumeric、Default Preferences

データをアナログ表示するには


Minimize All

VEEワークスペースのウィンドウを管理する機能。

使用法

Minimize Allは、開いているウィンドウのうち最小化されていないものをすべて最小化します。最小化されたウィンドウは、VEEワークスペースの最下部に小さいアイコンで表示されます。

場所

Window [image] Minimize All

関連項目

Arrange Icons、Cascade、Close All、Tile Horizontally、Tile Vertically


Minimize（オブジェクト・メニュー）

オブジェクトまたはウィンドウのオープン・ビューをアイコン化します。

使用法

Minimizeは、オブジェクトのアイコン・ビューを表示したり、VEEワークスペースで開いているウィンドウ（メイン、UserObject、UserFunction）を最小化したりするために使用します。

注記

Minimizeは、すべてのオブジェクトとウィンドウのオープン・ビューから使用できます。

ショートカット

オブジェクトまたはウィンドウを最小化するには、オブジェクトまたはウィンドウの右上（タイトル・バーの右側）にある最小化ボタンを使用します。

場所

オブジェクト・メニュー [image] Minimize

関連項目

Restore（オブジェクト・メニュー）


Miscellaneous Operators

Function & Object Browserの下にあるFormula型のオブジェクト。

使用法

Miscellaneous Operatorsオブジェクトの一般的な用途としては、3項演算子の使用、単純な配列の作成と読み取り、レコードのフィールドの読み取りがあります。

注記

Operator => Miscellaneousを選択すると、Function & Object BrowserのMember列にさまざまな演算子の例が表示されます。これらの例の1つをクリックすると、そのMiscellaneous Operatorがあらかじめ含まれたVEEオブジェクトが得られます。例のオブジェクトには次のものがあります。

(a?b:c) - 3項演算子。'a'が真（非0）の場合、'b'が出力されます。そうでなければ'c'が出力されます。

PI - 値3.14（小数点以下17桁まで）。円周と円の直径の比を表す超越数。

[1,2,3] - スカラから1次元配列を作成。

[a,b,c] - 種類が一致する部分から任意の次元の配列を作成。

a[2] - 配列の一部を返す。

a[5,3:4,*] - 複雑な配列の一部を返す。

rec.field - レコードの1つのフィールドを返す。

object.value - ActiveXオブジェクトのプロパティを取得。

場所

Device [image] Function & Object Browser [image] Operators [image] Miscellaneous

関連項目

Assignment、Function & Object Browser、3項演算子


Move（オブジェクト・メニュー）

このオブジェクトを移動します。

使用法

Moveは、作業領域のオブジェクトをドラッグして位置を変更するために使用します。

注記

Moveは他のオブジェクトとの接続を維持します。Automatic Line Routingが設定されている場合、ラインの再描画に多少時間がかかることがあります。

Moveはパネル・ビューと詳細ビューのどちらでも使用できます。

複数のオブジェクトを移動するには、対象のオブジェクトをすべて選択（CTRLキーを押しながらマウスの左ボタンでクリックするか、[Edit] [image] [Select All]を選択）してからドラッグします。

複数のオブジェクトを選択するには、オブジェクトの周りに長方形を描画する方法もあります。このためには、選択する領域の左上隅にマウスを置き、CTRLキーとマウスの左ボタンを押しながら、選択領域の右下隅までドラッグします。

移動によってオブジェクトがパネル・ビュー内で重なり合った場合は、オブジェクト・メニューの[Bring to Front]または[Send to Back]を使ってオブジェクトの配置を調整できます。

ショートカット

Moveを選択する代わりに、オブジェクトの上にカーソルを置きます。これにより、4つのコーナーの移動カーソルが表示されます。オブジェクトを（マウスの左ボタンで）ドラッグします。ポインタはオブジェクトの操作領域（ボタンや入力フィールドなど）以外の場所に置く必要があります。

場所

各オブジェクト・メニュー [image] Move

関連項目

オブジェクト・メニュー


Move File

指定された場所から新しい場所にファイルを移動します。同じ手順でファイルの名前を変更することもできます。

場所

System [image] File [image] Move File


MultiDevice Direct I/O

1つのトランザクション・ボックスで複数の計測器にデータを書き込んだり計測器からデータを読み取ったりするオブジェクト。

使用法

MultiDevice Direct I/Oは、さまざまなエンコードとフォーマットを異なるI/Oアドレスの計測器との間で入出力するために使用します。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。

Direct I/Oの操作:

READ:指定されたエンコーディングとフォーマットを使用して計測器からデータを読み取ります。

WRITE:指定されたエンコーディングとフォーマットを使用して計測器にデータを書き込みます。

EXECUTE:GPIB計測器の場合、Selected Device Clear、Go To Local、Remote、Group Execute Triggerのいずれかのコマンドを送信します。シリアル計測器の場合、BreakまたはResetを送信します。GPIO計測器の場合、Resetを送信します。VXIメッセージ・ベース計測器の場合、Selected Device Clear、Go To Local、Remote、Trigger、Lock Device、Unlock Deviceのいずれかのコマンドを送信します。

WAIT:特定の秒数だけ待ってから次のトランザクションを実行します。GPIB計測器またはVXIメッセージ・ベース計測器の場合、シリアル・ポール応答とマスクのビットごとのANDが0（ALL CLEAR）または0以外（ANY SET）になるまで待ちます。

GPIO計測器の場合のみ、READ操作ではIOSTATUS、WRITE操作ではIOCTLが使用できます。

VXI計測器の場合のみ、READおよびWRITE操作ではREGISTER:およびMEMORY:が使用できます。WAIT操作では、メモリまたはレジスタ・オフセット中の値とマスク値のANDが、ANYSET、ALL CLEAR、EQUALのいずれかの条件を満たすまで待つことができます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

ショートカット

データ端子を簡単に追加するには、入力／出力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに新しいデータ端子が追加されます。

データ端子をすばやく削除するには、端子表示領域にカーソルを置いて、CTRL+Dを押します。

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

注記

MultiDevice Direct I/OはDirect I/Oによく似ています。ただし、MultiDevice Direct I/Oは特定の測定器専用ではありません。各トランザクションは、さまざまなI/Oアドレスにある設定済みの任意の計測器と通信できます。トランザクション・ダイアログ・ボックスでは、使用可能な設定済み計測器の中から対象となる計測器を指定できます。

計測器設定の際に入力された計測器のデフォルト・アドレスを使用することも、別のアドレスを指定することもできます。計測器アドレスが異なる場合、Default Addressボタンをクリックすることにより、新しいテキスト・ボックスが表示されます。新しいアドレス値または変数名をボックスに入力します。

場所

I/O [image] Advanced I/O [image] MultiDevice Direct I/O

関連項目

Advanced I/O、Component Driver、Direct I/O、Formula、Instrument Manager、Panel Driver、To/From VXIplug&play

Direct I/Oを使ってデータを読み取るには

Direct I/Oオブジェクトを使用するには

Properties（オブジェクト）

MultiInstrument Direct I/Oオブジェクトの使用法

トランザクションを編集するには


New

作業領域をクリアします。

使用法

Newは、作業領域をクリアするために使用します。

注記

Newを選択したときにプログラムが保存されていない場合、変更を保存するためのプロンプトが表示されます。

NewはPasteバッファはクリアしません。NewはデフォルトのPreferences設定をデフォルト・ファイルVEE.RCから読み込みます。

NewはSaveおよびOpenコマンドが使用するディレクトリ・パスを保持します。

ショートカット

プログラムをクリアするにはCTRL+Nを押します。

場所

File [image] New

関連項目

Default Preferences


Next

Repeat [image] オブジェクトにただちに次の反復を開始させるオブジェクト。

使用法

Nextは、反復サブスレッドの残りのオブジェクトを実行せずに、現在のループの次の反復に移るために使用します。

Nextが反復サブスレッド上にない場合、サブスレッドのすべての実行が停止されます。

注記

Nextは、If/Thenオブジェクトと組み合わせて条件付きで反復を制御するために多く用いられます。

場所

Flow [image] Repeat [image] Next

関連項目

Break、For Count、For Log Range、For Range、If/Then/Else、On Cycle、Until Break

VEEプログラムの一部をループするには

Properties（オブジェクト）


NI-FGEN

VEEでNI-FGENを使用した場合、いくつかのトランザクションによって「ハンドル」が作成されます。この例をいくつか示します。

  • AGniFgen_CreateFreqList

  • AGniFgen_CreateWaveformF64

  • AGniFgen_CreateWaveformI16

  • AGniFgen_CreateWaveformFileI16

  • AGniFgen_CreateWaveformFileF64

  • AGniFgen_CreateWaveformFileHWS

  • AGniFgen_CreateArbSequence

  • AGniFgen_CreateAdvancedArbSequence

  • AGniFgen_AllocateWaveform

これらのハンドルは、出力ピンによってトランザクションから返され、プログラム中の他のオブジェクトに渡すことができます。また、同じTo/From NI-FGENオブジェクト内部の他のトランザクションで使用することもできます。出力の生成が終わったら、上記のトランザクションで作成されたSequence/Waveform/Frequency-Listハンドルをクリアする必要があります。上記のトランザクションのそれぞれには、対応する「クリア」トランザクションがあります。これらは入力ピンでハンドルを受け取ります。例:

"AGniFgen_ClearFreqList"の前の"AGniFgen_AbortGeneration"トランザクションに注目してください。

関連項目

To/From NIDAQ、NI-SCOPEのFetch/Read関数、NI-DAQmx、VEEでのNIデータ収集の使用方法


NI-SCOPEのFetch/Read関数

波形データを返すNI-SCOPE関数の中には、VEEの機能と互換性のない方法でデータを返すものがあります。VEEは構造体へのポインタを扱えません。以下の関数については注意が必要です。

  • AGniScope_Fetch

  • AGniScope_FetchArrayMeasurement

  • AGniScope_FetchBinary8

  • AGniScope_FetchBinary16

  • AGniScope_FetchBinary32

  • AGniScope_Read

これらの関数の動作は、NI-SCOPEに関するNational Instrumentsのオンライン・ヘルプの説明とは多少異なっています。第1に、VEEでは一度に1つのチャネルのFetch/Readしか実行できません。ユーザが複数チャネルの収集を設定した場合、各チャネルのデータを1チャネルずつ取得するために、複数のFetch/Readを実行する必要があります。第2に、以下のフィールドを持つniScope_wfmInfo構造体へのポインタを返すことができません。

wfmInfo

struct niScope_wfmInfo

各波形に関する以下のタイミング／スケーリング情報を持つ構造体の配列を返します。

  • relativeInitialX - トリガから取得された波形の最初のサンプルまでの時間（秒単位）

  • absoluteInitialX - 最初に取得されたサンプルのタイムスタンプ（秒単位）。これは異なるレコードや収集の間で比較できます。デジタイザは連続収集をサポートする必要があります。

  • xIncrement - 収集された波形のポイントの間の時間（秒単位）

  • actualSamples - 取得されて波形配列に格納されたサンプルの実際の数

  • gain - 指定されたチャネルの利得係数。次の式によってバイナリ・データをスケーリングするために使用できます。

  • offset - 指定されたチャネルのオフセット係数。次の式によってバイナリ・データをスケーリングするために使用できます。

電圧=バイナリ・データ*利得係数+オフセット

その代わりに、VEEはViReal64のrelativeInitialXとViReal64のxIncrementを別々のパラメータ値として返します。absoluteInitialX、actualSamples、gain、offsetにアクセスしたい場合、AGniScope_GetAttributeViReal64()に適切な属性IDを与えて呼び出します。VEEから返された値を使って、次の方法でVEE波形を作成できます。

上記のVEEプログラムは、複数フェッチ／2チャネルの収集を示します。

関連項目

To/From NIDAQ、NI-FGEN、NI-DAQmx、VEEでのNIデータ収集の使用方法


Noise Generator

雑音データの波形を発生するオブジェクト。

使用法

Noise Generatorは、シミュレートされた白色ノイズ波形を発生するために使用します。

オープン・ビュー・パラメータ

これらのパラメータはすべて、オープン・ビューで設定することも、データ入力として追加することもできます。

Amplitude - 最大値と最小値の絶対値。デフォルトは1です。Amplitudeより大きい値はありません。-Amplitudeより小さい値はありません。

Time Span:- 波形の持続時間（秒単位）。デフォルトは20m。

Num Points:- 波形のポイント数。波形のポイントの間の時間は、Time Span/Nとなります。Num Pointsは正でなければなりません。デフォルトは256です。

場所

Device [image] Virtual Source [image] Noise Generator

関連項目

Build Arb Waveform、Build Waveform、Comparator、Function Generator、Pulse Generator、Properties（オブジェクト）


Note Pad

編集可能なRich Text Format（RTF）ダイアログ・ボックスに、ユーザが入力した情報が表示されます。NotePadダイアログ・ボックスを開いたときには、ダイアログ・ボックスの機能を説明するためのデフォルトのNotePadエントリが表示されます。デフォルトのNotePadエントリを独自に作成するには、installdir\templatesの下のnotepad.rtfファイルを編集します。NotePadダイアログ・ボックスを空白にしたい場合は、notepad.rtfを編集して空白にするか、このファイルを削除します。

使用法

Note Padは、プログラムのドキュメントを記述したり、パネル・ビューにラベルを付けたり、注記を記入したりするために使用します。

オープン・ビュー・パラメータ

Note Padに情報を入力するには、パネルをクリックし、注記を入力するか、RTFを作成できるアプリケーションにテキストを入力してから、テキストを切り取ってNote Padに貼り付けます。

オブジェクト・メニュー

Insert File...- 既存のテキストまたはRTFファイルを選択してNote Padに挿入するためのダイアログ・ボックスを表示します。

Clear All - Note Padのすべてのテキストをクリアします。操作を確認または中止するためのダイアログ・ボックスが表示されます。

プロパティ

EditingEnabled - このプロパティがTrueの場合、パネル中のテキストは編集できます。選択されていない場合、編集はできません。これは、Note Padがパネル・ビュー上にあり、他のユーザが注記を変更できないようにしたい場合に便利です。

注記

各Note Padはスタンドアロンのオブジェクトであり、他のオブジェクトには接続されません。

編集またはサイズ変更を行うと、必要に応じてNote Padのスクロール・バーが現れたり消えたりします。

テキスト領域の編集には、VEEの通常の編集機能がすべて使用できます。

Notepadはリッチ・テキスト・フォーマット（RTF）を使用し、ワード・ラップが有効になっています。Notepadには任意のRTFドキュメントを切り取って貼り付けることができます。

Notepadのテキストは印刷できますが、常にテキストのみで印刷されます。

Notepadエントリのテンプレートを作成するには、%installDir%\TemplatesにあるNotepad.rtfファイルを編集します。

場所

Display [image] Note Pad

関連項目

説明

プログラムのドキュメントを作成するには


Now（システム・メニュー）

Now

システム時刻および日付を取得します。

場所

System [image] DateTime [image] Now


オブジェクト・メニュー

すべてのオブジェクトに存在するメニューで、そのオブジェクトに関連する項目を含みます。

使用法

オブジェクト・メニューは、オブジェクトのステータスの設定、編集、コントロールの設定、端子の追加と削除に使用します。

オブジェクト・メニューは、次のオブジェクト操作にアクセスするために使用します。

Restore

Move

Size

Minimize

Clone

Replace

Help

Properties

Description

Add Terminal

Data Input

Control Input

Data Output

Error Output

Delete Terminal

Input

Output

Delete

オブジェクト・メニューは、メイン・ウィンドウ、UserObject、またはUserFunctionのパネル・ビューに配置されたオブジェクトに対する以下の操作にアクセスするために使用します。

Move

Size

Properties…

Go To Detail View

Delete

注記

多くのオブジェクト・メニューには、そのオブジェクトに固有の追加のメニュー項目があります。これらのオブジェクト・メニュー項目の詳細については、各オブジェクトに関する説明を参照してください。

ほとんどのオブジェクトには、Propertiesウィンドウにそのオブジェクトに固有の追加オプションがあります。これらのオブジェクト・プロパティの詳細については、各オブジェクトに関する説明を参照してください。

ショートカット

オブジェクトを削除するには、オブジェクト・メニュー・ボタン（オープン・ビューに存在）をダブルクリックします。

To access the Properties window, click the toolbar button [image].

選択されたオブジェクトに関するヘルプを表示するには、F1を押します。

場所

オブジェクトのオブジェクト・メニューを表示するには、オブジェクトの上にマウス・ポインタを置いて、マウスの右ボタンをクリックします。UserObjectのオープン・ビューのオブジェクト・メニューを表示するには、タイトル・バーまたは端子の上にポインタを置く必要があります。そうしないと、編集メニューが表示されます。

オープン・ビューでオブジェクト・メニューを表示するもう1つの方法としては、オブジェクト・メニュー・ボタン（タイトル・バーの左端にある真ん中に棒の入った四角形）にマウス・ポインタを置き、マウスの左ボタンを押します。

関連項目

Move（オブジェクト・メニュー）、Size（オブジェクト・メニュー）、Minimize（オブジェクト・メニュー）、Restore（オブジェクト・メニュー）、Replace、Clone（オブジェクト・メニュー）、Help（オブジェクト・メニュー）、Properties（オブジェクト）、Description、Add Terminal、Delete Terminal、Control Input（オブジェクト・メニュー）、Data Input（オブジェクト・メニュー）、Data Output（オブジェクト・メニュー）、Error Output（オブジェクト・メニュー）、Cut（オブジェクト・メニュー）


OK

ボタンが押されるまでサブスレッドの実行フローを休止するオブジェクト。

使用法

OKは、ユーザの応答を待つために使用します。

プロパティ

Assign to Function Key - このプロパティがTrueの場合、指定されたファンクション・キーが詳細ビューまたはパネル・ビューで押されたときにこのオブジェクトは実行されます。1つのファンクション・キーを複数のOKオブジェクトに割り当てることもできます。デフォルトはFalseです。

Assign to Enter Button - このプロパティがTrueであり、プログラムがパネル・ビューから実行されている場合、キーボードのEnterキーを押すとオブジェクトが実行されます。Enterキーに割り当てられるOKオブジェクトは1つのコンテキストにつき1つだけです。複数のOKオブジェクトに割り当てようとすると、前の設定が解除されます。このプロパティは、OKオブジェクトをカスタム・ダイアログ・ボックスの[OK]ボタンとして使用する場合に便利です。デフォルトはFalseです。

Assign to Escape Button - このプロパティがTrueであり、プログラムがパネル・ビューから実行されている場合、キーボードのEscキーを押すとオブジェクトが実行されます。Escキーに割り当てられるOKオブジェクトは1つのコンテキストにつき1つだけです。複数のOKオブジェクトに割り当てようとすると、前の設定が解除されます。このプロパティは、OKオブジェクトをカスタム・ダイアログ・ボックスの[Cancel]ボタンとして使用する場合に便利です。デフォルトはFalseです。

注記

OKは、ダイアログ・ボックスを作成する場合や、Selection Control定数との組み合わせで多く用いられます。

OKのボタン部分は、オブジェクトが動作するまでアクティブになりません。

スレッドを継続するには、Goデータ出力ピンまたはシーケンス出力ピンを使用します。

[Data] [image] [Constant]の下のオブジェクトを使用している場合には、スレッドの実行を休止する別の方法として、Wait for Inputプロパティが使用できます。

場所

Flow [image] Confirm (OK)

関連項目

Gate、JCT、Start、Stop、オブジェクト・メニュー

ファンクション・キーにボタンを割り当てるには

OKボタンをEnterまたはEscキーに割り当てるには

基本的なダイアログ・ボックスを構築するには

ポップアップ・パネルを表示しておくには


On Cycle

指定された間隔でサブスレッドの実行を開始するオブジェクト。

使用法

On Cycleは、周期的に繰り返すサブスレッドを実行するために使用します。On Cycleの出力は、現在の日付と時刻です。この日付と時刻は、Time Stamp数値フォーマットをサポートする任意のオブジェクトに表示できます。

On Cycleは、特定の間隔で計測器をトリガするために使用できます。

オープン・ビュー・パラメータ

反復周期の秒数を入力フィールドに入力するか、入力として与えます。この値が0または-1の場合、On Cycleは連続的に動作します（Until Breakと同じ）。

注記

On Cycle出力から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復タイマはリセットされ、指定された秒数が経過した後でサブスレッドは再びアクティブにされます。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復タイマはリセットされます。

On Cycleは指定された時間周期で動作を開始します。スレッドの終了までにかかる時間がOn Cycleオブジェクトの周期よりも長い場合、次の反復はその次の周期同期点から開始されます。例えば、On Cycleの周期が1秒で、そこから始まるスレッドの終了までに1.5秒の時間がかかる場合、次の反復はスレッドの終了後0.5秒経ってから始まります。

次の時間周期が始まるのを待つ間、On Cycleは「スリープ」しており、同じスレッドまたは別のスレッドの他のオブジェクトが動作することができます。

On Cycleオブジェクトから始まるサブスレッドが反復を終了した場合、前の反復中に送られたすべてのデータ・コンテナは次の反復の前に無効になります。これは、前の反復の「古い」データが次の反復に再使用されるのを防ぐためです。ただし、反復サブスレッドの中にフロー分岐が存在する場合、一部のオブジェクトはすべての反復で動作しない可能性があります。したがって、これらのオブジェクトから送られるデータ・コンテナは、他のオブジェクトがそのデータを使って実行する前に無効になる可能性があります。このような場合に必要な伝達を実現するには、Sample & Holdオブジェクトを使用します。

場所

Flow [image] Repeat [image] On Cycle

関連項目

AlphaNumeric、Break、For Count、For Log Range、For Range、Next、Sample & Hold、Until Break、Properties（オブジェクト）

VEEプログラムの一部をループするには


Open

作業領域にプログラム・ファイルをロードし、既存のプログラムを置き換えます。

使用法

Openは、以前に保存されたプログラムをVEEに読み込んで実行または編集するために使用します。ファイルが存在するディレクトリに移動し、ファイル名をクリックし、[OK]を押します。プログラムが画面上に表示されます。

注記

Openは、開きたいプログラム・ファイルの名前を選択するダイアログ・ボックスを表示します。VEEがファイルをロードしている間は、ポインタ・アイコンが砂時計に変わります。

Openでは、Save Objects、Save、Save Asで保存されたファイルを開くことができます。

ショートカット

ファイルを開くにはCTRL+Oを押します。

場所

File [image] Open

関連項目

Merge、Save、Save Objects、VEEプログラム・ファイルを開くには


OS Version

ホスト・システムのオペレーティング・システム・バージョンを取得します。

場所

System [image] Environment [image] OS Version


Outputウィンドウ

Outputウィンドウには、Agilent VEEプログラムのロード、作成、デバッグ、実行中に発生した警告／エラー・メッセージが記録されます。

ウィンドウ情報

出力枠リスト

2つの出力枠が選択できます。一般枠は、プログラムのロードまたは作成中に発生した警告／エラー・メッセージを表示するために用いられます。プログラムのデバッグまたは実行中に発生したすべての警告／エラー・メッセージは、デバッグ枠に表示されます。

出力枠の注意メッセージのフォーマットは次のとおりです。

CAUTION Source: VEEオブジェクト型（オブジェクトID） Message: メッセージ

COMPILER WARNING Source: VEEオブジェクト型（オブジェクトID） Message: メッセージ

Outputウィンドウのコンパイラ警告をダブルクリックすると、警告を発生したVEEオブジェクトがワークスペースに表示されます。

出力枠のエラー・ メッセージのフォーマットは次のとおりです。

Error Number: n Source: VEEオブジェクト型（オブジェクトID） Message: メッセージ

Outputウィンドウのエラーをダブルクリックすると、エラーを発生したVEEオブジェクトがワークスペースに表示されます。

出力枠

出力枠リストで選択された枠の出力を表示します。

現在の出力枠のメッセージをクリアするには、 [image] ボタンをクリックします。新規プログラムを作成するか、既存のプログラムを開いた場合、出力枠は自動的にクリアされます。

場所

メイン・メニューのView => Output

ツールバーで [image] をクリック

関連項目

ツール・ウィンドウを整列／ドッキングするには


Pad Left

指定した文字で文字列の左側を埋めます。

場所

System [image] String [image] Pad Left


Pad Right

指定した文字で文字列の右側を埋めます。

場所

System [image] String [image] Pad Right


パネル・ドライバ

対応する物理計測器のすべての機能設定をオブジェクトのオープン・ビューに表示されている制御パネルの設定と一致させる計測器制御オブジェクト。

使用法

Panel Driverを使うと、オープン・ビューに表示された制御パネルを使って計測器の状態を制御できます。Panel Driverを使用するには、目的の計測器に対する計測器ドライバがインストールされている必要があります。

Panel DriverオブジェクトをVEE作業領域に追加するには、I/O [image] Instrument Managerをクリックして、Instrument Managerダイアログ・ボックスを表示します。設定済みの計測器のリストを見て、使用したい計測器のエントリがあるかどうかを調べます。

使用したい計測器がリストに存在し、正しく設定されている場合:

1. 計測器エントリを1回クリックして強調表示します。

2. Panel Driverをクリックして、その計測器に対する計測器パネルを追加します。

必要な計測器がリストにない場合、またはリストにあるが正しく設定されていない場合は、追加または設定する必要があります。Instrument Manager、Instrument Properties、Advanced Instrument Propertiesを参照してください。

パネル・ドライバの使用の詳細については、Help [image] Content [image] Tell me about... Instrument Control Fundamentals [image] Introduction to Panel Drivers and Component Driversを参照してください。

オブジェクト・メニュー

Add Terminal by Component [image] Select Input Component - Panel Driverへの入力としてパネルに表示されるフィールドを追加するために使用します。

Add Terminal by Component [image] Select Output Component - Panel Driverへの出力としてパネルに表示されるフィールドを追加するために使用します。

Show Config - 計測器の構成を表示します（この構成はI/O [image] Instrument Managerで見ることができます）。

Sync - 以下の条件のときに、計測器ドライバの状態を計測器の状態に同期します。

IDコードに同期コンポーネントが含まれる。

IDでライブ・モードがオンになっている。

注記

パネル・ドライバは、Live Modeをオフにして動作させることができます。これにより、計測器がコンピュータに接続されていなくても、計測器と通信せずにプログラムを実行することができます。すなわち、プログラムを物理計測器と通信させるには、Live Modeをオンに設定する必要があります（Advanced Instrument Propertiesを参照）。

パネル・ドライバは、対話的に使用することも、プログラムから使用することもできます。個々のコンポーネントの値を設定するには、コンポーネントの値を含むフィールドをクリックし、表示されるダイアログ・ボックスに記入します。測定を実行して結果を表示するには、Panel Driverオープン・ビュー内部の対応する測定数値またはXY表示をクリックします。

1台の計測器を複数のオブジェクトで制御する場合もあります。すなわち、2つのPanel Driverオブジェクトで同じプログラムのfgenを制御できます。これらのオブジェクトは、動作したときにステート・リコールを実行します。

Panel Driverのコンポーネントに対して（Component Driverの場合と同様に）入力と出力を追加できます。入力は、コンポーネントに対する設定動作、パネル設定動作、連動動作を実行します。コントロール・ピンを入力として使用することにより、計測器を初期化したり、プログラムから計測器アドレスを変更したり、タイムアウト値を設定したり、同期信号を送信したりすることができます。出力は、読み取り動作、パネル読み取り動作を実行します。

場所

I/O [image] Instrument Manager

関連項目

Advanced Instrument Properties、Add Terminal、Component Driver、Direct I/O、Instrument Manager、Instrument Properties、To/From VXIplug&play

パネル・ドライバ・オブジェクトを使ってデータを読み取るには


Paste

Pasteバッファのコピーを作業領域に配置します。

使用法

詳細ビューで[Cut]、[Copy]、[Clone]のいずれかを使用した後で、[Paste]を使用してオブジェクト・セットのコピーを取得します。

[Paste]を使うと、[Cut]で間違って削除したオブジェクトを復元できます。オブジェクトとの間の接続も復元されます。

注記

Pasteバッファは、1つのオブジェクト・セットしか保持できません。Pasteバッファは、[Clone]、[Cut]、[Copy]を実行するたびに置き換えられます。

Pasteバッファは、[Open]、[Merge]、[New]を実行してもクリアされません。

[Paste]で貼り付けられるのはオブジェクトだけで、テキストは貼り付けられません。テキストの切り取り／コピー／貼り付けには、キーボードのキーを使用します。テキストを強調表示してから、Ctrl-C（コピー）またはCtrl-X（切り取り）を押し、次に新しい場所をクリックしてCtrl-V（貼り付け）を押します。

場所

Edit [image] Paste

関連項目

Clone（オブジェクト・メニュー）、Copy、Cut、Cut（オブジェクト・メニュー）、Replace


Pause

すべてのスレッドの実行を一時的に停止させるボタン。

使用法

[Pause]は、プログラム実行を一時停止させるために使用します。[Pause]を選択した後、[Resume]を選択すると実行を継続できます。

注記

[Pause]を選択すると、プログラムは「休止」状態になります。[Resume]機能と[Step]機能がアクティブになり、これらを使ってプログラムを続行できます。

ショートカット

実行中のプログラムを休止するにはCTRL+Pを押します。

場所

Debug [image] Pause

関連項目

Call Stack、Line Probe、Default Preferences、Run/Resume、Run、Show Data Flow、Show Execution Flow、Step Into、Step Over、Step Out、Stop、Stop（オブジェクト）、Toggle Breakpoint

プログラムをステップ実行するには


PComplex

定数のPComplexスカラまたはArray 1Dを出力するオブジェクト。

使用法

PComplexは、極座標複素数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

PComplexをパネル・ビュー上のプロンプトとして使用するには、PComplexオブジェクトの名前をEnter the AC voltage:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

(2,@PI/2)のように入力すると、PComplex Constant式が計算されます。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

ArraySize:- DataShape 1D Arrayを選択した場合、Sizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはFalseです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は(0, @0)です。

InitializeAtPreRun - このプロパティがTrueの場合、Initial ValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1DのPComplex値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

PComplexが配列として構成されている場合でも、Initial Valueフィールドは常にスカラです。

Trig Modeは位相値の単位を指定します。Trig Modeは、グローバルに設定することも、各コンテキスト（UserObjectおよびUserFunction）で設定することもできます。

MagnitudeとPhaseの値を（カンマで区切って）入力すると、VEEが自動的にフォーマットします。

場所

Data [image] Constant [image] PComplex

関連項目

Alloc PComplex、Complex、Constant、Coord、Date/Time、Selection Control、UInt8、UInt16、Int16、Int32、Int64、Real32、Real64、Text、Boolean、 Default Preferences、Toggle Control

データ定数を使用するには


Phase Spectrum

スペクトラムの振幅を位相角の関数としてグラフィカルに表示するオブジェクト。

使用法

Phase Spectrumは、SpectrumまたはWaveformの位相対周波数を（周波数ドメインで）表示するために使用します。Waveformはフーリエ変換によって自動的にSpectrumに変換されます。X軸は入力スペクトラムのサンプリング単位です。Y軸の単位は現在のTrig Mode設定です。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Phase - Y軸の名前。

Trace1 - 最初のトレースの名前。

Freq - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、[Scales]プロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 Show AutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType - Lines。メジャー・グリッドに線、マイナー・グリッドに目盛を表示します。X軸とY軸は太線で表示されます。

Markers Category:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、オープン・ビューに移り、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

 NumMarkers - グラフに表示されるマーカ数。デフォルトはNoneです。

 MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

DisplayBackColor - 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。

ScaleLabelFont- スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Tracesグループ:（各トレースに1つずつ）

Name - グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color - トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトはyellow（黄色）です。

LineStyle - データ・ポイントを接続する線のフォーマット。デフォルトは連続線です。

PointStyle - 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはオンです。これをオフにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- xデータとyデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles:- Automatic Scalingがオンのときに表示されるデケードの最大数（xとyの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

ScaleNumberFormat:（X/Yスケール、および追加のYスケールに対して存在するプロパティ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

入力の型は、Spectrum、Waveform、Coord（ScalarまたはArray 1D）のいずれかでなければなりません。

Coord型の入力データは、Spectrum型に変換されず、単にxとyの値を使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

AutomaticScalingプロパティがTrue（Sc alesカテゴリ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesウィンドウを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Spectrum (Freq) [image] Phase Spectrum

関連項目

Magnitude Spectrum、Magnitude vs Phase、Spectrum (Freq)、Default Preferences、オブジェクト・メニュー

波形を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには


Picture

グラフィック・イメージを表示するために用いられるオブジェクト。

使用法

Pictureは、詳細ビューまたはパネル・ビューにグラフィック・イメージを表示するために使用します。画像を並べて表示したり、引き伸ばしたり、切り詰めたりすることができます。グラフィックス・ファイル名はPictureオブジェクトへのデータ入力として追加できます。

プロパティ

Picture Category:

Pictureは、このオブジェクトに表示するグラフィックス・ファイルをファイル・システムから選択するために使用します。表示されるディレクトリは、インストール・ディレクトリの下のbitmapsディレクトリです。別のディレクトリからファイルを選択するには、[Browse ...]ボタンを押します。ファイル名はデータ入力として追加できます。

Actual | Centered | Scaled | Tiled
-- Actualを選択すると、グラフィック・イメージのサイズに合わせてオブジェクトのサイズが自動的に変更されます。オブジェクトのサイズが変更された場合、イメージは拡大縮小されず、オブジェクトの左上隅に表示されます。
-- Centeredを選択すると、イメージは固定サイズで表示され、オブジェクトのサイズが変更された場合でも常にオブジェクトの中央に表示されます。
-- Scaledを選択すると、オブジェクトのサイズが変更された場合にイメージは拡大縮小されます。拡大縮小には多少時間がかかる場合があります。
-- Tiledを選択すると、オブジェクト上にイメージを縦横に並べて表示することにより、「壁紙」のような効果を出すことができます。

Preview - 現在選択されているグラフィック・イメージを表示します。

VEEはファイルを調べてファイル・フォーマットを判定します。現在サポートされているフォーマットは次のとおりです。

ビットマップ（*.BMP）

JPEG（*.JPG）

Windowsメタファイル（*.WMF）

GIF87a（*.GIF）

GIF89（*.GIF）

Portable Network Graphics（*.PNG）

デフォルトのビットマップは、VEEプログラムのインストール・ディレクトリの下のbitmapsディレクトリにあります。

注記

サイズ・プロパティをActual以外に設定した場合、オブジェクトのデフォルトの背景色はパネル・ビューのデフォルトの色と同じなので、背景はパネル・ビューに溶け込みます。

UserObjectまたはUserFunctionパネルには、Pictureオブジェクトをパネル上に配置する以外に、背景のグラフィックを指定することもできます。

GIF89のサポートは、単一フレームに限られ（アニメーションGIFは非サポート）、透明の背景色は使用できません。

場所

Display [image] Picture

関連項目

Label、Beep、UserObject

パネルにピクチャを追加するには


Plug&playデバイスの設定

Plug&play計測器をVEEから使用するための設定を指定または変更します。

使用法

このダイアログ・ボックスは、設定済みの計測器のリストで計測器を追加したり編集したりするために使用します。

Plug&playドライバによっては、一部のプラットフォームをサポートしないものがあります。また、VTL/VISAのいくつかのバージョンは一部のプラットフォームでサポートされません。各ベンダに確認してください。

ダイアログ情報

Advanced Instrument Propertiesダイアログ・ボックスのPlug&play Driverタブは、次の領域に分かれています。

Plug&play Driver Name:- ドライバの名前を選択します。インストールされているドライバが選択できます。これはドライバが存在するディレクトリでもあります。このフィールドは必須です。ドライバのデフォルトの場所は次のとおりです。

Windows NT:C:\VXIPNP\WINNT

Parameters to init() call

Address:- 計測器を識別するアドレスの数字を入力します。アドレスのフォーマットは、計測器が接続されているインタフェースによって異なります。

- VXIアドレス文字列。内蔵またはMXIbusコントローラを持つVXI計測器の場合、アドレス文字列の形式はVXI[ボード]::VXI論理アドレス[::INSTR]です。例えば、論理アドレス24の計測器の場合はVXI::24::INSTRのようになります。

- GPIB-VXIアドレス文字列。コマンド・モジュールに接続されたGPIBカードから制御されるVXI計測器の場合、アドレス文字列の形式はGPIB-VXI[ボード]::VXI論理アドレス[::INSTR]です。例えば、論理アドレス24の計測器の場合はGPIB-VXI0::24::INSTRのようになります。

- GPIBアドレス文字列。GPIBカードから制御されるVXI以外の計測器の場合、アドレス文字列の形式はGPIB[ボード]::GPIB 1次アドレス::[GPIB 2次アドレス][::INSTR]です。例えば、1次アドレス4、2次アドレス24の計測器の場合はGPIB0::4::24::INSTRのようになります。

Perform Identification Query - このチェック・ボックスが選択されている場合、このドライバの関数パネルが最初に実行されたときに、計測器の識別情報がチェックされます。通常は、このチェック・ボックスを選択しておきます。

Perform Reset - このチェック・ボックスが選択されている場合、このドライバの関数パネルが最初に実行されたときに、計測器は既定義の状態に初期化されます。通常は、このチェック・ボックスを選択しておきます。

注記

Plug&play Driver Nameフィールドでは、すでにインストールされているドライバの中からドライバ名を選択できます。各ドライバに必要なファイルのセットをインストールするには、計測器ドライバに付属する説明を参照してください。VXIplug&playドライバはハードウェア・ベンダが作成し、計測器に付属しています。

1台の計測器を複数のオブジェクトで制御する場合もあります。また、同じドライバの複数のコピーがそれぞれ異なる物理計測器を制御する場合もあります。どちらの場合も、どのオブジェクトがどの計測器を制御するかは設定された名前によって決まります。

場所

I/O [image] Instrument Manager.Add…またはPropertiesボタンを押してInstrument Propertiesダイアログ・ボックスを表示します。Advancedボタンを押します。

関連項目

Direct I/O、Instrument Manager、Instrument Properties、Panel Driver、To/From VXIplug&play


Polar Plot

極座標のグラフィカル・プロットを表示するオブジェクト。

使用法

Polar Plotは、半径と角度のデータに関して別々の極座標情報が利用できる場合に、値を極座標スケールに表示するために使用します。

複数のトレースをプロットする場合、Polar Plotオブジェクトを1回実行するたびに、各トレースの半径入力データに対して1つの角度入力データが使用されます。すなわち、すべてのトレースで共通の角度入力が用いられます。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Y name - 半径スケールの名前。

Span:- 表示の垂直次元。原点が表示の中心にある場合、Spanは半径の2倍です。このパラメータは、表示のスケールを制御します。デフォルトは2です。

RData1 - 最初のトレースの名前。

Polar Reference Location - 表示される極座標プロットの部分を指定します。これは当該領域までスクロールするより高速です。入力フィールドで基準点を変更すると、指定された表示上の点（Centerなど）が指定された座標（(0, @0)など）までスクロールします。

Ref Radius:- 太い目盛円の半径値。

オブジェクト・メニュー

Auto Scale [image] Auto Scale - トレース全体が表示されるように表示のスケールをただちに変更します。Auto Scaleは極座標の基準位置をCenter (0,@0)にリセットします（コントロール・ピンとして追加することも、Scalesプロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale X - 使用不可。

Auto Scale Y - 使用不可。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。 Next Curveコントロール・ピンは、マトリクス入力グラフでは使用できません。マトリクス入力グラフを参照してください。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つの半径軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

MatrixInput - このプロパティがTrueの場合、Polar Plotは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。MatrixInputプロパティがTrueに設定されているPolar Plotオブジェクトは、マトリクス入力グラフと呼ばれます。

このMatrixInputプロパティをTrueに設定できるのは、Next Curveコントロール・ピンがなく、Polar Plotにただ1つの入力データ・ピンがある場合だけです。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

MatrixInputプロパティはパネル・ビューでは使用できず、実行時にプログラムで切り替えることはできません。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EnableEditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EnableEditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EnableEditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType - デフォルトはLinesです。

Smith Chart - データをスミス・チャート（「インピーダンス・チャート」とも呼ぶ）に表示します。マーカ値は、実数と虚数のインピーダンスで与えられます。太線の円は「基準半径」であり、その半径が表示の右下隅に表示されます。スミス・チャートのグリッドとマーカが正しいスケールの値を示すのは、入力データが正規化されている場合に限ります。データを正規化するには、すべての振幅を特性インピーダンスで除算します。

Inv Smith Chart - データを逆スミス・チャート（「アドミタンス・チャート」とも呼ぶ）に表示します。逆スミス・チャートは、スミス・チャートと同じ方法で使用しますが、グリッドとマーカの値がインピーダンス値でなくアドミタンス値である点が異なります。

Markers Category:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

NumMarkers - グラフ上のマーカ数。

MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

BackColor- 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。

Traces Group:（各トレースに1つずつ）

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。デフォルトはyellowです。

LineStyle:- データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle:- 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scales:- 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数の半径スケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはオンです。これをオフにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Vertical Span:- 表示の垂直次元。デフォルト値は2です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

Reference Corner:- 表示される極座標プロットの部分を指定します。これは当該領域までスクロールするより高速です。Reference Valueを変更すると、指定されたグラフの部分（Centerなど）が指定された位置（(0, @0)など）までスクロールします。デフォルト値はCenterです。

Reference Value:- 極座標プロットで使用される座標値を定義します。デフォルト値は(0, @0)です。

注記

MatrixInputプロパティがFalseの場合、入力は、Real64型に変換できるScalarまたはArray 1Dでなければなりません。

MatrixInputプロパティがTrueの場合、Polar Plotは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。

角度単位は現在のTrig Modeです。

入力はすべて同じサイズと種類でなければなりません。入力データのマッピング情報は無視されます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

Automatic Scalingプロパティがオン（Scalesタブ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のものが必要です。

以下のフィールドのうち必要なもの。

Name、Name1、Name2、Name3 - テキスト値。

Span、Span1、Span2、Span3 - 整数または実数値。

RefPt - PComplex。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesダイアログ・ボックスを開きます。Design lタブでDeclared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Polar Plot

関連項目

Complex Plane、Magnitude Spectrum、Magnitude vs Phase、Spectrum (Freq)、Strip Chart、Waveform (Time)、Default Preferences

極座標データを表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには


Pop-Up List

Selection Controlを参照してください。


Print

Microsoft Windowsの標準印刷方式に従って印刷を行うためのダイアログ・ボックス。

使用法

Printダイアログ・ボックスは、印刷品質と印刷部数を選択するために使用します。

ダイアログ情報

Printer - 現在のWindowsシステム・プリンタを示します。プリンタを変更するには、PropertiesボタンをクリックしてPrint Setupダイアログ・ボックスを表示します。

Print Range - VEEではAllに固定されています。

Print Quality - 選択肢はプリンタごとに異なります。HP LaserJetプリンタの場合、デフォルトは300 dpi（300ドット／インチ）です。

Copies - 印刷部数を入力します（デフォルト=1）。

Collate Copies - デフォルトはオフ（チェックマークなし）です。チェック・ボックスをクリックするとCollate Copiesがオンになります。

終わったら、OKをクリックすると印刷が開始され、Cancelをクリックすると印刷せずに終了します。または、Propertiesをクリックすると、Print Setupダイアログ・ボックスが表示され、その他のパラメータを変更できます。

注記

Windowsアプリケーション向けのプリンタの設定方法の詳細については、Microsoft Windowsのドキュメントを参照してください。

場所

File [image] Print Screen

File [image] Print Program

File [image] Print Objects

関連項目

Print Objects、Print Program、Print Screen、Print Setup

印刷設定を変更するには

VEEプログラムを印刷するには

VEEプログラム中のオブジェクトを印刷するには

VEEウィンドウを印刷またはコピーするには

VEEワークスペースを印刷するには


Print Objects

選択された各オブジェクトに対して、すべてのビューとDescriptionデータを含むページを、プリンタまたは印刷ファイルに出力します。

使用法

Print Objectsは、選択されたオブジェクトのハードコピーを得るために使用します。Print Objectsは、プリンタ設定に関する情報を指定するダイアログ・ボックスを表示します。

Print Objectsは、各オブジェクトのすべてのビュー（アイコン、オープン、詳細、パネル）とDescriptionデータを印刷します。オブジェクトにトランザクションが含まれる場合、各トランザクションの説明を記した詳細ダイアログ・ボックスも出力されます。

現在選択されているオブジェクトがない場合、Print Objectsメニュー項目は淡色表示になります。

ダイアログ情報

Print Objectsは、各システムに応じたダイアログ・ボックスを表示します。Printを参照してください。

注記

Print Objectsでは、特に選択されたオブジェクトの数が多い場合、オブジェクトのイメージをキャプチャするのに多少時間がかかることがあります。イメージのキャプチャ中には、ポインタが砂時計に変わります。キャプチャが終了する（ポインタが矢印に戻る）までVEEを使用することはできません。

VEEは印刷設定を1つだけ保存します。これは次の印刷操作にもそのまま用いられます。

場所

File [image] Print Objects

関連項目

Print、Print Program、Print Screen、Default Preferences、Select All

印刷設定を変更するには

VEEプログラムを印刷するには

VEEプログラム中のオブジェクトを印刷するには

VEEウィンドウを印刷またはコピーするには

VEEワークスペースを印刷するには


Print Program

プログラムの詳細ビュー全体をプリンタまたは印刷ファイルに出力します。

使用法

Print Programは、プログラム全体のハードコピーを得るために使用します。Print ProgramはPrint Optionsダイアログ・ボックスを表示します。ここではプリンタへの出力内容を設定できます。印刷オプションを選択したら、OKボタンをクリックすると、Printダイアログ・ボックスが開きます。

Print Programは、VEEプログラムの構造全体を示す索引付きページを作成します。出力には、トップレベル・プログラムの全体図と、プログラム中の各オブジェクトに対して1ページずつが含まれます。このページには、オブジェクトのすべてのビューとそのDescriptionデータが記載されます。オブジェクトにトランザクションが含まれる場合、トランザクションの説明を記した詳細ダイアログ・ボックスも出力されます。出力の各ページには、プログラム中でのイメージの場所を示す情報が含まれます。

Print Optionsダイアログ・ボックスでは、印刷プロセスのさまざまな要素を独立に制御できます。

ダイアログ情報

Print Programダイアログ・ボックスには次の5つのフィールドが表示されます。

Print Nested UserObjects - 現在印刷されているオブジェクトの内部にネストされたUserObjectを印刷エンジンに再帰的に印刷させます。

Print Object Views - コンテキスト中のすべてのオブジェクトを印刷させます。ただし、オブジェクトが印刷される方法は、オブジェクトの複雑さによって多少異なります。すなわち、Gate、Junction、UntilBreakなどの単純なオブジェクトは、VEEプログラム中の表示と同様に印刷されます。これに対して、GraphやSequencerなどの複雑なオブジェクトは、オープン・ビュー形式で印刷されます。

Print Header and Index Page - このボックスがチェックされている場合、VEEプログラム出力の各ページに、日付、時刻、プログラム・ファイル名、ページ番号を示す2行のヘッダが印刷されます。プリントアウトの末尾に、索引項目のページ番号を示す索引ページが出力されます。

Print Program Explorer - このボックスがチェックされている場合、VEEプログラムのプリントアウトには、Program Explorerウィンドウに表示される情報が出力されます。

Print Cover Page - このボックスがチェックされている場合、VEEプログラムのプリントアウトの最初のページには、以下の内容が示されます。

VEE製品ロゴのグラフィック

印刷されるプログラムのファイル名

プログラムの保存に用いられたファイル・フォーマット

使用されているVEEソフトウェアのリビジョン・コード（6.0など）

現在のVEE実行モード（VEE 6、VEE 5など）

Print I/O Configuration - このボックスがチェックされている場合、計測器構成の拡大されたツリー・ビューが印刷されます。計測器構成はI/O [image] Instrument Manager…で見ることができます。

OKを押すと、各システムに応じたダイアログ・ボックスが表示されます。Printを参照してください。

注記

Print Programでは、プログラムのイメージをキャプチャするのに多少時間がかかることがあります。イメージのキャプチャ中には、ポインタが砂時計に変わります。キャプチャが終了する（ポインタが矢印に戻る）までVEEを使用することはできません。

VEEは印刷設定を1つだけ保存します。これは次の印刷操作にもそのまま用いられます。

場所

File [image] Print Program...

関連項目

Default Preferences、Print、Print Screen、Print Objects、Save Documentation

印刷設定を変更するには

VEEプログラムを印刷するには

VEEプログラム中のオブジェクトを印刷するには

VEEウィンドウを印刷またはコピーするには

VEEワークスペースを印刷するには


Print Screen

VEEウィンドウの内容をプリンタまたは印刷ファイルに出力します。

使用法

Print Screenは、プログラムの画面に表示されている部分のハードコピーを得るために使用します。Print Screenは、プリンタ設定に関する情報を指定するダイアログ・ボックスを表示します。

ダイアログ情報

Print Screenは、各システムに応じたダイアログ・ボックスを表示します。Printを参照してください。

注記

Print Screenでは、ウィンドウ内のイメージをキャプチャするのに多少時間がかかることがあります。イメージのキャプチャ中には、ポインタが砂時計に変わります。キャプチャが終了する（ポインタが矢印に戻る）までVEEを使用することはできません。

印刷領域のサイズは、VEE表示ウィンドウのサイズによって決まります。大きい出力を得るには、VEEウィンドウを最大化します（ただし、大きすぎるイメージは切り詰められます）。イメージが大きいほど、スキャンと印刷に時間がかかります。

VEEは印刷設定を1つだけ保存します。これは次の印刷操作にもそのまま用いられます。

場所

File [image] Print Screen

関連項目

Print、Print Program、Print Objects、Default Preferences

印刷設定を変更するには

VEEプログラムを印刷するには

VEEプログラム中のオブジェクトを印刷するには

VEEウィンドウを印刷またはコピーするには

VEEワークスペースを印刷するには


Print Screenオブジェクト

VEEウィンドウの表示されている部分をシステム・プリンタで印刷するオブジェクト。

使用法

Print Screenは、プログラムの実行中に表示されている作業領域のコピーを印刷するために使用します。

注記

Print Screenで用いられるプリンタ（VEEシステム・プリンタ）は次の方法で設定します。

File [image] Print Setup

Print Screenは、設定されたグラフィックス・プリンタまたはディレクトリに出力を送信します。

Print Screenの動作中には、実行中のプログラムは休止します。Print Screenが終了すると、プログラムは再開されます。

場所

I/O [image] Print Screen

関連項目

Print、Print Program、Print Screen、Print Objects、Default Preferences

印刷設定を変更するには


Print Setup

Microsoft Windowsの標準印刷方式に従ってプリンタを設定するためのダイアログ・ボックス。

使用法

[Print Setup]ダイアログ・ボックスは、プリンタ、印刷方向、用紙サイズと給紙方法を選択するために使用します。

ダイアログ情報

Printer - Default PrinterまたはSpecific Printerを選択します。Specific Printerを選択した場合、Windowsシステムで設定済みのプリンタのリストからプリンタを選択できます。

Paper - 用紙のサイズ（Size）と給紙方法（Source）をサポートされる選択肢のリストから選択します。

Orientation - 縦（Portrait）または横（Landscape）を選択します。

[Properties]をクリックすると、別の（Windows標準の）ダイアログ・ボックスで追加オプションを選択できます。

注記

Windowsアプリケーション向けのプリンタの設定方法の詳細については、Microsoft Windowsのドキュメントを参照してください。

Windows XPでVEEを実行している場合、[Document Properties]ダイアログ・ボックスで[Send True Type as Bitmaps]をOnにしておく必要があります。このダイアログ・ボックスは、[File] [image] [Print Setup]からアクセスできます。[Print Setup]ダイアログ・ボックスで、[Properties]ボタンをクリックし、[Finishing]タブの下の[details...]ボタンをクリックします。

場所

File [image] Print Setup

（または、Fileメニューから他の印刷オプションを選択して、[Print]ダイアログ・ボックスを表示します）

関連項目

Print、Print Program、Print Objects、Print Screen.

印刷設定を変更するには

VEEプログラムを印刷するには

VEEプログラム中のオブジェクトを印刷するには

VEEウィンドウを印刷またはコピーするには

VEEワークスペースを印刷するには


Profiler

UserObjectおよびUserFunctionに関する実行情報を得るためのメニュー項目。

使用法

Profilerを有効にすると、[Profiler]ツール・ウィンドウが表示されます。[Profiler]ツール・ウィンドウでは、VEEプログラムの各UserObjectおよびUserFunctionに関するさまざまな実行パラメータのプロファイルを取ることができます。

Profilerを起動すると、各UserObjectまたは各UserFunctionの実行にかかる時間に関する比較情報が表示されます。この情報は、効率を最高にし、実行速度を改善するためにVEEプログラムを変更する際に役立ちます。

Profilerが有効になっている間は、VEE作業領域の右下隅のプログラムStatus BarにPROFが強調表示されます。

ウィンドウ情報

[Profiler]ツール・ウィンドウには、ツールバーと「プロファイラ結果の[Result]枠があります。

プロファイラ[Result]枠

Name - Name列には、プロファイル対象となる各UserObjectおよび各UserFunctionの名前が表示されます。

# Executions - この列には、プロファイリング中の各UserObjectまたはUserFunctionの実行回数が表示されます。

% Time - 全プログラム実行のコンテキスト中で特定のUserObjectまたはUserFunctionの実行にかかった合計時間のパーセンテージを表示します。

Time(sec) - 特定のUserObjectまたはUserFunctionの実行にかかった時間の長さを秒単位で示します。

[Profiler]ツールバー

Start Profiling - [Start Profiling]ボタンはプロファイリングを開始します。プロファイリングが開始されると、VEEプログラムStatus BarのPROFフィールドが強調表示されます。

Stop Profiling - [Stop Profiling]はプロファイリングを停止します。プロファイリングが停止されると、VEEプログラムStatus BarのPROFフィールドが淡色表示されます。

Refresh - [Profile Information]ダイアログ・ボックスは、新しいプロファイル・データで自動的に更新されることはありません。実行中、休止中、停止中のVEEプログラムに関する最新のプロファイル・データをProfilerに表示させるには、[Refresh]ボタンをクリックする必要があります。

Clear - [Clear]ボタンは、[Profiler Information]ダイアログ・ボックスのすべてのフィールド値を0にリセットします。

Save - [Save]ボタンをクリックすると、[Options...]ボタンで指定したファイル名にProfilerデータが保存されます（下のOptions...の説明を参照してください）。

Options... - [Options]ボタンをクリックすると、[Profiler Options]ダイアログ・ボックスが表示されます。[Profiler Options]ダイアログ・ボックスには、次のフィールドとボタンがあります。

# digits for % Time - このフィールドでは、[Profiler]ツール・ウィンドウの[% Time]フィールドに表示される数値の精度（小数点以下の桁数）を指定します。デフォルトの桁数は2です

# digits for Time(sec) - このフィールドでは、Time(sec)フィールド（Profilerツール・ウィンドウ）に表示される数値の精度（小数点以下の桁数）を指定します。デフォルトの桁数は3です

Show only executed contexts - このボックスがチェックされている場合、実行されたUserObjectおよびUserFunctionのProfilerデータだけが表示されます。デフォルトでは、このボックスはチェックされていません。

Save Optionsグループ - [Save Options]グループの項目は、Profilerデータをデータ・ファイルに保存する方法に関するオプションを定義します。以下のオプションがあります。

- Save File Name: - このフィールドは、Profilerデータが保存されるファイル名を指定します。このフィールドをクリックすると、[Save data filename]ダイアログ・ボックスが表示されます。[Save data filename]ダイアログ・ボックスでは、Profilerデータの保存に使用するファイル名とファイル・タイプを指定できます。デフォルトのファイル名はprofile.datです。
- Overwrite data - [Overwrite data]ボックスがチェックされている場合、新たに収集したProfilerデータを[Save]で保存するたびに、以前に収集されてProfilerデータ・ファイルに保存されたProfilerデータは上書きされます。デフォルトでは、[Overwrite data]はオンになっています。
- Comma delimited - [Comma delimited]ボックスでは、Profilerデータをカンマ区切り形式と非カンマ区切り形式のどちらでデータ・ファイルに書き込むかを指定できます。データをComma delimitedフォーマットで書き込んだ場合、データがデータ・ファイルに書き込まれる際に、Profilerの各データ・フィールドの間の区切り文字としてカンマが用いられます。データ・ファイルの区切り文字としてカンマを使用すると、データ・ファイルをスプレッドシートなどの他のソフトウェア・アプリケーションに容易に転送できます。デフォルトでは、[Comma delimited]ボックスはチェックされていません。
- OK - Click on [OK]をクリックすると、[Profiler Options]ダイアログ・ボックスで選択したオプションが確定されます。

Help - [Help]ボタンをクリックすると、Profilerに関連するヘルプ・トピックが表示されます。

注記

Profilerがデータを収集して[Profiler]ツール・ウィンドウに表示した後、[Name]フィールドに表示されたUserObjectまたはUserFunctionをダブルクリックすると、そのUserObjectまたはUserFunctionがVEEワークスペースに読み込まれます。

また、[Name]、[# Executions]、[% Time]などの列ラベルをクリックすると、[Profiler]ツール・ウィンドウに表示されたデータが逆順に並べ替えられます。もう一度クリックすると、並び順が再び逆になります。

場所

View [image] Profiler

関連項目

Call Stack、Clean Up Lines、Show Data Flow、Show Execution Flow、Properties（オブジェクト）

実行パラメータをプロファイルするには


Program Explorer

[View]メニューの項目で、[Program Explorer]ツール・ウィンドウを開きます。

使用法

[Program Explorer]ツール・ウィンドウを開くには、 [View] [image] [Program Explorer]をクリックするか、ツールバーのボタン [image] をクリックします。

[Program Explorer]ツール・ウィンドウは、ツール・ウィンドウです。ウィンドウのドッキング、非表示、フローティングの詳細については、ツール・ウィンドウを整列してドッキングするにはを参照してください。

注記

[Program Explorer]ウィンドウの目的は、現在ロードされているVEEプログラムの階層構造をプログラマに示すことです。この構造は、プログラムの各部分に対して異なるアイコンを使って表示されます。アイコンは、以下の各タイプのプログラム情報の完全なリストを示します。

Main UserObjectに始まるUserObjectの階層。

ローカルUserFunctionリスト。

インポートされたUserFunctionライブラリのリストとそれに対応する関数。

インポートされたコンパイル済みライブラリとそれに対応する関数。

インポートされたリモートUserFunctionライブラリとそれに対応する関数。

宣言された／宣言されないグローバル変数。

各ライブラリの下の宣言されたライブラリ・グローバル変数。

各コンテキストの下の宣言されたローカル変数。

Program Explorerの機能の多くは、コンテキスト・メニューから呼び出されます。例えば、Program ExplorerウィンドウのUserObjectアイコンの上にマウス・カーソルを動かしてマウスの右ボタンをクリックすると、UserObjectのコンテキスト・メニューが表示されます。

Program Explorerの項目のすべてにコンテキスト・メニューがあるわけではありませんが、表示されるメニューは項目の種類（UserObjectアイコン、UserFunctionアイコンなど）によって異なります。Program Explorerの以下の項目はコンテキスト・メニューを提供しています。

プログラム（またはルート）ノード

Main UserObject

UserObject

UserFunction

ローカルUserFunction

インポートされたUserFunction

インポートされたUserFunctionライブラリ

リモートUserFunction

コンパイル済み関数

グローバル変数

ライブラリ・グローバル変数

ローカル変数

場所

View [image] Program Explorer

関連項目

Default Preferences、UserFunction、UserObject

プログラム構造を探索するには


Properties（オブジェクト）

すべてのオブジェクトに存在するウィンドウで、そのオブジェクトに関連するセクションを含みます。ここでは、すべてのオブジェクトで使用できる一般的なプロパティだけを説明します。オブジェクトの性質によっては、一部のオプションやタブが使用できない場合もあります。

使用法

[Properties]ウィンドウは、タイトルの編集、ブレークポイントの設定、オブジェクトの色とフォントの設定、タイトルの色とフォントの設定、アイコンとオープン・ビューの外観の変更、その他のオブジェクト固有の操作の実行に使用します。

ウィンドウ情報

Title - オブジェクトの現在のタイトルを表示し、編集を可能にします。

ShowTitleBar - このプロパティがTrueの場合、オブジェクトのオープン・ビューのタイトル・バーが表示されます。

Show Terminals - このプロパティがTrueの場合、Show Terminalsはオープン・ビューに入出力端子を表示します。表示される端子には端子名が示されます。詳細な端子情報を見るには、オブジェクトの端子をダブルクリックします。

BreakpointEnabled - このプロパティがTrueの場合、オブジェクトのブレークポイントが有効になり、Falseの場合は無効になります。BreakpointEnabledは、デバッグ・ツールとして、このオブジェクトが実行する前にプログラムの実行を休止するために使用します。次に実行されるオブジェクトは、黄色の境界（デフォルト）を持ちます。実行を継続するには、ツールバーの[Resume]または[Step]ボタンのどれかを押します。[Properties]ウィンドウでブレークポイントを設定するか、[Debug]メニューから選択した場合、ブレークポイントが有効になり、オブジェクトはオレンジ色（デフォルト）の境界で強調表示されます。

Title BackColor - タイトル・バー（オープン・ビュー）およびタイトル（アイコン・ビュー）の色をパレットから選択できます。

Title ForeColor - タイトル・バー（オープン・ビュー）およびタイトル（アイコン・ビュー）のテキストの色をパレットから選択できます。

BackColor- オブジェクトのオープン・ビューの色をパレットから選択できます。

ForeColor- オープン・ビューのテキストの色をパレットから選択できます。オブジェクトのオープン・ビューのボディにテキストがない場合、この選択は使用できません。

Title Font - タイトル・バー（オープン・ビュー）およびタイトル（アイコン・ビュー）のフォントを、システムで使用可能なフォントのリストから選択できます。

Font - オープン・ビューのテキストのフォントを、システムで使用可能なフォントのリストから選択できます。オブジェクトのオープン・ビューのボディにテキストがない場合、この選択は使用できません。

ShowIconTitle - このプロパティがTrueの場合、オブジェクトのアイコン・ビューのオブジェクト名が表示されます。Show TitleがFalseの場合、アイコンにオブジェクト名は表示されません。この機能は一般的に、ビットマップだけをアイコンに表示したい場合に使用します。

IconPicture - Pictureは、このアイコンに表示するグラフィックス・ファイルをファイル・システムから選択するために使用します。

表示されるディレクトリは、インストール・ディレクトリの下のbitmapsディレクトリです。別のディレクトリからファイルを選択するには、[Browse ...]ボタンを押します。

Centeredを選択すると、イメージは固定サイズで表示され、アイコンのサイズが変更された場合でも常にアイコンの中央に表示されます。

Scaledを選択すると、アイコンのサイズが変更された場合にイメージは拡大縮小されます。

Preview - 現在選択されているグラフィック・イメージを表示します。現在サポートされるフォーマットについては、Pictureオブジェクトの[Help]を参照してください。

デフォルトのビットマップは、VEEプログラムのインストール・ディレクトリの下のbitmapsディレクトリにあります。

Border:パネル・ビュー上のオブジェクトでのみ使用可能

None | Flat | Sunken | Raised - パネル上に表示されたオブジェクトの境界特性を選択します。

Location:パネル・ビュー上のオブジェクトでのみ使用可能

X:- オブジェクトの左上隅の水平位置（ピクセル単位）。0は作業領域の左上隅を表します。

Y:- オブジェクトの左上隅の垂直位置（ピクセル単位）。0は作業領域の左上隅を表します。

Size:パネル・ビュー上のオブジェクトでのみ使用可能

Width:- オブジェクトの左端から右端までの距離。この値は、オブジェクトの境界の幅を含みます。

Height:- オブジェクトの上端から下端までの距離。この値は、オブジェクトの境界の幅を含みます。

注記

Fontプロパティを変更する際に、[Font]ダイアログにAutomatically Resize Object on Font Changeというチェック・ボックスが表示されます。 このチェック・ボックスを選択した場合、フォントを変更してOKを押すと、新しいフォントの大きさに合わせてオブジェクトのサイズが変更されます。このチェック・ボックスを選択しない場合、フォントの大きさと無関係に、オブジェクトは同じサイズのままになります。Object Textのフォント選択がない場合、この選択は使用できません。

オブジェクトのパネル・ビューから[Properties]ウィンドウで行った変更は、そのオブジェクトのパネル・ビューだけに影響します。オブジェクトのパネル・ビューから使用できるプロパティの選択は、詳細ビューから使用できる選択のサブセットになります。

ほとんどのオブジェクトには、[Properties]ウィンドウにそのオブジェクトに固有の追加オプションがあります（これにはオブジェクト・メニューの[Properties]によってアクセスします）。これらのオブジェクト・プロパティの詳細については、各オブジェクトに関する説明を参照してください。

ショートカット

Propertiesウィンドウをすばやく表示するには、オブジェクトのタイトル・バー（オープン・ビューに存在）をダブルクリックします。

場所

オブジェクト・メニュー [image] Properties ...

メイン・メニューの View [image] Properties

関連項目

Default Preferences、オブジェクト・メニュー


Pulse Generator

パルス波形を発生して出力するオブジェクト。

使用法

Pulse Generatorは、独自仕様のパルス波形を作成するために使用します。

プロパティ

ErroronAliasing - このプロパティがTrueの場合、ハイまたはロー・パルス・ステートの周期がサンプリング周期（タイム・スパン/ポイント数）よりも小さい場合、エラーが返されます。この評価の目的は、作成されるポイントが対象のパルスを正確に表現しているかどうかを判定することです。チェック・ボックスを選択しないと、ポイントのそのままの表現が作成されます。デフォルトはTrueです。

オープン・ビュー・パラメータ

これらのパラメータはすべて、オープン・ビューで設定することも、データ入力として追加することもできます。

Frequency - パルス発生の周波数（Hz単位）。

Pulse Width - パルスの時間幅。時間は、ローからハイへの遷移の中点から、ハイからローへの遷移の中点までで測定されます。パルス幅は正の実数でなければなりません。デフォルトは5 msです。

Pulse Delay - 波形の開始から最初の遷移の開始までの時間。Pulse Delayは正の実数でなければなりません。デフォルトは0です。

Thresholds - Rise TimeおよびFall Timeで使用されるしきい値を決定します。
ローしきい値=（1つめのパーセンテージ）*(ハイ-ロー)
ハイしきい値=（2つめのパーセンテージ）*(ハイ-ロー)

0%-100%

10%-90%

20%-80%

Rise Time - ローしきい値からハイしきい値までの遷移にかかる時間。Rise Timeは正の実数でなければなりません。

Fall Time - ハイしきい値からローしきい値までの遷移にかかる時間。Fall Timeは正の実数でなければなりません。

High - パルスがアクティブなときの波形の値。Highは実数でなければなりません。デフォルトは1です。

Low - パルスがアクティブでないときの波形の値。Lowは実数でなければなりません。Lowの値がHighの値よりも大きい場合、反転したパルスが発生されます。デフォルトは0です。

Burst Mode - 複数のパルスをFrequencyで発生するかどうかを指定します。Burst RateがOFFの場合、1つのパルスだけがFrequencyで発生されます。Burst ModeがOnの場合、Burst Count個のパルスがFrequencyで発生されます。デフォルトはOFFです。

Burst Count - Rep Rateで発生するパルス数。Burst Countは正の整数でなければなりません。デフォルトは2です。

Burst Rep Rate - Burst Count個のパルスが発生するレート。Burst Rep Rateは1/pulse widthよりも大きい実数でなければなりません。

Time Span:- 波形の持続時間（秒単位）。デフォルトは20 msです。

Num Points:- 波形のポイント数。波形のポイントの間の時間は、Time Span/numPointsとなります。Num Pointsは正でなければなりません。デフォルトは256です。

場所

Device [image] Virtual Source [image] Pulse Generator

関連項目

Build Arb Waveform、Build Waveform、Comparator、Function Generator、Noise Generator.


Clear Queue

Queue - Clear

指定されたキューをクリアします。

場所

System [image] Collections [image] Queue [image] Clear


Queue - Count

キューの項目数を数えます。

場所

System [image] Collections [image] Queue [image] Count


Queue - Create

キューというデータ構造を作成します。

場所

System [image] Collections [image] Queue [image] Create


Queue - Dequeue Item

キューから項目を削除します。

場所

System [image] Collections [image] Queue [image] Dequeue Item


Queue - Enqueue Item

キューに項目を追加します。

場所

System [image] Collections [image] Queue [image] Enqueue Item


Queue - Enumerate

キューの中の項目のリストを提供します。

場所

System [image] Collections [image] Queue [image] Enumerate Items


Queue- Peek Item

キューの項目をピークします。

場所

System [image] Collections [image] Queue [image] Peek Item


Radio Buttons

Selection Controlを参照してください。


Raise Error

対応するエラー番号（エスケープ・コード）とテキスト・メッセージによってユーザ定義エラー条件を発生します（このオブジェクトは以前はEscapeと呼ばれていました）。

使用法

Raise Errorオブジェクトは、現在のUserObjectの実行を停止し、UserObjectまたはメイン作業領域のエラー・ピンでトラップされる可能性のあるエラーを発生するために使用します。エラーが（UserObjectのエラー・ピンによって）トラップされず、エスケープ・コードが0以外の場合、Raise Errorはプログラムを停止し、エラー・ダイアログ・ボックスを表示します。

Raise Errorは、UserFunctionの中で、UserFunctionを呼び出したオブジェクトのエラー・ピンでトラップされるエラーを発生するためにも使用できます。

オープン・ビュー・パラメータ

Code - エラー番号。Int32。VEEは300～1,000のエラー番号を使用します。この範囲以外のエラー番号を使用することをお勧めします。950～999のエラー・コードは、VSE（VEE Serious Error）のために用いられます。この範囲内のエラー・コードは使用しないでください。使用するとVSEが発生します。Codeは入力ボックスに入力することも、データ入力として追加することもできます。

Message - 出力するテキスト・メッセージ。Messageは入力ボックスに入力することも、データ入力として追加することもできます。

注記

VEEを-rコマンド・ライン・オプション付きで呼び出した場合、Raise Errorで発生したエラーがトラップされないと、VEEが終了します。CodeおよびMessageがstderrに出力され、オペレーティング・システムに終了コードとして255が返されます。

特定の終了コードを発生するには、Stopオブジェクトを使用します。

場所

Flow [image] Raise Error

関連項目

Error Output（オブジェクト・メニュー）、Create UserObject、Exit UserObject、Exit Thread、Start、Stop、Properties（オブジェクト）

エラーをトラップするには


Real32

定数の4バイト実数スカラまたは1次元配列を出力するオブジェクト。

使用法

Real32は、実数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Real32をパネル・ビュー上のプロンプトとして使用するには、Real32オブジェクトの名前をEnter the offset:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

100M*PIと入力すると、Real32 Constantはこの式を評価してReal32数値の答えを表示します。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

ArraySize - DataShape 1D Arrayが選択されている場合、ArraySizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、Initial ValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

Global Format - デフォルトのフォーマットを使用します。デフォルトはTrueです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの実数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Real32が配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Real32

関連項目

Alloc Real32、Complex、Constant、Coord、Date/Time、Selection Control 、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real64、Text、Boolean、 Toggle Control

データ定数を使用するには


Real64

定数の8バイト実数スカラまたは1次元配列を出力するオブジェクト。

使用法

Real64は、実数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

Real64をパネル・ビュー上のプロンプトとして使用するには、Real64オブジェクトの名前をEnter the offset:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

100M*PIと入力すると、Real64 Constantはこの式を評価してReal64数値の答えを表示します。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

ArraySize:- DataShape 1D Arrayを選択した場合、Sizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

Stepping Category:（DataShapeがArray 1Dの場合は無効）

EnableStepping - このプロパティがTrueの場合、入力フィールドの右端にステッピング・コントロールが表示され、値をスクロールできるようになります。デフォルトはFalseです。

DetentSize - EnableSteppingプロパティがTrueの場合、ステッピング・コントロールを使って値をスクロールする際の値の間隔を設定します。デフォルトは1です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このチェック・ボックスが選択されている場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このチェック・ボックスが選択されている場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat: Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの実数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Real64が配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Real64

関連項目

Alloc Real64、Complex、Constant、Coord、Date/Time、Selection Control 、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Text、Boolean、 Toggle Control

データ定数を使用するには


Real64 Input

実数入力を受け入れるポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

Real64 Inputは、実数を入力するためのプロンプトをユーザに表示し、数値を受け入れ、ユーザ定義のテストによって数値の有効性をチェックするために使用します。

ポップアップ・ダイアログ・ボックスでOKボタンが押されると、ユーザが入力した実数がValue出力ピンに出力されます。キャンセル・ボタンが押されると、Cancel出力ピンに1が出力されます。

オープン・ビュー

  • Prompt/Label - ユーザにテキスト・フィールドへの入力を求めるプロンプトの文字列。このパラメータはデータ入力として追加できます。デフォルトはEnter Real Value:です。

  • Default Value - ユーザの入力の前にダイアログの入力フィールドに存在するテキスト。ユーザが何も入力せずにOKを押した場合、このテキストが出力されます。このパラメータはデータ入力として追加できます。デフォルトは5です。

  • Value Constraint - 入力テキストの有効性をテストする式。任意の式またはUserFunctionの呼び出しが使用できます。このパラメータはデータ入力として追加できます。デフォルトは0<=value AND value<=10です。これは、ユーザ入力が0～10の範囲内の値であることをチェックします。任意の値を受け入れるには、式1を使用します。

  • Error Message - ユーザ入力がValue Constraintを満たさない場合にメッセージ・ボックスに出力されるテキスト。このパラメータはデータ入力として追加できます。デフォルトはYou must enter a real number between 0 and 10.です。

プロパティ

  • PopupTimeoutEnabled - このプロパティがTrueの場合、Timeout出力ピンがオブジェクトに追加されます。デフォルトはFalseです。

  • PopUpDuration - ポップアップ・ダイアログ・ボックスが表示されている時間の長さを設定します。この時間が過ぎると、ダイアログ・ボックスはタイムアウトし、Timeout出力ピンに値1が出力されます。Timeoutピンが実行された場合、他のすべての出力ピンはデータを持ちません。このフィールドが使用できるのは、Timeout Enabledチェックボックスが選択されている場合だけです。デフォルトは60秒です。

  • PopupOKLabel - Trueの場合、ボタンのラベルをOKにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupCancelLabel - Trueの場合、ボタンのラベルをCancelにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupPasswordMasking - このプロパティがTrueの場合、入力テキストはアスタリスク（*）で表示されます。この機能は、パスワードなどの秘密データをオペレータが入力する場合に便利です。Value出力ピンに出力される文字列はマスクされません。デフォルトはFalseです。

注記

ポップアップ・ダイアログ・ボックスのデフォルトの位置は、作業領域のほぼ中央です。ダイアログ・ボックスを移動すると、次のときには新しい場所にポップアップします。

エラー・メッセージ・ダイアログ・ボックスのタイトル・テキストは、Real64 Inputオブジェクトのタイトルと同じです。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたら、値を入力した後EnterまたはEscキーを使用します。入力フィールドとボタンの間を移動するにはTabキーを、ボタンを選択するにはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスとエラー・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

場所

Data [image] Dialog Box [image] Real64 Input

関連項目

File Name Selection、Int32 Input、List Box、Message Box、Text Input、UserObject、オブジェクト・メニュー

データ入力ダイアログ・ボックスを使用するには


Real64 Knob

ノブのReal64値を出力するオブジェクト。

使用法

Real64 Knobは、値を入力するために使用します。Real64 Knobはパネルで特に便利です。

オープン・ビュー・パラメータ

オープン・ビューには、ノブの現在値、最小値、最大値、ノブのコントロールが表示されます。

プロパティ

Orientation - Knobの表示方向を設定します。

ShowDigitalDisplay - このプロパティがTrueの場合、オブジェクトのオープン・ビューの下部の編集フィールドにノブの現在値が表示されます。この値を変更すると、ノブの位置が変化します。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - このプロパティがTrueの場合、スケールがリニアから対数に変わります。デフォルトはFalseです。オンにした場合、DetentsがSteps/Decadeに変わります。

LabelSpacing:- どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

DetentsまたはSteps/Decade:- リニア・スケールの場合、DetentsはKnobで入力できる値の間隔を設定します。対数スケールの場合、Steps/DecadeはKnobの各デケード（10倍）内のステップ数を設定します。これ以外の値が入力されると、最も近い値に丸められます。Detents（リニア・スケール）のデフォルト値は1mです。Steps/Decade（対数スケール）のデフォルト値は1.0です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、Initial ValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat Category:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editing、MaxValue、MinValue、Detentsを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力は実数スカラ値を必要とします。

Reset入力を使うと、プログラムで値を0に設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、現在値、最小値、最大値をオープン・ビューで変更できるかどうかをプログラムで制御できます。

MaxValueおよびMinValue入力を使うと、最小値および最大値フィールドをプログラムで設定できます。これらの入力は実数スカラ値を必要とします。

Detents入力を使うと、デテント値をプログラムで設定できます。

場所

Data [image] Continuous [image] Real64 Knob

関連項目

Complex、Selection Control、Int32、Int32 Slider、Int32 Knob、PComplex、Real64、Real64 Slider、Text、Toggle Control、オブジェクト・メニュー

データ・スライダおよびノブを使用するには


Real64 Slider

スライダのReal64値を出力するオブジェクト。

使用法

Real64 Sliderは、値を入力するために使用します。Real64 Sliderはパネルで特に便利です。

オープン・ビュー・パラメータ

オープン・ビューには、最小値、最大値、スライダ値のフィールドと、スライダ・コントロールが表示されます。

プロパティ

Orientation - Sliderの表示方向を設定します。

ShowDigitalDisplay - このプロパティがTrueの場合、オブジェクトのオープン・ビューの上部の編集フィールドにスライダの現在値が表示されます。この値を変更すると、スライダ・コントロールの位置が変化します。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - このプロパティがTrueの場合、スケールがリニアから対数に変わります。デフォルトはFalseです。オンにした場合、DetentsがSteps/Decadeに変わります。

LabelSpacing:- どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

DetentsまたはSteps/Decade:- リニア・スケールの場合、DetentsはSliderで入力できる値の間隔を設定します。対数スケールの場合、Steps/DecadeはSliderの各デケード（10倍）内のステップ数を設定します。これ以外の値が入力されると、最も近い値に丸められます。Detents（リニア・スケール）のデフォルト値は1mです。Steps/Decade（対数スケール）のデフォルト値は1.0です。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。このプロパティがFalseの場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このチェック・ボックスが選択されている場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このチェック・ボックスが選択されている場合、InitialValueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editing、MaxValue、MinValue、Detentsを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力は実数スカラ値を必要とします。

Reset入力を使うと、プログラムで値を0に設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、現在値、最小値、最大値をオープン・ビューで変更できるかどうかをプログラムで制御できます。

MaxValueおよびMinValue入力を使うと、最小値および最大値フィールドをプログラムで設定できます。これらの入力は実数スカラ値を必要とします。

Detents入力を使うと、デテント値をプログラムで設定できます。

場所

Data [image] Continuous [image] Real64 Slider

関連項目

Complex、Selection Control、Int32、Int32 Knob、Int32 Slider、PComplex、Real64、Real64 Knob、Text、Toggle Control、オブジェクト・メニュー

データ・スライダおよびノブを使用するには


Record Constant

スカラまたは1次元配列の種類のRecordデータ型の定数を出力するオブジェクト。

使用法

Record Constantオブジェクトは、Record定数を定義して構築したり、既存のレコードまたはレコード配列を対話的に編集したりするために使用します。

オープン・ビュー・パラメータ

オープン・ビューには、レコードの各フィールドに対するField nameボタンとValueボタン（または入力フィールド）があります（デフォルトでは、Field nameボタンAとBがそれぞれValueフィールド"Text field"と"1.25"に対応します）。レコードのデータの種類がArray 1Dの場合、配列のインデックスを表すフィールドがオープン・ビューに追加されます（0、1、等）。配列値を順番に表示するには、First、Prev、Next、Lastの各ボタンを使用します。

Field name -- このボタンを押すと、ダイアログ・ボックスがポップアップし、レコード・フィールドの名前を変更したり、その型や種類を変更したりできます。フィールドの名前を既存のフィールド名に変更しようとすると、エラーが発生します。フィールド名の大文字小文字は区別されません。データ型を変更した場合、VEEは既存のデータをデータ型変換の規則に従って新しいデータ型に変換しようとします。

Value -- フィールドの値を変更できます。フィールドがEnum以外の型のスカラ・コンテナの場合、Valueは入力フィールドです。すなわち、フィールドをクリックして目的の値をキー入力できます。フィールドがEnumまたはArray 1Dコンテナの場合、Valueフィールドはボタンであり、値を選択するためのダイアログ・ボックスを表示します。フィールドが2次元以上の配列の場合、値は編集できません。

オブジェクト・メニュー

Add Record -- レコード配列の末尾にレコードを追加します。新しいレコードは、配列中の最後のレコードのコピーです（レコード・スカラの場合はこのメニュー項目は使用できません）。

Insert Record -- 現在表示しているレコード配列中の位置にレコードを挿入します。新しいレコードは、表示されていたレコードのコピーです（レコード・スカラの場合はこのメニュー項目は使用できません）。

Delete Record -- 現在表示中のレコードを配列から削除します（レコード・スカラの場合はこのメニュー項目は使用できません。また、レコード配列の場合、配列中に複数のレコードがある場合しかこの項目は使用できません）。

Add Field -- レコードのフィールド・リストの末尾に新しいフィールドを追加します。ダイアログ・ボックスを使って、新しいフィールドの名前、型、種類を定義できます。

Insert Field -- レコードの指定された位置に新しいフィールドを挿入します。ダイアログ・ボックスを使って、新しいフィールドの名前、型、次元を定義できます。もう1つのダイアログ・ボックスを使って挿入位置を指定できます。

Delete Field -- レコードのフィールドを削除できます。ダイアログ・ボックスに削除可能なフィールドのリストが表示されます。この選択は、レコードに複数のフィールドがある場合のみ使用できます。

Generate

Declared Variable -- このRecordの構成と一致する宣言された変数オブジェクトを作成できます。Record定数と宣言された変数は同じ数のフィールドを持ち、対応するフィールド同士は同じ名前を持ちます。

Unbuild Record -- このRecord構成に一致する出力を持つUnbuild Recordオブジェクトを作成できます。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

 ArraySize:- DataShape 1D Arrayを選択した場合、Sizeは配列の長さを設定します。

 ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

 Schema Fixed - このプロパティがTrueの場合、レコードのフォーマット（スキーマ）は固定であり、変更できません。これは、ユーザがポップアップ・パネルでレコードの値を対話的に変更できるようにする場合に便利です。

NumberFormats:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1DのRecord値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されます（数値フィールドは0、Textフィールドはヌル文字列になります）。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Default Valueピンは、大きいレコード配列（From DataSetオブジェクトから読み込んだレコード配列など）を編集する場合に便利です。レコード配列をDefault Valueピンに送るだけで、Record Constantの初期値を設定できます。その後、レコード全体を表示して対話的に編集できます。データ値を変更できるだけでなく、フィールドの型、種類、マッピングも変更できます（フィールド自体がレコードの場合を除く）。レコードの編集が終わったら、新しいデータセットまたはファイルに（To DataSetまたはTo Fileを使って）出力できます。Record Constantオブジェクトでは、それ自体がレコードであるフィールドは編集できません。フィールドとそのデータの表示だけが可能です。

Record Constantではレコードのレコードを作成できないことに注意してください。すなわち、Record Constantでは、それ自体がレコードであるフィールドを追加できません。ただし、他のすべてのVEEレコード・デバイス（Build Record、Set Fieldなど）ではこれは可能です。再帰のレベルを制限するのは使用可能なユーザ・メモリだけです。すなわち、レコードのフィールドがレコードで、そのフィールドがさらにレコードで…ということも可能です。レコード・コンテナの種類は、スカラまたは1次元配列のどちらかです。

場所

Data [image] Constant [image] Record

関連項目

Build Record、From DataSet、Merge Record、Set Field、To DataSet、buildRecord()、UnBuild Record

レコード定数を作成するには


Remove

与えられた文字列から指定された副文字列を除去します。

場所

System [image] String [image] Remove


Repeat

メニュー項目。

使用法

Repeatは、次の反復子および反復制御オブジェクトにアクセスするために使用します。

For Count

For Range

For Log Range

Until Break

On Cycle

Next

Break

注記

反復子はネストできます。

反復子から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドの反復は完了しています。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、反復カウンタが増加します。

反復サブスレッドが完了すると、シーケンス出力ピンがアクティブになります。

場所

Flow [image] Repeat

関連項目

Break、For Count、For Range、For Log Range、Next、On Cycle、Until Break

VEEプログラムの一部をループするには


Replace

このオブジェクトとその接続を別のオブジェクトに置き換えます。

使用法

Replaceは、接続を維持しながらオブジェクトを置き換えるために使用します。

Replaceは、置き換えられるオブジェクトのコピーをPasteバッファに入れます。

注記

Replaceを実行するたびに、Pasteバッファの以前の内容が元のオブジェクトで上書きされます。

ピンは上から下の順で接続されます。元のオブジェクトに接続されていたラインの数が新しいオブジェクトのピンの数よりも多い場合、余分なラインは削除されます。元のオブジェクトに接続されていたラインの数が新しいオブジェクトのピンの数よりも少ない場合、新しいオブジェクトの下の方のピンは未接続のままになります。

Replaceは1つのコンテキスト内でのみ動作します。例えば、UserObject内のオブジェクトをReplaceで置き換えるには、まず新しいオブジェクトをUserObjectのコンテキスト内に配置する必要があります。

オブジェクトが1つまたは複数のオブジェクトに接続されていない場合、Replaceは使用できません。

場所

各オブジェクト・メニュー [image] Replace

関連項目

オブジェクト・メニュー、Cut（オブジェクト・メニュー）、Copy、Paste


Replace（システム・メニュー）

Replace

与えられた文字列の副文字列を指定したテキストで置き換えます。

場所

System [image] String [image] Replace


Restore（オブジェクト・メニュー）

オブジェクトをオープン・ビューに復元します。

使用法

Restoreは、オブジェクトのオープン・ビューを表示するために使用します。

注記

Restoreは、すべてのオブジェクトのアイコン・ビューから使用できます。

最大化されたUserObjectの場合、Restoreはオープン・ビューを最大化されていないサイズに変更します。

ショートカット

オブジェクトを復元するには、アイコンをダブルクリックします。

場所

オブジェクト・メニュー [image] Restore

関連項目

Minimize（オブジェクト・メニュー）


Run/Resume

プログラムが休止された後で、一時停止しているスレッドの実行をすべて再開します。

使用法

Run/Resumeは、プログラムが休止された後でプログラム実行を再開するために使用します。プログラムが休止されるのは、[Pause]ボタンが押された場合、ブレークポイントに到達した場合、Step機能が使用された場合です。

Run/Resumeは主に、ブレークポイントの間で実行を継続するために用いられ、他のデバッグ・ツールと組み合わせて使用されるのが普通です。

注記

ツールバーの[Run/Resume]ボタンは、[Run]ボタンと同じです。Stopが押された場合、Run/Resumeは使用できません。

ショートカット

CTRL + GキーまたはF5ファンクション・キーを押すと、Run/Resumeが実行されます。

場所

Debug [image] Run/Resume

関連項目

Pause、Run、Start、Step Into、Step Over、Step Out、Stop、Toggle Breakpoint

プログラムをステップ実行するには


Reset Tool Bar/Window Layout

Reset Toolbar / Tool Window Layout

このコマンドは、ツールバーとツール・ウィンドウをVEEの出荷時のデフォルト・レイアウトにリセットします。このコマンドを実行すると、次の動作が実行されます。

  • すべてのツールバーとウィンドウが、デフォルトの位置に移動されます。

  • デフォルトのIDEレイアウトで閉じられているツールバーとウィンドウはコマンドによって閉じられます。

  • デフォルトのIDEレイアウトで開かれているツールバーとウィンドウはコマンドによって開かれます。

関連項目

ツール・ウィンドウを整列／ドッキングするには、ツールバー／ウィンドウ・レイアウトのセーブ／ロード


-Run

プログラムのすべてのスレッドの実行を開始します。

使用法

Runは、プログラム実行を開始するために使用します。メイン作業領域のスレッドにStartオブジェクトが用いられている場合、実行はこれらのオブジェクトから始まります。

Runを選択すると、VEEはすべてのスレッドにPreRunを実行し、データをクリアしてフィードバックをチェックします。Default PreferencesのExecution ModeがVEE 4以上に設定されている場合、VEEはオブジェクトの実行順序を予測し、ライン上を流れるデータ型を判定し、各オブジェクトに対するコンパイル済みコードを作成します。

注記

プログラムに複数のスレッドがあり、その1つだけを実行したい場合、そのスレッドにStartオブジェクトを接続します。実行したいスレッドのStartオブジェクトを押します。

ショートカット

プログラムを実行するにはCTRL+GまたはF5を押します。

場所

Debug [image] Run

関連項目

Pause、Run/Resume、Start、Step Into、Step Over、Step Out、Stop

VEEプログラムを開始するには


Sample & Hold

最も新しく受信したデータ・コンテナを記録するオブジェクト。XEQピンをアクティブにすると、記録されているコンテナが出力されます。

使用法

Sample & Holdは、XEQがアクティブになった時点で最後に入力ピンに存在したデータを捕捉するために使用します。

例

Sample & Holdは、反復サブスレッド内にあるIf/Then/ElseまたはConditionalフロー・オブジェクトに続くスレッド・セグメント内のオブジェクトから発生したデータを保持するために使用できます。

注記

Sample & Holdが必要なのは、通常は反復とフロー分岐の両方がスレッドに存在する場合だけです。オブジェクトは通常は入力ピンで受け取った最も新しいデータをデフォルトで保持するからです。

InData入力に到達した最も新しいデータ・コンテナだけが、Sample & Holdに保存されます。新しいデータは既存のデータを上書きします。

Sequence Inピンが接続されている場合、InData入力とSequence Inピンの両方がアクティブになった場合に限り、データ・コンテナが受け入れられ、記録されている既存のデータを置き換えます。

Sample & HoldはXEQピンがアクティブになったときに動作します。伝達が可能な限り遠くまで進行した後で、Sequence Outピンがアクティブになります。

Sample & Holdの内容は、PreRunおよびアクティブ化時にクリアされます。XEQがアクティブになったときに記録されているデータがない場合、エラーが発生します。

Sample & HoldにはXEQが必須なので、このピンを削除したり、別のXEQピンを追加したりすることはできません。

XEQを複数回アクティブにした場合、その間に新しいデータが到着していなければ、同じデータが再送信されます。

場所

Flow [image] Sample & Hold

関連項目

Repeat、If/Then/Else、Conditional、UserObject、Properties（オブジェクト）、オブジェクト・メニュー


Save

作業領域のプログラムを以前に指定されたファイル名にコピーします。

使用法

Saveは、プログラムを定期的にファイルに書き込むために使用します。

注意

Agilent VEE Pro 8.0以上のフォーマットで保存されたファイルは、それ以前のバージョンのVEEには読み込めません。

注記

Saveは、Save AsまたはOpenで指定されたファイル名にプログラムを書き込みます。プログラムがNewで作成された作業領域で作成され、Save Asが実行されていない場合、Saveはファイル名のプロンプトを表示します。プログラムの書き込み中には、ポインタが鉛筆に変わります。

VEEでは、プログラム・ファイルに色とフォント（Default Preferencesで定義されたもの）を保存できます。[Save colors and fonts with program]チェック・ボックスが[Save File]ダイアログ・ボックスに追加されています。

VEEでは、I/O構成情報をプログラム自体に埋め込むことができます。構成情報の埋込みを可能にするため、[Save I/O configuration with program]チェック・ボックスが[Save File]ダイアログ・ボックスに追加されています。I/O構成の保存については、Instrument Managerを参照してください。

Saveはファイルを上書きする際に確認を求めません。

ファイルを保存すると、互換性に影響する場合があります。例えば、バージョン5のファイルをバージョン6に読み込んでから保存すると、バージョン5との互換性はなくなります。

ショートカット

プログラムを保存するにはCTRL+Sを押します。

場所

File [image] Save

関連項目

Merge、Open、Save As、Save Objects


Save As

作業領域のプログラムを特定のファイルにコピーします。

使用法

Save Asは、プログラムのファイル名を指定し、そのファイルにプログラムを書き込むために使用します。

[Save colors and fonts with program]を選択すると、[Default Preferences]ダイアログ・ボックスで選択されたデフォルトの色とフォントがすべてプログラム・ファイルに保存されます。これにより、このプログラムを開いた場合は常に、保存した時点でのデフォルトの色とフォントが用いられます。このオプションが選択されていない場合、プログラムで明示的に設定した色とフォントだけがプログラム・ファイルに保存されます。この場合、プログラムをロードした環境で設定されているデフォルトの色とフォントが用いられます。既存のプログラムをロードした場合、このオプションはプログラムが前に保存されたときの設定に従います。

Save Asではデフォルトで[Save I/O configuration with program]がオンになっています。埋込みI/O構成を使用したくない場合は、このチェックを外します。VEEでは、I/O構成情報をプログラム自体に埋め込むことができます。I/O構成の保存については、Instrument Managerを参照してください。

注意

Agilent VEE Pro 8.0以上のフォーマットで保存されたファイルは、それ以前のバージョンのVEEには読み込めません。

注記

既存のファイルを上書きしようとすると、操作の確認を求められます。プログラムの書き込み中には、ポインタが鉛筆に変わります。

Save Asで指定されたファイル名は、以降のSave操作で使用されるファイル名となります。

現在のファイルはファイル名.bakとして保存され、新しく保存されたファイルがfilenameとなります。ファイル名にすでに拡張子（.veeなど）が含まれる場合、拡張子が.bakに変更されます。

VEEでは、veeioリソース・ファイルを使用する代わりに、I/O構成情報をプログラム自体に埋め込むことができます。構成情報の埋込みを可能にするため、[Save I/O configuration with program]チェック・ボックスが[Save File]ダイアログ・ボックスに追加されています。I/O構成の保存については、Instrument Managerを参照してください。

ファイルを保存すると、互換性に影響する場合があります。例えば、バージョン5のファイルをバージョン6に読み込んでから保存すると、バージョン5との互換性はなくなります。

ショートカット

Save Asを使用するにはCTRL+Wを押します。

場所

File [image] Save As

関連項目

Default Preferences、Merge、Open、Save、Save Objects


Save Documentation

現在のプログラムの説明を含むテキスト・ファイルを作成します。

使用法

Save Documentationは、ドキュメント用のプログラムのリストを作成するために使用します。Save Documentationの出力ファイルには、以下の情報が含まれます。

ソース・ファイル名。

ドキュメント日付。

VEEの現在のバージョン番号。

保存ファイル・バージョン。

システム設定（色とフォントを除く）。

オブジェクト名と型。

オブジェクトのオープン・ビュー情報（Constant値やトランザクションなど）。

Descriptionに入力されたオブジェクトの説明テキスト。

注記

Save Documentationは、VEEの以前のバージョンにあったveedocユーティリティに代わるものです。

Do、Junction、Gateの各オブジェクトは、Descriptionに説明テキストが入力されていない限り、Save Documentationファイルには含まれません。

Save Documentationファイルで各オブジェクトに割り当てられる番号は、Print Allを使用したときに各オブジェクトの隣に印刷される番号に対応します。

定数データは1行に印刷されるため、ファイルが一般的なワード・プロセッサで読み込めるように、配列とレコードは印刷されません。

Save Documentationは色とフォントの情報とI/O構成は保存しません。

場所

File [image] Save Documentation

関連項目

Default Preferences、Print Program、Save、Save As

プログラムのドキュメントを作成するには


Save Objects

選択されたオブジェクトを特定のファイルにコピーします。

使用法

Save Objectsは、オブジェクト・セットのファイル名を指定し、そのファイルにオブジェクトを書き込むために使用します。Save Objectsは一般的に、オブジェクトのグループを共通関数のライブラリに保存して、他のプログラムに読み込めるようにするために用いられます。

注記

Save Objectsは、他のプログラムで使用するオブジェクトのセットをプログラムからコピーするために使用します。Save Objectsを使うと、独自の関数のライブラリを作成できます。オブジェクトの書き込み中には、ポインタが鉛筆に変わります。

既存のファイルを上書きしようとすると、操作の確認を求められます。

Save Objectsは色とフォントの情報とI/O構成は保存しません。

場所

File [image] Save Objects

関連項目

Merge、Open、Save、Select All

UserObjectのライブラリを作成するには

UserObjectを保護するには


Send to Back（オブジェクト・メニュー）

Send to Back

オブジェクトを表示平面の背景に移動します。

使用法

パネルのオブジェクト・メニューの項目[Send to Back]は、オブジェクトを表示平面の背景に移動し、オブジェクトのZオーダを変更します。

関連項目

Bring to Front（オブジェクト・メニュー）


Select All

前面のウィンドウにあるすべてのオブジェクトを操作対象として選択します。

使用法

[Edit]メニューのオブジェクト機能を使用するには、操作対象として1つまたは複数のオブジェクトを選択する必要があります。Select Allを選択すると、前面（アクティブ）ウィンドウのすべてのオブジェクトが選択されます。選択されたオブジェクトは陰影で強調表示されます。複数のオブジェクトを選択したいが、全部は選択したくない場合は、CTRLキーを押しながらマウスの左ボタンでオブジェクトを選択します。オブジェクトを選択したら、CutやCopyなどの編集機能を選択します。

注記

Select Allを使用すると、前に選択されていたオブジェクトは選択解除されます。

誤ってオブジェクトを選択した場合には、作業領域をクリックするとすべてのオブジェクトが選択解除されます。または、CTRLキーを押しながら不要なオブジェクトをクリックして選択解除します。

いっしょに選択できるのは、同じVEEコンテキスト（UserObject、UserFunctionなど）内のオブジェクトだけです。

ショートカット

CTRLキーを押しながら、マウスの左ボタンでオブジェクトをクリックします。または、CTRLキーを押しながら、（マウスの左ボタンで）ドラッグして、オブジェクトの周りに輪郭線を描いて選択します。

これらのショートカットでは、オブジェクトの選択／非選択を切り替えることができます。これらの方法では、（Select Allと異なり）、他のオブジェクトを選択する前に、すでに選択されていたオブジェクトがすべて選択解除されることはありません。

CTRL + Aを押すと、アクティブな詳細ビュー／パネル・ビューのすべてのオブジェクトが選択されます。

オブジェクトをマウスの左ボタンでクリックすると、選択されていないオブジェクトは選択され、選択されているオブジェクトは選択解除されます。

場所

Edit [image] Select All

関連項目

Add To Panel、Align、Copy、Create UserObject、Create UserFunction、Cut、Print Objects、Replace、Paste、Save Objects


Selection Control

ユーザ定義リスト中の列挙値を出力するオブジェクト。Selection Controlオブジェクトにはさまざまな表示フォーマットがありますが、すべて同じ働きをします。

使用法

Selection Controlオブジェクトは、列挙定数を設定したり、使用可能な選択肢のリストから選択されるユーザ入力を受け入れたりするために使用します。リスト中の最初の項目には順序位置0、リスト中のn番目の項目には順序位置n-1が割り当てられます。

オブジェクト・メニュー

Edit Enum Values - 列挙リストに有効な選択肢を追加したり、既存の選択肢を編集したりできます。選択肢を追加した後、Tabキーを押してリスト中の次のエントリに移動します。リスト中で前に移動するにはShift+Tabを押します。

プロパティ

Formatプロパティ:- Selection Controlオブジェクトの外観と選択の実行方法を指定します。デフォルトのフォーマットは、メニューから選択したオブジェクトです。

Radio Buttons - 選択肢がすべて表示されます。選択を実行するには、選択肢の隣のラジオ・ボタンを押します。

Cyclic Button - ボタン・フィールドをクリックすると、選択肢が順番に表示されます。これが最も適しているのは、オン／オフや停止／実行などの2つの選択肢がある場合や、ダイアログ・ボックスで別のボタンによって選択を確定する場合です。

List - 選択肢はリスト・ボックスに表示され、すべての選択肢を一度に表示できない場合はスクロール・バーが表示されます。選択を実行するには選択肢をクリックします。

Drop-Down List - 選択肢は、フィールドの右側の矢印を押すと表示されるドロップダウン形式のリスト・ボックスに表示されます。選択を実行するには、選択肢をクリックします。

Pop-Up List - 列挙される選択肢は、ボタン・フィールドを押すと表示されるダイアログ・ボックス内のリスト・ボックスに表示されます。選択を実行するには、選択肢をクリックしてOKを押します。

Slider List - 列挙される選択肢はスライダ上の目盛ラベルで表示されます。選択を実行するには、スライダ・ボタンまたはラベルをクリックします。

Executionグループ:

Wait for Input - このチェック・ボックスが選択されている場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはオフです。

Auto Execute - このチェック・ボックスが選択されている場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、Auto Executeは無視されます。デフォルトはオフです。

FormatSliderLayoutプロパティ:

Horizontal | Vertical - スライダを表示する方向を設定します。これらはFormatがSlider Listに設定されている場合のみ有効です。

Initializationカテゴリ:

Initial Value - 設定する値を指定します。デフォルト値はリストの最初の選択肢です。

Initialize At PreRun - このチェック・ボックスが選択されている場合、Initial ValueはPreRun時に設定されます。デフォルトはオフです。

Initialize At Activate - このチェック・ボックスが選択されている場合、Initial Valueはアクティブ化時に設定されます。デフォルトはオフです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editing、Enum Valuesを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力は、Text Scalar値（または、EnumなどText Scalarに変換可能なデータ）を必要とします。この値は、可能なEnum値の1つに一致する必要があります（大文字と小文字は区別されます）。

Reset入力を使うと、現在の値をリスト中の最初の値（順序0）にプログラムで設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

Enum Values入力を使うと、Selection Controlの可能な値のリストをプログラムで設定できます。この入力は、Enum、Text Array 1D、またはText Arrayに変換可能なデータを必要とします。

多くのオブジェクトでは、列挙コンテナは自動的にTextに変換されます。これには、Collector、Concatenator、Sliding CollectorおよびほとんどのFormulaオブジェクトが含まれます。

選択された値の順序値を取得するには、選択された文字列でなくOrdinal出力にラインを接続するか、ordinal()を使用します。

例

Selection Controlをユーザ・パネル上のプロンプトとして使用するには、オブジェクトの名前を"Choose the type of test:"などのプロンプトに変更します。

場所

Data [image] Selection Control

関連項目

Complex、Constant、Coord、Date/Time、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Text、Boolean、 Toggle Control、List Box

ordinal(x).

データ選択オブジェクトを使用するには


Send Mail

この強力なオブジェクトは、メールの送信を可能にします。前提条件として、SMTPサーバ・アドレスが必要です。その他の要件は、宛先、送信元、題名、本文などの標準の電子メール機能です。

場所

System [image] Send Mail


サービス・マネージャ

サービス・マネージャは、リモート関数の使用に必要です。これは、リモート・ホスト・コンピュータ上で動作している「サービス」と、ローカル・ホスト・コンピュータ上で動作している「クライアント」との間の通信を管理します。リモート関数の使用を開始する前に、リモート・ホスト・システム上でサービス・マネージャを起動しておく必要があります。

Windows XP SP2でサービス・マネージャを実行する場合、Windowsの新しいファイアウォール機能によって問題が生じる場合があります。サービス・マネージャを初めて実行したときには、ブロックされてしまう可能性があります。この場合、セキュリティの警告が表示されます。[Unblock this program, despite the security risk.]を選択し、[OK]をクリックします。

関連項目

リモート関数


Set Field

既存のレコードのフィールドを変更するためのオブジェクト。

Set Fieldは旧式であり、新しいプログラムには追加できませんが、このオブジェクトをすでに含む古いプログラムでは引き続きサポートされています。このオブジェクトの代わりに、Assignment Formulaオブジェクトを使用してください。これは、Function & Object BrowserのType: Operators、Category: Assignmentの下にあります。

使用法

Set Fieldは、既存のレコードのフィールドの値を変更するために用いられます。Set Fieldオブジェクトは実際にはFormulaオブジェクトであり、右辺式で指定された値を左辺式で指定されたフィールドに代入します。右辺式の値は、スカラ、配列、別のレコード、レコードのフィールドに評価されることができます。

Set Fieldは、レコードを解体し、1つのフィールドを変更し、データをレコードに再構築する操作を簡単にしたものです。出力端子はResultとRecの2つです。Resultは、参照されたオブジェクトのフィールドだけを出力します。Recはレコード全体を出力します。また、左辺式と右辺式の結果の型と種類は一致する必要があります。Set Fieldを使って、入力レコードの「スキーマ」（型と種類）を変更することはできません。

オープン・ビュー・パラメータ

式入力フィールド -- この入力フィールドでは、レコードの要素を直接変更できます。左辺式には、Formula式構文のサブセットが使用でき、レコードのフィールドを指定する役割を果たします。A.Bドット構文と、A[2]サブ配列構文のサブセットを使って、変更するレコードのフィールドを指定できます。使用できる構文の詳細については、下の「注記」を参照してください。右辺式には、Formulaオブジェクトで使用できる任意の式が使用できます。この式では、すべての入力コンテナ、変数、関数が使用できます。右辺式は評価され、結果の値が左辺式で指定されたレコードのフィールドに格納されます。

注記

レコード出力ピンの名前は変更する入力レコードと一致し、左辺式はその名前で始まる必要があります。例えば、レコード・ピンの名前がRecの場合、左辺式はRec.AやRec[1]などでなければなりません。左辺式は、変更する入力コンテナのフィールドを指定する単一の式でなければなりません。

入力、出力、レコード・フィールドの名前の間に混乱が生じる可能性があります。例えば、レコード入力ピンとレコード出力ピンの名前がRec（これらは一致する必要があります）の場合、Rec.Aは入力レコードのAフィールドを指定します。これに対して、A*2はSet FieldオブジェクトのAデータ入力ピンを参照します。したがって、Rec.B=A*2は、出力レコードのBフィールドをAデータ入力の値の2倍に等しく設定します。これに対して、Rec.B=Rec.Aは、入力レコードのBフィールドを、入力レコードのAフィールドの値に等しく設定します。

入力レコード・コンテナ全体がレコード出力ピンに出力されますが、指定されたフィールドは変更されています。例えば、入力Recが2つのフィールドxとyを持つレコードであり、xが値"hello"のTextスカラで、yが値1.2のReal64スカラだとします。左辺式にRec.yが指定され、右辺式が5.6に評価された場合、Rec出力コンテナは、2つのフィールドxとyを持ち、xが値"hello"のTextスカラで、yが値5.6のReal64スカラであるレコードになります。Result出力にはyフィールドだけが含まれます。この例では値5.6を持つReal64スカラです。

左辺式で指定されたフィールドと右辺式の結果の型と種類（スキーマ）は一致する必要があります。すなわち、Set Fieldオブジェクトの動作では、入力レコードのスキーマは変更できません。指定されたフィールドのデータだけが変更できます。例えば、入力Recが2つのフィールドx（Textスカラ）とy（Real64スカラ）を持つレコードだとします。左辺式でRec.yと指定されている場合、右辺式はReal64スカラまたはReal64スカラに変換可能な値でなければなりません。そうでない場合、エラーが発生します。

レコード配列には特別な注意が必要です。レコード配列とは、それぞれがフィールドからなるレコード要素から構成される配列です。Set Fieldを使って、レコード配列の1つの要素の1つのフィールドを変更できます。例えば、レコードの1次元配列を作成し、配列の3番目のレコード要素のfフィールドを変更したい場合、左辺式にRec[2].f（0起源の配列）と指定します。この場合、右辺式の結果はレコード1次元配列の3番目の要素のfフィールドに格納されます。Rec[2]の他のフィールドや、配列の他のレコード要素のフィールド（Rec[0].f、Rec[1].fなど）はいっさい変更されません。

一方、Set Fieldを使って、レコード配列のすべてのレコード要素の特定のフィールドを変更することもできます。例えば、Recがn要素のレコード1次元配列である場合に、左辺式にRec.fと指定したとします。この場合、右辺式の結果はすべてのRec[x].fフィールドにコピーされます。ここで、xは0～n-1です。言い換えると、配列のすべての要素のfフィールドが変更されます。

左辺式は、変更する入力レコードの部分を指定する単一の式でなければなりません。例えば、Rec+2やsine(Rec)は有効な左辺式ではありません。また、左辺式には変数は使用できません。

左辺式で使用できる構文は次のように制限されています。

A.Bドット・サブレコード構文は、レコード・コンテナのレコードを参照するために任意の回数使用できます（再帰のレベルに制限はありません）。レコードAにフィールドbがあり、それ自体がレコードだとします。レコード・フィールドbにはフィールドcがあり、それはフィールドdを持つレコードだとします。最下位レベルのフィールドdを指定するには、左辺式としてA.b.c.dを使用できます。

A[x]サブ配列構文には制限があり、最後のドットの前の1回だけ使用できます。例えば、A.b.c[1].dは有効な左辺式ですが、A[2].b.c.dやA[2].b[2].cは使用できません。また、A[1]やA.b.c[1:2]も使用できません。ただし、最後のドットの前でサポートされるA[x]サブ配列構文は、コロンとアスタリスクの構文をサポートします。例えば、A[1:2].bやa.b.c[2:*].dは有効な左辺式です。

A[1].bとA.b[1]の違いに注意してください。最初の構文は、フィールドbを持つレコード1次元配列に対して使用します。2番目の構文は、1次元配列であるフィールドbを持つスカラ・レコードです。

場所

Data [image] Access Record [image] Set Field

Set Fieldは旧式です。メニュー項目ではAssignment Formulaが作成されます。

関連項目

Assignment、Build Record、Formula、Get Field、Record Constant、SubRecord、UnBuild Record

代入演算の使用

レコードのフィールドを変更するには


Set File Creation Time

指定されたファイルのファイル作成時刻を設定します。

場所

System [image] File [image] Set File Creation Time


Set Last File Access Time

指定されたファイルの最終ファイル・アクセス時刻を設定します。

場所

System [image] File [image] Set Last File Access Time


Set Mappings

配列にマッピングを割り当てるオブジェクト。

使用法

Set Mappingsは、配列の1つまたは複数の次元を、ある範囲の実数値にリニアまたは対数的にマッピングするために使用します。

オープン・ビュー・パラメータ

Num Dimensions - 入力配列の次元数。Num Dimensionsは整数でなければなりません。最小値は1、最大値は10、デフォルト値は1です。Num Dimensionsの値を変更すると、Mapping、From、Toのパラメータを設定するための行の数が変わります。1次元につき1行です。

Mapping - 各次元に対して、LinearまたはLogを設定します。デフォルトはLinearです。

From - 各次元のマッピング範囲の下限値（範囲に含まれる）です。

To - 各次元のマッピング範囲の上限値（範囲に含まれる）です。

FromとToはデータ入力として追加できます。

注記

WaveformまたはSpectrumが入力された場合、その要素が指定に合わせて再マッピングされます。Waveformには対数マッピングは使用できません。

ポイントの数はサンプリング間隔の数と同じです。各ポイントは、サンプリング間隔の先頭に存在します。

Set Mappingの入力としてCoordの配列は使用できません。Coord配列はすでに明示的にマッピングされているからです。

配列のマッピングは、XY表示において、オートスケールやさまざまな演算のために用いられます。

FromとToの値は異なっている必要があります。

Num Dimensionsフィールドの値は、入力配列の次元数と一致する必要があります。

場所

Data [image] Access Array [image] Set Mappings

関連項目

Allocate Array、Collector、Get Mappings、Line Probe、Sliding Collector、Properties（オブジェクト）


Set Values

配列コンテナの要素を変更するためのFormulaオブジェクト。

使用法

Set Valuesは、任意の型とサイズの配列の要素を変更するために使用します。このオブジェクトはFormulaオブジェクトであり、配列要素を変更するための式があらかじめ設定されています。

Set Valuesオブジェクトの入力には、変更する配列、追加するスカラ・データ、スカラ・データを格納する配列位置を指定するインデックスを表すコンテナを接続できます。

配列の新しい値と、置き換えたい要素のインデックスを入力します。すべての変更が完了すると、オブジェクトは、変更された配列と、変更された個々の要素を出力します。

オープン・ビュー・パラメータ

Expression input field - この入力フィールドでは、配列の要素を直接変更できます。式の左辺には、Formula式構文のサブセットが使用でき、変更したい配列要素を指定する役割を果たします。変更する配列要素を指定するために、A[2]サブ配列構文がサポートされます。

注記

すべての配列は0起源です。配列のすべてのインデックスは0から始まります。

配列を最初に作成するには、[Allocate Array] [image] オブジェクトを使用します。

配列に挿入する値は、配列と同じ型か、同じ型に昇格可能なものでなければなりません。

場所

Data [image] Access Array [image] Set Values

関連項目

Allocate Array、Build Data、Collector、Formula 、Get Values、ramp (numElem、from,thru)、Set Mappings、Sliding Collector

代入演算の使用


Set Variable

変数のデータ値を設定するオブジェクト。

使用法

Set Variableオブジェクトは、変数（名前で指定）のデータ・コンテナ（型、種類、値）を設定するために使用します。この変数は、VEEプログラムの他の部分で名前で使用できます。

あるコンテキストで（Set Variableを使って）作成された宣言されないグローバル変数は、そのプログラムの別のコンテキストでデータとして使用できます。例えば、プログラムのルート・コンテキストにあるSet Variableで宣言されないグローバル変数を作成し、UserObjectにGet Variableを含めることによってそれをデータとして使用することができます。これは特に、プログラムにUserObjectsのネストされたレイヤが複数存在する場合に便利です。

Set Variableで設定された変数は、次のデバイスの式フィールドでも名前で使用できます。Formula、If/Then/Else、Get Values、Get Field、Set Field、From DataSet、およびトランザクションに式を使用するすべてのデバイス、すなわちTo File、From File、Direct I/O、From Stdin、To/From Named Pipes、Sequencerです。

オープン・ビュー・パラメータ

オープン・ビューには変数名のフィールドが表示されます。名前の大文字と小文字は区別されません。すなわち、globalAとGLOBALaは同じ変数です。名前フィールドはコントロール入力として追加できます。

注記

予期しない結果を避けるために、Get Variable（または式に変数名を含むオブジェクト）オブジェクトの実行より前にSet Variableで変数を設定しておく必要があります。一般的に、これを保証するための最善の方法は、Set Variableオブジェクトのシーケンス出力ピンを、Get Variableオブジェクトまたは変数を使用するその他のオブジェクトのシーケンス入力ピンに接続することです。ただし、シーケンス入力ピンを接続する必要がない場合もあります。詳細については、VEEの[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [変数]を参照してください。

Delete Variables at PreRunがオン（デフォルト）の場合、プログラムが実行される前にすべての変数が削除されます。Delete Variables at PreRunがオフにされている場合、変数は削除されないので、不正なデータを伝達しないようにプログラムで注意が必要になります。

グローバル変数は、UserObjectレベルで定義されるのではないため、真にグローバルです。プログラムのあるコンテキストで定義されたグローバル変数は、そのプログラムの他のすべてのコンテキストで使用できます。例えば、プログラムのルート・コンテキストでSet Variableオブジェクトを使ってグローバル変数を定義し、UserObjectまたはUserFunctionにGet Variableを含めることによりそのグローバル変数を使用できます。ただし、プログラム全体を通じて名前の衝突を避ける必要があります。

複数のSet Variableオブジェクトが同じ変数（同じ名前を持つもの）を設定しようとした場合、Set Variableの実行のたびに現在の値は上書きされます。名前の重複に気づかなかった場合、これによって予期しない結果が生じるおそれがあります。

変数と同じ名前のデータ端子変数が存在する場合、データ端子変数が優先されます。

詳細については、VEEの[Help]メニューの[Contents and Index]で[以下の項目についての説明] [image] [変数]を参照してください。

Set Variableは、配列またはレコードである変数の一部を設定することはできません。globAry[2] = 3を使って配列を操作したい場合や、globRec.field = 2を使ってレコードを操作したい場合、Assignment Formulaを使ってこれらの式を入力します。

Formula中のAssignmentとSet Variableの違いは微妙です。Set Variableでは、宣言されない変数の作成、宣言された変数の初期化、すべての変数の変更が可能です。Assignment Formulaでは宣言されない変数を作成することはできません。また、Set Variableは、Assignmentと異なり、globalAry[1] = 2のように変数の一部を変更することはできません。

ActiveXオブジェクトのための変数を設定するには、Assignment Formulaを使用する方が適切です。グローバル変数g_cellsがMicrosoft Excelワークシートのセルとして宣言され、初期化されている場合、Formula中のAssignment g_cells = 2は、g_cellsに設定されたデフォルトのプロパティを実際に実行します。これは、g_cells.item = 2と同じ効果を持ち、値2をExcelのセルに設定します。この方法では、g_cellsがセルへのポインタとして維持されます。Set Variableを使用した場合、グローバル変数自体が上書きされるため、g_cellsはExcelのセルへのポインタでなく整数になります。

場所

Data [image] Variable [image] Set Variable

関連項目

Assignment、Default Preferences、Delete Variable、Get Variable、Properties（オブジェクト）、WatchWindow、代入演算の使用、 変数を作成するには


Shift Register

入力の過去の値を出力するオブジェクト。

使用法

Shift Registerは、入力の過去の値にアクセスするために使用します。

注記

Shift Registerに出力を追加することにより、過去の値にアクセスできます。

Shift Registerの開始時には、すべての出力がヌルに設定されています。オブジェクトがアクティブになるたびに、入力からのデータが「現在の」出力端子にコピーされます。現在の出力端子にあったデータは、1 Prev出力に移動されます。過去の実行によるデータは、出力端子の間を最後の出力端子までシフトされていきます。

出力を追加することにより、スレッドまたはプログラムの過去「n」回の実行によるデータにアクセスできます。[Properties]ウィンドウでClear at PreRunおよびClear at Activateをオフにすると、前回以前のプログラム実行のデータを保持することができます。

場所

Device [image] Shift Register

関連項目

Logging AlphaNumeric、Sliding Collector、Properties（オブジェクト）


Show Config（オブジェクト・メニュー）

計測器ドライバ・パネル、コンポーネント・ドライバ、Direct I/OオブジェクトのI/O構成を示すダイアログ・ボックスを表示します。

使用法

計測器ドライバ・パネル、コンポーネント・ドライバ、Direct I/Oオブジェクトのオブジェクト・メニューで[Show Config]を選択すると、[I/O] [image] [Instrument Manager]で指定された構成を見ることができます。

構成パラメータを変更するには、[I/O] [image] [Instrument Manager]を使用します。変更は、その計測器をDirect I/Oで使用している他のすべてのオブジェクトに影響します。Direct I/Oのデバイスを変更するには、名前フィールドを編集して新しいデバイスを選択します。Direct I/Oオブジェクトのトランザクションは新しいデバイスで使用できるとは限らないことに注意してください。

場所

計測器ドライバ・パネル、コンポーネント・ドライバ、Direct I/Oオブジェクトの以下の場所:

オブジェクト・メニューの [image] Show Config

関連項目

Instrument Manager


Show Data Flow

プログラムでデータが通る経路を示します。

使用法

Show Data Flowは、デバッグの際に、入力ピンと出力ピンの間のデータのフローを見るために使用します。ライン上のデータ伝達のフローが、小さい四角形のマーカによってトレースされます。ヌル・データも同じ方法で示されます。

Show Data Flowを設定した場合、メニューの項目の左側にチェック・マークが付きます。

注記

Show Data Flowは、Show Execution Flowと組み合わせて多く用いられます。これらのデバッグ・ツールを使うと、プログラムの実行速度が低下します。

マーカの移動速度を変更するには、[File] [image] [Default Preferences]を選択します。[Default Preferences]ダイアログ・ボックスの[Debug]グループで、[Data Flow Rate]を設定します。

場所

Debug [image] Show Data Flow

関連項目

Line Probe、Default Preferences、Profiler、Show Execution Flow、Step Into、Step Over、Step Out、Toggle Breakpoint

データ・フローとプログラム実行を表示するには


Show Execution Flow

現在実行中のオブジェクトを強調表示します。

使用法

Show Execution Flowは、デバッグの際に、現在動作中のオブジェクトを見るために使用します。オブジェクトの周りに強調表示された色つきの境界（デフォルトは明るい緑）が現れ、動作が終了するまで表示されます。トランザクションのリストを含むオブジェクト（Direct I/O、Sequencer、To File、From Fileなど）では、現在実行中のトランザクションも強調表示されます。

Show Execution Flowがオンの場合、メニューの項目の左側にチェック・マークが付きます。

注記

Show Execution Flowは、Show Data Flowと組み合わせて多く用いられます。これらのデバッグ・ツールを使うと、プログラムの実行速度が低下します。

Show Execution Flowは、すでに実行されたオブジェクトも強調表示します。現在開いているウィンドウで休止またはエラーの後で実行済みのオブジェクトを確認するには、Show Execution Flowをオンにします。

場所

Debug [image] Show Execution Flow

関連項目

Line Probe、Profiler、Show Data Flow、Step Into、Step Over、Step Out、Toggle Breakpoint

データ・フローとプログラム実行を表示するには


Size（オブジェクト・メニュー）

1つまたは複数のオブジェクトのサイズを変更します。

使用法

Sizeは、アイコン、オープン・ビュー、ウィンドウのサイズを変更するために使用します。Sizeを変更すると、ポインタが矢印の形に変わります。クリックしてオブジェクトの新しいサイズまで矢印をドラッグすると、オブジェクトのサイズが長方形の輪郭線で示されます。サイズを変更するもう1つの方法は、矢印ポインタをオブジェクトの右下隅の新しい位置に置いてクリックすることです。パネル・ビューと詳細ビューのどちらでも、CTRLキーとマウスの左ボタンを使って、オブジェクトのグループを選択できます。選択した後、どれかのオブジェクトの端にカーソルを置いて、両方向の矢印を表示させます。カーソルをドラッグしてオブジェクトのサイズを変更します。

注記

詳細ビューでは、Sizeは他のオブジェクトとの接続を維持します。Automatic Line Drawingが設定されている場合、ラインの再描画に多少時間がかかることがあります。

ショートカット

オブジェクトの右下隅にカーソルを置きます。カーソルが矢印の形に変わったら、マウスの左ボタンをクリックし、新しいオブジェクトのサイズまでブラケットをドラッグします。

オブジェクトを作業領域に配置する前にサイズを変更するには、輪郭長方形を目的の位置に置き、マウスの左ボタンを押し、オブジェクトの右下隅の位置まで矢印ポインタをドラッグします。マウス・ボタンを放すと、必要なサイズと位置が得られます。

場所

オブジェクト・メニュー [image] Size

関連項目

オブジェクト・メニュー


Sliding Collector

Array 1Dを出力するオブジェクト。

使用法

Sliding Collectorは、スカラ入力データからArray 1Dを作成するために使用します。

オブジェクト・メニュー

Clear - Sliding Collectorの内容をクリアします。

オープン・ビュー・パラメータ

Array Size - 出力配列の要素数。Array Sizeはデータ入力にもできます。デフォルトは10です。

Trigger Every - 配列が出力されるまでに入力ピンがアクティブになる必要がある回数。デフォルトは10です。

これらのパラメータは、オープン・ビューで設定することも、データ入力で設定することもできます。パラメータは整数でなければなりません。

Enum入力はText型に変換されてから配列に格納されます。

注記

Sliding Collectorは、配列インデックスを自動的に増加させながらArray 1Dを作成します。一般的には、Array SizeとTrigger Everyは同じサイズです。

出力配列は常に長さArray SizeのArray 1Dです。出力配列の型は、Clearの後の最初の入力データによって決まります。

Trigger EveryがArray Sizeよりも小さい場合、Sliding Collectorは中間出力を作成します。例えば、Array Sizeが4でTrigger Everyが2の場合、Sliding Collectorは2つのデータ入力の後で長さ4の配列を出力します。出力の最初の2つの要素は入力されたデータ要素であり、最後の2つの要素は0です。

Trigger EveryがArray Sizeよりも大きい場合、入力要素の一部が破棄されます。例えば、Array Sizeが2で、Trigger Everyが4の場合、出力は長さ2の配列で、最後の2つのデータが格納されます。最初の2つのデータ入力は破棄されます。

場所

Data [image] Sliding Collector

関連項目

Allocate Array、Collector、Concatenator、Get Values、Set Values.、Properties（オブジェクト）、オブジェクト・メニュー

配列にデータを収集するには


Specify Object Type

ActiveXオートメーション・オブジェクト、コントロール、または.NETオブジェクトに対して変数を宣言する際のオプションの詳細を指定するためのダイアログ・ボックス。

使用法

[Specify Object Type]ダイアログ・ボックスは、ActiveXオブジェクトのための変数を宣言する際に、Library、Class、コントロール・イベントを設定するために使用します。また、[Specify Object Type]ダイアログ・ボックスは、.NETオブジェクトのための変数を宣言する際に、Assembly、Namespace、Typeを設定するために使用します。ActiveXまたは.NETオブジェクトのための変数を宣言する前に、これらをVEEから使用可能にしておく必要があります。ActiveXオブジェクトの場合、[Device] [image] [ActiveX Automation References]または[ActiveX Control References]を使用します。.NETオブジェクトの場合、[Device] [image] [.NET Assembly References]を使用します。

ActiveXオブジェクトのための変数の宣言は、他のすべての変数の場合と同様に省略可能です。ただし、ActiveXオブジェクトの変数を宣言し、オブジェクト型の詳細を指定すれば、VEEが自動的に型チェックを行い、指定したLibraryとClassだけがこの変数に代入されるようにします。

オートメーション・オブジェクト変数を宣言しても、実際にオブジェクトが作成されるわけではありません。オートメーション・オブジェクトを作成するには、CreateObjectをFormula式で使用して、プログラムで使用するオブジェクトを作成する必要があります。次に式の例を示します。

Set Excel = CreateObject("Excel.Application")

同様に、.NETオブジェクト変数を宣言しても、実際にオブジェクトが作成されるわけではありません。.NETオブジェクトを作成するには、CreateInstanceをFormula式で使用して、プログラムで使用するオブジェクトを作成する必要があります。次に式の例を示します。

Set hashtable = CreateInstance("mscorlib", "System.Collections.Hashtable");

ダイアログ情報

ActiveXオブジェクト

Library:- この領域をクリックすると、使用可能なActiveXライブラリのリストが表示されます。このリストは、[Device] [image] [ActiveX Automation References]および[ActiveX Control References]で選択した場合に使用可能になります。

Class:- この領域をクリックすると、使用可能なクラスのリストが表示されます。このリストには、選択されたライブラリに含まれるクラスが表示されます。

Enable Events - このフィールドは、選択されたクラスにイベントが含まれる場合にアクティブになります。ActiveXオブジェクトから発生するイベントをプログラムで処理したい場合は、この選択をクリックしてチェック・マークを表示させます。この選択をオンにした場合、イベント・ハンドラUserFunctionを作成する必要があります（オブジェクト・メニュー [image] Create Event Handler）。

OK - オブジェクト型を指定したら、[OK]をクリックすると、選択項目がDeclare Variableオブジェクトで有効になります。

.NETオブジェクト

Assembly:- この領域をクリックすると、使用可能な.NETアセンブリのリストが表示されます。このリストは、[Device] [image] [.NET Assembly References]で選択した場合に使用可能になります。

Namespace:- この領域をクリックすると、使用可能な名前空間のリストが表示されます。このリストには、選択されたアセンブリに含まれる名前空間が表示されます。

Type:- この領域をクリックすると、使用可能な型のリストが表示されます。このリストには、選択された名前空間に含まれる型が表示されます。

注記

ActiveXオブジェクト変数を宣言する際にイベントを有効にした場合、Declare VariableオブジェクトにEvents: Enabledと表示されます。イベント・ハンドラUserFunctionを作成する必要があります。変数を宣言してあればこれは簡単です。Declare Variableのオブジェクト・メニューで[Create Event Handler…]を選択します。

VEEは、.NETオブジェクトを作成したのと同じスレッドからイベントが発生した場合に.NETオブジェクト・イベントを処理します。.NETオブジェクト・イベントは、.NETオブジェクト変数を宣言する際に有効にできます。

場所

Data [image] Variable [image] Declare Variable
（TypeをObjectに設定し、Sub-Typeを設定して、Edit…をクリック）

関連項目

ActiveX Automation References、ActiveX Control References、Declare Variable

ActiveXオブジェクト／コントロールのVEEでの使用方法の詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照してください。.NETの使用方法の詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [.NET Framework]を参照してください。


Spectrum (Freq)

周波数ドメインの表示を含むメニュー項目。

使用法

Spectrum (Freq)は、次の周波数ドメイン表示にアクセスするために使用します。

Magnitude Spectrum

Phase Spectrum

Magnitude vs Phase (Polar)

Magnitude vs Phase (Smith)

注記

入力されるデータは、Waveform、Spectrum、Coordの配列のいずれかでなければなりません。

Spectrum表示にWaveformを入力した場合、高速フーリエ変換（FFT）によって自動的にSpectrumに変換されます。

場所

Display [image] Spectrum (Freq)

関連項目

Magnitude Spectrum、Magnitude vs Phase、Phase Spectrum、Waveform (Time)


Split

文字列を2つの部分に分割します。例えば、ordinaryという語を文字iで分割すると、2つの副文字列ordとnaryになります。文字iは破棄されます。

場所

System [image] String [image] Split


Stack - Clear

スタックからすべての項目を削除します。

場所

System [image] Collections [image] Stack [image] Clear


Stack - Count

スタックの項目数を数えます。

場所

System [image] Collections [image] Stack [image] Count


Stack - Create

メモリ・スタックを作成します。

場所

System [image] Collections [image] Stack [image] Create


Stack - Enumerate

スタックの中の項目のリストを作成します。

場所

System [image] Collections [image] Stack [image] Enumerate Items


Stack - Peek Item

スタック上の項目をピークします。

場所

System [image] Collections [image] Stack [image] Peek Item


Stack - Pop Item

スタックのいちばん上の項目を取り出します。

場所

System [image] Collections [image] Stack [image] Pop Item


Stack - Push Item

スタックのいちばん上に項目を追加します。

場所

System [image] Collections [image] Stack [image] Push Item


Start

ボタンが押されるとスレッドの実行を開始するオブジェクト。

使用法

Startオブジェクトは、ボタンが押されると、接続されているスレッドの実行を開始しますが、他のスレッドには影響を与えません（[Run]を押すと、Startオブジェクトがあるかどうかに関わらず、すべてのスレッドの実行が開始されます）。

注記

プログラムに複数の独立したスレッドが存在する場合、Startを使うことにより、他のスレッドを実行せずに1つのスレッドだけを開始できます。

[Run]または[Start]を押すと、伝達は[Start]オブジェクトから始まります。1つのスレッドに複数のStartオブジェクトがある場合、伝達は各Startオブジェクトから始まり、伝達規則に従って可能な限り遠くまで並列に進行します。

UserObject内部のStartを押した場合、UserObjectが実行されますが、そのデータ出力ピンはアクティブにならず、伝達は進行しません。

場所

Flow [image] Start

関連項目

Raise Error、Exit Thread、Exit UserObject、Stop、Properties（オブジェクト）

VEEプログラムを開始するには


Starts With

文字列が指定した副文字列で始まる場合、論理値の真が返されます。

場所

System [image] String [image] Starts With


Status Bar

[View]メニューのトグル機能で、VEEのステータス・バーの表示を切り替えます。

使用法

Status Barは、VEEのステータス・バーをオン／オフします。オンにすると、[Status Bar]メニュー項目の左側にチェック・マークが表示されます。

ステータス・バーは、VEEワークスペースの下部にあるメッセージ・ボックスです。ステータス・バーには、以下のような重要な情報が表示されます。

ファイルのロードの進行状況と、ロード中のファイル名。

VEEプルダウン・メニューの各項目に関する説明。

VEEツールバーの各ボタンに関する説明。

VEEワークスペースにオブジェクトを配置する際のX、Y座標データなどの一時的な情報。オブジェクトのサイズを決定するための幅と高さの情報も表示されます。

VEEプログラムの実行モードに関する常に表示されているステータス。

VEEプロファイラの状態に関する常に表示されているステータス。

VEEプログラムが変更されているかどうかの表示。

"File Saved"や"3 objects selected"などのさまざまな一時的ステータス・メッセージ。

場所

View [image] Status Bar

関連項目

ツールバー


Step Into

一度に1つのプリミティブ・オブジェクトを実行することにより、プログラムを実行します。

使用法

Step Intoはプログラムのデバッグに使用します。Step Intoは、選択されるたびに1つのプリミティブ・オブジェクトを実行します。次に実行されるオブジェクトは、黄色の境界（デフォルト）で示されます。

UserObjectまたはローカル／インポートUserFunctionがあった場合、そのオブジェクトの詳細ビューが表示され、その中のオブジェクトが1つずつ実行されます。

注記

Step Intoは、リモート／組み込み／コンパイル済み関数をオープンしません。Step Intoは、FormulaオブジェクトおよびCallオブジェクトから呼び出されたUserFunctionをオープンしますが、トランザクション・オブジェクトから呼び出された場合はオープンしません。

Step IntoがUserFunctionまたはUserObjectの中で使用できるのは、UserFunctionまたはUserObjectがタイムスライス実行されている場合に限ります。UserFunctionがタイムスライス実行されるのは、Call、Formula、If/Then/Else、Sequencerのいずれかのオブジェクトから呼び出された場合（Functionフィールドからのみ）です。To File、To String、または同様のオブジェクトから呼び出された場合、あるいは式がコントロール・ピンから供給された場合には、UserFunctionはタイムスライス実行されません。

VEE 4以上の実行モードでは、UserObjectは別々のスレッドから呼び出された場合のみタイムスライス実行されます。

Step Intoは保護されたプログラムでは使用できません。

最初にStep Intoを選択したときには、PreRunが実行されます。

ショートカット

F11は[Debug] [image] [Step Into]に対応します。

場所

Debug [image] Step Into

関連項目

Call Stack、Step Over、Step Out、Default Preferences、Pause、Run/Resume、Run、Show Data Flow、Show Execution Flow、Start、Stop、Toggle Breakpoint

プログラムをステップ実行するには


Step Out

現在のUserObjectまたはUserFunctionの実行を完了し、次のオブジェクトで休止します。

使用法

Step Outはプログラムのデバッグに使用します。Step Outは、選択されるたびに1つのプリミティブ・オブジェクトを実行します。次に実行されるオブジェクトは、黄色の境界（デフォルト）で示されます。

UserObjectまたはUserFunctionを実行中の場合、そのUserObjectまたはUserFunctionのすべてのオブジェクトが最後まで実行され、UserObjectまたはUserFunctionが終了されます。

注記

Step Outは保護されたプログラムでは使用できません。

最初にStep Outを選択したときには、PreRunが実行されます。

ショートカット

Shift-F11は[Debug] [image] [Step Out]に対応します。

場所

Debug [image] Step Out

関連項目

Call Stack、Step Into、Step Over、Default Preferences、Pause、Run/Resume、Run、Show Data Flow、Show Execution Flow、Start、Stop、Toggle Breakpoint

プログラムをステップ実行するには


Step Over

UserObjectやUserFunctionをオープンせずに、一度に1つのプリミティブ・オブジェクトを実行することにより、プログラムを実行します。

使用法

Step Overはプログラムのデバッグに使用します。Step Overは、選択されるたびに1つのプリミティブ・オブジェクトを実行します。次に実行されるオブジェクトは、黄色の境界（デフォルト）で示されます。

UserObjectまたはUserFunctionに達すると、オブジェクト全体が実行されます。

注記

Step Overは保護されたプログラムでは使用できません。

最初にStep Overを選択したときには、PreRunが実行されます。

ショートカット

F10は[Debug] [image] [Step Over]に対応します。

場所

Debug [image] Step Over

関連項目

Call Stack、Step Into、Step Out、Default Preferences、Pause、Run/Resume、Run、Show Data Flow、Show Execution Flow、Start、Stop、Toggle Breakpoint

プログラムをステップ実行するには


Stop

プログラムのすべてのスレッドを停止します。

使用法

Stopは、プログラム実行を停止するために使用します。[Stop]を選択した後、[Resume]を押すと実行を継続できます。

注記

Stopを選択した場合、プログラムは「停止」状態になり、強調表示はすべてクリアされ、開いているファイルとI/Oチャネルは閉じられます。

場所

Debug [image] Stop

関連項目

Default Preferences、Pause、Run/Resume、Run、Step Into、Step Over、Step Out、Properties（オブジェクト）、Stop（オブジェクト）、Toggle Breakpoint

プログラムをステップ実行するには

VEEプログラムを停止するには


Stop（オブジェクト）

プログラムの実行を停止するオブジェクト。

使用法

Stopは、プログラムのすべてのスレッドの実行を休止し、エラー・コードを返すために使用します。Stopは通常、何らかの条件をテストした後で用いられます。

オープン・ビュー・パラメータ

Exit Code - プログラムのステータスを示す番号。Exit Codeは、くぼんだ長方形の中に入力することも、データ入力として追加することもできます。Exit Codeは8ビットの整数であり、オペレーティング・システムに出力されます。出力が255より大きい場合、モジュロ256で出力されます（256は0として出力されます）。

VEEを-rオプション付きで実行した場合、StopはVEEを終了します。

場所

Flow [image] Stop

関連項目

Exit Thread、Exit UserObject、Raise Error、Start、Stop

VEEプログラムを停止するには


String - Add

文字列コレクションに文字列を追加します。

場所

System [image] Collections [image] StringCollection [image] Add String


StringCollection - Clear

指定されたコレクションのすべての文字列項目をクリアします。

場所

System [image] Collections [image] StringCollection [image] Clear StringCollection


String Collection - Create

文字列項目のコレクションを作成します。

場所

System [image] Collections [image] StringCollection [image] Create


String - Contains String?

指定された文字列コレクションから指定された文字列値を検索します。

場所

System [image] Collections [image] StringCollection [image] Contains String?


String - Count

文字列コレクション中の文字列の数を数えます。

場所

System [image] Collections [image] StringCollection [image] Count


String - Get

指定されたコレクションから指定されたインデックスの文字列を取得します。

場所

System [image] Collections [image] StringCollection [image] Get String


String - Get All

指定されたコレクションからすべての文字列を取得します。

場所

System [image] Collections [image] StringCollection [image] Get All Strings


String - Remove

文字列コレクションから文字列を削除します。

場所

System [image] Collections [image] StringCollection [image] Remove String


Set String

指定されたコレクションの指定されたインデックスの文字列値を設定します。

場所

System [image] Collections [image] StringCollection [image] Set String


String Compare

2つの文字列値を比較します。大文字と小文字を区別することもできます。

場所

System [image] String [image] Compare


Strip Chart

連続的に発生するデータを表示するオブジェクト。

使用法

Strip Chartは、連続して生成されるデータの最近の履歴を表示するために使用します。y入力値のそれぞれに対して、x値が指定されたStepサイズだけ増加します。新しいデータの表示が画面の右より外側へ出てしまうと、自動的に最新のデータを表示するようにスクロールします。

Strip Chartは、バッファ・サイズを有限の値に設定しない限り、送信されたすべてのデータをクリアされるまで保存します。

他のグラフィカル表示と異なり、配列データはStrip Chartトレースの末尾に追加され、トレースはクリアされません。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Y name - Y軸の名前。

Trace1 - 最初のトレースの名前。

Step Size:- X軸上のデータ・ポイントの間隔。

X name - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加できます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。 Next Curveコントロール・ピンは、マトリクス入力グラフでは使用できません。マトリクス入力グラフを参照してください。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷またはプロットされます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

 MatrixInput - このプロパティがTrueの場合、Strip Chartは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。MatrixInputプロパティがTrueに設定されているStrip Chartオブジェクトは、マトリクス入力グラフと呼ばれます。

このMatrixInputプロパティをTrueに設定できるのは、Next Curveコントロール・ピンがなく、Strip Chartにただ1つの入力データ・ピンがある場合だけです。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

MatrixInputプロパティはパネル・ビューでは使用できず、実行時にプログラムで切り替えることはできません。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EnableEditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EnableEditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 Show Scroll Bars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EnableEditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。[ShowTracesLegend]と[ShowScalesLegend]は、トレース名およびスケール名の表示を制御するために使用します。

GridType:- None - グリッド・ラインは表示されません。

Markers Group:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、オープン・ビューで表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

NumMarkers - グラフ上のマーカ数。デフォルトはNoneです。

MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

BufferSize - メモリに記録されるポイント数を指定します。デフォルトは10000です。

Display BackColor:- 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。デフォルトのBackground色は、[Default Preferences]の[Colors]タブの[Screen Element: Graph Background]で設定されます。

Scale Labelグループ:

Text:- スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Tracesグループ:（各トレースに1つずつ）

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Scale:- 複数のYスケールが存在する場合、このトレースに使用するYスケールを選択します。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトはyellow（黄色）です。

LineStyle - データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle - 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 調整できません。デフォルトはoffです。Auto Scaleはコントロール入力として追加できます。表示のスケールを変更するには、[General]タブの[Show Auto Scale Button]またはオブジェクト・メニューの[Auto Scale]を使用する方法もあります。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- yデータを表示にマッピングする方法。マッピングにはリニアと対数があります。X軸に関しては調整できません。デフォルトはLinearです。

Log Cycles:- Auto Scaleがアクティブのときに表示されるデケードの最大数（yの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

Step Size - X軸上のデータ・ポイントの間隔。X軸に対してのみ使用できます。デフォルトは1です。

ScaleNumberFormat:（X/Yスケール、および追加のYスケールに対して存在するグループ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/1994 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

MatrixInputプロパティがFalseの場合、入力は、Real64型に変換できるScalarまたはArray 1Dでなければなりません。Complex、PComplex、Spectrumの値は、解体してからStrip Chartに入力する必要があります。

MatrixInputプロパティがTrueの場合、Strip Chartsは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。

Strip Chartの更新速度と表示領域を最大化するには、Propertiesのいくつかを変更します。Grid TypeをNoneに設定します。Layout領域で、必要なもの以外のすべての選択肢をオフにします。Buffer Sizeをできるだけ小さく設定します。XスケールのMaximum値を、表示のスクロールがなるべく起きないように設定します。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesダイアログ・ボックスを開きます。DesignタブでDeclared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Strip Chart

関連項目

Complex Plane、Default Preferences、Magnitude Spectrum、Polar Plot、Waveform (Time)、XY Trace、X vs Y Plot

表示にマーカを設定するには、マーカのプロパティを取得／設定するには


SubRecord

レコードからフィールドを切り出すためのオブジェクト。

使用法

SubRecordは、元のレコードから指定したフィールドを切り出したサブセットのレコードをRecord出力ピンに出力するために使用します。編集するレコードは、Record入力ピンに入力されます。出力レコードに含める、または除外するフィールドのリストはFields入力ピンに入力されます。

オープン・ビューでInclude fieldsが選択されている場合、出力レコードはFields入力に指定されたフィールドだけから構成されます。

オープン・ビューでExclude fieldsが選択されている場合、出力レコードは、元のレコードのフィールドのうち、Fields入力に指定されたフィールド以外のものから構成されます。

オープン・ビュー・パラメータ

Include fields -- （デフォルトのモード）出力レコードは、入力レコードのフィールドのうちFieldsデータ入力ピンのフィールド名リストに含まれるものだけから構成されます。この選択はExclude fieldsとの間で切り替わります。

Exclude fields -- 出力レコードは、入力レコードのフィールドのうちFieldsデータ入力ピンのフィールド名リストに含まれないものだけから構成されます。

注記

Fields入力ピンは、出力レコードに包含または除外するレコード・フィールドの名前からなるテキスト配列です。

入力レコードに存在しないフィールドを包含または除外しようとすると、エラーが発生します。レコードのすべてのフィールドを除外した場合、ヌル出力信号が送られます。

UnBuild Record、SubRecord、Get Fieldの各オブジェクトの違いに注意してください。

UnBuild Recordオブジェクトは、入力レコードのフィールドのName ListとType Listの出力を持ちます。UnBuild Recordオブジェクトのその他の（オプションの）出力A、Bなどは、複数のGet Fieldオブジェクトと同様の結果を返します。

Get Fieldオブジェクトは、Formulaオブジェクトと同様に動作し、ドット構文（A.B）を使ってレコードを解体します。Get Fieldでは、A.B.Cのような式を使うことで、レコードのレコードを一度に解体できます。このためにはUnBuild Recordオブジェクトなら2個必要です。

SubRecordオブジェクトは、UnBuild RecordやGet Fieldと異なり、常にレコードを出力します。SubRecordデバイスを使ってレコードからサブレコードを作成する場合、包含または除外するフィールドのリストを指定できます。

場所

Data [image] Access Record [image] SubRecord

関連項目

Build Record、From DataSet、Get Field、Record Constant、Set Field、To DataSet、UnBuild Record、Properties（オブジェクト）


Subtract（システム・メニュー）

Subtract

ある時刻値を別の時刻値から減算します。

場所

System [image] DateTime [image] Subtract


System Directory

ホスト・システムのシステム・ディレクトリを取得します。

場所

System [image] Environment [image] System Directory


Tank

グラフィカルなタンクの中のカラー・バーを使ってスカラ数値をグラフィカルに表示するオブジェクト。

使用法

Tankは、グラフィカルなタンクの中のカラー・バーと、オプションのデジタル数値フィールドを使って、数値をアナログ・スケールで表示するために使用します。

オープン・ビュー

Tankの最小値と最大値を設定するには、オブジェクトのオープン・ビューで現在の値をクリックし、新しい値を入力します。目盛とそのラベルは自動的に計算されて表示されます。最小値は最大値より小さくなければなりません。

これらの値はコントロール入力として追加できます。

プロパティ

ClearAtPreRun - このプロパティがTrueの場合、Tankの内容はPreRun時にクリアされます。デフォルトはTrueです。

ClearAtActivate - このプロパティがTrueの場合、Tankの内容はアクティブ化時にクリアされます。デフォルトはTrueです。

Orientation - Tankの表示方法を選択します。デフォルトはVerticalです。

ShowDigitalDisplay - このプロパティがTrueの場合、入力値のデジタル表示がオブジェクトのオープン・ビューの下部に表示されます。このチェック・ボックスが選択されていない場合、デジタル表示は表示されず、オブジェクトの動作が高速になります。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - このプロパティがTrueの場合、スケールがリニアから対数に変わります。デフォルトはFalseです。

LabelSpacing - どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

HighColor - 最高レンジ（High Limitより上）に使用する色を指定します。

High Limit - 最高レンジの下限値を定義します。この値はLow Limit以上でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

MidColor - 中央レンジ（High Limit以下でLow Limitより上）に使用する色を指定します。

Low Limit - 最低レンジの上限値を定義します。この値はHigh Limit以下でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

LowColor - 最低レンジ（Low Limit以下）に使用する色を指定します。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

入力データはスカラで、Real64に変換可能なものでなければなりません（Complex、PComplex、Spectrum、Coordは「解体」しておく必要があります）。

Low LimitはHigh Limitより小さくなければなりません。

色のレンジを2つだけにするには、Low LimitをHigh Limitと等しく設定します。

1つの色だけを使用するには、Low Color、Mid Color、High Colorを同じ色に設定します。

ショートカット

Tankの方向を簡単に変更するには、目的の形状にサイズ変更します。方向は自動的に変更されます。

場所

Display [image] Indicator [image] Tank

関連項目

AlphaNumeric、Color Alarm、Fill Bar、Logging AlphaNumeric、Meter、Thermometer、オブジェクト・メニュー

データをアナログ表示するには


Text

定数の文字列スカラまたはArray 1Dを出力するオブジェクト。

使用法

Textは、文字列定数を設定するか、ユーザ入力を要求するために使用します。値を入力するには入力フィールドをクリックします。

例

Textをパネル・ビュー上のプロンプトとして使用するには、Textオブジェクトの名前をWhat is your name?などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。

ArraySize:- 1D Arrayを選択した場合、ArraySizeは配列の長さを設定します。

ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、1D Arrayが選択された場合だけです。

ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、1D Arrayが選択された場合だけです。

PasswordMasking - このプロパティがTrueの場合、オープン・ビューの入力フィールドのテキストはアスタリスク(*)で表示されます。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、AutoExecuteは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値はヌル文字列です。

InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1DのText値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値がヌル文字列に設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

この定数では、エスケープ文字の解釈はありません。入力はそのまま出力ピンに反映されます。

Textが配列として構成されている場合でも、InitialValueフィールドは常にスカラです。

場所

Data [image] Constant [image] Text

関連項目

Complex、Constant、Coord、Date/Time 、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Selection Control、Boolean、 Toggle Control

データ定数を使用するには


Text Input

テキスト入力を受け入れるポップアップ・ダイアログ・ボックスを表示するオブジェクト。

使用法

Text Inputは、テキストを入力するためのプロンプトをユーザに表示し、テキストを受け入れ、ユーザ定義のテストによってテキストの有効性をチェックするために使用します。

ポップアップ・ダイアログ・ボックスでOKボタンが押されると、ユーザが入力したテキストがValue出力ピンに出力されます。キャンセル・ボタンが押されると、Cancel出力ピンに1が出力されます。

オープン・ビュー

  • Prompt/Label - ユーザにテキスト・フィールドへの入力を求めるプロンプトの文字列。このパラメータはデータ入力として追加できます。デフォルトはEnter Text:です。

  • Default Value - ユーザの入力の前にダイアログの入力フィールドに存在するテキスト。ユーザが何も入力せずにOKを押した場合、このテキストが出力されます。このパラメータはデータ入力として追加できます。デフォルトは空白です。

  • Value Constraint - 入力テキストの有効性をテストする式。任意の式またはUserFunctionの呼び出しが使用できます。このパラメータはデータ入力として追加できます。デフォルトはstrLen(value)>0です。これは、ユーザ入力が1文字以上の文字列かどうかをチェックします。ヌル文字列は受け入れられません。任意の値を受け入れるには、式1を使用します。

  • Error Message - ユーザ入力がValue Constraintを満たさない場合にメッセージ・ボックスに出力されるテキスト。このパラメータはデータ入力として追加できます。デフォルトはYou must enter text.です。

プロパティ

  • PopupTimeoutEnabled - このプロパティがTrueの場合、Timeout出力ピンがオブジェクトに追加されます。デフォルトはFalseです。

  • PopUpDuration - ポップアップ・ダイアログ・ボックスが表示されている時間の長さを設定します。この時間が過ぎると、ダイアログ・ボックスはタイムアウトし、Timeout出力ピンに値1が出力されます。Timeoutピンが実行された場合、他のすべての出力ピンはデータを持ちません。このフィールドが使用できるのは、Timeout Enabledチェックボックスが選択されている場合だけです。デフォルトは60秒です。

  • PopupOKLabel - Trueの場合、ボタンのラベルをOKにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupCancelLabel - Trueの場合、ボタンのラベルをCancelにします。ユーザが英語以外の言語を使用している場合は、他の語句を使用することもできます。指定した語句に関わりなく、ボタンの機能は同じです。

  • PopupPasswordMasking - このプロパティがTrueの場合、入力テキストはアスタリスク（*）で表示されます。この機能は、パスワードなどの秘密データをオペレータが入力する場合に便利です。Value出力ピンに出力される文字列はマスクされません。デフォルトはFalseです。

注記

ポップアップ・ダイアログ・ボックスのデフォルトの位置は、作業領域のほぼ中央です。ダイアログ・ボックスを移動すると、次のときには新しい場所にポップアップします。

エラー・メッセージ・ダイアログ・ボックスのタイトル・テキストは、Text Inputオブジェクトのタイトルと同じです。

ポップアップ・ダイアログ・ボックスにキーボードだけで応答するには:ダイアログ・ボックスがポップアップしたら、値を入力した後EnterまたはEscキーを使用します。入力フィールドとボタンの間を移動するにはTabキーを、ボタンを選択するにはスペース・バーを使用します。

ポップアップ・ダイアログ・ボックスとエラー・ダイアログ・ボックスはプログラムの実行中にのみ表示されます。ポップアップ・ダイアログ・ボックスが表示されている間、プログラム全体が実行を休止し、ダイアログ・ボックスが閉じられたときに続行します。

場所

Data [image] Dialog Box [image] Text Input

関連項目

File Name Selection、Int32 Input、List Box、Message Box、Real64 Input、UserObject

データ入力ダイアログ・ボックスを使用するには


Thermometer

グラフィカルな温度計の中のカラー・バーを使ってスカラ数値をグラフィカルに表示するオブジェクト。

使用法

Thermometerは、グラフィカルな温度計の中のカラー・バーと、オプションのデジタル数値フィールドを使って、数値をアナログ・スケールで表示するために使用します。

オープン・ビュー

Thermometerの最小値と最大値を設定するには、オブジェクトのオープン・ビューで現在の値をクリックし、新しい値を入力します。目盛とそのラベルは自動的に計算されて表示されます。最小値は最大値より小さくなければなりません。

これらの値はコントロール入力として追加できます。

プロパティ

ClearAtPreRun - このプロパティがTrueの場合、Thermometerの内容はPreRun時にクリアされます。デフォルトはTrueです。

ClearAtActivate - このプロパティがTrueの場合、Thermometerの内容はアクティブ化時にクリアされます。デフォルトはTrueです。

Orientation - Thermometerの表示方向を選択します。デフォルトはVerticalです。

ShowDigitalDisplay - このプロパティがTrueの場合、入力値のデジタル表示がオブジェクトのオープン・ビューの下部に表示されます。このチェック・ボックスが選択されていない場合、デジタル表示は表示されず、オブジェクトの動作が高速になります。デフォルトはTrueです。

ShowTics - スケールの目盛とラベルの表示を制御します。デフォルトはTrueです。

Logarithmic - これをオンにすると、スケールがリニアから対数に変わります。デフォルトはFalseです。

LabelSpacing - どの目盛にスケール値のラベルを付けるかを制御します。デフォルトはEvery Other Ticです。

HighColor - 最高レンジ（High Limitより上）に使用する色を指定します。

High Limit - 最高レンジの下限値を定義します。この値はLow Limit以上でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

MidColor - 中央レンジ（High Limit以下でLow Limitより上）に使用する色を指定します。

Low Limit - 最低レンジの上限値を定義します。この値はHigh Limit以下でなければなりません。この値はコントロール入力として追加できます。この場合、このプロパティの編集フィールドは使用不可になります。

LowColor - 最低レンジ（Low Limit以下）に使用する色を指定します。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

注記

入力データはScalarで、Real64に変換可能なものでなければなりません（Complex、PComplex、Spectrum、Coordは「解体」しておく必要があります）。

Low LimitはHigh Limitより小さくなければなりません。

色のレンジを2つだけにするには、Low LimitをHigh Limitと等しく設定します。

1つの色だけを使用するには、LowColor、MidColor、HighColorを同じ色に設定します。

ショートカット

Thermometerの方向を簡単に変更するには、目的の形状にサイズ変更します。方向は自動的に変更されます。

場所

Display [image] Indicator [image] Thermometer

関連項目

AlphaNumeric、Color Alarm、Fill Bar、Logging AlphaNumeric、Meter、Tank、オブジェクト・メニュー

データをアナログ表示するには


Tile Horizontally

VEEワークスペースのウィンドウを管理する機能。

使用法

Tile Horizontallyは、VEEワークスペースの開いている最小化されていないウィンドウをすべて重なり合わないウィンドウとして整列します。ウィンドウは上下に並べて表示されます。

場所

Window [image] Tile Horizontally

関連項目

Cascade、Close All、Minimize All、Tile Vertically


Tile Vertically

VEEワークスペースのウィンドウを管理する機能。

使用法

Tile Verticallyは、VEEワークスペースの開いている最小化されていないウィンドウをすべて重なり合わないウィンドウとして整列します。ウィンドウはVEEワークスペース内で左右に並べて配置されます。

場所

Window [image] Tile Vertically

関連項目

Cascade、Close All、Minimize All、Tile Horizontally


Timer

上と下のデータ入力ピンがアクティブにされた時刻の差を秒単位で出力するオブジェクト。

使用法

Timerは、オブジェクトの動作などの2つのイベントの間の経過時間を測定するために使用します。これは、1番目と2番目の入力がアクティブになったときに行われます。2番目の入力が1番目の入力よりも先にアクティブになった場合、2番目の入力のコンテナは無視され、Timerオブジェクトは実行されません。

注記

時間は秒単位で表示されます。

Windowsでは、Timerは高分解能カウンタがシステムで使用可能であればそれを使用します。

場所

Device [image] Timer

関連項目

Date/Time、Do、Properties（オブジェクト）、オブジェクト・メニュー


To

メニュー項目。

使用法

Toは、I/O動作の出力先となる次のオブジェクトにアクセスするために使用します。

To File

To DataSet

To Printer

To String

場所

I/O [image] To

関連項目

From


To DataSet

レコードをファイルに収集するためのオブジェクト。

使用法

To DataSetは、同じスキーマ定義を持つレコードをファイルに収集し、後で読み取れるようにするために使用します。次のコントロール・ピンを追加できます。

File Name -- このコントロール・ピンは、レコードが書き込まれるファイルの名前を変更するために使用します。

Rewind -- このコントロール・ピンは、ファイルの書き込み位置を先頭に戻し、新しいレコード型を初めから書き込めるようにします。この効果は、Clear File At PreRunチェック・ボックスが選択された状態で、最初のレコードをファイルに送る場合と同じです。

Close -- このコントロール・ピンは、ファイルをクローズします。

オープン・ビュー・パラメータ

To DataSet:-- 名前フィールドをクリックしてダイアログ・ボックスを表示し、データセットを含むファイルの名前を選択します。

Clear File At PreRun -- このチェック・ボックスが選択されている場合、To DataSetが最初に実行されたとき（最初のレコードを受け取ったとき）に、データセット全体がクリアされ、最初から書き直されます。データセットは完全に消去されるため、新しいスキーマ定義を持つレコードを送ることができます。最初のレコードによって新しいスキーマ定義が決まります。

注記

To DataSetファイルに送られるレコードは、同じスキーマ（データの種類と型）を持つ必要があります。ファイルに最初に書き込まれたレコードによって、以降のすべてのレコードが従うべきスキーマが定義されます。

To DataSetオブジェクトが1つの入力で（使用できる入力は1つだけ）実行されるたびに、新しいレコードがファイルに追加されます。新しいレコードが配列の場合、そのすべてのレコード要素が追加されます。すべてのレコードのスキーマ（フィールドの数と、各フィールドの名前、型、種類）が一致する必要がありますが、レコードの種類（スカラ／配列）は一致しなくてもかまいません。To DataSetオブジェクトによるファイルの追加は、Rewindコントロール入力がアクティブになるか、Clear File At PreRunが選択されていてPreRunが発生するまで続きます。その後でTo DataSetオブジェクトが実行された場合は、ファイルの先頭から書き込みが開始され、最初のレコードのスキーマが採用されます。このスキーマは、ファイルの前の内容とは異なっていてもかまいません。

場所

I/O [image] To [image] DataSet

関連項目

Build Record、From DataSet、Record Constant、UnBuild Record、Properties（オブジェクト）、オブジェクト・メニュー

ファイルにデータを書き込むには


To File

トランザクション・ステートメントを使ってファイルにデータを書き込むオブジェクト。

使用法

To Fileは、さまざまなエンコードやフォーマットによる柔軟なファイル出力のために使用します。使用されるポインタは1つのファイルに対して1つです。したがって、異なるTo Fileオブジェクトから1つのファイルに出力する場合、データはオブジェクトが動作した順序で書き込まれます。

To Fileの操作:

WRITE - 指定されたエンコードとフォーマットを使用してファイルにデータを書き込みます。

EXECUTE - は、ファイルの内容を消去して（CLEAR）または消去せずに（REWIND）ファイルの書き込みポインタをファイルの先頭に位置付けます。EXECUTE REWINDが使用できるのは、Clear File at PreRun & Openが選択されている場合だけです。VEEプログラムが停止したときに、ファイルは自動的に閉じられます。ただし、EXECUTE CLOSEトランザクションを使って、プログラム実行中にファイルを閉じることもできます。EXECUTE DELETEはファイルを削除します。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

To Fileのエンコード:

TEXT - すべてのデータ型をテキスト・ファイルに書き込みます。このファイルは容易に編集したり、他のソフトウェア・アプリケーションに転送したりできます。VEEの数値データは書き込みの際に自動的にテキストに変換されます。

BYTE - 数値データをバイナリ整数に変換し、最下位バイトを書き込みます。

CASE - 列挙値または整数を文字列にマッピングし、文字列を書き込みます。たとえば、CASEを使用すると、エラー番号を受け入れて、エラー・メッセージを書き込むことができます。

BINARY - すべてのデータ型をマシン固有のバイナリ・フォーマットで書き込みます。

BINBLOCK - すべてのVEEデータ型をIEEE 488.2固定長ブロック・ヘッダを持つバイナリ・ファイルで書き込みます。

CONTAINER - すべてのデータ型をVEE固有のテキスト・フォーマットで書き込みます。CONTAINERは、"To File"オブジェクトを使ってデータをPV-WAVEに直接エクスポートして、ビジュアル・データ解析を実行するために使用します。

オープン・ビュー・パラメータ

Clear at PreRun & Open - ファイルの内容を消去し、ファイル・ポインタをファイルの先頭に位置付けます。このチェック・ボックスが選択されていない場合、データはファイルの末尾に追加されます。

複数のTo Fileオブジェクトが同じファイルを参照している場合、このチェック・ボックスは連動しており、どこか1箇所で変更するとすべてのオブジェクトで変更されます。

オープン・ビューには実行されるトランザクションのリストが表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

EolSequence - EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上のASCII文字を二重引用符で囲んだものです。デフォルトは"\n"です。

 ArraySeparator - WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。

MultiFieldFormat:WRITE TEXTトランザクションで使用するマルチフィールド・データ型の以下の2つのフォーマット・スタイルを指定します。対象となるデータ型は、Coord、Complex、PComplex、Spectrumです。

Data Only - 各マルチフィールド項目をカンマで区切り、グループは括弧で囲みません。複素数2+2jは2,2とフォーマットされます。

(...) Syntax - （デフォルト）各マルチフィールド項目をカンマで区切り、グループを括弧で囲みます。複素数2+2jは(2,2)とフォーマットされます。

ArrayFormatグループ:多次元配列のフォーマット方法を指定します。

Linear - 配列要素をリニアに配置します。

Block - （デフォルト）配列要素を2次元以上のブロックにまとめ、各行の末尾にEOL文字を置きます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] To [image] File

関連項目

Formula、From File、 オブジェクト・メニュー、ファイルにデータを書き込むには、トランザクションを編集するには


To/From DDE

DDE（Dynamic Data Exchange）をサポートするMicrosoft Windowsアプリケーションとの間で、トランザクションを使ってデータを交換するオブジェクト。

使用法

DDEは、プロセス間通信を実現するためのツールです。

データを読み書きするには、To/From DDEにトランザクションを追加する必要があります。このためには、オブジェクト・メニューで[Add Trans]をクリックします。

現在では、.NET Frameworkの方が高機能で、ドキュメントが整備されており、サポートも充実しています。

あるいは、ActiveX Automationの方がニーズに適しており、多くのサーバではドキュメントもより充実している可能性があります。ActiveXの詳細については、[Help] => [Contents and Index] => [以下の項目についての説明...] => [Active X]を参照してください。

オープン・ビュー・パラメータ

Application - DDEをサポートするWindowsのアプリケーション名（Excelなど）。

Topic - データの種類を表すアプリケーション固有の識別子（Sheet1など）。

この他に、オープン・ビューには実行されるトランザクションのリストが表示されます。

[Application]および[Topic]フィールドはコントロール入力として追加できます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

EolSequence - EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上のASCII文字を二重引用符で囲んだものです。デフォルトは"\n"です。

 ArraySeparator - WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。

MultiFieldFormatグループ:WRITE TEXTトランザクションで使用するマルチフィールド・データ型の以下の2つのフォーマット・スタイルを指定します。対象となるデータ型は、Coord、Complex、PComplex、Spectrumです。

Data Only - 各マルチフィールド項目をカンマで区切り、グループは括弧で囲みません。複素数2+2jは2,2とフォーマットされます。

(...) Syntax - （デフォルト）各マルチフィールド項目をカンマで区切り、グループを括弧で囲みます。複素数2+2jは(2,2)とフォーマットされます。

ArrayFormatグループ:多次元配列のフォーマット方法を指定します。

Linear - 配列要素をリニアに配置します。

Block - （デフォルト）配列要素を2次元以上のブロックにまとめ、各行の末尾にEOL文字を置きます。

注記

To/From DDEは、DDEをサポートするWindowsアプリケーションとの通信を可能にします。ただし、VEEと特定のアプリケーションとの間のDDE通信に必要なアプリケーション固有のプロトコルについては、ユーザが調べる必要があります。これは上級者向けのプログラミング機能です。

DDEをサポートするWindowsアプリケーションは、クライアント、サーバ、またはその両方として動作します。ただし、VEEが提供しているのはクライアント機能だけです。

To/From DDEオブジェクトは、次の4種類のトランザクションを使用します。

READ(REQUEST) - DDE転送からデータを読み取ります。

WRITE(POKE) - DDE転送にデータを書き込みます。

EXECUTE - VEEの通信相手のDDEサーバにコマンドを送信します。サーバはコマンドを実行します。

WAIT - 指定された時間（秒単位）だけ待ちます。

To/From DDEは、その機能の一部として、DDE動作の開始／終了を行います。トランザクションの開始／終了をユーザが明示的に実行する必要はありません。

DDEの使用の例については、 プログラムとの通信 を参照してください。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] To/From DDE

関連項目

Formula、From、From File、To File、To、オブジェクト・メニュー、トランザクションを編集するには


To/From IVI-COM

IVI-COMドライバ関数を呼び出すトランザクション・ステートメントを使って、計測器にデータを書き込んだり計測器からデータを読み取ったりするオブジェクト。

使用法

使用している計測器用のIVIドライバをダウンロード／インストールします。Instrument Manager内部にダウンロード・サイトへのリンクがあります。

計測器用にIVI-COMドライバを自動設定するには、Instrument Managerを起動します。「Auto Discovery」で、[Find Instruments]をクリックします。ドライバを設定したい計測器を選択し、「Auto Discovery」の[Configure Drivers]をクリックします。VEEはすべてのドライバをこの計測器用に設定しようとします。IVI-COMドライバが見つかると、[IVI-COM Driver]ボタンは淡色表示ではなくなります。

特定のインタフェース用にIVI-COMドライバを手動設定するには、Instrument Managerを起動します。計測器を追加し、インタフェースを選択します。同じ[Instrument Properties]ダイアログ・ボックスから、[Advanced]を選択し、[IVI-COM Driver]タブを選択します。計測器に対応するIVI-COMドライバ名を選択し、計測器のアドレスを確認します。

To/From IVI-COMオブジェクトにアクセスするには、[I/O]メニューからInstrument Managerを起動します。計測器を選択します。次に、「Create I/O Object」の[IVI-COM Driver]を選択します。その測定器用に設定されているIVI-COMドライバがない場合は、選択した項目は淡色表示されます。

オープン・ビュー・パラメータ

オープン・ビューには実行可能なトランザクションのリストが表示されます。各トランザクションは、IVI-COMコマンド（IVI-COMドライバの関数の呼び出し）です。

空のトランザクションをダブルクリックすると、[Select an Operation from...]ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、実行する動作を選択できます。ダイアログ・ボックスの下部のテキスト領域には、現在選択されているメンバの説明が表示されます。メンバの階層ツリー・ビューには、さまざまなカテゴリが表示されます。メンバの左側に+が付いている場合、子メンバがあることを示します。メンバの左側に+がない場合、子メンバがないことを示します。

最初のトランザクションは常にCreateInstanceであり、その後にInitializeトランザクションがあります。その後には任意のトランザクションを挿入できますが、最後にはリソースを解放するために必ずCloseトランザクションを置いてください。

動作を選択して[OK]をクリックすると、[Edit]ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、動作の値を編集したり、入出力端子を設定したりできます。

この時点で[Cancel]をクリックすると、選択プロセス全体がキャンセルされます。

[Edit]ダイアログ・ボックスには次のフィールドがあります。

Edit Parametersタブ:

パラメータは選択した動作によって異なります。一般的に、何を指定する必要があるかは見ればわかります。

Configure Terminalsタブ:

これらの値は通常は変更する必要はありません。

OKをクリックすると、[Edit]ダイアログ・ボックスが閉じ、トランザクションが作成されます。

既存のトランザクションをダブルクリックすると、[Edit]ダイアログ・ボックスが表示され、現在選択されている関数呼び出しを編集できます。

オブジェクト・メニュー

Edit Operation - 現在強調表示されている関数を編集します。

Add Operation...- リストの末尾に関数を追加します。

Insert Operation...- 現在強調表示されている関数の前に関数を挿入します。

Cut Operation- 現在強調表示されている関数を切り取り（削除し）、「切り取り／貼り付け」バッファに入れます。

Copy Operation- 現在強調表示されている関数を「切り取り／貼り付け」バッファにコピーします。

Paste Operation- 「切り取り」または「コピー」された関数をポインタ位置に貼り付けます。

Delete Oper- リスト中の強調表示された関数を削除します。

Move Oper Up - 強調表示された関数を上に移動します。

Move Oper Down - 強調表示された関数を下に移動します。

IVI-COM Help - IVI-COMドライバに関連するヘルプ情報を表示します。この情報は、ハードウェア・メーカから提供され、各ドライバに付属しています。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] Instrument Manager...

注記

まれに、IVI-COMドライバがロードできないことがあります。このような場合は、COMオブジェクト - トラブルシューティングを参照してください。

関連項目

To/From IVI-COM - Advanced、オブジェクト・メニュー


To/From IVI-COM - 高度な機能

To/From IVI-COMのヘルプ項目では、To/From IVI-COMの基本的な使用法について説明しています。この機能には、この他に3つの使用法があります。これらは高度な機能ですが、場合によっては作業に役立ちます。

使用法

Instrument Managerを使って新しい計測器を追加します。計測器の[Properties]を表示し、[Advanced]ボタンを選択します。[IVI-COM Driver]タブを選択し、IVI-COMのドライバ・タイプを選択します。このタブには、[Instrument Interchangeability]というラベルのボックスがあります。

Instrument Interchangeability（機器互換性）とは、ドライバと計測器がIVI互換性の制約を満たしていれば、IVIドライバが複数のメーカの計測器に対応できる機能のことです。これにより、プログラムを変更しなくても、TekオシロスコープをAgilentオシロスコープに置き換えることができます。ドライバへの呼び出しと基本機能が標準化されているからです。メーカ固有の呼び出しを使用した場合には、計測器の互換性は失われます。

VEEでのIVI-COMドライバの使用法については、4つのシナリオがあります。シナリオ1については、To/From IVI-COMの項目で説明しています。

シナリオ2

このシナリオでは、クラス対応インタフェースでIVI-COMドライバを使用します。DMMドライバを使用している場合、プログラム・コードを変更しなくても、IVI準拠の別メーカのDMMに交換できます。

Instrument Managerを使って新しい計測器を追加します。計測器の[Properties]を表示し、[Advanced]ボタンを選択します。[IVI-COM Driver]タブを選択し、IVI-COMのドライバ・タイプを選択します。このタブには、[Instrument Interchangeability]というラベルのボックスがあります。[Use Class Compliant Interface]というラベルのボックスにチェックマークを付けます。このボックスにチェックマークを付けると、VEEは計測器ドライバのクラス対応インタフェースだけを使って計測器と通信します。

シナリオ3

このシナリオでは、IVI-COMセッションを使用します。セッションはIVI Config Storeで定義され、計測器に関するリソース情報を保持します。

Instrument Managerを使って新しい計測器を追加します。計測器の[Properties]を表示し、[Advanced]ボタンを選択します。[IVI-COM Driver]タブを選択し、既存のIVI-COMセッション名を選択します。IVI-COMセッション名は最後が"- Session Name"で終わり、リソース文字列は淡色表示になります。これは、セッション名を使ってIVI Config Storeから情報が収集されるからです。

[Class Compliant Interface]チェックボックスにチェックマークを付けないでください。このボックスにチェックマークを付けないでおくと、VEEは計測器固有ドライバを使用します。

IVI-COMセッションが定義されていない場合、[Configure IVI Driver Session]ボタンを押して定義することができます。表示されたアプリケーションを使って、IVI Config Store情報を管理します。左上のアイコンは、コンピュータに直接接続されている計測器を検出し、IVI Config Storeで識別されている他の計測器を読み取ります。

計測器が検出されたら、そのうちの1つを右クリックして[Add Instrument Session]を選択することにより、IVIセッションが追加されます。計測器に対するセッションを定義するには、その計測器に対するIVIドライバがコンピュータにインストールされている必要があります。表示されるウィザードを使って、IVIセッションを作成するための短い手順を実行します。デフォルトの名前はわかりやすい名前に変更することをお勧めします。設定を保存します。これにより、IVI Config Storeが更新されます。

このアプリケーションの動作とその他の機能については、オンライン・ヘルプを参照してください。

シナリオ4

このシナリオでは、IVI-COMセッションとクラス対応インタフェースを使用します。DMMドライバを使用している場合、プログラム・コードを変更しなくても、IVI準拠の別メーカのDMMに交換できます。セッションはIVI Config Storeで定義され、計測器に関するリソース情報を保持します。

Instrument Managerを使って新しい計測器を追加します。計測器の[Properties]を表示し、[Advanced]ボタンを選択します。[IVI-COM Driver]タブを選択し、既存のIVI-COMセッション名を選択します。リソース文字列は淡色表示されています。また、IVI-COMセッション名の末尾に" - Session Name"が付けられています。これは、セッション名を使ってIVI Config Storeから情報が収集されるからです。

このタブには、[Instrument Interchangeability]というラベルのボックスがあります。[Use Class Compliant Interface]というラベルのボックスにチェックマークを付けます。IVI-COMセッションが定義されていない場合、[Configure IVI Driver Session]ボタンを選択し、シナリオ3で説明した手順を実行します。

関連項目

To/From IVI-COM、オブジェクト・メニュー


To/From NIDAQ

NIDAQドライバを呼び出すトランザクション・ステートメントを使って、計測器にデータを書き込んだり計測器からデータを読み取ったりするオブジェクト。

使用法

To/From NIDAQは、NIDAQドライバを持つ計測器と通信するために使用します。

To/From NIDAQオブジェクトにアクセスするには、I/OメニューからInstrument Managerを起動します。NIDAQインタフェースを追加し、NIDMM、NISCOPE、NISWITCH、NIFGEN、NIDAQ、NIDAQmxの中から選択します。次に、[Create I/O Object]の[NIDAQ Driver]を選択します。その計測器用に設定されているNIDAQドライバがない場合は、選択した項目は淡色表示されます。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。各トランザクションは、NIDAQコマンド（NIDAQドライバのC関数の呼び出し）です。

空のトランザクションをダブルクリックすると、[Select a Function Panel]ダイアログ・ボックスが表示されます。

このダイアログ・ボックスでは、実行する関数を選択できます。ダイアログ・ボックスの下部のテキスト領域には、現在選択されている関数パネルの説明が表示されます。関数の階層ツリー・ビューには、関数パネルのさまざまなカテゴリが表示されます。フォルダの左側に+が表示されている場合、その中にさらにフォルダや関数パネルがあることを示します。フォルダの左側に-が表示されている場合、フォルダや関数パネルがすでに表示されていることを示します。ツリーの枝を完全に展開するには、展開する項目を選択して*キーを押します。

関数を選択して[OK]をクリックすると、[Edit Function Panel]ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、関数パネルの値を編集したり、変数を設定したり、入出力端子を自動的に作成したりできます。

この時点で[Cancel]をクリックすると、関数パネルの選択プロセス全体がキャンセルされます。

[Edit Function Panel]ダイアログ・ボックスには次のフィールドがあります。

[Panel]タブ:

コントロール（ダイアログ・ボックス上部） - 各コントロールは、関数へのパラメータを表します。コントロールの値を編集すると、パラメータに対する定数値を指定できます。コントロールの名前は、関数パネル・ファイルで指定されたラベルです。コントロールに関するヘルプを見るには、コントロールの上でマウスの右ボタンをクリックします。関数パネルによってはコントロールがないものもあります。

[Configuration]タブ:（このタブは関数によっては存在しない場合もあります） - 関数へのパラメータに変数を指定するために使用します。

[label name]グループ:関数パネル・ファイルで指定されたコントロールの名前。

Parameter Type:- パラメータの型と種類を指定します。

Parameter Value:Constant | Variable - パラメータが定数値（[Panel]タブ）で設定されるか、変数としてC関数に入力されるかを指定します。パラメータがVariableでなければならない場合（配列の場合など）Parameter Valueは淡色表示になります。Variableが選択された場合、[Name]および[Create Terminal]フィールドが使用可能になります。

Name - C関数に渡される変数名。デフォルトでは、Nameは関数パネル・ファイルで指定されたラベル名に設定されます。変数が入力変数の場合、このフィールドでは、値を返すUserFunctionの呼び出し（返された値が関数呼び出しに渡されます）、変数、実行時に評価される式が使用できます。

Create Terminal - このチェック・ボックスが選択されている場合、現在存在しない入力または出力端子は作成されます。Nameフィールドが無効な端子名（UserFunction呼び出しや式など）に設定されている場合、このフィールドは淡色表示になります。

Auto-Allocate Input - Parameter Typeが配列またはText型の場合、データを格納して関数に送るためにメモリを割り当てる必要があります。必要な数の配列要素または必要な長さの文字列を格納するためのメモリ・サイズをサイズ・フィールドでVEEに通知します。十分なサイズを指定することが重要です。このボックスのチェックを外して、入力端子を使って自分でメモリを割り当てることも可能ですが、これは推奨されません。

既存のトランザクションをダブルクリックすると、[Edit Function Panel]ダイアログ・ボックスが表示され、現在選択されている関数呼び出しを編集できます。

オブジェクト・メニュー

Edit Function - 現在強調表示されている関数を編集します。

Add Function...- リストの末尾に関数を追加します。

Insert Function...- 現在強調表示されている関数の前に関数を挿入します。

Cut Function - 現在強調表示されている関数を切り取り（削除し）、「切り取り／貼り付け」バッファに入れます。

Copy Function - 現在強調表示されている関数を「切り取り／貼り付け」バッファにコピーします。

Paste Function - 「切り取り」または「コピー」された関数をポインタ位置に貼り付けます。

Delete Func - リスト中の強調表示された関数を削除します。

Move Func Up - 強調表示された関数を上に移動します。

Move Func Down - 強調表示された関数を下に移動します。

Instrument Help - NIDAQドライバに関連するヘルプ情報を表示します。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

注記

NIDAQは、Advanced I/O機能をサポートしません。

NIDAQ関数呼び出しは、Agilent IO Monitorには表示されません。

NIDAQドライバに配列およびテキスト・パラメータを渡す場合は、メモリを割り当てる必要があります。これらのパラメータに割り当てるメモリが不十分な場合、関数呼び出しによってメモリが上書きされ、一般保護違反やセグメンテーション違反が発生するおそれがあります。このため、常にAuto-Allocate Input機能を使用し、メモリ・サイズを十分な大きさに設定することをお勧めします。

VEEはinit()およびclose()を自動的に呼び出してセッション・ハンドルを管理するので、ドライバにinit()関数があっても呼び出さないでください。詳細については、Advanced I/Oヘルプ項目を参照してください。

NI-FGENへの呼び出しではハンドルが作成される場合があります。これらのハンドルについては、VEEで特別な注意が必要です。NI-FGENを参照してください。

NI-SCOPE内の呼び出しでは、VEEと互換性のない方法で波形データが返される場合があります。NI-SCOPEのFetch/Read関数を参照してください。

場所

I/O [image] Instrument Manager...

関連項目

Advanced I/O、Component Driver、Formula、Instrument Manager、Panel Driver、 トランザクションを編集するには、NI-DAQmx


To/From Socket

ネットワーク化されたコンピュータ・システム中でソケットI/Oを使用するオブジェクト。

使用法

ソケットは、プロセス間通信を実現するためのツールです。To/From SocketはトランザクションI/Oを使用します。

接続またはバインドするポートを決定し、To/From Socketにデータを読み書きするトランザクションを追加する必要があります。

To/From Socketの操作:

READ - 指定されたエンコードとフォーマットを使用してデータを読み取ります。

WRITE - 指定されたエンコードとフォーマットを使用してデータを書き込みます。

EXECUTE - EXECUTE CLOSEトランザクションは、ソケット接続を明示的に終了するために使用します。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

To/From Socketのエンコード:

TEXT - すべてのデータ型をテキスト・ファイルに読み書きします。このファイルは容易に編集したり、他のソフトウェア・アプリケーションに転送したりできます。VEEの数値データは書き込みの際に自動的にテキストに変換されます。

BYTE - 数値データをバイナリ整数に変換し、最下位バイトを書き込みます。

CASE - 列挙値または整数を文字列にマッピングし、文字列を書き込みます。たとえば、CASEを使用すると、エラー番号を受け入れて、エラー・メッセージを書き込むことができます。

BINARY - すべてのデータ型をマシン固有のバイナリ・フォーマットで読み書きします。

BINBLOCK - すべてのVEEデータ型をIEEE 488.2固定長ブロック・ヘッダを持つバイナリ・ファイルで読み書きします。

CONTAINER - すべてのデータ型をVEE固有のテキスト・フォーマットで読み書きします。

オープン・ビュー・パラメータ

オープン・ビューには、ポート接続またはバインドを示すフィールド、タイムアウト時間、実行するトランザクションのリストが表示されます。

Connect/Bind Port - このボタンは、バインド・モードと接続モードを切り替えます。Bind Portは、VEEが動作しているコンピュータにソケットをバインドし、接続が発生するのを待ちます。Connect Portは、バインドされたソケットをリモート・コンピュータに接続します。対応するテキスト・フィールドにポート番号を入力します。使用できるポート番号は5000～6000です。

Host Name - Bind Portモードでは、VEEが動作しているホスト・コンピュータの名前を表示します。Connect Portモードでは、接続先のリモート・コンピュータのホスト名またはIPアドレスを入力します。

Timeout - バインドが発生するか、接続が受け入れられるまでのタイムアウト時間（秒単位）を表す整数値。接続が実行された後では、これはすべてのREADおよびWRITEトランザクションのタイムアウト時間となります。この値を0に設定すると、タイムアウト時間は無限大になります。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

EolSequence - EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上のASCII文字を二重引用符で囲んだものです。デフォルトは"\n"です。

ArraySeparator - WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。

MultiFieldFormatグループ:WRITE TEXTトランザクションで使用するマルチフィールド・データ型の以下の2つのフォーマット・スタイルを指定します。対象となるデータ型は、Coord、Complex、PComplex、Spectrumです。

Data Only - 各マルチフィールド項目をカンマで区切り、グループは括弧で囲みません。複素数2+2jは2,2とフォーマットされます。

(...) Syntax - （デフォルト）各マルチフィールド項目をカンマで区切り、グループを括弧で囲みます。複素数2+2jは(2,2)とフォーマットされます。

ArrayFormatグループ:多次元配列のフォーマット方法を指定します。

Linear - 配列要素をリニアに配置します。

Block - （デフォルト）配列要素を2次元以上のブロックにまとめ、各行の末尾にEOL文字を置きます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

注記

To/From Socketオブジェクトでソケットのバインドまたは接続を実行した場合、接続を待つ間、タイムアウト時間までVEEのすべてのスレッドがブロックされます。

同一のポート番号をバインドしている複数のTo/From Socketオブジェクトは、同じソケットを共有します。同様に、同一のポート番号とホスト名で同じバインドされているソケットに接続しようとするすべてのオブジェクトは、同じソケットを共有します。接続の確立に伴うオーバヘッドは、共通の構成を持つオブジェクトのうち最初に実行されたもので発生します。

タイムアウト値を0に設定するとタイムアウトが無効になり、接続待ちの時間が無限に長くなります。タイムアウト違反が起きるとエラーが発生し、VEEの実行は停止します。

接続しようとしたリモート・ホストが存在しないか停止している場合、タイムアウト値は無視されます。この場合、接続が実際に失敗するまでVEEインタフェースは動作を停止します。これには最大1分程度かかります。

VEEプログラムで確立されたソケット接続は、プログラムが実行を停止したときに切断されます。接続が切断された場合、接続を再確立するには、サーバとクライアントのオブジェクトがバインド／接続プロトコルを再実行する必要があります。

すべてのREAD動作は、トランザクションで指定された量と型のデータを待つ間、タイムアウト時間までブロックします。スレッドのブロックを避けるには、READ IOSTATUSトランザクションを使ってソケットにデータがあることを検出します。

場所

I/O [image] To/From Socket

関連項目

Formula、オブジェクト・メニュー、トランザクションを編集するには


To/From VXIplug&play

VXIplug&playドライバを呼び出すトランザクション・ステートメントを使って、計測器にデータを書き込んだり計測器からデータを読み取ったりするオブジェクト。

使用法

To/From VXIplug&playは、VXIplug&playドライバを持つ計測器と通信するために使用します。この計測器は、「ラック・アンド・スタック」計測器でもVXI計測器でもかまいません。

To/From VXIplug&playオブジェクトにアクセスするには、[I/O]メニューからInstrument Managerを起動します。計測器を選択します。次に、"Create I/O Object"で"Plug&play Driver"を選択します。その計測器に対してVXIplug&playドライバが設定されていない場合、この選択肢は淡色表示になっています。

VXIplug&playドライバによっては、一部のプラットフォームをサポートしないものがあります。また、VTL/VISA（GPIBカードに付属）のいくつかのバージョンは一部のプラットフォームでサポートされません。各ベンダに確認してください。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。各トランザクションは、VXIplug&playコマンド（VXIplug&playドライバのC関数の呼び出し）です。

空のトランザクションをダブルクリックすると、[Select a Function Panel]ダイアログ・ボックスが表示されます。

このダイアログ・ボックスでは、実行する関数を選択できます。ダイアログ・ボックスの下部のテキスト領域には、現在選択されている関数パネルの説明が表示されます。関数の階層ツリー・ビューには、関数パネルのさまざまなカテゴリが表示されます。フォルダの左側に+が表示されている場合、その中にさらにフォルダや関数パネルがあることを示します。フォルダの左側に-が表示されている場合、フォルダや関数パネルがすでに表示されていることを示します。左側にf(x)が表示されている場合は関数パネルを示します。ツリーの枝を完全に展開するには、展開する項目を選択して*キーを押します。

関数を選択して[OK]をクリックすると、[Edit Function Panel]ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、関数パネルの値を編集したり、変数を設定したり、入出力端子を自動的に作成したりできます。このダイアログ・ボックスのコントロール以外の領域でマウスの右ボタンをクリックすると、関数呼び出しに関するヘルプが表示されます。コントロールの上でマウスの右ボタンをクリックすると、コントロールの説明が表示されます。

この時点で[Cancel]をクリックすると、関数パネルの選択プロセス全体がキャンセルされます。

[Edit Function Panel]ダイアログ・ボックスには次のフィールドがあります。

[Panel]タブ:

コントロール（ダイアログ・ボックス上部） - 各コントロールは、関数へのパラメータを表します。コントロールの値を編集すると、パラメータに対する定数値を指定できます。コントロールの名前は、関数パネル・ファイルで指定されたラベルです。コントロールに関するヘルプを見るには、コントロールの上でマウスの右ボタンをクリックします。関数パネルによってはコントロールがないものもあります。

Session Handle - 各計測器の固有のセッション・ハンドルを表示します。

Status - この関数パネルの実行中にエラーが発生した場合は、0でない値を表示します。

関数呼び出し（ダイアログ・ボックスの下部） - オブジェクトが実行されたときに呼び出されるC関数（およびそのパラメータ）。このコマンド文字列は、オブジェクトのオープン・ビューにトランザクションとしても表示されます。

[Configuration]タブ:（このタブは関数によっては存在しない場合もあります） - 関数へのパラメータに変数を指定するために使用します。

[label name]グループ:関数パネル・ファイルで指定されたコントロールの名前。

Parameter Type:- パラメータの型と種類を指定します。

Parameter Value:Constant | Variable - パラメータが定数値（[Panel]タブ）で設定されるか、変数としてC関数に入力されるかを指定します。パラメータがVariableでなければならない場合（配列の場合など）Parameter Valueは淡色表示になります。Variableが選択された場合、[Name]および[Create Terminal]フィールドが使用可能になります。

Name - C関数に渡される変数名。デフォルトでは、Nameは関数パネル・ファイルで指定されたラベル名に設定されます。変数が入力変数の場合、このフィールドでは、値を返すUserFunctionの呼び出し（返された値が関数呼び出しに渡されます）、変数、実行時に評価される式が使用できます。

Create Terminal - このチェック・ボックスが選択されている場合、現在存在しない入力または出力端子は作成されます。Nameフィールドが無効な端子名（UserFunction呼び出しや式など）に設定されている場合、このフィールドは淡色表示になります。

Auto-Allocate Input - Parameter Typeが配列またはText型の場合、データを格納して関数に送るためにメモリを割り当てる必要があります。必要な数の配列要素または必要な長さの文字列を格納するためのメモリ・サイズをサイズ・フィールドでVEEに通知します。十分なサイズを指定することが重要です。このボックスのチェックを外して、入力端子を使って自分でメモリを割り当てることも可能ですが、これは推奨されません。

既存のトランザクションをダブルクリックすると、[Edit Function Panel]ダイアログ・ボックスが表示され、現在選択されている関数呼び出しを編集できます。

オブジェクト・メニュー

Edit Function - 現在強調表示されている関数を編集します。

Add Function...- リストの末尾に関数を追加します。

Insert Function...- 現在強調表示されている関数の前に関数を挿入します。

Cut Function - 現在強調表示されている関数を切り取り（削除し）、「切り取り／貼り付け」バッファに入れます。

Copy Function - 現在強調表示されている関数を「切り取り／貼り付け」バッファにコピーします。

Paste Function - 「切り取り」または「コピー」された関数をポインタ位置に貼り付けます。

Delete Func - リスト中の強調表示された関数を削除します。

Move Func Up - 強調表示された関数を上に移動します。

Move Func Down - 強調表示された関数を下に移動します。

Instrument Help - VXIplug&playドライバに関連するヘルプ情報を表示します。この情報は、ハードウェア・メーカから提供され、各ドライバに付属しています。

ショートカット

データ端子を簡単に追加するには、入力／出力端子表示領域にカーソルを置き、CTRL+Aを押します。CTRL+Aを押すたびに新しいデータ端子が追加されます。

データ端子をすばやく削除するには、端子表示領域にカーソルを置いて、CTRL+Dを押します。

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

プロパティ

IgnoreCautionsReturned - このチェック・ボックスが選択されている場合、一部のメーカのVXIplug&playドライバのトランザクション呼び出しから返される注意によって、注意ダイアログ・ボックスがポップアップし、プログラムが休止することがなくなります。一般的に、このチェック・ボックスは、VXIplug&playからの注意が表示され、その条件に対応するようにプログラムを変更した後でチェックするようにしてください。

Configured Instrument - このデバイスが接続されているInstrument Managerの設定済みの名前に関する編集不可の情報を表示します。

注記

[Edit Function Panel]ダイアログ・ボックスでは、[Panel]タブの背景でマウスの右ボタンをクリックすることにより、関数パネルに関するヘルプを表示できます。

コントロールの上でマウスの右ボタンをクリックすると、パラメータの説明が表示されます。

VXIplug&playは、Advanced I/O機能をサポートしません。例えば、VXIplug&playドライバはライブ・モード設定を無視します。

VXIplug&play関数呼び出しは、Agilent IO Monitorには表示されません。

1つのプログラムで、VXIplug&play関数呼び出しとDirect I/OまたはInstrument Panelを混在させて、同じ計測器と通信することはできません。ただし、同じプログラムで別の計測器と通信するには異なる種類のI/Oを使用できます。

VXIplug&playドライバに配列およびテキスト・パラメータを渡す場合は、メモリを割り当てる必要があります。これらのパラメータに割り当てるメモリが不十分な場合、関数呼び出しによってメモリが上書きされ、一般保護違反やセグメンテーション違反が発生するおそれがあります。VXIplug&play共有ライブラリはVEEに直接リンクされるので、このような条件が起きるとVEEがクラッシュして終了する場合があります。このため、常にAuto-Allocate Input機能を使用し、メモリ・サイズを十分な大きさに設定することをお勧めします。

VEEはinit()およびclose()を自動的に呼び出してセッション・ハンドルを管理するので、ドライバにinit()やautoconnect()関数があっても呼び出さないでください。詳細については、Advanced I/Oヘルプ項目を参照してください。

場所

I/O [image] Instrument Manager...

関連項目

Advanced I/O、Component Driver、Formula、Instrument Manager、Panel Driver

Plug&playドライバ・オブジェクトを使用するには、トランザクションを編集するには


Toggle Control

1（押されている、チェックされている、選択されている）または0を出力するオブジェクト。Toggle Controlオブジェクトにはさまざまな表示フォーマットがありますが、すべて同じ働きをします。

使用法

Toggle Controlオブジェクトは、1または0の出力を設定するために使用します。Toggle Controlオブジェクトは、A==1条件を含むIf/Thenオブジェクトと組み合わせて多く用いられます。

プロパティ

Formatグループ:- Toggle Controlオブジェクトの外観と選択の実行方法を指定します。デフォルトのフォーマットは、メニューから選択したオブジェクトです。

Button - 選択はボタンを押すことで実行されます。

Check Box - 選択はくぼんだボックスをクリックすることで実行されます。チェック・マークがオン（1）を示します。

Vertical Paddle - 縦方向のパドル・スイッチ。緑の丸がオン（1）を示します。

Horizontal Paddle - 横方向のパドル・スイッチ。緑の丸がオン（1）を示します。

Vertical Rocker - 縦方向のロッカー・スイッチ。緑の丸がオン（1）を示します。

Horizontal Rocker - 横方向のロッカー・スイッチ。緑の丸がオン（1）を示します。

Vertical Slide - 縦方向のスライド・スイッチ。緑の丸がオン（1）を示します。

Horizontal Slide - 横方向のスライド・スイッチ。緑の丸がオン（1）を示します。

<Custom> - 選択した場合、オンとオフに対する独自のビットマップを指定できます。ビットマップはCustomタブで選択します。

Executionグループ:

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、Auto Executeは無視されます。デフォルトはFalseです。

Layoutグループ:

Scaled - このプロパティがTrueの場合、トグル・イメージはオブジェクトのサイズに合わせて拡大縮小されます。このプロパティがFalseの場合、トグル・イメージは左揃えで表示されます。デフォルトはFalseです。

Show Caption - このプロパティがTrueの場合、オブジェクトのオープン・ビューのキャプションが表示されます。キャプションには、タイトル・バーと同じテキストが含まれます。

Initializationグループ:

InitialValue - 設定する値を指定します。デフォルト値は0です。

InitializeAtPreRun - このプロパティがTrueの場合、Initial ValueはPreRun時に設定されます。デフォルトはFalseです。

InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

CustomOnPicture - Toggle Controlが1の値を出力したときに表示されるグラフィカル・イメージ・ファイルを選択します。

CustomOffPicture - Toggle Controlが0の値を出力したときに表示されるグラフィカル・イメージ・ファイルを選択します。

Preview - 現在選択されているグラフィック・イメージを表示します。

表示されるディレクトリは、インストール・ディレクトリの下のbitmapsディレクトリです。別のディレクトリからファイルを選択するには、Browse ...ボタンを押します。

VEEはファイルを調べてファイル・フォーマットを判定します。現在サポートされているフォーマットは次のとおりです。

ビットマップ（*.BMP）

GIF87a（*.GIF）

Windowsメタファイル（*.WMF）

Portable Network Graphic（*.PNG）

デフォルトのビットマップは、VEEプログラムのインストール・ディレクトリの下のbitmapsディレクトリにあります。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、Default Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力はInt32 Scalar値を必要とします。0の値はトグルオフです。それ以外の値はトグルオンです。

Reset入力を使うと、プログラムで値を0に設定できます。Reset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューでトグル位置を変更できるかどうかをプログラムで制御できます。

場所

Data [image] Toggle Control

関連項目

Complex、Constant、Coord、Date/Time、Selection Control、If/Then/Else 、UInt8、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Text


Toggle Breakpoint

選択されたオブジェクトの実行ブレークポイントを設定またはクリアします。

使用法

Toggle Breakpointは、ブレークポイントを設定またはクリアするためのデバッグ・ツールとして使用します。オブジェクトを選択して、Toggle Breakpointを選択します。これにより、選択されたオブジェクトのうちブレークポイントが設定されていないものは設定され、ブレークポイントが設定されているものはクリアされます。

オブジェクトにブレークポイントを設定すると、そのオブジェクトの前でプログラムの実行が停止します。実行を継続するには、VEEツールバーのResumeボタンを押します。ブレークポイントがあるオブジェクトだけを実行するには、Stepボタンのどれかを押します。

ブレークポイントを設定すると、オブジェクトは色つき（デフォルトはオレンジ）の輪郭境界線で強調表示されます。

注記

1つのオブジェクトにブレークポイントを設定するには、オブジェクトのプロパティ・ウィンドウでBreakpointを選択します。

Toggle Breakpointを使ってブレークポイントを設定すると、プロパティ・ウィンドウのBreakpointがチェックされます。

ブレークポイントはプログラムとともに保存されます。プログラムを開いたときにブレークポイントが再び現れないようにするには、保存の前にClear All Breakpointsを使用します。

ショートカット

ブレークポイントを切り替えるには、設定するオブジェクトを強調表示して、CTRL-Bを押します。

場所

Debug [image] Toggle Breakpoint

関連項目

Activate Breakpoints、Properties（オブジェクト）、Clear All Breakpoints、Run/Resume、Select All、Show Data Flow、Show Execution Flow、Step Into、Step Over、Step Out

ブレークポイントを制御するには


Toolbar

[View]メニューのトグル機能で、VEEのツールバーの表示を切り替えます。

使用法

Toolbarは、VEEのツールバーをオン／オフします。オンにすると、[Toolbar]メニュー項目の左側にチェック・マークが表示されます。

ツールバーが表示されている場合、VEEのさまざまなプログラミング／デバッグ機能に簡単にアクセスできます。例えば、新しいVEEプログラム・ファイルを開いたり、既存のVEEプログラム・ファイルを開いたり、VEEプログラムの実行を開始／休止／停止したりできます。

ツールバー・ボタンの機能を知るには、マウス・カーソルをボタンの上に置くと、ボタンの下にツールヒントが表示されます。ツールヒントは、ボタンの機能を簡単に説明したものです。同時に、ツールバー・ボタンの機能の説明がVEEワークスペースの下部にあるステータス・バーにも表示されます。

場所

View [image] Toolbar

関連項目

Status Bar


To Printer

プリンタにデータを送信するオブジェクト。

使用法

To Printerは、さまざまなエンコードやフォーマットを使ってプリンタにデータを出力するために使用します。

To Printerの操作:

WRITE - 指定されたエンコードとフォーマットを使用してデータを出力します。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

To Printerのエンコード:

データをプリントするには、TEXTまたはCASEエンコードを使用するのが普通です。その他のエンコードは、熟練したユーザだけが使用してください。

TEXT - すべてのデータ型を人間が読める形式で書き込みます。VEEの数値データは書き込みの際に自動的にテキストに変換されます。

BYTE - 数値データをバイナリ整数に変換し、最下位バイトを書き込みます。

CASE - 列挙値または整数を文字列にマッピングし、文字列を書き込みます。たとえば、CASEを使用すると、エラー番号を受け入れて、エラー・メッセージを書き込むことができます。

BINARY - すべてのデータ型をマシン固有のバイナリ・フォーマットで書き込みます。

BINBLOCK - すべてのVEEデータ型をIEEE 488.2固定長ブロック・ヘッダを持つバイナリ・ファイルで書き込みます。

CONTAINER - すべてのデータ型をマシン固有のテキスト・フォーマットで書き込みます。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

EolSequence - EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上のASCII文字を二重引用符で囲んだものです。デフォルトは"\n"です。

ArraySeparator - WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。

MultiFieldFormatグループ:WRITE TEXTトランザクションで使用するマルチフィールド・データ型の以下の2つのフォーマット・スタイルを指定します。対象となるデータ型は、Coord、Complex、PComplex、Spectrumです。

Data Only - 各マルチフィールド項目をカンマで区切り、グループは括弧で囲みません。複素数2+2jは2,2とフォーマットされます。

(...) Syntax - （デフォルト）各マルチフィールド項目をカンマで区切り、グループを括弧で囲みます。複素数2+2jは(2,2)とフォーマットされます。

ArrayFormatグループ:多次元配列のフォーマット方法を指定します。

Linear - 配列要素をリニアに配置します。

Block - （デフォルト）配列要素を2次元以上のブロックにまとめ、各行の末尾にEOL文字を置きます。

注記

WRITE TEXTトランザクションでプリントする場合、To Printerは制御文字を含むASCIIテキストをプリントできません。このような場合、To Fileオブジェクトを使用し、ファイル名テキスト・フィールドにLPT1などのポート名を入力します。

出力先プリンタを設定するには、Print Setupを使用します。

プログラム中の最初のTo Printerオブジェクトが動作したときに、プリント・ジョブが開始されます。プリント・ジョブは、プログラム中のすべてのTo Printerオブジェクトに共有されます。すなわち、これらの出力は同じプリントアウトに順番にプリントされます。

プリント・ジョブは、PostRunまで、またはEXECUTE CLOSEトランザクションが実行されるか、どれかのTo PrinterのEnd Jobコントロール入力がアクティブになるまで開かれたままです。PostRunが実行されるのは、プログラムのすべてのスレッドが実行を終了するか、ユーザがStopを2回押したときです。End Jobコントロール入力ピンには、オブジェクト・メニューのAdd Control Inputからアクセスできます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] To [image] Printer

関連項目

Default Preferences、Formula、To、To File、プリンタにデータを送るには、トランザクションを編集するには


To String

トランザクションを使ってフォーマットされたテキストを文字列に書き込むオブジェクト。

使用法

To Stringはトランザクションを使ってフォーマットされたテキストを作成するために使用します。

To Stringのトランザクションから1つの文字列だけが作成される場合、出力コンテナは文字列スカラです。複数の文字列が作成される場合、出力コンテナはArray 1Dです。

"EOL ON"で終わるWRITEトランザクションは現在の出力文字列を終了し、To Stringリスト中の次のトランザクションは出力コンテナの次の配列要素にデータを書き込みます。[End Of Line (EOL)]プロパティでデータ・フォーマットの区切り文字シーケンスを指定することはできません。

"EOL OFF"で終わるWRITEトランザクションは出力文字列を終了せず、To Stringリスト中の次のWRITEトランザクションで生成された文字は現在の出力文字列の末尾に追加されます。To Stringリスト中の最後のトランザクションは、トランザクションの"EOL"モードと無関係に、常に出力文字列を終了します。

To Stringの操作:

WRITE - 指定されたエンコードとフォーマットを使用してデータを書き込みます。

WAIT - 指定された秒数だけ待ってから次のトランザクションを実行します。

To Stringのエンコード:

データを書き込むには、TEXTエンコードを使用するのが普通です。

TEXT - すべてのデータ型を人間が読める形式で書き込みます。VEEの数値データは書き込みの際に自動的にテキストに変換されます。

BYTE - 数値データをバイナリ形式に変換し、最下位バイトに対応するASCIIテキストを書き込みます。例えば、次のトランザクションは文字A（ASCIIの10進65）を書き込みます。

WRITE BYTE 65

CASE - 列挙値または整数を文字列にマッピングし、文字列を書き込みます。たとえば、CASEを使用すると、エラー番号を受け入れて、エラー・メッセージを書き込むことができます。

オープン・ビュー・パラメータ

オープン・ビューには実行されるトランザクションのリストが表示されます。

オブジェクト・メニュー

Edit Trans - 現在強調表示されているトランザクションを編集します。

Add Trans...- リストの末尾にトランザクションを追加します。

Insert Trans...- 強調表示されているトランザクションの前にトランザクションを挿入します。

Cut Trans - 現在強調表示されているトランザクションを切り取り（削除し）、トランザクションの「切り取り／貼り付け」バッファに入れます。

Copy Trans - 現在強調表示されているトランザクションをトランザクションの「切り取り／貼り付け」バッファにコピーします。

Paste Trans - 「切り取り」または「コピー」されたトランザクションをポインタ位置に貼り付けます。

Delete Trans - リスト中の強調表示されたトランザクションを削除します。

Move Trans Up - 強調表示されたトランザクションを上に移動します。

Move Trans Down - 強調表示されたトランザクションを下に移動します。

Print Trans - 現在強調表示されているトランザクションを記述する詳細なダイアログ・ボックスを印刷します。

プロパティ

EolSequence - EOL ONを使用したWRITEトランザクションの最後に送信される文字を指定します。このフィールドの入力は、0個以上のASCII文字を二重引用符で囲んだものです。デフォルトは"\n"です。

 ArraySeparator - WRITE TEXTトランザクションで書き込まれる配列の要素の区切りに用いられる文字列を指定します。このフィールドの入力は、二重引用符で囲む必要があります。

MultiFieldFormatグループ:WRITE TEXTトランザクションで使用するマルチフィールド・データ型の以下の2つのフォーマット・スタイルを指定します。対象となるデータ型は、Coord、Complex、PComplex、Spectrumです。

Data Only - 各マルチフィールド項目をカンマで区切り、グループは括弧で囲みません。複素数2+2jは2,2とフォーマットされます。

(...) Syntax - （デフォルト）各マルチフィールド項目をカンマで区切り、グループを括弧で囲みます。複素数2+2jは(2,2)とフォーマットされます。

ArrayFormatグループ:多次元配列のフォーマット方法を指定します。

Linear - 配列要素をリニアに配置します。

Block - （デフォルト）配列要素を2次元以上のブロックにまとめ、各行の末尾にEOL文字を置きます。

例

To Stringは、TEXTトランザクションの動作を調べるためのデバッグ・ツールとして便利です。Logging AlphaNumeric表示をTo Stringの出力端子に接続すると、結果をその場で見ることができます。

ショートカット

トランザクションを簡単に挿入するには、トランザクションの1つにカーソルを置きます。Insertキーを押すと、カーソルを置いたトランザクションの上にトランザクションが挿入されます。

トランザクションを簡単に削除するには、削除するトランザクションにカーソルを置いてDeleteキーを押します。

削除バッファからトランザクションを貼り付けるには、CTRL+Vを押します。

次または前のトランザクションにすばやく移動するには、上矢印キーまたは下矢印キーを押します。

場所

I/O [image] To [image] String

関連項目

Formula、To、To File、数値を文字列に変換するには、トランザクションを編集するには


Type Conversion

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Type Conversionは、次の関数にアクセスするために使用します。

asBoolean(x)
asClrType(x, t)
asComplex(x)
asCoord(x)
asInt16(x)
asInt32(x)
asInt64(x)
asPComplex(x)
asReal32(x)
asReal64(x)
asText(x)
asUInt8(x)
asVariant(x)
asVariantBool(x)
asVariantCurrency(x)
asVariantDate(x)
asVariantEmpty(x)
asVariantError(x)
asVariantNull(x)
isVariant(x)
isVariantBool(x)
isVariantCurrency(x)
isVariantDate(x)
isVariantEmpty(x)
isVariantError(x)
isVariantNull(x)
typeName(x)

場所

Device [image] Function & Object Browser [image]  Built-in Functions [image]  Type Conversion


UInt8

定数の1バイト符号なし整数スカラまたは1次元配列を出力するオブジェクト。

使用法

UInt8は、整数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

UInt8をパネル・ビュー上のプロンプトとして使用するには、UInt8オブジェクトの名前をEnter the number of seconds to delay:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

12*24のような式をUInt8に入力すると、結果が計算されます。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

 ArraySize:- DataShape 1D Arrayを選択した場合、Sizeは配列の長さを設定します。

 ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

 ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

 AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、Auto Executeは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

 InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

 InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

UInt8が配列として構成されている場合でも、Initial Valueフィールドは常にスカラです。

場所

Data [image] Constant [image] UInt8

関連項目

Alloc UInt8、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt16、Int16、Int32、Int64、PComplex、Real32、Real64、Text、Toggle Control

データ定数を使用するには


UnBuild Complex

Complex数の実数部と虚数部をReal64数値として出力するオブジェクト。

使用法

UnBuild Complexは、直交座標Complex数の実数部と虚数部を抽出するために使用します。

注記

Complex数の各部を抽出するには、re(x)およびimag(x)関数またはオブジェクトを使用する方法もあります。

入力がマッピングされている場合でも、出力はマッピングされません。

場所

Data [image] UnBuild Data [image] Complex

関連項目

Build Complex、UnBuild Data、UnBuild PComplex、Properties（オブジェクト）、オブジェクト・メニュー


UnBuild Coord

Coordの値をReal64数値として出力するオブジェクト。

使用法

UnBuild Coordは、Coordデータ型のx, y, z ...値を抽出するために使用します。zやその他の座標次元のための出力を追加できます。出力の数は、入力データの座標次元数と一致する必要があります。

場所

Data [image] UnBuild Data [image] Coord

関連項目

Build Coord、UnBuild Data、Properties（オブジェクト）、オブジェクト・メニュー


UnBuild Data

メニュー項目。

使用法

UnBuildは、次のデータ型変換にアクセスするために使用します。

Coord

Complex

PComplex

Waveform

Spectrum

Record

場所

Data [image] UnBuild Data

関連項目

Access Array、Build Data、UnBuild Complex、UnBuild Coord、UnBuild PComplex、UnBuild Record、UnBuild Spectrum、UnBuild Waveform、オブジェクト・メニュー


UnBuild PComplex

PComplex数の大きさと位相の成分を抽出し、Real64数値として出力するオブジェクト。

使用法

UnBuild PComplexは、PComplex数値から大きさと位相の成分を抽出するために使用します。

注記

PComplex数の各成分を抽出するには、mag(x)およびphase(x)関数またはオブジェクトを使用する方法もあります。

入力がマッピングされている場合でも、出力はマッピングされません。

場所

Data [image] UnBuild Data [image] PComplex

関連項目

Build PComplex、Default Preferences、UnBuild Complex、UnBuild Data、Properties（オブジェクト）、オブジェクト・メニュー


UnBuild Record

レコードを解体し、その成分を取り出すためのオブジェクト。

使用法

UnBuild Recordは、レコードからデータ成分（A、Bなど）を抽出し、成分の名前と型のリストを入手するために使用します。

Name List出力ピンは、入力レコードのすべてのフィールドの名前を含むText配列を出力します。

Type List出力ピンは、入力レコードのすべてのフィールドのデータ型を含むText配列を出力します。

A、Bなどの出力ピンは、レコードから抽出された個々のデータ成分を出力します。

注記

このオブジェクトには、任意の数の出力ピンを追加できます。各出力ピンの名前は、レコードのフィールド名の1つに一致する必要があります。フィールド名の大文字小文字は区別されません。

UnBuild Record、SubRecord、Get Field、From DataSetの各オブジェクトの違いに注意してください。

UnBuild Recordオブジェクトは、入力レコードのフィールドのName ListとType Listの出力を持ちます。UnBuild Recordオブジェクトのその他の（オプションの）出力A、Bなどは、複数のGet Fieldオブジェクトと同様の結果を返します。

Get Fieldオブジェクトは、Formulaオブジェクトと同様に動作し、ドット構文（A.B）を使ってレコードを解体します。Get Fieldでは、A.B.Cのような式を使うことで、レコードのレコードを一度に解体できます。このためにはUnBuild Recordオブジェクトなら2個必要です。

SubRecordオブジェクトは、UnBuild RecordやGet Fieldと異なり、常にレコードを出力します。SubRecordデバイスを使ってレコードからサブレコードを作成する場合、包含または除外するフィールドのリストを指定できます。

From DataSetは、レコードのファイル（データ・セット）から、論理式の制約に基づいてレコードを読み取るために使用します。例えば、レコード・フィールドにPASSという値があるすべてのレコードを抽出できます。

場所

Data [image] UnBuild Data [image] Record

関連項目

Build Record、buildRecord()、 Declare Variable、From DataSet、Get Field、Record Constant、Set Field、SubRecord、To DataSet、Properties（オブジェクト）、オブジェクト・メニュー

レコードからフィールドを抽出するには


UnBuild Spectrum

SpectrumのPComplex値と周波数範囲を出力するオブジェクト。

使用法

UnBuild Spectrumは、SpectrumからPComplex値のArray 1Dと間隔情報を抽出するために使用します。

オープン・ビュー・パラメータ

Start/Stop | Center/Span - Spectrumの周波数範囲を記述する出力の値を変更します。

場所

Data [image] UnBuild Data [image] Spectrum

関連項目

Build Spectrum、UnBuild Data、UnBuild Waveform、Properties（オブジェクト）、オブジェクト・メニュー


UnBuild Waveform

Waveformの振幅値とタイム・スパンを出力するオブジェクト。

使用法

UnBuild Waveformは、Waveformの振幅値のArray 1Dとタイム・スパンの実数値を抽出するために使用します。

注記

Real64配列出力はマッピングされません。

場所

Data [image] UnBuild Data [image] Waveform

関連項目

Build Waveform、UnBuild Data、UnBuild Spectrum、Properties（オブジェクト）、オブジェクト・メニュー


Unpack（オブジェクト・メニュー）

UserObjectのオブジェクト・メニューだけにあるメニュー項目で、UserObjectを「アンパック」します。UserObjectはなくなりますが、その中のオブジェクトはプログラムのメイン・コンテキストの一部となります。

使用法

Unpackは、UserObjectを削除し、その内容をプログラムのメイン・コンテキストに配置するために使用します。また、ネストされたUserObjectの場合は、アンパックされたUserObjectを包含していたUserObjectの中にその内容が配置されます。UserObjectの機能が保持されるように、構成オブジェクトの接続ラインは新しいコンテキストでも維持されます。

注記

UnpackはCreate UserObjectの逆です。オブジェクトを選択してCreate UserObjectを実行すると、オブジェクトとその接続が新しいUserObjectの一部となります。その後、UserObjectに対してUnpackを実行すると、オブジェクトはプログラムのメイン・コンテキストに戻り、UserObjectを作成する前と同じ状態になります。

場所

オブジェクト・メニュー（UserObjectsのみ） [image] Unpack

関連項目

Create UserObject、UserObject


Until Break

Breakに達するまでサブスレッドの実行を反復するオブジェクト。

使用法

Until Breakは、Breakに達するまで繰り返される動作のセットを開始するために使用します。

注記

Until Break出力から始まるサブスレッドの実行は、以下のいずれかが生じるまで継続します。

動作可能なすべてのオブジェクトが動作した場合。サブスレッドは非アクティブになります。Until Break出力が再び動作することにより、Breakオブジェクトに達するまでサブスレッドは再びアクティブになります。

Breakオブジェクトが動作した場合。サブスレッドは非アクティブになり、シーケンス出力ピンがアクティブになります。

Nextオブジェクトが動作した場合。サブスレッドは非アクティブになり、Until Break出力が再び動作することにより、Breakオブジェクトに達するまでサブスレッドは再びアクティブになります。

Until Breakは、実数値0を持つ出力実行信号を出力します。

Until Breakオブジェクトから始まるサブスレッドが反復を終了した場合、前の反復中に送られたすべてのデータ・コンテナは次の反復の前に無効になります。これは、前の反復の「古い」データが次の反復に再使用されるのを防ぐためです。ただし、反復サブスレッドの中にフロー分岐が存在する場合、一部のオブジェクトはすべての反復で動作しない可能性があります。したがって、これらのオブジェクトから送られるデータ・コンテナは、他のオブジェクトがそのデータを使って実行する前に無効になる可能性があります。このような場合に必要な伝達を実現するには、Sample & Holdオブジェクトを使用します。

場所

Flow [image] Repeat [image] Until Break

関連項目

Break、For Count、For Log Range、For Range、Next、On Cycle、Sample & Hold、Properties（オブジェクト）

VEEプログラムの一部をループするには


UserFunction

UserObjectまたは選択されたオブジェクトのグループから作成されたユーザ定義関数。

使用法

UserFunctionを作成するには、UserObjectを作成してからMake UserFunctionを実行します（詳細についてはUserObjectを参照）。UserFunctionを作成するもう1つの方法は、オブジェクトのグループを選択し、[Edit] [image] [Create UserFunction...]を使用することです。

作成したUserFunctionは、Edit UserFunctionを使って編集できます。UserFunctionは「背景」に存在し、Call Functionや一部の式から呼び出すことができます。

UserObjectからUserFunctionを作成することの利点は、プログラム内から同じUserFunctionを複数回呼び出しても、ソース・コードは1箇所にしか存在しないことです。

オブジェクト・メニュー

Edit [image] - UserFunctionのコンテキスト[Edit]メニューを表示する親メニュー。このメニューには、メイン・メニューの[Edit]メニューと同じ項目があります。ポップアップ[Edit]メニューを表示するには、UserFunctionの作業領域でマウスの右ボタンをクリックします。

以下の項目は、UserFunctionのコンテキスト依存です。

Clean Up Lines - UserFunction内のラインをオブジェクトを回避して配線します。

Add To Panel - 選択されたオブジェクトを含むUserFunctionのパネル・ビューを作成します（パネル・ビューが現在存在しない場合）。

Create UserObject - 現在選択されているオブジェクトからUserObjectを作成します。

Create UserFunction - 現在選択されているオブジェクトからUserFunctionを作成します。

Cut - UserFunctionをVEEとメモリから削除し、貼り付けバッファに入れます。UserFunctionとその内容は、別のVEEセッションに貼り付けることができます。Windows 2000/XPの場合、UserFunction編集ウィンドウとその内容のイメージがクリップボードに格納され、他のアプリケーションに貼り付けられるようになります。

Copy - UserFunctionを貼り付けバッファにコピーします。UserFunctionとその内容は、別のVEEセッションに貼り付けることができます。Windows 2000/XPの場合、UserFunction編集ウィンドウとその内容のイメージがクリップボードに格納され、他のアプリケーションに貼り付けられるようになります。

Make UserObject - Make UserFunctionの逆の操作。UserFunctionをUserObjectに戻します。

Save Secured Version - ユーザが編集できないUserFunctionのバージョンを保存します。名前を入力するためのプロンプトが表示されます。保護されたバージョンはこの名前に拡張子.veeを付けて保存されます。

Locate - プログラム・エクスプローラでUserFunctionの位置を強調表示します。

Generate [image] - UserFunctionのタイトルを参照する式を含む以下のいずれかのオブジェクトを作成します。作成されたオブジェクトはプログラムの別の場所に配置できます。

CallはCallオブジェクトを作成します。

Formula CallはFormulaオブジェクトを作成します。

If/Then/Else CallはIf/Then/Elseオブジェクトを作成します。

ShowPanelはShowPanel()関数を持つFormulaオブジェクトを作成します。

HidePanelはHidePanel()関数を持つFormulaオブジェクトを作成します。

Calls - このUserFunctionから呼び出される他のUserFunctionのリストを含むFind Resultsダイアログ・ボックスを開きます。

Called By - このUserFunctionを呼び出す他のUserFunctionのリストを含むFind Resultsダイアログ・ボックスを開きます。

Create Panel - UserFunctionのパネル・ビューを、オブジェクトが追加されていない状態で作成します。

Delete Panel - UserFunctionのパネル・ビューとその上のすべてのオブジェクトを削除します。パネルから削除されたオブジェクトは、詳細ビューからは削除されません。

Close - UserFunction編集ウィンドウを非表示にします。UserFunctionはメモリ上に残ります。プログラムを実行する前にUserFunction編集ウィンドウをCloseで閉じる必要はありません。

プロパティ

TrigModeグループ:

Degrees | Radians | Gradians - このUserFunctionで使用されるデフォルトの三角関数単位を指定します。

 PopupPanelTitle:- 実行ウィンドウでパネルに表示されるタイトル。

 ShowPanelOnExecute - このプロパティがTrueの場合、UserFunctionに対応するパネル・ビューが、UserFunctionの動作時に表示されます。デフォルトはFalseです。

 PopupMoveable - このプロパティがTrueの場合、ユーザはポップアップ・パネルを移動できます。デフォルトはTrueです。

 ShowPopupPanelTitle - このプロパティがTrueの場合、ポップアップ・パネルのタイトル・バーが表示されます。デフォルトはTrueです。

 ShowPopupPanelBorder - このプロパティがTrueの場合、ポップアップ・パネルの周りの境界が表示されます。デフォルトはTrueです。

注記

UserFunctionのライブラリを作成するには、複数のUserFunctionを作成し、すべてファイルに保存します。このライブラリは、Import Libraryを使ってプログラムにインポートでき、Delete Libraryを使って削除できます。

UserFunctionを呼び出すには、Call Functionを使うだけでなく、実行時まで評価が遅延される式から呼び出す方法もあります。これには、Formula、If/Then/Else、Set Valuesなどのオブジェクトの中の式や、SequencerおよびI/Oトランザクションの中の式が含まれます。ただし、式の中の関数呼び出しの構文では、1つの戻り値しか使用できません。したがって、式からのUserFunctionの呼び出しは、最初の出力の値だけを返します。複数の出力（シーケンス出力を除く）がある場合、2つめ以降の出力の値は破棄されます。出力がない場合、戻り値は未定義です。

表示されている（showPanel()またはShowPanelonExecuteによって）パネルの名前を知るには、パネル上でマウスの右ボタンをクリックすると、パネル名がポップアップします。

UserFunctionにヌル値を渡した場合、requiredTypeまたはrequiredShapeがAny以外だと、エラーが発生します。

説明があるUserFunctionは特殊なアイコンを持ちます。プログラム・エクスプローラとタイトル・バーに [image] のアイコンが表示される場合、右上隅の赤い三角形によって説明があることがわかります。

場所

[Edit] [image] [Edit UserFunction]でUserFunction名を選択するか、

Call Function のオブジェクト・メニュー [image] [Edit UserFunction]でUserFunction名を選択するか、

プログラム・エクスプローラでUserFunction名をクリックします。

関連項目

Call、Delete Library、Edit UserFunction、Formula、hidePanel()、If/Then/Else、Import Library、lockPosition()、panelPosition()、panelSize()、Sequencer、showPanel()、unlockPosition()、Remote Functions、UserObject

プログラム中のオブジェクトからUserFunctionを作成するには

プログラムにUserFunctionを作成するには


UserName

現在マシンにログインしているユーザの名前を取得します。

場所

System [image] Environment [image] User Name


UserObject

他のオブジェクトを中に含むオブジェクト。

使用法

UserObjectは、オブジェクトを論理的／物理的にグループ化するために使用します。UserObjectは、プログラムのルート・コンテキストと別の「コンテキスト」を構成します。1つのプログラム内で複数のUserObjectを使用することも、ネストされたUserObjectを使用することもできます。

必要なUserObjectを作成するには、UserObjectのオープン・ビューの作業領域に他のオブジェクトを移動するか、オブジェクトを選択して[Edit]メニューの[Create UserObject]を使用します。

オブジェクト・メニューの[Make UserFunction]を使うと、UserObjectをUserFunctionに変換し、Call Functionオブジェクトや一部の式から呼び出すことができます。

動作:

UserObjectは、他のオブジェクトと同様に動作します。UserObject内部のすべてのオブジェクトは、UserObjectのすべてのデータ入力がアクティブになるまで動作しません。UserObject内部のすべての動作が完了した後で、データ出力がアクティブになります。

UserObject内部のオブジェクトがUserObject外部のオブジェクトに接続されている場合、[Create UserObject]が選択されたときに入出力ピンが自動的に作成されます。既存のUserObjectに入出力ピンを追加するには、オブジェクト・メニューの[Add Terminal] [image] を使用します。

UserFunctionの作成:

UserObjectを作成した後、Make UserFunction（下の「オブジェクト・メニュー」を参照）を使って、同じ機能を持つUserFunctionを作成できます。UserObjectは画面から消え、新しいUserFunctionへの呼び出しを含むCall Functionオブジェクトと新しいUserFunctionのウィンドウに置き換えられます。UserFunctionは使用可能なUserFunctionのリストに追加されます。これはプログラムの「背景」に存在します。UserFunctionは、Call Functionオブジェクトまたは一部の式から呼び出すことができます。UserFunctionを編集するには、[Edit]メニューの[Edit UserFunction]を使用します。

オブジェクト・メニュー

UserObjectのオブジェクト・メニューはオブジェクト・メニュー・ボタンから選択できますが、UserObjectのオープン・ウィンドウの作業領域からは選択できません。ウィンドウ内でマウスの右ボタンをクリックすると、メイン・ウィンドウで使用できるのと同様のポップアップ[Edit]メニューが表示されます。UserObject内のオブジェクトの上にポインタがある場合、マウスの右ボタンをクリックするとそのオブジェクトのオブジェクト・メニューが表示されます。UserObjectのオブジェクト・メニューを表示するには、UserObjectの境界にポインタを置いてマウスの右ボタンをクリックする方法もあります。

Edit [image] - UserObjectのコンテキスト[Edit]メニューを表示する親メニュー。このメニューには、メイン・メニューの[Edit]メニューと同じ項目があります。ポップアップ[Edit]メニューを表示するには、UserObjectの作業領域でマウスの右ボタンをクリックします。

以下の項目は、UserObjectのコンテキスト依存です。

Clean Up Lines - UserObject内のラインをオブジェクトを回避して配線します。

Add To Panel - 選択されたオブジェクトを含む（UserObjectの）パネル・ビューを作成します。

Create UserObject - 現在選択されているオブジェクトからUserObjectを作成します。

Create UserFunction - 現在選択されているオブジェクトからUserFunctionを作成します。

Maximize - UserObjectのオープン・ウィンドウのサイズをVEE作業領域全体に拡大します。前のオープン・ビューのサイズに戻すにはRestoreを使用します。

Cut - UserObjectをプログラムから削除し、貼り付けバッファに配置します。UserObjectとその内容は、別のVEEセッションに貼り付けることができます。Windows 2000/XPの場合、UserObject編集ウィンドウとその内容のイメージがクリップボードに格納され、他のアプリケーションに貼り付けられるようになります。

Copy - UserObjectを貼り付けバッファにコピーします。UserObjectとその内容は、別のVEEセッションに貼り付けることができます。Windows 2000/XPの場合、UserObject編集ウィンドウとその内容のイメージがクリップボードに格納され、他のアプリケーションに貼り付けられるようになります。

Make UserFunction - UserObjectをUserFunctionに変換します。UserObjectは作業領域から消え、新しいUserFunctionへの呼び出しを含むCall Functionオブジェクトに置き換えられます。この操作を実行する前に、タイトル・フィールドに固有の名前を入力しておいてください。この名前がUserFunction名になります。この名前を使って、Call Functionや一部の式からUserFunctionを呼び出すことができます。名前が元の"UserObject"のままか一意でない場合、関数名のプロンプトが表示されます。

Unpack - UserObjectを削除しますが、その中のオブジェクトはそのまま残します。

Save Secured Version - UserObjectの変更できないバージョンを保存します。保護されたバージョンの名前を入力するためのプロンプトが表示されます。保護されたバージョンは拡張子.veeを付けて保存されます。

Locate - プログラム・エクスプローラでUserObjectの位置を強調表示します。

Calls - このUserObjectから呼び出されるUserFunctionのリストを含むFind Resultsダイアログ・ボックスを開きます。

Create Panel - UserObjectのパネル・ビューを、オブジェクトが追加されていない状態で作成します。

Delete Panel - UserObjectのパネル・ビューとその上のすべてのオブジェクトを削除します。パネルから削除されたオブジェクトは、詳細ビューからは削除されません。

Close - UserObject編集ウィンドウを非表示にします。UserObjectはアイコンとしてプログラムに残ります。プログラムを実行する前にUserObject編集ウィンドウをCloseで閉じる必要はありません。

プロパティ

TrigModeグループ:

Degrees | Radians | Gradians - このUserObjectで使用されるデフォルトの三角関数単位を指定します。

PopUpPanelTitle:- 実行ウィンドウでパネルに表示されるタイトル。

ShowPanelOnExecute - このチェック・ボックスが選択されている場合、UserObjectに対応するパネル・ビューが、UserObjectの動作時に表示されます。これが使用できるのは、UserObjectのパネル・ビューが（Create Panelを使って）作成されている場合だけです。デフォルトはFalseです。

 PopupMoveable - このプロパティがTrueの場合、ユーザはポップアップ・パネルを移動できます。デフォルトはTrueです。

 ShowPopupPanelTitle - このプロパティがTrueの場合、ポップアップ・パネルのタイトル・バーが表示されます。デフォルトはTrueです。

 ShowPopupPanelBorder - このプロパティがTrueの場合、ポップアップ・パネルの周りの境界が表示されます。デフォルトはTrueです。

注記

現在選択されているオブジェクトからUserObjectを作成するには、Create UserObjectを使用します。

共通に使用される機能を持つUserObjectを（Save Objects...を使って）保存することにより、再使用可能な機能のライブラリを作成しておくと便利です。

UserFunctionのライブラリを作成するには、複数のUserObjectを作成し、それらをUserFunctionに変換し、すべてファイルに保存します。このライブラリは、Import Libraryを使ってプログラムにインポートでき、Delete Libraryを使って削除できます。

表示されている（ShowPanelonExecuteによって）パネルの名前を知るには、パネル上でマウスの右ボタンをクリックすると、パネル名がポップアップします。

UserObjectのパネル・ビューは、メイン・パネル・ビューまたは、上位のコンテキストであるUserObjectのパネル・ビューに追加できます。すなわち、パネルはネストできます。パネルを親パネルに追加した場合、ソース・パネルの正確な複製が作成されます。ソース・パネルを変更した場合、すべての複製パネルも更新されます。

UserObjectに説明がある場合、特別なアイコン [image] が表示されます。.右上隅の赤い部分に注目してください。

UserObjectパネルを親パネル（メイン・パネルなど）に追加するには:

1. UserObjectとそのパネルを作成した後、UserObjectのアイコン・ビューをクリックして、オブジェクト・メニューを表示します。

2. [Restore]をクリックして、オープン・ビューにします。これはパネル・ビューと似ています。これを削除すると、UserObjectが親プログラムから削除されてしまうので注意してください。

3. UserObjectを選択して強調表示します。

4. ツールバーの[Add To Panel]ボタン（[Edit] [image] [Add To Panel]）をクリックします。UserObjectが親パネルに表示されます。

場所

Device [image] UserObject

関連項目

Add To Panel、Call、Create UserObject、Delete Library、Direct I/O、Edit UserFunction、Formula、If/Then/Else、Import Library、Create RunTime Version、Sequencer、UserFunction

プログラム中のオブジェクトからUserObjectを作成するには

プログラムにUserObjectを作成するには


UTCNow

システムの世界時（グリニッジ平均時）を取得します。

場所

System [image] DateTime [image] UTCNow


Variable

メニュー項目。

使用法

variableは、変数の値を設定／取得する次のオブジェクトにアクセスするために使用します。

Set Variable

Get Variable

Delete Variable

Declare Variable

注記

プログラムのあるコンテキストで定義された変数は、そのプログラムの他のすべてのコンテキストで使用できます。例えば、プログラムのルート・コンテキストでSet Variableオブジェクトを使って変数を定義し、UserObjectにGet Variableを含めることによりその変数を使用できます。プログラム全体を通じて名前の衝突を避ける必要があります。

複数のSet Variableオブジェクトが同じ変数（同じ名前を持つもの）を設定しようとした場合、Set Variableの実行のたびに現在の値は上書きされます。名前が重複していることに気づかなかった場合、これによって予期しない結果が生じるおそれがあります。

変数と同じ名前のデータ端子変数が存在する場合、データ端子変数が優先されます。

場所

Data [image] Variable

関連項目

Default Preferences、Declare Variable、Delete Variable、Get Variable、Set Variable、WatchWindow、

変数を作成するには、 変数を削除するには、変数を使用するには


Variant

使用法

Variantデータ型は特定のデータ型ではありません。これは式の中で用いられ、それが表す値が他のいくつかのデータ型のどれかであることを示します。これはその時点で保持されているデータ型です。任意のデータ型はVariantに昇格または降格でき、Variantはそれが保持しているデータとそのデータが従う規則に応じて昇格または降格できます。

このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、Variant内部のデータ型ではなく、VT_VARIANTに変換されます。Variant型が必要なのは、ActiveXオートメーション・メソッドがVT_VARIANTまたはByRef VT_VARIANT型のパラメータを必要とする場合だけです。

例

関数sin(var)で、Variantデータ型のデータ(var)は、代入された値に応じて、整数、実数、波形のいずれにもなります。

式a=sin(var)で、aは(var)が持つデータ型を受け取ります。

場所

Variantデータ型を作成する唯一の方法は次のとおりです。

Data [image] Variable [image] Declare Variable
Variantを選択、または

asVariant()を使用

関連項目

asVariant()、Declare Variable


Vertical Paddle

Toggle Controlを参照してください。


Vertical Rocker

Toggle Controlを参照してください。


Vertical Slide

Toggle Controlを参照してください。


View Detail

表示されているビューを、パネル・ビューから詳細ビューに切り替えます。

使用法

[View Detail]を押すと、プログラム、UserObject、UserFunctionの詳細ビューが表示されます。

注記

UserObjectおよびUserFuntionでは、[View Detail]はパネル・ビューを作成した後で表示されます。

パネル・ビューを保護すると、[View Detail]ボタンは表示されなくなります。

場所

VEEメイン・ウィンドウ、UserObject、UserFunctionのタイトル・バー（関連するパネルが作成されている場合）

関連項目

Add To Panel、View Panel、Create RunTime Version

パネルにオブジェクトを追加するには

パネルからオブジェクトを削除するには


View Panel

表示されているビューを、詳細ビューからパネル・ビューに切り替えます。

使用法

View Panelを押すと、メインVEEウィンドウ、UserObject、UserFunctionでプログラムのインタフェースとして作成されたパネル・ビューが表示されます。

注記

UserObjectまたはUserFuntionでは、[View Panel]はパネル・ビューを作成した場合のみ表示されます。

パネル・ビューを保護すると、[View Panel]ボタンは表示されなくなります。

場所

VEEメイン・ウィンドウ、UserObject、UserFunctionのタイトル・バー（関連するパネルが作成されている場合）

関連項目

Add To Panel、View Detail、Create RunTime Version

パネルにオブジェクトを追加するには

パネルからオブジェクトを削除するには


View Properties

[View]メニューの項目で、[Properties]ウィンドウを開きます。

使用法

[Properties]ウィンドウの目的は、現在選択されているオブジェクトのプロパティをプログラマに示すことです。これらのプロパティは少数の例外を除いて変更可能です。

場所

View [image] Properties

関連項目

Properties（オブジェクト）


Virtual Source

メニュー項目。

使用法

Virtual Sourceは、次の仮想信号発生器にアクセスするために使用します。

Function Generator

Pulse Generator

Noise Generator

注記

Virtual SourceオブジェクトはWaveformを出力します。

場所

Device [image] Virtual Source

関連項目

Build Arb Waveform、Function Generator、Instrument Manager、Noise Generator、Pulse Generator


WatchWindow

[Watch]ウィンドウ

[View]メニューの項目で、[Globals]、[Locals]、[Terminals]、[Variables]の4つのサブコマンドを持ちます。各サブコマンドは、対応する[Watch]ウィンドウを表示します。例えば、[View] => [Watch Window] => [Globals]を選択すると[Globals]ウィンドウが表示されます。

使用法

[Watch]ウィンドウでは次のことができます。

  • プログラムのデバッグ中に変数や端子を観察できます。

  • 編集して継続できます。プログラムのデバッグ中に変数や端子を変更できます。変更された値を使ってプログラムの実行を継続できます。

  • 詳細ビューでオブジェクトを見つけます。現在の変数または端子がどのオブジェクトに属するかを見つけるのに便利です。

  • [Watch]ウィンドウの項目をコピー／貼り付けバッファにコピーできます。

ウィンドウ情報

[Watch]ウィンドウには、[Locals]、[Globals]、[Watch Terminals]、[Watch Variables]の4つのツール・ウィンドウがあります。各ウィンドウには3つのフィールドがあります。

  • Nameフィールドは、変数または端子の名前または識別情報を示します。

  • Valueフィールドは、変数または端子の値の表示または編集を可能にします。この機能は、スカラおよび多次元配列に対して動作します。

  • Typeフィールドは、変数または端子のデータ型と種類を示します。

[Locals]ウィンドウ:

[Locals]ウィンドウには、アクティブなコンテキストに属するコンテキストにローカルな変数が自動的に表示されます。

[Locals]ウィンドウの内容は、アクティブなコンテキストが変わると変化します。アクティブなコンテキストから削除された変数は、[Locals]ウィンドウから自動的に消えます 。

[Globals]ウィンドウ:

[Globals]ウィンドウには、宣言されたすべてのグローバル変数と、ライブラリにローカルな宣言された変数が自動的に表示されます。

宣言されない変数（Set Variableオブジェクトで作成されたもの）や、インポートされたライブラリ中の変数は、プログラムに追加された直後は[Globals]ウィンドウに表示されません。宣言されない変数が表示されるのは、プログラム実行がSet Variableオブジェクトを通過した後です。インポートされたライブラリ中のグローバル変数が表示されるのは、プログラムの実行によってライブラリがインポートされるか、Import Libraryオブジェクトのコンテキスト・メニューから手動でロードされた後です。

[Watch Terminals]ウィンドウ:

[Watch Terminals]ウィンドウには、端子を選択して追加できます。[Watch Terminals]ウィンドウに端子を追加するには次の3つの方法があります。

1. 入力／出力端子をダブルクリックして、下図の[Input / Output Terminal Information]ダイアログ・ボックスを開きます。

[Watch]ボタンをクリックします。端子がすでに[Watch Terminals]ウィンドウにある場合、再度[Watch Terminals]ウィンドウに追加されることはありません。

2. 出力ラインを右クリックして、下図の[Edit Line]ダイアログ・ボックスを開きます。

[Watch Data]を選択します。出力端子がすでに[Watch Terminals]ウィンドウにある場合、再度[Watch Terminals]ウィンドウに追加されることはありません。

3. 出力ラインをダブルクリックして、下図の[Line Value]ダイアログ・ボックスを開きます。

[Watch]ボタンをクリックします。出力端子がすでに[Watch Terminals]ウィンドウにある場合、再度[Watch Terminals]ウィンドウに追加されることはありません。

[Watch Terminal]ウィンドウのステータス・バーには、選択された端子に関する情報、例えば端子のコンテキスト、デバイス名、端子名などが表示されます。

[Watch Terminals]ウィンドウの[Name]のフォーマットは次のとおりです。

{ オブジェクト・タイトル - オブジェクトID }.出力端子名

例えば、下の図では、[Watch Window]ダイアログ・ボックスの1つの項目として{bigNum-M..21}.Int16があります。"bigNum"はオブジェクトのタイトル、"M..21"はオブジェクトIDで、プロパティ・ウィンドウの内容と一致しています。"Int16"は出力端子の名前です。

[Watch Variables]ウィンドウ:

[Watch Variables]ウィンドウには、変数を選択して追加できます。[Watch Variables]ウィンドウに端子を追加するには次の4つの方法があります。

    1. [Watch Variables]ウィンドウの名前フィールドをダブルクリックして名前を入力します。

    2. 対象の変数を[Locals]ウィンドウまたは[Globals]ウィンドウで右クリックし、[Add Watch]を選択します。

    3. VEEプログラム中のDeclare Variableオブジェクト、Set Variableオブジェクト、Get Variableオブジェクトを右クリックし、[Add Watch]を選択します。

    4. VEE Program Explorerで変数を右クリックし、[Add Watch]を選択します。

コンテキスト・メニュー

[Locals]ウィンドウまたは[Globals]ウィンドウを右クリックすると、次のコンテキスト・メニューが開きます。

[Watch Variable]ウィンドウまたは[Watch Terminals]ウィンドウを右クリックすると、次のコンテキスト・メニューが開きます。

  • Copy -- 選択された項目（[Name]、[Value]、[Type]の各フィールドを含む）を「コピー／貼り付け」バッファにコピーします。

  • Copy Nested -- 配列を「コピー／貼り付け」バッファにコピーします。Copy Nestedは、選択された配列とそのすべての項目を、配列が[Watch]ウィンドウで展開されていなくてもコピーします。

  • Locate -- 対応する変数または端子をアクティブ・コンテキストですばやく見つけます。[Locate]は、特に詳細ビューが大きい場合に非常に便利です。

  • Reference -- このコマンドを選択すると、VEEはこの変数の名前を使って検索を実行します。検索結果は[Find Results]ウィンドウに表示されます。

  • Select All -- 現在のウィンドウのすべての項目を選択します。

  • Delete -- 選択された変数を[Watch Variables]ウィンドウまたは[Watch Terminals]ウィンドウから削除します。

  • Delete All -- [Watch Variables]ウィンドウのすべての変数、または[Watch Terminals]ウィンドウのすべての端子を削除します。

  • Add Watch -- [Watch Variables]ウィンドウに変数を追加します。

注記

  • [Watch]ウィンドウではすべての項目がアルファベット順に並べられます。

  • [Watch Terminals]ウィンドウと[Watch Variables]ウィンドウのすべての項目は、[Watch]ウィンドウが閉じられるかVEEプログラムが閉じられたときに保存されます。保存された項目は、[Watch]ウィンドウが次に開かれたときに復元されます。VEEはこれらの項目の名前フィールドと型フィールドだけを保存します。値は保存されません。

値の更新と編集

[Watch]ウィンドウの変数と端子の値は、プログラムが休止（ブレークポイントに達するなど）したときまたは停止したときにだけ更新されます。

[Watch]ウィンドウの変数と端子の値を編集するには、プログラムが休止または停止しているときに、目的の項目の値フィールドをダブルクリックします。変数と端子の名前と型は変更できません。

[Watch]ウィンドウで、編集できない項目は淡色表示になります。

[Watch]ウィンドウでサポートされるデータ型

[Watch]ウィンドウでサポートされるデータ型を次の表に示します。

データ型 | 表示 | 編集
Boolean | 可 | 可
UInt8 | 可 | 可
UInt16 | 可 | 可
Int16 | 可 | 可
Int32 | 可 | 可
Int64 | 可 | 可
Real32 | 可 | 可
Real64 | 可 | 可
PComplex | 可 | 可
Complex | 可 | 可
Waveform | 可 | 可
Spectrum | 可 | 可
Coord | 可 | 可
Text | 可 | 可
Enum | 可 | 不可
Record | 可 | 可
.NET | 可 | 可（部分的にサポート）
COM | 最小 | 不可
Variant | 最小 | 不可
Boolean、UInt8、UInt16、Int16、Int32、Int64、Real32、Real64、PComplex、Complex、Coord、Textの配列 | 可 | 可

ショートカット

ツールバーの [image] ボタンを押します。

場所

View [image] Watch Window


Waveform (Time)

タイム・ドメイン情報（波形）を2次元のグラフィカル表示に表示するオブジェクト。

使用法

Waveform (Time)は、WaveformまたはSpectrumをタイム・ドメインで表示するために使用します。スペクトラムは逆高速フーリエ変換（ifft）を使って自動的に波形に変換されます。X軸は入力波形のサンプリング単位（通常は秒）です。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Mag - Y軸の名前。

Trace1 - 最初のトレースの名前。

Time - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、[Scales]プロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷されます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EnableEditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EnableEditTracesAnd Scaleは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

EditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。Show Traces LegendとShow Scales Legendは、トレース名およびスケール名の表示を制御するために使用します。

GridTypeカテゴリ:

None - グリッド・ラインは表示されません。

Tic Marks - グラフの4辺全部のメジャー・グリッドとマイナー・グリッドに目盛を表示します。

Axis - グラフのX軸とY軸のメジャー・グリッドとマイナー・グリッドに目盛を表示します。実際の軸がグラフ領域の外にスクロールされている場合、軸の線は軸に最も近い辺に表示されます。

Lines - メジャー・グリッドに線、マイナー・グリッドに目盛を表示します。X軸とY軸は太線で表示されます。

NumMarkersカテゴリ:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

Off - マーカは表示されません。これはデフォルトの選択です。

One - 1つのマーカが使用できます。

Two - 2つのマーカが使用できます。

Delta - 2つのマーカが使用でき、それらの間のXとYの差が表示されます。

 MarkerInterpolate - このチェック・ボックスが選択されている場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

デフォルトのマーカ色は黄色（yellow）です。

DisplayBackColor - 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。デフォルトのBackground色は、[Default Preferences]の[Colors]タブの[Screen Element: Graph Background]で設定されます。

 Font - スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Tracesカテゴリ:

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトはyellow（黄色）です。

LineStyle:- データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle:- 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scalesカテゴリ:

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはOnです。これをOffにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- xデータとyデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles:- Automatic Scalingがオンのときに表示されるデケードの最大数（xとyの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

ScaleNumberFormat:（X/Yスケール、および追加のYスケールに対して存在するグループ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Sat 01/Jan/1994 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

入力はScalarまたはArray 1Dでなければなりません。

Coord型の入力データは、Waveform型に変換されず、単にxとyの値を使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

AutomaticScalingプロパティがTrue（Scalesカテゴリ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷またはプロットしたときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesウィンドウを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] Waveform (Time)

関連項目

Complex Plane、Magnitude Spectrum、Polar Plot、Strip Chart、X vs Y Plot、XY Trace、Default Preferences

波形を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには


IVIとは

IVI（Interchangeable Virtual Instrument）は、IVI Foundationが提唱している新しい標準です。詳細については、http://www.ivifoundation.orgを参照してください。IVI Foundationの目標は、高品質と高性能を実現しながら計測器間の互換性を実現するドライバ標準を作成することです。互換性がある場合、例えばFlukeの任意波形発生器（ARB）を対象に作成したプログラムで、AgilentのARBおよびドライバが使用できます。ARBドライバに関するIVI標準で、異なるメーカのARBが正確に同じ関数呼び出しのセットをサポートするように定められているため、プログラムはそのまま動作します。もちろん、互換性にはいくつかの制限があります。

IVI-CとIVI-COM

IVI Foundationが現時点で規定しているドライバには2種類あります。IVI-Cドライバは、VXIplug&playドライバ仕様を拡張したもので、使用法は似ています。IVI-COMドライバはActiveXコントロールに似ています。したがって、これら2種類のドライバの機能は似ていますが、使用モデルは大幅に異なります。

関連項目

.NETおよびIVIドライバ


WhichOS()

Agilent VEE Proが現在動作しているオペレーティング・システムを出力するオブジェクト。

使用法

whichOS()は、Agilent VEE Proが現在動作しているオペレーティング・システムを求めるために使用します。次のいずれかの文字列を返します。

Windows_2000

Windows_XP

Windows Vista

例

PC上のWindows XPで動作しているAgilent VEE Proの場合: whichOS()はWindows_XPを返します。

注記

whichOS()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、whichOS()式を持ちます。whichOS()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device > Function & Object Browser

Type:Built-in Functions Category:System Information Member:whichOS

関連項目

Formula、whichVersion()


whichVersion()

現在動作しているVEEのバージョンを出力するオブジェクト。

使用法

whichVersion()は、動作しているVEEのバージョンを求めるために使用します。これは、Help [image] Aboutダイアログ・ボックスに表示されるのと同じ文字列です。

例

VEEバージョン3.2の場合、whichVersion()はテキスト文字列3.2を返します。

注記

whichVersion()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、whichVersion()式を持ちます。whichVersion()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: whichVersion

関連項目

Formula、whichOS()


Write to Event Log

VEEのエラー情報をアプリケーション・イベント・ログに書き込みます。

場所

System [image] Write to Event Log


X vs Y Plot

直交座標プロットを表示するオブジェクト。

使用法

X vs Y Plotは、XおよびYデータに関して個別のデータ情報を利用できるときに、値をグラフィック表示します。複数のトレースを印刷する場合、X vs Y plotオブジェクトを1回実行するたびに、各トレースのY入力データに対して1つのX入力データが使用されます。すなわち、すべてのトレースで共通のX入力データが用いられます。異なるXデータ値を使用したい場合は、各トレースに対して座標データまたはマッピングされた配列を作成し、X-Y Traceオブジェクトを使用します。

入力はすべて同じサイズと種類でなければなりません。入力データのマッピング情報は無視されます。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Y name - Y軸の名前。

YData1 - 最初のトレースの名前。

X name - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、[Scales]プロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。 Next Curveコントロール・ピンは、マトリクス入力グラフでは使用できません。マトリクス入力グラフを参照してください。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷されます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

MatrixInput - このプロパティがTrueの場合、X vs Y Plotは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。MatrixInputプロパティがTrueに設定されているX vs Y Plotオブジェクトは、マトリクス入力グラフと呼ばれます。

このMatrixInputプロパティをTrueに設定できるのは、Next Curveコントロール・ピンがなく、X vs Y Plotにただ1つの入力データ・ピンがある場合だけです。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

MatrixInputプロパティはパネル・ビューでは使用できず、実行時にプログラムで切り替えることはできません。

ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EnableEditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EnableEditTracesAndScaleは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 ShowAutoScaleButton - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EnableEditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。Show Traces LegendとShow Scales Legendは、トレース名およびスケール名の表示を制御するために使用します。

GridTypeカテゴリ:

None - グリッド・ラインは表示されません。

Tic Marks - グラフの4辺全部のメジャー・グリッドとマイナー・グリッドに目盛を表示します。

Axis - グラフのX軸とY軸のメジャー・グリッドとマイナー・グリッドに目盛を表示します。実際の軸がグラフ領域の外にスクロールされている場合、軸の線は軸に最も近い辺に表示されます。

Lines - メジャー・グリッドに線、マイナー・グリッドに目盛を表示します。X軸とY軸は太線で表示されます。

Markersグループ:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

NumMarkers:

Off - マーカは表示されません。これはデフォルトの選択です。

One - 1つのマーカが使用できます。

Two - 2つのマーカが使用できます。

Delta - 2つのマーカが使用でき、それらの間のXとYの差が表示されます。

 MarkersInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

DisplayBackColor - 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。デフォルトのBackground色は、[Default Preferences]の[Colors]タブの[Screen Element: Graph Background]で設定されます。

Scale Label Text- スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Tracesグループ:（各トレースに1つずつ）

Name:- グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color:- トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトの色はyellow（黄色）です。

LineStyle:- データ・ポイントを接続する線のフォーマット。デフォルトはcontinuous line（連続線）です。

PointStyle:- 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、LineStyleフォーマットで単一ドットを選択し、必要なPointStyle記号を選択します。デフォルトはdot（ドット）です。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ:（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale:- 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name:- オープン・ビューに表示されるスケールの名前。

Automatic Scaling:- 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはonです。これをoffにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum:- スケールの最大値。

Minimum:- スケールの最小値。

Label Spacing:- どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping:- xデータとyデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles:- Automatic Scalingがオンのときに表示されるデケードの最大数（xとyの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

ScaleNumberFormatプロパティ:（X/Yスケール、および追加のYスケールに対して存在するグループ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

MatrixInputプロパティがFalseの場合、入力はScalarまたはArray 1Dでなければなりません。

MatrixInputプロパティがTrueの場合、X vsY Plotは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

AutomaticScalingプロパティがTrue（Scalesカテゴリ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、そのPropertiesダイアログ・ボックスを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] X vs Y Plot

関連項目

Complex Plane、Magnitude Spectrum、Polar Plot、Strip Chart、Waveform (Time)、XY Trace、Default Preferences、オブジェクト・メニュー

XY値を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには


XY Trace

2次元直交座標プロットを表示するオブジェクト。

使用法

XY Traceは、yデータが等間隔のx値を使って生成された場合に、マッピングされた配列または値の集合をグラフィック表示します。XY Traceは、xデータ値のスケール調整が不要な場合（あるいはスケールを変更していない場合）にデータを簡単に確認する際に便利です。

自動的に生成されるx値は、トレース・データのデータ型により異なります。例えば、トレースが実数値の場合、x値は0、1、2などです。トレースがWaveformの場合、x値は時間値です。

オープン・ビュー・パラメータ

以下に示すのはデフォルトのオープン・ビュー・パラメータです。これらの使用法と、その他のパラメータの使用可能性は、オブジェクト・メニューと[Properties]ダイアログ・ボックス（オブジェクト・メニュー [image] [Properties]）での選択によって決まります。

Y name - Y軸の名前。

Trace1 - 最初のトレースの名前。

X name - X軸の名前。

オブジェクト・メニュー

Auto Scale [image] - これらのメニュー項目をクリックすると、トレース全体が表示されるように表示のスケールがただちに変更されます（コントロール・ピンとして追加することも、[Scales]プロパティ・タブを使用して、データが収集されたあとで表示スケールを自動的に変更するように設定することもできます）。

Auto Scale - 両方の軸のスケールを自動設定します。

Auto Scale X - X軸のスケールを自動設定します。

Auto Scale Y - Y軸のスケールを自動設定します。

Zoom [image] - 表示のスケールを設定します。

In - ポインタを使って選択した長方形の領域だけを含むように表示を拡大します。領域を選択するには、この機能を選択した後で、グラフ領域上でドラッグします。これにより、「ゴムひも」ボックスによって情報の輪郭が描かれます。

Out 2|5|10|20|50|100X - 中心からXとYの両方向に特定の倍率で表示のスケールを拡大します。

Clear Control [image] - 表示をクリアするタイミングを指定するパラメータ。

Display - 表示されたトレースをクリアします。このパラメータはコントロール入力として追加できます。

Next Curve - 曲線のファミリ中の次の曲線（次に表示が動作したときのデータ）を表示するために表示をリセットします。前の曲線はクリアされません。Next Curveはファミリ中の新しい曲線の開始ごとに選択（またはアクティブ化）する必要があります。このパラメータはコントロール入力として追加できます。Next Curveコントロール・ピンは、マトリクス入力グラフでは使用できません。マトリクス入力グラフを参照してください。

Center Markers - マーカが使用可能な場合、トレースの表示されている部分の中央にマーカを配置します。これは、表示をスクロールしたためにマーカが見えなくなった場合に便利です。

Add Right Scale - トレースごとに異なるスケール範囲を使用するために、最大2つのY軸スケールを追加します。右スケールを追加した後、その入力のための端子を追加できます（オブジェクト・メニュー [image] [Add Terminal] [image] [Data Input]）。その後、[Properties]ダイアログ・ボックスの[Traces]および[Scales]タブを使ってプロパティを設定します。

Print - [Print]ダイアログ・ボックスを表示します。[OK]を押すと、デバイスの表示全体のコピーが選択された出力デバイスに印刷されます。Printはコントロール入力として追加できます。

プロパティ

Declared Name - 表示に変数名を割り当てます。名前を入力すると、このオブジェクトの一部のプロパティをプログラムから取得／設定できます。例えば、マーカがオンになっている場合はマーカ値を読み取れます。この変数はObjectデータ型で、表示が存在するコンテキストにローカルです。詳細については注記を参照してください。

ClearAtPreRun - このプロパティがTrueの場合、表示はPreRun時にクリアされます。デフォルトはTrueです。

 ClearAtActivate - このプロパティがTrueの場合、表示はアクティブ化時にクリアされます。デフォルトはTrueです。

MatrixInput - このプロパティがTrueの場合、XY Traceは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。MatrixInputプロパティがTrueに設定されているXY Traceオブジェクトは、マトリクス入力グラフと呼ばれます。

このMatrixInputプロパティをTrueに設定できるのは、Next Curveコントロール・ピンがなく、XY Traceにただ1つの入力データ・ピンがある場合だけです。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

MatrixInputプロパティはパネル・ビューでは使用できず、実行時にプログラムで切り替えることはできません。

ShowTracesLegend - オープン・ビューで、トレースの名前と色の表示を制御します。EnableEditTracesAndScalesは、トレース凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScalesLegend - オープン・ビューで、スケール名の表示を制御します。EnableEditTracesAndScalesは、スケール凡例の編集ボタン機能を制御するために使用します。デフォルトはTrueです。

 ShowScaleLabels - オープン・ビューで、スケール軸のラベル値の表示を制御します。デフォルトはTrueです。

 ShowScrollBars - オープン・ビューで、XおよびYスケールのスクロール・バーの表示を制御します。デフォルトはTrueです。

 Show Auto Scale Button - オープン・ビューで、[Auto Scale]ボタンの表示を制御します。デフォルトはFalseです。

 EnableEditTracesAndScales - オープン・ビューで、トレースおよびスケールのプロパティの編集ボタン機能を制御します。オンにすると、個々のトレースまたはスケールの名前をクリックしてそのプロパティを編集できます。デフォルトはTrueです。Show Traces LegendとShow Scales Legendは、トレース名およびスケール名の表示を制御するために使用します。

GridTypeカテゴリ:

None - グリッド・ラインは表示されません。

Tic Marks - グラフの4辺全部のメジャー・グリッドとマイナー・グリッドに目盛を表示します。

Axis - グラフのX軸とY軸のメジャー・グリッドとマイナー・グリッドに目盛を表示します。実際の軸がグラフ領域の外にスクロールされている場合、軸の線は軸に最も近い辺に表示されます。

Lines - メジャー・グリッドに線、マイナー・グリッドに目盛を表示します。X軸とY軸は太線で表示されます。

Markersグループ:- 表示された曲線のデータ・ポイントの正確な値を知ることができます。データが対数スケールにプロットされている場合、マーカに表示される値はリニア・データ・ポイントです。

マーカを別のトレースに移動するには、オープン・ビューで表示下部のマーカ値の左にあるボタンをクリックします。このボタンを押すと、各トレースの異なる線の種類と色が順番に表示されます。

Markersグループ:

Off - マーカは表示されません。これはデフォルトの選択です。

One - 1つのマーカが使用できます。

Two - 2つのマーカが使用できます。

Delta - 2つのマーカが使用でき、それらの間のXとYの差が表示されます。

 MarkerInterpolate - このプロパティがTrueの場合、表示されているデータ・ポイントの間にマーカを配置できます。表示されるマーカ値はリニア補間によって計算されます。デフォルトはFalseです。

 MarkerColor - 表示上のマーカの色を変更できます。

BackColor- 表示領域の色をパレットから選択できます。表示が詳細ビューにあるときとパネル・ビューにあるときとでは別の色を選択できます。デフォルトのBackground色は、[Default Preferences]の[Colors]タブの[Screen Element: Graph Background]で設定されます。

Scale Labelグループ:

Text - スケール・ラベルのフォントを、システムで使用可能なフォントのリストから選択できます。スケール・ラベル・テキストのデフォルトのフォントは、[Default Preferences]の[Fonts]タブの[Screen Element: Graph Scale Label Text]で設定されます。

Tracesグループ:各トレースに1つずつ。

Name - グラフ領域の左側に表示されるトレースの名前と、対応する入力端子の名前。

Color - トレースの色。追加されたトレースは、それぞれ既存のトレースとは異なる色になります。最初のトレースのデフォルトは黄色です。

Line Type - データ・ポイントを接続する線のフォーマット。デフォルトは連続線です。

Point Type - 各データ・ポイントを示す記号。データ・ポイントを接続せずに表示するには、Line Typeフォーマットで単一ドットを選択し、必要なPoint Type記号を選択します。デフォルトはドットです。

Scale - 複数のYスケールが存在する場合、このトレースがどのスケールに従うかを選択します。

Scalesプロパティ（各X/Yスケールおよび追加のYスケールに対して1つずつ）

Show Scale - 複数のYスケールが存在する場合、追加の右スケールの端点と軸をグラフ領域の右側に表示するかどうかを（チェック・ボックスで）選択します。

Scale Name - オープン・ビューに表示されるスケール名。

Automatic Scaling - 表示がデータを受け取った直後にトレース全体が表示されるようにスケールを変更するかどうかを制御します。デフォルトはオンです。これをオフにした場合、[General]タブの[Layout]グループの[Auto Scale]ボタンか、オブジェクト・メニューの[Auto Scale]コマンドを使って表示のスケールを変更できます。

Maximum - スケールの最大値。

Minimum - スケールの最小値。

Label Spacing - どの目盛にスケール値のラベルを付けるかを制御します。XスケールのデフォルトはEvery Other Tic、YスケールのデフォルトはEvery Major Ticです。

Mapping - x/yデータを表示にマッピングする方法。マッピングにはリニアと対数があります。対数／対数プロットを作成するには、X軸とY軸の両方をLogに変更します。デフォルトはLinearです。

Log Cycles - Automatic Scalingをオンにしたときに表示される最大デケード数（x/yの最大値から数えて）。Log CyclesはMappingがLogの場合のみ使用されます。Log Cyclesは、ダイナミック・レンジの大きいデータがトレースに含まれる場合に便利です。デフォルトは4です。

Scale Color - 背景グリッドまたは目盛りの色。デフォルトはGrayです。

ScaleNumberFormatプロパティ:（X/Yスケール、および追加のYスケールに対して存在するグループ）

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Real:- Global Formatがオフの場合、このオブジェクトに表示する実数の数値フォーマットを指定します。選択肢としては、Fixed（例: 98.6000）、Scientific（例: 9.8600E+01）、Engineering（例: 98.6000E0）、Standard（例: 98.6）、Time Stamp（例: Wed 01/Jan/2003 17:01:38）があります。デフォルトはStandardです。

XとYのマーカ値は、対応するスケールと同じ数値フォーマットで表示されます。XとYのデルタ・マーカ値は、Time Stampフォーマットを使用している場合を除いて、デフォルトの数値フォーマットを使用します。Xスケールのマーカ1と2の両方、またはYスケールの両方のマーカがTime Stampフォーマットを使用している場合、デルタ・マーカの値はDelta Timeフォーマットを使用します。

注記

MatrixInputプロパティがFalseの場合、入力は、Real64型に変換できるScalarまたはArray 1Dでなければなりません。Complex、PComplex、Spectrumデータは、XY Traceに入力する前に「解体」する必要があります。

MatrixInputプロパティがTrueの場合、XY Traceは2D Array（最大255列）を入力データとして受け入れ、複数のトレースを同時に表示します。

Coord型の入力データは、Real64型に変換されず、単にxとyの値を使ってプロットされます。

トレースを追加するには、オブジェクト・メニューで[Add Terminal] [image] [Data Input]を選択します。最大255のトレースが使用できます。

AutomaticScalingプロパティがTrue（Scalesカテゴリ）の場合、データ・セット全体を表示に送った方がプログラムの実行が速くなります。この場合、表示のスケールは1回だけ自動的に変更されます。データ・ポイントを1個ずつ表示に送った場合、データ・ポイントが送られるたびに表示スケールが自動的に変更され、プログラムの実行速度が低下する可能性があります。このような場合、Collectorオブジェクトを使って配列を作成し、それを表示に送る方法があります。

コントロール入力の追加

Titleコントロール入力ピンを追加できます。これはタイトル・バーの名前を指定されたテキスト値に設定します。これにより、表示を印刷したときのタイトルの内容をプログラムで制御できます。

Tracesコントロール入力ピンを追加できます。コントロール入力データは、レコードの配列（または、1つのトレースだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

TraceNumという名前で整数の値を持つフィールド（1が最初のトレース）。TraceNumフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name

Pen

LineType

PointType

Nameフィールドはテキスト値を持つ必要があります。Pen、LineType、PointTypeの値は、0からnまでの整数です。ここで、0は何も表示しないことを表し、nは使用可能な選択肢の数です。

Scalesコントロール入力ピンを追加することにより、上記のスケール・パラメータを制御できます。コントロール入力データは、レコードの配列（または、1つのスケールだけを制御する場合はレコードのスカラ）でなければなりません。Record ConstantまたはBuild Recordオブジェクトを使ってレコードの配列を作成します。各レコードには以下のフィールドが必要です。

Scaleという名前で、値X、Y（またはY1）、Y2、Y3のいずれかを持つテキスト・フィールド。Scaleフィールドは必須です。これを省略した場合、エラーが発生します。

以下のフィールドのうち必要なもの。

Name - オープン・ビューのスケール名を変更します。テキスト値です。

Min - Xスケールの最小値を設定します。整数値または実数値です。

Max - Xスケールの最大値を設定します。整数値または実数値です。

Mapping - テキスト値LinearまたはLogを取ります。

AutoScale - 自動スケーリングを制御します。テキスト値OnまたはOffを取ります。

詳細については、レコードの使用とデータセットの使用を参照してください。

プログラムでのマーカ値の設定と読み取り

その他のプロパティをプログラムで設定したり読み取ったりする方法については、プログラムでプロパティを変更するにはを参照してください。

マーカ値はプログラムで取得したり設定したりできます。表示を準備するには、その[Properties]ダイアログ・ボックスを開きます。Declared Nameの値を入力します。Declared Nameの値は、表示のコンテキストにローカルなオブジェクト変数を暗黙に宣言します。次に、Markersグループの設定をオンにします。VEEは、デルタ値を含むマーカのXおよびY位置に以下のプロパティを割り当てます(Marker1は下、Marker2は上を指します）。

Marker1X（位置をReal64で取得します）

Marker1Y（位置をReal64で取得します）

Marker2X（位置をReal64で取得します）

Marker2Y（位置をReal64で取得します）

MarkerDX（位置をReal64で取得します）

MarkerDY（位置をReal64で取得します）

Marker1（位置をCoordで取得／設定します）

Marker2（位置をCoordで取得／設定します）

Marker1およびMarker2のプロパティを使って、現在のマーカ位置を読み取ったり、マーカを新しい位置に移動したりできます。他のマーカ・プロパティはすべて読み取り専用です。トレース上にない座標にマーカを移動しようとした場合、マーカは最も近いトレース上の点に設定されます。

プログラムでは、Formulaオブジェクトに1つまたは複数の式を入力して、マーカ値の設定または読み取りを行います。それぞれの式は、表示のDeclared Nameと目的のマーカ・プロパティを含む必要があります。マーカ・プロパティの名前は、大文字と小文字が区別されません。表示のDeclared NameがXYで、Delta Markersがオンになっている場合、次の式は、使用可能なすべてのマーカ値を読み取り、変数a～fにReal64スカラで代入します。

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

表示のDeclared Nameはグローバル変数に代入できます。プログラムでFormulaオブジェクトに代入式を追加し、Declare Variableオブジェクトを使ってグローバルを宣言します。例えば、変数globalXYをグローバルとして宣言し、そのTypeをObjectに設定したとします。この場合、表示が存在するコンテキストで、次の式をプログラムに追加します。

Set globalXY = XY

これにより、表示のマーカ値をプログラム中の別のコンテキストから次のような式を使って読み取ることができます。

a = globalXY.Marker1X

プログラムを開発する際に、プログラムを休止して、マーカ位置を手動で変更してから、プログラムにマーカ値を読み取らせたい場合があります。プログラムを休止する方法の1つは、表示のシーケンス出力とFormulaオブジェクトのシーケンス入力との間にConfirm (OK)ボタンを追加することです。もう1つの方法として、マーカをプログラムで配置することもできます。詳細については、プログラムのプロパティを参照してください。

場所

Display [image] XY Trace

関連項目

Complex Plane、Magnitude Spectrum、Polar Plot、Strip Chart、Waveform (Time)、X vs Y Plot、Default Preferences、オブジェクト・メニュー

XY値を表示するには、表示にマーカを設定するには、マーカのプロパティを取得／設定するには


abs(x)

xの絶対値を返すオブジェクト。

使用法

abs(x)は、コンテナ中の数値の絶対値を得るために使用します。xの種類は任意であり、同じ種類が返されます。型がComplex、PComplex、Spectrumの場合、絶対値は複素数の大きさです。すなわち、同じ種類のReal64が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | 同じ種類のReal64
PComplex | 同じ種類のReal64
Spectrum | 同じ種類のReal64

例

abs(-34)は34を返します。

注記

マッピングは結果で保持されます。絶対値が最大の負のInt32ではエラーが発生します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: abs

関連項目

Complex Parts、mag(x)、Real Parts、signof(x)


acos(x)

xのアークコサインを返すオブジェクト。

使用法

acos(x)は、xデータのアークコサインを得るために使用します。結果の範囲は0～PIです。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | UInt16
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、acos(1)は0を返します。

Trig ModeがRadiansに設定されている場合、acos((1.54308, @0))は(0.9999, @1.87079)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acos

関連項目

acosh(x)、cos(x)、sin(x)、tan(x)、Trig、Default Preferences


acosh(x)

xのハイパボリック・アークコサインを返すオブジェクト。

使用法

acosh(x)は、xデータのハイパボリック・アークコサインを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | UInt16
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

acosh(1)は0を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acosh

関連項目

acos(x)、cosh(x)、Trig、sinh(x)、tanh(x)


acot(x)

xのアークコタンジェントを返すオブジェクト。

使用法

acot(x)は、xデータのアークコタンジェントを得るために使用します。これは単にatan(1/x)を返します。acot(0)はPI/2を返します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | UInt16
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

戻り値は現在のTrig Modeの単位です。

例

Trig ModeがDegreesに設定されている場合、acot(1)は45を返します。

Trig ModeがRadiansに設定されている場合、acot((1.31303, @PI/2))は(1.00, @-1.57079)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acot

関連項目

acoth(x)、atan2(y,x)、cos(x)、sin(x)、tan(x)、Trig、Default Preferences


acoth(x)

xのハイパボリック・アークコタンジェントを返すオブジェクト。

使用法

acoth(x)は、xデータのハイパボリック・アークコタンジェントを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | UInt16
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

acoth(1.5)は0.8047を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acoth

関連項目

acot(x)、cosh(x)、coth(x)、Trig、sinh(x)、tanh(x)


a + b（加算）

2つのオペランドの算術加算を実行するオブジェクト。

使用法

a + bは、2つのコンテナの値を加算するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。加算は従属変数（最後の変数）だけに対して実行されます。

Textの加算は連結として実行されます。EnumはTextに変換されて加算されます。この2つの文字列の加算は、concat(x, y)関数とは異なることに注意してください。concat関数の場合、concat("hello","there")は長さ2の1次元配列["hello", "there"]を返します。

例

配列とスカラの加算:[1, 2, 3] + 3は[4, 5, 6]を返します。

2つのComplexスカラ:(2,4) + (1,3)は(3,7)を返します。

2つの配列:[1, 2, 3] + [4, 5, 6]は[5, 7, 9]を返します。

2つのCoordスカラ:coord(1,3) + coord(1,5)はcoord(1,8)を返します。

2つのCoordスカラ:coord(1,3) + coord(2,5)はエラーを返します。

2つのText:"hello" + "there"は"hellothere"を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: +

関連項目

concat(x,y)、a / b（除算）、a * b（乗算）、a - b（減算）


Ai(x)

xのAiry分数次ベッセル関数を計算するために用いられるオブジェクト。

使用法

Ai(x)は、xの分数次ベッセル関数Airyを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

例

Ai(10)は0.110475325528986を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: Ai

関連項目

Bi(x)、j0(x)、j1(x)、jn(x,n)、y0(x)、y1(x)、yn(x,n)


a ~= b（ほぼ等しい）

2つのオペランドに対してほぼ等しい演算を実行するオブジェクト。

使用法

a ~= bは、1つのコンテナの値が別のコンテナの値と最初の7桁で一致するかどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。整数、Enum、Text型は厳密に比較されます。コンテナの1つが配列（またはレコード）の場合、もう1つはスカラまたはサイズと種類が一致する配列（またはレコード）でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドにほぼ等しい場合、結果の値は1です。そうでない場合は値は0です。

X ~= 0の比較は、この文脈では無意味です。0の精度の桁数は無限大で、大きさの次数を持たないからです。このため、0との比較では常に厳密な一致が要求されます。すなわち、値Xを0と比較した場合、Xが0に厳密に一致する場合以外は、常に0（偽）が返されます。

「ほぼ等しい」が行う比較は、Device [image] Comparatorとは異なります。Comparatorは0を含む波形または配列を比較する際に使用します。Comparatorは、基準データの大きさから「仮想0」の値を導き出すことができます。

両方のオペランドの型がCoordの場合、すべての従属変数が最初の7桁で一致する場合に限って、結果が1となります。独立変数が一致しない場合、エラーが返されます。Complex、PComplex、Spectrumコンテナの場合、両方の部分がほぼ等しい場合に限って、1が返されます。EnumはTextに変換されて比較されます。

配列の場合、両方のコンテナの対応する値同士がすべてほぼ等しい場合に限って、1が返されます。

例

2つのスカラ:3.1234560 ~= 3.1234559は1を返します。

2つのスカラ:3.1234560 ~= 3.1234459は0を返します。

スカラと配列:3.1234560 ~= [3.1234559, 3.1234562, 3.1234563]は1を返します。

スカラと配列:3.1234560 ~= [3.1234459, 3.1234562, 3.1234569]は0を返します。

2つのComplexスカラ:(2.12345,3.12345) ~= (2.12344,3.12345)は0を返します。

2つのComplexスカラ:(2.1234567,3.12345) ~= (2.1234566,3.12345)は1を返します。

2つのCoordスカラ:coord(1,3.123456) ~= coord(1,3.123446)は0を返します。

2つのCoordスカラ:coord(1,3.123456) ~= coord(2,3.123456)はValues for independent variables must matchを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

「ほぼ等しい」の判定は、ComplexおよびPComplexの数値に対しては微妙に異なります。2つの実数値（aとb）に対する「ほぼ等しい」の判定は次のとおりです。

a - b <= a * 10E-7

これに対して、2つのComplex値（aとb）に対する判定は次のとおりです。

re(a) - re(b) <= mag(a) * 10E-7

ここで、

re(a)はaの実数部

re(b)はbの実数部

mag(a)はaのベクトルの大きさ

直交座標と極座標に対する「ほぼ等しい」の扱いに関するあいまいさを避けるため、ComplexとPComplexの両方の数値に対してこの判定が用いられます。

場所

Device [image] Function & Object Browser

Type: Operators
Category: Comparison
Member: ~=

関連項目

a AND b、a == b（等しい）、a > b（大きい）、a >= b（大きいか等しい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b

Comparator、Conditional、If/Then/Else


a AND b

2つのオペランドに対して論理AND演算を実行するオブジェクト。

使用法

a AND bは、2つのコンテナの値が両方とも論理的に真（非0）かどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はオペランドと同じ種類のInt32で、値は0または1です。両方のオペランドが非0の場合、AND演算の値は1です。そうでない場合は値は0です。

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。従属変数（最後の変数）だけがAND演算の対象となります。

Complex、PComplex、Spectrumのコンテナの場合、どちらかの部分が非0であればオペランドの値は真です。Textはヌルでなければ真です。EnumはTextに変換されて演算されます。

両方のオペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

例

2つのBooleanスカラ:True AND FalseはFalseを返します。

スカラと配列:3 AND [3, 3, 3]は[1, 1, 1]を返します。

スカラと配列:3 AND [-3, 0, 3]は[1, 0, 1]を返します。

2つの配列:[1, 2, 3] AND [0, 1, (-1)]は[0, 1, 1]を返します。

2つの配列:(1,@90) AND (1,@85)は1を返します。

2つのComplexスカラ:(2,3) AND (0,1)は1を返します。

2つのComplexスカラ:(0,1) AND (1,0)は1を返します。

2つのComplexスカラ:(0,0) AND (0,0)は0を返します。

2つのCoordスカラ:coord(1,3) AND coord(1,5)は1を返します。

2つのCoordスカラ:coord(1,3) AND coord(2,3)はエラーを返します。

Textスカラとスカラ数値:"too" AND 2は1を返します。

Textスカラとスカラ数値:"" AND 0は0を返します。1つの文字列はヌルで、もう1つはヌルでない（"0"）からです。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

If/Then/Elseオブジェクトの場合、内部の式がスカラまたは配列（すべて0またはすべて1）に評価される必要があります。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: AND

関連項目

NOT a、a OR b、Comparison、a XOR b

Conditional、If/Then/Else


Arithmetic

Function & Object BrowserのOperatorsのCategory。

bのダイアログボックスのaの部門。

使用法

Arithmetic演算子は、2つのオペランドに対して算術演算を実行する次のオブジェクトにアクセスするために使用します。

a + b

a - b

a * b

a / b

a ^ b

a MOD b

a DIV b

注記

2項演算に2つの異なる型を与えた場合、順位が低い方の型が高い方の型に変換されます。「2項演算子の使用」のヘルプ項目にある型変換情報と型の階層構造を参照してください。

下記の2項演算の例では、配列とスカラの加算で配列の各要素に対して演算が実行されています。結果は、配列オペランドと同じサイズと種類の配列です。例えば、スカラと4要素のリニア配列を5 + [1, 2, 3, 6]のように加算すると、4要素のリニア配列[6, 7, 8, 11]が得られます。指数演算などの演算にも同じことが当てはまります。例えば、2 ^ [3, 4]は[8, 16]を返します。

2つの配列に対する2項演算では、オペランド同士が適合する必要があります。すなわち、同じサイズと種類を持つ必要があります。結果は、オペランドと同じサイズと種類の配列です。演算は各要素に対して要素単位で実行されます。例えば、2つの3要素のリニア配列を加算すると、3要素のリニア配列が返されます。[1, 2, 3] + [4, 5, 6]は[5, 7, 9]を返します。2つの配列が適合しない場合、エラーが返されます。

場所

Device [image] Function & Object Browser [image] Operators [image] Arithmetic

関連項目

a + b（加算）、a / b（除算）、a div b（切捨て除算）、a ^ b（指数）、a mod b（モジュロ）、a * b（乗算）、a - b（減算）


Array

Function & Object BrowserのBuilt-in FunctionsのCategory: 。

使用法

Arrayは、さまざまな配列機能を実行する次のオブジェクトにアクセスするために使用します。

init(x,val)

totSize(x)

rotate(x,numElem)

concat(x,y)

sum(x)

product(x)

sort(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Array

関連項目

concat(x,y)、init(x,val)、product(x)、rotate(x, numElem)、sort(x, direction, field)、sum(x)、totSize(x)


asBoolean(x)

xの値をBoolean値に変換するオブジェクト。xは任意の種類です。

使用法

asBoolean(x)は、xデータをBooleanデータ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。xが0でない場合、asBoolean(x)はTrueを返し、それ以外の場合はFalseを返します。

可能な入力型 戻り値型

Boolean | Boolean
UInt16 | Boolean
UInt8 | Boolean
Int16 | Boolean
Int32 | Boolean
Int64 | Boolean
Real32 | Boolean
Real64 | Boolean
Text* | Boolean

* xがText型の場合、"True"または"False"のいずれかでなければなりません。

例

asBoolean(4.5)はBoolean値Trueを返します。

asBoolean(0)はBoolean値Falseを返します。

asBoolean("True")はBoolean値Trueを返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asBoolean

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asComplex(x)

xの値をComplex値に変換するオブジェクト。

使用法

asComplex(x)は、xデータをComplexデータ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Complex
UInt16 | Complex
Int16 | Complex
Int32 | Complex
Int64 | Complex
Real32 | Complex
Real64 | Complex
PComplex | Complex
Text | Complex

xがText型の場合、Complexに変換できる値を含む必要があります。

例

asComplex(4.5)はComplex値(4.5, 0)を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asComplex

関連項目

asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asCoord(x)

xの値をCoord値に変換するオブジェクト。

使用法

asCoord(x)は、xデータをCoordデータ型に変換するために使用します。xの種類は1次元配列でなければならず、xと同じ種類が返されます。配列がマッピングされている場合、Coord配列はマッピングを使用してxの値を生成します。配列がマッピングされていない場合、xの値は0から始まって1ずつ増えるように作成されます。

可能な入力型 戻り値型

UInt8 | Coord
UInt16 | Coord
Int16 | Coord
Int32 | Coord
Int64 | Coord
Real32 | Coord
Real64 | Coord

例

asCoord([4, 5])はCoord配列[(0,4), (1,5)]を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asCoord

関連項目

asComplex(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asInt16(x)

xの値をInt16値に変換するオブジェクト。コンテナの値を最も近い整数に丸めたい場合は、round(x)が使用できます。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

使用法

asInt16(x)は、xデータをInt16データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Int16
UInt16 | Int16
Int16 | Int16
Int32 | Int16
Int64 | Int16
Real32 | Int16
Real64 | Int16
Text | Int16

xがText型の場合、Int16に変換できる値を含む必要があります。

例

asInt16(4.5)はInt16値5を返します。

asInt16(4.25)はInt16値4を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt16

関連項目

asComplex(x)、asCoord(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asInt32(x)

xの値をInt32値に変換するオブジェクト。コンテナの値を最も近い整数に丸めたい場合は、round(x)が使用できます。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

使用法

asInt32(x)は、xデータをInt32データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Text | Int32

xがText型の場合、Int32に変換できる値を含む必要があります。

例

asInt32(4.5)はInt32値5を返します。

asInt32(4.25)はInt32値4を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt32

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asInt64(x)

xの値をInt64値に変換するオブジェクト。コンテナの値を最も近い整数に丸めたい場合は、round(x)が使用できます。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

使用法

asInt64(x)は、xデータをInt64データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Int64
UInt16 | Int64
Int16 | Int64
Int32 | Int64
Int64 | Int64
Real32 | Int64
Real64 | Int64
Text | Int64

xがText型の場合、Int64に変換できる値を含む必要があります。

例

asInt64(4.5)はInt64値5を返します。

asInt64(4.25)はInt64値4を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt64

関連項目

asBoolean(x)、asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asPComplex(x)

xの値をPComplex値に変換するオブジェクト。

使用法

asPComplex(x)は、xデータをPComplexデータ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | PComplex
UInt16 | PComplex
Int16 | PComplex
Int32 | PComplex
Int64 | PComplex
Real32 | PComplex
Real64 | PComplex
Complex | PComplex
Text | PComplex

xがText型の場合、PComplexに変換できる値を含む必要があります。

例

asPComplex(4.5)はPComplex値(4,5, @0)を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asPComplex

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asReal32(x)

xの値をReal32値に変換するオブジェクト。

使用法

asReal32(x)は、xデータをReal32データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real32
UInt16 | Real32
Int16 | Real32
Int32 | Real32
Int64 | Real32
Real32 | Real32
Real64 | Real32
Text | Real32

xがText型の場合、Real32に変換できる値を含む必要があります。

例

asReal32("3.1415")はReal32値3.1415を返します。

asReal32(6) = 6.0

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asReal32

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asReal64(x)

xの値をReal64値に変換するオブジェクト。

使用法

asReal64(x)は、xデータをReal64データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Text | Text

xがText型の場合、Real64に変換できる値を含む必要があります。

例

asReal64("3.1415")はReal64値3.1415を返します。

asReal64(7) = 7.0

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asReal64

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asText(x)

xの値をText値に変換するオブジェクト。

使用法

asText(x)は、xデータをTextデータ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Text
UInt16 | Text
Int16 | Text
Int32 | Text
Int64 | Text
Real32 | Text
Real64 | Text
Coord | Text
Waveform | Text
Complex | Text
PComplex | Text
Spectrum | Text
Text | Text

例

asText(3.4)はText値"3.4"を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asText

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asUInt8(x)

xの値をUInt8（バイト）値に変換するオブジェクト。コンテナの値を最も近い整数に丸めたい場合は、round(x)が使用できます。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

使用法

asUInt8(x)は、xデータをUInt8データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt8
Int16 | UInt8
Int32 | UInt8
Int64 | UInt8
Real32 | UInt8
Real64 | UInt8
Text | UInt8

xがText型の場合、UInt8に変換できる値を含む必要があります。

例

asUInt8(4.5)はUInt8値5を返します。

asUInt8(4.25)はUInt8値4を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asUInt8

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asUInt16(x)

xの値をUInt16（2バイト）値に変換するオブジェクト。コンテナの値を最も近い整数に丸めたい場合は、round(x)が使用できます。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

使用法

asUInt16(x)は、xデータをUInt16データ型に変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt16
UInt16 | UInt16
Int16 | UInt16
Int32 | UInt16
Int64 | UInt16
Real32 | UInt16
Real64 | UInt16
Text | UInt16

xがText型の場合、UInt8に変換できる値を含む必要があります。

例

asUInt16(4.5)はUInt16値5を返します。

asUInt16(4.25)はUInt16値4を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asUInt16

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asVariant(x)

"x"をActiveXオートメーション型Variantに変換するオブジェクト。"x"から作成されるActiveXオートメーション・バリアントの型をVT_VARIANTにします。

使用法

この関数は、VT_VARIANT型のパラメータを必要とするActiveXコントロールまたはサーバにVEEデータ・コンテナを渡すために使用します。

VEEのVariantデータ型を返します。この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_VARIANTとしての性質は失われます。下の例を参照してください。

可能な入力型 戻り値型

UInt8 | Variant
UInt16 | Variant
Int16 | Variant
Int32 | Variant
Int64 | Variant
Real32 | Variant
Real64 | Variant
Text | Variant

例

動作する例:

A = asVariant(A);
Obj.method(ByRef A);

Array = asVariant(Array);

動作しない例:

Obj.method(ByRef asVariant(A));

Array[0] = asVariant(A);

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariant

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asInt64(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asVariantBool(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_BOOL（論理式）にします。

使用法

この関数は、VT_BOOL型のパラメータを必要とするActiveXコントロールまたはサーバにVEEデータ・コンテナを渡すために使用します。

VEEのInt16データ型を返します。このデータ・コンテナの「ヒント」フラグに、論理式のバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、VT_I2でなくVT_BOOLに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_BOOLまたはByRef VT_BOOL型のパラメータを必要とする場合だけです。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_BOOLとしての性質は失われます。下の例を参照してください。

例

動作する例:

A = asVariantBool(A);
Obj.method(ByRef A);

Array = asVariantBool(Array);

動作しない例:

Obj.method(ByRef asVariantBool(A));

Array[0] = asVariantBool(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantBool

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asVariantCurrency(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_CY（通貨）にします。

使用法

この関数は、VT_CY型のパラメータを必要とするActiveXコントロールまたはサーバにVEEデータ・コンテナを渡すために使用します。

VEEのReal64データ型を返します。このデータ・コンテナの「ヒント」フラグに、通貨のバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、VT_CYに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_CYまたはByRef VT_CY型のパラメータを必要とする場合だけです。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_CYとしての性質は失われます。下の例を参照してください。

例

動作する例:

A = asVariantCurrency(A);
Obj.method(ByRef A);

Array = asVariantCurrency(Array);

動作しない例:

Obj.method(ByRef asVariantCurrency(A));

Array[0] = asVariantCurrency(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantCurrency

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asVariantDate(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_DATEにします。

使用法

この関数は、VT_DATE型のパラメータを必要とするActiveXコントロールまたはサーバにVEEデータ・コンテナを渡すために使用します。

VEEのReal64データ型を返します。このデータ・コンテナの「ヒント」フラグに、日付のバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、VT_DATEに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_DATEまたはByRef VT_DATE型のパラメータを必要とする場合だけです。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_DATEとしての性質は失われます。下の例を参照してください。

例

動作する例:

A = asVariantDate(A);
Obj.method(ByRef A);

Array = asVariantDate(Array);

動作しない例:

Obj.method(ByRef asVariantDate(A));

Array[0] = asVariantDate(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantDate

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantEmpty(x)、asVariantError(x)、asVariantNull(x)


asVariantEmpty(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_EMPTYにします。

使用法

この関数は、ActiveXコントロールまたはサーバにパラメータを渡すときに、そのパラメータをVT_EMPTYとして解釈させたい場合に使用します。

スカラに対してのみ使用できます。ByRefパラメータに対しては使用できません。同じデータ型を返します。このデータ・コンテナの「ヒント」フラグに、空のバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、コンテナの実際のデータ型でなくVT_EMPTYに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_EMPTY型のパラメータを必要とする場合だけです。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_EMPTYとしての性質は失われます。

例

A = asVariantEmpty(A);
Obj.method(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantEmpty

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantError(x)、asVariantNull(x)


asVariantError(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_ERRORにします。

使用法

この関数は、VT_ERROR型のパラメータを必要とするActiveXコントロールまたはサーバにVEEデータ・コンテナを渡すために使用します。

VEEのInt32データ型を返します。このデータ・コンテナの「ヒント」フラグに、エラーのバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、VT_ERRORに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_ERRORまたはByRef VT_ERROR型のパラメータを必要とする場合だけです。戻り値はエラー番号（scode）を表します。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_ERRORとしての性質は失われます。下の例を参照してください。

例

動作する例:

A = asVariantError(A);
Obj.method(ByRef A);

Array = asVariantError(Array);

動作しない例:

Obj.method(ByRef asVariantError(A));

Array[0] = asVariantError(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantError

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantNull(x)


asVariantNull(x)

"x"から作成されるActiveXオートメーション・バリアントの型をVT_NULLにします。

使用法

この関数は、ActiveXコントロールまたはサーバにパラメータを渡すときに、そのパラメータをVT_NULLとして解釈させたい場合に使用します。

スカラに対してのみ使用できます。ByRefパラメータに対しては使用できません。同じデータ型を返します。このデータ・コンテナの「ヒント」フラグに、ヌルのバリアントであることが記述されます。このコンテナをActiveXオートメーション・サーバまたはコントロールに渡した場合、コンテナの実際のデータ型でなくVT_NULLに変換されます。この「ヒント」フラグが必要なのは、ActiveXオートメーション・メソッドがVT_NULL型のパラメータを必要とする場合だけです。

この関数の結果をレコードのフィールドまたは配列要素に代入した場合、VT_NULLとしての性質は失われます。

例

A = asVariantNull(A);
Obj.method(A);

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: asVariantNull

関連項目

asComplex(x)、asCoord(x)、asInt16(x)、asInt32(x)、asPComplex(x)、asReal32(x)、asReal64(x)、asText(x)、asUInt8(x)、asVariant(x)、asVariantBool(x)、asVariantCurrency(x)、asVariantDate(x)、asVariantEmpty(x)、asVariantError(x)


asin(x)

xのアークサインを返すオブジェクト。

使用法

asin(x)は、xデータのアークサインを得るために使用します。結果の範囲は、Real値に対しては-PI/2～+PI/2です。戻り値は現在のTrig Modeの単位です。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、asin(1)は90を返します。

Trig ModeがDegreesに設定されている場合、asin((1.1752012, @90))は(1, @90)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: asin

関連項目

asinh(x)、cos(x)、sin(x)、tan(x)、Trig、Default Preferences.


asinh(x)

xのハイパボリック・アークサインを返すオブジェクト。

使用法

asinh(x)は、xデータのハイパボリック・アークサインを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

asinh(0)は0を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: asinh

関連項目

asin(x)、cosh(x)、Trig、sinh(x)、tan(x)


Assignment

LocalまたはGlobal変数に値を代入したり、配列またはレコードの一部に値を代入したりするために使用できるFormula型のオブジェクト。

使用法

Assignmentオブジェクトは、LocalまたはGlobal変数に値を代入したり、配列またはレコードの一部の値を変更したりするために使用します。AssignmentオブジェクトのResult出力端子は、LocalまたはGlobal変数に新たに代入された値、または配列またはレコードの変更された部分を含みます。例えば、a[2]=4のようにAssignment演算子を使用する場合、Result端子はa[2]（値4）を含みます。a全体を含むわけではありません。a全体を得るには、aという名前の出力端子を追加します。

注記

Category: Assignmentを選択すると、Function & Object BrowserのMember列にさまざまなAssignmentの例が表示されます。これらの例の1つをクリックすると、そのAssignment式があらかじめ含まれたVEEオブジェクトが得られます。例のオブジェクトには次のものがあります。

a[2,*,5:6,4]=b - 複雑な配列の一部を変更するAssignmentオブジェクト。

a[2]=b - 配列の一部を変更するAssignmentオブジェクト。

globalA=2*b+3 - global/variableを変更する（Set Variableを実行する）Assignmentオブジェクト。

rec.field=b - レコードの一部を変更するAssignmentオブジェクト。

rec.field[2]=b - レコードのフィールドの一部を変更するAssignmentオブジェクト。

rec[2].field=b - レコードの配列の一部を変更するAssignmentオブジェクト。

tmp=a, a=b, b=tmp - ローカルを使って値を交換するAssignmentオブジェクト。

tmp=a[2], a[2]=a[3], a[3]=tmp - ローカルを使って配列中の値を交換するAssignmentオブジェクト。

場所

Device [image] Function & Object Browser [image]  Operators [image] Assignment

関連項目

Function & Object Browser

配列の値を変更するには

代入演算の使用


atan(x)

xのアークタンジェントを返すオブジェクト。

使用法

atan(x)は、xデータのアークタンジェントを得るために使用します。結果の範囲は、Real値に対しては-PI/2～+PI/2です。戻り値は現在のTrig Modeの単位です。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、atan(1)は45を返します。

Trig ModeがRadiansに設定されている場合、atan((1.5574, @0))は(0.999, @0)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atan

関連項目

atanh(x)、atan2(y,x)、cos(x)、sin(x)、tan(x)、Trig、Default Preferences


atan2(y,x)

yをxで割った値のアークタンジェントを返すオブジェクト。

使用法

atan2(y,x)は、yをxで割った値のアークタンジェントを得るために使用します。結果は適切な符号を持ち、範囲は、Real値に対しては-PI～+PIです。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。xとyは現在のTrig Modeの単位であると見なされます。xは任意の種類であり、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、atan2(1, -1)は135を返します。

Trig ModeがRadiansに設定されている場合、atan2((1, 1), (5, 5))は(0.19739, 0)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atan2

関連項目

atan(x)、cos(x)、sin(x)、tan(x)、Trig、Default Preferences


atanh(x)

xのハイパボリック・アークタンジェントを返すオブジェクト。

使用法

atanh(x)は、xデータのハイパボリック・アークタンジェントを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

atanh(0.5)は0.5493を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atanh

関連項目

atan(x)、cosh(x)、sinh(x)、tanh(x)


bartlet(x)

値の時系列にBartletウィンドウを適用するために用いられるオブジェクト。

使用法

bartlet(x)を使うと、xとBartlet関数のスペクトラム変換とのコンボリューションを取るのと同じ方法で、x中の値をフィルタできます。これにより、周期的信号をサンプリングする際に、入力シーケンスのテールから生じるノイズの一部と、それらから生じる可能性がある不連続性を抑制する効果があります。

入力xはArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

xがSpectrumの場合、まずifft(x)を使ってWaveformに変換されてから、ウィンドウが適用されます。ウィンドウの結果は、fft(x)を使ってSpectrum型に戻されます。

例

bartlet([1, 1, 1, 1, 1, 1, 1, 1])は次の値を返します。
[0.125, 0.375, 0.625, 0.875, 0.875, 0.625, 0.375, 0.125]

注記

タイム・ドメインのBartlet関数は、2*(n+0.5)/Nと表されます。ここで、nは配列中の位置（インデックス）、Nは配列のサイズです。結果はxと同じ型の配列であり、xにマッピングがある場合は同じマッピングを持ちます。

サイドローブ・レベルとコヒーレント利得に関する説明については、次の書籍を参考にしてください:Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: bartlet

関連項目

blackman(x)、convolve(a,b)、fft(x)、hamming(x)、hanning(x)、ifft(x)、rect(x)


baseName(str)

ファイル・パス文字列のファイル名部分を返すオブジェクト。

使用法

baseName()は、ディレクトリ／ファイル・パスの末尾のファイル名を分離するために使用します。

たとえば、pathStrが次のパスの場合:

c:\Program Files\Agilent\VEE Pro 8.5\examples\apps\chaos.vee

baseName(pathStr)はchaos.veeを返します。

スラッシュ（/）とバックスラッシュ／円記号（\）の両方がディレクトリ（フォルダ）名の後の区切り文字として扱われます。pathStr全体が1つの名前である場合は、その名前がファイル名と見なされます。

注記

baseName()オブジェクトは実際にはFormulaオブジェクトであり、1つの入力で初期化され、baseName()式を持ちます。baseName()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: baseName

関連項目

dirName()、Formula


Bessel

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Besselは入力データのベッセル関数を計算するために使用します。

i0(x)

i1(x)

j0(x)

j1(x)

jn(x,n)

k0(x)

k1(x)

y0(x)

y1(x)

yn(x,n)

Ai(x)

Bi(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Bessel

関連項目

i0(x)、i1(x)、j0(x)、j1(x)、jn(x,n)、k0(x)、k1(x)、y0(x)、y1(x)、yn(x,n)、Ai(x)、Bi(x)


beta(x,y)

入力(x,y)のベータ関数を計算するために用いられるオブジェクト。

使用法

beta(x,y)は、xのベータ関数を計算するために使用します。ベータ関数は次のように定義されます。

( gamma(x) * gamma(y) ) / gamma(x+y)

xとyの値は正でなければなりません。

x入力は任意の種類とサイズです。2番目のyパラメータは、x入力値と同じ型か、同じ型に変換可能なものでなければなりません。2つの入力がともに配列の場合、その種類とサイズは正確に一致する必要があります。同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

beta(3, 1)は0.333333333333333を返します。

beta(8, 7)は4.16250416250416E-05を返します。

beta(-1, 3)はエラーを返します。

注記

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: beta

関連項目

comb(n,r)、factorial(n)、gamma(x)、perm(n,r)


Bi(x)

xの第2種のB-Airy分数次ベッセル関数を計算するために用いられるオブジェクト。

使用法

Bi(x)は、xの第2種の分数次ベッセル関数B-Airyを計算するために使用します。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

例

Bi(1)は1.20742359495287を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: Bi

関連項目

Ai(x)、j0(x)、j1(x)、jn(x,n)、y0(x)、y1(x)、yn(x,n)


binomial(a,b)

a個の中からb個を取り出す組み合わせの数を計算するのに用いられるオブジェクト。

使用法

binomial(a,b)は、a個の中からb個を取り出す組み合わせの数を、次の式を使って計算するのに使用します。

binomial(a, b) = a!/((a-b)!* b!)

!記号は階乗を表します。

aは任意の種類であり、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

2番目のbパラメータは、a入力値と同じ型か、同じ型に変換可能なものでなければなりません。2つの入力がともに配列の場合、その種類とサイズは正確に一致する必要があります。

binomial(a,b)演算は整数のオペランドに対してのみ定義されているので、入力の数値は計算の前にInt32型に変換されます。

例

binomial(10,3)は、次の式のように120を返します。

10!/((10-3)!*3!) = 10!/(7!*3!) =(10*9*8)/(3*2*1) = 120.

binomial(10.4,3.9)は、次の式のように210を返します。

10!/((10-4)!*4!) = 10!/(6!*4!) = (10*9*8*7)/(4*3*2*1) = 210.

実数をInt32に変換する規則に従って、10.4は10に、3.9は4に変換されます。

注記

aとbはともに正でなければならず、aはbより大きくなければなりません。

この関数はcomb(n,r)と同一です。

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: binomial

関連項目

beta(x,y)、comb(n,r)、factorial(n)、gamma(x)、perm(n,r)


bit(x,n)

特定のビット位置の2進値を返すオブジェクト。

使用法

bit(x,n)は、xのnビット目の値を0または1で返します。xがReal32、Real64、Coord、Waveformのいずれかの型の場合、計算の前にInt32に変換されます。nはInt32またはそれに変換可能な0以上31以下（xがInt64型の場合は0以上63以下）の値のコンテナでなければなりません。nはスカラまたはxと同じ種類でなければなりません。xは任意の種類であり、同じ種類が返されます。

可能な入力型 |  | 戻り値型
x | n
UInt8 | 0-31 | UInt8
UInt16 |  | Uint16
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

例

bit(9,0)は1を返します。9の2進値は1001であり、0ビットがセットされているからです。

注記

戻り値はxと同じマッピングを持ちます。nのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bit

関連項目

bits(str)、Bitwise、clearBit(x,n)、setBit(x,n)


bitAnd(x,y)

xとyのビットごとのANDを返すオブジェクト。

使用法

bitAnd(x,y)は、2つのコンテナのバイナリAND演算を実行します。xとy は任意の種類です。ただし、両方とも配列の場合、種類とサイズが一致する必要があります。xまたはyがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。なお、型が変化しても、型の順位は変化しません。データ型の順位については、ここを参照してください。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

例

bitAnd(5, [3, 12])は[1, 4]を返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitAnd

関連項目

a AND b、bit(x,n)、bitCmpl(x)、bitOr(x,y)、Bitwise、bitXor(x,y)、NOT a、a OR b、a XOR b


bitCmpl(x)

xのビットごとの1の補数を返すオブジェクト。

使用法

bitCmpl(x)は、コンテナのバイナリ1の補数演算を実行するために使用します。xがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32

例

bitCmpl(7)は-8を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitCmpl

関連項目

a AND b、bit(x,n)、bitAnd(x,y)、bitOr(x,y)、Bitwise、bitXor(x,y)、NOT a、a OR b、a XOR b


bitOr(x,y)

xとyのビットごとのORを返すオブジェクト。

使用法

bitOr(x,y)は、2つのコンテナのバイナリOR演算を実行します。xとy は任意の種類です。ただし、両方とも配列の場合、種類とサイズが一致する必要があります。xまたはyがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。なお、型が変化しても、型の順位は変化しません。データ型の順位については、ここを参照してください。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

例

bitOr(5, [3, 12])は[7, 13]を返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Bitwise
Member: bitOr

関連項目

a AND b、bit(x,n)、bitAnd(x,y)、bitCmpl(x)、Bitwise、bitXor(x,y)、NOT a、a OR b、a XOR b


bits(str)

0と1からなる文字列の2進値を返すオブジェクト。

使用法

bits(str)は、Text型のstrの内容を2進数表記として解釈した値をInt32で返します。strは任意の種類のTextコンテナです。strは、先頭にスペースを含むことができ、それ以降は0と1からなる2進数表記でなければなりません。

例

bits("011")は3を返します。

注記

戻り値は入力コンテナと同じマッピングを持ちます。最下位ビットが右、最上位ビットが左です。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Bitwise
Member: bits

関連項目

bit(x,n)、Bitwise、clearBit(x,n)、setBit(x,n)


bitShift(x,y)

xのビットをy桁だけ左または右にシフトした結果を返すオブジェクト。

使用法

bitShift(x,y)は、コンテナxのビットをy桁シフトするために使用します。xは任意の種類です。xがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。yはInt32またはそれに変換可能なコンテナでなければなりません。yが負の場合、ビットは右にシフトされます。そうでない場合、ビットは左にシフトされます。yはスカラまたはxと同じ種類でなければなりません。yが31より大きいか-31より小さい場合、戻り値は0になります。

可能な入力型 |  | 戻り値型
x | y
UInt8 | 0-31 | UInt8
UInt16 |  | UInt16
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

例

bitShift([1, 7, 7], [3, 2, (-2)])は[8, 28, 1]を返します。

bitShift(8,2)は32を返します。

bitShift(8,-2)は2を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Bitwise
Member: bitShift

関連項目

bit(x,n)、bitAnd(x,y)、bitOr(x,y)、Bitwise、bitXor(x,y)、clearBit(x,n)、rotate(x、numElem)、setBit(x,n)


Bitwise

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Bitwiseは、UInt8、 UInt16、Int16、Int32またはInt64のビットのセット、クリア、アクセス、シフトを実行する、またはUInt8/ UInt16/Int16/Int32/Int64同士のAND、OR、XORを実行する以下のオブジェクトにアクセスするために使用します。

bit(x,n)

bits(str)

setBit(x,n)

clearBit(x,n)

bitAnd(x,y)

bitOr(x,y)

bitXor(x,y)

bitCmpl(x)

bitShift(x,y)

注記

Bitwiseメニューのオブジェクトが意味を持つのは、UInt8、UInt16、Int16、Int32、Int64のいずれかの型に対してだけです。ただし、便宜のために、ほとんどのオブジェクトがほとんどの型を受け入れ、関数を実行する前に引数をInt32に変換します。すなわち、Real32、Real64、Coord、Waveformの値はオブジェクト内部で切り捨てられます。

ビットの番号は0から始まります。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Bitwise

関連項目

bit(x,n)、bits(str)、bitAnd(x,y)、bitCmpl(x)、bitOr(x,y)、bitShift(x,y)、bitXor(x,y)、clearBit(x,n)、setBit(x,n)、a AND b、NOT a、a OR b、Comparison、a XOR b


bitXor(x,y)

xとyのビットごとのXORを返すオブジェクト。

使用法

bitXor(x,y)は、2つのコンテナのバイナリXOR（排他的論理和）演算を実行します。xとy は任意の種類です。ただし、両方とも配列の場合、種類とサイズが一致する必要があります。xまたはyがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。なお、型が変化しても、型の順位は変化しません。データ型の順位については、ここを参照してください。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

例

bitXor(5, [3, 12])は[6, 9]を返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Bitwise
Member: bitXor

関連項目

a AND b、bit(x,n)、bitAnd(x,y)、bitCmpl(x)、bitOr(x,y)、Bitwise、NOT a、a OR b、a XOR b


blackman(x)

値の時系列にブラックマン・ウィンドウを適用するために用いられるオブジェクト。

使用法

blackman(x)を使うと、xとブラックマン関数のスペクトラム変換とのコンボリューションを取るのと同じ方法で、x中の値をフィルタできます。これにより、周期的信号をサンプリングする際に、入力シーケンスのテールから生じるノイズの一部と、それらから生じる可能性がある不連続性を抑制する効果があります。

入力xはArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

xがSpectrumの場合、まずifft(x)を使ってWaveformに変換されてから、ウィンドウが適用されます。ウィンドウの結果は、fft(x)を使ってSpectrum型に戻されます。

例

blackman([1, 1, 1, 1, 1, 1, 1, 1])は次の値を返します。
[0.014, 0.172, 0.555, 0.938, 0.938, 0.555, 0.172, 0.014]

注記

Blackmanはタイム・ドメインでは次のように表されます。

0.42 - 0.5*cos(2*PI*(n+0.5)/N) + 0.08*cos(4*PI*(n+0.5)/N)

ここで、nは配列中の位置（インデックス）、Nは配列のサイズです。結果はxと同じ型の配列であり、xにマッピングがある場合は同じマッピングを持ちます。

サイドローブ・レベルとコヒーレント利得に関する説明については、次の書籍を参考にしてください:Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: blackman

関連項目

bartlet(x)、convolve(a,b)、fft(x)、hamming(x)、hanning(x)、ifft(x)、rect(x)


buildRecord()

buildRecord(fieldNameTextArray, field1, field2, fieldN)

実行時にフィールド名とフィールド値を指定してレコードを構築するオブジェクト。

使用法

buildRecord()は、フィールド名と値が実行時まで確定しないレコードを構築するために使用します。最初のパラメータは、フィールド名を表す文字列の配列です。以降のパラメータは、各フィールドの値であり、これらのパラメータの数は最初の配列の長さに一致する必要があります。

buildRecord()は、指定されたフィールド名とフィールド値を持つスカラ・レコードを返します。

例

buildRecord(fieldNameList2Long, field1, field2);

builldRecord(fieldNameList8Long, field1, field2, field3... field8);

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: buildRecord

関連項目

Build Record


Calculus

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Calculusは、単純な数値（整数、実数、波形など）の1次元配列や2次元（2フィールド）座標の積分または微分を取るために使用します。

integral(x)

deriv(x,1)

deriv(x,2)

deriv(x,order)

defIntegral(x,a,b)

derivAt(x,1,pt)

derivAt(x,2,pt)

derivAt(x,order,pt)

注記

積分／微分関数は、単純な数値（整数、実数、波形など）の1次元配列と、等間隔の順序付きデータを表す2次元（2フィールド）座標のリストに適用できます。マッピングされていない配列の場合、データは等間隔に配置された順序付きデータであると仮定されます。点の間隔dxは1であると仮定されます。マッピングされた配列の場合、演算は間隔値dxを(Xmax-Xmin)/Nとして実行されるので、自動的に適切なスケールが使用されます。座標リストの場合、最初に独立値（1つめのフィールド）がチェックされ、正しい順序で等間隔に並んでいることが確認されます。次に、先に求められた間隔をdxの値として従属値（2つめのフィールド）に対して演算が実行されます。

マッピングされていない配列で、点の間隔がある値dxであることがわかっている場合は、次の方法で正しい演算結果を求めることができます。積分の場合、結果に既知のdxの値を乗算します。微分の場合、結果を既知のdxの値で除算します。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Calculus

関連項目

defIntegral (x,a,b)、deriv(x, order)、derivAt(x, order,pt)、integral(x)


ceil(x)

xの値を最も近い上の整数に丸めて返すオブジェクト。

使用法

ceil(x)関数は、x以上の最も小さい整数を（同じ型で）返します。すなわち、xの値をすぐ上の整数（正方向に最も近い整数）に丸めたものを返します。

xは任意の種類であり、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

ceil([23.0, 23.1, 23.9, 23.5, (-23.5)])は[23, 24, 24, 24, -23]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Real Parts
Member: ceil

関連項目

abs(x)、Complex Parts、floor(x)、fracPart(x)、intPart(x)、Real Parts、round(x)


charToInt(a)

入力文字列の最初の文字を10進値に変換するオブジェクト。

使用法

charToInt(a)は、ASCII入力文字列aの最初の文字をInt32型の対応する十進値に変換するために使用します。使用できる文字は、0～255の範囲内の値に変換可能なものです。

例

charToInt("A")は65を返します。

charToInt("Arthur")も65を返します。

charToInt("a")は97を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: charToInt

関連項目

intToChar(a)、String


clearBit(x,n)

xのn番目のビットを0に設定して返すオブジェクト。

使用法

clearBit(x,n)は、コンテナxの特定のビットを0に設定するために使用します。xは任意の種類です。xがReal32、Real64、Coord、Waveformのいずれかの型の場合、計算の前にInt32に変換されます。nはInt32またはそれに変換可能な0以上31以下（xがInt64型の場合は0以上63以下）の値のコンテナでなければなりません。nはスカラまたはxと同じ種類でなければなりません。

可能な入力型 |  | 戻り値型
x | n
UInt8 | 0-31 | UInt8
UInt16 |  | UInt16
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

例

clearBit(7,1)は5を返します。7の2進値は111であり、番号1のビットをクリアすると101（10進の5）になるからです（ビットの番号は0から始まります）。

注記

結果のコンテナのマッピングはxパラメータと同じです。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: clearBit

関連項目

bits(str)、bit(x,n)、Bitwise、setBit(x,n)


clipLower (x,a)

入力データxを最小値aにクリッピングするオブジェクト。

使用法

clipLower(x,a)は、データを最小値aにクリッピングするために使用します。すなわち、aよりも小さいデータはaに変更されます。

x入力は任意のサイズと種類です。クリッピング・パラメータaは、x入力値と同じ型か、同じ型に変換可能な型で、種類はScalarまたはxと同じ種類とサイズでなければなりません。入力の1つがScalarで、もう1つがScalarでない場合、Scalar入力はScalarでない入力と同じ種類とサイズの配列として扱われます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Text | Text

例

clipLower(x,.5)関数を、xが配列[.1, .4, .6, .9]であるようなデータに対して使用した場合、[.5, .5, .6, .9]が返されます。

clipLower([.1, .4, .6, .9],[.2, .2, .7, .7])は[.2, .4, .7, .9]を返します。

clipLowerは、Waveformの値を任意の下限値にクリッピングするために使用できます。波形の制限点を定義するには、Coordの配列を使用します。制限点とは、制限波形の形状を定義する線分の端点です。これらの点は数個しかない場合もあります。Coord配列をBuild Arb Waveformオブジェクトに送ることにより、実際の波形と同じ数の点を持つ下限波形を作成できます。新しい波形をclipLower波形のa入力として送ります。clipLower(x,a)を実行すると、入力波形xの値のうち下限を下回るものが、a入力で定義される最小値にクリッピングされます。

注記

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Data Filtering
Member: clipLower

関連項目

clipUpper (x,a)、Build Arb Waveform、Comparator


clipUpper (x,a)

入力データxを最大値aにクリッピングするオブジェクト。

使用法

clipUpper(x,a)は、データを最大値aにクリッピングするために使用します。すなわち、aよりも大きいデータはすべてaに変更されます。

x入力は任意のサイズと種類です。クリッピング・パラメータaは、x入力値と同じ型か、同じ型に変換可能な型で、種類はScalarまたはxと同じ種類とサイズでなければなりません。入力の1つがScalarで、もう1つがScalarでない場合、Scalar入力はScalarでない入力と同じ種類とサイズの配列として扱われます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Text | Text

例

clipUpper(x,.5)関数を、xが配列[.1, .4, .6, .9]であるようなデータに対して使用した場合、[.1, .4, .5, .5]が返されます。

clipUpper([.1, .4, .6, .9],[.2, .2, .5, .5])は[.1, .2, .5, .5]を返します。

clipUpperは、波形の値を任意の上限値にクリッピングするために使用できます。波形の制限点を定義するには、Coordの配列を使用します。制限点とは、制限波形の形状を定義する線分の端点です。Coord配列をBuild Arb Waveformオブジェクトに送ることにより、実際の波形と同じ数の点を持つ上限波形を作成できます。新しい波形をclipUpper波形のa入力として送ります。clipUpper(x,a)を実行すると、入力波形xの値のうち上限を上回るものが、a入力で定義される最大値にクリッピングされます。

注記

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: clipUpper

関連項目

clipLower (x,a)、Build Arb Waveform、Comparator


cofactor(x, row,col)

入力行列xの行r列cの余因子を計算するために用いられるオブジェクト。

使用法

cofactor(x,row,col)は、正方行列xの余因子を計算するために使用します。行列の余因子とは、入力行列xから第r行と第c列を除いた副行列の行列式に、(-1)の(r+c)乗を掛けたものと定義されます。

x入力の種類は正方行列でなければなりません。削除する行と列を表す入力rとcは、Int32 Scalarか、Int32型に変換できるものでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex、種類はScalar
PComplex | PComplex、種類はScalar

正方行列とは、行と列の数が等しい行列です。

例

aが行列[ [3, -1, 2], [4, 5, 6], [7, 1, 2] ]の場合、cofactor(a,1,2)は34を返します。

注記

オペランドのマッピングは無視されます。

rとcの入力は、Int32型であるか、この型に変換可能なものであると想定されます。行列の行と列の番号は、0からn-1までです。したがって、使用する行と列を指定する際には注意が必要です。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Matrix
Member: cofactor

関連項目

det(x)、minor(x,row, col)


comb(n,r)

n個の中からr個を取り出す組み合わせの数を計算するのに用いられるオブジェクト。

使用法

comb(n,r)は、n個の中からr個を取り出す組み合わせの数を計算するのに使用します。

comb(n, r) = n!/((n -r)!* r!)

!記号は階乗を表します。

n入力は任意の種類とサイズです。2番目のrパラメータは、n入力値と同じ型か、同じ型に変換可能なものでなければなりません。2つの入力がともに配列の場合、その種類とサイズは正確に一致する必要があります。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

comb(n, r)演算は整数のオペランドに対してのみ定義されているので、入力の数値は計算の前にInt32型に変換されます。

例

comb(10,3)は、次の式のように120を返します。

10!/((10-3)!*3!) = 10!/(7!*3!) = (10*9*8)/(3*2*1) = 120

comb(10.4,3.9)は、次の式のように210を返します。

10!/((10-4)!*4!) = 10!/(6!*4!) = (10*9*8*7)/(4*3*2*1) = 210

実数をInt32に変換する規則に従って、10.4は10に、3.9は4に変換されます。

注記

nとrはともに正でなければならず、nはrより大きくなければなりません。

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

この関数はbinomial(a,b)と同一です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: comb

関連項目

beta(x,y)、binomial(a,b)、factorial(n)、gamma(x)、perm(n,r)


カンマ演算子

","（カンマ）は式の中で2項演算子として使用できます。2つの式を","で区切った場合、左側の式が評価され、その結果は破棄されます。右側の式の結果が返されます。

使用法

カンマ演算子はFormulaオブジェクトで次の構文によって使用します。

式 , 式

","を使うと、左側の式が先に評価されますが、その結果は破棄されます。その後、右側の式の結果が返されます。

例

UserFunc(A),Aは、UserFuncという名前の関数を呼び出し、結果を破棄し、Aの値を返します。

場所

Formulaオブジェクトまたは式を取る他のオブジェクトの中で使用します。

関連項目

3項演算子


commandLine()

このVEEセッションの起動に用いられたコマンド・ライン・パラメータを返すオブジェクト。

使用法

戻り値は1次元Text配列です。配列のインデックス0には、VEEセッションの起動に用いられたVEEプログラム名が格納されています。残りの配列要素（存在する場合）は、コマンド・ラインでプログラム名の後に記述されたパラメータです。

この関数は、VEEコマンド・ラインを使ってVEEプログラムにパラメータ（オプション）を渡したい場合に便利です。VEE環境自体を対象としたオプションは、コマンド・ラインで1つのマイナス記号（-）が前に付きます。コマンド・ライン・オプション付きでAgilent VEEを起動するにはを参照してください。2つのマイナス記号が前に付くオプションは、VEE環境からは無視され、commandLine()オブジェクトを使ってVEEプログラムから使用可能になります。例:

vee.exe -maximize --radians My_Trig.vee

このコマンド・ラインは、最大化されたウィンドウでVEEを起動し、プログラムMy_Trig.veeをロードし、そのプログラムから--radiansオプションを使用可能にします。

注記

commandLine()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、commandLine()式を持ちます。commandLine()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: commandLine

関連項目

installDir、programName、Formula


Comparison

Function & Object BrowserのOperatorsのCategory。

使用法

Comparisonは、2つのオペランドの比較演算を実行する次のオブジェクトにアクセスするために使用します。

a ~= b

a == b

a != b

a < b

a > b

a <= b

a >= b

注記

これらの演算はすべて、値が0または1のInt32を返します。この値は演算結果の真偽に対応します。

2つのオペランドが比較できない場合もあります。すなわち、2つのオペランドの間に小さい、大きい、等しいの関係が成立しない場合です。例としては、マッピングが一致しないCoordや、配列が挙げられます。例えば、[1, 2, 6] != [2, 3, 4]は真ですが、この2つのオペランドは単に等しくないだけで、どちらかが大きいとも小さいともいえません。すなわち、[1, 2, 6] < [2, 3, 4]は成立せず、[1, 2, 6] > [2, 3, 4]も成立しません。1つめの配列の要素がすべて2番目の配列の対応する要素に対して<または>の関係にあるわけではないからです。

また、Comparisonの下の項目とConditionalメニュー項目の下の項目の違いにも注意してください。Comparisonsは0または1を出力する式です。ConditionalsはIf/Then/Elseであり、2つの出力のうち1つがアクティブになります。

戻り値はInt32型であり、種類はオペランドと同じです。これは、常にスカラを返す==などの条件式と異なっています。

論理演算子は、Text型に対しては、文字列がヌルかヌルでないかという意味でのみ定義されています。すなわち、"zoo" AND ""（ヌル文字列）は、2番目の文字列がヌルなので論理的に偽です。テキスト型を文字列以外の型と比較する場合、後者がText型に変換されます。したがって、"zoo" AND 0は真となります。実数値0は文字列"0"に変換され、両方の文字列がヌルでないため、ANDは真となり、1を返します。

場所

Device [image] Function & Object Browser [image] Operators [image] Comparison

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a > b（大きい）、a >= b（大きいか等しい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、a XOR b

Comparator、Conditional、If/Then/Else


Complex Parts

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Complex Partsは、ComplexおよびPComplexコンテナの各部分を返す以下のオブジェクトにアクセスするために使用します。

j(x)

re(x)

im(x)

mag(x)

phase(x)

conj(x)

注記

Complex Partsメニューのオブジェクトは、ComplexおよびPComplex型に対してのみ意味があります。ただし、便宜のために、ほとんどのオブジェクトはほとんどの型を受け入れて返します。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Complex Parts

関連項目

conj(x)、im(x)、j(x)、mag(x)、phase(x)、re(x)、Real Parts

Build Complex、Build PComplex、Complex、UnBuild Complex、UnBuild PComplex


concat(x,y)

コンテナを連結するために用いられるオブジェクト。

使用法

concat(x,y)は、2つのコンテナを連結するために使用します。入力パラメータは、任意の型、任意の種類です。concat(x,y)関数は、多次元の配列をArray 1Dに展開します。得られた1次元配列が連結されます。すべての型のxおよびyに対して、最も順位の高い型の1次元コンテナが返されます。

例

xが実数Scalarコンテナで内容が3であり、yがText配列コンテナで内容が["This", "is", "a", "test"]の場合、concat(x,y)はText配列コンテナ["3", "This", "is", "a", "test"]を返します。この場合、数値3はconcat動作の前により順位の高いText文字列の"3"に変換されています。

注記

xの値がマッピングされている場合、yの値は同じポイント間隔でマッピングされているか、マッピングされていないかのいずれかでなければなりません。結果はXminからXmin+dx*Nまでマッピングされます。ここで、Xminはxのマッピングの最小値、dxはxの2つの連続する点の間の距離、Nは結果の配列のサイズです。

concat(x,y)とsum(x)のTextに対する動作の違いに注意してください。concat(x,y)は、すべての場合にArray 1Dを作成します。sum(x)関数は、すべてのテキスト文字列を連結して1つの出力文字列を作成します。すなわち、xがScalar Text値"a"でyがScalar Text入力"b"の場合、concat(x,y)はArray 1D["a","b"]を返します。これに対して、sum(["a","b"])はテキスト値"ab"を持つScalarコンテナを返します。

ヌル入力はすべて値0を持つReal64スカラに自動的に変換されます。したがって、xがヌルでyが値5のInt32スカラの場合、concat(x,y)は値[0, 5]の長さ2のReal64 Array 1Dを返します。これに対して、Concatenatorオブジェクトにヌルと値5のInt32スカラを与えると、値[5]の長さ1のInt32配列が出力されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: concat

関連項目

sum(x)、Concatenator


conj(x)

Complex数xの複素共役を返すオブジェクト。

使用法

conj(x)は、Complex数xの複素共役を得るために使用します。xは任意の種類で、型はComplex、PComplex、Spectrumのいずれかです。Complex数の複素共役は、単に虚数部の符号を反転したものです。PComplex数の複素共役は、単に位相の符号を反転したものです。

例

conj( (2, 3) )は(2, -3)を返します。

Trig ModeがDegreesに設定されている場合、conj( (8, @45) )は(8, @-45)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Complex Parts
Member: conj

関連項目

im(x)、j(x)、mag(x)、phase(x)、re(x)、Real Parts、Build Complex、Default Preferences、UnBuild Complex


convolve(a,b)

2つのデータ配列のコンボリューションを取るために用いられるオブジェクト。

使用法

convolve(a,b)は、2つの1次元配列aとbの離散非周期コンボリューションを取るために使用します。結果は、同じ型でサイズが(Na+Nb)-1の配列です。ここで、Naは入力配列aのサイズ、Nbは入力配列bのサイズです。

入力値aとbはArray 1Dでなければなりません。aとbは同じサイズでなくてもかまいません。結果の値は正規化されません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | 入力のうち最も順位の高い型
Waveform | 入力のうち最も順位の高い型

例

convolve([1, 2, 3, 4, 5],[1, 1, 1])は[1, 3, 6, 9, 12, 9, 5]を返します。

注記

入力aとbは等間隔のデータを表す必要があります。さらに、aの任意の2つの値の間隔は、bの任意の2つの値の間隔と一致する必要があります。マッピングされていない2つの配列の場合、間隔は常に1と仮定されます。マッピングされた配列の場合、間隔は(Xmax-Xmin)/Nです。ここで、XmaxとXminはマッピング、Nは配列のサイズです。1つの入力がマッピングされており、もう1つがマッピングされていない場合、マッピングされていない入力はマッピングされている入力と同じ周波数でサンプリングされていると仮定されます。結果の値はどのようなスケーリング係数にも正規化されません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: convolve

関連項目

fft(x)、xcorrelate (a,b)


cos(x)

xのコサインを返すオブジェクト。

使用法

cos(x)は、xデータのコサインを得るために使用します。xは現在のTrig Mode単位と仮定されます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、cos([0, 180])は[1, -1]を返します。

Trig ModeがRadiansに設定されている場合、cos((1, PI/4))は(0.715684, -0.73096)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cos

関連項目

acos(x)、cosh(x)、sin(x)、tan(x)、Trig、Default Preferences


cosh(x)

xのハイパボリック・コサインを返すオブジェクト。

使用法

cosh(x)は、xデータのハイパボリック・コサインを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

cosh(0)は1を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cosh

関連項目

acosh(x)、cos(x)、sinh(x)、tanh(x)


cot(x)

xのコタンジェントを返すオブジェクト。

使用法

cot(x)は、xデータのコタンジェントを得るために使用します。xは現在のTrig Mode単位と仮定されます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、cot([45, 90])は[1, 61E-18]を返します。2番目の数は0になるはずですが、システム精度よりも小さくなっています。

Trig ModeがRadiansに設定されている場合、cot((3, @PI/2))は(1.0049698, @-1.57079)を返します。

Trig ModeがDegreesに設定されている場合、cot((3, @90))は(1.0049698, @-90)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cot

関連項目

acot(x)、atan2(y,x)、cos(x)、coth(x)、sin(x)、tan(x)、Trig、Default Preferences


coth(x)

xのハイパボリック・コタンジェントを返すオブジェクト。

使用法

coth(x)は、xデータのハイパボリック・コタンジェントを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

coth(0.4)は2.631を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: coth

関連項目

acoth(x)、cot(x)、sinh(x)、tanh(x)


Create Instance(AssemblyName, ClassName)

AssemblyNameおよびClassNameで指定される.NETオブジェクトの新しいインスタンスを作成し、それへの参照を返します。オブジェクトの特定のコンストラクタを呼び出すための追加のパラメータを指定することもできます。

使用法

CreateInstanceは、プログラムに.NETオブジェクトを作成するために使用します。CreateInstance式をユーザが自分で作成する必要はありません。その代わりに、Function & Object Browserを開き、アセンブリ、ネームスペース、クラス・タイプ、適切なコンストラクタを選択し、Create Instanceボタンで式テンプレートを作成します。これにより、入力の手間が省け、間違いを防ぐことができます。

AssemblyNameは、.NETアセンブリ参照ダイアログ・ボックスですでに参照しているアセンブリの名前です。ClassNameはネームスペースで修飾されたクラスの名前です。

CreateInstanceは、オブジェクトの特定のコンストラクタを呼び出すための任意の数の追加のパラメータを取ります。この場合も、Function & Object Browserを使って式テンプレートを選択して作成します。

例

この例では、System.Collections.Hashtableクラスのインスタンスを作成し、それへの参照を返します。

Set hashtable = CreateInstance("mscorlib", "System.Collections.Hashtable");

注記

.NETをサポートするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。

.NETタイプを使用する式を作成するには、その.NETタイプに対するアセンブリ参照をVEEから使用可能にしておく必要があります（Device [image] .NET Assembly References…）。

Function & Object Browserにリストされた.NETタイプの中にはコンストラクタを持たないものもあります。これは正常です。コンストラクタがリストにないタイプの場合、.NETオブジェクトにアクセスするのにCreateInstanceを呼び出す必要はありません。

また、.NETタイプの静的メンバ（ [image] アイコンが付いているもの）を呼び出す場合、CreateInstanceをあらかじめ呼び出す必要はありません。例えば、System.DateTimeの静的プロパティNowを呼び出す場合、オブジェクト・インスタンスを先に構築しておく必要はありません。

場所

Device [image] Function & Object Browser

Type: Built-in Functions

Category:.NET Automation

Member:CreateInstance

関連項目

.NETサンプル・ディレクトリのサンプル・プログラムを参照

.NETサンプル・プログラム


CreateObject(ProgID)

ProgIDで指定されるActiveXオートメーション・オブジェクトの新しいインスタンスを作成し、それへの参照を返します。

ActiveX参照の解放

使用法

CreateObjectは、プログラムにオートメーション・オブジェクトを作成するために使用します。必要な動作を実行させるために、最初の式を変更する必要があります。ほとんどの場合、VEEが制御するサーバ・アプリケーションの新しいインスタンスにオートメーション・オブジェクトの新しいインスタンスを作成します。

オブジェクトのProgIDは、オートメーション・オブジェクトの作成者が割り当てた名前（人間が読める文字列）です。これは通常、ライブラリ名またはアプリケーション名、ピリオド、コンポーネント名またはオブジェクト名からなります。ActiveXオートメーション・サーバに対する有効なProgIDを知るには、サーバに付属するドキュメントを参照してください。

CreateObjectは、オブジェクトをインスタンス化するリモート・ホスト・コンピュータ（サーバ）の名前を指定するオプションの第2パラメータを取ります。この機能を使用するには、クライアントとサーバの両方のコンピュータにDCOMがインストールされている必要があります。構文は次のとおりです。

createObject( ProgID [, hostName ] )

ここで、

hostNameはText型であり、有効なUNCまたはDNSドメイン名で指定できます。有効なhostName指定の例を以下に示します。

Set obj = createObject("lib.obj",
 "server")
Set obj = createObject("lib.obj", "\\\\server")
Set obj = createObject("lib.obj", "server.domain.com")
Set obj = createObject("lib.obj", "135.5.33.19")

例

この例は、Microsoft Excelの新しいインスタンスを起動し（Excelがすでに動作していた場合でも）、新しいWorksheetオブジェクトへの参照を返します。

SET excel = CreateObject ("Excel.Sheet")

ActiveX参照の解放

VEEプログラムでオートメーション・サーバ（Excelなど）を使用する場合、プログラムが終了してもExcel（またはその他のアプリケーション）が終了しない場合があります。VEEのすべてのActiveX参照は、VEEが終了するとき、またはユーザがFile [image] New動作を実行したときに解放されます。プログラムの終了時にもActiveX参照を解放したい場合には、プログラムでいくつかの動作を実行する必要があります。以下に示すのは、オブジェクトが削除されるかVEEプログラムが終了したときに、インスタンス化されたオートメーション・サーバを終了させる方法です。

Default PreferencesでDisable Debug Featuresを選択します。デバッグをオンにしておくと、VEEはライン・プローブで使用するためにデータとポインタの参照を保持します（デバッグおよびライン・プローブと、プログラム終了時にActiveXサーバを解放することのどちらが重要かを決める必要があります）。

プログラムが終了する前に、宣言されたものもされないものも含めてすべてのVEE変数を削除します。ヒント:Delete VariableオブジェクトでAll Variablesを選択します。

Excelスプレッドシートを変更した場合、Excelは「変更を保存しますか?」と尋ねてきます。このような場合、VEEがExcelへの参照をすべて解放しても、Excelは応答を受け取るまで終了しません。この状況を回避する方法の1つは、ExcelでQuit()メソッドを呼び出すことです。

もう1つの方法は、ActiveX関数をすべて独立したVEEライブラリに入れることです。その後、Import Libraryを使ってこれらの関数をロードし、不要になったらDelete Libraryを使ってActiveX参照をすべて解放します。例えば、すべてのExcel操作をVEEのUserFunctionsとして作成し、&ldquo;ExcelFuncs.vee.&rdquo;という名前のライブラリ・ファイルに保存します。メイン・プログラムでExcelスプレッドシートにアクセスしたい場合、ExcelFuncs.veeに対してImport Libraryを実行し、適切なUserFunctionを呼び出してスプレッドシートの操作と保存を実行した後、ExcelFuncs.veeに対してDelete Libraryを実行します。この時点で、Excelオートメーション・サーバへのすべての参照は削除され、Excelは終了します。

この方法では、UserFunctionの独立したライブラリを作成して管理するための手間が余計にかかります。一方、デバッグとライン・プローブをオンにしたままExcelをプログラムから終了できるという利点があります。すでに述べたように、Delete Libraryを呼び出す前にも、スプレッドシートの変更を保存するか、ExcelのQuit()を呼び出す必要があります。

注記

ActiveXをサポートするには、VEEがVEE 5以上の実行モードに設定されている必要があります（Default Preferences）。

アプリケーションを制御する式を作成するには、そのActiveXアプリケーションに対するタイプ・ライブラリをVEEから使用可能にしておく必要があります（Device [image] ActiveX Automation References…）。

VEEでは、リモート・コンピュータ上でオブジェクトをインスタンス化するために使用されるセキュリティ設定に関するプログラム的な制御は用意されていません。これは、DCOMに含まれるdcomcnfg.exeプログラムを使って静的に実行できます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: ActiveX Automation
Member: CreateObject

関連項目

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
Help [image] Open Example…

ActiveX Automation References、Default Preferences、GetObject


cubert(x)

xの値の3乗根を返すオブジェクト。

使用法

cubert(x)は、数値xの3乗根を得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplexに対しては、cubert(x)は大きさの3乗根と位相の3分の1として定義されます。Complexは関数が適用される前にPComplexに変換されます。

例

cubert( (8, @90) )は(2, @30)を返します。

cubert( (1,1) )は(1.08, 0.291)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: cubert

関連項目

a ^ b（指数）、Power、sq(x)、sqrt(x)


Data Filtering

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Data Filteringは、データにフィルタリング・アルゴリズムを適用してスムージングするために使用します。

polySmooth(x)

meanSmooth(x,numPts)

movingAvg(x,numPts)

clipUpper(x,a)

clipLower(x,a)

minIndex(x)

maxIndex(x)

minX(x)

maxX(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Data Filtering

関連項目

polySmooth (x)、meanSmooth (x,numPts)、movingAvg (x,numPts)、clipUpper (x,a)、clipLower (x,a)、minIndex(x)、maxIndex(x)、minX(x)、maxX(x)、Regression、Signal Processing


defIntegral (x,a,b)

入力データのうち、点aとb（両端を含む）の間にある値の積分を、シンプソンの1/3法則を使って計算するオブジェクト。

使用法

defIntegral(x,a,b)は、順序付きの等間隔の値の集合（x）の積分を、点aとbの間の区間で数値近似により計算するために使用します。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Waveform | Real64

例

defIntegral([ 0, 1, 2, 3, 4, 4, 3, 2, 1, 0 ], 2, 5)は10.12を返します。

注記

defIntegral(x,a,b)関数は、単純な数値の1次元配列と、等間隔の順序付きデータを表す2次元（2フィールド）座標のリストに適用できます。マッピングされていない配列の場合、値aとbは配列(0 to N-1)のインデックスを表します。座標リストの場合、値aとbは座標リストの最初と最後の点（両端を含む）のx値の間の実数値を表します。マッピングされた配列の場合、値aとbは、XminマッピングとXmax-dx（両端を含む）の間の実数値を表します。ここで、dxは連続する点の間の間隔(Xmax-Xmin)/Nです。

マッピングされていない配列の場合、データは等間隔に配置された順序付きデータであると仮定されます。点の間隔dxは1であると仮定されます。マッピングされた配列の場合、演算は間隔値dxを(Xmax-Xmin)/Nとして実行されるので、自動的に適切なスケールが使用されます。座標リストの場合、最初に独立値（1つめのフィールド）がチェックされ、正しい順序で等間隔に並んでいることが確認されます。次に、先に求められた間隔をdxの値として従属値（2つめのフィールド）に対して演算が実行されます。

マッピングされていない配列で、点の間隔がある値dxであることがわかっている場合、正しい演算結果を求めるには、defIntegral(x,a,b)の結果に既知のdx値を乗じます。

値が雑音のあるデータを表す場合、defIntegral(x)の結果は、あらかじめデータのフィルタリングまたはスムージングを行うことで改善（実用的な意味で）されることがあります。スムージングにより、元々の値に重畳している不要な雑音の多くを取り除くことができます。例については、polySmooth(x)関数および関連するスムージング関数を参照してください。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: defIntegral

関連項目

integral(x)


deriv(x, order)

入力データのすべての値を対象に、order次の導関数をスライディング4次（5点）多項式を使って計算するために用いられるオブジェクト。

使用法

deriv(x,order)は、順序付きの等間隔の値の集合（x）のすべての点を対象に、order次の導関数を数値近似により計算するために使用します。結果は、入力xと同じサイズと種類の配列です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Waveform | Waveform

例

deriv([0, 1, 2, 3, 3, 2, 1, 0], 1)は
[1.25, 0.9167, 1.083, 0.5833, -0.5833, -1.083, -0.9167, -1.25]を返します。

注記

deriv(x,order)関数は、単純な数値の1次元配列と、等間隔の順序付きデータを表す2次元（2フィールド）座標のリストに適用できます。マッピングされた配列の場合、結果の配列のマッピングはxと同じです。座標リストの場合、値aとbは座標リストの最初と最後の点（両端を含む）のx値の間の実数値を表します。マッピングされた配列の場合、値aとbは、XminマッピングとXmax-dx（両端を含む）の間の実数値を表します。ここで、dxは連続する点の間の間隔(Xmax-Xmin)/Nです。

マッピングされていない配列の場合、データは等間隔に配置された順序付きデータであると仮定されます。点の間隔dxは1であると仮定されます。マッピングされた配列の場合、演算は間隔値dxを(Xmax-Xmin)/Nとして実行されるので、自動的に適切なスケールが使用されます。座標リストの場合、最初に独立値（1つめのフィールド）がチェックされ、正しい順序で等間隔に並んでいることが確認されます。次に、先に求められた間隔をdxの値として従属値（2つめのフィールド）に対して演算が実行されます。

マッピングされていない配列で、点の間隔がある値dxであることがわかっている場合、正しい演算結果を求めるには、deriv(x,order)の結果を既知のdx値で除算します。

値が雑音のあるデータを表す場合、deriv(x,order)の結果は、あらかじめデータのフィルタリングまたはスムージングを行うことで改善（実用的な意味で）されることがあります。スムージングにより、元々の値に重畳している不要な雑音の多くを取り除くことができます。例については、polySmooth(x)関数および関連するスムージング関数を参照してください。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: deriv

関連項目

derivAt(x, order,pt)


derivAt(x, order,pt)

入力データの値ptでのorder次の導関数値をスライディング4次（5点）多項式を使って計算するために用いられるオブジェクト。

使用法

derivAt(x,order,pt)は、順序付きの等間隔の値の集合（x）の点ptでのorder次の導関数値を数値近似により計算するために使用します。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Real64

例

derivAt([ 0, 1, 2, 3, 3, 2, 1, 0 ], 1, 3)は0.5833を返します。

注記

derivAt(x,order,pt)関数は、単純な数値（整数、実数、波形）の1次元配列と、等間隔の順序付きデータを表す2次元（2フィールド）座標のリストに適用できます。マッピングされていない配列の場合、値aは配列(0 to N-1)のインデックスを表します。座標リストの場合、値aとbは座標リストの最初と最後の点（両端を含む）のx値の間の実数値を表します。マッピングされた配列の場合、値aとbは、XminマッピングとXmax-dx（両端を含む）の間の実数値を表します。ここで、dxは連続する点の間の間隔(Xmax-Xmin)/Nです。

マッピングされていない配列の場合、データは等間隔に配置された順序付きデータであると仮定されます。点の間隔dxは1であると仮定されます。マッピングされた配列の場合、演算は間隔値dxを(Xmax-Xmin)/Nとして実行されるので、自動的に適切なスケールが使用されます。座標リストの場合、最初に独立値（1つめのフィールド）がチェックされ、正しい順序で等間隔に並んでいることが確認されます。次に、先に求められた間隔をdxの値として従属値（2つめのフィールド）に対して演算が実行されます。

マッピングされていない配列で、点の間隔がある値dxであることがわかっている場合、正しい演算結果を求めるには、derivAt(x,order,pt)の結果を既知のdx値で除算します。

値が雑音のあるデータを表す場合、derivAt(x,order,pt)の結果は、あらかじめデータのフィルタリングまたはスムージングを行うことで改善（実用的な意味で）されることがあります。スムージングにより、元々の値に重畳している不要な雑音の多くを取り除くことができます。例については、polySmooth(x)関数および関連するスムージング関数を参照してください。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: derivAt

関連項目

deriv(x, order)


det(x)

正方行列の行列式を計算するために用いられるオブジェクト。

使用法

det(x)は、正方行列xの行列式を計算するために使用します。x入力の種類は正方行列でなければなりません。正方行列とは、行と列の数が等しい行列です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex、種類はScalar
PComplex | PComplex、種類はScalar

例

xが正方行列[ [1, 2], [3, 4] ]の場合、det(x)は-2を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: det

関連項目

identity(x)、inverse(x)、transpose(x)


dirName()

dirName(str)

ファイル・パス文字列のディレクトリ部分を返すオブジェクト。

使用法

dirName()は、ディレクトリ／ファイル・パスの先頭のディレクトリ情報を分離するために使用します。

たとえば、pathStrが次のパスの場合:

c:\Program Files\Agilent\VEE\examples\apps\chaos.vee

dirName(pathStr)は次の値を返します。

c:\Program Files\Agilent\VEE\examples\apps

スラッシュ（/）とバックスラッシュ／円記号（\）の両方がディレクトリ（フォルダ）名の後の区切り文字として扱われます。pathStr全体が1つの名前である場合は、その名前がファイル名と見なされます。このような場合、dirName()はヌル文字列を返します。

注記

dirName()オブジェクトは実際にはFormulaオブジェクトであり、1つの入力で初期化され、dirName()関数を持ちます。dirName()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: dirName

関連項目

baseName()、Formula


a div b（切り捨て除算）

2つのオペランドの算術除算（切り捨て除算）を実行するオブジェクト。

使用法

a div bは、1つのコンテナが別のコンテナに何回含まれるか、すなわち切り捨て除算の結果を求めます。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。divは従属変数（最後の変数）だけに対して実行されます。

例

スカラと配列のdiv:3.2 DIV [1, 2, 3, 4]は[3, 1, 1, 0]を返します。

配列とスカラのdiv:[1, 2, 3] DIV 2は[0, 1, 1]を返します。

2つのスカラ:12.95 DIV 4は3を返します。

2つのCoordスカラ:coord(1,3) DIV coord(1,5)はcoord(1,0)を返します。

2つのCoordスカラ:coord(1,3) DIV coord(2,5)はエラーを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: DIV

関連項目

a + b（加算）、a / b（除算）、a * b（乗算）、a - b（減算）


a / b（除算）

2つのオペランドの算術除算を実行するオブジェクト。

使用法

a / bは、1つのコンテナの値を別のコンテナの値で除算するために使用します。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。除算は従属変数（最後の変数）だけに対して実行されます。

この除算演算は、行列を含むすべての配列に対して並列除算を実行します。行列除算については、関数matDivide(numer,denom)を参照してください。

例

スカラを配列で除算:3.0 / [1, 2, 3]は[3, 1.5, 1]を返します。

2つの配列:[4, 5, 6] / [1, 2, 3]は[4, 2.5, 2]を返します。

2つのPComplexスカラ:Trig ModeがDegreesに設定されている場合、(1,@90) / (2,@30)は(0.5, @60)を返します。

2つのCoordスカラ:coord(1,3) / coord(1,5)はcoord(1,0.6)を返します。

2つのCoordスカラ:coord(1,3) / coord(2,5)はエラーを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: /

関連項目

a + b（加算）、a div b（切り捨て除算）、matDivide (numer、denom)、a * b（乗算）、a - b（減算）


dmyToDate (d,m,y)

パラメータd、m、yの値を日付に変換して返すオブジェクト。

使用法

dmyToDate(d,m,y)は、日、月、年の値を日付に変換するために使用します。d、m、yは任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

dmyToDate(25, 12, 1991)は62.8293999Gを返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

また、dmyは現代のグレゴリオ暦で指定されます。

d（日）の値は1～31の範囲内です。

m（月）の値は1～12の範囲内です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: dmyToDate

関連項目

hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、month(aDate)、now()、Time & Date、wday(aDate)、year(aDate)


a == b（等しい）

2つのオペランドに対して等しい演算を実行するオブジェクト。

使用法

a == bは、1つのコンテナの値が別のコンテナの値と等しいかどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドに等しい場合、結果の値は1です。そうでない場合は値は0です。

両方のオペランドの型がCoordの場合、すべての独立変数と従属変数が正確に一致する場合に限って、結果が1となります。独立変数が一致しない場合、エラーが返されます。Complex、PComplex、Spectrumコンテナの場合、両方の部分が等しい場合に限って、1が返されます。EnumはTextに変換されて比較されます。

配列の場合、両方のコンテナの対応する値同士がすべて等しい場合に限って、1が返されます。

両方のオペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

例

2つのBooleanスカラ:True == FalseはFalseを返します。

スカラと配列:3.0 == [3, 3, 3]は1を返します。

スカラと配列:3.0 == [3, 1, 3]は0を返します。

2つの配列:[1, 2, 3] == [1, 2, 4]は0を返します。

2つのPComplexスカラ:(1,@90) == (1,@85)は0を返します。

2つのComplexスカラ:(2,3) == (2,4)は0を返します。

2つのComplexスカラ:(2,3) == (2,3)は1を返します。

2つのCoordスカラ:coord(1,3) == coord(1,5)は0を返します。

2つのCoordスカラ:coord(1,3) == coord(2,3)は次のエラーを返します:Values for independent variables must match.

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: ==

関連項目

a ~= b（ほぼ等しい）、a AND b、a > b（大きい）、a >= b（大きいか等しい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b、Comparator、Conditional、If/Then/Else


erf(x)

入力xの誤差関数を計算するために用いられるオブジェクト。

使用法

erf(x)は、xの誤差関数を計算するために使用します。erf関数は次のように定義されます。

(2/SQRT(PI) ) * [ ( e^(-t^2)) * dtの積分 ]

ここで、積分は0からxまでの範囲で計算されます。x入力は任意の種類とサイズです。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

erf(.5)は0.52049987781305を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: erf

関連項目

erfc(x).


erfc(x)

入力xの相補誤差関数を計算するために用いられるオブジェクト。

使用法

erfc(x)は、xの相補誤差関数を計算するために使用します。erfc関数は次のように定義されます。

1-(2/SQRT(PI)) * [( e^(-t^2)) * dtの積分]

ここで、積分は0からxまでの範囲で計算されます。x入力は任意の種類とサイズです。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

erfc(.5)は0.47950012218695を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

erfc(x)は1.0 - erf(x)を返しますが、これが用意されている理由は、erf(x)に大きいxを与えて結果を1.0から減算すると、相対精度の大幅な損失が起きるからです（例えば、x=5では12桁が失われます）。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: erfc

関連項目

erf(x).


errorInfo()

エラー出力ピンでトラップされた最新のエラーに関する情報を提供するオブジェクト。

使用法

errorInfo()は、エラー出力ピン使用時にトラップされた最新のエラーの情報を得るために使用します。エラーがトラップされた後、errorInfo()オブジェクトを実行すると、通常ならエラー・ダイアログ・ボックスに表示されるすべての情報を含むレコードが作成されます。このレコードには以下のフィールドが含まれます。

フィールド名 データ型 説明

Number Int32スカラ エラー番号

Message Textスカラ このエラーに関連するエラー・メッセージ・テキスト

More Text 1次元配列 このエラーに関連する追加情報

Title Textスカラ エラーを発生したオブジェクトのタイトル

Type Textスカラ エラーを発生したオブジェクトの型

注記

errorInfo()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、errorInfo()式を持ちます。errorInfo()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

エラー出力ピンにエラーが出力されていない場合、ErrorInfoが作成するレコードにはデータが含まれません。

errorInfo()がトラップするのは実行時エラーだけです。入力端子が接続されていないなどの実行前エラーはトラップされません。

errorInfo()はトラップされないエラー（エラー・メッセージ・ダイアログ・ボックスが表示されるもの）に関する情報は提供しません。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: errorInfo

関連項目

Error Output（オブジェクト・メニュー）、Formula、Raise Error


exp(x)

xの値の指数を返すオブジェクト。

使用法

exp(x)は、数値xの指数すなわち自然真数（底e）を得るために使用します。すなわち、eのx乗を求めます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

exp(10)は22.0264657948kを返します。

exp((1,2))は(-1.131204384, 2.471726672)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: exp

関連項目

exp10(x)、a ^ b（指数）、log(x)、log10(x)、Power


exp10(x)

xの10を底とする指数を返すオブジェクト。

使用法

exp10(x)は、数値xの常用真数（底10）を得るために使用します。すなわち、10のx乗を求めます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

exp10(10)は10Gを返します。

exp10((1, 2))は(-4.16146837, 9.09297427)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: exp10

関連項目

exp(x)、a ^ b（指数）、log(x)、log10(x)、Power


a ^ b（指数）

2つのオペランドの算術べき乗を実行するオブジェクト。

使用法

a ^ bは、ある数を別の数でべき乗するために使用します。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8 | 2つのオペランドのうち順位の高い方の型。*
UInt16
Int16
Int32
Int64
Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

* 例えば、数値がUInt8でべきがInt32の場合、戻り値型はInt32です。2つの型が逆の場合も同じです。

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。べき乗は従属変数（最後の変数）だけに対して実行されます。

例

スカラを配列でべき乗:3.0 ^ [1, 2, 3]は[3, 9, 27]を返します。

配列をスカラでべき乗:[1, 2, 3] ^ 3は[1, 8, 27]を返します。

2つの配列:[4, 5, 6] ^ [1, 2, 3]は[4, 25, 216]を返します。

2つのComplexスカラ:(2,3) ^ (4,5)は(-0.753046, -0.986429)を返します。

2つのCoordスカラ:coord(4,3) ^ coord(4,2)はcoord(4,9)を返します。

2つのCoordスカラ:coord(1,3) ^ coord(2,5)はエラーを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

VEE 4からVEE 5で動作の変更がありました。VEE 4では、べきは数値の表現方法に関わらず実数と見なされていました。すなわち、-1は実数-1.0として扱われました。VEE 5では、このべきは整数と見なされます。べきが1.と表されていれば、実数と見なされます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: ^

関連項目

exp(x)、log(x)


指数回帰

指数曲線を(x,y)データにフィットさせるために用いられるオブジェクト。

使用法

指数回帰は、データを式y = C0 + exp(C1*x)にフィットさせるために使用します。ここで、xはx座標、C0とC1は計算される係数です。exp関数は、超越数eの(C1*x)によるべき乗です。

指数回帰オブジェクトは、1つの独立変数を持つCoord型、すなわち(x,y)ペアの配列を入力に取ります。入力配列がCoord型でない場合、Coordへの変換が試みられます。入力データがマッピングされている場合（Waveform、Spectrum、またはマッピングされた配列）、Coordへの変換では、マッピング情報を使って(x,y)ペアのx部分が作成されます。入力データがマッピングされていない場合（配列など）、(x,y)ペアのx部分は配列中の位置から暗黙に作成されます。

オープン・ビュー・パラメータ

オープン・ビューのFit Typeフィールドを使って、回帰の種類をlinear、logarithmic、exponential、power curve、polynomial regressionに変更できます。フィールドをクリックすると回帰の種類のリストが表示されます。

例

Coord変換の例については、Regressionを参照してください。

注記

回帰に関する一般的な注記については、Regressionを参照してください。

場所

Device [image] Regression

その後、適切なFit Typeをダイアログ・ボックスのFit Typeフィールドから選択。

関連項目

Regression、線形回帰、対数回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、多項式回帰、polySmooth (x)、べき曲線回帰、Build Coord


factorial(n)

入力数値nの階乗を計算するために用いられるオブジェクト。

使用法

factorial(n)は、自然数nの階乗を計算するために使用します。自然数nの階乗は次のように定義されます: n!= (n) * (n-1) * (n-2) . . . (3) * (2) * (1).

n入力は任意の種類とサイズです。n入力は0より小さくはできません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

factorial(n)演算は整数のオペランドに対してのみ定義されているので、入力の数値は計算の前にInt32型に変換されます。

例

factorial(6)は、6*5*4*3*2*1という乗算の結果として720を返します。

factorial(6.7)は、7*6*5*4*3*2*1という乗算の結果として5040を返します。実数をInt32に変換する規則に従って、6.7は7に変換されます。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: factorial

関連項目

beta(x,y)、binomial(a,b)、comb(n,r)、gamma(x)、perm(n,r)


fft(x)

入力データの離散フーリエ変換を計算するオブジェクト。

使用法

fft(x)は、xの値の離散フーリエ変換を計算するために使用します。結果は変換された値の正の半分を表します。結果の配列のサイズは(N DIV 2)+1となります。ここで、Nは入力配列のサイズです。

可能な入力型 戻り値型

UInt8 | Complex Array
UInt16 | Complex Array
Int16 | Complex Array
Int32 | Complex Array
Int64 | Complex Array
Real32 | Complex Array
Real64 | Complex Array
Waveform | Waveform

入力xは順序付きの等間隔のデータの配列を表す必要があります。Waveform以外の入力の場合、出力はComplex値のマッピングされない配列となります。Waveform入力の場合、出力は最小周波数0から最大周波数(1+(N DIV 2))/(Tmax-Tmin)までマッピングされます。ここで、Nは入力配列のサイズ、TminとTmaxは入力Waveformのマッピングです。また、出力は正規化されません。

例

fft([0, 1, 2, 3, 4, 5, 6, 7])

は[(28,0), (-4,9.657), (-4,4), (-4,1.657), (-4,0)] を返します。

注記

切捨てと周期性:離散フーリエ変換を使用する際の基本的な仮定として、与えられた波形h(t)が周期的であるということがあります。これが成立しない場合、波形を切り捨てて周期関数で表す必要があります。帯域制限された周期関数h(t)に対して、波形は周期の整数倍で切り捨てる必要があります。そうしないと、結果の離散および連続フーリエ変換は大きく異なり、サイドローブ、周波数漏れ、鋭い不連続部が出現する可能性があります。このような問題は、ウィンドウを使用することで軽減できる場合があります。波形が帯域制限されていない場合、一般的に、切捨て間隔を調整（延長）し、ウィンドウ[0,L]を使ってタイム・ドメインの切捨て誤差を減らす必要があります。Lは波形の周期と定義されます。

エリアジング:エリアジング（周波数折り返し）の問題が発生するのは、サンプル間隔Tが大きすぎる場合です。サンプリング・レートがナイキスト・サンプリング・レートに近い場合、離散フーリエ変換の性能が低下することが予想されます。波形が周期的でないか、帯域制限されていない場合、切捨て間隔[0,L]を延長し、サンプリング間隔Tを短縮することにより、切捨て誤差とエリアジングをコントロールできる可能性があります。

FFTに関しては次の書籍を参考にしてください:E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988. ISBN #0-13-307505-2.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: fft

関連項目

convolve(a,b)、ifft(x)


floor(x)

xの値を最も近い下の整数に丸めて返すオブジェクト。

使用法

xは任意の種類です。floor(x)関数は、x以下の最も大きい整数を（同じ型で）返します。すなわち、xの値をすぐ下の整数（負方向に最も近い整数）に丸めたものを返します。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

floor([23.0, 23.1, 23.9, 23.5, (-23.5)])は[23, 23, 23, 23, -24]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: floor

関連項目

abs(x)、ceil(x)、Complex Parts、fracPart(x)、intPart(x)、Real Parts、round(x)


fracPart(x)

xの小数部の値を返すオブジェクト。

使用法

fracPart(x)は、コンテナ中の数値の小数部を得るために使用します。xの種類は任意です。fracPart(x)関数は、xの小数部を同じ符号で返します。返される値はx - intPart(x)です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

fracPart([23.0, 23.1, 23.9, 23.5, (-23.5)])は[0, 0.1, 0.9, 0.5, -0.5]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: fracPart

関連項目

abs(x)、ceil(x)、Complex Parts、floor(x)、intPart(x)、Real Parts、round(x)


Freq Distribution

Function & Object BrowserのProbability & StatisticsのCategoryのBuilt-in Functionsの一部。

使用法

Freq Distributionの関数群は、ある範囲内の値の分布を一定の数のサブ範囲に分割して計算するために使用します。これらの関数のNameは次のとおりです。

magDist(x,from,thru,step)

logMagDist(x,from,thru,logStep)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Probability & Statistics

関連項目

Function & Object Browser、logMagDist (x,from,thru, logStep)、magDist(x, from,thru, step)


gamma(x)

入力xのガンマ関数を計算するために用いられるオブジェクト。

使用法

gamma(x)は、xのガンマ関数を計算するために使用します。ガンマ関数は次のように定義されます。

([ t^(x-1) * e^(-t) * dt ]の積分)

ここで、積分は0から無限大までの範囲で計算されます。x入力は任意の種類です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

gamma(8)は(8-1)! = 5040を返します。

gamma(-1)はエラーを返します。

gamma(3.7)は= 4.17065178379660を返します。

gamma(-3.7)は= 0.251643995902422を返します。

注記

gamma(x)関数は、正でない整数値xに対しては定義されていません。xが正の整数の場合、gamma(x)は(x-1)!（階乗）と定義されます。

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: gamma

関連項目

beta(x,y)、comb(n,r)、factorial(n)、perm(n,r)


Generate

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Generateは、特定の値を持つデータのReal64 1次元配列を作成する次のオブジェクトにアクセスするために使用します。

ramp(numElem,from,thru)

logRamp(numElem,from,thru)

xramp(numElem,from,thru)

xlogRamp(numElem,from,thru)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Generate

関連項目

logRamp (numElem, from,thru)、ramp (numElem, from,thru)、xlogRamp (numElem, from,thru)、xramp (numElem, from,thru)


getEnv(envStr)

VEEのシステム情報Built-in Functionsの一部で、環境変数にアクセスするために使用します。

使用法

getEnvは、VEEで環境変数にアクセスするために使用します。この関数を選択すると、getEnv(envStr)オブジェクトが作成されます。(envStr)は、検索する環境変数の名前を表す文字列（Textオブジェクト）です。検索する環境変数の名前の文字列を括弧の中に入力します。

getEnv(envStr)オブジェクトが実行されると、Textオブジェクトで指定された環境変数の値が返されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: getEnv

関連項目

errorInfo()、getHostname()、installDir()、whichOS()、whichVersion()


getHostname()

VEEのシステム情報Built-in Functionsの一部で、VEEが実行されているホスト・コンピュータの名前を取得するために使用します。

使用法

getHostname()は、VEEプログラムが実行されているホスト・コンピュータの名前を知るために使用します。getHostname関数を選択すると、getHostname()オブジェクトが作成されます。このオブジェクトはパラメータを必要とせず、実行されるとホスト・コンピュータの名前を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: getHostname

関連項目

errorInfo()、getEnv(envStr)、installDir()、whichOS()、whichVersion().


GetObject

GetObject(fileName, ProgID)

ProgIDで指定されたオブジェクトを使用して、fileNameに保存されたActiveXオートメーション・オブジェクトをロードし、それへの参照を返します。

使用法

GetObjectは、実行中のアプリケーションにすでに存在するActiveXオートメーション・オブジェクトを取得したり、既存のオブジェクトをファイルからロードしたりするために使用します。オブジェクトがすでに存在するのは、CreateObject関数を使った式で作成された場合や、VEEプログラム外部でオブジェクトの作成が行われた場合です。必要な動作を実行させるために、最初の式を変更する必要があります。

オブジェクトのProgIDは、オートメーション・オブジェクトの作成者が割り当てた名前（人間が読める文字列）です。これは通常、ライブラリ名またはアプリケーション名、ピリオド、コンポーネント名またはオブジェクト名からなります。ActiveXオートメーション・サーバに対する有効なProgIDを知るには、サーバに付属するドキュメントを参照してください。ProgIDパラメータはオプションです。ProgIDを省略した場合、VEEはCOM（Component Object Model）ライブラリを使って、ファイルに関連付けられているアプリケーションを調べます。

例

次の例は、現在実行中のMicrosoft ExcelアプリケーションのApplicationオブジェクトに対する参照を返します。Excelが実行中でない場合、この式はエラーを発生します。

SET excel = GetObject ("","Excel.Application")

次の例は、既存のオブジェクトをファイルからロードします。現在実行中のExcelアプリケーションでd:\tmp\TestData.xlsに関連付けられているSheetオブジェクトへの参照を返します。Excelが実行中でない場合、オブジェクトのロードの前にExcelが起動されます。

SET excel = GetObject ("d:\\tmp\\TestData.xls","Excel.Sheet")

注記

ActiveXをサポートするには、VEEがVEE5以上の実行モードに設定されている必要があります（Default Preferences）。

アプリケーションを制御する式を作成するには、そのActiveXアプリケーションに対するオートメーション・タイプ・ライブラリをVEEから使用可能にしておく必要があります（Device [image] ActiveX Automation References…）。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: ActiveX Automation
Member: GetObject

関連項目

ActiveXサンプル・ディレクトリにあるサンプル・プログラムを参照してください。
Help [image] Open Example…

ActiveX Automation References、Default Preferences、CreateObject


a > b（大きい）

2つのオペランドに対して大きい演算を実行するオブジェクト。

使用法

a > bは、1つのコンテナの値が別のコンテナの値より大きいかどうかを判定するために使用します。2つのコンテナは任意の種類です。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドより大きい場合、結果の値は1です。そうでない場合は値は0です。

両方のオペランドの型がCoordの場合、演算が実行されるためには、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。EnumはTextに変換されて比較されます。TextはASCII辞書順で比較されます。

2つの配列を比較する場合、対応する各要素同士が関係演算子を満たした場合に、演算は1を返します。

例

スカラと配列:3.0 > [1, 3, 9]は0を返します。

配列とスカラ:[5, 9, 7] > 4は1を返します。

2つの配列:[3, 4, 7] > [2, 3, 5]は1を返します。

2つの配列:[3, 4, 3] > [2, 3, 5]は0を返します。

2つのCoordスカラ:coord(1,3) > coord(1,5)は0を返します。

2つのCoordスカラ:coord(1,3) > coord(2,5)はValues for independent variables must matchを返します。

2つのTextスカラ:"too" > "zoo"は0を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: >

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a >= b（大きいか等しい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b、Comparator、Conditional、If/Then/Else


a >= b（大きいか等しい）

2つのオペランドに対して大きいか等しい演算を実行するオブジェクト。

使用法

a >= bは、1つのコンテナの値が別のコンテナの値より大きいか等しいかどうかを判定するために使用します。2つのコンテナは任意の種類です。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドより大きいか等しい場合、結果の値は1です。そうでない場合は値は0です。

両方のオペランドの型がCoordの場合、演算が実行されるためには、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。EnumはTextに変換されて比較されます。TextはASCII辞書順で比較されます。

2つの配列が相互にマッピングされている場合、対応する各要素同士が関係演算子を満たした場合に、演算は1を返します。

例

スカラと配列:3.0 >= [1, 3, 9]は0を返します。

配列とスカラ:[4, 5, 6] >= 4は1を返します。

2つの配列:[3, 3, 6] >= [2, 3, 5]は1を返します。

2つの配列:[1, 4, 3] >= [2, 3, 5]は0を返します。

2つのCoordスカラ:coord(1,3) >= coord(1,5)は0を返します。

2つのCoordスカラ:coord(1,3) >= coord(2,5)はValues for independent variables must matchを返します。

2つのTextスカラ:"too" >= "zoo"は0を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: >=

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a > b（大きい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b、Comparator、Conditional、If/Then/Else


hamming(x)

値の時系列にハミング・ウィンドウを適用するために用いられるオブジェクト。

使用法

hamming(x)を使うと、xとハミング関数のスペクトラム変換とのコンボリューションを取るのと同じ方法で、x中の値をフィルタできます。これにより、周期的信号をサンプリングする際に、入力シーケンスのテールから生じるノイズの一部と、それらから生じる可能性がある不連続性を抑制する効果があります。

入力xはArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

xがSpectrumの場合、まずifft(x)を使ってWaveformに変換されてから、ウィンドウが適用されます。ウィンドウの結果は、fft(x)を使ってSpectrum型に戻されます。

例

hamming([1, 1, 1, 1, 1, 1, 1, 1])は
[0.115, 0.364, 0.716, 0.965, 0.965, 0.716, 0.364, 0.115]を返します。

注記

Hammingはタイム・ドメインでは次のように表されます。

0.54-0.46*cos(2*PI*(n+0.5)/N)

ここで、nは配列中の位置（インデックス）、Nは配列のサイズです。結果はxと同じ型の配列であり、xにマッピングがある場合は同じマッピングを持ちます。

サイドローブ・レベルとコヒーレント利得に関する説明については、次の書籍を参考にしてください:Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: hamming

関連項目

bartlet(x)、blackman(x)、convolve(a,b)、fft(x)、hanning(x)、ifft(x)、rect(x)


hanning(x)

値の時系列にハニング・ウィンドウを適用するために用いられるオブジェクト。

使用法

hanning(x)を使うと、xとハニング関数のスペクトラム変換とのコンボリューションを取るのと同じ方法で、x中の値をフィルタできます。これにより、周期的信号をサンプリングする際に、入力シーケンスのテールから生じるノイズの一部と、それらから生じる可能性がある不連続性を抑制する効果があります。

入力xはArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

xがSpectrumの場合、まずifft(x)を使ってWaveformに変換されてから、ウィンドウが適用されます。ウィンドウの結果は、fft(x)を使ってSpectrum型に戻されます。

例

hanning([1, 1, 1, 1, 1, 1, 1, 1])は
[0.038, 0.309, 0.691, 0.962, 0.962, 0.691, 0.309, 0.038]を返します。

注記

Hanningはタイム・ドメインでは次のように表されます。

0.5*(1-cos(2*PI*(n+0.5)/N))

ここで、nは配列中の位置（インデックス）、Nは配列のサイズです。結果はxと同じ型の配列であり、xにマッピングがある場合は同じマッピングを持ちます。

サイドローブ・レベルとコヒーレント利得に関する説明については、次の書籍を参考にしてください:Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: hanning

関連項目

bartlet(x)、blackman(x)、convolve(a,b)、fft(x)、hamming(x)、ifft(x)、rect(x)


help(topic,filename)

VEEのシステム情報Built-in Functionsの一部で、カスタム・ヘルプ項目にリンクするために使用します。

使用法

helpオブジェクトを使って、カスタムhelp項目ファイルをリンクできます。構文は次のとおりです。

help(topic,filename)

topic - リンクしたいhelp項目の名前。

filename - help項目情報を含むファイルの名前。

VEEプログラムが起動し、このオブジェクトが実行された場合、helpシステムは指定されたtopicに関連するfilenameを開きます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: help

関連項目

installDir()


hidePanel()

showPanel()で表示されたUserFunctionを非表示にするオブジェクト。

使用法

hidePanel()は、showPanel()で表示されたUserFunctionパネルの表示をやめるために使用します。

オープン・ビュー

hidePanel()というテキストを使用する必要があります。括弧の中には次のパラメータを入力します。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

hidePanel()オブジェクトにデータ入力ピンを追加してUserFunction名を設定することもできますが、この場合"UFname"を入力端子名に置き換える必要があります。

注記

hidePanel()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、hidePanel("UFname")式を持ちます。hidePanel()（および対応するパラメータ）を他の任意のFormulaオブジェクトに入力することもできます。

hidePanel()式全体を制御ピンから入力することもできます。

プログラムの実行が停止すると、すべてのパネルが非表示になります。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Panel
Member: hidePanel

関連項目

Call、lockPosition()、showPanel()、panelPosition()、panelSize()、unlockPosition()、UserFunction


hmsToHour (h,m,s)

パラメータh、m、sの値を時間に変換して返すオブジェクト。

使用法

hmsToHour(h,m,s)は、時、分、秒の値を時間に変換するために使用します。h、m、sは任意の種類です。コンテナの1つが配列の場合、他のコンテナはスカラまたはサイズと種類が一致する配列でなければなりません。結果のコンテナは、オペランドと同じ種類になります。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

hmsToHour(1, [0, 12, 60], 36)は[1.01, 1.21, 2.01]を返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: hmsToHour

関連項目

dmyToDate (d,m,y)、hmsToSec (h,m,s)、mday(aDate)、month(aDate)、now()、Time & Date、wday(aDate)、year(aDate)


hmsToSec (h,m,s)

パラメータh、m、sの値を秒に変換して返すオブジェクト。

使用法

hmsToSec(h,m,s)は、時、分、秒の値を秒に変換するために使用します。h、m、sは任意の種類です。コンテナの1つが配列の場合、他のコンテナはスカラまたはサイズと種類が一致する配列でなければなりません。結果のコンテナは、オペランドと同じ種類になります。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

hmsToSec(1,[2, 4, 6],3)は[3723, 3843, 3963]を返します。

注記

入力パラメータのいずれかがマッピングされている場合、マッピングは一致する必要があります。結果のコンテナは入力コンテナのマッピングを保持します。2つの入力の一方だけがマッピングされている場合、結果のコンテナは同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: hmsToSec

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、mday(aDate)、month(aDate)、now()、Time & Date、wday(aDate)、year(aDate)


Hyper Bessel

Besselのヘルプ項目を参照してください。


Hyper Trig

Trigのヘルプ項目を参照してください。


i0(x)

xの第1種の0次変形（ハイパーボリック）ベッセル関数を計算するために用いられるオブジェクト。

使用法

i0(x)は、xの第1種の0次変形（ハイパーボリック）ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

i0(1)は1.26606587775200を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: i0

関連項目

i1(x)、k0(x)、k1(x)


i1(x)

xの第1種の1次変形（ハイパーボリック）ベッセル関数を計算するために用いられるオブジェクト。

使用法

i1(x)は、xの第1種の1次変形（ハイパーボリック）ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

i1(1)は0.565159103992485を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: i1

関連項目

i0(x)、k0(x)、k1(x)


identity(x)

単位行列を返すために用いられるオブジェクト。

使用法

identity(x)は、入力正方行列と同じサイズの単位行列を返すために使用します。x入力は正方行列でなければなりません。正方行列とは、行と列の数が等しい行列です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex
PComplex | PComplex

例

xが正方行列[ [1, 2], [3, 4] ]の場合、identity(x)は
[ [1, 0], [0, 1] ]を返します。

xが複素正方行列[ [(1,1), (2,2)], [(3,3), (4,4)] ]の場合、identity(x)は[ [(1,0), (0,0)], [(0,0), (1,0)] ]を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: identity

関連項目

det(x)、inverse(x)、transpose(x)


ifft(x)

入力データの逆離散フーリエ変換を計算するオブジェクト。

使用法

ifft(x)は、xの値の逆離散フーリエ変換を計算するために使用します。xは、対称的なComplex、PComplex、Spectralシーケンスの正の半分です。

可能な入力型 | 戻り値型
Complex | Real64
PComplex | Real64
Spectrum | Waveform

結果の配列のサイズは、入力配列の作成に用いられた情報によって異なります。fft(x)で説明したように、256ポイントと257ポイントの配列に対するfftの結果は、それぞれ129ポイントの配列になります。それぞれの配列の情報は、ポイント数の違いに応じてわずかに異なります。これらの129ポイントの配列に対してifft(x)を使用すると、元の256ポイントおよび257ポイントの配列が得られます。Spectrum以外の入力の場合、出力はReal値のマッピングされない配列となります。Spectrumの入力の場合、マッピングはリニア（対数は不可）で、Fminは0でなければなりません。出力は、最小時間0から最大時間N/(Fmax-Fmin)までマッピングされます。ここで、Nは入力配列のサイズ、FminとFmaxは入力Spectrumのマッピングです。また、出力は正規化されません。

xの値は正規化されていない値を表すと仮定されます。

例

ifft([(3.5,0), (-1,2.414), (-1,1), (-1,0.414), (-1,0)])は
[0, 1, 2, 3, 4, 5, 6, 7]を返します。

注記

1. 切捨てと周期性:離散フーリエ変換を使用する際の基本的な仮定として、与えられた波形h(t)が周期的であるということがあります。これが成立しない場合、波形を切り捨てて周期関数で表す必要があります。帯域制限された周期関数h(t)に対して、波形は周期の整数倍で切り捨てる必要があります。そうしないと、結果の離散および連続フーリエ変換は大きく異なり、サイドローブ、周波数漏れ、鋭い不連続部が出現する可能性があります。このような問題は、ウィンドウを使用することで軽減できる場合があります。波形が帯域制限されていない場合、一般的に、切捨て間隔を延長し、ウィンドウ[0,L]を使ってタイム・ドメインの切捨て誤差を減らす必要があります。Lは波形の周期と定義されます。

2. エリアジング:エリアジング（周波数折り返し）の問題が発生するのは、選択されたサンプル間隔Tが大きすぎる場合です。サンプリング・レートがナイキスト・サンプリング・レートに近い場合、離散フーリエ変換の性能が低下することが予想されます。波形が周期的でないか、帯域制限されていない場合、切捨て間隔[0,L]を延長し、サンプリング間隔Tを短縮することにより、切捨て誤差とエリアジングをコントロールできる可能性があります。

ifftに関しては次の書籍を参考にしてください:E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988. ISBN #0-13-307505-2.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: ifft

関連項目

fft(x)


im(x)

Complex数xの虚数部を返すオブジェクト。

使用法

im(x)は、Complex数xの虚数部を抽出するために使用します。xは任意の種類です（PComplexは先にComplexに変換されます）。

可能な入力型 戻り値型

UInt8 | UInt8、値0
UInt16 | UInt16、値0
Int16 | Int16、値0
Int32 | Int32、値0
Int64 | Int64、値0
Real32 | Real32、値0
Real64 | Real64、値0
Coord | Coord、値0
Waveform | Waveform、値0
Complex | Real64、虚数部の値
PComplex | Real64、虚数部の値
Spectrum | Real64、虚数部の値

例

im( (1,2) )は2を返します。

Trig ModeがDegreesの場合、im( (1,@90) )は1を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: im

関連項目

conj(x)、j(x)、mag(x)、phase(x)、re(x)、Real Parts、Build Complex、UnBuild Complex


inDaylightSavings()

コンピュータの時刻が夏時間かどうかを判定するオブジェクト。

使用法

inDaylightSavings()は、コンピュータが夏時間と標準時間のどちらで動作しているかを判定するために使用します。現在のコンピュータ時刻が標準時間の場合は0を返します。現在のコンピュータ時刻が夏時間の場合は0でない値を返します。

注記

inDaylightSavings()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、inDaylightSavings()式を持ちます。inDaylightSavings()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: inDaylightSavings

関連項目

now、Formula


init(x,val)

配列を特定の値に初期化するために用いられるオブジェクト。

使用法

init(x,val)は、入力配列xを値valに初期化するために使用します。x入力は任意のサイズと種類で、任意の型です。すべてのx入力型に対して、同じ出力型が返されます（ただし、Error出力はTextを返します）。2番目のvalパラメータは、x入力値と同じ型か、同じ型に変換可能なものでなければなりません。

入力xが配列の場合、val初期値パラメータはScalar値または配列です。valが配列の場合、次元数がx入力と一致する必要があります。すなわち、xがArray 1Dの場合、valはScalarまたは同じサイズのArray 1Dです。Recordの場合、xとvalのスキーマが一致する必要があります。

例

init(a,5)は入力配列を値5に初期化します。

init(a,[1, 2, 3])は、3要素の入力配列を値[1, 2, 3]に初期化します。

注記

初期値は、入力配列と同じ型か、同じ型に変換可能なものでなければなりません。例えば、実数配列を複素数の初期値で初期化することはできません。複素数を実数に変換することはできないからです。

出力コンテナのマッピングは、入力valと同じになります。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Array
Member: init

関連項目

ramp (numElem, from,thru)、randomize (x,low,high)、Allocate Array


installDir()

Agilent VEEがインストールされているディレクトリ・パスを返すオブジェクト。

使用法

installDir()は、コンピュータ上でAgilent VEEがインストールされているディレクトリを知るために使用します。パスはPCのレジストリから読み取られます。

注記

コマンド・ライン・オプション-d <dirname>を使って、インストール・ディレクトリと異なる起動ディレクトリを指定できます。-dオプションを使用した場合、installDir()はコマンド・ラインで指定された起動ディレクトリを返します。

installDir()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、installDir()式を持ちます。installDir()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: installDir

関連項目

errorInfo()、getEnv(envStr)、getHostname()、whichVersion()、commandLine()


integral(x)

入力データのすべての値の積分を、シンプソンの1/3法則を使って計算するオブジェクト。

使用法

integral(x)は、順序付きの等間隔の値の集合（x）の不定積分の数値近似を計算するために使用します。

可能な入力型 戻り値型

UInt8 | Real64（マッピングがある場合は同じマッピング）
UInt16 | Real64（マッピングがある場合は同じマッピング）
Int16 | Real64（マッピングがある場合は同じマッピング）
Int32 | Real64（マッピングがある場合は同じマッピング）
Int64 | Real64（マッピングがある場合は同じマッピング）
Real32 | Real64（マッピングがある場合は同じマッピング）
Real64 | Real64（マッピングがある場合は同じマッピング）
Coord | Coord
Waveform | Waveform

例

integral([ 0, 1, 2, 3, 3, 2, 1, 0 ])は
[ 0, 0.5, 2, 4.5, 7.667, 10.17, 11.67, 12.17 ]を返します。

注記

integral(x)関数は、単純な数値の1次元配列と、等間隔の順序付きデータを表す2次元（2フィールド）座標のリストに適用できます。マッピングされた配列の場合、結果の配列のマッピングはxと同じです。座標リストの場合、各座標の独立フィールド（最初のフィールド）の値は、xの対応する値と等しくなります。

マッピングされていない配列の場合、データは等間隔に配置された順序付きデータであると仮定されます。点の間隔dxは1であると仮定されます。マッピングされた配列の場合、演算は間隔値dxを(Xmax-Xmin)/Nとして実行されるので、自動的に適切なスケールが使用されます。座標リストの場合、最初に独立値（1つめのフィールド）がチェックされ、正しい順序で等間隔に並んでいることが確認されます。次に、先に求められた間隔をdxの値として従属値（2つめのフィールド）に対して演算が実行されます。

マッピングされていない配列で、点の間隔がある値dxであることがわかっている場合、正しい演算結果を求めるには、integral(x)の結果に既知のdx値を乗じます。

値が雑音のあるデータを表す場合、integral(x)の結果は、あらかじめデータのフィルタリングまたはスムージングを行うことで改善（実用的な意味で）されることがあります。スムージングにより、元々の値に重畳している不要な雑音の多くを取り除くことができます。例については、polySmooth(x)関数および関連するスムージング関数を参照してください。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: integral

関連項目

defIntegral (x,a,b)


intPart(x)

xの整数部の値を返すオブジェクト。

使用法

intPart(x)は、コンテナ中の数値の整数部を得るために使用します。xの種類は任意です。intPart(x)関数は、データの整数部分を返します。データが0より小さい場合はceil(x)、それ以外の場合はfloor(x)が返されます。結果はxと同じマッピングを持ちます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

intPart([23.0, 23.1, 23.9, 23.5,(-23.5)])は
[23, 23, 23, 23, -23]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: intPart

関連項目

abs(x)、ceil(x)、Complex Parts、floor(x)、fracPart(x)、Real Parts、round(x)


intToChar(a)

数値入力をASCII文字に変換するオブジェクト。

使用法

intToChar(a)は、数値入力をASCII文字に変換するために使用します。このオブジェクトは、入力をまず長整数に変換し、それを文字に変換します。

注記

文字に変換される値の範囲は0～255です。この範囲外の入力の場合、32ビット整数入力の最下位バイトだけが変換されます。上位3バイトは無視されます。

VEEはCおよびC++と同じテキスト（文字列）を使用するので、intToChar(0)はNULまたは空文字列と同じです。NULは文字列の終端文字です。例えば、文字列123NUL456は文字列123を生成します。文字列の残りの456は無視されます。

例

intToChar(65)はAを返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: IntToChar

関連項目

charToInt(a)、String


inverse(x)

正方行列の逆行列を計算するために用いられるオブジェクト。

使用法

inverse(x)は、正方行列xの逆行列を計算するために使用します。x入力の種類は正方行列（行と列の数が同じ）でなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex
PComplex | PComplex

例

Where xが正方行列[ [1, 2], [3, 4] ]の場合、inverse(x)は
[ [-2, 1], [1.5, -0.5] ]を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: inverse

関連項目

det(x)、identity(x)、transpose(x)


isVariant(x)

"x"がActiveXのVariantから作成されたかどうかを判定します。

使用法

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariant(A)は正しく動作しますが、isVariant(A[0])は動作しません。

ActiveXデータは、Variant型として宣言した後、特定の型のデータを代入できます。isVariant関数は、変数がVariantとして宣言されているかどうかを調べます。typeName関数は、現在Variantに代入されているデータ型を返します。

例

someMethod (ByRef x);

isVar = isVariant (x);

isVar変数には、"x"がVariant型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariant

関連項目

isVariantBool(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantError(x)、isVariantNull(x)、typeName(x)


isVariantBool(x)

"x"がActiveXの論理値型のVariantから作成されたかどうかを判定します。

使用法

ActiveXオートメーションの論理値データ型（VT_BOOL）がVEEに返される場合、実際にはVT_BOOL型であるという「ヒント」の付いたInt16コンテナになります。コンテナを調べることにより、実際にはInt16なのか論理値型なのかを判定できます。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantBool(A)は正しく動作しますが、isVariantBool(A[0])は動作しません。戻り値はInt16であり、0が偽、0以外が真を表します。

例

someMethod (ByRef x);

isBool = isVariantBool (x);

isBool変数には、"x"がVT_BOOL型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantBool

関連項目

isVariant(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantError(x)、isVariantNull(x)、typeName(x)


isVariantCurrency(x)

"x"がActiveXの通貨型のVariantから作成されたかどうかを判定します。

使用法

ActiveXオートメーションの通貨データ型（VT_CY）がVEEに返される場合、実際にはVT_CY型であるという「ヒント」の付いたReal64コンテナになります。コンテナを調べることにより、実際にはReal64なのか通貨型なのかを判定できます。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantCurrency(A)は正しく動作しますが、isVariantCurrency(A[0])は動作しません。戻り値はInt32であり、0が偽、0以外が真を表します。

例

someMethod (ByRef x);

isCurrency = isVariantCurrency (x);

isCurrency変数には、"x"がVT_CY型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantCurrency

関連項目

isVariant(x)、isVariantBool(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantError(x)、isVariantNull(x)、typeName(x)


isVariantDate(x)

"x"がActiveXの日付型のVariantから作成されたかどうかを判定します。

使用法

ActiveXオートメーションの日付データ型（VT_DATE）がVEEに返される場合、実際にはVT_DATE型であるという「ヒント」の付いたReal64コンテナになります。コンテナを調べることにより、実際にはReal64なのか日付型なのかを判定できます。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantDate(A)は正しく動作しますが、isVariantDate(A[0])は動作しません。戻り値はInt32であり、0が偽、0以外が真を表します。

例

someMethod (ByRef x);

isDate = isVariantDate (x);

isDate変数には、"x"がVT_DATE型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantDate

関連項目

isVariant(x)、isVariantBool(x)、isVariantCurrency(x)、isVariantEmpty(x)、isVariantError(x)、isVariantNull(x)、typeName(x)


isVariantEmpty(x)

"x"がActiveXの空のVariantから作成されたかどうかを判定します。

使用法

返されたVariantが空（空文字列を含むVariantではなく）かどうかを判定します。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantEmpty(A)は正しく動作しますが、isVariantEmpty(A[0])は動作しません。戻り値はInt32であり、0が偽、0以外が真を表します。

例

someMethod (x);

isEmpty = isVariantEmpty (x);

isEmpty変数には、"x"が空のVariantかどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantEmpty

関連項目

isVariant(x)、isVariantBool(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantError(x)、isVariantNull(x)、typeName(x)


isVariantError(x)

"x"がActiveXのエラー型のVariantから作成されたかどうかを判定します。

使用法

ActiveXオートメーションのエラー・データ型（VT_ERROR）がVEEに返される場合、実際にはVT_ERROR型であるという「ヒント」の付いたInt32コンテナになります。コンテナを調べることにより、実際にはInt32なのかエラー型なのかを判定できます。値はエラー番号（scode）を表します。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantError(A)は正しく動作しますが、isVariantError(A[0])は動作しません。戻り値はInt32であり、0が偽、0以外が真を表します。

例

someMethod (x);

isError = isVariantError (x);

isError変数には、"x"がVT_ERROR型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantError

関連項目

isVariant(x)、isVariantBool(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantNull(x)、typeName(x)


isVariantNull(x)

"x"がActiveXのヌルを含むVariantから作成されたかどうかを判定します。

使用法

返されたVariantがVT_NULL（Int32値0ではなく）を持っていたかどうかを判定します。

"x"が配列の場合、この関数は個々の配列要素でなく配列コンテナを対象とします。例えば、isVariantNull(A)は正しく動作しますが、isVariantNull(A[0])は動作しません。戻り値はInt32であり、0が偽、0以外が真を表します。

例

someMethod (x);

isNull = isVariantNull (x);

isNull変数には、"x"がVT_NULL型かどうかを示す0または非0の値が格納されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion
Member: isVariantNull

関連項目

isVariant(x)、isVariantBool(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantError(x)、typeName(x)


j(x)

xを虚数部に持つComplex数を返すオブジェクト。

使用法

j(x)は、xを虚数部に持ち、0を実数部に持つ、xと同じ種類のComplex数を作成するために使用します。同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Complex
UInt16 | Complex
Int16 | Complex
Int32 | Complex
Int64 | Complex
Real32 | Complex
Real64 | Complex
Waveform | Complex

例

j(5)はComplex数(0,5)を返します。

注記

マッピングは結果で保持されます。xを実数部に持つComplex数を返すには、入力端子の型昇格を使用して実数をComplexに昇格します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: j

関連項目

Complex Parts、conj(x)、im(x)、mag(x)、phase(x)、re(x)、Real Parts、Build Complex、UnBuild Complex


j0(x)

xの第1種の0次ベッセル関数を計算するために用いられるオブジェクト。

使用法

j0(x)は、xの第1種の0次ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

j0(10)は-0.245935764451348を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: j0

関連項目

Ai(x)、Bi(x)、j1(x)、jn(x,n)、y0(x)、y1(x)、yn(x,n)


j1(x)

xの第1種の1次ベッセル関数を計算するために用いられるオブジェクト。

使用法

j1(x)は、xの第1種の1次ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

j1(1)は0.440050585744933を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: j1

関連項目

Ai(x)、Bi(x)、j0(x)、jn(x,n)、y0(x)、y1(x)、yn(x,n)


jn(x,n)

xの第1種のn次ベッセル関数を計算するために用いられるオブジェクト。

使用法

jn(x,n)は、xの第1種のn次ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

nパラメータは、Int32型またはInt32に変換できるものでなければなりません。種類はScalarまたはxと同じ種類です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

jn(1,2)は0.114903484931900を返します。

注記

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: jn

関連項目

Ai(x), Bi(x)、j0(x) 、j1(x)、y0(x)、y1(x)、yn(x,n)


k0(x)

xの第2種の0次変形（ハイパーボリック）ベッセル関数を計算するために用いられるオブジェクト。

使用法

k0(x)は、xの第2種の0次変形（ハイパーボリック）ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

k0(1)は0.421024438240708を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

x引数は正でなければなりません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: k0

関連項目

i0(x)、i1(x)、k1(x)


k1(x)

xの第2種の1次変形（ハイパーボリック）ベッセル関数を計算するために用いられるオブジェクト。

使用法

k1(x)は、xの第2種の1次変形（ハイパーボリック）ベッセル関数を計算するために使用します。x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

k1(1)は0.601907230197234を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

x引数は正でなければなりません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: k1

関連項目

i0(x)、i1(x)、k0(x)


a < b（小さい）

2つのオペランドに対して小さい演算を実行するオブジェクト。

使用法

a < bは、1つのコンテナの値が別のコンテナの値より小さいかどうかを判定するために使用します。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドより小さい場合、結果の値は1です。そうでない場合は値は0です。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

両方のオペランドの型がCoordの場合、演算が実行されるためには、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。EnumはTextに変換されて比較されます。TextはASCII辞書順で比較されます。

2つの配列を比較する場合、対応する各要素同士が比較演算子を満たした場合に、演算は1を返します。

例

スカラと配列:3.0 < [1, 3, 9]は0を返します。

配列とスカラ:[1, 2, 3] < 4は1を返します。

2つの配列:[1, 2, 3] < [2, 3, 5]は1を返します。

2つの配列:[1, 4, 3] < [2, 3, 5]は0を返します。

2つのCoordスカラ:coord(1,3) < coord(1,5)は1を返します。

2つのCoordスカラ:coord(1,3) < coord(2,5)はValues for independent variables must matchを返します。

2つのTextスカラ:"too" < "zoo"は1を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: <

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a > b（大きい）、a >= b（大きいか等しい）、a <= b（小さいか等しい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b、Comparator、Conditional、If/Then/Else


a <= b（小さいか等しい）

2つのオペランドに対して小さいか等しい演算を実行するオブジェクト。

使用法

a <= bは、1つのコンテナの値が別のコンテナの値より小さいか等しいかどうかを判定するために使用します。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドより小さいか等しい場合、結果の値は1です。そうでない場合は値は0です。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

両方のオペランドの型がCoordの場合、演算が実行されるためには、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。EnumはTextに変換されて比較されます。TextはASCII辞書順で比較されます。

2つの配列が相互にマッピングされている場合、対応する各要素同士が比較演算子を満たした場合に、演算は1を返します。

例

スカラと配列:3.0 <= [1, 3, 9]は0を返します。

配列とスカラ:[1, 2, 4] <= 4は1を返します。

2つの配列:[1, 2, 3] <= [2, 3, 3]は1を返します。

2つの配列:[1, 4, 3] <= [2, 3, 5]は0を返します。

2つのCoordスカラ:coord(1,3) <= coord(1,5)は1を返します。

2つのCoordスカラ:coord(1,3) <= coord(2,5)はValues for independent variables must matchを返します。

2つのTextスカラ:"too" <= "zoo"は1を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: <=

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a > b（大きい）、a >= b（大きいか等しい）、a < b（小さい）、NOT a、a != b（等しくない）、a OR b、Comparison、a XOR b、Comparator、Conditional、If/Then/Else


線形回帰

線形回帰直線を(x,y)データにフィットさせるために用いられるオブジェクト。

使用法

線形回帰は、データを式y = C0 + C1*xにフィットさせるために使用します。ここで、xはx座標、C0とC1は計算される係数です。この種類の回帰は、データを通る最も近い直線のフィッティングと考えられます。

直線回帰オブジェクトは、1つの独立変数を持つCoord型、すなわち(x,y)ペアの配列を入力に取ります。入力配列がCoord型でない場合、Coordへの変換が試みられます。入力データがマッピングされている場合（Waveform、Spectrum、またはマッピングされた配列）、Coordへの変換では、マッピング情報を使って(x,y)ペアのx部分が作成されます。入力データがマッピングされていない場合（配列など）、(x,y)ペアのx部分は配列中の位置から暗黙に作成されます。

オープン・ビュー・パラメータ

オープン・ビューのFit Typeフィールドを使って、回帰の種類をlinear、logarithmic、exponential、power curve、polynomial regressionに変更できます。フィールドをクリックすると回帰の種類のリストが表示されます。

例

Coord変換の例については、Regressionを参照してください。

注記

回帰に関する一般的な注記については、Regressionを参照してください。

場所

Device [image] Regression

その後、適切なFit Typeをダイアログ・ボックスのFit Typeフィールドから選択。

関連項目

Regression、指数回帰、対数回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、多項式回帰、polySmooth (x)、べき曲線回帰、Build Coord


lockPosition()

表示されているUserFunctionパネルが移動されないようにするオブジェクト。

使用法

showPanel()を使用してUserFunctionパネルを表示した場合、unlockPosition()を使用するかPopupMoveableプロパティのチェックを外してユーザがパネルを移動できるようにした後、ユーザがパネルを移動できないようにするには、lockPosition()を使用します。

オープン・ビュー

lockPosition()というテキストを使用する必要があります。括弧の中には次のパラメータを入力します。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

lockPosition()オブジェクトにデータ入力ピンを追加してUserFunction名を設定することもできますが、この場合"UFname"を入力端子名に置き換える必要があります。

注記

lockPosition()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、lockPosition()式を持ちます。lockPosition()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: lockPosition

関連項目

Call、hidePanel()、panelPosition()、panelSize()、showPanel()、unlockPosition()、UserFunction


log(x)

xの値の自然対数を返すオブジェクト。

使用法

log(x)は、数値xの自然対数（底e）を得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

log([10, 2])は[2.302585092994, 0.693147180559945]を返します。

log((1,2))は(0.804718956, 1.10714872)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: log

関連項目

exp(x)、exp10(x)、a ^ b（指数）、log10(x)、Power


log10(x)

xの値の常用対数を返すオブジェクト。

使用法

log10(x)は、数値xの常用対数（底10）を得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

log10([10, 2])は[1, 0.301029995663981]を返します。

log10((1,2))は[0.349485, 0.480828579]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: log10

関連項目

exp(x)、exp10(x)、a ^ b（指数）、log(x)、Power


対数回帰

対数曲線を(x,y)データにフィットさせるために用いられるオブジェクト。

使用法

対数回帰は、データを次の式にフィットさせるために使用します。

y = C0 + C1*log(x)

ここで、xはx座標、C0とC1は計算される係数です。対数関数は自然対数です。入力データ(x)は常に0より大きくなければなりません。

対数回帰オブジェクトは、1つの独立変数を持つCoord型、すなわち(x,y)ペアの配列を入力に取ります。入力配列がCoord型でない場合、Coordへの変換が試みられます。入力データがマッピングされている場合（Spectrumまたはマッピングされた配列）、Coordへの変換では、マッピング情報を使って(x,y)ペアのx部分が作成されます。入力データがマッピングされていない場合（配列など）、(x,y)ペアのx部分は配列中の位置から暗黙に作成されます。

オープン・ビュー・パラメータ

オープン・ビューのFit Typeフィールドを使って、回帰の種類をlinear、logarithmic、exponential、power curve、polynomial regressionに変更できます。フィールドをクリックすると回帰の種類のリストが表示されます。

例

Coord変換の例については、Regressionを参照してください。

注記

回帰に関する一般的な注記については、Regressionを参照してください。

この関数は、マッピングされない配列に対しては動作しません。マッピングされない配列はx=0を起点としてCoordに変換されますが、これは対数関数には適合しません。この関数はWaveformに対しても同じ理由で動作しません。

場所

Device [image] Regression

その後、適切なFit Typeをダイアログ・ボックスのFit Typeフィールドから選択。

関連項目

Regression、指数回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、多項式回帰、polySmooth (x)、べき曲線回帰、Build Coord


Logical

Function & Object BrowserのOperatorsのCategory。

使用法

Logicalは、オペランドの論理演算を実行する次のオブジェクトにアクセスするために使用します。

a AND b

a OR b

a XOR b

NOT a

注記

論理条件が満たされた場合、1が返されます。論理条件が満たされない場合、0が返されます。

戻り値はInt32型であり、種類はオペランドと同じです。これは、常にスカラを返す==などの条件式と異なっています。

論理演算子は、Text型に対しては、文字列がヌルかヌルでないかという意味でのみ定義されています。すなわち、"zoo" AND ""（ヌル文字列）は、2番目の文字列がヌルなので論理的に偽です。テキスト型を文字列以外の型と比較する場合、後者がText型に変換されます。したがって、"zoo" AND 0は真となります。実数値0は文字列"0"に変換され、両方の文字列がヌルでないため、ANDは真となり、1を返します。

場所

Device [image] Function & Object Browser [image] Operators [image] Logical

関連項目

a AND b、NOT a、a OR b、a XOR b、Comparison、Conditional、If/Then/Else


logMagDist (x,from,thru, logStep)

対数分布を与えられて、入力コンテナ中の数値の分布を計算するために用いられるオブジェクト。

使用法

logMagDist(x,from,thru,logStep)は、入力配列中の値のlog10値の分布を計算するために使用します。分布はfromからthruまでの範囲で、logStepのサイズで計算されます。logStepパラメータは、対数値が分類されるlog10ドメインのサブ範囲のサイズです（例えば、logStepが0.2の場合、10倍ごとに5個のサブ範囲が用いられます）。

x入力は任意のサイズで、種類はArrayでなければなりません。入力の型がComplex、PComplex、Spectrumの場合、複素数の大きさがまず計算され、その大きさを使って頻度分布が求められます。

可能な入力型 戻り値型

UInt8 | Real64 Array 1D
UInt16 | Real64 Array 1D
Int16 | Real64 Array 1D
Int32 | Real64 Array 1D
Int64 | Real64 Array 1D
Real32 | Real64 Array 1D
Real64 | Real64 Array 1D
Coord | Real64 Array 1D
Waveform | Real64 Array 1D
Complex | Real64 Array 1D
PComplex | Real64 Array 1D
Spectrum | Real64 Array 1D

log10(x)はx<=0の値に対しては定義されていないため、入力値は正でなければなりません。

すべての型の入力に対して、Real64 Array 1Dが返されます。配列の各要素は、各分布範囲に入る入力値の個数を表します。

from、thru、logStepの各パラメータは、種類がScalarで、型がReal64かまたはReal64に変換できるものでなければなりません。

fromパラメータはthruパラメータより小さくなければなりません。

logStepパラメータは0より大きくなければなりません。

例

logMagDist(x,1,100,1)は、xが次の配列の場合:

[1, 2, 3, 10, 40, 50, 100, 100 ,100]

[3, 6]を返します。この例では、1～2の範囲でサイズ1の2つのサブ範囲があります。出力配列は、それぞれの範囲に入る入力数値の数を示します。

注記

分布のサブ範囲は、以下の範囲パラメータによって決定されます。

範囲1

範囲最小値:"from"パラメータ

範囲:<= 範囲1

範囲最大値:< "from"パラメータ + "step"パラメータ（範囲1上限）

範囲2

範囲最小値:範囲1上限

範囲:<= 範囲2

範囲最大値:< 範囲1上限 + "step"パラメータ（範囲2上限）

範囲3

範囲最小値:範囲2上限

範囲:<= 範囲3

範囲最大値:< 範囲2上限 + "step"パラメータ（範囲3上限）

範囲n-1

範囲最小値:範囲（n-2）上限

範囲:<= 範囲（n-1）

範囲最大値:<= "thru"パラメータ

範囲分布の決定の前に、"from"と"thru"のlog10が計算されます。

オペランドのマッピングは無視され、戻り値はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: logMagDist

関連項目

magDist(x, from,thru, step)


logRamp (numElem, from,thru)

対数ランプ配列を作成するオブジェクト。

使用法

logRamp(numElem,from,thru)は、長さnumElemで、値がfromからthruまでの対数ランプであるReal64 1次元配列を作成するために使用します。numElemはInt32かまたはそれに変換可能なスカラ・コンテナで、値は0より大きくなければなりません。fromとthruはRealまたはそれに変換可能なスカラ・コンテナでなければなりません。fromがthruより小さい場合、ランプは正です。そうでなければランプは自動的に負になります。fromとthruの値はどちらも0より大きくなければなりません。

例

logRamp(3, 1, 100)は値[1, 10, 100]の1次元配列を返します。

注記

戻り値にマッピングはありません。

値を作成するアルゴリズムは次のとおりです。

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem-1))
for I=0..numElem-1

これにより、結果配列の最後の要素の値はthruになります。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Generate
Member: logRamp

関連項目

Alloc Real64、ramp (numElem, from,thru)


mag(x)

PComplex数xの大きさを返すオブジェクト。

使用法

mag(x)は、PComplex数xの大きさを抽出するために使用します。Integer、Real、Coord、Waveform型に対しては、同じ型の同じ値が返されます。Complex、PComplex、Spectrum型に対しては、mag(x)はPComplex数の大きさを値とするRealコンテナを返します（Complexは先にPComplexに変換されます）。

可能な入力型 戻り値型

UInt8 | UInt8、同じ値
UInt16 | UInt16、同じ値
Int16 | Int16、同じ値
Int32 | Int32、同じ値
Int64 | Int64、同じ値
Real32 | Real32、同じ値
Real64 | Real64、同じ値
Coord | Coord、同じ値
Waveform | Waveform、同じ値
Complex | Real64
PComplex | Real64
Spectrum | Real64

例

mag( (1,@45) )は1を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: mag

関連項目

conj(x)、im(x)、j(x)、phase(x)、re(x)、Real Parts、Build Complex、Default Preferences、UnBuild Complex


magDist(x, from,thru, step)

入力コンテナ中の数値の分布を計算するために用いられるオブジェクト。

使用法

magDist(x,from,thru,step)は、入力配列中の数値の分布を計算するために使用します。分布はfromからthruまでの範囲で、stepのサイズで計算されます。stepパラメータは、数値が分類されるサブ配列の範囲のサイズです。

x入力は任意のサイズです。入力の型がComplex、PComplex、Spectrumの場合、複素数の大きさがまず計算され、その大きさを使って頻度分布が求められます。x入力の種類はArrayでなければなりません。

可能なx入力型 戻り値型

UInt8 | Real64 Array 1D
UInt16 | Real64 Array 1D
Int16 | Real64 Array 1D
Int32 | Real64 Array 1D
Int64 | Real64 Array 1D
Real32 | Real64 Array 1D
Real64 | Real64 Array 1D
Coord | Real64 Array 1D
Waveform | Real64 Array 1D
Complex | Real64 Array 1D
PComplex | Real64 Array 1D
Spectrum | Real64 Array 1D

返された配列の各要素は、各分布範囲に入る入力値の個数を表します。

from、thru、stepの各パラメータは、種類がScalarで、型がReal64かまたはReal64に変換できるものでなければなりません。

fromパラメータはthruパラメータより小さくなければなりません。

stepパラメータは0より大きくなければなりません。

例

magDist(x,1,5,1)は、xが配列[1, 2, 3, 4, 5, 5, 3, 3, 3, 2, 2, 2]の場合、配列[1, 4, 4, 3]を返します。この例では、1～5の範囲でサイズ1の4つのサブ範囲があります。出力配列は、それぞれのサブ範囲に入る入力数値の数を示します。

注記

分布のサブ範囲は、以下の範囲パラメータによって決定されます。

範囲1

範囲最小値:"from"パラメータ

範囲:<= 範囲1

範囲最大値:< "from"パラメータ + "step"パラメータ（範囲1上限）

範囲2

範囲最小値:範囲1上限

範囲:<= 範囲2

範囲最大値:< 範囲1上限 + "step"パラメータ（範囲2上限）

範囲3

範囲最小値:範囲2上限

範囲:<= 範囲3

範囲最大値:< 範囲2上限 + "step"パラメータ（範囲3上限）

範囲n-1

範囲最小値:範囲（n-2）上限

範囲:<= 範囲（n-1）

範囲最大値:<= "thru"パラメータ

オペランドのマッピングは無視され、戻り値はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: magDist

関連項目

logMagDist (x,from,thru, logStep)


matDivide (numer, denom)

このオブジェクトは、2つの行列AとBの除算を行います。matDivide(numer,denom)の代数的な定義はA/Bですが、行列（線形代数）的な定義はinv(B)*Aです。

使用法

matDivide(numer,denom)は、1つの行列を別の行列で除算するために使用します。線形系BX=Aがあり、行列BとAが知られている場合に、解行列Xを求めます。代数的に言えば、解Xを求めるにはAをBで除算します。すなわち、X = A/Bです。一方、方程式の系を線形代数の規則を使って解くと、演算は実際にはX = inv(B)*Aとなります。この演算は、n個の未知数を持つn個の方程式の線形系の解を求めるのに便利です。

Bがn×nの（正方）行列の場合、線形系BX = Aはn個の未知数を持つn個の方程式の系です。Bは正則とします。この場合、inv(B)（Bの逆行列）が存在し、BX = Aの両辺にinv(B)を乗算することにより、X = inv(B)*Aが得られます。

inv(B)*Aの乗算の解が、与えられた線形系の解となります。Bが正則の場合、この系にはただ1つの解が存在します。

例

matDivide(A,B)は、Aが3×1の行列[ [8], [24], [8] ]で、
Bが3×3の行列[ [1, 1, 1], [0, 2, 3], [5, 5, 1] ]の場合、
3×1の行列[ [0], [0], [8] ]を返します。

注記

オペランドのマッピングは無視され、戻り値はマッピングされません。

matDivide(A,B)はBの逆行列を使用するので、Bは正方行列でなければなりません。matMultiply(A,B)の規則はinv(B) * A演算に適用されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Matrix
Member: matDivide

関連項目

a / b（除算）、matMultiply (A,B)


matMultiply (A,B)

線形代数の規則に基づいて2つの行列を乗算するオブジェクト。

使用法

matMultiply(A,B)は、2つの入力行列AとBを乗算するために使用します。Aをm×pの行列、Bをp×nの行列とします。matMultiplyをAとBに適用すると、新しいm×nの行列Zが返されます。乗算が定義されるのは、Aがm×pの行列で、Bがp×nの行列である場合に限ることに注意してください（すなわち、2つめの行列の行の数が1つめの行列の列の数に一致する必要があります）。

入力の種類は行列でなければなりません。2つの行列が同じ型でない場合、順位が低い型の行列が順位が高い型の行列に昇格され、戻り値は順位が高い型になります。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Complex

PComplex

例

matMultiply(A,B)は、Aが2×1の行列[ [3], [1] ]で、Bが1×2の行列[2, 4]の場合、2×2の行列[ [6, 12], [2, 4] ]を返します。

注記

オペランドのマッピングは無視され、戻り値はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: matMultiply

関連項目

matDivide (numer, denom)、a * b（乗算）


Matrix

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Matrix演算は、行列を対象とする一般的な線形代数演算を実行するために使用します。

det(x)

inverse(x)

transpose(x)

identity(x)

minor(x,row,col)

cofactor(x,row,col)

matMultiply(A,B)

matDivide(numer,denom)

場所

Device [image] Function & Object Browser [image]  Built-in Functions [image] Matrix

関連項目

cofactor(x, row,col)、det(x)、identity(x)、inverse(x)、matMultiply (A,B)、matDivide (numer, denom)、minor(x,row, col)、transpose(x)


max(x)

入力コンテナの最大値を返すために用いられるオブジェクト。

使用法

max(x)は、コンテナの最大値を返すために使用します。

x入力は任意のサイズと種類です。Coord入力型の場合、演算は従属変数に対して実行されます。Text入力型の場合、max(x)テキスト文字列は、辞書順で最も後に来る文字列です。

可能な入力型 戻り値型

UInt8 | UInt8、種類はScalar
UInt16 | UInt16、種類はScalar
Int16 | Int16、種類はScalar
Int32 | Int32、種類はScalar
Int64 | Int64、種類はScalar
Real32 | Real32、種類はScalar
Real64 | Real64、種類はScalar
Coord | Coord、種類はScalar
Waveform | Real 64、種類はScalar
Text | Text、種類はScalar

例

max(x)は、xが配列[5, 34, 1, 54, 6, 2, 9, 7, 16, 42]の場合、54を返します。

2つのスカラの値を計算する場合、配列構築構文を使って配列を作成し、配列に対してmax()を呼び出します。例:

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: max

関連項目

maxIndex(x)、maxX(x)、mean(x)、median(x)、min(x)、mode(x)、rms(x)、sdev(x)、vari(x)


maxIndex(x)

入力配列の最大要素のインデックスを返すために用いられるオブジェクト。

使用法

maxIndex(x)は、1次元配列の最大要素のインデックスを返すために使用します。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32

例

maxIndex(x)は、xが[.1, .4, .6, .9]という配列の場合、3を返します。これは、.9が配列の最大要素だからです。

maxIndex(x)を["Ken", "Sue", "Randy", "Bill", "Doug"]に対して使用すると、1が返されます。これは、"Sue"が辞書順で最も後に来る要素だからです。

注記

配列のインデックスは0から始まります。

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: maxIndex

関連項目

max(x)、maxX(x)、min(x)、minIndex(x)、minX(x)


maxX(x)

マッピングされた入力1次元配列の最大ポイントのx値を返すために用いられるオブジェクト。

使用法

maxX(x)は、1次元（リニア）配列の最大要素のXindexを返すために用いられます。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar
Text | Real64 Scalar

データがマッピングされている場合、返される値は、入力データのyの最大値に対応するxの値です。xの値は、配列のマッピングを使って計算されます。データがマッピングされていない場合、返される値は、yの最大値の配列中でのインデックスです。すなわち、xの最大値の配列中での（暗黙の）位置を返します。

Coord型の場合は、yの最大値に対応する独立変数xが返されます。

この関数はマッピングされないデータに対してはmaxIndex(x)と同じなので、マッピングされたデータまたはCoord型に対してのみ意味があります。

例

256ポイントを持ち、0～20 msでマッピングされた正弦波形のmaxX(x)を取るとします。戻り値は.009219となります。

マッピングされない配列xのmaxX(x)を取るとします。[.1, .4, .6, .9]に対しては3が返されます。これは、.9が配列の最大要素だからです。これはmaxIndex(x)と同一です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: maxX

関連項目

max(x)、maxIndex(x)、min(x)、minIndex(x)、minX(x)、Get Mappings、Set Mappings


mday(aDate)

時刻xの日の値を返すオブジェクト。

使用法

mday(x)は、与えられた時刻xを、xと同じ種類で日を表す1～31の値を持つコンテナに変換するために使用します。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

mday(dmyToDate(25,12,1991))は25を返します。

注記

mday(aDate)は、0～30でなく1～31の値を返します。これはVEEの関数の中で0から始まらない少数の例の1つです。マッピングは戻り値で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: mday

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、month(aDate)、now()、Time & Date、wday(aDate)、year(aDate)


mean(x)

入力コンテナ中のデータの平均値を計算するために用いられるオブジェクト。

使用法

mean(x)は、コンテナの平均値を返すために使用します。入力コンテナ中の数値が加算され、合計が入力の要素数で除算されます。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord入力型の場合、演算は従属変数に対して実行されます。

例

xが配列[1, 2, 3, 11, 12, 34]の場合、mean(x)は10.5を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: mean

関連項目

max(x)、median(x)、min(x)、mode(x)、rms(x)、sdev(x)、vari(x)


meanSmooth (x,numPts)

目的のデータ・ポイントの前後にある指定した数のデータ・ポイントの平均値を使って、スムージングしたデータ・ポイントを計算することにより、入力データをスムージングするために用いられるオブジェクト。

使用法

meanSmooth(x,numPts)は、polySmooth(x)ルーチンと同様のデータ・スムージングを実行するために使用します。このアルゴリズムは、スムージング対象のポイントの前後にあるnumPts個のデータ・ポイントの算術平均を計算します。例えば、numPtsが5の場合、現在のポイントより前の2ポイント、現在のポイント、現在のポイントより後の2ポイントの平均を取ります。numPtsが偶数の場合、1を加えて奇数にします。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の独立変数は等距離でなければなりません。すなわち、隣接する点のX間隔が一定でなければなりません。スムージングは従属変数（Coordのyデータ）だけに対して実行されます。

この方法による雑音抑制能力は、指定した平均のサイズnumPtsに依存します。numPtsを大きくすると、numPtsが小さい場合よりも雑音がより抑制されます。他の関数（deriv(x,order)など）に渡すデータの前処理にこの関数を使用することにより、結果が大幅に改善される場合があります。

注記

入力パラメータのマッピングは無視され、出力は入力パラメータxと同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: meanSmooth

関連項目

movingAvg (x,numPts)、polySmooth (x)、Regressionタイプ、Signal Processing


median(x)

入力コンテナの中央値を計算するために用いられるオブジェクト。

使用法

median(x)は、コンテナの中央値を返すために使用します。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord入力型の場合、演算は従属変数に対して実行されます。

例

median([1, 2, 3, 8, 20])は3を返します。

median(x)は、xが配列[1, 2, 5, 11, 12, 33]の場合、8を返します。中央値は、数値の範囲の中央にある値のことです。数値の数が偶数の場合、中央値は中央にある2つの値の平均値として計算されます。この例の場合、中央値は5と11の平均で8となります。

median([20, 5, 10])は10を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: median

関連項目

max(x)、mean(x)、min(x)、mode(x)、rms(x)、sdev(x)、vari(x)


min(x)

入力コンテナの最小値を返すために用いられるオブジェクト。

使用法

min(x)は、コンテナの最小値を返すために使用します。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8、種類はScalar
UInt16 | UInt16、種類はScalar
Int16 | Int16、種類はScalar
Int32 | Int32、種類はScalar
Int64 | Int64、種類はScalar
Real32 | Real32、種類はScalar
Real64 | Real64、種類はScalar
Coord | Coord、種類はScalar
Waveform | Real64、種類はScalar
Text | Text、種類はScalar

Coord入力型の場合、演算は従属変数に対して実行されます。Text入力型の場合、min(x)テキスト文字列は、辞書順で最も前に来る文字列です。

例

min(x)は、xが配列[5, 34, 1, 54, 6, 2, 9, 7, 16, 42]の場合、1を返します。

2つのスカラの値を計算する場合、配列構築構文を使って配列を作成し、配列に対してmin()を呼び出します。例:

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: min

関連項目

max(x)、mean(x)、median(x)、minIndex(x)、minX(x)、mode(x)、rms(x)、sdev(x)、vari(x)


minIndex(x)

入力配列の最小要素のインデックスを返すために用いられるオブジェクト。

使用法

minIndex(x)は、1次元配列の最小要素のインデックスを返すために使用します。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Int32
UInt16 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32

例

minIndex(x)は、xが[.1, .4, .6, .9]という配列の場合、0を返します。これは、.1が配列の最小要素だからです。

minIndex(x)を["Ken", "Randy", "Doug", "Bill", "Sue"]に対して使用すると、3が返されます。これは、"Bill"が辞書順で最も前に来る要素だからです。

注記

配列のインデックスは0から始まります。

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: minIndex

関連項目

max(x)、maxIndex(x)、maxX(x)、min(x)、minX(x)


minor(x,row, col)

行列xの行r列cの小行列式を計算するために用いられるオブジェクト。

使用法

minor(x,row,col)は、入力正方行列xの小行列式を計算するために使用します。行列の小行列式とは、入力行列xから第r行と第c列を除いた副行列の行列式と定義されます。x入力の種類は正方行列（行と列の数が同じ）でなければなりません。削除する行と列を表す入力rとcは、Int32 Scalarか、Int32型に変換できるものでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex、種類はScalar
PComplex | PComplex、種類はScalar

例

aが行列[ [3, -1, 2], [4, 5, 6], [7, 1, 2] ]の場合、minor(a,1,2)は
-34を返します。

注記

オペランドのマッピングは無視されます。

rとcの入力は、Int32型であるか、この型に変換可能なものであると想定されます。行列の行と列の番号は、0からn-1までなので、使用する行と列を指定する際には注意が必要です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: minor

関連項目

cofactor(x, row,col)、det(x)


minX(x)

マッピングされた入力1次元配列の最小ポイントのx値を返すために用いられるオブジェクト。

使用法

minX(x)は、1次元（リニア）配列の最小y要素のXindexを返すために用いられます。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar
Text | Real64 Scalar

データがマッピングされている場合、返される値は、入力データのyの最小値に対応するxの値です。xの値は、配列のマッピングを使って計算されます。データがマッピングされていない場合、返される値は、yの最小値の配列中でのインデックスです。すなわち、xの最小値の配列中での（暗黙の）位置を返します。

Coord型の場合は、yの最小値に対応する独立変数xが返されます。

この関数は、マッピングされたデータまたはCoord型に対してのみ意味があります。マッピングされないデータに対してはminIndex(x)と同じです。

例

256ポイントを持ち、0～20 msでマッピングされた正弦波形のminX(x)を取るとします。戻り値は.0107となります。

マッピングされない配列xのminX(x)を取るとします。[.1, .4, .6, .9]に対しては0が返されます。これは、.1が配列の最小要素だからです。これはminIndex(x)と同一です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: minX

関連項目

max(x)、maxIndex(x)、maxX(x)、min(x)、minIndex(x)、Get Mappings、Set Mappings


a mod b（モジュロ）

2つのオペランドの算術モジュロ（剰余）を実行するオブジェクト。

使用法

a mod bは、2つのコンテナの除算の余りを求めるために使用します。2つのコンテナは任意の種類です。ただし、コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。モジュロは従属変数（最後の変数）だけに対して実行されます。

例

スカラと配列のモジュロ:3.2 MOD [1, 2, 3]は[0.2, 1.2, 0.2]を返します。

配列とスカラのモジュロ:[1, 2, 3] MOD 2は[1, 0, 1]を返します。

2つのCoordスカラ:coord(1,3) MOD coord(1,5)はcoord(1,2)を返します。

2つのCoordスカラ:coord(1,3) MOD coord(2,5)はエラーを返します。

2つのスカラ:12.95 mod 2は0.95を返します。

2つのスカラ:12.95 mod 2.1は0.35を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: MOD

関連項目

a + b（加算）、a div b（切り捨て除算）、a / b（除算）、a * b（乗算）、a - b（減算）


mode(x)

入力コンテナ中のデータの再頻値を計算するために用いられるオブジェクト。

使用法

mode(x)は、コンテナ中の値の最頻値を返すために使用します。再頻値とは、データ中に最も多く存在する値です。再頻値が2つ以上ある（複数の値が同じ数だけ存在する）データの場合、mode(x)は配列コンテナの中で最も値の小さい再頻値を返します。

再頻値が存在しない場合（すべての値が1つしかない場合）、入力コンテナ中の最初の値が返されます。

x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord入力型の場合、演算は従属変数に対して実行されます。

例

再頻値が1つ:xが配列[2, 1, 12, 11, 2, 33]の場合、mode(x)は2を返します。

再頻値が2つ:xが配列[2, 1, 2, 12, 11, 12]の場合、mode(x)は2を返します。

再頻値なし:xが配列[3, 2, 1, 11, 12, 33]の場合、mode(x)は3を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: mode

関連項目

max(x)、mean(x)、median(x)、min(x)、rms(x)、sdev(x)、vari(x)


month(aDate)

時刻xの月の値を返すオブジェクト。

使用法

month(aDate)は、与えられた時刻xを、同じ種類で月を表す1～12の値を持つコンテナに変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

month(dmyToDate(25,12,1991))は12を返します。

注記

month(aDate)は、0～11でなく1～12の値を返します。これはVEEの関数の中で0から始まらない少数の例の1つです。マッピングは戻り値で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: month

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、now()、Time & Date、wday(aDate)、year(aDate)


movingAvg (x,numPts)

目的のデータ・ポイントの前にある指定した数のデータ・ポイントの平均値を使って、スムージングしたデータ・ポイントを計算することにより、入力データをスムージングするために用いられるオブジェクト。

使用法

movingAvg(x,numPts)は、meanSmooth(x,numPts)ルーチンと同様のデータ・スムージングを実行するために使用します。このアルゴリズムは、前にあるnumPts個のデータ・ポイントの算術平均を計算します。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の独立変数は等距離でなければなりません。すなわち、隣接する点のX間隔が一定でなければなりません。スムージングは従属変数（Coordのyデータ）だけに対して実行されます。

この方法では、配列のすべてのポイントに対して平均値がその前のポイントだけから計算されるため、データの歴史的な面を表す傾向があります。これに対して、polySmooth(x)とmeanSmooth(x,numPts)では、平均値が目的のポイントの両側のポイントから計算されます。

例

numPtsが5の場合、前の4個のポイントと目的のポイントの平均値を使って、スムージング後のポイントの値が決定されます。

注記

入力パラメータのマッピングは無視され、出力は入力パラメータxと同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: movingAvg

関連項目

meanSmooth (x,numPts)、polySmooth (x)、Regressionタイプ、Signal Processing


a * b（乗算）

2つのオペランドの算術乗算を実行するオブジェクト。

使用法

a * bは、2つのコンテナの値を乗算するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。乗算は従属変数（最後の変数）だけに対して実行されます。

1つのコンテナがTextの場合、もう1つはInt32でなければなりません。Textの乗算では、文字列がInt32の値の回数だけ繰り返されます。EnumはTextに変換されて乗算されます。

この乗算演算は、行列を含むすべての配列の要素に対して並列乗算を実行します。行列乗算については、関数matMultiply(A,B)を参照してください。

例

配列とスカラの乗算:[1, 2, 3] * 3は[3, 6, 9]を返します。

2つの配列:[4, 5, 6] * [1, 2, 3]は[4, 10, 18]を返します。

2つのPComplexスカラ:Trig ModeがDegreesに設定されている場合、(2,@45) * (3,@90)は(6,@135)を返します。

2つのCoordスカラ:coord(1,3) * coord(1,5)はcoord(1,15)を返します。

2つのCoordスカラ:coord(1,3) * coord(2,5)はエラーを返します。

Textとスカラの乗算:"hello" * 3は"hellohellohello"を返します。

Text配列と配列の乗算:["hello", "b"] * [3, 2]は
["hellohellohello", "bb"]を返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: *

関連項目

a + b（加算）、a / b（除算）、matMultiply (A,B)、a - b（減算）


NOT a

1つのオペランドに対して論理NOT演算を実行するオブジェクト。

使用法

NOT aは、コンテナ中の値の論理否定を求めるために使用します。コンテナは、任意の型、任意の種類です。結果はオペランドと同じ種類のInt32で、値は0または1です。オペランドがFalse（0）の場合、NOT演算の値は1です。そうでない場合は値は0です。

オペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

Coordコンテナの場合、従属変数（最後の変数）だけがNOT演算の対象となります。

Complex、PComplex、Spectrumのコンテナの場合、どちらかの部分が非0であればオペランドの値は真です。Textはヌルでなければ真です。EnumはTextに変換されて演算されます。

例

Booleanスカラ:NOT FalseはTrueを返します。

スカラ:NOT 3は0を返します。

スカラ:NOT 0は1を返します。

配列:NOT [-3, 0, 3]は[0, 1, 0]を返します。

PComplexスカラ:NOT (1,@90)は0を返します。

Complexスカラ:NOT (0,1)は0を返します。

Complexスカラ:NOT (0,0)は1を返します。

Coordスカラ:NOT coord(1,3)は0を返します。

Coordスカラ:NOT coord(1,0)は1を返します。

Textスカラ:NOT "too"は0を返します。

Textスカラ:NOT ""は1を返します。

注記

結果はオペランドと同じマッピングを持ちます。

If/Then/Elseデバイスの場合、内部の式がスカラまたは配列（すべて0またはすべて1）に評価される必要があります。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: NOT

関連項目

Conditional、If/Then/Else


a != b（等しくない）

2つのオペランドに対して等しくない演算を実行するオブジェクト。

使用法

a != bは、1つのコンテナの値が別のコンテナの値と等しくないかどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はスカラInt32で、値は0または1です。1つめのオペランドが2つめのオペランドに等しくない場合、結果の値は1です。そうでない場合は値は0です。

Coordコンテナの場合、独立変数がすべて正確に一致しないと、エラーが返されます。Complex、PComplex、Spectrumコンテナの場合、どちらか一方または両方の部分が一致しないと、結果は1です。EnumはTextに変換されて比較されます。

配列の場合、対応する値のうちに1つでも異なるものがあると、結果は1になります。

両方のオペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

例

2つのBooleanスカラ:True != FalseはTrueを返します。

スカラと配列:3.0 != [3, 3, 3]は0を返します。

スカラと配列:3.0 != [3, 1, 3]は1を返します。

2つの配列:[1, 2, 3] != [1, 2, 4]は1を返します。

2つのPComplexスカラ:(1,@90) != (1,@85)は1を返します。

2つのComplexスカラ:(2,3) != (2,4)は1を返します。

2つのComplexスカラ:(2,3) != (2,3)は0を返します。

2つのCoordスカラ:coord(1,3) != coord(1,5)は1を返します。

2つのCoordスカラ:coord(1,3) != coord(2,3)はValues for independent variables must matchを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: !=

関連項目

a ~= b（ほぼ等しい）、a AND b、a == b（等しい）、a > b（大きい）、a >= b（大きいか等しい）、a < b（小さい）、a <= b（小さいか等しい）、NOT a、a OR b、Comparison、a XOR b、Comparator、Conditional


now()

現在の時刻を返すオブジェクト。

使用法

now()は、現在の時刻の値を持つReal64スカラ・コンテナを生成します。Real64の値は、UTCの西暦0001年1月1日00時00分から経過した秒数です。

例

now()は約62.802Gを返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Time & Date
Member: now

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、month(aDate)、Time & Date、wday(aDate)、year(aDate)


a OR b

2つのオペランドに対して論理OR演算を実行するオブジェクト。

使用法

a OR bは、2つのコンテナのどちらかの値が論理的に真（非0）かどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はオペランドと同じ種類のInt32で、値は0または1です。どちらかまたは両方のオペランドが非0の場合、OR演算の値は1です。そうでない場合は値は0です。

両方のオペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。従属変数（最後の変数）だけがOR演算の対象となります。

Complex、PComplex、Spectrumのコンテナの場合、どちらかの部分が非0であればオペランドの値は真です。Textはヌルでなければ真です。EnumはTextに変換されて演算されます。

例

2つのBooleanスカラ:True OR FalseはTrueを返します。

スカラと配列:3 OR [3, 3, 3]は[1, 1, 1]を返します。

スカラと配列:0 OR [-3, 0, 3]は[1, 0, 1]を返します。

2つの配列:[1, 0, 0] OR [0, 1, (-1)]は[1, 1, 1]を返します。

2つのPComplexスカラ:(1,@90) OR (1,@85)は1を返します。

2つのComplexスカラ:(0,0) OR (0,1)は1を返します。

2つのComplexスカラ:(0,1) OR (1,0)は1を返します。

2つのComplexスカラ:(0,0) OR (0,0)は0を返します。

2つのCoordスカラ:coord(1,3) OR coord(1,5)は1を返します。

2つのCoordスカラ:coord(1,3) OR coord(2,3)はエラーを返します。

Textスカラとスカラ数値:"too" OR 0は1を返します。

Textスカラとスカラ数値:"" OR 0は1を返します。0は文字列"0"に変換され、これはヌルではないからです。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

If/Then/Elseデバイスの場合、内部の式がスカラまたは配列（すべて0またはすべて1）に評価される必要があります。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: OR

関連項目

a AND b、NOT a、Comparison、a XOR b、Conditional、If/Then/Else


ordinal(x)

xの序数値を返すオブジェクト。

使用法

ordinal(x)は、コンテナの序数値を得るために使用します。xの種類は任意です。Integer、Real、Coord、Waveformに対しては、結果は引数と同じで、マッピングも同じです。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Enum | Int32

Enumに対しては、結果はxと同じ種類のInt32で、値はEnumの序数値です。Enum定数から作成されたEnumの場合、序数値は0から始まり、n-1に至ります。ここでnはリスト中のEnum値の数です。

例

"a"、"b"、"c"という順序の文字列からEnum定数が作成され、"a"が現在値として選択されている場合、そのコンテナに対するordinal(x)は0を返します。最初の値が選択されているからです。値は0から始まることに注意してください。同じEnum定数に対して、現在選択されている値が"c"の場合、そのコンテナに対するordinal(x)は2を返します。これは現在選択されている値のオフセットです。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: ordinal

関連項目

Complex Parts、Selection Control、Real Parts


panelPosition()

UserFunctionパネルの位置を出力するオブジェクト。

使用法

showPanel()を使用してUserFunctionパネルを表示した場合、panelPosition()を使ってパネルの位置を出力できます。出力は、UserFunctionパネル（パネルに境界およびタイトル領域が存在する場合はそれを除く）の左上隅の位置を、作業領域の左上隅からのピクセル数で表したCoordです。

オープン・ビュー

panelPosition()というテキストを使用する必要があります。括弧の中には次のパラメータを入力します。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

panelPosition()オブジェクトにデータ入力ピンを追加してUserFunction名を設定することもできますが、この場合"UFname"を入力端子名に置き換える必要があります。

注記

UserFunctionにパネル・ビューがないか、パネル・ビューがプログラムでまだ表示されていない場合、panelPosition()は(0, 53)というCoordを返します。

UserFunctionパネルが現在表示されていない場合、panelPosition()は前回表示されたときのパネル位置を返します。

panelPosition()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、panelPosition()式を持ちます。panelPosition()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Panel
Member: panelPosition

関連項目

Call、hidePanel()、lockPosition()、panelSize()、showPanel()、unlockPosition()、UserFunction


panelSize()

UserFunctionパネルのサイズを出力するオブジェクト。

使用法

showPanel()を使用してUserFunctionパネルを表示した場合、panelSize()を使ってパネルのサイズを出力できます。出力は、UserFunctionパネルのサイズをピクセル数で表したCoordです。このサイズには、境界およびタイトル領域（パネルに存在する場合）は含まれません。

オープン・ビュー

panelSize()というテキストを使用する必要があります。括弧の中には次のパラメータを入力します。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

panelSize()オブジェクトにデータ入力ピンを追加してUserFunction名を設定することもできますが、この場合"UFname"を入力端子名に置き換える必要があります。

注記

UserFunctionにパネル・ビューがないか、パネル・ビューがプログラムでまだ表示されていない場合、panelSize()は(0, 0)というCoordを返します。

UserFunctionパネルが現在表示されていない場合、panelSize()は前回表示されたときのパネル・サイズを返します。

panelSize()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、panelSize()式を持ちます。panelSize()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Panel
Member: panelSize

関連項目

Call、hidePanel()、lockPosition()、panelPosition()、showPanel()、unlockPosition()、UserFunction


perm(n,r)

n個の中からr個を取り出す順列の数を計算するのに用いられるオブジェクト。

使用法

perm(n,r)は、n個の中からr個を取り出す順列の数を次の式で計算するために使用します。

Perm(n, r) = n!/ (n - r)!

!記号は階乗を表します。n入力は任意の種類とサイズです。2番目のrパラメータは、n入力値と同じ型か、同じ型に変換可能なものでなければなりません。2つの入力がともに配列の場合、その種類とサイズは正確に一致する必要があります。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

perm(n, r)演算は整数のオペランドに対してのみ定義されているので、入力値は計算の前にInt32型に変換されます。

例

perm(10,3)は、次の式のように720を返します。
10!/(10-3)! = 10!/7! = 10*9*8 = 720.

perm(10.4,3.9)は、次の式のように5040を返します。
10!/(10-4)!= 10!/6! = 10*9*8*7 = 5040実数をInt32に変換する規則に従って、10.4は10に、3.9は4に変換されます。

注記

nとrはともに正でなければならず、nはrより大きくなければなりません。2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: perm

関連項目

beta(x,y)、binomial(a,b)、comb(n,r)、factorial(n)、gamma(x)


phase(x)

PComplex数xの位相を返すオブジェクト。

使用法

phase(x)は、PComplex数xの位相を抽出するために使用します。xは任意の種類ですComplex、PComplex、Spectrum型に対しては、phase(x)はPComplex数の位相角を値とするReal64コンテナを返します（Complexは先にPComplexに変換されます）。

可能な入力型 戻り値型

UInt8 | UInt8、値0
UInt16 | UInt16、値0
Int16 | Int16、値0
Int32 | Int32、値0
Int64 | Int64、値0
Real32 | Real32、値0
Real64 | Real64、値0
Coord | Coord、値0
Waveform | Waveform、値0
Complex | Real64
PComplex | Real64
Spectrum | Real64

phase(x)の戻り値は、現在のTrig Modeの単位です。

例

phase((1,@45))は45を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: phase

関連項目

conj(x)、im(x)、j(x)、mag(x)、re(x)、Real Parts、Build PComplex、Default Preferences、UnBuild PComplex


poly(x,vec)

オブジェクトpoly(x,[a0, a1])、poly(x,[a0, a1, a2])、poly(x,[a0, a1, a2, a3])、poly(x,[a0, a1, ... aN])に対する一括記法。これらのオブジェクトは、xとvecの値による多項式の値を返します。

使用法

poly(x,vec)は、xデータとvec係数による多項式の結果を得るために使用します。xは任意の種類であり、同じ種類が返されます。vecはスカラまたは1次元配列です。poly(x,vec)はvecの要素を多項式係数と見なし、xをデータと見なします。vecは、先頭の要素がa0、2番目の要素がa1という順番で、vecの長さまで解釈されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64

多項式は次の計算を行います。

a0 + a1*x + a2*x*x + a3*x*x*x + ...

例

poly([10, 2], [3, 2, 4])は[423, 23]を返します。

注記

結果のコンテナのマッピングは、入力コンテナxと同じです。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: poly

関連項目

ramp (numElem, from,thru)


多項式回帰

任意の次数の多項式曲線を(x,y)データにフィットさせるために用いられるオブジェクト。

使用法

多項式回帰は、データを式
y = C0 + C1*x + C2*x^2 + ... にフィットさせるために使用します。ここで、xはx座標、C0、C1等は計算される係数です。多項式曲線フィッティングでは、多項式の次数をRegressionオブジェクトのOrder入力フィールドで設定する必要があります。

多項式回帰オブジェクトは、1つの独立変数を持つCoord型、すなわち(x,y)ペアの配列を入力に取ります。入力配列がCoord型でない場合、Coordへの変換が試みられます。入力データがマッピングされている場合（Waveform、Spectrum、またはマッピングされた配列）、Coordへの変換では、マッピング情報を使って(x,y)ペアのx部分が作成されます。入力データがマッピングされていない場合（配列など）、(x,y)ペアのx部分は配列中の位置から暗黙に作成されます。

オープン・ビュー・パラメータ

オープン・ビューのFit Typeフィールドを使って、回帰の種類をlinear、logarithmic、exponential、power curve、polynomial regressionに変更できます。ボタンをクリックすると回帰の種類のリストが表示されます。

Order入力フィールドは、データがフィットされる多項式の次数を設定するために用いられます。多項式フィットの次数は、1以上でなければなりません。1次の多項式フィットではデータは直線にフィットされ、linear regressionと同じになります。

例

Coord変換の例については、Regressionを参照してください。

注記

回帰に関する一般的な注記については、Regressionを参照してください。

場所

Device [image] Regression

その後、適切なFit Typeをダイアログ・ボックスのFit Typeフィールドから選択。

関連項目

Regression、指数回帰、線形回帰、対数回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、polySmooth (x)、べき曲線回帰、Build Coord


polySmooth (x)

データの多項式フィットを使ってデータをスムージングするために用いられるオブジェクト。

使用法

polySmooth(x)は、データをスムージングするために使用します。4次の多項式がデータにフィットされ、多項式によるカーブ・フィッティングに基づいて新しいデータ・ポイントが計算されます。4次のカーブ・フィッティングを実行するには、フィットされるデータ・ポイントの両側2個とそのデータ・ポイント自体の合計5個のデータ・ポイントが使用されます。2個の端点は特別に扱われます。x入力の種類はArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の独立変数は等距離でなければなりません。すなわち、隣接する点の間のX間隔が一定でなければなりません。スムージングは従属変数（Coordのyデータ）だけに対して実行されます。

注記

ここで使用されるのは、5要素のスライディング・ウィンドウを取り、4次のスターリング選点多項式の標準公式を適用する方法です。次の書籍を参照してください: Francis Scheid, Schaum's Outline of Theory and Problems of Numerical Analysis, McGraw Hill, New York, NY, 1968. ISBN #07-055197-9

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

この方法によるフィルタリング操作は、固定の「周波数応答」を持ち、データの最も雑音の多い部分だけを抑圧します。さらに強力な雑音抑圧が必要な場合は、meanSmooth(x,numPts)を参照してください。これを使えばもっと多くの雑音を抑圧できます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: polySmooth

関連項目

meanSmooth (x,numPts)、movingAvg (x,numPts)、Regressionタイプ、Signal Processing


Power

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Powerは、平方根、2乗、対数、指数、常用対数などのべき関数を実行する次のオブジェクトにアクセスするために使用します。

sq(x)

sqrt(x)

cubert(x)

recip(x)

log(x)

log10(x)

exp(x)

exp10(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Power

関連項目

cubert(x)、exp(x)、exp10(x)、log(x)、log10(x)、recip(x)、sq(x)、sqrt(x)、a + b（加算）、a / b（除算）、a ^ b（指数）、a * b（乗算）、a - b（減算）


べき曲線回帰

べき曲線を(x,y)データにフィットさせるために用いられるオブジェクト。

使用法

べき曲線回帰は、データを式y = C0 * x^C1にフィットさせるために使用します。ここで、xはx座標、C0とC1は計算される係数です。

べき曲線回帰オブジェクトは、1つの独立変数を持つCoord型の配列を入力に取ります。すなわち、(x,y)ペアです。入力配列がCoord型でない場合、Coordへの変換が試みられます。入力データがマッピングされている場合（Waveform、Spectrum、またはマッピングされた配列）、Coordへの変換では、マッピング情報を使って(x,y)ペアのx部分が作成されます。入力データがマッピングされていない場合（配列など）、(x,y)ペアのx部分は配列中の位置から暗黙に作成されます。

オープン・ビュー・パラメータ

オープン・ビューのFit Typeフィールドを使って、回帰の種類をlinear、logarithmic、exponential、power curve、polynomial regressionに変更できます。フィールドをクリックすると回帰の種類のリストが表示されます。

例

Coord変換の例については、Regressionを参照してください。

注記

回帰に関する一般的な注記については、Regressionを参照してください。

この関数は、マッピングされない配列に対しては動作しません。マッピングされない配列はx=0を起点としてCoordに変換されますが、これは対数関数での変換には適合しません。対数関数は内部的な回帰計算に用いられます。

場所

Device [image] Regression

その後、適切なFit Typeをダイアログ・ボックスのFit Typeフィールドから選択。

関連項目

Regression、指数回帰、線形回帰、対数回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、多項式回帰、polySmooth (x)、Build Coord


Probability & Statistics

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Probability & Statistics関数群は、乱数、確率、統計計算を扱う問題に使用します。

beta(x,y)

binomial(a,b)

comb(n,r)

erf(x)

erfc(x)

factorial(n)

gamma(x)

logMagDist(x,from,thru,logStep)

magDist(x,from,thru,step)

max(x)

mean(x)

median(x)

min(x)

mode(x)

perm(n,r)

random(low,high)

randomize(x,low,high)

randomSeed(seed)

rms(x)

sdev(x)

vari(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Probability & Statistics

関連項目

beta(x,y)、binomial(a,b)、comb(n,r)、erf(x)、erfc(x)、factorial(n)、gamma(x)、logMagDist (x,from,thru, logStep)、magDist(x, from,thru, step)、max(x)、mean(x)、median(x)、min(x)、mode(x)、perm(n,r)、random (low,high)、randomize (x,low,high)、randomSeed (seed)、rms(x)、sdev(x)、vari(x)


product(x)

入力配列のすべての要素を乗算するオブジェクト。

使用法

product(x)は、入力配列のすべての要素を乗算するために使用します。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64スカラ
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | PComplex Scalar

このオブジェクトの出力（数値型の場合）は、入力コンテナに含まれるすべてのデータの算術積であり、種類はScalarです。

例

xが配列[1, 2, 3, 4]の場合、product(x)は24を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: product

関連項目

a * b（乗算）、sum(x)


programName()

現在実行中のVEEプログラムの名前を返すオブジェクト。

使用法

現在実行中のVEEプログラムの名前を含む完全なパスを返します。この関数はパラメータを取りません。

注記

programName()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、programName()式を持ちます。programName()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: programName

関連項目

installDir、commandLine、Formula


ramp (numElem, from,thru)

リニア・ランプ配列を作成するオブジェクト。

使用法

ramp(numElem,from,thru)は、長さnumElemで、値がfromからthru（両端含む）までのリニア・ランプであるReal64 1次元配列を作成するために使用します。numElemはInt64かまたはそれに変換可能なスカラ・コンテナで、値は0より大きくなければなりません。fromとthruはReal64またはそれに変換可能なスカラ・コンテナでなければなりません。

fromがthruより小さい場合、ランプは正です。そうでなければランプは自動的に負になります。

例

ramp(3, 0.5, 0)は値[0.5, 0.25, 0]の1次元配列を返します。

ramp(5, 2, 10)は値[2, 4, 6, 8, 10]の1次元配列を返します。

注記

戻り値にマッピングはありません。

値を作成するアルゴリズムは次のとおりです。

Y[I] = from + I*(thru-from/numElem-1)
for I=0..numElem-1

これにより、結果配列の最後の要素の値はthruになります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate
Member: ramp

関連項目

Alloc Real64、logRamp (numElem, from,thru)、xramp (numElem, from,thru)


random (low,high)

下限値と上限値の間の乱数を発生するオブジェクト。この関数は、線形合同アルゴリズムと48ビット整数演算を使って擬似乱数を発生します。

使用法

random(low,high)は、lowとhighの値の間の擬似乱数を発生するために使用します。発生された数値は、下限値を含み、上限値を含まない区間に存在します。これを"[l h)"と表します。lおよびh入力はスカラでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64

"[l h)"の範囲内のあらゆる場合に、Real64 Scalarが返されます。

この関数は1つのScalar値だけを出力します。配列入力を使ってスケーリングされた乱数の配列を作成するには、randomize(x,low,high)関数を使用します。

lの値がhの値よりも大きい場合、返される乱数の範囲は"(l h]"となります。

例

random(0,1)は範囲(0.0 1.0)の実数を発生します。すなわち、0.0を含みますが、1.0は含みません。

注記

random(low,high)は"(0.0 1.0)"の範囲内のReal Scalarコンテナを返します。

また、random(low,high)は、プログラムで使用されるたびに、あるいは反復子オブジェクトによって複数回アクティブにされるたびに、異なる数値を返します。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: random

関連項目

randomize (x,low,high)、randomSeed (seed)


randomize (x,low,high)

数値入力コンテナの値を[low high)の範囲内でランダム化するために用いられるオブジェクト。発生された数値は、lowを含み、highを含まない区間に存在します。これを"[low high)"と表します。この関数は、線形合同アルゴリズムと48ビット整数演算を使って擬似乱数を発生します。

このオブジェクトは、[low high]の範囲内のText入力コンテナの文字列をランダム化するためにも使用できます。

使用法

数値の場合:

randomize(x,low,high)は、lowとhighの値の間、すなわち下限値と上限値の間の擬似乱数を発生するために使用します。入力コンテナxのすべてのデータは、擬似乱数で上書きされます。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord、下記参照
Waveform | Waveform
Complex | Complex
PComplex | PComplex、下記参照
Spectrum | Spectrum、下記参照

PComplexおよびSpectrum型の場合、数値の大きさだけが[low high)の範囲内になります。位相は(-PI to PI)の範囲内でランダムです。Coord型の場合、従属変数だけがランダム化されます。

lowおよびhigh入力は、種類がScalarであり、xの型に変換可能な型でなければなりません。発生された乱数は、[low high)の範囲内です。

lowの値がhighの値よりも大きい場合、返される乱数の範囲は(low high]となります。

文字列値の場合:

文字列をランダム化するには、randomize(x,low,high)をTextデータ型の入力値に対して使用します。入力文字列（x入力のデータ・コンテナ）は、[low high]の範囲内の疑似ランダム順のASCII文字の出力文字列で上書きされます。ここで、lowはlow入力コンテナの最初の文字、highはhigh入力コンテナの最初の文字です（数値の場合と異なり、範囲はlowとhighの両方を含みます）。出力文字列の長さは入力文字列と同じです。

lowおよびhighのデフォルト値は、（" "、ASCII 32）とチルダ（"~"、ASCII 126）です。

注記
文字列でlowまたはhighの入力データが""（ヌル文字列）の場合、デフォルト値が用いられます。

例

数値の例:

x入力のコンテナがReal64データ型の場合、randomize(x,0,10)は入力コンテナxのすべての値を(0.0 10.0)の範囲内の実数にランダム化します。すなわち、0.0を含みますが、10.0は含みません。

文字列の例:

randomize("abcdef","a","b")は"abbaba"のようなものを返します。

randomize("abcabcabcab","a","z")は"pterodactyl"のようなものを返します（もしかしたら）。

randomize("abcabc","","")は"Al@z~#"のようなものを返します（lowとhighがヌル文字列なので、デフォルトの範囲であるASCII 32～126が用いられます）。

randomize("aaaaa","go","stop")は"smjpg"のようなものを返します（範囲の決定にはlowとhighの最初の文字だけが用いられます）。

randomize("aaaaa","97","99")は"99999"を返します（lowとhighの値は、ASCII 10進値でなく文字列として解釈されます）。

注記

入力パラメータのマッピングは無視され、出力は入力パラメータxと同じマッピングを持ちます。

x入力が数値の場合、randomize(x)はxと同じサイズと種類のコンテナを返しますが、データは(0.0 - 1.0)の範囲内でランダム化されます。

文字列操作の場合、出力の文字セットはlow = ASCII 32およびhigh = ASCII 126の範囲外には定義できません。すなわち、32より小さいASCII文字や126より大きいASCII文字はランダム化された文字列の出力には使用できません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: randomize

関連項目

random (low,high)、randomSeed (seed)


randomSeed (seed)

random(low,high)およびrandomize(x,low,high)関数の初期値を設定するために用いられるオブジェクト。

使用法

randomSeed(s)は、random(low,high)およびrandomize(x,low,high)関数で用いられる線形合同アルゴリズムの乱数シードの出発点を入力するために使用します。

シード入力sは、種類がScalarで、型はInt32またはInt32に変換可能な型でなければなりません。この関数の戻り値はシード値sです。

例

randomSeed(97)は、擬似乱数アルゴリズムを初期化します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Probability & Statistics
Member: randomSeed

関連項目

random (low,high)、randomize (x,low,high)


re(x)

Complex数xの実数部を返すオブジェクト。

使用法

re(x)は、Complex数xの実数部を抽出するために使用します。xは任意の種類です

可能な入力型 戻り値型

UInt8 | UInt8、同じ値
UInt16 | UInt16、同じ値
Int16 | Int16、同じ値
Int32 | Int32、同じ値
Int64 | Int64、同じ値
Real32 | Real32、同じ値
Real64 | Real64、同じ値
Coord | Coord、同じ値
Waveform | Waveform、同じ値
Complex | Real64、Complex数の実数部の値
PComplex | Real64、Complex数の実数部の値
Spectrum | Real64、Complex数の実数部の値

PComplexは先にComplexに変換されます。

例

re( (1,2) )は1を返します。

Trig ModeがDegreesの場合、re(1,@180)は-1を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Complex Parts
Member: re

関連項目

Complex Parts、conj(x)、im(x)、j(x)、mag(x)、phase(x)、Real Parts

Build Complex、UnBuild Complex


Real Parts

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Real Partsは、コンテナの実数部を返す以下のオブジェクトにアクセスするために使用します。

abs(x)

signof(x)

ordinal(x)

round(x)

floor(x)

ceil(x)

intPart(x)

fracPart(x)

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Real Parts

関連項目

abs(x)、ceil(x)、floor(x)、fracPart(x)、intPart(x)、ordinal(x)、round(x)、signof(x)、Complex Parts


recip(x)

xの値の逆数を返すオブジェクト。

使用法

recip(x)は、数値の逆数、すなわち1をxで割った値を得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplexに対しては、recip(x)は大きさの逆数と位相の符号反転として定義されます。Complexは関数が適用される前にPComplexに変換されます。

例

recip( (5, @45) )は(0.2, @-45)を返します。

recip( (1,-1)) )は(0.5, 0.5)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: recip

関連項目

a / b（除算）、Power、sq(x)、sqrt(x)


rect(x)

値の時系列に方形ウィンドウを適用するために用いられるオブジェクト。

使用法

rect(x)を使うと、xと方形関数のスペクトラム変換とのコンボリューションを取るのと同じ方法で、x中の値をフィルタできます。これにより、周期的信号をサンプリングする際に、入力シーケンスのテールから生じるノイズの一部と、それらから生じる可能性がある不連続性を抑制する効果があります。入力xはArray 1Dでなければなりません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

xがSpectrumの場合、まずifft(x)を使ってWaveformに変換されてから、ウィンドウが適用されます。ウィンドウの結果は、fft(x)を使ってSpectrum型に戻されます。

例

rect([1, 1, 1, 1, 1, 1, 1, 1])は[1, 1, 1, 1, 1, 1, 1, 1]を返します。

注記

rect関数をタイム・ドメインで表すと、0 <= n <= N -1のすべての値に対して1となります。ここで、nは配列中の位置（インデックス）、Nは配列のサイズです。結果はxと同じ型の配列であり、xにマッピングがある場合は同じマッピングを持ちます。

サイドローブ・レベルとコヒーレント利得に関する説明については、次の書籍を参考にしてください:Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: rect

関連項目

bartlet(x)、blackman(x)、convolve(a,b)、fft(x)、hamming(x)、hanning(x)


Regression

メニュー項目。

使用法

Regressionは、さまざまな種類の回帰式をデータにフィットするために使用します。

linear

logarithmic

exponential

power curve

polynomial

注記

すべてのRegressionオブジェクトは、Coord型の配列を入力に取ります。入力配列がCoord型でない場合、Coordに変換されます。Coord型への変換は、以下に示す標準の型変換規則に従います。入力配列がマッピングされていない場合、配列のインデックスから暗黙のxパラメータが作成されます。すなわち、回帰は(x,y)ペアに対して実行されます。xの値は0から始まり、n - 1までです。ここで、nはデータ・ポイントの数です。入力配列がマッピングされている場合、作成されるxデータの範囲は、マッピングの下限値からマッピングの上限値までになります。

回帰では、選択した式にフィットされたデータの配列が出力されます。出力配列のポイント数は、入力データ配列と同じです。もう1つの出力は、回帰の種類ごとの導出された定数に対応する係数の配列です。データがフィットされる式については、個々の回帰の種類を参照してください。3番目の出力は、R2乗または「適合度」と呼ばれる係数です。その範囲は-1～1です。-1または1の場合は正確なフィットであり、-1と1の間の数値はさまざまな適合度の値を示します。

例

マッピングされない配列入力[10, 20, 30, 40, 50]があるとします。これは次のCoord配列に変換されます。

[ (0, 10), (1, 20), (2, 30), (3, 40), (4, 50) ].

入力配列が[1, 2, 3, 4, 5]で、1～2（秒など）にマッピングされている場合、次のCoord配列に変換されます。

[ (1, 1), (1.25, 2), (1.5, 3), (1.75, 4), (2, 5) ].

場所

Device [image] Regression

関連項目

指数回帰、線形回帰、対数回帰、多項式回帰、べき曲線回帰、meanSmooth (x,numPts)、movingAvg (x,numPts)、polySmooth (x)

Properties（オブジェクト）


rms(x)

入力コンテナ中のデータのrms値（実効値）を計算するために用いられるオブジェクト。

使用法

rms(x)は、入力コンテナの実効値を計算するために使用します。rms値は、[(x^2の和)/N]の平方根と定義されます。ここで、Nはポイント数です。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

例

xが配列[1, 2, 3, 4, 5, 11, 12, 13, 14, 34]の場合、rms(x)は13.319159を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: rms

関連項目

max(x)、mean(x)、median(x)、min(x)、mode(x)、sdev(x)、vari(x)


rotate(x, numElem)

配列の要素を回転するために用いられるオブジェクト。

使用法

rotate(x,n)は、入力配列xの要素をn位置だけ回転させるために使用します。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum
Text | Text

入力nは、スカラInt32またはInt32型に変換できるものでなければなりません。回転値nが正の場合、回転方向は配列の前から後ろです。例えば、nが2の場合、配列の最初の要素が3番目の位置（x[2]になり、2番目の要素が4番目の位置（x[3]）になります。nの値が負の場合、配列要素は後ろから前に回転されます。

回転数nが配列の要素数よりも大きい場合、回転数を配列要素で割った余りが実際の回転数となります。例えば、入力配列の要素数が5で、回転数が13の場合、剰余演算(13 MOD 5 = 3)により、実際の回転数は3と決定されます。

例

rotate(x,5)は、入力配列の要素を右方向に5つ分回転させます。

rotate(x,15)は、入力配列xが15要素の場合、何もしません。回転した結果要素が元の位置に戻るからです。

rotate([1, 2, 3, 4, 5], 1)は[5, 1, 2, 3, 4]を返します。

注記

回転関数を使用する場合、配列は循環リストと見なすことができます。すなわち、配列の最後の要素が最初の要素につながります。配列の末尾を超えて配列要素を回転した場合、末尾の要素が先頭に移動します。例えば、10要素の配列に対してrotate(A,5)を実行した場合、10番目の配列要素は5番目の位置に移動します。

入力パラメータのマッピングは無視され、出力は入力パラメータxと同じマッピングを持ちます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: rotate

関連項目

concat(x,y)、init(x,val)


round(x)

xを丸めた値を返すオブジェクト。

使用法

round(x)は、コンテナの値を最も近い整数に丸めた値を得るために使用します。xは任意の種類です。round(x)関数は、xに最も近い整数を（同じ型で）返します。分岐線は0.5にあり、この線上の値は上に丸められます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

round([23.0, 23.1, 23.9, 23.5, (-23.5)])は
[23, 23, 24, 24, -23]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Real Parts
Member: round

関連項目

abs(x)、ceil(x)、Complex Parts、floor(x)、fracPart(x)、intPart(x)、Real Parts


savePanelImage(UFName, fileName, numColors)

UFNameという名前のUserFunctionのパネル・イメージを、ファイルfileNameにピクセル深さnumColorsで保存します。

使用法

savePanelImage(UFName, fileName, numColors)は、VEEのUserFunctionを標準のグラフィックス・ファイルにプログラムから描画するために使用します。これにより、VEEのUserFunctionパネルをレポートで参照できます。UserObjectパネルはsavePanelImage関数ではサポートされません。

プログラムを繰り返し実行した場合、fileNameを変更しない限り、グラフィックス・ファイルは通知なしに上書きされます。

オープン・ビュー

この関数には3つのパラメータがあり、UFNameだけが必須です。

"UFName" - （必須）UserFunctionのタイトル・バーに表示される名前。特別な名前である"Execution Window"（この通りに入力）を"UFName"の代わりに使用することもできます。この名前は二重引用符で囲む必要があります。

"fileName"（オプション）描画したイメージを書き込むファイル。ドライブとディレクトリを含めることもできます。この名前は二重引用符で囲む必要があります。デフォルトのファイル名は、UFNameのベース名を使用します。UFNameがExecution Windowの場合、デフォルトのファイル名はExecutionです。デフォルトの書き込み先は、VEEのデフォルト作業ディレクトリ、すなわち標準のVEEインストールでは"C:\My Documents"です。

fileNameのファイル名拡張子によって、出力ファイルのグラフィックス・フォーマットが決まります。デフォルトのグラフィックス・フォーマットはJPEGです。サポートされるフォーマットは次のとおりです。

.bmp - ビットマップ

.jpg/.jpeg - Joint Photographic Experts Group（JPEG）

numColors（オプション）カラー深さ。これはピクセルあたりの最大色数を指定します。値は2のべき乗（2、4、8、...2M）です。デフォルトは256です。

注記
numColorsはビットマップ・グラフィックス・ファイル（.bmp）だけに適用されます。小さい値を指定すると、結果のファイル・サイズが小さくなり、イメージの明瞭さが低下します。

例

次の例は、my_userfuncという名前のローカルUserFunctionのイメージを描画し、オプションのパラメータに対してはデフォルトを使用してファイルを書き込みます。ファイルはmy_userfunc.jpegという名前でVEEの現在の作業ディレクトリに保存されます。

savePanelImage("my_userfunc")

次の例は前の例に似ていますが、実行ウィンドウを現在の状態で保存します。

savePanelImage("Execution Window")

次の例は、someUFという名前のローカルUserFunctionのイメージを描画し、myimage.jpegという名前のファイルをd:\tmp\somedirにJPEGフォーマットで書き込みます。

savePanelImage("someUF", "d:/tmp/somedir/myimage.jpeg")

次の例は、someUFという名前のローカルUserFunctionのイメージを描画し、myimage.bmpという名前のファイルをd:\tmp\somedirにBMPフォーマットで書き込みます。ファイルはピクセルあたりデフォルトの256色でなく16色で書き込まれます。

savePanelImage("someUF", "d:/tmp/somedir/myimage.bmp", 16)

次の例は、ライブラリlib1にあるstatusPanelという名前のインポートUserFunctionのイメージを描画します。status.jpegという名前のファイルをJPEGフォーマットで/usr/lib/veepanelsディレクトリに書き込みます。

savePanelImage("lib1.statusPanel", "/usr/lib/veepanels/status.jpeg")

注記

savePanelImage()関数は、3つのパラメータに対するデータ入力を持つFormulaオブジェクトに作成されます。savePanelImage()関数の呼び出しを他のFormulaオブジェクトに入力することもできます。

Formulaという名前のコントロール入力を追加することにより、式全体をプログラムで入力することもできます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Panel
Member: savePanelImage

関連項目

Call、Execution Window、hidePanel()、showPanel()、UserFunction


sdev(x)

入力コンテナ中のデータの標準偏差を返すために用いられるオブジェクト。

使用法

sdev(x)は、コンテナの標準偏差を計算するために使用します。sdev(x)はvari(x)の平方根と定義されます。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real32 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord入力型の場合、演算は従属変数に対して実行されます。

例

xが配列[1, 2, 3, 4, 5, 11, 12, 13, 14, 34]の場合、sdev(x)は9.50789を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: sdev

関連項目

max(x)、mean(x)、median(x)、min(x)、mode(x)、rms(x)、vari(x)


setBit(x,n)

xのn番目のビットを1に設定して返すオブジェクト。

使用法

setBit(x,n)は、コンテナxの特定のビットを1に設定するために使用します。xは任意の種類です。xがReal32、Real64、Coord、Waveformのいずれかの型の場合、演算の前にInt32に変換されます。

可能な入力型 |  | 戻り値型
x | n
UInt8 | 0-31 | UInt8
UInt16 |  | UInt16
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

nはInt32またはそれに変換可能な0以上31以下（xがInt64型の場合は0以上63以下）の値のコンテナでなければなりません。nはスカラまたはxと同じ種類でなければなりません。

例

setBit(8,0)は9を返します。

setBit(8.24,0.9)も9を返します。

注記

戻り値のマッピングはxパラメータと同じです。

最下位ビットが右、最上位ビットが左です。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: setBit

関連項目

bit(x,n)、bits(str)、Bitwise、clearBit(x,n)


showPanel()

UserFunctionパネルを表示するオブジェクト。

使用法

showPanel()は、hidePanel()が実行されるか、プログラムの実行が終了するまでUserFunctionパネルを表示するために使用します。showPanel()を使うと、必要な間だけステータス・パネルを表示しておくことができます。showPanel()を使用するには、UserFunctionでShow Panel on Executeの選択が解除されている必要があります。

オープン・ビュー

使用する構文を示すため、3種類のshowPanel()オブジェクトが用意されています。編集フィールドにshowPanel()というテキストを使用する必要があります。どのオブジェクトに対しても、括弧の中に次のパラメータを入力できます。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

x, y - UserFunctionパネルの左上隅（境界およびタイトル・バーが存在する場合はそれらの領域を含む）の位置（ピクセル単位）。このパラメータは省略可能です。xとyの座標を指定しない場合、パネルは作業領域の中央に表示されます。

width, height - パネルのサイズ（ピクセル単位）。このパラメータは省略可能です。widthとheightを指定する場合、x, yパラメータも指定する必要があります。widthとheightを指定しない場合、現在のパネル・サイズが用いられます。widthとheightの設定は、パネルの右下側のスペースを追加または削除し、タイトル・バーと境界が存在する場合はそれらを含みます。

パラメータを入力端子名に置き換えることにより、showPanel()オブジェクトにデータ入力ピンを追加して、任意のパラメータを設定できます。

注記

showPanel()はUserFunctionを実行しません。単にパネル・ビューを表示するだけです。パネルを表示してUserFunctionを実行するには、showPanel()を使用してからUserFunctionを呼び出します。

UserFunctionが動作しているときだけパネル・ビューを表示するには、showPanel()を使用する代わりに、UserFunctionの[Properties]ウィンドウで[Show Panel on Execute]を選択します。

showPanel()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、showPanel(...)式を持ちます。showPanel()（および対応するパラメータ）を、FormulaやSequencerなど、式が使用できる任意のオブジェクトに入力することもできます。

showPanel()式全体を制御ピンから入力することもできます。

VEEでは、ポップアップ・パネルの位置は作業領域のサイズに制限されません。xとyを画面の外（表示領域外）に指定することもできます。

showPanel()で表示されたパネルは、プログラムの実行中のみ表示されます。

一度に表示できるのは、UserFunctionパネルの1つのコピーだけです。showPanel()を同じUserFunction名で複数回呼び出すと、最新のパネル呼び出しが表示され、前回の呼び出しは非表示になります。

表示中のパネルの名前を知るには、パネル上でマウスの右ボタンをクリックすると、パネル名がポップアップします。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Panel
Member: showPanel

関連項目

Call、hidePanel()、lockPosition()、panelPosition()、panelSize()、unlockPosition()、UserFunction


Signal Processing

Function & Object Browserダイアログ・ボックスのBuilt-in FunctionsのCategory。

使用法

Signal Processingは、1次元配列（UInt8、UInt16、Int16、Int32、Real32、Real64、Complex、PComplex、Waveform、Spectrum）および2次元（2フィールド）座標のリストに対して使用できる信号処理関数にアクセスするために使用します。

fft(x)

ifft(x)

convolve(a,b)

xcorrelate(a,b)

bartlet(x)

hamming(x)

hanning(x)

blackman(x)

rect(x)

注記

Signal Processingの下のBuilt-in Functionsは、順序付きの等間隔のデータを表す値の1次元配列に対して使用できます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Signal Processing

関連項目

bartlet(x)、blackman(x)、convolve(a,b)、fft(x)、hamming(x)、hanning(x)、ifft(x)、rect(x)、xcorrelate (a,b)


signof(x)

xの符号を返すオブジェクト。

使用法

signof(x)は、コンテナの符号を得るために使用します。xの種類は任意であり、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32

戻り値は、xの符号に応じて、-1、0、+1のいずれかです。xが負の場合、-1が返されます。xが0の場合、0が返されます。xが正の場合、+1が返されます。

例

signof([23, 0, -1])は[1, 0, -1]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Real Parts
Member: signof

関連項目

abs(x)、Complex Parts、mag(x)


sin(x)

xのサインを返すオブジェクト。

使用法

sin(x)は、xデータのサインを得るために使用します。xは現在のTrig Mode単位と仮定されます。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがRadiansに設定されている場合、sin([0, PI/2])は[0, 1]を返します。

Trig ModeがRadiansに設定されている場合、sin((1, @PI))は(0.84147, @3.14159)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: sin

関連項目

asin(x)、cos(x)、tan(x)、sinh(x)、Trig、Default Preferences


sinh(x)

xのハイパボリック・サインを返すオブジェクト。

使用法

sinh(x)は、xデータのハイパボリック・サインを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

sinh(1.2)は1.509を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: sinh

関連項目

asinh(x), cosh(x)、Trig、sin(x)、tanh(x)


sort(x, direction, field)

データの配列（任意のデータ型）をソートする関数。

使用法

sort関数は、Formulaオブジェクトの中で、入力xのデータ配列をソートするために使用します。すべてのデータ型が使用でき、デフォルトではデータは昇順でソートされます。sortをFormulaオブジェクトで使用する場合、構文は次のとおりです。

sort(x [,direction [,field] ] )

ここで、

direction（オプション）は並び順を指定します。デフォルトは昇順であり、0でない値を指定すると昇順が指定されます。0を指定すると降順でソートされます。

field（オプション）は配列をソートするフィールドを指定します。

実数、整数、Textデータ型の場合、このパラメータは無視されます。

Complexデータ型の場合、0または"real"を指定すると、実数フィールドを使ってソートされます。1または"imag"を指定すると、虚数フィールドを使ってソートされます。3つのパラメータをすべて指定する必要があります。

PComplexデータ型の場合、0または"mag"を指定すると、大きさフィールドでソートされます。1または"phase"を指定すると、位相フィールドを使ってソートされます。3つのパラメータをすべて指定する必要があります。

Coordinateデータ型の場合、配列はデフォルトでは従属フィールド（x-yペアの"y"、x-y-zトリプレットの"z"）を使ってソートされます。0または"x"を指定するとxフィールド、1または"y"を指定するとyフィールド、以下同様に対応するフィールドを使ってソートされます（Coordinateデータ型の場合、フィールド名は常に x、y、z、w、v、u、t、s、r、qです。ただし、入力端子名を変更することは可能です）。

Recordデータ型の場合、配列はデフォルトでは最初のフィールドを使ってソートされます。または、フィールドを番号（0、1など）または名前（"operator"、"date"など）を使って指定できます。

例

sort(x)は実数配列xを昇順でソートします。

sort(x,0)は実数配列xを降順でソートします。

sort(x,1,"real")またはsort(x,1,0)はComplex配列xを実数フィールドを使って昇順でソートします。

sort(x,0,"phase")またはsort(x,0,1)はPComplex配列xを位相フィールドを使って降順でソートします。

sort(x,1,"A")またはsort(x,1,0)はCoordinate配列xを"A"フィールドを使って昇順でソートします。

sort(x,1,1)はRecord配列xを2番目のフィールドを使って昇順でソートします。

注記

Textデータは標準のASCII文字コード順でソートされます。すなわち、大文字は小文字よりも前になります。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Array
Member: sort

関連項目

Formula


sq(x)

xの値の2乗を返すオブジェクト。

使用法

sq(x)は、数値xの2乗（xとそれ自身との乗算）を実行するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

sq([1, 4])は[1, 16]を返します。

sq((1,2))は複素数(-3,4)を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: sq

関連項目

Power、sqrt(x)


sqrt(x)

xの値の平方根を返すオブジェクト。

使用法

sqrt(x)は、数値xの平方根を得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplexに対しては、cubert(x)は大きさの平方根と位相の2分の1として定義されます。Complexは関数が適用される前にPComplexに変換されます。

例

sqrt( (16, @90) )は(4, @45)を返します。

sqrt( (1,1) )は(1.1, 0.455)を返します。

sqrt([4, 9, 64])は[2, 3, 8]を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: sqrt

関連項目

cubert(x)、a ^ b（指数）、Power、sq(x)


Statistics

Probability & Statisticsを参照してください。


strDown(str)

文字列中のすべての英大文字を小文字に変換するオブジェクト。

使用法

strDown(str)は、入力文字列str中の大文字を小文字に変更するために使用します。すべての英大文字（"A"～"Z"）が対応する小文字（"a"～"z"）に変換されます。英文字以外のASCII文字は変更されません。

例

strDown("ABCdefg%+#")は"abcdefg%+#"を返します。

strDown("123456")は"123456"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strDown

関連項目

strRev(str)、strTrim (str,trimlist)、strUp(str)、String


strFromLen (str,from,len)

指定された開始点から指定された長さの副文字列を返すオブジェクト。

使用法

strFromLen(str,from,len)は、入力文字列strのインデックス位置fromから始まる長さlenバイトの副文字列を返します。from = 0の場合、副文字列は入力文字列の先頭から始まります。文字列のインデックスは0から始まります。

注記

lenの値が0以下の場合、ヌル文字列が返されます。

fromの値が入力文字列strの長さより大きい場合、ヌル文字列が返されます。

lenの値が入力文字列strの長さより大きい場合、返される文字列は入力文字列の末尾で終わります。

入力文字列が文字列の配列の場合、入力配列の各要素が別々の文字列として操作されます。戻り値は文字列の配列です。

例

strFromLen("Now is the time",0,6)は"Now is"を返します。

strFromLen("Now is the time",6,9)は" the time"を返します。

strFromLen("Now is the time",0,30)は"Now is the time"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strFromLen

関連項目

strFromThru (str,from, thru)、strPosChar (str,char)、strPosStr (str1,str2)、String


strFromThru (str,from, thru)

指定された開始点から終了点までの副文字列を返すオブジェクト。

使用法

strFromThru(str,from,thru)は、入力文字列strのインデックス位置fromから始まり、インデックス位置thruで終わる副文字列を返します。from = 0の場合、副文字列は入力文字列の先頭から始まります。文字列のインデックスは0から始まります。

注記

fromまたはthruの値が負の場合は0に変換されます。

fromまたはthruの値が入力文字列strの長さより大きい場合、入力文字列の最後の文字のインデックス位置に変換されます。

fromの値が入力文字列strの長さより大きいか、thruより大きい場合、ヌル文字列が返されます。

入力文字列が文字列の配列の場合、入力配列の各要素が別々の文字列として操作されます。戻り値は文字列の配列です。

例

strFromThru("Now is the time",0,6)は"Now is "を返します。

strFromThru("Now is the time",0,0)は"N"を返します。

strFromThru("Now is the time",6,9)は" the"を返します。

strFromThru("Now is the time",0,30)は"Now is the time"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strFromThru

関連項目

strFromLen (str,from,len)、strPosChar (str,char)、strPosStr (str1,str2)、String


String

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

String関数群は、文字列データに対する以下の操作を実行するために使用します。

strDown(str)

strFromLen(str,from,len)

strFromThru(str,from,thru)

strLen(str)

strPosChar(str,char)

strPosStr(str1,str2)

strRev(str)

strTrim(str)

strUp(str)

intToChar(a)

charToInt(a)

注記

文字列関数はすべて、文字列配列の入力を扱うことができます。結果はテキストまたは数値の配列です。操作は入力文字列配列の各要素に対して実行されます。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] String

関連項目

charToInt(a)、intToChar(a)、strDown(str)、strFromLen (str,from,len)、strFromThru (str,from, thru)、strLen(str)、strPosChar (str,char)、strPosStr (str1,str2)、strRev(str)、strTrim (str,trimlist)、strUp(str)


strLen(str)

文字列のバイト単位の長さを求めるために用いられるオブジェクト。

使用法

strLen(str)は、入力文字列strの長さを求めるために使用します。戻り値はバイト数を表すInt32 Scalarです。日本語文字やその他の16ビット文字は1文字で2バイトと数えられます。

注記

入力文字列が配列の場合、各要素の長さが出力配列に返されます。

例

strLen("ABCdefg%+#")は10を返します。

strLen("123456")は6を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strLen

関連項目

String


strPosChar (str,char)

入力文字列str中で文字リストchar中のどれかの文字が存在するインデックスを返すオブジェクト。

使用法

strPosChar(str,char)は、入力文字列str中で文字リストchar中のどれかの文字が最初に現れるインデックスを返すために使用します。文字列のインデックスは0から始まります。

注記

リスト中の文字が複数回現れる場合、最初に見つかった文字のインデックスだけが返されます。

char中の文字が入力文字列str中に見つからない場合、-1が返されます。

strまたはcharがヌル文字列の場合、-1が返されます。

文字の比較は大文字と小文字を区別します。

入力文字列が配列の場合、配列の各要素が別々の文字列として検索されます。文字列要素中の文字の位置が出力配列に返されます。

例

strPosChar("Now is the time","Nwme")は0を返します。

strPosChar("Now is the time","nwme")は2を返します。

strPosChar("Now is the time","x yz ")は3を返します。

strPosChar("Now is the time","")は-1を返します。

strPosChar("Now is the time","xyz")は-1を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strPosChar

関連項目

strFromLen (str,from,len)、strFromThru (str,from, thru)、strPosStr (str1,str2)、String


strPosStr (str1,str2)

文字列str1の中の文字列str2のインデックスを返すオブジェクト。

使用法

strPosStr(str1,str2)は、文字列str1の中で文字列str2が最初に現れるインデックスを返します。すなわち、str1の中でstr2が始まるインデックス位置です。インデックスは0から始まります。

注記

str2がstr1の中に複数回現れる場合、最初に現れた位置のインデックスだけが返されます。

str2がstr1の中に見つからない場合、-1が返されます。

str1またはstr2がヌル文字列の場合、-1が返されます。

文字の比較は大文字と小文字を区別します。

入力文字列が配列の場合、配列の各要素が別々の文字列として検索されます。文字列要素中の文字列の位置が出力配列に返されます。

例

strPosStr("Now is the time","Now")は0を返します。

strPosStr("Now is the time","is the")は4を返します。

strPosStr("Now is the time","")-1を返します。

strPosStr("Now is the time","is The")は-1を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strPosStr

関連項目

strFromLen (str,from,len)、strFromThru (str,from, thru)、strPosChar (str,char)、String


strRev(str)

文字列の順序を反転するために用いられるオブジェクト。

使用法

strRev(str)は、文字列中の文字の順序を反転するために使用します。

注記

入力文字列が配列の場合、戻り値は各要素が反転された文字列配列です。

例

strRev("ABCdefg%+#")は"#+%gfedCBA"を返します。

strRev("123456")は"654321"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strRev

関連項目

strDown(str)、strTrim (str,trimlist)、strUp(str)、String


strTrim (str,trimlist)

文字列の前後からスペース文字とタブ文字を除去するために用いられるオブジェクト。

使用法

strTrim(str)オブジェクトは、入力文字列strの先頭と末尾のスペース文字とタブ文字を除去するために使用します。スペース／タブ以外の最初の文字より前、あるいはスペース／タブ以外の最後の文字より後ろにあるすべてのスペース／タブ文字が除去されます。Formulaオブジェクトの場合、構文は次のようになります。

strTrim(str [,trimlist] )

strTrim(str,trimlist)は、trimlistに含まれる文字をstrから除去するために使用します。これらの文字は、strの先頭または末尾にある場合だけ除去されます。

注記

この関数の構文をstrTrim(str,trimlist)に拡張するには、2つの入力strおよびtrimlistを持つFormulaオブジェクトの中で使用します。この場合、入力文字列strの先頭と末尾にあるtrimlist文字列中の文字が除去されます。

入力文字列が配列の場合、戻り値は各要素が除去処理された文字列配列です。

例

strTrim(" ABCdefg%+#")は"ABCdefg%+#"を返します。

strTrim("eeeABCdefg%+#","eg#")は"ABCdefg%+"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strTrim

関連項目

strDown(str), strRev(str)、strUp(str)、String


strUp(str)

文字列中のすべての英小文字を大文字に変換するために用いられるオブジェクト。

使用法

strUp(str)は、入力文字列str中の小文字を大文字に変更するために使用します。すべての英小文字（"a"～"z"）が対応する大文字（"A"～"Z"）に変換されます。英文字以外のASCII文字は変更されません。

注記

入力文字列が配列の場合、戻り値は各要素が個別の文字列として処理された文字列配列です。

例

strUp("ABCdefg%+#")は"ABCDEFG%+#"を返します。

strUp("123456")は"123456"を返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: String
Member: strUp

関連項目

strDown(str)、strRev(str)、strTrim (str,trimlist)、String


a - b（減算）

2つのオペランドの算術減算を実行するオブジェクト。

使用法

a - bは、1つのコンテナの値から別のコンテナの値を減算するために使用します。2つのコンテナは任意の種類であり、同じ種類が返されます。結果は、オペランドと同じ種類の最も順位の高い型のコンテナです。

可能な入力型 戻り値型

UInt8

2つのオペランドの

うち

順位が高い方の型

UInt16

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果は最も順位が高い型のコンテナです。

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。減算は従属変数（最後の変数）だけに対して実行されます。

例

配列とスカラの減算:[1, 2, 3] - 3は[-2, -1, 0]を返します。

スカラと配列の減算:3 - [1, 2, 3]は[2, 1, 0]を返します。

2つの配列:[4, 5, 6] - [3, 2, 1]は[1, 3, 5]を返します。

2つのComplexスカラ:(2,4) - (1,3)は(1,1)を返します。

2つのCoordスカラ:coord(1,3) - coord(1,5)はcoord(1,-2)を返します。

2つのCoordスカラ:coord(1,3) - coord(2,5)はエラーを返します。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: -

関連項目

a + b（加算）、a / b（除算）、a * b（乗算）


sum(x)

入力配列のすべての要素を合計（加算）するオブジェクト。

使用法

sum(x)は、入力配列のすべての要素を加算するために使用します。x入力は任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64 Scalar
Waveform | Real64 Scalar
Complex | Complex
PComplex | PComplex
Spectrum | PComplex
Text | Text Scalar

このオブジェクトの出力（数値型の場合）は、入力コンテナに含まれるすべてのデータの算術合計であり、Scalarです。Text型の入力の場合、出力はScalar Textコンテナであり、すべてのText要素を連結した1つの文字列を含みます。

sum(x)オブジェクトによるText文字列の加算は、2項演算子+の場合と同じ規則に従います。

例

xが配列[1, 2, 3, 4]の場合、sum(x)は10を返します。

xが配列["first", "second", "third"]の場合、sum(x)は"firstsecondthird"を返します。

注記

オペランドのマッピングは無視されます。

テキスト入力に対するconcat(x,y)とsum(x)関数の違いに注意してください。concat(x,y)は、すべての場合にArray 1Dを作成します。sum(x)関数は、すべてのテキスト文字列を連結して1つの出力文字列を作成します。すなわち、xがScalar Text値"a"でyがScalar Text値"b"の場合、concat(x,y)はArray 1D["a","b"]を返します。これに対して、sum(["a","b"])はText値"ab"を持つScalarコンテナを返します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Array
Member: sum

関連項目

a + b（加算）、concat(x,y)、product(x)


tan(x)

xのタンジェントを返すオブジェクト。

使用法

tan(x)は、xデータのタンジェントを得るために使用します。xは任意の種類で、同じ種類が返されます。xは現在のTrig Mode単位と仮定されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

Trig ModeがDegreesに設定されている場合、tan([0, 45])は[0, 1]を返します。

Trig ModeがRadiansに設定されている場合、tan((1, 2))は(33.8128m, 1.01479)を返します。

Trig ModeがRadiansに設定されている場合、tan((3, @PI/2))は(0.99505, @1.57079)を返します。

注記

マッピングは結果で保持されます。Trig ModeがRadians以外に設定されている場合、有効数字12桁より後には精度の誤差が存在する可能性があります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: tan

関連項目

atan(x)、atan2(y,x)、cos(x)、cot(x)、sin(x)、tanh(x)、Trig、Default Preferences


tanh(x)

xのハイパボリック・タンジェントを返すオブジェクト。

使用法

tanh(x)は、xデータのハイパボリック・タンジェントを得るために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

例

tanh(0.6)は0.537を返します。

注記

マッピングは結果で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: tanh

関連項目

atanh(x)、cosh(x)、Trig、sinh(x)、tan(x)


Time & Date

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Time & Dateは、日付と時刻の変換を実行する次のオブジェクトにアクセスするために使用します。

now()

wday(aDate)

mday(aDate)

month(aDate)

year(aDate)

dmyToDate(d,m,y)

hmsToSec(h,m,s)

hmsToHour(h,m,s)

注記

now()およびdmyToDate(d,m,y)関数は、紀元の開始（紀元0001年1月1日00時00分）からの秒数を出力し、UTC（Universal Coordinated Time）で記録されます。すなわち、地方時とGMT（Greenwich Mean Time）との間のタイム・ゾーンの差に対する補正が適用されます。wday()、mday()、month()、year()の各関数は、UTC型の時刻（now()、dmyToDate()、Time Stamp、Date Time定数の出力）を入力に要求するため、計算の前に補正を除去します。

hmsToSec(h,m,s)およびhmsToHour(h,m,s)は、時間差（経過時間）を変換するだけなので、UTC補正を実行しません。これらの関数の出力をアルファ表示に（一部の時刻フォーマットで）表示した場合、その場所のタイム・ゾーンとUTCとの差の時間数だけずれて表示される場合があります。この情報は、トランザクションに対するアルファTime Stamp表示のDelta Time:時刻選択を使って表示する必要があります。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Time & Date

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、month(aDate)、now()、wday(aDate)、year(aDate)、To String


totSize(x)

コンテナの合計サイズを表すInt32値を返すオブジェクト。

使用法

totSize(x)関数は、Formulaオブジェクトの中で、入力xのコンテナのサイズを求めるために使用します。xがスカラまたは1要素の配列の場合、totSize(x)は値1を返します。

例

x=スカラの場合:totSize(x)は1を返します。

x= [1]の場合:totSize(x)は1を返します。

x= [1, 2]の場合:totSize(x)は2を返します。

x= [ [1, 2] ,[3 ,4] ]の場合:totSize(x)は4を返します。

注記

totSize(x)関数は、Get ValuesオブジェクトのTotSizeピンと同じ働きをします。

このオブジェクトは、0要素の配列を受け入れません。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Array
Member: totSize

関連項目

Formula、Get Values


transpose(x)

2次元配列（行列）の転置行列を計算するために用いられるオブジェクト。

使用法

transpose(x)は、行列の転置行列を返すために使用します。x入力は2次元行列でなければなりません。正方行列である必要はありません。

可能な入力型 戻り値型

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Complex | Complex
PComplex | PComplex
Text | Text

例

xが正方行列[ [1, 2], [3, 4] ]の場合、transpose(x)は
[ [1, 3], [2, 4] ]を返します。

xが行列[ [1, 2, 3], [4, 5, 6] ]の場合、transpose(x)は
[ [1, 4], [2, 5], [3, 6] ]を返します。

注記

オペランドのマッピングは無視され、出力コンテナのマッピングは転置されます。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Matrix
Member: transpose

関連項目

det(x)、identity(x)、inverse(x)


3項演算子

条件が真の場合は1つの式の結果を返し、条件が偽の場合は別の式の結果を返す演算子。

使用法

3項演算子はFormulaオブジェクトで次の構文によって使用します。

(condition ? expression :expression)

conditionが真の場合、最初のexpressionの結果が返されます。

conditionが偽の場合、2番目のexpressionの結果が返されます。

3項演算子は、Formulaオブジェクトまたは式を取る他のオブジェクトの中で使用します。

例

(A<10 ?A*2 :A*3)は、A<10が真の場合はA*2の結果を返し、A<10が偽の場合はA*3の結果を返します。

注記

前後の括弧は必須です。

3項演算子は、"IF/THEN/ELSE"条件テストに便利です。構文はC言語の3項演算子と同じです。

場所

Device [image] Function & Object Browser

Type: Operators
Category: Miscellaneous
Member: (a ? b :c)

関連項目

カンマ演算子、Formula、If/Then/Else、Miscellaneous Operators


Trig

Function & Object BrowserのBuilt-in FunctionsのCategory。

使用法

Trigは、データに対して三角関数を実行する次のオブジェクトにアクセスするために使用します。

acos(x)

acosh(x)

acot(x)

acoth(x)

asin(x)

asinh(x)

atan(x)

atan2(y,x)

atanh(x)

cos(x)

cosh(x)

cot(x)

coth(x)

sin(x)

sinh(x)

tanh(x)

tan(x)

注記

Trig演算はすべてラジアンで実行されます。Trig ModeがDegreesに設定されている場合、関数を実行する前にすべてのコンテナが度からラジアンに変換されます。したがって、最高の性能を得るには、Trig ModeをRadiansに設定します。

場所

Device [image] Function & Object Browser [image] Built-in Functions [image] Trig

関連項目

acos(x)、acosh(x)、acot(x)、acoth(x)、asin(x)、asinh(x)、atan(x)、atan2(y,x)、atanh(x)、cos(x)、cosh(x)、cot(x)、coth(x)、sin(x)、sinh(x)、tanh(x)、tan(x)、Default Preferences


typeName(x)

xのデータ型を返すオブジェクト。

使用法

typeName(x)は、コンテナの現在のデータ型を返すために使用します。xは任意のサイズと種類です。次のいずれかの名前をTextで返します。

VEE 6以上のモード その他のモード

UInt8 | UInt8
UInt16 | UInt16
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real
Complex | Complex
PComplex | PComplex
Text | Text
Enum | Enum
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum
Record | Record
Object | Object

例

xがComplex配列の場合、typeName(x)はComplexを返します。

注記

xがVariantと宣言されている場合、typeName(x)はxの内容のデータ型を返します。例えば、xがVariantで現在Int32の値を持つ場合、typeName(x)はInt32を返します。

場所

場所:Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion

関連項目

isVariant(x)、isVariantBool(x)、isVariantCurrency(x)、isVariantDate(x)、isVariantEmpty(x)、isVariantError(x)、isVariantNull(x)


unlockPosition()

現在表示されているUserFunctionパネルをユーザが移動できるようにするオブジェクト。

使用法

showPanel()を使用してUserFunctionパネルを表示した場合、lockPosition()を使用するかPopupMoveableプロパティをチェックしてユーザがパネルを移動できないようにした後、ユーザがパネルを移動できるようにするには、unlockPosition()を使用します。

オープン・ビュー

unlockPosition()というテキストを使用する必要があります。括弧の中には次のパラメータを入力します。

"UFname" - UserFunctionの名前。この名前は二重引用符で囲む必要があります。このパラメータは必須です。

unlockPosition()オブジェクトにデータ入力ピンを追加してUserFunction名を設定することもできますが、この場合"UFname"を入力端子名に置き換える必要があります。

注記

unlockPosition()オブジェクトは実際にはFormulaオブジェクトであり、入力なしで初期化され、unlockPosition()式を持ちます。unlockPosition()を他の任意のFormulaオブジェクトまたは式に入力することもできます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: unlockPosition

関連項目

Call、hidePanel()、lockPosition()、panelPosition()、panelSize()、showPanel()、UserFunction


vari(x)

入力コンテナのデータの分散を返すオブジェクト。

使用法

vari(x)は、入力コンテナ中のデータの分散を計算するために使用します。xは任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64 Scalar
UInt16 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord入力型の場合、演算は従属変数に対して実行されます。

vari(x)は次のように定義されます。
[(Xi - Xmean)^2の和] / (numPts - 1)
ここで、Xiは個々のデータ・ポイント、Xmeanはデータ・ポイントの平均、numPtsは入力配列xの要素数です。

例

xが配列[1, 2, 3, 4, 5, 11, 12, 13, 14, 34]の場合、
vari(x)は90.4を返します。

注記

オペランドのマッピングは無視されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: vari

関連項目

max(x)、mean(x)、median(x)、min(x)、mode(x)、rms(x)、sdev(x)


wday(aDate)

時刻xの曜日を返すオブジェクト。

使用法

wday(x)は、与えられた時刻xを、同じ種類で曜日を表す0～6の値を持つコンテナに変換するために使用します。値0が日曜、1が月曜、以下同様で6が土曜に対応します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

wday(dmyToDate(2,1,2003))は4を返します。すなわち2003年1月2日は木曜日です。

注記

マッピングは戻り値で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: wday

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、month(aDate)、now()、Time & Date、year(aDate)


xcorrelate (a,b)

2つのデータ配列の相互相関を取るために用いられるオブジェクト。

使用法

xcorrelate(a,b)は、2つの1次元配列aとbの離散相互相関を取るために使用します。結果は、同じ型でサイズが(Na+Nb)-1の配列です。ここで、Naは入力配列aのサイズ、Nbは入力配列bのサイズです。

入力値aとbはArray 1Dでなければなりません。サイズは一致しなくてもかまいません。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

戻り値の型は、入力のうち最も順位の高い型と同じです。結果の値は正規化されません。

例

xcorrelate([1, 2, 3, 4, 5],[3, 2, 1])は[1, 4, 10, 16, 22, 22, 15]を返します。

注記

入力aとbは等間隔のデータを表す必要があります。さらに、aの任意の2つの値の間隔は、bの任意の2つの値の間隔と一致する必要があります。マッピングされていない2つの配列の場合、間隔は常に1と仮定されます。マッピングされた配列の場合、間隔は(Xmax-Xmin)/Nです。ここで、XmaxとXminはマッピング、Nは配列のサイズです。1つの入力がマッピングされており、もう1つがマッピングされていない場合、マッピングされていない入力はマッピングされている入力と同じ周波数でサンプリングされていると仮定されます。結果の値は正規化されません。

xcorrelate(a,b)のアルゴリズムは、離散コンボリューションの標準アルゴリズムとほとんど同じですが、2番目のオペランドの順序が反転されない点だけが異なります。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: xcorrelate

関連項目

convolve(a,b)


xlogRamp (numElem, from,thru)

対数マッピングされた1次元配列の座標変換のx値と同じ方法で対数ランプ配列を作成するオブジェクト。

使用法

xlogRamp(numElem,from,thru)は、長さnumElemで、値がfromからthruまでの対数ランプであるReal64 1次元配列を作成するために使用します。numElemはInt32かまたはそれに変換可能なスカラ・コンテナで、値は0より大きくなければなりません。fromとthruはReal64またはそれに変換可能なスカラ・コンテナでなければなりません。fromがthruより小さい場合、ランプは正です。そうでなければランプは自動的に負になります。fromとthruの値はどちらも0より大きくなければなりません。

例

xlogRamp(3, 1, 100)は値[1, 10, 100]の1次元配列を返します。

注記

戻り値にマッピングはありません。

値を作成するアルゴリズムは次のとおりです。

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem))
for I=0..numElem-1

これにより、結果配列の最後の要素の値は、thruよりも次の値だけ小さくなります。

exp10(log10(thru)-log10(from)/numElem).

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Generate
Member: xlogRamp

関連項目

Alloc Real64、logRamp (numElem, from,thru)、xramp (numElem, from,thru)


a XOR b

2つのオペランドに対して論理排他的OR演算を実行するオブジェクト。

使用法

a XOR bは、2つのコンテナの値のうち1つだけが論理的に真（非0）かどうかを判定するために使用します。2つのコンテナは、任意の型、任意の種類です。コンテナの1つが配列の場合、もう1つはスカラまたはサイズと種類が一致する配列でなければなりません。結果はオペランドと同じ種類のInt32で、値は0または1です。どちらか1つのオペランドだけが非0の場合、XOR演算の値は1です。そうでない場合は値は0です。

両方のオペランドがBoolean型の場合、結果はオペランドと同じ種類のBooleanです。

両方のオペランドの型がCoordの場合、独立変数が正確に一致する必要があります。一致しない場合はエラーが返されます。従属変数（最後の変数）だけがXOR演算の対象となります。

Complex、PComplex、Spectrumのコンテナの場合、どちらかの部分が非0であればオペランドの値は真です。Textはヌルでなければ真です。EnumはTextに変換されて演算されます。

例

2つのBooleanスカラ:True XOR FalseはTrueを返します。

スカラと配列:3 XOR [3, 3, 3]は[0, 0, 0]を返します。

スカラと配列:3 XOR [-3, 0, 3]は[0, 1, 0]を返します。

2つの配列:[1, 2, 3] XOR [0, 1, (-1)]は[1, 0, 0]を返します。

2つのPComplexスカラ:(1,@90) XOR (1,@85)は0を返します。

2つのComplexスカラ:(0,0) XOR (0,1)は1を返します。

2つのComplexスカラ:(0,1) XOR (1,0)は0を返します。

2つのComplexスカラ:(0,0) XOR (0,0)は0を返します。

2つのCoordスカラ:coord(1,3) XOR coord(1,5)は0を返します。

2つのCoordスカラ:coord(1,3) XOR coord(2,3)はエラーを返します。

Textスカラとスカラ数値:"too" XOR 0は1を返します。

Textスカラとスカラ数値:"" XOR 0は1を返します。実数0は"0"に変換され、これはヌル文字列ではないからです。

注記

どちらかのコンテナがマッピングされている場合（すなわち、型がWaveform、Spectrum、Coord、またはその他の型のマッピングされた配列の場合）、もう一方のコンテナはマッピングされていないか、同一のマッピングを持つ必要があります。戻り値はオペランドと同じマッピングを持ちます。そうでない場合はエラーが返されます。

If/Then/Elseデバイスの場合、内部の式がスカラまたは配列（すべて0またはすべて1）に評価される必要があります。

場所

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: XOR

関連項目

a AND b、NOT a、a OR b、Comparison、Conditional、If/Then/Else


xramp (numElem, from,thru)

マッピングされた1次元配列（Waveformなど）の座標変換のx値と同じ方法でリニア・ランプ配列を作成するオブジェクト。

使用法

xramp(numElem,from,thru)は、長さnumElemで、値がfromからthru（thruを含まない）までのリニア・ランプであるReal64 1次元配列を作成するために使用します。numElemはInt32かまたはそれに変換可能なスカラ・コンテナで、値は0より大きくなければなりません。fromとthruはReal64またはそれに変換可能なスカラ・コンテナでなければなりません。

fromがthruより小さい場合、ランプは正です。そうでなければランプは自動的に負になります。

例

xramp(3, 0.5, 0)は値
[0.5, 0.3333, 0.1667]の1次元配列を返します。

xramp(5, 2, 10)は値
[2, 3.6, 5.2, 6.8, 8.4]の1次元配列を返します。

注記

戻り値にマッピングはありません。

値を作成するアルゴリズムは次のとおりです。

Y[I] = from + I*(thru-from/numElem)
for I=0..numElem-1

これにより、結果配列の最後の要素の値は、thruよりも次のサンプリング間隔のサイズだけ小さくなります。(thru-from)/numElem

thru値を含むランプが必要な場合は、ramp(numElem,from,thru)関数を使用します。

場所

Device [image] Function & Object Browser

Type: Built-in Functions
Category: Generate
Member: xramp

関連項目

Alloc Real64、ramp (numElem, from,thru)、xlogRamp (numElem, from,thru)


y0(x)

xの第2種の0次ベッセル関数を計算するために用いられるオブジェクト。

使用法

y0(x)は、xの第2種の0次ベッセル関数を計算するために使用します。xは任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

例

y0(2)は0.510375672649745を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

xの値は正でなければなりません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: y0

関連項目

Ai(x)、Bi(x)、j0(x)、j1(x)、jn(x,n)、y1(x)、yn(x,n)


y1(x)

xの第2種の1次ベッセル関数を計算するために用いられるオブジェクト。

使用法

y1(x)は、xの第2種の1次ベッセル関数を計算するために使用します。xは任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

例

y1(9)は値0.104314575196715を返します。

注記

オペランドのマッピングは無視され、出力コンテナは入力と同じマッピングを持ちます。

xの値は正でなければなりません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: y1

関連項目

Ai(x)、Bi(x)、j0(x)、j1(x)、jn(x,n)、y0(x)、yn(x,n)


year(aDate)

時刻xの年を返すオブジェクト。

使用法

year(aDate)は、与えられた時刻xを、同じ種類で時刻xの年を表すコンテナに変換するために使用します。xは任意の種類で、同じ種類が返されます。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

例

year(dmyToDate(25,12,1991))は1991を返します。

注記

マッピングは戻り値で保持されます。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: year

関連項目

dmyToDate (d,m,y)、hmsToHour (h,m,s)、hmsToSec (h,m,s)、mday(aDate)、now()、month(aDate)、Time & Date、wday(aDate)


yn(x,n)

xの第2種のn次ベッセル関数を計算するために用いられるオブジェクト。

使用法

yn(x,n)は、xの第2種のn次ベッセル関数を計算するために使用します。xは任意のサイズと種類です。

可能な入力型 戻り値型

UInt8 | Real64
UInt16 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord入力型の場合、演算は従属変数に対して実行されます。

nパラメータは、Int32型またはInt32に変換できるものでなければなりません。nパラメータの種類は、Scalarまたはxと同じ種類でなければなりません。

例

yn(10,4)は-0.144949511868093を返します。

注記

2つの入力がともにマッピングされている場合、マッピングは一致する必要があります。どちらかの入力がマッピングされている場合、戻り値は同じマッピングを持ちます。2つの入力がどちらもマッピングされていない場合、出力はマッピングされません。

xの値は正でなければなりません。

場所

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: yn

関連項目

Ai(x)、Bi(x)、j0(x)、j1(x)、jn(x,n)、y0(x)、y1(x)


I/Oトランザクション一覧

表1はVEEのI/Oトランザクションの一覧、表2はVEEのI/Oトランザクション・オブジェクトの一覧です。

表1 I/Oトランザクションの種類一覧

操作

説明

WRITE

オブジェクトで指定された出力先にデータを書き込みます。

READ

オブジェクトで指定されたソースからデータを読み取ります。

EXECUTE

低レベル・コマンドを実行して、オブジェクトに関連するファイル、計測器、インタフェースを制御します。EXECUTEは、ファイル・ポインタの調整、パイプやファイルのクローズ、計測器やハードウェア・インタフェースの低レベル制御などに用いられます。

WAIT

指定された秒数だけ待ってから、次のトランザクションを実行します。

Direct I/Oオブジェクトの場合、WAITは、特定のシリアル・ポール応答、またはアクセス可能なVXI計測器レジスタの特定の値を待つこともできます。

SEND

GPIBインタフェースにIEEE488で定義されたバス・メッセージ（バス・コマンドとデータ）を送信します。

READ(REQUEST)

他のアプリケーションからDDEデータを読み取ります。

WRITE(POKE)

他のアプリケーションにDDEデータを書き込みます。

表2 I/Oトランザクション・オブジェクト一覧

オブジェクト | サポートされるトランザクション
 | EXECUTE | WAIT | READ | WRITE | SEND
To File | X | X |  | X |
From File | X | X | X |  |
To Printer |  | X |  | X |
To String |  | X |  | X |
From String |  | X | X |  |
To/From Socket | X | X | X | X |
Direct I/O | X | X | X | X |
MultiInstrument Direct I/O | X | X | X | X |
Interface Operations | X |  |  |  | X
To/From DDE | X | X | X | X |

関連項目

EXECUTEトランザクション、READトランザクション、SENDトランザクション、WAITトランザクション、WRITEトランザクション


WRITEトランザクション

このセクションでは下の表のWRITEトランザクションについて説明します。最初にすべてのWRITEエンコーディングに当てはまる事柄をまとめて示します。

パス固有動作

WRITEトランザクションが、宛先のI/Oパスに依存して異なる動作を示す場合があります。これらの動作を明らかにするため、ここでは次の用語を使用します。

  • MS-DOSパスは、MS-DOSファイル、文字列、プリンタなどの計測器以外の宛先です。

  • Direct I/Oパスは、Direct I/Oを使用してアクセスする計測器です。

すべてのパスの動作

次の表で説明する動作は、特に記載がない限りすべてのパスにあてはまります。

表 WRITEのエンコーディングとフォーマット

エンコーディング | フォーマット
TEXT | DEFAULT STRING QUOTED STRING BYTE WORD INT16 INT32 INT64 BOOLEAN OCTAL HEX REAL32 REAL64 COMPLEX PCOMPLEX COORD TIME STAMP
BYTE | 適用なし
CASE | 適用なし
BINARY | STRING BYTE WORD INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
BINBLOCK | BYTE WORD INT16 COMPLEX INT32 INT64 BOOLEAN PCOMPLEX REAL32 REAL64 COORD
CONTAINER | 適用なし
STATE a | 適用なし
REGISTER b | BYTE WORD16 WORD32 REAL32
MEMORY b | BYTE WORD16 WORD32 REAL32 WORD32*2 REAL64
IOCONTROL c | 適用なし

a. GPIBへのDirect I/Oのみ

b. VXIへのDirect I/Oのみ

c. GPIOへのDirect I/Oのみ


TEXTエンコーディング

WRITE TEXTトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList [Format]

ExpressionList は、1つの式か、カンマで区切った式のリストです。

Formatは、次の表にリストしたフォーマットの1つを指定するオプション設定です。

表 WRITE TEXTトランザクションのフォーマット

フォーマット | 説明
DEFAULT | VEEは、書き込み中のアイテムのデータ型に基づいて適切なテキスト表現を自動的に決定します。
STRING | テキスト・データを変換せずに書き込みます。数値データ型を、最も大きな数値精度のTextとして書き込みます。
QUOTED STRING | データをSTRINGと同じフォーマットで書き込みます。ただし、データを二重引用符（ASCII 10進34）で囲みます。
BYTE | データを8ビット2の補数整数として10進形式で書き込みます。
WORD | データを16ビット2の補数整数として10進形式で書き込みます。
INT16 | データを16ビット2の補数整数として10進形式で書き込みます。
INT32 | データを32ビット2の補数整数として10進形式で書き込みます。
INT64 | データを64ビット2の補数整数として10進形式で書き込みます。
BOOLEAN | データを論理定数（真または偽）として書き込みます。
OCTAL | データを32ビット2の補数整数として8進形式で書き込みます。
HEX | データを32ビット2の補数整数として16進形式で書き込みます。
REAL32 | データを32ビット浮動小数点数として、固定10進表記や科学的記数法を含むさまざまな表記で書き込みます。
REAL64 | データを64ビット浮動小数点数として、固定10進表記や科学的記数法を含むさまざまな表記で書き込みます。
COMPLEX | 複素数を表す64ビット浮動小数点数のカンマ区切りペアを書き込みます。最初の数値は実数部を、2番目の数値は虚数部を表します。
PCOMPLEX | 複素数を表す64ビット浮動小数点数のカンマ区切りペアを書き込みます。最初の数値は振幅を、2番目の数値はトランザクションで指定した位相単位の位相角を表します。
COORD | 直交座標を表す64ビット浮動小数点数のカンマ区切りシリーズを書き込みます。
TIME STAMP | 実数（now()関数の出力など）を意味のある形式に変換し、それを年、月、日、時刻のさまざまな組み合わせで書き込みます。

関連項目

BINARYエンコード、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


DEFAULTフォーマット

WRITE TEXT（デフォルト）トランザクションは、次の形式を取ります。

WRITE TEXT ExpressionList

ExpressionList は、1つの式か、カンマで区切った式のリストです。

このトランザクションは、ExpressionList 中の各項目を意味のある文字列に変換して書き込みます。下に示すように、スカラ変数X を書き込む単純な例を考えます。

  • Xに次のようなテキストが含まれる場合:

bird cat dog

変換は行われず、トランザクションは12文字を出力します。

  • Xに次のようなスカラ整数が含まれる場合:

8923 Xの値（10進記法）

数値はテキストに変換され、VEEは4文字を書き込みます。

  • Xに次のようなスカラ実数値が含まれる場合:

1.2345678901234567 Xの値（17桁のスカラ実数値）

最大16桁の有効数字が書き込まれます。有効数字の末尾の桁は、VEEの内部2進形式と10進表記との変換のために近似値となります。このスカラ実数値を次のトランザクションで使用した場合:

WRITE TEXT a EOL

VEEは次の内容を書き込みます。

1.234567890123457 16桁の値

数値の絶対値が非常に大きいか小さい場合、指数表記が用いられます。Coord、Complex、PComplexの要素であるRealも同様に処理されます。

WRITE TEXT DEFAULTトランザクションでEOL ONが指定されている場合、そのオブジェクトの[EOL Sequence]フィールドに指定された文字が、ExpressionList中の最後の文字の後で書き込まれます。


STRINGフォーマット

WRITE TEXT STRINGトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList STR

ExpressionList は、1つの式か、カンマで区切った式のリストです。

WRITE TEXT STRINGトランザクションは、基本的にWRITE TEXT（デフォルト）トランザクションと同じ動作をします（1つの例外については後で説明します）。重要な違いは、STRINGの場合、フィールド幅、位置合わせ、文字数などの出力フォーマットの詳細を指定できることです。

フィールド幅と位置合わせ

トランザクションにDEFAULT FIELD WIDTHを指定した場合、ExpressionList中の項目をTextに変換した結果の文字だけが書き込まれます。

トランザクションにFIELD WIDTH: Fを指定した場合、変換後のTextが、F文字幅のスペース内に右または左揃えで書き込まれます。

下のトランザクションは、すべての文字を20文字のフィールド内に左揃えで書き込むことを指定します。

WRITE TEXT X STR FW:20 LJ EOL
WRITE TEXT Y STR FW:20 LJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

bird cat dog

12345678901234567

^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。dogの右側と2番目の7の右側にある文字はスペース（ASCIIの10進32）です。

位置合わせをRIGHT JUSTIFYに変更した場合、トランザクションは次のようになります。

WRITE TEXT X STR FW:20 RJ EOL
WRITE TEXT Y STR FW:20 RJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

bird cat dog

12345678901234567

^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。birdの左側と、最初の1の左側にある文字は、スペース（ASCIIの10進32）です。

文字列の長さが指定されたフィールド幅を超える場合、文字列全体が書き込まれます。フィールド幅の指定によって文字列が切り詰められることはありません。文字を切り捨てるのはMAX NUM CHARSだけです。

下のトランザクションは、すべての文字を4文字のフィールド幅に左揃えで書き込むことを指定します。

WRITE TEXT X STR FW:4 LJ

Xが次の値を持つ場合:

bird cat dog XのText値、12文字

VEEは次の内容を書き込みます。

bird cat dog 12文字すべて

指定されたフィールド幅は4文字ですが、トランザクションは文字列の12文字すべてを書き込みます。

文字数

ALL CHARSを指定した場合、ExpressionList中の各項目を変換した結果のすべての文字が書き込まれます。MAX NUM CHARS: Mを指定した場合、ExpressionList中の各項目の最初のM文字までが書き込まれます。

下のトランザクションは、各フィールドに最大7文字を書き込み、フィールド幅が20文字で、フィールドの内容を左揃えにすることを指定しています。

WRITE TEXT X STR:7 FW:20 LJ EOL
WRITE TEXT Y STR:7 FW:20 LJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

bird ca

1234567

^ ^

Yの数値はTextに変換され、その文字が切り詰められます。MAX NUM CHARSは数値を丸めません。

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。birdの右側と、最初の1の右側にある文字は、スペース（ASCIIの10進32）です。

Direct I/Oによる配列の書き込み

Direct I/Oパスに配列を書き込むWRITE TEXT STRトランザクションは、Direct I/Oオブジェクトの[Array Separator]設定を無視します。これらのトランザクションは常に、書き込む配列の各要素（文字列）をラインフィード（ASCIIの10進10）で区切ります。この動作は、ほとんどの計測器のニーズに合致しています。

注記

配列に関するこの特別な動作は、他の種類のトランザクションには当てはまりません。


QUOTED STRINGフォーマット

WRITE TEXT QUOTED STRINGトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList QSTR

ExpressionListは、1つの式か、カンマで区切った式のリストです。

一般的に、STRINGフォーマットに関して説明した動作は、QUOTED STRINGフォーマットにも当てはまります。STRINGとQUOTED STRINGの違いは次の2点です。

QUOTED STRINGでは、二重引用符（ASCIIの10進34）が文字列の先頭と末尾に追加されます。二重引用符が付加されるのは、指定されたフィールド幅に文字列を合わせるためのパディング・スペースが追加される前です。

二重引用符の間の文字列の中にある制御文字（ASCIIの10進0～31）、エスケープ文字、および文字'（ASCIIの10進39）と"（ASCIIの10進34）は、特別な扱いを受けます。

フィールド幅と位置合わせ

DEFAULT FIELD WIDTHを指定した場合、ExpressionList中の項目をTextに変換した結果の文字と、前後の二重引用符だけが書き込まれます。

FIELD WIDTH: Fを指定した場合、変換後のTextと前後の引用符が、F文字幅のスペース内に右または左揃えで書き込まれます。

下のトランザクションは、すべての文字を引用符付き文字列として20文字幅のフィールド内に左揃えで書き込むことを指定します。

WRITE TEXT X QSTR FW:20 LJ EOL
WRITE TEXT Y QSTR FW:20 LJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

"bird cat dog"

"12345678901234567"

^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。dog"の右側と7"の右側にある文字はスペース（ASCIIの10進32）です。

位置合わせをRIGHT JUSTIFYに変更した場合、トランザクションは次のようになります。

WRITE TEXT X QSTR FW:20 RJ EOL
WRITE TEXT Y QSTR FW:20 RJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

"bird cat dog"

"12345678901234567"

^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。"birdの左側と"1の左側にある文字はスペース（ASCIIの10進32）です。

文字列の長さが指定されたフィールド幅を超える場合、文字列全体が出力されます。フィールド幅の指定によって文字列が切り詰められることはありません。文字を切り捨てるのはMAX NUM CHARSだけです。

下のトランザクションは、すべての文字を4文字のフィールド内に左揃えで書き込むことを指定します。

WRITE TEXT X QSTR FW:4 LJ

Xが次の値を持つ場合:

bird cat dog XのText値、12文字

VEEは次の内容を書き込みます。

"bird cat dog" 12文字すべて

文字数

ALL CHARSを指定した場合、ExpressionList中の各項目を変換した結果のすべての文字と、前後の二重引用符が書き込まれます。MAX NUM CHARS: Mを指定した場合、ExpressionList中の各項目の最初のM文字までに加えて、前後の二重引用符が書き込まれます。すなわち、ExpressionList中の各項目に対して、合計M+2文字が書き込まれます。

下のトランザクションは、MAX NUM CHARS:7（フィールド幅20、左揃え）を指定しています。

WRITE TEXT X QSTR:7 FW:20 LJ EOL
WRITE TEXT Y QSTR:7 FW:20 LJ EOL

XとYが次の値を持つ場合:

bird cat dog XのText値

12345678901234567 YのReal値

VEEは次の内容を書き込みます。

"bird ca"

"1234567"

^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。ca"の右側と7"の右側にある文字はスペース（ASCIIの10進32）です。

埋め込まれた制御／エスケープ文字

ここでは、制御文字とエスケープ文字という用語は特別な意味を持ちます。制御文字とは、ASCIIの10進0～31に対応する1バイトのデータです。例えば、ラインフィードはASCIIの10進10であり、ここでは記号<LF>でラインフィード文字を表します。文字列\nは、ラインフィードを人間が読める形で表したもので、VEEが認識するエスケープ文字です。VEEは引用符中でエスケープ文字を使って制御文字を表現します。

下の図にエスケープ文字を示します。

エスケープ文字 | ASCIIコード（10進） | 意味
\n | 10 | 改行
\t | 9 | 水平タブ
\v | 11 | 垂直タブ
\b | 8 | バックスペース
\r | 13 | キャリッジ・リターン
\f | 12 | フォーム・フィード
\" | 34 | 二重引用符
\' | 39 | 一重引用符
\\ | 92 | バックスラッシュ
\ddd |  | 3桁の8進値dddに対応するASCII文字。

下のトランザクションは、埋め込まれたさまざまなエスケープ文字の効果を示します。

WRITE TEXT X QSTR EOL

  • Xが次の値を持つ場合:

bird\ncat dog

VEEはDirect I/Oパスに次の内容を書き込みます。

"bird<LF>cat dog"

ここで<LF>は、1文字のラインフィード（ASCIIの10進10）を表します。

  • Xが次の値を持つ場合:

bird \"cat\" dog

VEEはシリアル・インタフェース用のDirect I/Oパスに次の内容を書き込みます。

"bird \"cat\" dog"

同じトランザクションとデータに対して、VEEはGPIBインタフェース用のDirect I/Oパスに次の内容を書き込みます。

"bird ""cat"" dog"

GPIBインタフェースに対するこの独自の動作は、IEEE 488.2の要件をサポートするためのものです。


INTEGERフォーマット

WRITE TEXT INTEGERトランザクションは、次の形式を取ります。

WRITE TEXT ExpressionList BYTE

WRITE TEXT ExpressionList WORD

WRITE TEXT ExpressionList INT16

WRITE TEXT ExpressionList INT32

WRITE TEXT ExpressionList INT64

ExpressionListは、1つの式か、カンマで区切った式のリストです。

このトランザクションで作成される整数の型を下の表に示します。これらの数値を表現するために出力される文字は、+-0123456789だけです。

INTEGERフォーマット | トランザクションで作成される整数の型 | 整数の範囲
BYTE | 8ビット2の補数符号なし整数 | 0～+255
WORD | 16ビット2の補数符号なし整数 | 0～+65535
INT16 | 16ビット2の補数整数 | -32768～+32767
INT32 | 32ビット2の補数整数 | -2147483648～+2147483647
INT64 | 64ビット2の補数整数 | 9223372036854775808～ +9223372036854775807

VEEは、ExpressionListの各アイテムをInt64、Int32、Int16、UInt16、UInt8のいずれかのデータ型に変換してから、最終フォーマット用のテキストに変換しようとします。VEEは通常の変換規則に従います。詳細については、[Help] => [Contents and Index] => [Tell Me About...] のデータ型変換トピックを参照してください。

Real32またはReal64をUInt8、UInt16、INT16、INT32、INT64フォーマットで出力した場合:

• 対応する整数型の有効範囲外の実数値は、エラーを発生します。

• 対応する整数型の有効範囲内の実数値は、実数の小数部を切り捨てることにより変換されます。

桁数

DEFAULT NUM DIGITSを指定した場合、トランザクションは、整数の値を表すために必要な数字だけを書き込みます。先頭のゼロは使用されません。

MIN NUM DIGITS:Mを指定した場合、トランザクションは、全体が正確にM桁になるように先頭にゼロを付けて出力を埋めます。

次の2つのInt16またはInt32トランザクションを考えます。これらのトランザクションは、出力桁数の指定だけが異なります。

WRITE TEXT X INT16 EOL デフォルトの桁数
WRITE TEXT X INT16:6 EOL 6桁

または

WRITE TEXT X INT32 EOL デフォルトの桁数

WRITE TEXT X INT32:6 EOL 6桁

Xが次の値を持つ場合:

4567

VEEは次の内容を書き込みます。

4567

004567

MIN NUM DIGITSによって出力文字列の切捨てが起きることはありません。下のトランザクションは、最小桁数を1に指定します。

WRITE TEXT X INT16:1 EOL

または

WRITE TEXT X INT32:1 EOL

Xが次の値を持つ場合:

12345678

VEEは次の内容を書き込みます。

12345678 8桁全部

符号プレフィックス

オプションで、WRITE TEXT INTトランザクションの一部として下の表にリストした符号プレフィックスの1つを指定することができます。

プレフィックス | 説明
/- | 正の数値を書き込むときには、プレフィックスを付けません。+もスペースもありません。負の数値を書き込むときには、必ず-プレフィックスを付けます。
+/- | 正の数値を書き込むときには、必ず+プレフィックスを付けます。負の数値を書き込むときには、必ず-プレフィックスを付けます。
" "/- | 正の数値を書き込むときには、必ずスペース（ASCII 10進32）プレフィックスを付けます。負の数値を書き込むときには、必ず-プレフィックスを付けます。

プレフィックスの符号はMIN NUM DIGITSのカウントに含まれません。下のトランザクションは、正の数と負の数の明示的な先頭符号を指定します。

WRITE TEXT X INT16:6 SIGN:"+/-" EOL
WRITE TEXT Y INT32:6 SIGN:"+/-" EOL

XとYが次の値を持つ場合:

123 Xの整数値

-123 Yの整数値

VEEは次の内容を書き込みます。

+000123 6桁と符号

-000123


OCTALフォーマット

WRITE TEXT OCTALトランザクションは次の形式を取ります。

   WRITE TEXT ExpressionList OCT

ExpressionListは、1つの式か、カンマで区切った式のリストです。

このトランザクションによって書き込まれる整数の型は、64ビットの2の補数整数です。これらの整数の範囲は-9223372036854775808から+9223372036854775807です。これらの8進数を表現するために出力される文字は、01234567だけです。オプションのプレフィックスを指定でき、プレフィックスにはその他の文字を含めることができます。

VEEは、OCTALフォーマットを使用して出力されたデータをInt64データ型に変換してから、最終フォーマット用のテキストに変換しようとします。通常のVEE変換規則に従います。

実数がOCTALフォーマットを使用して書き込まれている場合:

  • 実数値がInt64の有効範囲を超えると、エラーが発生します。

  • Int64の有効範囲内にある実数値は、実数の小数部を切り捨てることにより変換されます。

桁数

DEFAULT NUM DIGITSとMIN NUM DIGITSの動作は、WRITE TEXT INTEGERトランザクションの桁数の説明の場合と同じです。

8進プレフィックス

WRITE TEXT OCTALトランザクションの一部として下の表にリストしたプレフィックスの1つを指定することができます。

プレフィックス | 説明
NO PREFIX | VEEは、プレフィックスを付けずに各8進数を書き込みます。出力には数字01234567のみが現れます。
DEFAULT PREFIX | Direct I/Oパスの場合、VEEは各8進数にプレフィックス#Qを付けます。これによりIEEE 488.2によって規定された8進Non-Decimal Numericデータ・フォーマットがサポートされます。
PREFIX:string | VEEは、各8進数にstringで指定された文字をプレフィックスとして付けます。

下のトランザクションは、デフォルトのプレフィックスと6個の数字を指定します。

WRITE TEXT X OCT:6 PREFIX EOL

  • Xが次の値を持つ場合:

15 値10進15

VEEはDirect I/Oパスに次の内容を書き込みます。

#Q000017 正確に6個の数字とプレフィックス

下のトランザクションは、カスタムのプレフィックスと10個の数字を指定します。

WRITE TEXT X OCT:10 PREFIX:"oct>" EOL

  • Xが次の値を持つ場合:

15 整数値10進15

VEEはDirect I/Oパスに次の内容を書き込みます。

oct>000017

DEFAULT PREFIXによって書き込まれるプレフィックスは宛先に依存しますが、PREFIX: stringによって書き込まれるプレフィックスは宛先に関係しません。


HEXフォーマット

WRITE TEXT HEXトランザクションは、次の形式を取ります。

   WRITE TEXT ExpressionList HEX

このトランザクションによって書き込まれる整数の型は、64ビットの2の補数整数です。整数の範囲は-9223372036854775808から+9223372036854775807です。これらの16進数を表現するために出力される文字は、0123456789abcdefだけです。オプションのプレフィックスを指定でき、プレフィックスにはその他の文字を含めることができます。

WRITE TEXT HEXの動作は、WRITE TEXT OCTALの動作とほぼ同じです。違いは、使用可能なプレフィックスのセットとDEFAULT PREFIXの動作だけです。

16進プレフィックス

WRITE TEXT HEXトランザクションには、下のリストのプレフィックスの1つを指定できます。

プレフィックス | 説明
NO PREFIX | VEEは、各16進数を書き込む際にプレフィックスを付けません。出力には数字0123456789abcdefのみが現れます。
DEFAULT PREFIX | Direct I/Oパスの場合、VEEは各16進数にプレフィックス#Hを付けます。これによりIEEE 488.2によって規定された16進Non-Decimal Numericデータ・フォーマットがサポートされます。
PREFIX:string | VEEは、各16進数にstringで指定された文字をプレフィックスとして付けます。

下のトランザクションは、デフォルトのプレフィックスと6個の数字を指定します。

WRITE TEXT X HEX:6 PREFIX EOL

Xが次の値を持つ場合:

15 整数値10進15

VEEはDirect I/Oパスに次の内容を書き込みます。

#H00000f 正確に6個の数字とプレフィックス

下のトランザクションは、カスタムのプレフィックスと3個の数字を指定します。

WRITE TEXT X HEX:3 PREFIX:"hex>" EOL

Xが次の値を持つ場合:

15 整数値10進15

VEEはDirect I/Oパスに次の内容を書き込みます。

hex>00f 正確に3個の数字とプレフィックス

DEFAULT PREFIXによって書き込まれるプレフィックスは宛先に依存しますが、PREFIX: stringによって書き込まれるプレフィックスは宛先に関係しません。


REAL32およびREAL64フォーマット

WRITE TEXT REAL32トランザクションは次の形式を取ります。

WRITE TEXT ExpressionList REAL32

このトランザクションで生成されるReal数値の型は、32ビットのIEEE 754浮動小数点数です。これらの数値の範囲は次のとおりです。

-3.40282347E38 ～ 3.40282347E38

WRITE TEXT REAL64トランザクションは次の形式を取ります。

WRITE TEXT ExpressionList REAL64

このトランザクションで生成されるReal数値の型は、64ビットのIEEE 754浮動小数点数です。これらの数値の範囲は次のとおりです。

-1.797 693 134 862 315E+308 ～ 1.797 693 134 862 315E+308

これらの数値を表現するために出力される文字は、+-.0123456789Eだけです。

表記法と桁

WRITE TEXT REALトランザクションには、オプションで下記の表記法の1つを指定できます。

表記法 | 説明
STANDARD | VEEは、各Real値を固定小数点表記（必要に応じて小数点を使用、指数なし）と指数表記のどちらで書き込むかを自動的に判定します。有効数字でない0は書き込まれません。
FIXED | VEEは各Real値を固定小数点で書き込みます。小数点以下の値は、NUM FRACT DIGITSで指定された小数点以下の桁数に収まるように自動的に丸められます。小数点以下の桁数を指定された桁数に合わせるために、必要に応じて末尾に0が追加されます。
SCIENTIFIC | VEEは各Real値を指数表記で書き込みます。各指数には、明示的な符号（+または-）と、大文字のEが常に用いられます。小数点以下の値は、NUM FRACT DIGITSで指定された小数点以下の桁数に収まるように自動的に丸められます。小数点以下の桁数を指定された桁数に合わせるために、必要に応じて末尾に0が追加されます。

下のトランザクションには、STANDARD表記法と4桁の有効数字が指定されています。

WRITE TEXT X REAL32 STD:4 EOL
WRITE TEXT Y REAL64 STD:4 EOL
WRITE TEXT Z REAL32 STD:4 EOL

X、Y、Zが次の値を持つ場合:

1.23456E2 XのReal32値

1.23456E09 YのReal64値

1.23 ZのReal32値

VEEは次の内容を書き込みます。

123.5 仮数部は必要に応じて丸められる

1.235E+09 大きい数値は指数表記

1.23 末尾の0はなし

下のトランザクションには、FIXED表記法と小数点以下4桁が指定されています。

WRITE TEXT X REAL64 FIX:4 EOL
WRITE TEXT Y REAL32 FIX:4 EOL
WRITE TEXT Z REAL64 FIX:4 EOL

X、Y、Zが次の値を持つ場合:

1.2345678E2 XのReal64値

1.2345678E-09 YのReal32値

1.23 ZのReal64値

VEEは次の内容を書き込みます。

123.4568 仮数部は必要に応じて丸められる

0.0000 小さい数値は0に丸められる

1.2300 必要に応じて末尾に0が追加される

下のトランザクションには、SCIENTIFIC表記法と小数点以下4桁が指定されています。

WRITE TEXT X REAL32 SCI:4 EOL
WRITE TEXT Y REAL64 SCI:4 EOL
WRITE TEXT Z REAL32 SCI:4 EOL

X、Y、Zが次の値を持つ場合:

1.2345678E2 XのReal32値

-1.2345678E-09 YのReal64値

0 ZのReal32値

VEEは次の内容を書き込みます。

1.2346E+02 指数部はEと2桁の符号付き数値

-1.2346E-09 最後の桁は必要に応じて丸められる

0.0000E+00 必要に応じて末尾に0が追加される


COMPLEX、PCOMPLEX、COORDフォーマット

COMPLEX、PCOMPLEX、COORDは、それぞれ同じ名前のVEEのマルチフィールド・データ型に対応します。これら3つのフォーマットの動作はよく似ています。このセクションに示す動作は、特に注記しない限り3つのフォーマットすべてに当てはまります。

VEEのComplex、PComplex、Coordデータ型が複数のReal数値から構成されるように、COMPLEX、PCOMPLEX、COORDフォーマットは基本的にREAL64フォーマットの複合形式です。マルチフィールド・データ型を構成するReal値のそれぞれは、単独のREAL64フォーマットの値に適用されるのと同じ出力規則を使って書き込まれます。

マルチフィールド・フォーマットを使用するトランザクションの最後の出力は、当該オブジェクトの[Multi-Field Format]設定によって影響されます。[Multi-Field Format]にアクセスするには、Direct I/Oオブジェクトの場合は [I/O] => [Instrument Manager]、その他のオブジェクトの場合はオブジェクト・メニューの[Config]を使用します。[Multi-Field Format]の可能な2つの設定を次に示します。

Data Only.これは、マルチフィールド・データ・フォーマットを、括弧なしの数値をカンマで区切ったリストで出力します。

(...) Syntax.これは、マルチフィールド・データ・フォーマットを、括弧でくくった数値をカンマで区切ったリストで出力します。

以下の例は上記の動作を示します。

COMPLEXフォーマット

WRITE TEXT COMPLEXトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList CPX

下のトランザクションは、固定小数点記法、明示的な先頭の符号、10文字のフィールド幅、右揃えを指定しています。

WRITE TEXT X CPX FIX:3 SIGN:"+/-" FW:10 RJ EOL

  • [Multi-Field Format]が(...) Syntaxに設定されており、Xが次の値を持つ場合:

( -1.23456 , 9.8 ) XのComplex値

VEEは次の内容を書き込みます。

( -1.235 , +9.800)

^ ^ ^ ^

  • [Multi-Field Format]がData Onlyに設定されており、Xが同じ値を持つ場合、VEEは次の内容を書き込みます。

-1.235, +9.800

^ ^ ^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。+の左側にある文字はスペース（ASCIIの10進32）です。

(...) Syntaxの場合、Complex数値の実数部と虚数部の10文字のフィールドの間は、スペース、カンマ、スペースのシーケンスで区切られます。どちらの[Multi-Field Format]の場合も、実数部と虚数部のそれぞれに対して別々の10文字のフィールドがあります。括弧と、区切り文字のカンマとスペースは、フィールドには含まれません。

PCOMPLEXフォーマット

WRITE TEXT PCOMPLEXトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList PCX

PCOMPLEXフォーマットでは、書き込む極座標複素数の位相単位を指定できます。位相単位は、[Properties]の[Trig Mode]で設定された単位とは無関係です。下の図を参照してください。

単位 | 説明
DEG | 度
RAD | ラジアン
GRAD | グラジアン

下の1つめのトランザクションは度単位の位相測定、2つめのトランザクションはラジアン単位の位相測定を示します。

WRITE TEXT X PCX:DEG STD EOL
WRITE TEXT X PCX:RAD STD EOL

[Multi-Field Format]がData Onlyに設定されており、Xが次の値を持つ場合:

(-1.23456, @90) XのPComplex値、位相は度単位

VEEは次の内容を書き込みます。

1.23456,-90

1.23456,-1.570796326794897

下のトランザクションは、ラジアン単位の位相測定、固定小数点記法、小数点以下3桁、明示的な先頭の符号、10文字のフィールド幅、右揃えを指定しています。

WRITE TEXT X PCX:RAD FIX:3 SIGN:"+/-" FW:10 RJ EOL

  • [Multi-Field Format]が(...) Syntaxに設定されており、Xが次の値を持つ場合:

(-1.23456 , @9.8) XのPComplex値、角度はラジアン

VEEは次の内容を書き込みます。

( +1.235 , @ +0.375)

^ ^ ^ ^

すべてのPComplex数は、大きさが正になり、位相が+pと-pの間に入るように正規化されます。

  • [Multi-Field Format]がData Onlyに設定されており、Xが同じ値を持つ場合、VEEは次の内容を書き込みます。

+1.235, +0.375

^ ^ ^ ^

キャレット文字（^）はフィールド幅を見やすくするためのもので、実際には書き込まれません。-の左側と+の左側にある文字はスペース（ASCIIの10進32）です。

COORDフォーマット

WRITE TEXT COORDトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList COORD

COORDフォーマットの動作は、COMPLEXフォーマットと同じです。ただ1つ異なる点は、COORDのフィールド数が任意であるのに対して、COMPLEXのフィールド数が2に決まっていることです。


TIME STAMPフォーマット

WRITE TEXT TIME STAMPトランザクションは次の形式を取ります。

WRITE TEXT ExpressionList [DATE:DateSpec] [TIME:TimeSpec]

ExpressionListは、1つの式か、カンマで区切った式のリストです。

DateSpecは、以下の既定義の日付と時刻の組み合わせの1つです。

Date

Time

Date&Time

Time&Date

Delta Time

Dateを含むトランザクションを指定した場合、DateSpecとしてWeekday DD/Month/YYYYまたはDD/Month/YYYYを指定することもできます。

Timeを含むトランザクションを指定した場合、TimeSpec を指定することもできます。TimeSpec は、次の既定義の時刻フォーマットの組み合わせです。

HH:MM（時:分）

HH:MM:SS（時:分:秒）

12 HOUR（12時間制）

24 HOUR（24時間制）

ExpressionList中の各項目は、Realに変換され、日付／時刻として解釈されます。このReal数値は、AD 1年1月1日午前0時（UTC）からの経過秒数を示します。このReal数を得る最も一般的な方法は、Time Stampオブジェクトの出力を使用することです。TIME STAMPフォーマットを使って、このReal数値を、人間が見てわかる日付または時刻を含む文字列に変換することができます。

TIME STAMPは、さまざまな表記による日付と時刻の書き込みをサポートします。Real値が次の値を持つ場合:

62806574669.31164

TIME STAMPは以下の任意のTimeおよびDate表記を使用してこれを書き込むことができます。

表記法

結果

DateとWeekday
DD/Month/YYYY

Thu 04/Apr/1999

TimeとHH:MM:SS、24 HOUR

15:44:29

Date&TimeとWeekday
DD/Month/YYYY、HH:MM:SS、
24 HOUR

Thu 04/Apr/1999 15:44:29

Time&DateとHH:MM:SS、24 HOUR、

Weekday DD/Month/YYYY

15:44:29 Thu 04/Apr/1999

Delta TimeとHH:MM:SS

17446270:44:29

DateとWeekday
DD/Month/YYYY

Thu 04/Apr/1999

DateとDD/Month/YYYY

04/Apr/1999

TimeとHH:MM:SS、24 HOUR

15:44:29

TIMEとHH:MM、24 HOUR

15:44

TIMEとHH:MM:SS、24 Hour

15:44:29

TIMEとHH:MM:SS、12 Hour

3:44:29 PM


BYTEエンコード

BYTEトランザクションは次の形式を取ります。

WRITE BYTE ExpressionList

ExpressionListは、1つの式か、カンマで区切った式のリストです。

VEE 5以下の実行モードでは、ExpressionList中の各項目はInt16（16ビット2の補数整数）に変換され、下位8ビットが書き込まれます。VEE 6実行モードでは、ExpressionList中の各項目はUInt8（8ビット2の補数整数）に変換されて書き込まれます。これは計測器に1文字を書き込むためのトランザクションです。ExpressionList中の各式はスカラでなければなりません。

VEE 6以上の実行モードでは、256より大きい値はエラーになります。例えば、VEE 5以下の実行モードの場合、下のトランザクションはどちらも次の文字データ出力を生成します。

ABCAA

WRITE BYTE 65,66,67
WRITE BYTE 65+1024,65+2048

VEE 6以上の実行モードでは、2番目のトランザクションはエラーになります。

関連項目

BINARYエンコード、TEXTエンコーディング、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


CASEエンコード

WRITE CASEトランザクションは次の形式を取ります。

WRITE CASE ExpressionList1 OF ExpressionList2

ExpressionListは、1つの式か、カンマで区切った式のリストです。

VEEはExpressionList1中の各項目を整数に変換し、ExpressionList2へのインデックスとして使用します。ExpressionList2中のインデックスで指定された項目が、WRITE TEXT（デフォルト）と同じ文字列フォーマットで書き込まれます。

ExpressionList2中の項目のインデックスは0から始まります。

下のトランザクションは、CASEフォーマットの動作を表します。

WRITE CASE 2,1 OF "Str0","Str1","Str2"
WRITE CASE X OF 1,1+A,3+A

変数が次の値を持つ場合:

2 XのReal32値

0.1 AのReal64

VEEは次の内容を書き込みます。

Str2Str1

3.1

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


BINARYエンコード

WRITE BINARYトランザクションは次の形式を取ります。

WRITE BINARY ExpressionList DataType

ExpressionListは、1つの式か、カンマで区切った式のリストです。

DataTypeは、以下の既定義のVEEデータ型の1つです。

  • Boolean - 32ビット2の補数整数

  • BYTE - 8ビット符号なしバイト

  • WORD - 16ビット2の補数の符号なし整数

  • INT16 - 16ビット2の補数整数

  • INT32 - 32ビット2の補数整数

  • INT64 - 64ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

  • REAL64 - 64ビットIEEE 754浮動小数点数

  • STRING - ヌル終了文字列

  • COMPLEX - 2個のREAL64と同等

  • PCOMPLEX - 2個のREAL64と同等

  • COORD - 2個以上のREAL64と同等

注記

VEE 5以下の実行モードでは、すべての整数値はINT32データ型として、すべての実数値はReal（REAL64とも呼ぶ）データ型として記憶され、処理されます。したがって、INT16およびREAL32データ型は入出力専用に用意されています。VEE 5以下の実行モードでは、出力トランザクションでの計測器I/Oで次のデータ型変換が行われます。

INT32値は個別にINT16値に変換され、計測器に出力されます。ただし、INT16データ型の範囲は-32768～ 32767なので、この範囲外の値は16ビットに切り捨てられます。

REAL64値は個別にREAL32値に変換され、計測器に出力されます。ただし、REAL32データ型の範囲はREAL64データ型よりも小さいので、この範囲外の値はREAL32に変換できず、エラーを生じます。

VEE 6実行モードでは、データは適切な型に変換され、データが範囲外の場合はエラーが発生します。

BINARYエンコード・トランザクションは、ExpressionListに指定された値のそれぞれを、DataTypeに指定されたVEEデータ型に変換します。変換された項目のそれぞれは、指定されたバイナリ・フォーマットで書き込まれます。ただし、書き込まれるバイナリ・データはコンピュータ・メモリ上の表現のコピーなので、コンピュータ・アーキテクチャやハードウェアが異なると共有できない場合があります。

BINARYエンコード・データはサイズが小さいという利点があります。READ BINARYトランザクションは、対応するWRITE BINARYのデータを読み取ることができます。

BINARYエンコードは、各データ型の数値部分だけを書き込みます。例えば、TEXTエンコードでComplexやCoordのデータを書き込むときに使用される括弧やカンマは、BINARYエンコードでは書き込まれません。

同様に、配列を書き込む場合、BINARYエンコードは配列区切り文字を書き込みません。WRITE BINARYトランザクションではEOL ONを指定できます。BINARYトランザクションでEOLを書き込む必要がある場合はほとんどありません。数値データ型は固定長であり、文字列はヌル終了だからです。

関連項目

TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


BINBLOCKエンコード

WRITE BINBLOCKトランザクションは次の形式を取ります。

WRITE BINBLOCK ExpressionList DataType

ExpressionListは、1つの式か、カンマで区切った式のリストです。

DataTypeは、以下の既定義のVEEデータ型の1つです。

  • Boolean - 32ビット2の補数整数

  •  BYTE - 8ビット符号なしバイト

  • WORD - 16ビット2の補数の符号なし整数

  •  INT16 - 16ビット2の補数整数

  •  INT32 - 32ビット2の補数整数

  •  INT64 - 64ビット2の補数整数

  •  REAL32 - 32ビットIEEE 754浮動小数点数

  •  REAL64 - 64ビットIEEE 754浮動小数点数

  •  COMPLEX - 2個のREAL64と同等

  •  PCOMPLEX - 2個のREAL64と同等

  •  COORD - 2個以上のREAL64と同等

BINBLOCKは、ExpressionListの各項目を別々のデータ・ブロックとして書き込みます。用いられるブロック・ヘッダは、WRITEを実行するオブジェクトの種類と、オブジェクトの設定に依存します。

GPIB以外のBINBLOCK

オブジェクトがGPIBへのDirect I/Oでない場合、WRITE BINBLOCKは常にIEEE 488.2の固定長任意ブロック応答データ・ブロックを出力します。このデータ・フォーマットは主にDirect I/Oを使ったGPIB機器との通信に用いられますが、他のオブジェクトでもサポートされます。

各固定長任意ブロックは次の形式を取ります。

#<Num_digits><Num_bytes><Data>

ここで、

  • #はそのままの#文字です。

  • <Num_digits>は、1つの10進数字に対応するASCII文字で、<Num_bytes>の桁数を表します。

  • <Num_bytes>は、10進数字に対応するASCII文字のリストで、その後の<Data>のバイト数を表します。

  • <Data>は任意の8ビット・データ・バイト列です。

GPIB BINBLOCK

オブジェクトがGPIBへのDirect I/Oの場合、WRITE BINBLOCKトランザクションの動作は、Direct I/Oの[Conformance]および[Binblock]設定に依存します。これらの設定は、[I/O] DE; [Instrument Manager]からアクセスできます。

[Conformance]がIEEE 488.2に設定されている場合、WRITE BINBLOCKは常にIEEE 488.2の固定長任意ブロック応答データ・ブロックを出力します。

[Conformance]がIEEE 488に設定されている場合、使用されるヘッダの種類は[Binblock]に依存します。[Binblock]には、IEEE 728 #A、#T、#Iのいずれかのブロック・ヘッダを指定できます。[Binblock]がNoneの場合、WRITE BINBLOCKはIEEE 488.2の固定長任意ブロック応答データ・ブロックを出力します。

IEEE 728ブロック・ヘッダの形式は次のとおりです。

#A<Byte_Count><Data>

#T<Byte_Count><Data>

#I<Data><END>

ここで、

  • #はそのままの文字です。

  • A、T、Iはそのままの文字です。

  • <Byte_Count>は2つのバイトから構成される16ビットの符号なし整数で、この後の<Data>部分のバイト数を指定します（これはVEEが自動的に計算します）。

  • <Data>は任意のバイト列です。

  • <END>は、送信される最後のデータ・バイトとともにEOIがアサートされることを示します。

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


CONTAINERエンコード

WRITE CONTAINERトランザクションは次の形式を取ります。

WRITE CONTAINER ExpressionList

ExpressionListは、1つの式か、カンマで区切った式のリストです。

WRITE CONTAINERトランザクションは、ExpressionList中の各項目を、特殊なVEEテキスト表現を使って書き込みます。

この表現は、書き込むデータ型に関するVEEのすべての属性（種類、サイズ、名前など）を保持しています。WRITE CONTAINERデータは、READ CONTAINERを使って情報の損失なしに読み取ることができます。

例えば、次のトランザクションは:

WRITE CONTAINER 1.2345

次の内容を書き込みます。

(Real

(data 1.2345)

)

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


STATEエンコード

WRITE STATEトランザクションは次の形式を取ります。

WRITE STATE [DownloadString]

DownloadStringはオプションの文字列であり、対応する計測器のDirect I/O設定でダウンロード文字列を指定していない場合に、ダウンロード文字列を指定します。これについてはこの後で詳しく説明します。

WRITE STATEトランザクションは、計測器にラーン・ストリングをダウンロードするために、Direct I/Oオブジェクトによって用いられます。Direct I/Oオブジェクトの各インスタンスに対応するラーン・ストリングはただ1つです。このラーン・ストリングをアップロードするには、Direct I/Oのオブジェクト・メニューで[Upload]をクリックします。初めて[Upload]を選択する前には、ラーン・ストリングにはヌル文字列が含まれます。

WRITE STATEの動作は、Direct I/Oの[Conformance]および[Download String]設定によって影響されます。これらの設定にアクセスするには、[I/O] => [Instrument Manager]メニュー項目を使用します。[Conformance]が[IEEE 488]の場合、WRITE STATEトランザクションは[Download String]の後にラーン・ストリングを書き込みます。[Conformance]がIEEE 488.2の場合、IEEE 488.2の定義に基づいて、ラーン・ストリングはプレフィックスなしでダウンロードされます。WRITE STATEトランザクションの詳細については、VEEでの計測器の制御を参照してください。

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、REGISTERエンコーディング、MEMORYエンコード、IOCONTROLエンコード


REGISTERエンコーディング

WRITE REGISTERは、VXI計測器のA16メモリに値を書き込むために使用します。

WRITE REGISTERトランザクションは次の形式を取ります。

WRITE REG:SymbolicName ExpressionList INCR

または

WRITE REG:SymbolicName ExpressionList

ここで、

SymbolicNameは、VXI計測器の設定時に定義された名前です。この名前は、計測器のレジスタ・スペース内の特定のアドレスを指します。WRITE REGISTERトランザクションに用いるデータ型は次のとおりです。

  • BYTE - 8ビット符号なしバイト

  • WORD16 - 16ビット2の補数整数

  • WORD32 - 32ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

  • WORD32*2 - Int32配列の隣接要素内の2個の32ビット2の補数整数

  • REAL64 - 64ビット

これらのデータ型はVXI計測器の構成中にも指定されますが、トランザクションには現れません。

ExpressionListは、1つの式か、カンマで区切った式のリストです。

INCRは、SymbolicNameによって指定されたレジスタ・アドレスから増分を開始するアドレスに配列データを書き込むように指定します。配列の最初の要素は、開始アドレスに書き込まれます。2番目は、そのアドレスにデータ型のバイト単位の長さに等しいオフセットを足したアドレスに書き込まれます。すべての配列要素が書き込まれるまでこの操作が続きます。INCRがトランザクションで指定されていない場合、SymbolicNameによって指定された1つの場所に配列全体が書き込まれます。

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、MEMORYエンコード、IOCONTROLエンコード


MEMORYエンコード

WRITE MEMORYは、VXI計測器のA24またはA32メモリに値を書き込むために使用します。

WRITE MEMORYトランザクションは次の形式を取ります。

WRITE MEM:SymbolicName ExpressionList INCR

または

WRITE MEM:SymbolicName ExpressionList

ここで、

SymbolicNameは、VXI計測器の設定時に定義された名前です。この名前は、計測器の拡張メモリ内の特定のアドレスを指します。WRITE MEMORYトランザクションに用いるデータ型は次のとおりです。

BYTE - 8ビット符号なしバイト

  • WORD16 - 16ビット2の補数整数

  • WORD32 - 32ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

  • WORD32*2 - Int32配列の隣接要素内の2個の32ビット2の補数整数

  • REAL64 - 64ビットIEEE 754浮動小数点数

これらのデータ型はVXI計測器の構成中にも指定されますが、トランザクションには現れません。

ExpressionListは、1つの式か、カンマで区切った式のリストです。

INCRは、SymbolicNameによって指定されたメモリ位置を先頭として順次後ろに配列データを書き込むように指定します。配列の最初の要素は、指定位置に書き込まれます。2番目は、その位置にデータ型のバイト単位の長さに等しいオフセットを足した位置に書き込まれます。すべての配列要素が書き込まれるまでこの操作が続きます。INCRがトランザクションで指定されていない場合、SymbolicNameによって指定された1つのメモリ位置に配列全体が書き込まれます。

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、IOCONTROLエンコード


IOCONTROLエンコード

WRITE IOCONTROLトランザクションは次の形式を取ります。

WRITE IOCONTROL CTL ExpressionList

または

WRITE IOCONTROL PCTL ExpressionList

ExpressionListは、1つの式か、カンマで区切った式のリストです。

IOCONTROLエンコードは、GPIOインタフェースへのDirect I/Oでのみ用いられます。

このトランザクションは、GPIOインタフェースのコントロール・ラインを設定します。

WRITE IOCONTROL CTL a

VEEはaの値を整数に変換します。整数値の下位X ビットがインタフェースのコントロール・ラインにマッピングされます。ここで、Xはコントロール・ラインの数です。

例えば、HP 98622A GPIOインタフェースには、CTL0とCTL1の2つのコントロール・ラインがあります。 .

書き込まれる値 | CTL1 | CTL0
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

上の表で、1はコントロール・ラインがアサートされること、0はクリアされることを示します。このトランザクションは、GPIOインタフェースのコンピュータからドライブされるハンドシェーク・ラインを制御します。

WRITE IOCONTROL PCTL a

aの値が0でない場合、PCTLラインがセットされます。値が0の場合、操作は行われません。PCTLは、周辺機器がハンドシェーク要件を満たしたときに、インタフェースによって自動的にクリアされます。

関連項目

BINARYエンコード、TEXTエンコーディング、BYTEエンコード、CASEエンコード、BINBLOCKエンコード、CONTAINERエンコード、STATEエンコード、REGISTERエンコーディング、MEMORYエンコード


READトランザクション

読み取りのエンコーディングとフォーマットについては、次の表を参照してください。

エンコーディング | フォーマット
TEXT | CHAR TOKEN STRING QUOTED STRING BYTE INT16 INT32 INT64 BOOLEAN OCTAL HEX REAL32 REAL64 COMPLEX PCOMPLEX COORD TIME STAMP
BINARY | STR BYTE INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
BINBLOCK | BYTE INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
CONTAINER | 適用なし
IOSTATUS | 適用なし
REGISTERa | BYTE WORD16 WORD32 REAL32
MEMORYa | BYTE WORD16 WORD32 WORD32*2 REAL32 REAL64

a.VXIへのDirect I/Oのみ


TEXTエンコーディング

READ TEXTトランザクションは、無関係なものを読み取って破棄し、重要なものを選択的に読み取ることができます。ほとんどの場合問題なく機能しますが、時々はVEEが何を無関係と見なし、何を重要と見なすかを慎重に解析する必要があります。

VEEが書き込んだテキスト・ファイルを読み取る場合、書き込みに使用するフォーマットと読み取りに使用するフォーマットが同じである限り、READ TEXTトランザクションが問題になることはめったにありません。問題は、ファイルを別のソフトウェア・アプリケーションからインポートしようとしたときによく起こります。

次の表に、READ TEXTの動作の一般的な説明を示します。考えられるバリエーションをすべて理解するため、後に続くセクションもすべてお読みください。

フォーマット | 説明
CHAR | 任意の8ビット文字を読み取ります。
TOKEN | 文字の連続リストをトークンと呼ばれるユニットとして読み取ります。トークンは、指定した区切り文字で区切られています（区切り文字は自分で指定します）。たとえば、通常の英語の文章では、単語がトークンで、スペースが区切り文字です。
STRING | 8ビット文字のリストをユニットとして読み取ります。ほとんどの制御文字が読み取られて破棄されます。指定した文字数を読み取ったか、改行文字が見つかったときに文字列が終了に達します。
QSTRING | 開始と終了の二重引用符文字（ASCII 34）によって定義されたIEEE 488.2任意長さ文字列に適合した、8ビット文字のリストを読み取ります。制御文字は破棄されません。エスケープされた文字が対応する制御文字に展開されます。二重引用符文字（ASCII 34）が読み取られたときに文字列が終了に達します。
BYTE | 文字のリストを読み取り、8ビット整数の10進表現または非10進表現として解釈します。10進INTEGERの一部であると見なされる文字は、0123456789-+だけです。VEEは、プレフィックス0x（16進）とIEEE 488.2によって指定されたすべてのNon-Decimal Numericフォーマット、#H（16進）、#Q（8進）、#B（2進）を認識します。
INTEGER16 | 文字のリストを読み取り、16ビット整数の10進表現または非10進表現として解釈します。10進INTEGERの一部であると見なされる文字は、0123456789-+だけです。VEEは、プレフィックス0x（16進）とIEEE 488.2によって指定されたすべてのNon-Decimal Numericフォーマット、#H（16進）、#Q（8進）、#B（2進）を認識します。
INTEGER32 | 文字のリストを読み取り、32ビット整数の10進表現または非10進表現として解釈します。10進INTEGERの一部であると見なされる文字は、0123456789-+だけです。VEEは、プレフィックス0x（16進）とIEEE 488.2によって指定されたすべてのNon-Decimal Numericフォーマット、#H（16進）、#Q（8進）、#B（2進）を認識します。
INTEGER64 | 文字のリストを読み取り、64ビット整数の10進表現または非10進表現として解釈します。10進INTEGERの一部であると見なされる文字は、0123456789-+だけです。VEEは、プレフィックス0x（16進）とIEEE 488.2によって指定されたすべてのNon-Decimal Numericフォーマット、#H（16進）、#Q（8進）、#B（2進）を認識します。
BOOLEAN | 文字のリストを読み取り、論理値データとして解釈します。
OCTAL | 文字のリストを読み取り、整数の8進表現として解釈します。OCTALの一部と見なされる文字は01234567です。8進数のIEEE 488.2 Non-Decimal Numericプレフィックス#Qも認識されます。
HEX | 文字のリストを読み取り、整数の16進表現として解釈します。HEXの一部であると見なされる文字は、0123456789abcdefABCDEFだけです。文字の組み合わせ0xはデフォルト・プレフィックスです。数値の一部ではなく、読み取られて無視されます。VEEは、0xと16進数のIEEE 488.2 Non-Decimal Numericプレフィックス#Hも認識します。
REAL32 | 文字のリストを読み取り、実数32ビット（浮動小数点）数の10進数表現として解釈します。先頭の符号、符号付き指数、小数点を含むすべての一般的な表記が認識されます。REAL32の一部と見なされる文字は0123456789-+.Eeです。 VEEは、特定の文字をReal数のサフィックス・マルチプライヤとして認識します（この表を参照してください）。
REAL64 | 文字のリストを読み取り、実数64ビット（浮動小数点）数の10進数表現として解釈します。先頭の符号、符号付き指数、小数点を含むすべての一般的な表記が認識されます。REALの一部と見なされる文字は0123456789-+.Eeです。 VEEは、特定の文字をReal数のサフィックス・マルチプライヤとして認識します（この表を参照してください）。
COMPLEX | 2つのREAL64に相当する読み取りを行い、複素数として解釈します。読み取られた最初の数値は実数部、2番目の数値は虚数部です。
PCOMPLEX | 2つのREAL64に相当する読み取りを行い、極座標形式の複素数として解釈します。一部の工学分野では「フェーザ表記」と呼ばれます。読み取られた最初の数値は振幅、2番目の数値は角度と見なされます。トランザクションの位相の測定単位を指定できます。
COORD | 2つ以上のREAL64に相当する読み取りを行い、直交座標として解釈します。
TIME STAMP | カレンダーの日付／時刻を表す、指定されたVEEタイム・スタンプ・フォーマットの1つを読み取ります。

関連項目

BINARYエンコード、BINBLOCKエンコード、CONTAINERエンコード、IOSTATUSエンコード、REGISTERエンコーディング、MEMORYエンコード


READ TEXTの一般的な注記

EOFまでの読み取り

READ TEXTフォーマットでは、特定の数の要素を読み取るかEOFに達するまで読み取るかを選択できます。トランザクションのNumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。

1次元目がアスタリスク（*）の場合、トランザクションはEOFに達するまでデータを読み取ります。EOFまでの読み取りがサポートされるのは以下のオブジェクトだけです。

  • From File

  • From String

  • From StdIn

  • Execute Program

1次元目に限って、数値の代わりにアスタリスクを使用できます。

たとえば、次のトランザクションでファイルを読み取ると、

READ TEXT a REAL ARRAY:*,10

EOFに達するまで読み取られ、10列の2次元配列が得られます。行の数は、ファイル中のデータ量に依存します。読み取られるデータ要素の総数は、既知の次元サイズの積（この例では10）で割り切れる必要があります。この条件を満たさないと、エラーが発生します。

読み取り当たりの文字数

次のREAD TEXTフォーマットでは、DEFAULT NUM CHARSまたはMAX NUM CHARSを選択できます。

STRING

INT16

INT32

INT64

BOOLEAN

OCTAL

HEX

REAL32

REAL64

このセクションでは、上記フォーマットに対するDEFAULT NUM CHARSとMAX NUM CHARSの効果について説明します。

DEFAULT NUM CHARSとMAX NUM CHARSの基本的な違いは次のとおりです。

DEFAULT NUM CHARSの場合、期待する数値または文字列の一部であると思われない大部分の文字は、読み取られて無視されます。

MAX NUM CHARSの場合、指定した数値型または文字列型を構築するため、指定数の8ビット文字まで読み取ることができます。VEEは、READが満たされると文字の読み取りを中止します。すべての文字が読み取られ、VEEがそれらをトランザクションで指定されたデータ型に変換しようとします。

DEFAULT NUM CHARSを指定した場合、トランザクションは、各変数に入力するために必要な数の文字を読み取ります。指定されたデータ型に対して意味のない文字は、読み取られて無視されます。

MAX NUM CHARSを指定した場合、指定されたデータ型に対して意味のない文字でも区別されません。意味のない文字があった場合、それらが読み取られ、後でエラーを生成する可能性があります。

どちらの場合も、改行とファイルの末尾（EOF）が文字列または数値の終端文字として認識されます。数値フォーマットの場合、有効な文字（数字）の前にあるホワイト・スペースは読み取られて無視されます。有効な文字の読み取り後にホワイト・スペースまたはその他の数字以外の文字が見つかると、現在のREADが終了します。これらは一般的な動作です。詳細については、後の例をお読みください。

この例では、INT32フォーマットを使用してDEFAULT NUM CHARSとMAX NUM CHARSの動作の違いを明らかにします。次のデータを含むファイルを読み取るものとします。

bird dog cat 12345 horse

読み取る文字の数に関係なく、MAX NUM CHARSを使用したREAD TEXT INT32トランザクションでこのデータから整数12345を抽出するのは不可能です。文字bird dog catが常に数字より先に読み取られ、それらを整数に変換できないためエラーが発生するからです。

DEFAULT NUM CHARSは、bird dog catを読み取って無視し、5の後のホワイト・スペースを区切り文字として処理することで整数12345を抽出します。

引用符付き文字列の効果

引用符付き文字列の存在は、すべてのI/Oパスに対するREAD TEXT QSTRとREAD TEXT TOKENの動作、および計測器またはインタフェースI/Oに対するREAD TEXT STRINGの動作に影響を与えます。この説明における引用符付き文字列は、最初と最後に二重引用符を持つ、埋め込まれた（エスケープされない）二重引用符を持たない文字の集合です。二重引用符はASCIIの10進34です。二重引用符の存在は、READトランザクションが文字を文字列とトークンにグループ化する方法、および埋め込み制御文字／エスケープ文字を処理する方法に影響します。

ここでは、制御文字とエスケープ文字という用語は特定の意味を持ちます。制御文字とは、ASCIIの10進0～31に対応する1バイトのデータです。例えば、ラインフィードはASCIIの10進10であり、ここでは記号<LF>でラインフィード文字を表します。文字列\nは、ラインフィードを人間が読める形で表したもので、VEEが認識するエスケープ文字です。

引用符付き文字列を処理するときのトランザクションの動作は、特定のI/Oパスに依存します。計測器I/O以外のすべてのI/Oパスでは、READ TEXT QSTRが引用符付き文字列を特別な方法で処理します。計測器I/O以外のすべてのI/Oパスでは、READ TEXT STRINGが引用符付き文字列を認識しません。

計測器I/Oの場合、READ TEXT QSTRトランザクションはありません。代わりにREAD TEXT STRINGが引用符付き文字列を認識し、適切に処理します。こうした処理が行われるのは、IEEE 488.2仕様で引用符付き文字列が特別の意味を持つからです。計測器I/Oを含むすべてのI/Oパスで、READ TEXT TOKENが引用符付き文字列を特別な方法で処理します。次の説明では、I/OパスをファイルI/Oと想定しています。

文字列の最初と最後に二重引用符がない場合、ラインフィード以外の制御文字は、READ TEXT STRINGトランザクションおよびSPACE DELIMを指定するREAD TEXT TOKENトランザクションによって読み取られて破棄されます。STRINGトランザクションでもTOKENトランザクションでも、ラインフィードによってREADが終了します。\n（改行）などのエスケープ文字シーケンスは、単に\とnの2個の文字として読み取られます。

二重引用符付き文字列内では、READ TEXT QSTRとREAD TEXT TOKENがすべての囲まれた文字（制御文字を含む）を読み取り、それらを入力変数に格納します。埋め込みラインフィードは、読み取られて他の文字と同様に処理されます。現在のREADは終了しません。エスケープ文字シーケンスは、読み取られて対応する1個の文字に変換されます。

グループ化の効果を説明するには、例を用いるのが有効です。このセクションの残りの説明では、データとして下に示す内容を持つファイルを読み取ります。

"This is in quotes."This is not.

以下のトランザクションを持つFrom Fileを使用して上のファイルを読み取ります。

READ TEXT x QSTR

READ TEXT y QSTR

ファイル読み取り後の結果は次のとおりです。

x = This is in quotes.

y = This is not.

二重引用符は区切り文字として解釈され、入力変数に現れません。

今度は以下のトランザクションを持つFrom Fileを使用して上のファイルを読み取ります。

READ TEXT x QSTR MAXFW:4

READ TEXT y QSTR

ファイル読み取り後の結果は次のとおりです。

x = This

y = This is not.

ここでも二重引用符が区切り文字として機能しています。最初のトランザクションが二重引用符から二重引用符まで読み取り、最初の4文字をxに代入します。ファイルの読み取りポインタは、2番目に現れるThisの前に置かれたままです。2番目のトランザクションが前と同じ文字列を読み取ります。

次に、以下のトランザクションを持つFrom Fileを使用して上のファイルを読み取ります。

READ TEXT x TOKEN

READ TEXT y QSTR

ファイル読み取り後の結果は次のとおりです。

x = This is in quotes.

y = This is not.

ここでは、二重引用符の効果により最初のセンテンス全体が1つのトークンになっています。デフォルトのTOKEN区切り文字がホワイト・スペースであっても、引用符付き文字列全体が1つのトークンとして処理されます。TOKENは、二重引用符を読み取って破棄します。


CHARフォーマット

READ TEXT CHARトランザクションは次の形式を取ります。

READ TEXT VarList CHAR:NumChar ARRAY:NumStr

VarListは、1つのText変数か、カンマで区切ったText変数のリストです。

NumCharは、VarList中の各変数の各要素に入力するために読み取る8ビット文字の数を指定します。

NumStrは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。

ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

CHARフォーマットは、一度に1文字ずつ読み取りたい場合、あるいは入力データのすべての文字を無視せずに読み取りたい場合に使用します。

次のトランザクションは、2次元のText配列を読み取ります。各配列の各要素には、2つの文字が含まれます。

READ TEXT X,Y CHAR:2 ARRAY:2,2

前のトランザクションで読み取ったファイルに次の文字が含まれる場合:

<space>ABCDEFG"AB"<LF>'CD

READの後で変数XとYには次の値が格納されます。

X [0 0] = <space>A

X [0 1] = BC

X [1 0] = DE

X [1 1] = FG

Y [0 0] = "A

Y [0 1] = B"

Y [1 0] = <LF>'

Y [1 1] = CD

記号<space>は、1文字のスペース（ASCIIの10進32）を表します。記号<LF>は、1文字のラインフィード（ASCIIの10進10）を表します。スペース、ラインフィード、二重引用符は、特別な考慮や解釈を受けずに読み取られます。

関連項目

TEXTエンコーディング、BINARYエンコード、BINBLOCKエンコード、CONTAINERエンコード、IOSTATUSエンコード、REGISTERエンコーディング、MEMORYエンコード


TOKENフォーマット

READ TEXT TOKENトランザクションは次の形式を取ります。

READ TEXT VarList TOKEN Delimiter ARRAY:NumElements

VarListは、1つのText変数か、カンマで区切ったText変数のリストです。

Delimiterは、各トークンの終了（区切り）を示す文字の組み合わせを指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

TOKENフォーマットでは、以下のDelimiterの1つを使って、トークンのデリミタ（境界）を定義できます。

SPACE DELIM

INCLUDE CHARS

EXCLUDE CHARS

以下のデリミタの説明では、デリミタの選択によって、次の内容を持つファイル（file1）の読み取りがどのように変化するかを示します。

A phrase.
"A phrase."
Tab follows.
XOXXOOXXXOOOXXXX
XAXXBCXXXDEF

このファイルに含まれるのは英字Oだけで、数字の0は含まれません。

上記のファイルの最初の4行の後には、表示されていませんが実際にはラインフィード文字があります。上記の内容は、viなどのテキスト・エディタでのファイルの表示を示します。

SPACE DELIM

SPACE DELIMを使用した場合、トークンは任意のホワイト・スペースで区切られます。ホワイト・スペースには、スペース、タブ、改行、EOFがあります。これは、英語の単語の区切りにおおむね対応します。SPACE DELIMを使用すると、テキストを含むファイルを読み取って、個々の単語を分離することができます。

二重引用符で囲まれた文字列は特別な扱いを受けます。二重引用符付き文字列は1つのトークンとして読み取られ、二重引用符は削除されます。二重引用符の中にある制御文字（ASCIIの10進0～31）は出力変数に返されます。二重引用符の中にあるエスケープ文字（\nなど）は、対応する制御文字に変換されます。

二重引用符付き文字列に対するこの特別な扱いは、SPACE DELIMトランザクションにのみ当てはまります。INCLUDE CHARSおよびEXCLUDE CHARSは、二重引用符、エスケープ文字、制御文字を他の文字と同様に扱います。

file1のデータをSPACE DELIMを使って次のトランザクションで読み取った場合:

READ TEXT a TOKEN ARRAY:8

変数aには次の値が格納されます。

a[0] = A

a[1] = phrase.

a[2] = A phrase.

a[3] = Tab

a[4] = follows

a[5] = .

a[6] = XOXXOOXXXOOOXXXX

a[7] = XAXXBCXXXDEF

INCLUDE CHARS

INCLUDE CHARSを使用した場合、READから返されるトークンに含める文字のリストを指定できます。指定された文字だけがトークンとして返されます。INCLUDEに指定された文字以外の文字は、現在のトークンを終了します。終了文字はトークンに含まれず、読み捨てられます。

file1のデータをINCLUDE CHARSを使って次のトランザクションで読み取った場合:

READ TEXT a TOKEN INCLUDE:"X" ARRAY:7

変数aには次の値が格納されます。

a[0] = X

a[1] = XX

a[2] = XXX

a[3] = XXXX

a[4] = X

a[5] = XX

a[6] = XXX

file1のデータをINCLUDE CHARSを使って次のトランザクションで読み取った場合:

READ TEXT a TOKEN INCLUDE:"OXZ" ARRAY:4

変数aには次の値が格納されます。

a[0] = XOXXOOXXXOOOXXXX

a[1] = X

a[2] = XX

a[3] = XXX

INCLUDEリストの最初の文字は英字Oであり、数字の0ではありません。

次のデータを含むファイル（file2）を読み取るとします。

111 222 333 444 555

file2のデータを次のトランザクションで読み取った場合:

READ TEXT x,y,z TOKEN INCLUDE:"1234567890"

Text変数x、y、zには次の値が含まれます。

x = 111

y = 222

z = 333

これを実現するもう1つの方法として、1より大きいARRAYを指定してデータを配列に読み込むこともできます。例えば、上のデータを次のトランザクションで読み取った場合:

READ TEXT x TOKEN INCLUDE:"1234567890" ARRAY:3

Text変数xには次の値が格納されます。

x[0] = 111

x[1] = 222

x[2] = 333

EXCLUDE CHARS

EXCLUDE CHARSを使用した場合、現在のトークンを終了する文字のリストを指定できます。終了文字はトークンに含まれません。これらの文字は読み捨てられます。

file1のデータをEXCLUDEを使って次のトランザクションで読み取った場合:

READ TEXT a TOKEN EXCLUDE:"X" ARRAY:8

変数aには次の値が格納されます。

a[0] = A phrase.<LF>"A phrase."<LF>Tab follows .<LF>

a[1] = O

a[2] = OO

a[3] = OOO

a[4] = <LF>

a[5] = A

a[6] = BC

a[7] = DEF<LF>

次のデータが計測器からVEEに送られたとします。

++1.23++4.98++0.45++2.34++0.01++23.45++12.2++

VEEが次のトランザクションで上のデータを読み取った場合:

READ TEXT x TOKEN EXCLUDE:"+" ARRAY:7

変数xには次の値が格納されます。

x[0] = ヌル文字列（空）

x[1] = 1.23

x[2] = 4.98

x[3] = 0.45

x[4] = 2.34

x[5] = 0.01

x[6] = 23.45

7つの「数値」があるにもかかわらず、読み取られたのは6つだけです。このトランザクションの終了までに、VEEは+で終わる7つのトークンを読み取っています。最初のものはデータが来る前に終了されました。

注記

EXCLUDE CHARSの動作は、VEE 5以上の実行モードと、VEE 4以下の実行モードでは異なっています。この違いについては、READ TEXTトランザクションの説明を参照してください。


STRINGフォーマット

READ TEXT STRINGトランザクションは次の形式を取ります。

READ TEXT VarList STR ARRAY:NumElements

または

READ TEXT VarList STR MAXFW:NumChars ARRAY:NumElements

VarListは、1つのText変数か、カンマで区切ったText変数のリストです。

NumCharは、文字列を構築するために読み取れる8ビット文字の最大数を指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

このトランザクションは、すべての入力文字を読み取り、文字列を返します。先頭のスペースは削除されます。以下の説明は、GPIBやVXIなどの計測器I/Oパスだけに当てはまります。ファイルやname12-pipeなどの他のI/Oパスは、引用符付き文字列を特別に扱いません。READ TEXT STRINGに対する二重引用符付き文字列の効果については、引用符付き文字列の効果を参照してください。

制御／エスケープ文字の効果

ここでは、制御文字とエスケープ文字という用語は特別な意味を持ちます。制御文字とは、ASCIIの10進0～31に対応する1バイトのデータです。例えば、ラインフィードはASCIIの10進10であり、ここでは記号<LF>でラインフィード文字を表します。文字列\nは、ラインフィードを人間が読める形で表したもので、VEEが認識するエスケープ文字です。VEEは引用符中でエスケープ文字を使って制御文字を表現します。

制御文字とエスケープ文字は、二重引用符付き文字列の中にあるかどうかによって異なる扱いを受けます。

二重引用符付き文字列の中以外では、ラインフィード以外の制御文字は読み取られて捨てられます。ラインフィードは現在の文字列を終了します。\nなどのエスケープ文字は、2つの別々の文字（\とn）として読み取られます。

二重引用符付き文字列の中では、制御文字とエスケープ文字は読み取られ、READから返される文字列の一部となります。二重引用符付き文字列の中のラインフィードは、現在の文字列を終了しません。\nなどのエスケープ文字は、対応する1文字（<LF>）と解釈され、返される文字列に制御文字として含められます。

次の文字列データをREAD TEXT STRINGトランザクションで読み取りたいとします。

Simple string.

Random \n % $ * &lsquo;A'

"In quotes."

"In quotes

with control."

"In quotes\nwith escape."

  • この文字列データを次のトランザクションで読み取った場合:

READ TEXT x STR ARRAY:5

変数xには次の値が格納されます。

a[0] = Simple string.

a[1] = Random \n % $ * &lsquo;A'

a[2] = In quotes.

a[3] = In quotes<LF>with control.

a[4] = In quotes<LF>with escape.

  • 同じ文字列データを次のトランザクションで読み取った場合:

READ TEXT x STR MAXFW:16 ARRAY:5

変数xには次の値が格納されます。

a[0] = Simple string.

a[1] = Random \n % $ *

a[2] = &lsquo;A'

a[3] = In quotes.

a[4] = In quotes<LF>with c

このトランザクションは、16文字を読み取ったとき（a[1]）または引用符の中にない<LF>を読み取ったとき（a[2]）に、現在のREADを終了します。二重引用符付き文字列は、二重引用符から二重引用符まで読み取られ、最初の16文字までが返されます（a[4]）。


QUOTED STRINGフォーマット

READ TEXT QUOTED STRINGトランザクションは次の形式を取ります。

READ TEXT VarList QSTR ARRAY:NumElements

または

READ TEXT VarList QSTR MAXFW:NumChars ARRAY:NumElements

VarListは、1つのText変数か、カンマで区切ったText変数のリストです。

NumCharは、文字列を構築するために読み取れる8ビット文字の最大数を指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

このトランザクションは、すべての入力文字を読み取り、文字列を返します。以下の説明は、計測器以外のすべてのI/Oパスに当てはまります。計測器I/Oパスでは、READTEXT QSTRトランザクションは実現されていません。READ TEXT STRINGに対する二重引用符付き文字列の効果については、引用符付き文字列の効果を参照してください。

関連項目

制御／エスケープ文字の効果


INT16フォーマットとINT32フォーマット

INTEGERフォーマット

READ TEXT INTEGERトランザクションは次の形式を取ります。

READ TEXT VarList INT16(またはINT32、INT64、WORD、BYTE) ARRAY:NumElements

または

READ TEXT VarList INT16(またはINT32、INT64、WORD、BYTE) MAXFW:NumChars ARRAY:NumElements

VarListは、1つの整数変数か、カンマで区切った整数変数のリストです。

NumCharsは、数値を構築するために読み取れる8ビット文字の最大数を指定します。

NumStrは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

READ TEXT BTYEトランザクションは、入力文字を8ビットの2の補数整数として解釈します。これらの整数の有効範囲は、255から0です。数がUInt8の有効範囲を超えると、エラーが発生します。

READ TEXT WORDトランザクションは、入力文字を16ビットの2の補数整数として解釈します。これらの整数の有効範囲は、65535から0です。数がUInt16の有効範囲を超えると、エラーが発生します。

READ TEXT INT16トランザクションは、入力文字を16ビットの2の補数整数として解釈します。これらの整数の有効範囲は、32767から-32768です。数がInt16の有効範囲を超えると、エラーが発生します。

READ TEXT INT32トランザクションは、入力文字を32ビットの2の補数整数として解釈します。これらの整数の有効範囲は、2 147 483 647から-2 147 483 648です。数がInt32の有効範囲を超えると、エラーが発生します。

READ TEXT INT64トランザクションは、入力文字を64ビットの2の補数整数として解釈します。これらの整数の有効範囲は、-9223372036854775808から+9223372036854775807です。数がInt64の有効範囲を超えると、エラーが発生します。

VEEは、数値の構築を開始するときに、数値の一部として認識されない先頭文字を破棄します。数値の構築を開始したあとは、数値の一部として認識されない文字があるとその数値のREADが終了します。次の表に、整数の一部として認識される文字の組み合わせのみを示します。

表記法 | 認識される文字
10進 | 有効な文字は±0123456789です。先頭のゼロは、VEEデータ入力フィールドに存在するときには8進数プレフィックスとして解釈されません。
VEE 16進 | VEEは、0xを16進数のプレフィックスとして解釈します。プレフィックスに続く有効な文字は0123456789aAbBcCdDeEfFです。
IEEE 488.2 2進 | VEEは、#bまたは#Bを2進数のプレフィックスとして解釈します。プレフィックスに続く有効な文字は0と1です。
IEEE 488.2 8進 | VEEは、#qまたは#Qを8進数のプレフィックスとして解釈します。プレフィックスに続く有効な文字は01234567です。
IEEE 488.2 16進 | VEEは、#hまたは#Hを16進数のプレフィックスとして解釈します。プレフィックスに続く有効な文字は0123456789aAbBcCdDeEfFです。

次の表記はすべて、整数値10進15として解釈されます。

15

+15

015

0xF

0xf

#b1111

#Q17

#hF


OCTALフォーマット

READ TEXT OCTALトランザクションは次の形式を取ります。

READ TEXT VarList OCT ARRAY:NumElements

または

READ TEXT VarList OCT MAXFW:NumChars

ここで、

ARRAY:NumElements

VarListは、1つの整数変数か、カンマで区切った整数変数のリストです。

NumCharsは、数値を構築するために読み取れる8ビット文字の数を指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

READ TEXT OCTALトランザクションは、入力文字を64ビット、2の補数整数を表す8進数として解釈します。これらの整数の有効範囲は、10進-9223372036854775808から+9223372036854775807です。

トランザクションにMAX NUM CHARS (MAXFW)が指定されている場合、読み取られる8進数に64ビットより多くのデータが含まれていてもかまいません。たとえば、VEEが次の8進データを読み取ったとします。

37723745621456724377745277234

次のトランザクションを使用すると:

READ TEXT x OCT MAXFW:32

VEEは8進データのすべての桁を読み取りますが、xの数値を構築する際には最後の22桁（5621456724377745277234）だけを使用します。これは、各桁が3ビットに相当し、8進数がVEE整数に格納されるからです。VEE整数は64ビットを含みます。22個の8進数字で66ビットになり、VEE整数に値を適合させるため最上位2ビットが破棄されます。オーバーフローの可能性はありません。

注記

VEE 6および7と以前のモードでは、READ TEXT OCTALトランザクションが入力文字を、32ビットの2の補数整数を表す8進数字として解釈します。これらの整数の有効範囲は、10進2 147 483 647から-2 147 483 648です。

トランザクションにDEFAULT NUM CHARSが指定されている場合、VarList中のすべての変数に入力するのに十分な数の数値を構築するまでトランザクションは文字を読み取ります。ラインフィード文字は、それまで数値の構築を終了しません。例えば、次のトランザクションは:

READ TEXT x OCT ARRAY:4

次の8進データの各ラインを4個の8進数からなる同じセットとして解釈します。

0345 067 003<LF>0377<LF>

345 67 3 377<EOF>

345,67,3,377,45,67<EOF>

記号<LF>は、1文字のラインフィード（ASCIIの10進10）を表します。記号<EOF>は、ファイルの末尾（EOF）を表します。


HEXフォーマット

READ TEXT HEXトランザクションは次の形式を取ります。

READ TEXT VarList HEX ARRAY:NumElements

または

READ TEXT VarList HEX MAXFW:NumChars ARRAY:NumElements

VarListは、1つの整数変数か、カンマで区切った整数変数のリストです。

NumCharsは、数値を構築するために読み取れる8ビット文字の数を指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

READ TEXT HEXトランザクションは、入力文字を64ビット、2の補数整数を表す16進数として解釈します。これらの整数の有効範囲は、10進-9223372036854775808から+9223372036854775807です。

トランザクションにMAX NUM CHARS (MAXFW)が指定されている場合、読み取られる16進数に64ビットより多くのデータが含まれていてもかまいません。たとえば、VEEが次の16進データを読み取ったとします。

ad2469Ff725BCdef37964 16進データ

次のトランザクションを使用すると:

READ TEXT x HEX MAXFW:32

VEEは16進データのすべての桁を読み取りますが、xの数値を構築する際には最後の16桁（9Ff725BCdef37964）だけを使用します。これは、各桁が4ビットに相当し、16進数がVEE整数に格納されるからです。VEE整数は64ビットを含みます。16の16進数字で、ちょうど64ビットになります。オーバーフローの可能性はありません。

注記

VEE 6および7と以前のモードでは、READ TEXT HEXトランザクションが入力文字を、32ビットの2の補数整数を表す8進数字として解釈します。これらの整数の有効範囲は、10進2 147 483 647から-2 147 483 648です。

次のトランザクションのように、同じ16進データをVEEが異なるMAX NUM CHARSで読み取ったとします。

READ TEXT x HEX MAXFW:3 ARRAY:7

この場合、トランザクションは同じデータを読み取り、それぞれ3つの16進数字からなる7個の整数として解釈します。

トランザクションにDEFAULT NUM CHARSが指定されている場合、VarList中のすべての変数に入力するのに十分な数の数値を構築するまでトランザクションは文字を読み取ります。各数値が正確に8つの16進数字を読み取ります。ラインフィード文字は、それまで数値の構築を終了しません。

次のトランザクションのように、同じ16進データをVEEがDEFAULT NUM CHARSで読み取ったとします。

READ TEXT x HEX ARRAY:2

この場合、トランザクションは同じデータを読み取り、それぞれ8つの16進数字からなる2個の整数として解釈します。最後の5桁（37946）は読み取られません。


REAL32およびREAL64フォーマット

READ TEXT REAL32およびREAD TEXT REAL64トランザクションは次の形式を取ります。

READ TEXT VarList REAL32（またはREAL64） ARRAY:NumElements

または

READ TEXT VarList REAL32（またはREAL64） MAXFW:NumChars ARRAY:NumElements

VarListは、1つのReal変数か、カンマで区切ったReal変数のリストです。

NumCharは、数値を構築するために読み取れる8ビット文字の最大数を指定します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

このトランザクションで読み取られた10進数は、VEEのReal32と解釈されます。これは32ビットのIEEE 754浮動小数点数です。これらの数値の範囲は次のとおりです。

-1.175 494 35E-38

-3.402 823 47E+38

～

3.402 823 47E+38

1.175 494 35E-38

このトランザクションで読み取られた10進数は、VEEのReal64と解釈されます。これは64ビットのIEEE 754浮動小数点数です。これらの数値の範囲は次のとおりです。

-1.797 693 134 862 315E+308

-2.225 073 858 507 202E-307

～

2.225 073 858 507 202E-307

1.797 693 134 862 315E+308

トランザクションにMAX NUM CHARS (MAXFW)が指定されている場合、読み取られるReal数値には17桁より多くのデータが含まれていてもかまいません。例えば、VEEが次の実数データを読み取ったとします。

1.234567890123456789 実数データ

次のトランザクションを使用すると:

READ TEXT x REAL64 MAXFW:19

VEEは実数データのすべての桁を読み取りますが、xの数値を構築する際には仮数の上位17桁だけを使用します。これは、Realの仮数部が54ビットであり、10進の桁数に直せば16より大きく17より小さいからです。結果として、xの値は1.2345678901234567となります。

TextからRealへの変換では、最下位桁まで同じ値が得られることは保証されません。下位2ビットの比較は推奨されません。

次のトランザクションのように、同じ実数データをVEEが異なるMAX NUM CHARSで読み取ったとします。

READ TEXT x REAL64 MAXFW:6 ARRAY:3

この場合、トランザクションは同じデータを読み取り、それぞれ6個の10進文字からなる3個のReal数と解釈します。最後の2文字は読み取られません。

トランザクションにDEFAULT NUM CHARSが指定されている場合、VarList中のすべての変数に入力するのに十分な数の数値を構築するまでトランザクションは文字を読み取ります。各数値に関して読み取られるのは最大17桁です。ラインフィード文字、ホワイト・スペース、その他の数字以外の文字が見つかった場合、17桁を読み取る前でも数値の構築は終了します。

READ TEXT REAL64およびREAL32トランザクションは、Real数値に関する一般的な10進表記のほとんどを認識します。例えば、先頭の符号、小数点、符号付き指数などです。文字+-.0123456789Eeは、すべてのREAD TEXT REALトランザクションによって、Real数値の有効な部分として認識されます。トランザクションでDEFAULT NUM CHARSが指定されている場合、次の表に示されているサフィックス文字も認識されます。サフィックス文字は、数値の最後の桁の直後に、間にホワイト・スペースを置かずに存在する必要があります。

サフィックス | 乗数
P | 1015
T | 1012
G | 109
M | 106
kまたはK | 103
m | 10-3
u | 10-6
n | 10-9
p | 10-12
f | 10-15

次のTextデータは、6個の実数を表します。

1001

+1001.

1001.0

1.001E3

+1.001E+03

1.001K

  • VEEが次のトランザクションで実数テキスト・データを読み取った場合:

READ TEXT x REAL64 ARRAY:6

Real変数xの各要素には値1001が格納されます。

  • 同じデータをVEEが次のトランザクションで読み取った場合:

READ TEXT x REAL64 MAXFW:20 ARRAY:6

Real変数xの最初の5つの要素には値1001が格納され、6番目の要素には値1.001が格納されます。


COMPLEX、PCOMPLEX、COORDフォーマット

COMPLEX、PCOMPLEX、COORDは、それぞれ同じ名前のVEEのマルチフィールド・データ型に対応します。これら3つのREADフォーマットの動作はよく似ています。このセクションに示す動作は、特に注記しない限り3つのフォーマットすべてに当てはまります。

VEEのComplex、PComplex、Coordデータ型が複数のReal64数値から構成されるように、COMPLEX、PCOMPLEX、COORDフォーマットはREAL64フォーマットの複合形式です。マルチフィールド・データ型を構成するReal値のそれぞれは、単独のREAL64フォーマットの値に適用されるのと同じ規則を使って読み取られます。

COMPLEXフォーマット

READ TEXT COMPLEXトランザクションは次の形式を取ります。

READ TEXT VarList CPX ARRAY:NumElements

各READ TEXT COMPLEXトランザクションは、REALフォーマットの2つの値に相当する読み取りを行います。読み取られた最初の数値は実数部、2番目の数値は虚数部と解釈されます。

PCOMPLEXフォーマット

READ TEXT PCOMPLEXトランザクションは次の形式を取ります。

READ TEXT VarList PCX:PUnit ARRAY:NumElements

PUnitは、PComplexの位相が測定される角度の単位を指定します。

各READ TEXT PCOMPLEXトランザクションは、REALフォーマットの2つの値に相当する読み取りを行います。読み取られた最初の数値は大きさ、2番目の数値は位相と解釈されます。

COMPLEX、PCOMPLEX、COORDフォーマットを読み取るトランザクションが開き括弧を読み取った場合、閉じ括弧があると想定します。

括弧を含む次のデータが記録されたファイルを読み取りたいとします。

(1.23 , 3.45 (6.78 , 9.01) (1.23 , 4.56)

VEEが次のトランザクションでデータを読み取った場合:

READ TEXT x,y CPX

変数xとyには次のComplex値が格納されます。

x = (1.23 , 3.45)

y = (1.23 , 4.56)

トランザクションは、閉じ括弧を見つけるために6.78と9.01を読み飛ばしています。データに括弧が全くないとしたら、yの値は(6.78 , 9.01)になります。

COORDフォーマット

READ TEXT COORDトランザクションは次の形式を取ります。

READ TEXT VarList COORD:NumFields ARRAY:NumElements

VarListは、1つのCoord変数か、カンマで区切ったCoord変数のリストです。

NumFieldsは、各Coord値の直交座標次元の数を指定する1つの変数または式です。この値が2以上でないと、READはエラーを発生します。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。


BINARYエンコード

READ BINARYトランザクションは次の形式を取ります。

READ BINARY VarList DataType ARRAY:NumElements

VarListは、1つの変数か、カンマで区切った変数のリストです。

DataTypeは、以下の既定義のフォーマットの1つです。これらは同じ名前のVEEデータ型に対応します。

  • Boolean - 32ビット2の補数整数

  • BYTE - 8ビット符号なしバイト

  • WORD - 16ビット2の補数の符号なし整数

  • INT16 - 16ビット2の補数整数

  • INT32 - 32ビット2の補数整数

  • INT64 - 64ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

  • REAL64 - 64ビットIEEE 754浮動小数点数

  • STRING - ヌル終了文字列

  • COMPLEX - 2個のREAL64と同等

  • PCOMPLEX - 2個のREAL64と同等

  • COORD - 2個以上のREAL64と同等

注記

VEE 5以下の実行モードでは、すべての整数値はINT32データ型として、すべての実数値はReal（REAL64とも呼ぶ）データ型として記憶され、処理されます。したがって、INT16およびREAL32データ型は入出力専用に用意されています。VEE 5以下の実行モードでは、入力トランザクションでの計測器I/Oで次のデータ型変換が行われます。

INT16値は、VEE 5以下の実行モードの場合、計測器から読み取られた後、個別にINT32値に変換されます。この変換では、INT16データが符号付きデータであると仮定されます。結果のINT32データを符号なし形式にしたい場合は、次の式を持つFormulaオブジェクトにデータを通します。

BITAND(a, 0xFFFF)

REAL32値は、VEE 5以下の実行モードの場合、計測器から読み取られた後、個別にREAL64値に変換されます。

VEE 6実行モードではデータ型は保持されます。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。1次元目がアスタリスク（*）の場合、トランザクションはEOFに達するまでデータを読み取ります。EOFまでの読み取りがサポートされるのは以下のオブジェクトだけです。

  • From File

  • From String

  • From StdIn

  • Execute Program

1次元目に限って、数値の代わりにアスタリスクを使用できます。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

例えば、次のトランザクションでファイルを読み取ると、

READ BINARY a REAL64 ARRAY:*,10

EOFに達するまで読み取られ、10列の2次元配列が得られます。行の数は、ファイル中のデータ量に依存します。読み取られるデータ要素の総数は、既知の次元サイズの積（この例では10）で割り切れる必要があります。

READ BINARYは、入力データが対応するWRITE BINARYトランザクションで書き込まれるのと正確に同じフォーマットであると仮定します。BINARYエンコード・データはサイズが小さいという利点がありますが、VEE以外のアプリケーションとの共有には適しません。

関連項目

TEXTエンコーディング、BINBLOCKエンコード、CONTAINERエンコード、IOSTATUSエンコード、REGISTERエンコーディング、MEMORYエンコード


BINBLOCKエンコード

READ BINBLOCKトランザクションは次の形式を取ります。

READ BINBLOCK VarList DataType ARRAY:NumElements

VarListは、1つの変数か、カンマで区切った変数のリストです。

DataTypeは、以下の既定義のVEEデータ型の1つです。

  •  Boolean - 32ビット2の補数整数

  •  BYTE - 8ビット符号なしバイト

  • WORD - 16ビット2の補数の符号なし整数

  •  INT16 - 16ビット2の補数整数

  •  INT32 - 32ビット2の補数整数

  • INT64 - 64ビット2の補数整数

  •  REAL32 - 32ビットIEEE 754浮動小数点数

  •  REAL64 - 64ビットIEEE 754浮動小数点数

  •  COMPLEX - 2個のREALと同等

  •  PCOMPLEX -2個のREALと同等

  •  COORD - 2個以上のREALと同等

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。列の数は、binblockに含まれるチャネルの数と一致します。行の数は、チャネルごとの測定値の数と一致します。1次元目に限って、数値の代わりにアスタリスクを使用できます。

1次元目がアスタリスク（*）の場合、トランザクションはEOFに達するまでデータを読み取ります。EOFまでの読み取りがサポートされるのは以下のオブジェクトだけです。

  • From File

  • From String

  • From StdIn

  • Execute Program

トランザクションが1つのチャネルに対応する1次元配列を読み取るように設定されている場合、ただ1つの次元が行を表し、アスタリスクが使用できます。

例えば、次のトランザクションでファイルを読み取ると、

READ BINBLOCK a REAL64 ARRAY:*,10

EOFに達するまで読み取られ、10列の2次元配列が得られます。各列は1つの計測器チャネルを表します。行の数は、各チャネルのデータ量に依存します。binblockに含まれるデータ要素の総数は、列の数（この例では10）で割り切れる必要があります。

ブロック・ヘッダに十分な情報が含まれるため、入力データのフォーマットに関して追加の情報を指定する必要はありません。READ BINBLOCKは、WRITE BINBLOCKトランザクションの項で説明した任意のブロック・フォーマットを読み取れます。

次のトランザクションは、トレースをIEEE 488.2固定長任意ブロック応答データとしてフォーマットするオシロスコープからの2つのトレースを読み取ります。

READ BINBLOCK a,b REAL64

関連項目

TEXTエンコーディング、BINARYエンコード、CONTAINERエンコード、IOSTATUSエンコード、REGISTERエンコーディング、MEMORYエンコード


CONTAINERエンコード

READ CONTAINERトランザクションは次の形式を取ります。

READ CONTAINER VarList

VarListは、1つの変数か、カンマで区切った変数のリストです。

READ CONTAINERは、WRITE CONTAINERトランザクションで書き込まれた特殊なテキスト表現で格納されたデータを読み取ります。READ CONTAINERにはフォーマットなどの追加指定は不要です。コンテナにすでに情報が含まれているからです。

関連項目

TEXTエンコーディング、BINARYエンコード、BINBLOCKエンコード、IOSTATUSエンコード、REGISTERエンコーディング、MEMORYエンコード


REGISTERエンコーディング

READ REGISTERは、VXI計測器のA16メモリから値を読み取るために使用します。

READ REGISTERトランザクションは次の形式を取ります。

READ REG:SymbolicName ExpressionList INCR ARRAY:NumElements

または

READ REG:SymbolicName ExpressionList ARRAY:NumElements

ここで、

SymbolicName は、VXI計測器の設定時に定義された名前です。この名前は、計測器のレジスタ・スペース内の特定のアドレスを指します。READ REGISTERトランザクションに用いるデータ型は次のとおりです。

  • BYTE - 8ビット符号なしバイト

  • WORD16 - 16ビット2の補数整数

  • WORD32 - 32ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

これらのデータ型はVXI計測器の構成中にも指定されますが、トランザクションには現れません。

ExpressionListは、1つの式か、カンマで区切った式のリストです。

INCRは、SymbolicNameによって指定されたアドレスから増分を開始するレジスタから配列データを読み取るように指定します。配列の最初の要素は、開始アドレスから読み取られます。2番目は、そのアドレスにデータ型のバイト単位の長さに等しいオフセットを足したアドレスから読み取られます。すべての配列要素が読み取られるまでこの操作が続きます。INCRがトランザクションで指定されていない場合、SymbolicNameによって指定された1つの場所から配列全体が読み取られます。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

関連項目

TEXTエンコーディング、BINBLOCKエンコード、CONTAINERエンコード、IOSTATUSエンコード、BINARYエンコード、MEMORYエンコード


MEMORYエンコード

READ MEMORYは、VXI計測器のA24またはA32メモリから値を読み取るために使用します。

READ MEMORYトランザクションは次の形式を取ります。

READ MEM:SymbolicName ExpressionList INCR ARRAY:NumElements

または

READ MEM:SymbolicName ExpressionList ARRAY:NumElements

ここで、

SymbolicNameは、VXI計測器の設定時に定義された名前です。この名前は、計測器の拡張メモリ内の特定のアドレスを指します。READ MEMORYトランザクションに用いるデータ型は次のとおりです。

  • BYTE - 8ビット符号なしバイト

  • WORD16 - 16ビット2の補数整数

  • WORD32 - 32ビット2の補数整数

  • REAL32 - 32ビットIEEE 754浮動小数点数

  • WORD32*2 - Int32配列の隣接要素内の2個の32ビット2の補数整数

REAL64 - 64ビットIEEE 754浮動小数点数

これらのデータ型はVXI計測器の構成中にも指定されますが、トランザクションには現れません。

ExpressionListは、1つの式か、カンマで区切った式のリストです。

INCRは、SymbolicNameによって指定されたメモリ位置を先頭として順次後ろから配列データを読み込むように指定します。配列の最初の要素は、開始位置から読み取られます。2番目は、その位置にデータ型のバイト単位の長さに等しいオフセットを足した位置から読み取られます。すべての配列要素が読み取られるまでこの操作が続きます。INCRがトランザクションで指定されていない場合、SymbolicNameによって指定された1つのメモリ位置から配列全体が読み取られます。

NumElementsは、VarList中の各変数の次元を指定する1つの式またはカンマで区切った式のリストです。トランザクションがスカラを読み取るように設定されている場合、ARRAYキーワードはトランザクションに現れません。ARRAY:1は1要素の1次元配列です。VEEでは、スカラと、要素が1つだけの1次元配列とは区別されます。

関連項目

TEXTエンコーディング、BINBLOCKエンコード、CONTAINERエンコード、IOSTATUSエンコード、REGISTERエンコーディング、BINARYエンコード


IOSTATUSエンコード

READ IOSTATUSトランザクションは次の形式を取ります。

READ IOSTATUS STS Bits VarList

または

READ IOSTATUS DATA READY VarList

VarListは、1つの整数変数か、カンマで区切った整数変数のリストです。

READ IOSTATUSトランザクションは、GPIOインタフェースに対するDirect I/O、From StdIn、To/From Named Pipeの各オブジェクトで用いられます。

GPIOに対するREAD IOSTATUSは、周辺機器のステータス・ビットをインタフェースから読み取ります。読み取られるビットの数は、インタフェースのモデル番号によって異なります。すべてのステータス・ビットの重み付き和である1つの整数値が返されます。

例えば、HP 98622A GPIOインタフェースは、STI0とSTI1の2つの周辺機器ステータス・ラインをサポートします。次の表は、このトランザクションのxの値の解釈方法を示します。

READ IOSTATUS STS Bits a

読み取られる値 | STI1 | STI0
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

READ IOSTATUSトランザクションは、ステータス・ラインの瞬時値を読み取ります。ステータス・ラインはラッチされたりバッファされたりすることはありません。

READ IOSTATUSトランザクションは、読み取るデータがある場合は論理値の真（1）を返します。データが存在しない場合は、論理値の偽（0）を返します。READ IOSTATUSトランザクションは、データが読み取れるようになるまでREADがプログラム実行をブロックするのを防ぐために使用できます。

関連項目

TEXTエンコーディング、BINARYエンコード、BINBLOCKエンコード、CONTAINERエンコード、REGISTERエンコーディング、MEMORYエンコード


EXECUTEトランザクション

EXECUTEトランザクションは、低レベル・コマンドを送信して、特定のオブジェクトに関連するファイル、計測器、インタフェースを制御します。EXECUTEは、ファイル・ポインタの調整、バッファのクリア、ハードウェア・インタフェースの低レベル制御などに用いられます。使用可能なEXECUTEコマンドの一覧を以下に示します。

コマンド | 説明
To File、From File
REWIND | ファイル中のデータを変更せずに、読み取りポインタ（From File）または書き込みポインタ（To File）をファイルの先頭に設定します。
CLEAR | (To Fileのみ）。ファイル中の既存のデータを消去し、書き込みポインタをファイルの先頭に設定します。
CLOSE | ファイルを明示的にクローズします。複数のプロセスで同じファイルを読み書きする場合に便利です。
DELETE | ファイルを明示的に削除します。一時ファイルを削除するのに便利です。
Interface Operations
CLEAR | GPIBの場合、DCL（Device Clear）を送信してすべての計測器をクリアします。VXIの場合、インタフェースをリセットし、リソース・マネージャを実行します。
TRIGGER | GPIBの場合、GET（Group Execute Trigger）を送信して、リスナーに指定されているすべてのデバイスをトリガします。VXIの場合、指定されたバックプレーン・トリガ・ラインまたは組み込みコントローラの外部トリガをトリガします。
LOCAL | GPIBの場合、REN（Remote Enable）ラインをリリースし、計測器をローカル・モードにします。
REMOTE | GPIBの場合、REN（Remote Enable）ラインをアサートします。
LOCAL LOCKOUT | GPIBの場合、LLO（Local Lockout）メッセージを送信します。LLOが送信された時点でリモート操作されている計測器は、フロント・パネル操作をロックアウトします。
ABORT | IFC（Interface Clear）ラインをアサートしてGPIBインタフェースをクリアします。
LOCK INTERFACE | 共有リソースを持つマルチプロセス・システムで、1つのプロセスがクリティカル・セクションの間リソースをロックして、他のプロセスが使用できないようにします。
UNLOCK INTERFACE | マルチプロセス・システムで、1つのプロセスが共有リソースを自分専用にロックした後、リソースのロックを解除して、他のプロセスからアクセスできるようにします。
GPIBへのDirect I/O
CLEAR | Direct I/Oオブジェクトのアドレスの計測器にSDC（Selected Device Clear）を送信してクリアします。
TRIGGER | Direct I/Oオブジェクトのアドレスの計測器をリスナーに指定し、GET（Group Execute Trigger）を送信してクリアします。
LOCAL | Direct I/Oオブジェクトのアドレスの計測器をローカル状態にします。
REMOTE | Direct I/Oオブジェクトのアドレスの計測器をリモート状態にします。
GPIOへのDirect I/O
RESET | Direct I/Oオブジェクトに対応するGPIOインタフェースのPRESET（Peripheral Reset）ラインにパルスを送ってリセットします。
メッセージ・ベースVXIへのDirect I/O
CLEAR | Direct I/Oオブジェクトに対応するVXI計測器にワード・シリアル・コマンドClear（0xffff）を送信してクリアします。
TRIGGER | Direct I/Oオブジェクトに対応するVXI計測器にワード・シリアル・コマンドTrigger（0xedff）を送信してトリガします。
LOCAL | Direct I/Oオブジェクトに対応するVXI計測器にワード・シリアル・コマンドClear Lock（0xefff）を送信してローカル状態にします。
REMOTE | Direct I/Oオブジェクトに対応するVXI計測器にワード・シリアル・コマンドSet Lock（0xeeff）を送信してリモート状態にします。
シリアル・インタフェースへのDirect I/O
RESET | Direct I/Oオブジェクトに対応するシリアル・インタフェースをリセットします。
BREAK | Direct I/Oオブジェクトに対応するシリアル・インタフェースのData Outラインに次の信号を送信します。 400 msの論理ハイ 60 msの論理ロー
CLOSE | Direct I/Oオブジェクトに対応するシリアル・インタフェースとの接続をクローズします。次に接続したときには接続が再確立されます。
Execute Program、To/From Named Pipe
CLOSE READ PIPE | （To/From）オブジェクトに対応する読み取り名前付きパイプまたは（Execute Program）オブジェクトに対応するstdinパイプをクローズします。
CLOSE WRITE PIPE | （To/From）オブジェクトに対応する書き込み名前付きパイプまたは（Execute Program）オブジェクトに対応するstdoutパイプをクローズします。
To/From Socket
CLOSE | クライアントとサーバのソケットの間の接続をクローズします。接続を再確立するには、クライアントとサーバがbin12-acceptおよびconnect-toプロトコルを繰り返す必要があります。
Direct I/O、MultiInstrument Direct I/O、GPIB/VXI/シリアル/GPIOへのInterface Operations
LOCK | 共有リソースを持つマルチプロセス・システムで、1つのプロセスがクリティカル・セクションの間リソースをロックして、他のプロセスが使用できないようにします。
UNLOCK | マルチプロセス・システムで、1つのプロセスが共有リソースを自分専用にロックした後、リソースのロックを解除して、他のプロセスからアクセスできるようにします。

GPIBに関する詳細

GPIB計測器へのDirect I/OとInterface Operationsで用いられるEXECUTEは似ていますが、異なっています。

Direct I/OのEXECUTEコマンドは、1台の計測器を指定してコマンドを受信させます。

Interface OperationsのEXECUTEコマンドは、すでにリスナーに指定されている複数の計測器に影響する場合があります。

以下の6つの表は、Direct I/OとInterface OperationsのEXECUTEトランザクションが実行するバス操作の詳細を示します。

EXECUTE ABORT GPIB操作

Direct I/O | Interface Operations
適用なし | IFC（>=100 B5;s）
 | REN
 | ATN

EXECUTE CLEAR GPIB操作

Direct I/O | Interface Operations
ATN | ATN
MTA | DCL
UNL |
LAG |
SDC |

EXECUTE TRIGGER GPIB操作

Direct I/O | Interface Operations
ATN | ATN
MTA | GET
UNL |
LAG |
GET |

EXECUTE LOCAL GPIB操作

Direct I/O | Interface Operations
ATN | REN
MTA | ATN
UNL |
LAG |
GTL |

EXECUTE REMOTE GPIB操作

Direct I/O | Interface Operations
REN | REN
ATN | ATN
MTA |
UNL |
LAG |

EXECUTE LOCAL LOCKOUT GPIB操作

Direct I/O | Interface Operations
適用なし | ATN
 | LLO

VXIに関する詳細

VXI計測器へのDirect I/OとInterface Operationsで用いられるEXECUTEは似ていますが、異なっています。メッセージ・ベースVXI計測器に関する記述は、I-SCPIでサポートされるレジスタ・ベース計測器にも当てはまります。

Direct I/OのEXECUTEコマンドは、1台のメッセージ・ベースVXI計測器を指定してワード・シリアル・コマンドを受信させます。

Interface OperationsのEXECUTEコマンドは、VXIインタフェースに直接影響し、インタフェースのサーバンド・エリアにある複数のVXI計測器に影響する場合があります。

Interface OperationsオブジェクトのEXECUTE TRIGGERトランザクションは、次の形式を取ります。

EXECUTE TRIGGER TriggerType Expression TriggerMode

TriggerTypeは、

EXECUTE TRIGGERが使用するトリガ・グループを指定します。以下のグループがあります。

TTL - VXIバックプレーンの8つのTTLトリガ・ラインを指定します。

ECL - VXIバックプレーンの4つのECLトリガ・ラインを指定します。

EXT - 内蔵VXIコントローラの外部トリガを指定します。

Expressionは1つの整数値に評価されます。この値は、特定のTriggerTypeのどのトリガ・ラインをトリガするかを示すビット・パターンを表します。値が5の場合、2進表記では101なので、TTLライン0と2をトリガすることを示します。値255は8つのTTLラインすべてをトリガします。TriggerModeは、トリガ・ラインをアサートする方法を示します。

PULSE - ラインには特定の時間長さ（TriggerTypeに依存）のパルスが送出されます。

ON - トリガ・ラインをアサートし、アサートしたままにします。

OFF - 前のONトランザクションによってアサートされたトリガ・ラインのアサートを解除します。

以下の表は、Direct I/OとInterface OperationsのEXECUTEトランザクションが実行するバス操作を示します。

EXECUTE CLEAR VXI操作

Direct I/O | Interface Operations
ワード・シリアル・コマンドClear（0xffff） | SYSRESETラインにパルスを送り、リソース・マネージャを再実行します。

EXECUTE TRIGGER VXI操作

Direct I/O | Interface Operations
ワード・シリアル・コマンドTrigger（0xedff） | バックプレーンのTTL/ECLトリガ・ラインまたは組み込みVXIコントローラの外部トリガをトリガします。各トリガ・タイプについて、どのラインをトリガするかを指定できます。

EXECUTE LOCAL VXI操作

Direct I/O | Interface Operations
ワード・シリアル・コマンドSet Lock（0xeeff） | 適用なし

EXECUTE REMOTE VXI操作

Direct I/O | Interface Operations
ワード・シリアル・コマンドClear Lock（0xefff） | 適用なし


WAITトランザクション

WAITトランザクションには、次の4種類があります。

WAIT INTERVAL

WAIT SPOLL（GPIBおよびメッセージ・ベースのVXI計測器へのDirect I/Oのみ）

WAIT REGISTER（VXI計測器へのDirect I/Oのみ）

WAIT MEMORY（VXI計測器へのDirect I/Oのみ）

WAIT INTERVALトランザクションは、指定された秒数だけ待ってから、オブジェクトのオープン・ビューに記載された次のトランザクションを実行します。例えば、次のトランザクションは10秒間待ちます。

WAIT INTERVAL:10

WAIT SPOLLトランザクションは次の形式を取ります。

WAIT SPOLL Expression Sense

Expressionは整数に評価される式です。整数はビット・マスクとして用いられます。

Senseは次の2つの値を取りうるフィールドです。

ANY SET

ALL CLEAR

WAIT SPOLLトランザクションは、対応する計測器のシリアル・ポール応答バイトが特定の条件を満たすまで待ちます。シリアル・ポール応答をテストするには、指定されたマスクと応答とのビットごとのANDを取り、その結果のすべてのビットをORで1つのテスト・ビットに結合します。WAIT SPOLLの次のトランザクションは、次のいずれかの条件が満たされたときに実行されます。

トランザクションにANY（ANY SET）が指定され、テスト・ビットが真（1）の場合。

トランザクションにCLEAR（ALL CLEAR）が指定され、テスト・ビットが偽（0）の場合。

次のトランザクションは、WAIT SPOLLの使用法の一例を示します。

WAIT SPOLL:256 ANY どれかのビットがセットされるまで待ちます。

WAIT SPOLL:256 CLEAR すべてのビットがクリアされるまで待ちます。

WAIT SPOLL:0x40 ANY ビット6がセットされるまで待ちます。

WAIT SPOLL:0x40 CLEAR ビット6がクリアされるまで待ちます。

WAIT REGISTERおよびWAIT MEMORYトランザクションは次の形式を取ります。

WAIT REG:SymbolicName MASK:Expression Sense [Expression]

または

WAIT MEM:SymbolicName MASK:Expression Sense [Expression]

ここで、

SymbolicNameは、VXI計測器の設定時に定義された名前です。この名前は、計測器のA16または拡張メモリの特定のアドレスを指します。

MASK:Expressionは、整数に評価される式です。整数はビット・マスクとして用いられます。このマスク値のバイト・サイズは、SymbolicNameが設定されているデータ型によって異なります。

Senseは次の3つの値を取りうるフィールドです。

ANY SET

ALL CLEAR

*EQUAL

[Expression]はオプションの比較値で、整数に評価されます。この整数は、SenseがEQUALの場合に用いられます。

WAIT REGISTERまたはMEMORYトランザクションは、対応するVXI計測器のSymbolicName で指定されたレジスタまたはメモリ位置から読み取られた値が特定の条件を満たすまで待ちます。

読み取られた値は、MASK:Expressionに指定されたビット・マスクと論理ANDで結合され、その結果がテスト値となります。テスト値のサイズは、指定されたレジスタまたはメモリ位置が設定されているデータ型によって異なります。WAIT SPOLLの次のトランザクションは、次のいずれかの条件が満たされたときに実行されます。

トランザクションにANY（ANY SET）が指定され、テスト値の少なくとも1ビットが真（1）のとき。

トランザクションにCLEAR）ALL CLEAR）が指定され、テスト値のすべてのビットが偽（0）のとき。

トランザクションにEQUALが指定され、テスト値と[Expression]に指定された比較値の対応するビット同士がすべて等しいとき。


SENDトランザクション

SENDトランザクションは次の形式を取ります。

SEND BusCmd

BusCmdは、下の表に示されたバス・コマンドの1つです。

SENDトランザクションは、Interface Operationsオブジェクト内で、GPIBインタフェース経由で低レベル・バス・メッセージを送信するために使用されます。これらのメッセージは、IEEE 488.1で詳細に定義されています。

コマンド | 説明
COMMAND | ATNを真に設定し、指定されたデータ・バイトを送信します。ATNが真の場合、データがバス・コマンドを表すことを示します。
DATA | ATNを偽に設定し、指定されたデータ・バイトを送信します。ATNが偽の場合、データが計測器依存情報を表すことを示します。
TALK | 指定された1次バス・アドレス（0-31）の計測器をトーカに指定します。
LISTEN | 指定された1次バス・アドレス（0-31）の計測器をリスナーに指定します。
SECONDARY | TALKまたはLISTENコマンドの後で2次バス・アドレスを指定します。2次アドレスは通常、カードケージ計測器で用いられます。この場合、カードケージが1次アドレスを持ち、各プラグイン・モジュールが2次アドレスを持ちます。
UNLISTEN | すべての計測器にリスンを停止させ、UNLを送信します。
UNTALK | すべての計測器にトークを停止させ、UNTを送信します。
MY LISTEN ADDR | VEEが動作しているコンピュータをリスナーに指定し、MLAを送信します。
MY TALK ADDR | VEEが動作しているコンピュータをトーカに指定し、MTAを送信します。
MESSAGE | 複数行のバス・メッセージを送信します。詳細についてはIEEE 488.1を参照してください。複数行メッセージを以下に示します。 DCL Device Clear SDC Selected Device Clear GET Group Execute Trigger GTL Go To Local3 LLO Local Lockout SPE Serial Poll Enable SPD Serial Poll Disable TCT Take Control


WRITE(POKE)トランザクション

WRITE(POKE)トランザクションは、WRITEトランザクションに似ていますが、To/From DDEオブジェクトだけに適用されます。WRITE(POKE)の最大の違いは、項目名を指定する必要があることです。例:

WRITE ITEM:"r2c3" TEXT a EOL

次のエンコードが使用できます。

  • TEXT

  • BYTE

  • CASE

  • CONTAINER

これらのフォーマットの詳細については、WRITEトランザクションを参照してください。


READ(REQUEST)トランザクション

READ(REQUEST)トランザクションは、READトランザクションに似ていますが、To/From DDEオブジェクトだけに適用されます。READ(REQUEST)の最大の違いは、項目名を指定する必要があることです。例:

READ ITEM:"r2c3" TEXT a EOL

READ(REQUEST)トランザクションは、Windows版VEEだけでサポートされます。

次のエンコードが使用できます。

TEXT

CONTAINER

これらのフォーマットの詳細については、READトランザクションを参照してください。


VEE Webサイト

Agilent VEE Pro Webサイトを参照するには

VEE Webサイトには有用なリソースが多数用意されています。利用するには、VEEの[Help]メニューを参照してください。

[Help] [image] [Agilent VEE on the Web]

VEE Users Group (vrf)
何千ものVEEユーザの間の対話から得られた豊富な情報を利用できます。質問を投稿したり、ヒントを検索したり、他の熟練VEEユーザを見つけたりすることができます。

Support
ドライバ、製品アップデート、技術情報、その他の生産性向上のためのリソースを入手するためのさまざまなサービスを提供します。

Instrument Drivers
ドライバをダウンロードするためのさまざまなサービスを提供します。入手可能なドライバには、IVIドライバ、HP/Agilent計測器用のVXIplug&playドライバ、パネル・ドライバがあります。

Education/Training
Agilentの世界各地での教育とトレーニングに関する情報を提供します。

Agilent VEE Home Page
VEEに関するニュース、情報、アプリケーション、その他のサポートにアクセスするためのセンターの役割を果たします。

Support
ドライバ、製品アップデート、技術情報、ホワイト・ペーパー、その他の生産性向上のためのリソースを入手するためのさまざまなサービスを提供します。

Agilent Technologies Home Page
Agilent Technologiesに関するニュースや情報と、測定／解析ソリューションを提供している他のサイトへのリンクが記載されています。

Agilentホーム・ページ:

http://www.agilent.com

VEEホーム・ページ:

http://www.agilent.com/find/vee


サポートを受けたり、計測器ドライバをダウンロードしたりするには

計測器ドライバをダウンロードするには

VEEサポートWebサイトから無料のスタートアップ・サポートを受けることができます。

VEEサポートWebサイトにアクセスするには、VEEのHelpメニューを使用します。

Help [image] Agilent VEE on the Web [image] Support

および

ドライバはhttp://www.agilent.com/find/adnからダウンロードできます。

これはAgilentの無料のサービスであり、ドライバ、ホワイトペーパ、その他の無料サービスに年中無休24時間アクセスできます。


コール・センター

世界主要地域に、サポートを提供する拠点が設けられています。これらのコール・センターでは、使用開始時の支援、オンライン・テクニカル・サポート、情報、販売支援などを提供しています。該当する地域の電話番号へお問い合わせください。

連絡先は下記のWebサイトに記載されています。

http://www.agilent.com/find/assist


VEE Pro RunTime製品について

VEE Pro RunTime製品は、VEE Pro開発環境とは別に、VEEプログラムを実行するための環境を提供します。VEE Pro RunTimeではプログラムの開発はできません。VEEプログラムの作成、テスト、デバッグ、保存はVEE開発環境で行います。その後、VEEプログラムを実行するシステムにVEE Pro RunTimeをインストールして、プロセスの制御やテスト・システムの動作を実現できます。オペレータはVEEプログラムを使用できますが、変更はできません。プログラムの表示はパネル・ビューだけで可能です。

ほとんどの場合、VEEプログラムは何らかのテストまたはモニタのために開発されます。VEEプログラムを実行するシステムには、機器との通信のためのインタフェース・カードが通常必要です。VEEプログラムはドキュメントなしでも開発できますが、ランタイム・コンテキストでプログラムが動作するためにどのようなインタフェース・カードが必要かは知っておく必要があり、プログラムを使用する人に必要な情報を提供する必要があります（サポートされるインタフェース・カードについては、計測お客様窓口までお問い合わせください）。

インタフェース・カードの他に、VEEプログラムを実行するシステムには、Agilent I/Oライブラリ・スイート（バージョン14.2以上）が必要な場合があります。計測器の制御の詳細については、計測器の制御を参照してください。

VEE Pro RunTime製品は、VEE Pro開発環境と同じCD-ROMに収録されています。VEE Pro CDからsetup.exeを実行したときに、VEE Pro RunTimeとVEE Pro開発環境のどちらをインストールするかを選択できます。

VEEプログラムの配布

配布用のVEEプログラムを開発する手法については、VEEヘルプの[オペレータ・インタフェースの構築][配布用プログラムの準備]、[配布パッケージの作成]の項目を参照してください。他のシステムで実行するためにプログラムを移動する方法については、必要なファイルをすべて含めるにはを参照してください。

きわめて重要

プログラムの実行に使用するVEE Pro RunTimeのバージョンは、プログラムの開発に使用するVEEのバージョンと同じか、それより新しくなければなりません。

Agilent I/Oライブラリのバージョンは、プログラムの開発に使用したVEE Pro開発環境のバージョンおよびVEE Pro RunTimeと互換性がある必要があります（VEE 7.5.Xの場合、Agilent I/Oライブラリ・スイートのバージョン14.2以上が必要です）。この互換性を確実にするには、VEEに付属しているAgilent I/Oライブラリを使用してください。WebサイトからダウンロードしたパッチでVEEをアップグレードした場合は、必ずAgilent I/Oライブラリの互換性を確認してください。

注記

Agilent VEE Proのライセンスでは、VEE Pro製品に付属するVEE Pro RunTimeとAgilent I/Oライブラリの無制限のインストールと配布の権限が認められています。VEEプログラムを配布する際には、VEE Pro RunTimeとAgilent I/Oライブラリを社内および社外のシステムに自由にインストールしていただいてかまいません。

関連項目

VEE Pro RunTimeのシステム要件については、VEE Pro RunTimeのシステム要件を参照してください。インストール手順については、VEE Pro RunTimeをインストールするにはを参照してください。構成手順については、VEE Pro RunTimeを構成するにはを参照してください。


VEE Pro RunTimeのシステム要件

VEE Pro RunTimeの最小システム要件を次に示します。

.NET Framework 2.0

Pentium 120 MHzプロセッサ（266 MHzのPentium II以上を推奨）を搭載したPC

Windows Vista、Windows 2000（SP4）、またはWindows XP（SP1）オペレーティング・システム

Windows 2000/Windows XPでは48 MBのRAM

ハード・ディスク空き領域:70 MB以上（MATLABおよびチュートリアルを含む場合は105 MB）

CD-ROMドライブ

15インチ800×600 Super VGAモニタ（17インチ1024×768 Ultra VGA以上を推奨）

PCキーボード

2ボタン・マウス（3つめのボタンは存在しても使用されません）

必要な計測器、インタフェース・カード、その他の周辺機器


VEE Pro RunTimeをインストールするには

VEEプログラムを開発した後、他のシステムで動作させたい場合があります。VEEプログラムは、単独で実行可能な.exeファイルではありません。VEEプログラムを動作させるには、システムにVEEの何らかのバージョンがインストールされている必要があります。もちろん、VEE Pro開発環境全体を使ってVEEプログラムを動作させることもできますが、実行専用のシステムの場合はVEE Pro RunTimeを使用する方が費用を節約できます。

この項目では、VEEがまだインストールされていないWindowsシステムにVEE Pro RunTimeをインストールする方法を説明します。

注記

VEE Proの所有者は、VEE Pro RunTime製品を無制限にインストールしたり配布したりする権限を認められています。VEEプログラムを配布する際には、VEE Pro RunTimeを社内および社外のシステムに自由にインストールしていただいてかまいません。必要なら、プログラムにインストール手順を付記してください。

VEE Pro開発環境は、VEE Proソフトウェア・ライセンス契約と使用ライセンスで許可されたシステムにだけインストールすることができます。

Windows Vista、 Windows XPまたはWindows 2000オペレーティング・システムが動作しているコンピュータにVEE Pro RunTimeをインストールするには、システム管理者権限が必要です。

インストールを開始するには、Windowsを起動し、すべてのアプリケーションを終了します。CD-ROMをCD-ROMドライブに入れます。インストールが自動的に開始されるまで待ちます。次の2通りの場合があります。

1. 開発環境またはランタイム環境のインストールを選択する画面がモニタに表示されます。

ランタイム環境を選択します。その後、表示される画面に従って環境をインストールします。

2. CD-ROMのインストール・プロセスが自動的に開始されない場合もあります。この場合、次のコマンドを実行して、ランタイム環境のインストールを開始します。

e:\runtime\setup.exe

ここでは、CD-ROMドライブがE:であると仮定しています。このコマンドを実行するには、Windowsタスクバーの[スタート]ボタンを選択します。[ファイル名を指定して実行]を選択し、コマンドを入力します。


VEE Pro RunTimeを設定するには

ランタイム環境は、プログラムの開発でなく実行を目的としています。このため、VEE Pro RunTime だけがインストールされているシステムでは、メインVEEウィンドウとワークスペースにはアクセスできません。メインVEEウィンドウのメニューから通常アクセスされるVEE環境の特性は、VEE Pro RunTimeでは別の方法で設定する必要があります。 2つの重要な設定領域にコマンド・ライン・オプションからアクセスできます。同じ機能はスタート・メニュー・グループのAgilent VEE Pro 8.5 RunTime Configの中のアイコンからも使用できます。

機器設定を変更するには、次のコマンドを実行します。

veerun.exe -ioconfig

これはVEE Pro RunTime を実行し、Instrument Managerを開いて、I/O設定をユーザが変更して保存できるようにします。これはプログラムに埋め込まれたI/O設定がない場合に重要です。

デフォルト設定を変更するには、次のコマンドを実行します。

veerun.exe -prefconfig

これはVEE Pro RunTime を実行し、Default Preferencesダイアログを開いて、デフォルト設定をユーザが変更して保存できるようにします。 RunTime ユーザにとって重要な可能性がある設定を以下に示します。

Web Server設定

Execution Mode（主にリモート関数に対して）

Check Instrument Addresses at PreRun

Delete Variables at PreRun

Printing設定

ColorsおよびFonts（プログラムとともに保存されていない場合）

注記

VEE ProとVEE Pro RunTimeの両方が存在するシステムの場合、2つのバージョンは同じI/O設定を共有する場合もしない場合もあります。現在のユーザがVEE環境変数（VEEHOME85、VEEHOME90など）を設定してある場合、両方のVEEバージョンがVEE環境変数に定義されたディレクトリでI/O設定ファイルを検索します。現在のユーザがVEE環境変数を設定していない場合、VEE ProとVEE Pro RunTime はI/O設定ファイルを各バージョン専用のユーザごとのディレクトリに保存します。この場合、それぞれのバージョンのI/O設定は別々に設定する必要があります。

I/O設定以外の設定については、VEE ProとVEE Pro RunTimeが同じ設定ファイルを共有することはありません。VEE ProとVEE Pro RunTime はそれぞれの設定ファイルを各バージョン専用のユーザごとのディレクトリに保存します。この場合、それぞれのバージョンは別々に設定する必要があります。

[Instrument Manager]または[Default Preferences]ダイアログがVEEウィンドウ内部に収まらない場合、-geometryオプションを使うことでVEEまたは VEERun ウィンドウを拡大できます。詳細については、コマンド・ライン・オプション付きでAgilent VEEを起動するにはを参照してください。

関連項目

Windows版VEEの設定、I/O設定の手法


VDC配列フォーマット

多くのVEEデータ・コンテナは、配列にデータをパッケージ化します。VEE内部では、Build Coordinateなどのオブジェクトにより、配列の内部構造をユーザが意識しなくてすむようになっています。VEEの外部（Visual Basicクライアントなど）では、エラーや混乱を避けるため、これらの配列を正しく宣言してデータを設定する必要があります。

3次元座標のVEE 1次元配列の例を考えます。ここにすでに1つ、混乱の原因があります。「次元」という用語が2つの異なる概念を指して用いられています。座標に関しては、次元とは軸（通常は「X」、「Y」、「Z」）です。配列に関しては、次元とは組織化インデックス（通常は「行」と「列」）です。VEEでは、このデータ型は記憶位置の1つの行であり、各記憶位置が1つの座標を保持します。"MyVeeData"という変数を考えると、最初の座標はMyVeeData[0]、10個目の座標はMyVeeData[9]などです。

Visual Basicには「3次元座標」のデータ型が存在しないので、1つの記憶位置に座標全体を保持することはできません。"MyVeeData"のすべてのデータをパッケージ化するには、Visual Basicでは2次元配列が必要です。この配列の行は座標を表します。この配列の列は、それぞれの座標の"X,Y,Z"値を表します。

"MyVbData"という変数を考えると、最初の座標のZ成分はMyVbData(0,2)、10個目の座標のX成分はMyVbData(9,0)などです。

他のVEEデータ型に対しても同様の構造が用いられます。VEEのComplexデータを表すVB配列を構築する場合、MyVbData(Element, 0)が実数部、MyVbData(Element, 1)が虚数部になります。該当するVEEのデータ型とその配列フォーマットの一覧を次に示します。

VDCデータ型 配列フォーマット

Complex 1次元配列 行は複素数。
列0は実数部。
列1は虚数部。

PComplex 1次元配列 行は極座標複素数。
列0は大きさ成分。
列1は位相成分。

2次元座標1次元配列 行は座標。
列0はX成分。
列1はY成分。

3次元座標1次元配列 行は座標。
列0はX成分。
列1はY成分。
列2はZ成分。

座標1次元配列 行は座標。
列0はX成分。
列1はY成分。
列Nは第N次元成分。


.topic 0
Click the NI button to create an NI object for the instrument currently selected.
This could be an NI-DMM, NI-SWITCH, NI-FGEN, NI-DAQ, or NI-SCOPE.

.topic 0
Launches a new VEE with the sample file loaded. Since the correct instrument address
is already configured for the instrument you selected, all you have to do is press
Run.

.topic 0
Click the IVI-COM button to  create an IVI-COM object for the instrument currently selected. (If there is no IVI-COM driver for the instrument, this button remains grayed out.)

.topic 0
When the Profiler is started, it provides comparative information about the execution time of each UserObject and UserFunction. Clicking on any column label (such as Name, or Time) displays the Profiler data sorted on that field. Clicking again reverses the sort. Double-click on any UserObject or UserFunction shown in the Name field, and its view opens in the VEE workspace.

.topic 0
When this box is checked, data is written to the data file with commas as delimiters (separators) between the various Profiler data fields. Using comma delimiters makes it easier to import the data into some other applications, such as spreadsheets.  When this box is not checked, the data fields are aligned using multiple spaces.

.topic 0
Specifies the local directory that will be accessible to the remote Web browser. VEE uses the file index.html in the Root Directory as its home page. A default homepage is installed as ~installDir/www/index.html. This file can be modified and/or copied to a different Root Directory.

.topic 0
When OK is pressed, any changes to Default Preferences become valid for the current work session only. When you exit and restart VEE, the previous Default Preferences(saved in the "veerc" file) are restored.

.topic 0
The Fonts property allows you to choose the default font for any screen element in your VEE program.

.topic 0
The Program Explorer button shows or hides the Program Explorer window. The Program Explorer shows the hierarchical structure of the current VEE program.

.topic 0
The Delete Line button provides the Delete Line cursor, which you then click on the line to be deleted. (A handy shortcut to delete lines is Ctrl-Shift-Click.)

.topic 0
The Call Stack button aids debugging by displaying the hierarchy of UserObjects or UserFunctions invoked to reach the current paused UserObject or UserFunction. Clicking on any entry in the Call Stack dialog opens that UserObject or UserFunction in the VEE workspace.

.topic 0
Click the (Interface) Properties button to view specific details about the currently selected interface. Note that VEE cannot modify the hardware characteristics of an interface or alter the configuration performed by the operating system or the I/O Config utility. If you enter different values in any of the Interface Properties fields, you must use values that match an existing, configured interface.

.topic 0
Click the Save button to save the instrument configuration to disk and close the Instrument Manager. This overwrites the vee.io file with the current configuration.  If the instrument configuration is embedded in the program, a Save from the InstrumentManager is not necessary, because an embedded configuration is saved when the programis saved.

.topic 0
The Clear button resets all Profiler data values to 0 (zero).

.topic 0
The Number tab allows you to choose the default format for displaying numbers in your VEE program.

.topic 0
The Stop button stops execution of all program threads and closes any open files.  When a program is in the stopped state, pressing Step or Run/Resume restarts program execution from the beginning.

.topic 0
The Step Over button aids debugging by executing one primitive object at a time.  When a UserObject or UserFunction is encountered, it is executed in its entirety and is not opened into a detail view.

.topic 0
The Run button starts execution of all threads in a program. If your program has several threads, and you want to run only one of them, use a Start object to that thread instead of the Run button.

.topic 0
The Instrument Manager button provides the Instrument Manager dialog. This dialog provides convenient editing, viewing, and creating of I/O resources such as instrument transactions and drivers.

.topic 0
The Add To Panel button places the selected objects onto the panel view of the program.  If a panel view does not already exist, one is created. Panels are associated with the current context and can be nested.

.topic 0
Click the Add button to add an instrument to your I/O configuration. A manual Add operation is needed for instruments that are not discovered by the Find Instruments button. For example, RS-232 instruments or instruments connected via a LAN gateway.(An interface entry is automatically added when you add an instrument associated with that interface.)

.topic 0
The bottom line of the VEE window is a status message area. This status line shows various types of information, depending upon the current operation. For example, the program run state, error messages, pixel position of moved objects, and helpful hints.

.topic 0
Specifies the maximum time (in seconds) that the Web server will wait for VEE to respond.

.topic 0
When Enable Server is checked, VEE's built-in Web server is activated. The Web server allows you to monitor a VEE program from a remote Web browser.

.topic 0
The Step Out button aids debugging by executing one primitive object at a time. If the execution is in a UserObject or UserFunction, VEE completes execution of all objects in that UserObject or UserFunction.

.topic 0
The Pause button stops execution of all program threads temporarily. When a program is in the paused state, either Step or Run/Resume can be used to proceed with program execution from the point it was paused.

.topic 0
This field indicates the scope of the search. The default is the Entire Program.  If you want to limit the scope of a search, open the Find dialog from the ProgramExplorer by clicking with the right mouse button on a particular context, such as a UserFunction or UserObject.

.topic 0
The Save button writes the Profiler data to the file name specified using the Options button.

.topic 0
When instrument checking is enabled, VEE checks the configured instruments during prerun to verify that they are accessible. If an address does not respond, you are iven the opportunity to power-on the instrument, choose a different bus address, etc. When this box is not checked, disconnected or improperly configured instruments will probably cause a timeout error when the program is running.

.topic 0
The Show Execution Flow button aids debugging by highlighting the currently executing object(s) while the program is running. In the paused or error state, Show Execution Flow highlights all objects that have already executed.

.topic 0
The Copy button places a copy of the selected objects in the Paste buffer and on the Windows Clipboard.

.topic 0
When this box is checked (the default), the search traverses all levels of nested User Objects. If not checked, only the current level is searched.

.topic 0
Creates a Formula object to Set the value of the currently selected member (property).Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
Click the Plug&play Driver button to create a VXIplug&play driver object for the instrument currently selected. (A VXIplug&play driver is an industry standard API based upon VISA.)

.topic 0
The Settings dialog controls some of the actions performed during instrument discovery.  If Detect only is selected, the Find Instruments button simply detects whether a device is present at each bus address. If Detect, identify, and configure... is selected, the Find Instruments button also performs an identification and driver configuration for each instrument detected. If Ask before sending... is checked, a confirmation dialog is presented before *IDN? is sent to identify each instrument. If not checked, *IDN? is sent to all instruments without operator confirmation. You may want the confirmation dialog if your system contains old, non-IEEE-488.2 instruments.

.topic 0
When this box is checked, Profiler data is shown only for those UserObjects and UserFunctions that executed.

.topic 0
Specifies the file path to the http.log file. This file records all incoming requests processed by the Web server and can grow without bounds.

.topic 0
When Binary RunTime File Format is checked, .vxe files are saved using a binary formatwhich gives improved security and smaller file size. When this box is not checked, .vxe files are stored in ASCII format (similar to .vee files).

.topic 0
When this box is checked, the Find text must match the entire field of the text being searched.

.topic 0
When this box is checked, a match is reported if the Find text occurs at the end of the text being searched.

.topic 0
Specifies the number of pixels placed between objects when you perform an Edit  Align... operation. This Alignment Spacing value is used only when Space Equally is enabled.

.topic 0
The New button clears the VEE workspace. You will be prompted if there are any unsaved changes in the current program.

.topic 0
The Default Preferences button provides the Default Preferences dialog. This dialog has six tabs containing many and varied customizable VEE settings.

.topic 0
The Property buttons can be used to constrain the search according to various object properties. Once a Property is selected, specify the desired constraint in the Value column. For example, if you select Breakpoint/On, then only objects with active break points are searched.

.topic 0
This field specifies the number of digits displayed to the right of the decimal point.

.topic 0
The Trig Mode selection chooses the default trigonometric units used in the program.  Radians are VEE's default (and fastest) units.

.topic 0
When Reset is pressed, any pending changes to Default Preferences are discarded, and the previous Default Preferences (saved in the "veerc" file) are restored.

.topic 0
Specifies the magnification used when printing a VEE program. Smaller numbers create a smaller image. The value you specify might be rounded by some printer drivers.

.topic 0
The Toggle Breakpoint button aids debugging by setting or clearing execution breakpoints at the selected objects. A breakpoint on an object pauses program execution immediately before that object. Breakpoints can also be accessed in the Object Menu Properties.

.topic 0
The Start Profiling button is a toggle function that starts or stops profiling.

.topic 0
Profile data is collected whenever the Profiler is running, but the data displayed in the dialog box is not updated automatically. You must click the Refresh button to cause the Profiler to display the latest profile data.

.topic 0
The Step Into button aids debugging by executing one primitive object at a time.  When a UserObject or local or imported UserFunction is encountered, VEE puts it into its detail view and executes each object in that view.

.topic 0
This area displays the run state of the program. Indicators are: Blank, Ready (stopped), Green Arrow Running, Yellow Bars Paused, Red Bars Error

.topic 0
The Function & Object Browser button provides the Function & Object Browser dialog.  This browser provides convenient access to various math operations, objects, and properties.

.topic 0
Creates a Formula object for the currently selected function or operator.  Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
This field indicates if the currently loaded program has any unsaved changes (modifications).When the box is "grayed out," no unsaved changes are pending.

.topic 0
This field shows the Execution Mode of the currently loaded VEE program. ExecutionMode allows newer versions of VEE to run older VEE programs with complete backwards compatibility. The possible modes are VEE 3, VEE 4, etc. up through the current VEE version. Execution Mode is saved with the VEE program and can be changed in the Default Preferences dialog.

.topic 0
This field specifies the file name where Profiler data is saved. Click this field to bring up the Save data filename dialog box.

.topic 0
The Appearance Property Group allows you to choose the default color for any screen element in your VEE program.

.topic 0
The Object Type property constrains the search to objects of the type(s) selected in the Value list. The default is all object types. To constrain the search, click the Value button and check or uncheck the desired types. Select All and Clear All buttons are provided for convenience.

.topic 0
Creates a Formula object to Get the value of the currently selected member (property).Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
Click the Component Driver button to create a Component Driver object for the currently selected instrument. (A Component Driver is an efficient link to one component of an instrument's Panel Driver.)

.topic 0
Click the (Instrument) Properties button to view or modify the I/O-related properties of the currently selected instrument. The interface type determines the set of properties available. For example, RS-232 instruments have a Properties field for setting the Baud rate, while GPIB instruments have a Properties field for setting the bus address.

.topic 0
If Detect only is selected, the Find Instruments button simply detects whether a device is present at each bus address. If Detect, identify, and configure... is selected, the Find Instruments button also performs an identification and driver configuration for each instrument detected.

.topic 0
The Options button brings up the Profiler Options dialog box. These options customize the format of displayed and saved data.

.topic 0
When this box is checked, the printout includes an open view of all nested UserObjects.

.topic 0
When Print Cover Page is checked, a cover section is generated at the beginning of the printout. This default format choice can be overridden in the Print Program dialog.

.topic 0
The Open button loads a program file into the VEE workspace, replacing any existing program. You will be prompted if there are any unsaved changes in the current program.

.topic 0
The Cut button deletes the selected objects and places them in the Paste buffer and on the Windows Clipboard.

.topic 0
The Find button provides a dialog box used to search for text strings and certain object properties in your VEE program. Various search properties, such as Match Case and Object Type, can be used to constrain your searches. To limit the scope of a search, open Find from the Program Explorer by clicking a specific context with the right-hand mouse button.

.topic 0
The Configure Drivers button identifies the selected instrument and configures any available VXIplug&play and Panel Drivers for that instrument. (Only IEEE 488.2 (and most VXI) instruments can be identified.)

.topic 0
Click the Direct I/O button to create a Direct I/O object for the instrument currently selected. (A Direct I/O object allows low-level transactions with the instrument.)

.topic 0
Click the OK button to save the instrument configuration in an internal cache and close the Instrument Manager. The current configuration is used by the program, but is not yet saved to disk.

.topic 0
When Disable Debug is checked, all debugging features are disabled, giving the fastest program execution speed.

.topic 0
When Auto Line Routing is checked, the lines between objects are automatically rerouted when an object is connected, moved, or resized. Auto-routing uses only horizontal and vertical lines, and gives the same results as Edit -> Clean Up Lines. When auto-routing is off, lines are drawn directly from pin to pin, often diagonally.

.topic 0
The Profiler button provides the Profiler dialog. The Profiler provides comparative information about the execution time of each UserObject and UserFunction.

.topic 0
The Print Screen button sends the visible contents of the VEE window to a printer.  To configure the printer, use File -> Print Screen.

.topic 0
When the root node is selected, click the Find Instruments button to search for available interfaces and instruments. When a specific interface is selected, click this button to search for all instruments connected to the selected interface. The exact operations performed by the Find Instruments button are controlled by the Settings dialog.

.topic 0
The Print button brings up a standard Windows Print dialog. The Instrument Manager printout is a bitmap dump of the full Instrument List tree view.

.topic 0
This field indicates if Profiling is currently enabled. When the box is "grayed out, "profiling is stopped.

.topic 0
When this box is checked, each printout page is given a page number and other header information, and an Index is generated at the end of the printout.

.topic 0
Sets the speed at which the Data Flow markers move. Select a rate from 1 to 10. The default is 6 and the fastest is 10.

.topic 0
Save colors and fonts with program saves all the default colors and fonts in the program file that are selected in the Default Preferences dialog box. This ensures that whoever opens your program will also get all of your default colors and fonts.  If this option is not selected, only the colors and fonts explicitly set in your program are saved in your program file. This allows others using your program to retain their own default colors and fonts. If an existing program is loaded, the option is set according to how the program was saved previously.

.topic 0
This field indicates if the VEE Web Server is currently enabled. When the box is "grayed out," the Web Server is disabled. The VEE Web Server is controlled in the Default Preferences dialog.

.topic 0
Specifies the port number used by VEE's Web server. This port number must be allocated in your system's services file and must not be used by any other Web server.

.topic 0
When Delete Variables at PreRun is checked, the values stored in all variables are deleted before each program runs. Therefore, Get Variable objects will error if their values have not been properly set. When this box is not checked, Get Variable objects can access old data left from the previous program run. Such old data may or may not be valid for the new program run.

.topic 0
Save I/O configuration with program saves the veeio I/O configuration information with the program file, and not in the veeio resource file. The configuration information is specified in the Instrument Manager. If this option is not selected, the current program's configuration information is saved in the veeio file. If an existing program is loaded, the option is set according to how the program was saved previously.

.topic 0
The View Variables button displays a list of all variables that are currently defined.  Double-click a variable's name to view details such as type, shape, and data values.

.topic 0
When this box is checked, the search is constrained to exact matches of the letter-case specified in the Find line. The default is off, which treats upper-case and lower-case letters as equal.

.topic 0
Click the Remove button to delete an instrument entry from the I/O configuration.(An interface entry is automatically removed when all the instruments associated with that interface are removed.)

.topic 0
When this box is checked, a match is reported if the Find text occurs anywhere in the text being searched.

.topic 0
When this box is checked, all matches are reported for each object. The default is off, which reports only the first match found for each object.

.topic 0
Creates a Call object for the currently selected function. Place the Call in a program context. It is simply a template which can be edited as desired.

.topic 0
When this box is checked, each click of the Save button overwrites the data previously saved in the Profiler data file. When this box is not checked, each Save appends to the existing data.

.topic 0
When this box is checked, the printout includes a detailed view of each object in the program. All but the simplest objects are printed in open view form.

.topic 0
When Save is pressed, any changes to Default Preferences become valid for the curren work session and are saved in the "veerc" file. When you exit and restart VEE, the new saved Default Preferences are used. (The exact path to the "veerc" file is system dependent.)

.topic 0
When Print Header and Index Page is checked, each printout page is given a page number and other header information, and an Index is generated at the end of the printout.  This default format choice can be overridden in the Print Program dialog.

.topic 0
When Print Program Explorer is checked, the printout includes the overview information contained in the Program Explorer window. This default format choice can be overridden in the Print Program dialog.

.topic 0
The Find Results button displays the results from the most recent Find search. You can change the sorting order of a column by clicking on the column header.

.topic 0
Enter the text string you want to find in your VEE program. If you leave this line blank, the search will match any text.

.topic 0
When this box is checked, a match is reported if the Find text occurs at the beginning of the text being searched.

.topic 0
Click the Remove button to delete an instrument entry from the I/O configuration.(An interface entry is automatically removed when all the instruments associated with that interface are removed.)

.topic 0
When this box is checked, the printout includes the overview information contained in the Program Explorer window.

.topic 0
When this box is checked, a cover section is generated at the beginning of the printout.

.topic 0
When Print I/O Configuration is checked, the printout includes the expanded treeview of the I/O configuration (from the Instrument Manager). This default format choice can be overridden in the Print Program dialog.

.topic 0
The B&W Printer Darkness setting allows you to choose a shade of gray for each screen element in your VEE program. This shade of gray is used when you print the program on a non-color printer. (The settings in the Appearance Property Group are used for a color printer.)

.topic 0
The Show Data Flow button aids debugging by visually indicating the route that data takes through the program. The speed of the small square data marker is set in the Default Preferences   General tab, Debug area.

.topic 0
The Save button writes the current program to the previously specified file name.  Save uses the file shown in the VEE window title bar. If this is a New program that has not been saved previously, you will be prompted for a file name. To change filenames, use File -> Save As.

.topic 0
When this box is checked, the printout includes the expanded tree view of the I/O configuration (from the Instrument Manager).

.topic 0
If Ask before sending... is checked, a confirmation dialog is presented before *IDN? is sent to identify each instrument. If not checked, *IDN? is sent to all instruments without operator confirmation. You may want the confirmation dialog if your system contains old, non-IEEE-488.2 instruments.

.topic 0
The Paste button places a copy of the Paste buffer onto the VEE workspace. You can Paste objects that were accidentally Cut, and connections to those objects will be restored.

.topic 0
The Reset button restores the default Property/Value list, which is all object typeswith no constraints.

.topic 0
This browser presents functions and objects in a hierarchical arrangement. Choose the broad classification from the left column, the sub-category from the middle column, and the specific function or object from the right column. Then click one of the Create... buttons (or double-click the selection) to create a VEE object from your selection. Place this VEE object in a program context and edit it as desired.

.topic 0
Displays Help for the currently selected function or object (not Help about the Browser).

.topic 0
Click the Panel Driver button to create a VEE Panel Driver object for the currently selected instrument. (A Panel Driver is the full-featured graphical simulation of an instrument's front panel.)


.NETとCOM

.NETオブジェクトとCOMオブジェクトを共存させるには、これら2種類のオブジェクトがメモリ上に存在する方法を調整する必要があります。.NETオブジェクトは管理されたメモリ上に存在します。これはCLRによって管理され、パフォーマンスの改善のために実行時に必要に応じて移動されることがあります。COMオブジェクトは管理されないメモリに存在し、そのポインタはメモリ上の移動されない位置を指します。

この2種類のメモリ管理は大きく異なるため、相互の通信にはラッパが必要です。下の図は、.NETでラッパを使ってこれらの間の通信をトランスペアレントにする方法を示します。これら2つのラッパは、.NET FrameworkのCOM相互運用ストラテジの基礎となるものです。Runtime Callable WrapperとCOM Callable Wrapperについての詳細でわかりやすい説明が、MSDNのMike Gunderloyによる記事に記載されています。タイトルは、&ldquo;Calling COM Components from .NET Clients&rdquo;と"Calling a .NET Component from a COM Component"です。


エラー756

エラー756は、VEEが組み込み関数CreateInstanceで.NETオブジェクトを作成できなかった場合に発生します。 エラーをデバッグして修正するには、次のチェックリストが役立ちます。

エラー756チェックリスト

  1. .NETクラスが存在するアセンブリへの参照を追加しましたか?

  2. Function & Object Browserを開き、必要なアセンブリ、名前空間、クラス型を選択します。必要なクラスが表示されない場合、そのクラス型の.NETオブジェクトを作成することはできません。

  3. そのクラスのコンストラクタが見つかりますか? そのクラスにコンストラクタがない場合、そのクラス型の.NETオブジェクトを作成することはできません。

  4. [Create Instance]ボタンを使って式テンプレートを作成しましたか? この方法を使うと、アセンブリ名やクラス名の入力誤りなど、多くの一般的な誤りを避けることができます。

  5. COMのCreateObjectと異なり、.NETクラスのコンストラクタは任意の数のパラメータを取ることができます。 したがって、正しい型の正しい数のパラメータをCreateInstance呼び出しに渡すように注意が必要です。 Function & Object Browserを使用すると、正しいコンストラクタを容易に選択でき、正しい数の入力パラメータのプレースホルダが提供されます。パラメータの型が正しいことも確認する必要があります。

  6. VEEエラー・ボックスを見てください。 .NETの例外は、COMよりもはるかに豊富な内容を持つのが普通です。 内容を見ても助けにならない場合、クラスが.NET共通クラス・ライブラリに属する場合はMSDNを参照してください。


エラー300
The input terminal number <n> is not connected（入力端子番号<n>が接続されていません）

解決法

このエラー・メッセージは次の3つの場合に発生します。

1. データ入力ピンが接続されていない場合。

オブジェクトのすべてのデータ入力端子はプログラムの実行前に接続されている必要があります。エラーの原因となったオブジェクト（赤い輪郭線のオブジェクト）を見つけ、必要な接続を行ってください。

2. UserObject/UserFunctionで、出力端子の内部ピンが接続されていない場合。

エラー・メッセージが出力バッファの入力端子を指している場合、UserObjectまたはUserFunctionに対してこのメッセージが発生している可能性があります。これは、出力端子の内部ピンがUserObjectまたはUserFunction内部のオブジェクトに接続されていないことを示します。出力端子のすべての内部ピンはプログラムの実行前に接続されている必要があります。

どのピンが接続されていないかを知るには、UserObjectのオープン・ビューまたはUserFunctionの編集ビューを調べます。Properties Windowで、Show Terminalsを選択して端子領域を表示します。

3. UserFunctionをインポートする場合。

UserFunctionをインポートする際にこのメッセージが発生した場合、UserFunction内部のオブジェクトの入力端子が接続されていません。File [image] Open File [image] Merge Libraryを使ってUserFunctionをロードし、UserFunctionを変更してから保存します。前のプログラムを開いて実行すると、UserFunctionは正しくインポートされるはずです。


エラー553
An ActiveX object returned an error during <action> <name>.（ActiveXオブジェクトが<action> <name>中にエラーを返しました）

解決法

このエラーは、ActiveXオブジェクトがエラー・コードDISP_E_EXCEPTIONを返した場合に発生します。このエラーの原因としては、プロパティまたはメソッドに無効な値を渡したことが考えられます。もう1つの原因としては、ActiveXオブジェクトが特定の条件でエラーを発生するように要求されていることが考えられます。例えば、WindowsのCommon Dialogコントロールは、いくつかの共通ダイアログ・ボックスへのアクセスを提供します。これらのダイアログ・ボックスは、ユーザがCancelボタンを押したときにエラーを発生するように設定できます。この場合、ActiveXオブジェクトはCancelボタンが押されたことを示すエラーを返します。


エラー557
ActiveX object could not be created.（ActiveXオブジェクトを作成できませんでした）

解決法

VEEがActiveXオブジェクトを作成できないのにはさまざまな理由が考えられます。問題の解決法は、報告されたエラー・コードによって異なります。

VEEから報告されたエラー・コードが0x80080005の場合、Windowsがレジストリの情報に基づいてActiveXサーバまたはコントロールをロードできませんでした。このエラーは、サーバまたはコントロールが登録されているディレクトリがスペースを含む長いファイル名を持ち、似たディレクトリ名が同じレベルに存在する場合に発生することがあります。詳細については、Microsoftサポート技術情報の記事Q179690を参照してください。推奨される解決策は、サーバまたはコントロールを、パスにスペースを含まないディレクトリか、同じレベルに似た名前のないディレクトリにインストールすることです。

ActiveXオブジェクトがエラー・コード0x80040112を示す場合、コントロールはライセンスされています。このエラーは、ライセンスされたコントロールが正しくインストールされていない場合に発生することがあります。完全なコントロール・パッケージが正しくインストールされていれば、VEEプログラムの開発中にコントロールのインスタンスを作成するためのライセンスが存在します。VEEはコントロールにライセンス・キーを要求し、このキーをVEEプログラムに保存します。この方法により、コントロールのファイルのコピーをプログラムとともに複数のターゲット・コンピュータに配布できます。VEEはターゲット・コンピュータでこのキーをコントロールに提示し、これによりVEEはコントロールのインスタンスを作成できます。

このエラー・メッセージは、ターゲット・コンピュータでコントロールを使用しようとしたときに発生します。コントロールを使用して新しいプログラムを作成することはできず、コントロールを既存のプログラムにクローンまたはコピー／貼り付けすることもできません。コントロールはターゲット・コンピュータ上で使用するためにライセンスされていないからです。ライセンス・キーはVEEがコントロールを参照することだけを許可しています。完全なコントロール・パッケージを購入してインストールする必要があります。


エラー593
MATLAB Script execution error（MATLABスクリプト実行エラー）

解決法

MATLABのさまざまな実行時エラーは、すべてVEEのエラー593にマッピングされます。VEEのエラー・ボックスの"Go To"ボタンに表示されるのは、MATLABスクリプト・オブジェクトだけで、個々のMATLABプログラム行は表示されません。すなわち、エラー593の実際の原因となった問題を発見して修正するためには、何らかのトラブルシューティングが必要です。2つの有用な方法は、MATLABのエラー・メッセージ・テキストを読むことと、msgbox関数を使用することです。これらを次の例に示します。

この小さいVEEサンプルは、ファイルから"Y"値のベクトルを読み取り、"X"値のリニア・ランプを作成し、これら2つのベクトルを使ってX-Yグラフをプロットします。このプログラムを実行したときに、次のエラーが発生したとします。

このダイアログ・ボックスの2番目の段落に、MATLABスクリプトから発生したエラー・メッセージが含まれています。この場合は、Invalid fidです。これは、fscanf関数に無効なファイル識別子が与えられたことを示します。さらに調査を行うには、fopenが返した値を表示します。例えば、次のような行を挿入します。

dfile=fopen('C:sineWave.txt','r')
uiwait(msgbox(int2str(dfile)))
ydat=fscanf(dfile,'%f')

2行目は、MATLABスクリプトの有効なデバッグ方法を示しています。uiwait(msgbox(...))という組み合わせは、テキスト・ボックスを表示し、OKボタンが押されるのを待ちます。MATLAB変数を表示するための「ライン・プローブ」や「ウォッチ・ウィンドウ」のようなものは存在しないので、デバッグ中に値を表示するにはメッセージ・ボックスを使うのが便利です。msgbox関数には文字列パラメータが必要なので、int2str関数を使ってファイルIDの数値を変換します。

デバッグ行を追加したサンプルを実行すると、メッセージ・ボックスに-1というファイルIDが表示されます。fopenに関するMATLABヘルプデスク・トピックによると、-1はfopenが失敗したときに返される値です。すなわち、fscanf関数に無効なファイルIDが渡されたのは、ファイルを開けなかったからです。これは、ファイル・システムに関わる一般的ないくつかの原因によって起こります。例えば、権限がない、パス名の誤りなどです。ファイル・パスを修正してサンプルを再実行したとします。次のエラーが発生します。

ここでも、2番目の段落にMATLABエラー・メッセージが表示されています。この場合、XベクトルとYベクトルが同じ長さでないためにplot関数が失敗しています。msgboxを使ってxdatとydatのlengthを調べるか、MATLABコロン演算子の意味を見直してみてください。いずれにしても、MATLABの配列は要素"0"から始まることを思い出すはずです。したがって、length(ydat)が256の場合、xdatランプは0～256の257要素で作成されます。修正した構文は次のとおりです。

xdat=0:1:length(ydat)-1;

これは架空の例ですが、MATLABスクリプト・オブジェクトのデバッグの際に有用な技法を示しています。まとめると:

MATLABエラー・メッセージの詳細を見る。"VEE Run Time Error"ダイアログの2番目の段落には、失敗したMATLAB関数と、問題の性質を記述した行が含まれます。

msgboxを挿入して値を表示する。数値は表示する前に文字列に変換します。デバッグのために必要がなくなったmsgbox行は忘れずに削除してください。

MATLABドキュメントを活用する。VEEウィンドウからMATLABヘルプを見るには、次の項目を選択します。Help [image] MATLAB Script [image] Help Desk


エラー601
Invalid expression: <description>（無効な式: <description>）

解決法

このエラーで<description>がFormulaオブジェクト式の構文エラーを示す場合、以下の条件をチェックしてください。

1. すべての式が";"（セミコロン）で終わることを確認してください。メッセージはエラーの位置を示しますが、前の式の末尾にセミコロンが抜けている場合、実際の式は前の行にある可能性があります。

2. 大きい実行モードの固有のキーワードを小さい実行モードで変数名として使用しないようにします。例えば、SetやByRefなどのキーワードです。プログラムの実行モード設定をチェックするには、VEEウィンドウの右下隅にあるステータス・バーを見ます。

3. 組込み定数に値を代入するのは避けます。VEE 5以上の実行モードでは、次の組込み定数が定義されています:TRUE、FALSE、PI

4. 3項演算子を使用する場合、ステートメント全体を次のように括弧で囲む必要があります。

正:
(a==0 ?TRUE :FALSE)

誤:
a==0 ?TRUE :FALSE

5. 配列を構築または変更する式では、インデックスをカンマで区切った構文を使用します。

正:
[1,1,0]

誤:
[1 1 0]


エラー739
Stack pointer corrupted after return from compiled function <function_name>（コンパイル済み関数<function_name>から戻った後でスタック・ポインタが破損しています）

解決法

スタック・ポインタが破損する最も一般的な原因は、関数のプロトタイプで間違った呼び出し規則を使用したことです。この宣言は、定義（.h）ファイルに書かれています。呼び出し規則が指定されていない場合、VEEはデフォルトで_cdecl規則を使用します。例えば、以下の2つの宣言はVEEにとって同じであり、どちらも_cdecl関数を意味します。

long func1(long a, long b)
long _cdecl func1(long a, long b)

これ以外に最も一般的に用いられるのは、__stdcall規則です。これは明示的に指定することも、共通マクロで指定することもできます。例えば、以下の2つの宣言はどちらも__stdcall関数を宣言します。

long __stdcall func2(long x)
long WINAPI func2(long x)

呼び出し規則の主な目的の1つは、スタックの「クリーンアップ」を誰が実行するかを決めることです。このクリーンアップは、呼び出し側（VEE）または呼び出された側（関数）のどちらかで実行します。スタックのクリーンアップは必ず1箇所だけで実行する必要があります。関数プロトタイプがDLLの関数コードと一致しない場合、スタック・ポインタの再配置が2回行われたり、全く行われなかったりするおそれがあります。どちらの場合も、プログラムにとって致命的な影響が生じることがあります。

Win32 API関数のほとんどは__stdcall呼び出し規則を使用します。可変の数の引数を取るWin32 API関数だけが_cdeclです。Visual Basicで使用できるDLLはすべて__stdcall呼び出し規則を使用します。Cで書かれたDLLのほとんどは_cdecl呼び出し規則を使用しますが、関数が__stdcallと宣言されている場合、またはDLLがMicrosoftコンパイラの/Gzオプション付きでコンパイルされている場合は例外です。

スタック・ポインタが破損するもう1つの原因として、__stdcall関数で、関数プロトタイプに宣言されたパラメータの数または型が間違っていることが考えられます。

VEE 8.0以降のバージョンで.NET Framework 2.0以降を使用する場合、このスタック・ポインタの破損は.NET Execution Engineによっても捕捉されます。場合によっては、.NET Execution Engineがこのスタックの破損をセキュリティ・リスクと見なし、VEEプロセスを終了することがあります。VEEは、終了される前に、終了することを示すメッセージ・ボックスをポップアップ表示します。VEEはスタック・ポインタの破損から回復することはできません。

このエラーを修正する最も簡単な方法は、定義（.h）ファイルを変更して、DLLの動作を正しく記述するようにすることです。VEEは次にプログラムを実行したときに新しい定義を読み込みます（定義ファイルの名前を調べるには、VEEのImport Libraryオブジェクトをチェックします）。


エラー751

エラー751の最も一般的な原因は、.NET操作中にSystem.MissingMemberExceptionまたはSystem.MissingMethodExceptionが発生したことです。 この場合、エラーをデバッグして修正するには、次の項目をチェックしてください。

エラー751チェックリスト

1. Function & Object Browserを使ってテンプレートを生成しましたか? Function & Object Browserを使えば、751エラーの原因の多くを避けることができます。

2. 呼び出したいメンバの綴りをチェックしてください。

3. メソッドとプロパティのどちらを呼び出そうとしていますか? メソッドには、パラメータがない場合でも、"("と')"が必要です。 プロパティは、インデックス付きまたはパラメータ化されたプロパティの場合を除いて、"("と")"を付けません。

4. 正しい数のパラメータを渡しましたか?

5. 各パラメータの型は正しいですか? VEEの.NET操作は通常、パラメータとして精度が上がるデータ型を受け入れますが、精度が下がるデータ型は受け入れません。例えば、VEEのUInt8を、.Int16型のパラメータを要求する.NET操作に渡すことができますが、逆はできません。 また、.NET操作がByRefパラメータを要求し、その結果を読み取りたい場合、データ型を正確に一致させる必要があります。例えば、.NETメソッドがByRef Int32型のパラメータを要求する場合、VEEのByRef Int32データ型だけを渡すことができます。 結果を読み取る必要がない場合には、ByRefキーワードを省略できます。これにより通常のパラメータ規則が適用されます。

6. Function & Object Browserで'S'で示されたスタティック（共有）メンバを呼び出す場合、インスタンス変数は使用しません。スタティック（共有）メンバを呼び出すには、クラス名を使用します。 Function & Object Browserでは、スタティック（共有）メンバに対してクラス名を使った正しい構文（名前空間のインポートも考慮して）が自動的に生成されます。

関連項目

VEEでの.NETエラーについて


エラー810

計測器ドライバ・エラー<n>:<description>
詳細については計測器のマニュアルを参照してください

解決法

計測器エラーが発生しました。このエラーは、計測器から計測器ドライバを通じてVEEに渡された計測器エラーを示します。

例えば、エラーは次のようになります。
Instrument driver error 1051:Device xxx reported error nnn

"xxx"は、[I/O] [image] [Instrument Manager]で計測器に割り当てられた名前です。

"nnn"は計測器エラー・メッセージです。エラーの意味については計測器のマニュアルを参照してください。計測器マニュアルに詳細が記載されています。


エラー811

I/Oエラーまたはタイムアウトが発生しました

解決法

このエラーは、VEEが計測器と通信できなかった場合に発生します。以下の操作で問題が解決する場合があります。

計測器が接続され、電源がオンになっていることを確認します。

ケーブルがしっかりと接続されているかどうかを確認します。

I/Oアドレスが正しいかどうかを確認します。

計測器ドライバを使用している場合、計測器に対して正しいドライバ・ファイルを指定しているかどうかを確認します。

注記

大量のデータを転送する場合や計測器の応答が遅い場合は、[I/O] [image] [Instrument Manager]でタイムアウト値を大きくしてみてください。


エラー851
There is no Service Manager on host, <name>（ホスト<name>にサービス・マネージャがありません）

解決法

サービス・マネージャを起動できませんでした。このエラー・メッセージは次の場合に発生します。

1. サービス・マシンでサービス・マネージャが起動されていない場合

Windows NTで動作しているプログラムの場合:

サービス・マネージャは、VEEインストール・ディレクトリにあるveesm.exeという名前のコンソール・アプリケーションです。スタートメニューからファイル名を指定して実行を使ってこれを起動してください。

"C:\Program Files\Agilent\VEE 5.0\veesm.exe"

サービス・マネージャをスタートアップ・グループに入れて、Windowsが起動したときに自動的に実行されるようにすることもできます。サービス・マネージャが最小化状態で実行されるようにショートカットのプロパティを設定します。


エラー906
Thread with feedback requires START object（フィードバックを持つスレッドにはSTARTオブジェクトが必要です）

解決法

フィードバックを使うと、ループの前の反復から初期値やアクセス値を設定できます。

フィードバックを使用するには、Startオブジェクトをフィードバック・ループ中のオブジェクトに接続することにより、どのオブジェクト（またはサブスレッド）を最初に実行するかを示す必要があります。


エラー910
Process is out of memory, save your program IMMEDIATELY（プロセスのメモリが不足しています。ただちにプログラムを保存してください）

解決法

プログラムをただちに別のファイル名で保存してください。

Windows NTで動作しているプログラムの場合:

プログラムが使用可能なスワップ・スペースを使い切りました。

考えられる原因としては、プログラムが非常に大きい配列やレコードを割り当て、これらの構造全体にわたる操作を実行したことが挙げられます。この場合、プログラムを変更して、構造の一部だけを操作するようにしてみてください。

それでも解決しない場合は、割り当てるスワップ・スペースを増やしてから、スワップ・スペースを使い切ったVEEプログラムを実行してください。

Windows NTの場合:マイ コンピュータでマウスの右ボタンをクリックし、プロパティを選択します。パフォーマンス・タブを選択し、仮想メモリ・ボタンを選択して仮想メモリ設定を調整します。


エラー935
 A Junction is required inside of feedback cycles.（フィードバック・サイクル中にはJunctionが必要です）

解決法

VEE 4以上の互換モードでは、フィードバック・サイクル中にJunctionオブジェクトが必要です。Startオブジェクトは不要になりました。

[Help] => [Contents and Index] => [以下の項目についての説明...] => [I/Oトランザクション]を参照してください。


エラー937
Sample & Hold was not given any data.（Sample & Holdにデータが与えられませんでした）

解決法

Sample & HoldオブジェクトのXEQピンがヒットされましたが、オブジェクトにデータがありません。すなわち、出力するデータがありません。プログラムを変更して、XEQピンが実行される前にSample & Holdオブジェクトにデータが送られるようにします。このエラーは、VEE 4以上の互換モードでのみ発生します。


エラー938
VEE was unable to compile this part of the program.（VEEはプログラムのこの部分をコンパイルできませんでした）

解決法

VEE 3.x以前のバージョンでは、反復オブジェクトの交差が可能でした。実行順序は未定義ですが、接続が実行された順序に影響されます。これは、VEE 3互換モードで動作するプログラムにも当てはまります。

VEE 4.x以上のバージョンでは、互換モードがVEE 4以上に設定されている場合、Junctionオブジェクトを介して交差するループだけが可能です。それ以外の交差ループは、このエラーを発生します。

[Help] => [Contents and Index] => [以下の項目についての説明...] => [I/Oトランザクション]を参照してください。


エラー939
Cannot push START when thread is connected to input terminals.（スレッドが入力端子に接続されている場合はSTARTを押すことはできません）

解決法

UserObjectまたはUserFunctionに含まれるStartオブジェクトが、押されたときに、コンテキスト外部で発生するデータに依存するスレッドを実行しようとします。Startが押されたときに実行されるのはコンテキスト内部のオブジェクトだけなので、データが存在しないために一部のオブジェクトが実行できません。このエラーはデータが存在しないために発生します。このエラーは、VEE 4以上の互換モードでのみ発生します。

次の解決策があります。

オブジェクトにデータを供給する。UserObjectまたはUserFunctionの入力端子から入力を一時的に切り離し、入力をConstantオブジェクトやデータを出力するその他のオブジェクトに接続します。または、Junctionを使って初期値を供給します。

デバッグしようとしているスレッドの部分を別のUserObjectに入れて分離し、それだけで実行してみる。


エラー940
Illegal form of feedback（無効なフィードバック形式です）

解決法

このエラーは、VEE 4以上の互換モードで、反復子のないフィードバック・ループが存在する場合に発生します。反復子がないため、フィードバック・ループは不完全です。

プログラムに反復子を挿入してループを完成するか、Junctionオブジェクトを取り除いてフィードバックをなくしてください。


エラー941
T1 must be activated before T2.（T1はT2より前にアクティブになる必要があります）

解決法

VEE 4以上の互換モードでは、Timerオブジェクトの上のデータ入力ピン（T1）は下のデータ入力ピン（T2）よりも先に実行される必要があります。ラインの接続を（T1とT2の間で）入れ替えるか、プログラムのロジックを変更して、ピンが正しい順序で実行されるようにしてください。


エラー950～999

これらのエラー・コードは、Agilent VEEの内部動作に用いられるもので、通常の動作では発生しません。これらのエラー・コードが発生した場合、次のボックスが表示されます。

エラー・レポートを提出する前に、アップデートをチェックしてください。Agilentでは随時パッチ・ファイルを提供しています。この中に、発生した問題を修正するものがあるかもしれません。内部エラー・タイプ、エラー番号、オブジェクト・タイトル、オブジェクト型は、場合によって異なります。お客様の名前と電子メール・アドレスを入力し、[Send Error Report]ボタンを押してください。Agilentにミニダンプが送信されます。ミニダンプは、Agilentが信頼性の問題を追跡し、問題をすばやく同定して修正するために役立ちます。場合によっては、問題を再現するためにお客様の協力が必要になることがあります。このような場合、入力されたメールアドレスにメールをお送りします。メールを受け取りたくない場合は、アドレス・フィールドを空白にしておいてください。いずれの場合も、エラー・レポートはお送りください。エラーを再現できなくても、レポートは製品に関する貴重な情報となります。この項目の末尾にあるミニダンプに関する詳細情報を参照してください。

注意

先に進む前に、このタイプのエラーが発生した場合、VEEでは既存のプログラム・ファイルを上書き保存できないことに注意してください。ただし、破損したプログラムを別の名前で保存することはできます。このプログラムは何日かは問題なく動作するかもしれませんが、後にプログラムの破損した部分が実行されて、同じまたは類似のエラーが発生する可能性があります。

ハード・ディスク上に保存されている元のプログラムは、このエラーの影響を受けません。以下の手順で、プログラミングを続行する方法を決定してください。

1. プログラムを別のファイル名で保存し、VEEを終了します。

2. 新しいプログラムが破損しているかどうかを確認するため、新しいVEEウィンドウでプログラムを開いて実行し、そのすべてのスレッドを実行します。結果に応じて、次のいずれかを選択します。

a. 新しいプログラムが正常に開かれて実行された場合、そのプログラムを使用し続けてかまいません。それでも、破損した部分が存在する可能性があることに注意してください。プログラムが以後も正常に動作し続ける場合は、破損していない可能性が高いといえます。

b. 新しいプログラムが正常に開かれて実行された場合でも、潜在的な問題を避けるために使用しないという選択もあります。元のプログラムに保存されていない変更がある場合、新しいプログラムを参照することは可能です。新しいプログラムから元のプログラムにスレッドをコピーすることは避けてください。破損した領域がコピーに含まれる可能性があるからです。新しいプログラムは、Agilentサポートに問題を説明するときのために保管しておいてください。

c. 新しいプログラムが破損している場合、削除はしないでください。新しいプログラムは、Agilentサポートに問題を説明するときのために保管しておいてください。役に立つプログラム上の現象が見つかる可能性があります。プログラムを保存せずにVEEを終了し、新しいVEEウィンドウで元のプログラムを開いて、プログラミングを続行してください。

ミニダンプ

VEEは、現在動作中のプロセスに関するほとんどの詳細を再現するのに十分な情報を、ミニダンプに保存します。この情報には、各関数へのパラメータの値、これらの関数内のローカル変数の値、ポインタであるローカル変数に対応するメモリなどが含まれます。この情報によって、Agilentがエラーの原因と突き止めるのが容易になります。

ミニダンプには、VEE実行可能ファイルと、ロードされたすべてのDLL（Import LibraryによってVEEにインポートされたものなど）を含むすべての実行可能モジュールへのフル・パスも含まれます。VEEプログラム内にパスワード、コード名などの機密情報が存在する場合、その情報もAgilentに送信されるミニダンプに含まれる可能性があることに注意してください。Agilentは、エラー・レポートに含まれる情報のプライバシーを保護するために、適切な注意を払います。ただし、ユーザにはエラー・レポートをAgilentに送信する義務はありません。


[File Open]ダイアログ・ボックス

Windows標準の[File Open]ダイアログ・ボックスで、Import Libraryオブジェクト、To/From Fileオブジェクト、To/From Datasetオブジェクトの[MyFile]ボタンをクリックすると表示されます。

インポートしたいファイルをこのダイアログ・ボックスで選択し、[Open]ボタンをクリックしてこのダイアログ・ボックスを閉じます。選択したファイルの名前とパスが、対応するオブジェクトのボタンのテキスト"MyFile"の代わりに表示されます。

VEEプログラムを保存すると、選択したファイルの名前とパスもVEEプログラムに保存されます。 ダイアログ・ボックスの 下部にある[Save as Relative Path]のチェックを外すと、 ファイルの絶対パスが保存されます。[Save as Relative Path]にチェックを入れると、現在のディレクトリへの相対パスがVEEプログラムに保存されます。

現在のディレクトリは、Agilent VEEが起動されたディレクトリです。To/From Fileオブジェクト、To/From DataSetオブジェクト、またはImport LibraryオブジェクトのTo Fileの隣のボタンの上にカーソルを移動すると、現在のディレクトリがツールヒントに表示されます。例えば、下の図では、現在のディレクトリはc:\VEEです。


What has been Fixed in This Release

What has been Fixed in Version 8.5

ID | Descriptions
28818 | VEE can't load programs including UF name that starts with Full size Japanese characters.
28803 | VEE Hangs when programmatically changing the field value in a record when the field type is Enum, Record or COM Object.
28825 | VSE: Changing Legacy interface to Visa interface will cause VSE.
29139 | VSE when double clicking items in Find Result window if these items are from a remote UserFunction.
28899 | Pops up "timeout" caution message after second execution for all VISA instruments.
28806 | Watch window: double byte characters (Chinese/Japanese) only appear half in Watch window.
28857 | Unhandled exception when change the InitialValue of an Int64 constant in Properties window.
29502 | Vee uses the wrong number of points to calculate a sample interval when displaying a waveform.
28821 | VSE: Executing I/O Transaction with I/O Monitor enabled will cause VSE.
28886 | Dynamic menu items: Assertion failed when launch .net operation builder during running state.
29197 | Exception occurs when removing DeclaredName from a Textbox object.
27998 | Clicking on the Call user function object in one lib jumps to the wrong lib.
29121 | Program Explorer: Imported UF does not updated after changing the title.
29114 | Program Explorer: Generating of variables should be disable for Secured Userfunctions.
29479 | Minimap: Minimap is not updated when opening UserFunction or User Object and no mouse movement.
28667 | VSE in MessageBox while select "X" in Custom buttons.
22845 | Scissors mouse cursor reset when over a formula box.
28880 | One minute one time delay occurs during initialization if the instrument does not support RQS event.
29059 | Property Grid: LabelSpacing can't be modified after certain steps.
28777 | Int64: elementary power result is wrong if input is array.
29519 | Error message pops up when clicking the "show config" meun of Legacy device without the Enable Legacy I/O button checked.
29568 | Wrong result when a boolean multiply a Coord.
29585 | VEE launch very slow if user can not connected to the internet because of the defect of .NET Framework 2.0 authenticode checking.
28894 | Watch window should show a rotating hourglass when expanding a 6000 long record array node since it will take a long time.
28206 | New Workbook, Create Chart, Save failed when using Excel 2007 Beta2TR.
28722 | Can't programmatically change the PopupPanelTitle of Main for VXE file.
28733 | Visible property can't work well if the device has no declared name.
28482 | Vee hangs when edit user object which has a drop down list in the panel.
29342 | Minidumps should not overrun user's disk space, rather should replace older dumps.
28734 | .Vxe and .Vee file icons are the same.
29032 | Restored UO can't restore to default backcolor if the UO has declared a variable name.
28837 | TypeName(x) gives error " Value is nil or empty (could be zero-element array)"when the input is a zero element record array.
28881 | enableEOI property is ignored for VISA.
28620 | Does not give the correct visa address sample in function & object browser.
28778 | Watch Window:unhandled exception happens when press "Ctrl+C" after open Watch window.
28873 | Pops up "GPIB-VISA interface type in Instrument configuration file not enabled" when load some programs in previous versions of VEE.
28779 | 8.0 VXE file has double size of 7.5 VXE file.
28885 | Slider: EnableEditing property set to false still can be edited after run..
28689 | VEE hangs when select 'save as.." after key in 'out of range number' for int array.
28655 | PanelDrawGrid's gone forever after added/removed a background picture.
28783 | Assersion: when using Double Byte Character Set in Watch window.
29122 | VSE: do undo with Properties window on.
28891 | EnableEditing will return to default value (true) after execution or opening.
29204 | Need a "Generate" context menu for Declare Variable object.
28658 | Context menu of Watch Window displays improperly when the window is empty.

VSE: VEE Serious Error

Copyright (c) 1991-2007 Agilent Technologies, Inc.


HC_BrowserCall

現在選択されている関数に対するCallオブジェクトを作成します。Callはプログラムのコンテキストに配置します。これは単なるテンプレートであり、必要に応じて編集できます。


HC_BrowserFormula

現在選択されている関数または演算子に対するFormulaオブジェクトを作成します。Formulaはプログラムのコンテキストに配置します。これは単なるテンプレートであり、必要に応じて編集できます。


HC_BrowserGet

現在選択されているメンバ（プロパティ）の値を取得するFormulaオブジェクトを作成します。Formulaはプログラムのコンテキストに配置します。これは単なるテンプレートであり、必要に応じて編集できます。


HC_BrowserHelp

現在選択されている関数またはオブジェクトに関するヘルプを表示します（ブラウザに関するヘルプではありません）。


HC_BrowserSelectArea

このブラウザは、関数とオブジェクトを階層構造で表示します。左側の列で大きい分類を選び、中央の列でサブカテゴリを選び、右側の列で個々の関数またはオブジェクトを選択します。その後、Create...ボタンの1つをクリックする（または選択したものをダブルクリックする）と、選択したものからVEEオブジェクトが作成されます。このVEEオブジェクトをプログラムのコンテキストに配置し、必要に応じて編集します。


HC_BrowserSet

現在選択されているメンバ（プロパティ）の値を設定するFormulaオブジェクトを作成します。Formulaはプログラムのコンテキストに配置します。これは単なるテンプレートであり、必要に応じて編集できます。


HC_FindAllMatches

このボックスがチェックされている場合、各オブジェクトに対するすべての一致が報告されます。デフォルトはオフであり、各オブジェクトに対する最初の一致だけが報告されます。


HC_FindMatchCase

このボックスがチェックされている場合、Find行の内容と大文字小文字の区別を含めて正確に一致するものが検索されます。デフォルトはオフであり、大文字と小文字は区別されません。


HC_FindNested

このボックスがチェックされている場合（デフォルト）、ネストされたUserObjectのすべてのレベルを通じて検索が実行されます。チェックされていない場合、現在のレベルだけが検索されます。


HC_FindObjectType

Object Typeプロパティは、Valueリストで選択された型のオブジェクトに検索を制限します。デフォルトはすべてのオブジェクト型です。検索を制限するには、Valueボタンをクリックし、必要な型をチェックまたはチェック解除します。Select Allボタンはすべての型を選択し、Clear Allボタンはすべての型を選択解除します。


HC_FindOtherProperty

Propertyボタンを使って、さまざまなオブジェクト・プロパティに基づいて検索を制限できます。Propertyを選択したら、必要な制約をValue列に指定します。例えば、Breakpoint/Onを選択した場合、アクティブなブレークポイントが設定されているオブジェクトだけが検索されます。


HC_FindReset

Resetボタンは、デフォルトのProperty/Valueリストに戻します。すなわち、すべてのオブジェクト型と制約なしです。


HC_FindSearchIn

このフィールドは、検索の範囲を示します。デフォルトはEntire Program（プログラム全体）です。検索の範囲を制限するには、プログラム・エクスプローラでUserFunctionやUserObjectなどの特定のコンテキストをマウスの右ボタンでクリックしてFindダイアログを開きます。


HC_FindShowBegin

このボックスがチェックされている場合、Findテキストが検索対象テキストの先頭にある場合に一致が報告されます。


HC_FindShowContain

このボックスがチェックされている場合、Findテキストが検索対象テキストのどこかに含まれる場合に一致が報告されます。


HC_FindShowEnd

このボックスがチェックされている場合、Findテキストが検索対象テキストの末尾にある場合に一致が報告されます。


HC_FindShowExact

このボックスがチェックされている場合、Findテキストが検索対象テキストのフィールド全体に一致する場合に一致が報告されます。


HC_FindTarget

VEEプログラムで検索したいテキスト文字列を入力します。この行を空白にしておくと、検索はすべてのテキストに一致します。


HC_IconAddToPanel

Add To Panelボタンは、選択されたオブジェクトをプログラムのパネル・ビューに追加します。パネル・ビューが存在しない場合、パネル・ビューが作成されます。パネルは現在のコンテキストに対応し、ネストすることもできます。


HC_IconBreakpoint

Toggle Breakpointボタンは、デバッグのために、選択されたオブジェクトの実行ブレークポイントを設定またはクリアします。オブジェクトにブレークポイントが設定されていると、そのオブジェクトの直前でプログラム実行が停止します。ブレークポイントは、オブジェクト・メニューのPropertiesからもアクセスできます。


HC_IconCallStack

Call Stackボタンは、デバッグのために、現在休止中のUserObjectまたはUserFunctionに到達するまでに起動されたUserObjectまたはUserFunctionの階層を表示します。Call Stackダイアログのエントリをクリックすると、そのUserObjectまたはUserFunctionがVEEワークスペースで開かれます。


HC_IconCopy

Copyボタンは、選択されたオブジェクトのコピーをPasteバッファとWindowsクリップボードに入れます。


HC_IconCut

Cutボタンは、選択されたオブジェクトを削除して、PasteバッファとWindowsクリップボードに入れます。


HC_IconDefaultPrefs

Default Preferencesボタンは、Default Preferencesダイアログを表示します。このダイアログには6つのタブがあり、VEE設定のさまざまなカスタマイズを提供します。


HC_IconDelLine

Delete Lineボタンは、Delete Lineカーソルを表示します。これをラインの上でクリックするとそのラインを削除できます（ラインを簡単に削除するにはCtrl-Shiftを押しながらクリックします）。


HC_IconFind

Findボタンは、VEEプログラム中のテキスト文字列や一部のオブジェクト・プロパティを検索するためのダイアログ・ボックスを表示します。Match CaseやObject Typeなどの検索プロパティを使って、検索の制約を指定できます。検索の範囲を制限するには、プログラム・エクスプローラで特定のコンテキストをマウスの右ボタンでクリックしてFindを開きます。


HC_IconFindResults

Find Resultsボタンは、最新のFind検索の結果を表示します。列の並び順は、列の見出しをクリックすることで変更できます。


HC_IconFuncBrowser

Function & Object Browserボタンは、Function & Object Browserダイアログを表示します。このブラウザからは、さまざまな演算、オブジェクト、プロパティに簡単にアクセスできます。


HC_IconInstrMgr

Instrument Managerボタンは、Instrument Managerダイアログを表示します。このダイアログでは、計測器トランザクションやドライバなどのI/Oリソースの編集、表示、作成を容易に実行できます。


HC_IconNew

Newボタンは、VEEワークスペースをクリアします。現在のプログラムに保存されていない変更がある場合は、プロンプトが表示されます。


HC_IconOpen

Openボタンは、VEEワークスペースにプログラム・ファイルをロードします。既存のプログラムがある場合は置き換えられます。現在のプログラムに保存されていない変更がある場合は、プロンプトが表示されます。


HC_IconPaste

Pasteボタンは、PasteバッファのコピーをVEEワークスペースに置きます。間違ってCutしたオブジェクトをPasteすると、オブジェクトへの接続も復元されます。


HC_IconPause

Pauseボタンは、すべてのプログラム・スレッドの実行を一時的に停止します。プログラムが休止状態にある場合、StepまたはRun/Resumeを使って、休止した点からプログラムの実行を続行できます。


HC_IconPrint

Print Screenボタンは、VEEウィンドウの表示内容をプリンタに出力します。プリンタを設定するには、File [image] Print Screenを使用します。


HC_IconProfiler

Profilerボタンは、Profilerダイアログを表示します。Profilerには、各UserObjectおよびUserFunctionの実行時間に関する比較情報が表示されます。


HC_IconProgExplorer

Program Explorerボタンは、プログラム・エクスプローラ・ウィンドウを表示または非表示にします。プログラム・エクスプローラは、現在のVEEプログラムの階層構造を表示します。


HC_IconRun

Runボタンは、プログラムのすべてのスレッドの実行を開始します。プログラムに複数のスレッドがあり、その1つだけを実行したい場合、Runボタンの代わりにそのスレッドのStartオブジェクトを使用します。


HC_IconRunState

この領域には、プログラムの実行状態が表示されます。インジケータは次のとおりです。

空白 待機（停止中）
緑の矢印 実行中
黄色のバー 休止中
赤のバー エラー


HC_IconSave

Saveボタンは、現在のプログラムを以前に指定されたファイル名に書き込みます。SaveはVEEウィンドウのタイトル・バーに表示されたファイルを使用します。これがNewで作成されたプログラムで、まだ保存されたことがない場合、ファイル名のプロンプトが表示されます。ファイル名を変更するには、File [image] Save Asを使用します。


HC_IconShowData

Show Data Flowボタンは、デバッグのために、プログラム中でデータが通る経路を視覚的に示します。小さい四角のデータ・マーカの速度は、Default Preferences [image] GeneralタブのDebug領域で設定します。


HC_IconShowExec

Show Execution Flowボタンは、デバッグのために、プログラムの実行中に現在実行されているオブジェクトを強調表示します。休止またはエラー状態では、Show Execution Flowは実行済みのすべてのオブジェクトを強調表示します。


HC_IconStepIn

Step Intoボタンは、デバッグのために、プリミティブ・オブジェクトを1つずつ実行します。UserObjectまたはローカル／インポートUserFunctionがあった場合、その詳細ビューが表示され、ビューの中のオブジェクトが1つずつ実行されます。


HC_IconStepOut

Step Outボタンは、デバッグのために、プリミティブ・オブジェクトを1つずつ実行します。UserObjectまたはUserFunctionを実行中の場合、そのUserObjectまたはUserFunctionのすべてのオブジェクトが最後まで実行されます。


HC_IconStepOver

Step Overボタンは、デバッグのために、プリミティブ・オブジェクトを1つずつ実行します。UserObjectまたはUserFunctionがあると、その全体が一度に実行され、詳細ビューは開かれません。


HC_IconStop

Stopボタンは、すべてのプログラム・スレッドの実行を停止し、開いているファイルをすべて閉じます。プログラムが停止状態にある場合、StepまたはRun/Resumeを押すと、プログラムの実行が最初から開始されます。


HC_IconViewVars

View Variablesボタンは、現在定義されているすべての変数のリストを表示します。変数名をダブルクリックすると、型、種類、データ値などの詳細が表示されます。


HC_InstrMgrDlgAdd

Addボタンをクリックすると、I/O設定に計測器を追加できます。手動によるAdd操作が必要なのは、Find Instrumentsボタンで検出されなかった計測器に対してです。例えば、RS-232計測器や、LANゲートウェイ経由で接続された計測器などです（計測器を追加すると、その計測器に対応するインタフェースのエントリが自動的に追加されます）。


HC_InstrMgrDlgComponent

Component Driverボタンをクリックすると、現在選択されている計測器に対するコンポーネント・ドライバ・オブジェクトを作成できます（コンポーネント・ドライバは、計測器のパネル・ドライバのコンポーネントに対する効率的なリンクです）。


HC_InstrMgrDlgConfigDrivers

Configure Driversボタンは、選択されている計測器を識別し、その計測器に対して使用可能なVXI plug&playおよびパネル・ドライバを設定します（識別可能なのは、IEEE 488.2計測器と、ほとんどのVXI計測器です）。


HC_InstrMgrDlgDirectIO

Direct I/Oボタンをクリックすると、現在選択されている計測器に対するDirect I/Oオブジェクトを作成できます（Direct I/Oオブジェクトは、計測器との間の低レベル・トランザクションに使用します）。


HC_InstrMgrDlgFindInstr

ルート・ノードが選択されている場合、Find Instrumentsボタンをクリックすると、使用可能なインタフェースと計測器を検索できます。特定のインタフェースが選択されている場合、このボタンをクリックすると、選択されたインタフェースに接続されているすべての計測器を検索できます。Find Instrumentsボタンで実行される実際の操作は、Settingsダイアログの設定によって変わります。


HC_InstrMgrDlgIVICOM

IVI-COMボタンをクリックすると、現在選択されている計測器に対するIVI-COMオブジェクトを作成できます（計測器に対するIVI-COMドライバが存在しない場合、このボタンは淡色表示になります）。


HC_InstrMgrDlgLoadSampls

新しくVEEを起動し、サンプル・ファイルをロードします。選択した計測器に対する正しい計測器アドレスがすでに設定されているので、後はRunを押すだけです。


HC_InstrMgrDlgNidaq

NIボタンをクリックすると、現在選択されている計測器に対するNIオブジェクトを作成できますこれは、NI-DMM、NI-SWITCH、NI-FGEN、NI-DAQ、NI-SCOPE、NI-DAQmxのいずれかです。


HC_InstrMgrDlgOK

OKボタンをクリックすると、計測器構成が内部キャッシュに保存され、Instrument Managerが閉じられます。現在の構成はプログラムによって用いられますが、ディスクには保存されていません。


HC_InstrMgrDlgPanel

Panel Driverボタンをクリックすると、現在選択されている計測器に対するVEEパネル・ドライバ・オブジェクトを作成できます（パネル・ドライバは、計測器のフロント・パネルのすべての機能をグラフィカルに再現したものです）。


HC_InstrMgrDlgPnP

Plug&play Driverボタンをクリックすると、現在選択されている計測器に対するVXIplug&playドライバ・オブジェクトを作成できます（VXIplug&playドライバは、VISAに基づく業界標準のAPIです）。


HC_InstrMgrDlgPrint

Printボタンは、Windows標準の印刷ダイアログを表示します。Instrument Managerのプリントアウトは、Instrument Listツリー・ビュー全体のビットマップ・ダンプです。


HC_InstrMgrDlgPropertiesInstr

（計測器の）Propertiesボタンをクリックすると、現在選択されている計測器のI/O関連のプロパティを表示または変更できます。使用可能なプロパティのセットは、インタフェースの種類によって異なります。例えば、RS-232計測器のPropertiesフィールドではボー・レートを設定でき、GPIB計測器のPropertiesフィールドではバス・アドレスを設定できます。


HC_InstrMgrDlgPropertiesIntf

（インタフェースの）Propertiesボタンをクリックすると、現在選択されているインタフェースに関する詳細を表示できます。

VEEでは、インタフェースのハードウェア特性を変更したり、オペレーティング・システムやI/O Configユーティリティで実行された設定を変更したりすることはできません。Interface Propertiesフィールドに別の値を入力する場合、既存の設定済みのインタフェースに一致する値を使用する必要があります。


HC_InstrMgrDlgRemoveInstr

Removeボタンをクリックすると、I/O設定から計測器エントリを削除できます（あるインタフェースに対応するすべての計測器を削除すると、そのインタフェースのエントリは自動的に削除されます）。


HC_InstrMgrDlgRemoveIntf

Removeボタンをクリックすると、I/O設定から計測器エントリを削除できます（あるインタフェースに対応するすべての計測器を削除すると、そのインタフェースのエントリは自動的に削除されます）。


HC_InstrMgrDlgSave

Saveボタンをクリックすると、計測器構成がディスクに保存され、Instrument Managerが閉じられます。これにより、vee.ioファイルが現在の構成で上書きされます。

計測器構成がプログラムに埋め込まれている場合、Instrument ManagerからSaveを実行する必要はありません。埋め込まれた構成はプログラムが保存されるときに保存されるからです。


HC_InstrMgrDlgSettings

Settingsダイアログは、計測器の検出中に実行される操作を制御します。

Detect onlyが選択されている場合、Find Instrumentsボタンは単にデバイスが各バス・アドレスに存在するかどうかだけを検出します。Detect, identify, and configure...が選択されている場合、Find Instrumentsは、検出された各計測器に対して識別とドライバ設定も実行します。

Ask before sending...がチェックされている場合、*IDN?を送信して各計測器を識別する前に確認ダイアログが表示されます。チェックされていない場合、オペレータの確認を取らずにすべての計測器に対して*IDN?が送信されます。システムにIEEE-488.2非対応の古い計測器が含まれる場合は、確認ダイアログをオンにしておくとよいでしょう。


HC_InstrMgrDlgSettingsId

Ask before sending...がチェックされている場合、*IDN?を送信して各計測器を識別する前に確認ダイアログが表示されます。チェックされていない場合、オペレータの確認を取らずにすべての計測器に対して*IDN?が送信されます。システムにIEEE-488.2非対応の古い計測器が含まれる場合は、確認ダイアログをオンにしておくとよいでしょう。


HC_PrefsAutoLineRoute

Auto Line Routingがチェックされている場合、オブジェクトの接続、移動、サイズ変更を行ったときに、オブジェクト間のラインが自動的に再ルーティングされます。自動ルーティングでは水平と垂直のラインだけが使用され、Edit [image] Clean Up Linesと同じ結果が得られます。自動ルーティングがオフの場合、ラインはピンとピンの間に直接引かれるので、斜めになることがあります。


HC_PrefsBinaryRunTime

Binary RunTime File Formatがチェックされている場合、.vxeファイルはバイナリ・フォーマットで保存されます。このフォーマットには、セキュリティが高く、ファイル・サイズが小さいという利点があります。このボックスがチェックされていない場合、.vxeファイルはASCIIフォーマット（.veeファイルと同様）で保存されます。


HC_PrefsCheckAddrs

計測器チェックをオンにすると、VEEはPreRun時に構成済みの計測器をチェックし、アクセス可能であることを確認します。応答しないアドレスがある場合、計測器の電源をオンにしたり、別のバス・アドレスを選択したりする機会があります。このボックスがチェックされていない場合、構成済みの計測器が接続されていいなかったり正しく構成されていなかったりすると、プログラムの実行中にタイムアウト・エラーが発生する可能性があります。


HC_PrefsColors

Appearance Property Groupでは、VEEプログラムの画面要素のデフォルトの色を選択できます。


HC_PrefsDelVars

Delete Variables at PreRunがチェックされている場合、各プログラムの実行前に、すべての変数に格納されている値が削除されます。したがって、変数の値が正しく設定されていないと、Get Variableオブジェクトはエラーを発生します。このボックスがチェックされていない場合、Get Variableオブジェクトは前回のプログラム実行で残された古いデータにアクセスする可能性があります。このような古いデータは、今回のプログラム実行で有効であるとは限りません。


HC_PrefsDisableDebug

Disable Debugがチェックされていると、すべてのデバッグ機能がオフになり、プログラムの実行速度が最高になります。


HC_PrefsExecMode

Execution Modeは、VEEの古いバージョンで作成されたプログラムとの互換性を確保するために使用します。Execution ModeはVEEプログラムとともに保存されており、Default Preferencesダイアログで変更できます。

Execution Modeが現在のバージョンよりも小さく設定されている場合、プログラムは新しいVEEの機能を使用できません。Execution Modeを大きく設定するとプログラムの動作に望ましくない変化が発生するまれな場合を除いて、可能な最大のモードを設定することをお勧めします。


HC_PrefsFlowRate

データ・フロー・マーカの移動速度を設定します。1～10の速度を選択します。デフォルトは6、最高速は10です。


HC_PrefsFonts

Fontsタブでは、VEEプログラムの画面要素のデフォルトのフォントを選択できます。


HC_PrefsNumberFormat

Numberタブでは、VEEプログラムで数値を表示するデフォルトのフォーマットを選択できます。


HC_PrefsOKButton

OKを押すと、Default Preferencesへの変更が現在の作業セッションだけに対して有効になります。VEEを終了してから再開した場合、以前のDefault Preferences（"veerc"ファイルに保存されているもの）が復元されます。


HC_PrefsPrintCover

Print Cover Pageをチェックした場合、プリントアウトの先頭にカバー・セクションが付けられます。このデフォルトのフォーマット選択は、Print Programダイアログでオーバライドできます。


HC_PrefsPrintDarkness

B&W Printer Darkness設定では、VEEプログラムの各画面要素のグレーの陰影を選択できます。このグレーの陰影は、プログラムをカラーでないプリンタで印刷する場合に用いられます（カラー・プリンタに対してはAppearance Property Groupの設定が用いられます）。


HC_PrefsPrintExplorer

Print Program Explorerがチェックされている場合、プリントアウトにはProgram Explorerウィンドウに表示された概要情報が含まれます。このデフォルトのフォーマット選択は、Print Programダイアログでオーバライドできます。


HC_PrefsPrintHeaderIdx

Print Header and Index Pageがチェックされている場合、プリントアウトの各ページにページ番号とその他のヘッダ情報が付けられ、プリントアウトの末尾に索引が作成されます。このデフォルトのフォーマット選択は、Print Programダイアログでオーバライドできます。


HC_PrefsPrintIOConfig

Print I/O Configurationがチェックされている場合、プリントアウトにはI/O設定の展開されたツリー・ビュー（Instrument Managerから）が含まれます。このデフォルトのフォーマット選択は、Print Programダイアログでオーバライドできます。


HC_PrefsPrintMag

VEEプログラムの印刷の拡大率を指定します。値が小さいほど、小さいイメージが作成されます。指定した値は、プリンタ・ドライバによって丸められる場合があります。


HC_PrefsResetButton

Resetを押すと、Default Preferencesに対する保存されていない変更は破棄され、以前のDefault Preferences（"veerc"ファイルに保存されているもの）が復元されます。


HC_PrefsSaveButton

Saveを押すと、Default Preferencesへの変更が現在の作業セッションに対して有効になり、"veerc"ファイルに保存されます。VEEを終了してから再開した場合、新しく保存したDefault Preferencesが用いられます（"veerc"ファイルの実際のパスはシステムによって異なります）。


HC_PrefsSpacing

Edit [image] Align...操作を実行したときにオブジェクト間に入れられるピクセル数を指定します。このAlignment Spacingの値は、Space Equallyがオンになっている場合のみ使用されます。


HC_PrefsTrigMode

Trig Modeは、プログラムで使用するデフォルトの三角関数単位を選択します。VEEの本来の（最高速の）単位はラジアンです。


HC_PrefsWebEnable

Enable Serverがチェックされている場合、VEEの内蔵Webサーバがアクティブになります。Webサーバを使うと、リモートのWebブラウザからVEEプログラムをモニタできます。


HC_PrefsWebLogFile

http.logファイルへのファイル・パスを指定します。このファイルは、Webサーバが処理するすべての入力リクエストを記録するもので、制限なしに大きくなります。


HC_PrefsWebPortNum

VEEのWebサーバが使用するポート番号を指定します。このポート番号は、システムのservicesファイルで割り当てられており、他のWebサーバで使用されていないものでなければなりません。


HC_PrefsWebRootDir

リモートWebブラウザからアクセス可能なローカル・ディレクトリを指定します。VEEは、Root Directoryにあるindex.htmlをホーム・ページとして使用します。デフォルトのホーム・ページは~installDir/www/index.htmlとしてインストールされています。このファイルを変更したり、別のRoot Directoryにコピーしたりすることができます。


HC_PrintPrgCover

このボックスがチェックされている場合、プリントアウトの先頭にカバー・セクションが付けられます。


HC_PrintPrgExplorer

このボックスがチェックされている場合、プリントアウトにはProgram Explorerウィンドウに表示された概要情報が含まれます。


HC_PrintPrgHeaderIdx

このボックスがチェックされている場合、プリントアウトの各ページにページ番号とその他のヘッダ情報が付けられ、プリントアウトの末尾に索引が作成されます。


HC_PrintPrgIOConfig

このボックスがチェックされている場合、プリントアウトにはI/O設定の展開されたツリー・ビュー（Instrument Managerから）が含まれます。


HC_PrintPrgNested

このボックスがチェックされている場合、プリントアウトにはネストされたすべてのUserObjectのオープン・ビューが含まれます。


HC_PrintPrgObjects

このボックスがチェックされている場合、プリントアウトにはプログラム中の各オブジェクトの詳細ビューが含まれます。最も単純なオブジェクト以外のすべてのオブジェクトがオープン・ビュー形式で出力されます。


HC_ProfilerClear

Clearボタンは、すべてのProfilerデータ値を0（ゼロ）にリセットします。


HC_ProfilerCommas

このボックスがチェックされている場合、データがデータ・ファイルに書き込まれる際に、Profilerの各データ・フィールドの間の区切り文字としてカンマが用いられます。カンマを区切り文字として使用すると、スプレッドシートなどのアプリケーションにデータをインポートするのが容易になります。このボックスがチェックされていない場合、データ・フィールドは複数のスペースによって位置揃えされます。


HC_ProfilerFileName

このフィールドは、Profilerデータが保存されているファイル名を指定します。このフィールドをクリックすると、Save data filenameダイアログ・ボックスが表示されます。


HC_ProfilerOnlyExecuted

このボックスがチェックされている場合、実行されたUserObjectおよびUserFunctionに関してだけProfilerデータが表示されます。


HC_ProfilerOptions

Optionsボタンは、Profiler Optionsダイアログ・ボックスを表示します。これらのオプションは、表示／保存データのフォーマットをカスタマイズします。


HC_ProfilerOverwrite

このボックスがチェックされている場合、Saveボタンをクリックすると、Profilerデータ・ファイルに以前に保存されたデータが上書きされます。このボックスがチェックされていない場合、Saveボタンをクリックするたびに、既存のデータに新しいデータが追加されます。


HC_ProfilerRefresh

プロファイル・データはProfilerの実行中は常に収集されていますが、ダイアログ・ボックスに表示されるデータは自動的には更新されません。Profilerに最新のプロファイル・データを表示させるには、Refreshボタンをクリックする必要があります。


HC_ProfilerResults

Profilerを起動すると、各UserObjectおよびUserFunctionの実行時間に関する比較情報が表示されます。列ラベル（Name、Timeなど）をクリックすると、Profilerデータがそのフィールドの順に並べ替えられます。もう一度クリックすると、並び順が逆になります。NameフィールドのUserObjectまたはUserFunctionをダブルクリックすると、そのビューがVEEワークスペースで開きます。


HC_ProfilerSave

Saveボタンは、Optionsボタンを使って指定されたファイル名にProfilerデータを書き込みます。


HC_ProfilerStart

Start Profilingボタンは、プロファイリングを開始または停止するトグル機能です。


HC_SaveAsDlgColorsFonts

Save colors and fonts with programは、Default Preferencesダイアログ・ボックスで選択されたデフォルトの色とフォントをすべてプログラム・ファイルに保存します。これにより、このプログラムを開いた場合は常に、保存した時点でのデフォルトの色とフォントが用いられます。このオプションが選択されていない場合、プログラムで明示的に設定した色とフォントだけがプログラム・ファイルに保存されます。この場合、プログラムをロードした環境で設定されているデフォルトの色とフォントが用いられます。既存のプログラムをロードした場合、このオプションはプログラムが前に保存されたときの設定に従います。


HC_SaveAsDlgDeviceConfig

Save I/O configuration with programは、veeio I/O設定情報を、veeioリソース・ファイルでなくプログラム・ファイルに保存します。設定情報はInstrument Managerで指定されます。このオプションが選択されていない場合、現在のプログラムの設定情報はveeioファイルに保存されます。既存のプログラムをロードした場合、このオプションはプログラムが前に保存されたときの設定に従います。


HC_StatusExecMode

このフィールドは、現在ロードされているVEEプログラムの実行モードを示します。実行モードは、VEEの新しいバージョンで、古いVEEプログラムとの完全な互換性を実現するために使用します。使用可能なモードは、VEE 3、VEE 4等で、最新のVEEバージョンまでです。実行モードはVEEプログラムとともに保存されており、Default Preferencesダイアログで変更できます。


HC_StatusModified

このフィールドは、現在ロードされているプログラムに保存されていない変更があるかどうかを示します。このボックスが淡色表示の場合、保存されていない変更はありません。


HC_StatusMsg

VEEウィンドウの最下行はステータス・メッセージ領域です。このステータス表示行には、現在の操作に応じて、さまざまな種類の情報が表示されます。例えば、プログラムの実行状態、エラー・メッセージ、移動されたオブジェクトのピクセル位置、役に立つヒントなどです。


HC_StatusProfiler

このフィールドは、プロファイリングが現在オンになっているかどうかを示します。このボックスが淡色表示の場合、プロファイリングは停止しています。


HC_StatusWebServer

このフィールドは、VEE Webサーバが現在オンになっているかどうかを示します。このボックスが淡色表示の場合、Webサーバは動作していません。VEE WebサーバはDefault Preferencesダイアログで制御されます。


GPIB計測器のプロパティ

GPIBインタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

address | Int16 | この計測器のVEE形式のI/Oアドレス。例: 723
enableEOI | Text | 書き込みトランザクションの最終バイトでEOIを有効にします。0=有効、0以外=無効。デフォルトは無効です。
eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | GPIB計測器に対しては"GPIB"を返します。
pnpResource | Text | この計測器のVISA形式のI/Oアドレス。例:GPIB0::23::INSTR
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIO計測器のプロパティ、シリアル計測器のプロパティ、VXI計測器のプロパティ


GPIO計測器のプロパティ

GPIOインタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

address | Int32 | この計測器のVEE形式のI/Oアドレス。例: 12
eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | GPIO計測器に対しては"GPIO"を返します。
pnpResource | Text | GPIOには該当しません。
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIB計測器のプロパティ、シリアル計測器のプロパティ、VXI計測器のプロパティ


シリアル計測器のプロパティ

シリアル（RS-232）インタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

address | Int32 | この計測器のVEE形式のI/Oアドレス。例: 9
baudRate | Int32 | RS-232インタフェースの現在のボーレート。デフォルトは9600です。
charSize | Int32 | 文字フレームごとのデータ・ビット数。値は5～8です。デフォルトは8です。
eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
handshake | Text | 現在の接続のフロー制御方式。None、XonXoff、RtsCts、DtrDsrのいずれかです。デフォルトはNoneです。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | RS-232計測器に対しては"Serial"を返します。
parity | Text | パリティ・ビット生成／チェック。None、Even、Odd、Mark、Spaceのいずれかです。デフォルトはNoneです。
pnpResource | Text | この計測器のVISA形式のI/Oアドレス。例:ASRL0::INSTR
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIO計測器のプロパティ、GPIB計測器のプロパティ、VXI計測器のプロパティ


TCPIP計測器のプロパティ

TCPIPインタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | TCPIP計測器に対しては"TCPIP"を返します。
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。
visaAddress | Text | デバイスのVISAアドレス。例: TCPIP::[Instrument IP Address]::inst0::INSTR

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIO計測器のプロパティ、シリアル計測器のプロパティ、VXI計測器のプロパティ


USB計測器のプロパティ

USBインタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | USB計測器に対しては"US B"を返します。
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。
visaAddress | Text | 計測器のVISAアドレス。例: USB0::2391::1031::123456789::0::INSTR
visaAlias | Text | 計測器のVISAエイリアス。visaAddressは長くて使いにくいので、計測器の制御を簡単にするためにエイリアスが使用できます。

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIO計測器のプロパティ、シリアル計測器のプロパティ、VXI計測器のプロパティ


VXI計測器のプロパティ

VXIインタフェース経由で接続された計測器に対しては、以下のプロパティがプログラムからアクセスできます。

プロパティ データ型 説明

address | Int32 | この計測器のVEE形式のI/Oアドレス。例: 16
enableEOI | Int16 | 書き込みトランザクションの最終バイトでEOIを有効にします。0=有効、0以外=無効。デフォルトは無効です。
eolSequence | Text | 書き込みトランザクションの最後に送信される文字シーケンス。デフォルトは改行文字です。
hostname | Text | リモート・サーバのホスト名またはIPアドレス（該当する場合）。
interfaceType | Text | VXI計測器に対しては"VXI"を返します。
pnpResource | Text | この計測器のVISA形式のI/Oアドレス。例:VXI0::24::INSTR
readTerm | Int32 | 読み取りトランザクションを終了する文字。デフォルトは改行文字です。
timeout | Real64 | トランザクションの秒単位のタイムアウト値。デフォルトは5秒です。

場所

Device [image] Function & Object Browser [image] Instruments

関連項目

Instrument Manager、GPIO計測器のプロパティ、シリアル計測器のプロパティ、GPIB計測器のプロパティ


ヘルプ項目なし

このオブジェクトまたはダイアログ・ボックスに関するヘルプ項目は、現時点では提供されていません。


NotOnNet

エラー

このコンピュータはネットワークに接続されていません。

ご迷惑をおかけして申しわけありません。


Polynomial

メニュー項目。

使用法

Polynomialは、データと係数の値からReal64の多項式結果を計算する次のオブジェクトにアクセスするために使用します。これらのオブジェクトは、一括してpoly(x,vec)と表記されます。

poly(x,[a0, a1])

poly(x,[a0, a1, a2])

poly(x,[a0, a1, a2, a3])

poly(x,[a0, a1, ... aN])

場所

Math [image] Polynomial

関連項目

Generate、poly(x,vec)


プログラムによるI/O設定

計測器の設定はプログラムで変更できます。I/O設定のプログラミング方法として最適なのは、Function and Object Browserのプログラムによる計測器設定を使用することです。Instrumentsが選択されたブラウザ・ウィンドウで、計測器を選択すると、ツールバーの[Create Set Formula]ボタンがアクティブになります。

[Create Set Formula] をクリックすると、[Formula Object]ダイアログ・ボックスが表示されます。

以前のバージョンのVEEでは、制御ピンによるプログラム設定が可能でした。制御ピンは現在では使用されませんが、GPIBおよびシリアルに対する古いSICLスタイルのインタフェース用に引き続きサポートされています。Panel Driver、Component Driver、Direct I/Oの各計測器制御オブジェクトでは、制御ピンを使ってデバイス・アドレスやタイムアウトの値を変更できます。タイムアウト値を設定するための制御ピンは、Interface Operations、Instrument Event、Interface Eventの各オブジェクトにもあります。

制御ピンの1つに新しいタイムアウト／アドレスが送られると、そのデバイスに対して値がグローバルに変更されます。つまり、特定のデバイスと通信するすべての計測器制御オブジェクトが、新しいタイムアウト／アドレス値を使用し始めます。新しい値は、[Instrument Properties]ダイアログ・ボックスに入力され、VEE設定ファイルに保存された値と異なっていても問題はありません。たたし、この新しい値がVEE設定ファイルに書き込まれることはありません。

次の例は、Address制御ピンを持つDirect I/Oオブジェクトを示します。HP E1413Bは、タイトル・バーに示されているように、当初はアドレス16032に設定されています。制御ピンへの入力は16040（新しいアドレス）です。制御ピンに新しいアドレスが送られると、HP E1413Bと通信している他のすべてのオブジェクトに16040が用いられます。

関連項目

インタフェースを動的に変更するには


クリティカル・セクションの保護

対応プラットフォーム

プラットフォーム | サポートI/Oインタフェース
Windows 2000、Windows XP、Windows Vista | GPIBa、シリアル、GPIO、USB、TCP/IP、NIDAQ VX（VXLink付きPCまたは組込み）b

a.　National Instruments社製GPIBインタフェースではLOCKは使用できません。

b.　VXIデバイスのレジスタ／メモリ・アクセス（READ/WRITE REGISTER/MEMORYトランザクション）はロックできません。他のプロセスで以前のロックによってVEEプロセス空間にメモリがマッピングされている場合、直接メモリ・アクセスを試みるトランザクションの最初の実行だけがロックされます。これは共有メモリなので、それ以降複数のプロセスが1つのメモリ位置に同時にアクセスするのを防ぐ方法はありません。

実行動作

何らかのEXECUTE LOCKトランザクションが実行されると、トランザクションはデバイス／インタフェースに対するロックを取得しようとします。他のプロセスによってかけられているロックがなければ、トランザクションは完了し、ロックの取得に成功します。すでにロックが存在する場合、そのデバイス／インタフェースに対して設定されているタイムアウト期間は、トランザクションはブロックされます。

タイムアウト期間内に他のプロセスがロックを解放した場合、トランザクションは完了し、ロックを取得します。タイムアウト期間が経過した場合、エラーが発生し、エラー・メッセージ・ボックスが表示されます。このエラーは、トランザクション・オブジェクトのエラー・ピンを使って捕捉できます。

ロックが取得されると、Direct I/O、MultiInstrument Direct I/O、Panel Driver、Component Driver、Interface Operationsの各オブジェクトによるそれ以降のI/Oはすべて、他のプロセスがそのデバイス／インタフェースと通信しようとしても保護されます。

クリティカル・セッションが終了すると、対応するEXECUTE UNLOCKトランザクションが実行されます。

ロックはプロセス境界を越えるクリティカル・セクションだけを保護します。1つのプロセスでは、2つのEXECUTE LOCKトランザクションを順次実行することによって、ネストされたロックを作成できます。他のプロセスによってかけられているロックがなければ、どちらのトランザクションも成功します。

プロセスは次に、2つのEXECUTE UNLOCKトランザクションを実行する必要があります。1つのEXECUTE UNLOCKトランザクションしか実行されないと、デバイス／インタフェースはロックされたままになります。ロックがない状態でトランザクションがアンロックを実行しようとすると、ランタイム・エラーが発生します。

ロックが存在するのは、VEEプログラムの実行中だけです。VEEプログラムの実行が終了すると、デバイス／インタフェースのロックはすべて解除されます。これにより、正常終了、ランタイム・エラー、Stopボタンを押したことによってプログラムが実行を終了し、EXECUTE UNLOCKトランザクションが実行された場合に、デバイス／インタフェースがロックされたままになるのを防ぐことができます。

例：EXECUTE LOCK/UNLOCKトランザクション (GPIB)

サンプル・プログラムは、GPIB用に設定されたInterface OperationsオブジェクトのEXECUTE LOCK/UNLOCK INTERFACEトランザクションを示しています。（この例はシリアル・インタフェースの場合も同じです）。ロック・トランザクションとアンロック・トランザクションの間に、論理ユニット7のGPIBインタフェース上のデバイスに対するI/Oを実行するUserObjectがあります。このプログラムは、ロックの取得を3回試みます。3回実行してもロックを取得できない場合は、ユーザ定義のエラーが発生します。

ロックの取得を試みるたびに、EXECUTE LOCK INTERFACEトランザクションは、設定されたタイムアウト期間内にロックを取得しようとします。タイムアウト期間は、Interface Operationオブジェクトの[Properties]ダイアログ・ボックスで設定できます。最初のトランザクション・オブジェクトのNextオブジェクトにエラー・ピンが接続されているために、スレッドが次の試行で再実行されます。最後のトランザクション・オブジェクトの後のブレーク・オブジェクトによって、スレッドの2度目の不必要な実行が防がれます。

例：EXECUTE LOCK/UNLOCKトランザクション (VXI)

次のサンプル・プログラムは、MultiInstrument Direct I/OオブジェクトのEXECUTE LOCK/UNLOCK DEVICEトランザクションを示しています。MultiInstrument Direct I/Oの代わりにDirect I/Oオブジェクトを使用することもできますが、この場合は、デバイス・グループに1つのオブジェクトではなく、各デバイスに1つのオブジェクトを使用します。これは上のプログラムとよく似ています。For Count オブジェクトは、3種類のデバイスに対するロックを取得しようとするスレッドを動作させます。ユーザ・オブジェクトでのI/O動作が終了すると、一連のアンロックが実行されます。

各トランザクションは、各デバイスに対して設定されているタイムアウト期間に、それぞれのロックを取得しようとします。3つのトランザクションのいずれかがタイムアウトになると、エラーが発生し、エラー・ピンによってトラップされます。ロックが成功した後の試行がタイムアウト・エラーになると、エラー・ピンがエラーをトラップします。

プログラムがロック・トランザクションを再実行する前に、取得済みのロックをすべてアンロックする必要があります。このために、MultiInstrument Direct I/O オブジェクトがエラー・ピンに接続されています。重要なのは、最初のオブジェクトがロックを取得したのと同じ順序で、このオブジェクトが各デバイスをアンロックしようとすることです。

ロック・トランザクションより前にアンロック・トランザクションが実行されるとエラーが発生するため、アンロック・トランザクションを持つオブジェクトにもエラー・ピンが追加されています。トランザクションが最初のオブジェクトでロックの取得に失敗した場合は、次のオブジェクトの対応するアンロック・トランザクションも失敗します。


Agilent VEEカラーのRGB値

以下のRGB値は、カスタム・ビットマップをVEEのカラーに合わせたい場合、例えばパネルの背景色と一致させたい場合などに使用できます。

このカラーとRGB値のリストは、VEEの将来のバージョンでは変更される可能性があります。

Black（黒） | r:0 | g:0 | b:0
Dark Beige（濃いベージュ） | r:105 | g:95 | b:80
Darkest Gray（最も濃いグレー） | r:96 | g:96 | b:96
Dark Gray（濃いグレー） | r:128 | g:128 | b:128
Med Dark Gray（中程度に濃いグレー） | r:160 | g:160 | b:164
Gray（グレー） | r:192 | g:192 | b:192
Med Light Gray（中程度に薄いグレー） | r:208 | g:208 | b:208
Light Gray（薄いグレー） | r:224 | g:224 | b:224
Lightest Gray（最も薄いグレー） | r:240 | g:240 | b:240
White（白） | r:255 | g:255 | b:255
Darkest Red（最も濃い赤） | r:121 | g:0 | b:21
Dark Red（濃い赤） | r:128 | g:0 | b:0
Med Red（中程度の赤） | r:207 | g:14 | b:48
Warning Red（警告の赤） | r:230 | g:30 | b:30
Red（赤） | r:255 | g:0 | b:0
Light Warning Red（薄い警告の赤） | r:229 | g:64 | b:93
Med Light Red（中程度に薄い赤） | r:247 | g:102 | b:129
Light Red（薄い赤） | r:255 | g:128 | b:128
Med Pale Red（中程度に淡い赤） | r:253 | g:164 | b:181
Pale Red（淡い赤） | r:255 | g:197 | b:207
Darkest Orange（最も濃いオレンジ） | r:113 | g:32 | b:0
Dark Orange（濃いオレンジ） | r:188 | g:55 | b:0
Med Dark Orange（中程度に濃いオレンジ） | r:243 | g:91 | b:27
Med Orange（中程度のオレンジ） | r:245 | g:123 | b:73
Orange（オレンジ） | r:255 | g:128 | b:0
Golden Orange（金色がかったオレンジ） | r:239 | g:145 | b:0
Light Orange（薄いオレンジ） | r:255 | g:162 | b:124
Light Golden Orange（薄い金色がかったオレンジ） | r:246 | g:191 | b:105
Pale Orange（淡いオレンジ） | r:252 | g:209 | b:193
Pale Golden Orange（淡い金色がかったオレンジ） | r:253 | g:227 | b:186
Dark Brown（濃い茶色） | r:96 | g:64 | b:64
Med Brown（中程度の茶色） | r:113 | g:68 | b:0
Golden Brown（金色がかった茶色） | r:163 | g:105 | b:0
Dark Gold（濃い金色） | r:149 | g:108 | b:54
Brown（茶色） | r:150 | g:110 | b:75
Gold（金色） | r:176 | g:145 | b:91
Beige（ベージュ） | r:148 | g:139 | b:123
Golden Beige（金色がかったベージュ） | r:175 | g:160 | b:126
Light Gold（薄い金色） | r:203 | g:182 | b:128
Light Beige（薄いベージュ） | r:220 | g:211 | b:184
Darkest Yellow（最も濃い黄色） | r:78 | g:79 | b:0
Darkest Green Yellow（最も濃い緑黄色） | r:118 | g:121 | b:0
Dark Green Yellow（濃い緑黄色） | r:150 | g:150 | b:0
Med Green Yellow（中程度の緑黄色） | r:179 | g:185 | b:0
Dark Yellow（濃い黄色） | r:192 | g:192 | b:0
Med Dark Yellow（中程度に濃い黄色） | r:213 | g:213 | b:45
Med Yellow（中程度の黄色） | r:234 | g:236 | b:94
Yellow（黄色） | r:255 | g:255 | b:0
Light Yellow（薄い黄色） | r:255 | g:255 | b:128
Pale Yellow（淡い黄色） | r:252 | g:254 | b:185
Dark Green（濃い緑） | r:0 | g:96 | b:0
Forest Green（フォレスト・グリーン） | r:49 | g:101 | b:1
Med Dark Green（中程度に濃い緑） | r:0 | g:130 | b:70
Med Green（中程度の緑） | r:67 | g:142 | b:0
Green（緑） | r:0 | g:193 | b:19
Med Yellow Green（中程度の黄緑色） | r:64 | g:229 | b:10
Yellow Green（黄緑色） | r:128 | g:255 | b:0
Light Yellow Green（薄い黄緑色） | r:163 | g:242 | b:95
Light Green（薄い緑） | r:128 | g:255 | b:128
Pale Green（淡い緑） | r:219 | g:255 | b:184
Darkest Teal（最も濃いティール） | r:0 | g:78 | b:71
Med Dark Teal（中程度に濃いティール） | r:0 | g:107 | b:97
Dark Teal（濃いティール） | r:0 | g:128 | b:128
Med Teal（中程度のティール） | r:0 | g:150 | b:136
Teal（ティール） | r:0 | g:160 | b:160
Med Light Teal（中程度に薄いティール） | r:0 | g:183 | b:165
Light Teal（薄いティール） | r:0 | g:192 | b:192
Blue Gray（青緑） | r:120 | g:184 | b:210
シアン | r:0 | g:255 | b:255
Pale Cyan（淡いシアン） | r:140 | g:244 | b:234
Dark Blue（濃い青） | r:0 | g:0 | b:128
Med Dark Blue（中程度に濃い青） | r:70 | g:0 | b:240
Blue（青） | r:0 | g:0 | b:255
Dark Sky Blue（濃いスカイ・ブルー） | r:51 | g:101 | b:251
Med Light Blue（中程度に薄い青） | r:0 | g:128 | b:255
Lavender（ラベンダー） | r:128 | g:128 | b:255
Light Blue（薄い青） | r:96 | g:192 | b:255
Sky Blue（スカイ・ブルー） | r:162 | g:193 | b:254
Pale Blue（淡い青） | r:193 | g:206 | b:255
Light Blue Gray（薄いブルー・グレー） | r:195 | g:211 | b:219
Darkest Purple（最も濃い紫） | r:80 | g:0 | b:147
Dark Purple（濃い紫） | r:90 | g:0 | b:170
Med Purple（中程度の紫） | r:123 | g:0 | b:228
Purple（紫） | r:128 | g:0 | b:255
Violet Purple（バイオレット・パープル） | r:146 | g:52 | b:219
Light Violet Purple（薄いバイオレット・パープル） | r:183 | g:96 | b:249
Med Light Purple（中程度に薄い紫） | r:200 | g:120 | b:253
Light Purple（薄い紫） | r:212 | g:159 | b:255
Med Pale Purple（中程度に淡い紫） | r:227 | g:190 | b:255
Pale Purple（淡い紫） | r:240 | g:210 | b:255
Dark Magenta（濃いマゼンタ） | r:128 | g:0 | b:128
Dark Pink Magenta（濃いピンク・マゼンタ） | r:181 | g:0 | b:105
Hot Pink（ホット・ピンク） | r:255 | g:0 | b:128
Light Pink Magenta（薄いピンク・マゼンタ） | r:217 | g:49 | b:146
Med Magenta（中程度のマゼンタ） | r:236 | g:24 | b:200
Magenta（マゼンタ） | r:255 | g:0 | b:255
Light Magenta（薄いマゼンタ） | r:255 | g:128 | b:255
Pink（ピンク） | r:255 | g:128 | b:192
Light Pink（薄いピンク） | r:243 | g:159 | b:209
Pale Pink（淡いピンク） | r:253 | g:192 | b:229


Set Last File Write Time

指定されたファイルの最終ファイル書き込み時刻を設定します。

場所

System [image] File [image] Set Last File Write Time


Tab Index

Tab Indexは、パネル・ビューでのみ使用でき、パネル上のオブジェクトのタブ順序を設定するために使用します。

使用法

Tab Indexは、[Properties]ウィンドウからアクセスでき、パネル・ビュー上のオブジェクトのタブ順序を設定するために使用します。これは、オペレータがキーボードだけで操作を行う場合に非常に有効です。

関連項目

パネル・ビューの操作方法

プログラムでプロパティを変更するには

プログラムのプロパティ:


一般的なヒント

プログラムを開発する際には、画面の解像度を目的のシステムと同じ（またはほぼ同じ）にします。パネル・ビューはサイズが（ピクセル単位で）固定されたウィンドウであり、スクロールしません。パネル・ビューが目的のシステムの画面に収まることを確認する必要があります。

VEEウィンドウのサイズは作成前に指定できます。VEEを開始するときに、コマンド・ライン・オプション-geometryを使って、詳細ビューのサイズを指定できます。これにより、パネル・ビューを作成するときのサイズも指定できます。コマンド・ライン・オプションの使用法については、コマンド・ライン・オプション付きでAgilent VEEを起動するにはを参照してください。

目的のシステムが何種類かある場合、解像度（テキストの読みやすさ）、実行速度、使用可能色数などの最低水準がどの程度かを実際に確認するため、目的のシステムの最小共通部分を持つシステムをプログラムの開発に使用します。

プログラムを最終的に完成する前に、目的のシステムでプログラムをテストします。

ユーザへの説明を作成するにあたっては、キーボードの違いに注意する必要があります。例えば、Escキーの位置はキーボードによって異なる可能性があります。

バイナリ・データ・ファイルの使用は避けます。データ・ファイルはASCIIで保存します。


プログラムにUserFunctionを作成するには

次の例では、VEEプログラムで単純なUserFunctionを作成して接続する方法を順を追って説明します。理想的には、UserFunction内で使用されるすべてのオブジェクトは特定の1つの作業を実行すべきです。

1. UserFunctionをメイン作業領域に追加します（[Device] [UserFunction]）。UserFunction編集ウィンドウが表示されます。

2. UserFunction作業領域にオブジェクトを追加し、必要に応じてその間で端子を接続します。同じ方法を使って、「UserObject作業領域にオブジェクトを追加するには」で説明しているようにUserFunctionにオブジェクトを追加できます。

3. UserFunctionの入力／出力端子を追加して接続します。

a. UserFunctionの入力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域にデータ入力端子が表示されます。

b. 編集ウィンドウで、入力端子の内部ピンをUserFunction内部の適切なオブジェクトに接続します。

c. UserFunctionの出力端子領域にマウス・カーソルを置いてCtrl+Aを押します。編集ウィンドウの端子領域にデータ出力端子が表示されます。

d. 編集ウィンドウで、出力端子の内部ピンをUserFunction内部の適切なオブジェクトに接続します。

4. UserFunctionのタイトルを、プログラム内で識別しやすい名前に変更します。UserFunction編集ウィンドウのタイトル・バーをダブルクリックします。[Properties Window]ダイアログ・ボックスで、新しいタイトルを入力します。タイトルにスペースを入れることはできません。

5. Callオブジェクトをプログラムに追加します。UserFunction編集ウィンドウのオブジェクト・メニューで、[Generate] [Call]をクリックします。UserFunctionに追加されたものに対応するタイトルと端子を持つCallオブジェクトが表示されます。

UserFunctionの目的に応じて、[Generate]メニューの他のオブジェクトからUserFunctionへの呼び出しを作成する場合もあります。

6. Callオブジェクトの入力／出力端子にラインを接続します。

7. プログラムを実行してUserFunctionをテストします。

次の例は、UserFunction編集ウィンドウを開いたプログラムを示します。

関連項目

UserFunctionパネルを構築するには

プログラムでUserFunctionを呼び出すには

プログラム中のオブジェクトからUserFunctionを作成するには

UserFunctionを編集するには

UserFunction

式からUserFunctionを呼び出すには


レコードを反復するには


UInt16

定数の2バイト符号なし整数スカラまたは1次元配列を出力するオブジェクト。

使用法

UInt16は、整数定数を設定するか、ユーザ入力を受け取るために使用します。値を入力するには入力フィールドをクリックします。

例

UInt16をパネル・ビュー上のプロンプトとして使用するには、UInt16オブジェクトの名前をEnter the number of seconds to delay:などのプロンプトに変更します。ユーザは要求された情報を入力フィールドに入力します。

12*24のような式をUInt8に入力すると、結果が計算されます。

プロパティ

DataShape - このオブジェクトが出力する値のデータの種類の初期値を設定します。可能な値は、ScalarとArray 1Dです。

 ArraySize:- DataShape 1D Arrayを選択した場合、Sizeは配列の長さを設定します。

 ArraySizeFixed - このプロパティがTrueの場合、配列の行を追加したり削除したりすることはできません。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。

 ShowArrayIndices - このプロパティがTrueの場合、入力フィールドの各行にインデックスが付きます。この選択が可能なのは、DataShape 1D Arrayが選択された場合だけです。デフォルトはTrueです。

Wait for Input - このプロパティがTrueの場合、オブジェクトの値が変更されるまでオブジェクトは動作しません。チェック・ボックスが選択されていない場合、オブジェクトはいずれかの制約が満たされるとすぐに動作し、現在選択されている値が出力されます。デフォルトはFalseです。

 AutoExecute - このプロパティがTrueの場合、値が選択されるとオブジェクトは動作し、プログラムの残りの部分を起動します。プログラムがすでに実行されている場合、Auto Executeは無視されます。デフォルトはFalseです。

InitialValue - 設定する値を指定します。デフォルト値は0です。

 InitializeAtPreRun - このプロパティがTrueの場合、InitialValueはPreRun時に設定されます。デフォルトはFalseです。

 InitializeAtActivate - このプロパティがTrueの場合、Initial Valueはアクティブ化時に設定されます。デフォルトはFalseです。

NumberFormat:

Global Format - デフォルトのフォーマットを使用します。デフォルトはオンです。

Integer:- Global Formatがオフの場合、このオブジェクトに表示する整数の数値フォーマットを指定します。選択肢としては、Decimal（例: 42）、Octal（例: #Q52）、Hexadecimal（例: #H2a）、Binary（例: #B00101010）があります。デフォルトはDecimalです。

注記

Initializeは通常、UserObject内部の値を初期化するために用いられます。初期値を設定するには、ほとんどのデータ定数で使用可能なDefault Valueコントロール・ピンを使用する方法もあります。

コントロール入力としては、Default Value、Reset、Enable Editing、Disable Editingを追加できます。

Default Value入力を使うと、現在の値をプログラムで変更できます。この入力には、ScalarまたはArray 1Dの整数値を供給する必要があります。Constantは入力データの種類に合わせて再構成されます。

Reset入力を使うと、プログラムで値を0に設定できます。ConstantがArray 1Dとして構成されている場合、すべての値が0に設定されますReset入力の実際の値は無視されます。

Enable EditingおよびDisable Editing入力を使うと、オブジェクトのオープン・ビューで値を変更できるかどうかをプログラムで制御できます。

UInt16が配列として構成されている場合でも、Initial Valueフィールドは常にスカラです。

場所

Data [image] Constant [image] UInt16

関連項目

Alloc UInt16、Complex、Constant、Coord、Date/Time、Selection Control、Default Preferences、UInt8、Int16、Int32、Int64、PComplex、Real32、Real64、Text、Toggle Control

データ定数を使用するには


VEEレディ

VEEレディがAgilent VEE Proに関する最大の権威であることには疑いの余地がありません。少しでも疑った者は二度と疑えなくされてしまったからです（VEEアンサー・マンですら、あらゆる手段で彼女を避けようとします）。VEEレディは冷酷で乱暴で偉ぶっていると言う人もいますが、単に粗野で喧嘩好きで押しつけがましく高慢だと言う人もいます。VEEレディのVEEに関する技量は誰にも負けませんが、その外見はあまりに恐ろしくて見た人は石になってしまうと言われます。出演者とスタッフは保護眼鏡を掛け、VEEレディには特殊な遮蔽マスクを付けてもらうことで、ようやくVEEの女王の姿を皆さんにお届けできるのです。


Agilent VEE 6.0の新機能

バージョン情報

以下に示すのは、バージョン5. 、6.0、7.0、7.5、8.0の新機能と機能拡張です。特定のバージョンを参照するには、下記のリンクを選択してください。

バージョン8.0

バージョン7.5

バージョン7.0

バージョン6.0
バージョン5.0

Agilent VEE Pro 8.0の新機能

新しい実行モードと新しいデータ型-- VEE 8.0以降、VEEはInt64とBooleanの2つの新しいデータ型と、新しい実行モードVEE 8をサポートします。

Watch Window -- この強力なデバッグ機能を使うと、デバッグ時に変数やライン／端子の値を表示および編集し、実行を継続できます。

Code CompletionおよびCode Insight -- この強力な新機能は、Formulaを作成する際に、キーボードからの入力の手間を省き、記憶の負担を軽減し、外部ドキュメントの参照の必要性を減らします。組み込み関数、コンパイル済み関数、リモート関数、レコード、.NET操作がサポートされます。

プログラムのプロパティ -- この強力な新機能により、VEEオブジェクトのカラー、タイトル、サイズ、位置、その他さまざまなプロパティを、プログラムで（実行時に）変更できます。VEE GUIの作成の時間と手間を削減できます。

レコードの使いやすさの改善 -- この新機能により、レコード変数または定数の宣言、作成、解体が高速かつ容易になります。

ミニマップ -- この機能により、大きい詳細ビューの中の移動が容易になります。ワークスペース内のオブジェクトがどこに行ったかわからなくなることはありません。この機能では、大きさを変更した詳細ビューの画像をプリントすることもできます。ミニマップには強力なコンテキスト・メニューがあります。コンテキスト・メニューを使って、ミニマップのコピー、プリント、保存、メール送信を実行できます。

NIDAQサポートの更新によるNIDAQmxドライバのサポート -- VEE 8.0以降、Instruments ManagerはNIDAQmxドライバを持つ計測器を自動検出できるようになりました。

VISAスタイル・デバイスのフル・サポート-- I/Oデバイスの宣言／使用の際に、古い一貫性のないI/Oデバイス（SICLとVISAの混在）から、より一貫性のある方法（VISA）に移行します。従来の方法との互換性は保たれますが、新しいスタイルのデバイスの使用を推奨します。

グラフ・オブジェクトで1つの入力ピンにより複数のトレースを表示 -- この機能では、VEEのグラフ・オブジェクトで複数のトレース（トレースの配列）を表示でき、トレースがいくつあるかをあらかじめ知っておく必要はありません。

複数トランザクションの機能拡張 -- この機能では、既存のVEEトランザクション・ベース・オブジェクト（Direct IOなど）の多くの機能が拡張されます。多くの操作（コピー、削除、選択など）が複数のトランザクションに対して実行でき、トランザクションをリスト内で容易に上下に移動できます。

Home -- VEE 8.0には新しいツールバー・ボタン [image] Homeが追加されました。これはプログラムをコンテキスト（メイン、UserFunction、UserObject）の左上隅に移動します。

パネル・ビューでのスクロールが可能に -- パネル・ビューの大きさがすべてのオブジェクトを表示するのに十分でない場合、スクロール・バーを自動的に表示するように設定できます。この機能は、パネルの"ScrollbarsEnabled"というプロパティを変更することによってオン／オフできます。デフォルトはオフです。

16の新しい計測器サンプル -- examples\instrumentIO\InstrumentManagerIntegratedに16の新しい計測器サンプルが追加されました。多数の計測器サンプルが更新されています。

新しい実行モードとデータ型

Agilent VEE 8.0の新しいデータ型として、Int64とBooleanがあります。VEE 8.0には、互換性の理由から、新しい実行モード（ExecMode 8）も追加されています。

Boolean

VEE 5.0以降ではTRUEとFALSEを定数として使用できますが、TrueとFalseは真のBoolean定数ではありません。これらはInt32型です。VEE 8.0では、これら2つの定数は真のBoolean型です。

VEE 8.0は、Booleanデータの間の論理演算をサポートします。論理演算子とは、AND、OR、NOT、XOR、==、!=です。

次の表は、Booleanデータ型に関する実行モード8とその他の実行モードの間の違いです。

演算 | 実行モード8 | 実行モード7 | 実行モード6 | 実行モード4&5
TRUE、FALSEの型 | Boolean | Int32 | Int32 | 非サポート
.NETまたはCOMへの代入 例:TreeView.ShowLines = TRUE | サポート | 非サポート | 非サポート | 非サポート
Booleanと他のデータ型との間の論理演算:OR、NOT、XOR、AND 例:TRUE OR 0.0 | 非サポート | サポート | サポート | 非サポート
数値演算: 例:sin(true) | 非サポート | サポート | サポート | 非サポート
基本的な数値演算: +, -, *, / 例:1 + True、True + False | 非サポート | サポート | サポート | 非サポート

VEE 8.0以降、VEEはコンパイル済み関数でBooleanをサポートします。コンパイル済み関数の戻り値型とパラメータ型にVEE_BOOLを使用できます。VEEはVEE_BOOLをBooleanとして扱います。

Booleanに対して追加された新しいメニュー項目と組み込み関数:

  • Data => Constant => Boolean

  • Data => Constant => Boolean Array

  • Data => Alloc Array => Boolean

  • asBoolean(x)

Int64

Int64は、最も精度の大きい整数表現です。VEEには、Int64の最大値と最小値を表す2つの組み込み数値定数があります。MaxInt64とMinInt64です。定数は、実行モードによって異なる型に解釈されます。次の表に例を示します。

定数 | 実行モード8 | 実行モード7 | 実行モード6 | 実行モード4&5
1 | Int32 | Int32 | Int32 | Real
1G | Real64 | Real64 | Real | Real
2147483648（Int32の最大値+1） | Int64 | Real64 | Real | Real
2147483647（Int32の最大値） | Int32 | Real64 | Real | Real
9223372036854775808（Int64の最大値+1） | Real64 | Real64 | Real | Real
9223372036854775807（Int64の最大値） | Int64 | Real64 | Real | Real
-9223372036854775808 | Real64* | Real64 | Real | Real
MinInt64** | Int64 | Int64 | Int64 | Int64

* -9223372036854775808をInt64として扱わせたい場合は、組み込み定数MinInt64を使用します。

** MinInt64とMaxInt64は組み込み数値定数です。これらは常にInt64定数として振る舞います。組み込み定数MinInt64とMaxInt64は他の実行モードでも使用できます。

Int64に対して追加された新しいメニュー項目と組み込み関数:

  • Data => Constant => Int64

  • Data => Constant => Int64 Array

  • Data => Alloc Array => Int64

  • asInt64(x)

Watch Window

Watch Windowを使うと、デバッグ時に変数や端子の値を表示および編集できます。変更された値を反映してプログラムの実行を継続できます。

[Watch Window]ダイアログ・ボックスを表示するには、ツールバーの [image] ボタンをクリックするか、[View] [image] [Watch Window]を選択します。[Watch Window]ダイアログ・ボックスの例を下に示します。

[Watch Window]ダイアログ・ボックスには、[Locals]、[Globals]、[Watch Terminals]、[Watch Variables]の4つのタブがあります。[Globals]タブでは、変数が、宣言されたグローバル、宣言されないグローバル、ライブラリ・データにローカルなどのカテゴリに分類されます。[Watch Terminals]タブでは、項目が、メイン、UserFunction X、UserObject Yなどのコンテキストによってまとめられます。これらの各タブには3つのフィールドがあります。

  • Nameフィールドは、変数または端子の名前または識別情報を示します。

  • Valueフィールドは、変数または端子の値の表示または編集を可能にします。この機能は、スカラおよび多次元配列に対して動作します。

  • Typeフィールドは、変数または端子のデータ型と種類を示します。

[Locals]タブ:

[Watch Window]ダイアログ・ボックスの[Locals]タブには、アクティブなコンテキストのコンテキストにローカルな変数が自動的に表示されます。[Locals]タブの内容は、アクティブなコンテキストが変わると変化します。アクティブなコンテキストから削除された変数は、[Watch Window]ダイアログ・ボックスからも自動的に消えます。

[Globals]タブ:

[Globals]タブには、宣言されたすべてのグローバル変数と、ライブラリにローカルな宣言された変数が自動的に表示されます。

宣言されない変数（Set Variableオブジェクトで作成されたもの）や、インポートされたライブラリ中の変数は、プログラムに追加された直後はWatch Windowに表示されません。宣言されない変数が表示されるのは、プログラム実行がSet Variableオブジェクトを通過した後です。インポートされたライブラリ中のグローバル変数が表示されるのは、プログラムの実行によってライブラリがインポートされるか、Import Libraryオブジェクトのコンテキスト・メニューから手動でロードされた後です。

[Watch Terminals]タブ:

Watch Windowの[Watch Terminals]タブには、端子を手動で追加する必要があります。Watch Windowに端子を追加するには次の3つの方法があります。

1. 入力／出力端子をダブルクリックして、下図の[Input/Output Terminal Information]ダイアログ・ボックスを開きます。

[Watch]ボタンをクリックします。端子がすでにWatch Windowにある場合、再度Watch Windowに追加されることはありません。

2. 出力ラインを右クリックして、下図の[Edit Line]ダイアログ・ボックスを開きます。

[Watch Data]を選択します。出力端子がすでにWatch Windowにある場合、再度Watch Windowに追加されることはありません。

3. 出力ラインをダブルクリックして、下図の[Line Value]ダイアログ・ボックスを開きます。

[Watch]ボタンをクリックします。出力端子がすでにWatch Windowにある場合、再度Watch Windowに追加されることはありません。

[Watch Terminal]タブの下のステータス・バーには、選択された端子に関する情報、例えば端子のコンテキスト、端子名、デバイス名などが表示されます。

[Watch Window]ダイアログ・ボックスの[Watch Terminals]タブの名前のフォーマットは次のとおりです。

{ オブジェクト・タイトル - オブジェクトID }.出力端子名

例えば、下の図では、[Watch Window]ダイアログ・ボックスの1つの項目として{bigNum-M.21}.Int16があります。"bigNum"はオブジェクトのタイトル、"M.21"はオブジェクトIDで、プロパティ・ウィンドウの内容と一致しています。"Int16"は出力端子の名前です。

[Watch Variables]タブ:

Watch Windowの[Watch Variables]タブには、変数を手動で追加する必要があります。Watch Windowに変数を追加するには次の4つの方法があります。

  1. [Watch Variables]タブの下の名前フィールドをダブルクリックして名前を入力します。

  2. [Locals]タブまたは[Globals]タブで変数を右クリックし、[Add Watch]を選択します。

  3. VEEプログラム中のDeclare Variableオブジェクト、Set Variableオブジェクト、Get Variableオブジェクトを右クリックし、[Add Watch]を選択します。

  4. VEE Program Explorerで変数を右クリックし、[Add Watch]を選択します。

新しいコンテキスト・メニュー

[Locals]タブまたは[Globals]タブで右クリックすると、次のコンテキスト・メニューが開きます。

[Watch Variable]タブまたは[Watch Terminals]タブで右クリックすると、次のコンテキスト・メニューが開きます。

  • Copy -- 選択された項目（Name、Value、Typeの各フィールドを含む）を「コピー／貼り付け」バッファにコピーします。

  • Copy Nested -- 配列を「コピー／貼り付け」バッファにコピーします。Copy Nestedは、選択された配列とそのすべての項目を、配列がWatch Windowで展開されていなくてもコピーします。

  • Locate -- 対応する変数または端子をアクティブ・コンテキストですばやく見つけます。[Locate]は、特に詳細ビューが大きい場合に非常に便利です。

  • Select All -- 現在のタブのすべての項目を選択します。

  • Delete -- 選択された変数を[Watch Variables]または[Watch Terminals]タブから削除します。

  • Delete All -- [Watch Variables]タブからすべての変数を、または[Watch Terminals]タブからすべての端子を削除します。

  • Add Watch -- [Watch Variables]タブに変数を追加します。

その他の機能拡張

  • Watch Windowはすべての項目をアルファベット順に並べます。

  • [Watch Terminals]および[Watch Variables]タブのすべての項目は、Watch Windowが閉じられたとき、またはVEEプログラムが閉じられたときに保存されます。保存された項目は、Watch Windowが次に開かれたときに復元されます。ただし、VEEはこれらの項目の名前フィールドと型フィールドだけを保存します。値は保存されません。

値の更新と編集

Watch Windowの変数と端子の値は、プログラムが休止（ブレークポイントに達するなど）したときまたは停止したときにだけ更新されます。

Watch Windowの変数と端子の値を編集するには、プログラムが休止または停止しているときに、そのWatch Windowで目的の項目の値フィールドをダブルクリックします。変数と端子の名前と型は変更できません。

Watch Windowで、編集できない項目は淡色表示になります。

Watch Windowでサポートされるデータ型

Watch Windowでサポートされるデータ型を次の表に示します。

データ型 | 表示 | 編集
Boolean | 可 | 可
Uint8 | 可 | 可
Int16 | 可 | 可
Int32 | 可 | 可
Int64 | 可 | 可
Real32 | 可 | 可
Real64 | 可 | 可
PComplex | 可 | 可
Complex | 可 | 可
Waveform | 可 | 可
Spectrum | 可 | 可
Coord | 可 | 可
Text | 可 | 可
Enum | 可 | 不可
Record | 可 | 可
.NET | 可 | 可（部分的に実現）
COM | 最小 | 不可
Variant | 最小 | 不可
UInt8、Int16、Int32、Real32、Real64、PComplex、Complex、Coord、Textの配列 | 可 | 可

例

Datatype.vee, Globals.vee, Terminals.vee

Code CompletionとCode Insight

Code CompletionおよびCode Insightは、Formulaオブジェクトを作成する際に、キーボードからの入力の手間を省き、記憶の負担を軽減し、外部ドキュメントの参照の必要性を減らします。

Code Completion

Formulaボックス内でオブジェクト名（OKボタン、Toggleコントロール、.NETオブジェクトなどのVEEオブジェクト）の後ろに"."を入力すると、[Code Completion]ウィンドウ（ドロップダウン・リスト・ボックス）が自動的に表示され、そのオブジェクトのすべてのメンバを表示します。[Code Completion]ウィンドウの例を次に示します。arraylistは.NETオブジェクトです。arraylistのすべてのメンバが[Code Completion]ウィンドウに表示されます。

VEEオブジェクト（OKボタン、Labelなど）のDeclared Nameプロパティを設定する場合、そのVEEオブジェクトのプロパティも[Code Completion]ウィンドウに表示されます。Declared Nameプロパティの詳細については、プログラムのプロパティを参照してください。

[Code Completion]ウィンドウが表示された状態で、メンバをダブルクリックするか、Tabキーを押すか、メンバが選択された状態でEnterキーを押すと、そのメンバが選択されて式が完成します。メンバを手動で入力することもできます。この場合、入力中に最もよく一致するメンバが強調表示されます。次の図では、Conを入力したときに、Containsが強調表示されます。メンバが選択されたときには、そのメンバの簡単な説明が表示されます。

.

[Code Completion]ウィンドウは、Formulaボックスの任意の場所でCtrl+スペースを押すことにより手動で起動できます。使用可能なすべての選択肢が[Code Completion]ウィンドウに表示されます。現在使用可能な選択肢がない場合は、[Code Completion]ウィンドウは表示されません。次の図では、[Ctrl+スペース]を押すと[Code Completion]ウィンドウが表示されます。

変数名または名前空間名の入力の途中で[Code Completion]ウィンドウを起動すると、使用可能なすべての変数と.NET名前空間のリストが表示されます。

VEE 8.0では組み込み関数とレコードがCode Completionでサポートされます。

Formulaボックスへの入力の際に、VEEの多数の組み込み関数を容易に利用できます。[Code Completion]ウィンドウは、Formulaボックスの任意の場所でCtrl+スペースを押すことにより手動で起動できます。

レコード名の後に"."を入力すると、レコードのすべてのフィールドが[Code Completion]ウィンドウに表示されます。

組み込み関数のサポートはデフォルトで有効になっており、無効にするには[Default Preferences]ダイアログ・ボックスの[General]タブを使用します。

Code Insight

Formulaボックスで関数名（VEE UserFunction名、.NETメソッドなど）の後ろに"("を入力すると、[Code Insight]ウィンドウ（黄色のツールヒント）が表示されます。その関数の戻り値とパラメータが[Code Insight]ウィンドウに表示されます。現在のパラメータは太字で表示されます。下の図を参照してください。

"2 of 9 METHOD Int32 IndexOf (System.Char value, Int32 startIndex)"が[Code Insight]ウィンドウに表示されます。

'2 of 9'は、"IndexOf"という同じ名前を持つメソッドが9つあり、これが3番目のものであることを示します。9つのメソッドをすべて調べるには、[Code Insight]ウィンドウで上または下の矢印を押します。Int32は戻り値です。このメソッドには2つのパラメータがあり、現在のパラメータはInt32型です。

Code Insightは、組み込み関数、コンパイル済み関数、リモート関数をサポートし、ネストされた関数（関数のパラメータに関数を使用）もサポートします。次の図では、組み込み関数bit(x,y)の2番目のパラメータが組み込み関数asInt16(x)です。

[Code Insight]ウィンドウが開いているときに、ESCキーを押すか、閉じ括弧を入力すると、[Code Insight]ウィンドウは消えます。カーソルをカンマまたは左端の開き括弧を超えて動かしても、ウィンドウは消えます。

関数の入力中に[Code Insight]ウィンドウを消した後でまた見たくなった場合は、CTRL+SHIFT+スペースを押します。

Formulaオブジェクトのその他の便利な機能

1. コメントは緑、定数文字列は濃い赤、キーワードは青に色分けされます。

2. 式のエラーは赤の波線で示されます。

3. 括弧はグレーの枠で示されます。

Code CompletionおよびCode Insight機能をオン／オフするには、[File] [image] [Default Preferences] [image] [General]を使用します。Code Completionでの組み込み関数のサポートと、式での括弧の一致機能もここでオン／オフできます。

Code CompletionおよびCode Insightがサポートするオブジェクト

β2でサポートされるオブジェクト

サポート予定のオブジェクト

Code Completion

  • .NETオブジェクト

  • 名前付きのVEEオブジェクト

  • 組み込み関数

  • レコード

COMオブジェクト

Code Insight

  • .NETスタティック／インスタンス・メソッド

  • ローカルUserFunction

  • インポートされたUserFunction

  • 組み込み関数

  • インポートされたリモート関数

  • インポートされたコンパイル済み関数

COMオブジェクト

レコードの使いやすさの改善

VEE 8.0では、レコードの使いやすさが次の3つの点で改善されています。

1.Declare VariableにRecordデータ型のための[Generate]コンテキスト・メニューが追加されました。Record定数オブジェクトの作成、Recordオブジェクトの構築／解体が可能です。

2.Record ConstantオブジェクトにRecordデータ型のための[Generate]コンテキスト・メニューが追加されました。Declare Variableオブジェクトの作成、Recordオブジェクトの解体が可能です。

3.新しい組み込み関数buildRecord( fieldNameTextArray, field1, field2, fieldN)が追加されました。

buildRecord()は、フィールド名と値が実行時まで確定しないレコードを構築するために使用できます。最初のパラメータは、フィールド名を表す文字列の配列です。以降のパラメータは、各フィールドの値であり、これらのパラメータの数は最初の配列の長さに一致する必要があります。buildRecord()は、指定されたフィールド名とフィールド値を持つスカラ・レコードを返します。次に2つの例を示します。

buildRecord(fieldNameList2Long, field1, field2);

builldRecord(fieldNameList8Long, field1, field2, field3... field8);

ミニマップ

ミニマップは、詳細ビュー全体の概要を示すマップで、赤い長方形のボックスが、現在表示されている部分を表します。ミニマップを開くには、ツールバーの [image] ボタンをクリックするか、[View] [image] [Minimap]を選択します。ミニマップの例を次の図に示します。

赤い長方形は、表示されている部分が詳細ビュー全体のどこに位置するかを示します。ミニマップには、この他に以下の2つの強力な機能があります。

1. 移動

ミニマップをクリックするだけで、詳細ビューの別の場所にすばやく移動できます。

2. プリント、コピー、保存

ミニマップ・ウィンドウを右クリックすると、オブジェクト・メニューが開きます。

Print... -- 詳細ビュー全体のビットマップをプリントします。Minimapウィンドウをサイズ変更することにより、ビットマップのプリント・サイズを変更できます。

Print Auto Fit ... -- 詳細ビュー全体のビットマップを1ページに収まるように自動的にサイズ変更して、ビットマップをプリントします。

Copy To Clipboard ... -- 詳細ビュー全体のビットマップをクリップボードにコピーします。

Send By Email ... -- 詳細ビュー全体のビットマップを添付ファイルとして電子メールで送信します。

Save To File ... -- 詳細ビュー全体のビットマップをビットマップ・ファイルに保存します。

プログラムのプロパティ

プログラムのプロパティを使うと、VEEオブジェクトのプロパティを、そのプロパティのデザイン時の値に影響を与えずに、実行時にGET/SETできます。ProgrammaticPropertyDemo.vee

複数トランザクションの機能拡張

VEE 8.0では、すべてのトランザクション・ベース・オブジェクト（Direct I/Oオブジェクト、To/Fromオブジェクト）に多数の新機能が追加されています。特に、複数トランザクションをサポートする操作が強化されました。

主な機能拡張を次に示します。

* 複数のトランザクションを任意に選択、削除、コピー、ペースト

* Add/Insert/Delete/Cut/Paste/Edit/Move up/Move downの各操作のUndo/Redo

* Windows標準に基づくショートカットの追加

CTRL+X --- 選択されたトランザクションを切り取って「切り取り／貼り付け」バッファに入れる

CTRL+V --- ポインタ位置にトランザクションを貼り付ける

CTRL+C --- 選択されたトランザクションをコピーして「切り取り／貼り付け」バッファに入れる

Delete --- リスト中の選択された項目を削除

Insert --- 現在選択されている項目の前にトランザクションを挿入

CTRL+Z --- 直前の操作を元に戻す

CTRL+Y --- 直前の操作をやり直す

CTRL+Up --- 選択されたトランザクションを上に移動（1つのトランザクションのみ）

CTRL+Down --- 選択されたトランザクションを下に移動（1つのトランザクションのみ）

CTRL+左ボタン --- 複数のトランザクションを選択

グラフ・オブジェクトで1つの入力ピンにより複数のトレースを表示

この機能では、VEEのグラフ・オブジェクトで複数のトレース（トレースの配列）を表示でき、トレースがいくつあるかをあらかじめ知っておく必要はありません。

'MatrixInput'という名前の新しいGraphのBooleanプロパティが作成されています。これはパネル・ビューのプロパティには表示されません。このMatrixInputプロパティがTrueに設定されている場合、VEEのGraphオブジェクトは2D Array（最大12列）を入力データとして受け入れ、複数のトレースを同時に表示します。MatrixInputプロパティがTrueに設定されているVEEのGraphオブジェクトは、マトリクス入力グラフと呼ばれます。

Next Curveコントロール入力ピンは、マトリクス入力グラフでは使用できません。同様に、Next Curveコントロール入力を持つ古いスタイルのグラフをマトリクス入力グラフに変換することはできません。

古いスタイルのグラフは、入力ピンが1つの場合のみ、マトリクス入力グラフに変換できます。同様に、マトリクス入力グラフには、データ入力を追加することはできません。

Dataコンテナは、1つの入力ピンからグラフに入力されます。グラフは、そこにいくつのトレースが含まれているかを計算し（最大12行）、適切な数のトレース凡例を表示し、それらのポイント（列）をプロットします。

この新しいプロパティは、プログラムで実行時に切り替えることはできません。この新しいスタイルのグラフを使用するかどうかは、VEEプログラムの開発時に決定する必要があります。

詳細については、サンプル・プログラム2dXyTrace.vee、 MatrixInputStripChart.veeを参照してください。

関連項目

Agilent VEE Pro 7.5の新機能

VEE Pro 7.0または7.5で保存されたプログラムは、それより前のVEEバージョンにはロードできません。

Excelライブラリ・アドイン

Excelライブラリ・アドインを使えば、Microsoft ExcelとVEEの間の接続を簡単に実現できます。面倒なActiveXを使用する必要はありません。Excelの必要な機能をメニュー項目とオプション設定だけで選択できます。詳細については、[Help] [image] [使用法] [image] [Use the VEE Excel Library]を参照してください。

For Eachステートメント

For EachステートメントはFor CountやFor Rangeに似ていますが、配列の各要素に対してステートメント・ブロックを実行します。10次元までをサポートします。詳細については、For Eachを参照してください。

NIデータ収集のサポート（PXIおよびPCI）

NI-SWITCH、NI-DMM、NI-SCOPE、NI-DAQ、NI-FGENなどのNIのデータ収集ドライバがサポートされます。このサポートには、これらのライブラリのすべての関数と、各関数のオンライン・ヘルプへのアクセスが含まれます。To/From NIDAQを参照してください。

.NET Operation Builder

.NET Operation Builderを使うと、.NETの型を容易に選択して、その型に含まれるメソッドとプロパティを選択することにより.NET操作を構築できます。操作は既存のTo/Fromトランザクション・ボックスに似たトランザクション・ボックスに生成されます。この新しいツールの案内については、.NET Operation Builderを参照してください。

.NETコントロール

.NET Frameworkでは、System.Windows.Formsアセンブリの中に豊富な標準コントロールのセットが用意されています。これらのコントロールは、VEEの.NETコントロール機能を使って容易にアクセスできます。[Device] [image] [Windows Forms Controls]を選択すると、VEE作業領域に追加できるコントロールのリストが表示されます。以下にその一部を示します。

選択された計測器のサンプルのロード

Instrument Managerから計測器を選択し、[Load Sample]を選択します。使用可能なサンプルのリストが表示されます。サンプルを選択すると、指定された計測器を使ってVEEの新しいセッションが起動されます。計測器は自動的に設定されるので、Runを押すだけでサンプルの動作を確認できます。

説明インジケータ

従来、オブジェクトに説明があるかどうかは簡単にはわかりませんでした。[Default Preferences]でこのインジケータを有効にすると、説明を持つオブジェクトの右上隅に小さな赤い三角形が表示されます。

IVI-COMとInstrument Manager

IVI-COMがInstrument Managerでのドライバの選択肢に加わりました。これにより、計測器に対するIVI-COMドライバの設定と使用がきわめて容易になりました。

詳細コンテキスト・メニューの[Go To Panel]

パネルのコンテキスト・メニューには、[Go to Detail]という項目がありました。この新機能は、詳細メニューにこれと対になる[Go To Panel]というコンテキスト・メニュー項目を追加するものです。

Agilent VEE Pro 7.0の新機能

Agilent VEE Pro 7.0には、プロパティ・グリッドやMicrosoft Visual Studio .NETプログラミングなどの新機能が追加されています。このため、VEE Pro 7.0は独自の保存形式を採用しています。VEE Pro 7.0で保存されたプログラムは、それより前のVEEバージョンにはロードできません。

Undo/Redo

最も要望が多かった機能の1つが、Undo（取り消し）です。VEEの一般的な操作の多くで、Undo（取り消し）とRedo（やり直し）が使用できるようになります。例としては、ラインの切り取り、端子の削除、パネルからのオブジェクトの削除、オブジェクトの貼り付け、オブジェクトの移動などがあります。

UndoとRedoを参照してください。

オブジェクトのプロパティの編集

VEEにはVisual Basicに似たプロパティ編集ボックスがあり、VEEオブジェクトのさまざまなプロパティを容易に変更できます。使い方は簡単で、ほとんどの場合、マウスを2回クリックするだけですみます。複数のオブジェクトを選択することもできます（種類の異なるオブジェクトの場合は、プロパティの共通部分が表示されます）。詳細ビューとパネル・ビューのどちらでも使用できます。

Properties（オブジェクト） を参照してください。

パネル編集機能

パネル上のオブジェクトの編集が容易になりました。追加された機能としては、可視グリッド、オブジェクトの位置揃え、「輪ゴム」によるオブジェクトの選択、パネル構築の際の一般的な操作の取り消し、前面への移動、背面への移動、タブ順序などがあります。

Notepadと説明でのRTFの使用

ノートと説明の編集が容易になりました。.NETの機能を利用して、これらの場所でRTFが使用できるようになりました。さらに、ノートと説明に自動ハイパーリンク検出機能が付加され、リンクを選択することでブラウザが起動します。どちらも、取り消し（CTRL-Z）とやり直し（CTRL-Y）をはじめ、一般的な編集ショートカット・キーをサポートします。.rtfファイルからRTFテキストを切り取ってノートまたは説明に直接貼り付けることができ、ワード・ラップも使用できます。さらに、カスタム・テンプレートが作成できます（デフォルトのテンプレートは、templates\notepad.rtfとtemplates\description.rtfです）。これらのテンプレートは、メニューから新規オブジェクトを作成したときに取り込まれます。もちろん、テンプレートが不要な場合は削除できます。

プログラムからの.NETアセンブリの使用

今日では膨大な数の.NETクラスが使用でき、その数は将来さらに増える見込みです。場合によっては、これらのクラスがVEEにない機能を提供していたり、VEEが提供する機能をよりよく実現していたりします。これらの貴重な資産を利用可能にするため、VEE 7.0ではMicrosoft .NET Framework Libraryにアクセスできます。このライブラリに含まれる豊富な機能を持つクラスは、VEE 5.x以上でのActiveXの使用に似た方法で利用できます。.NET Frameworkを使ってVEEを拡張する方法の例については、DotNetサンプル・ディレクトリにあるサンプルを参照してください。

追加された機能として、名前空間のインポートがあります。[Device] > [.NET Assembly References]メニューで、[Import namespaces after closing]チェックボックスをチェックします。1つまたは複数の.NETアセンブリを選択すると、0以上の名前空間を選択するように求められます。[Device]メニューから.[Import .NET Namespaces]を選択することもできます。この機能はなぜ重要なのでしょうか。名前空間のインポート機能がない場合、System.IO.File.Exists()と入力する必要があります。名前空間をインポートできれば、メソッド呼び出しはFile.Exists()のようになります。わずかな操作で入力を大幅に節約できるのです。

新しい型変換関数asClrTypeが追加されました。この関数は、VEEデータ型を.NET/CLRデータ型に変換します。有効な.NET/CLRデータ型は、すべてのプリミティブ・データ型（Boolean、Byte、SByte、Int16、Int32、Uint32、Int64、Uint64、Char、Double、Single）と、Decimal、DataTime、Stringです。VEEではVEEと.NETのデータ型の間の変換はほとんどの場合自動的に行われるため、asClrTypeが必要な場合はあまりありません。asClrTypeを使用したVEEプログラムの例については、examples\dotnet\datetime.veeを参照してください。

目次で[以下の項目についての説明] > [.NET Framework]を参照してください。

USBベース計測器の接続

VEEがAgilentの最新の計測器や競合ソフトウェア製品に遅れないようにすることは、Agilentが常に目標としていることです。このために、I/Oサブシステムが拡張され、USB（Universal Serial Bus）計測器に対応できるようになりました。USBサポートのもう1つの機能として、USBエイリアスの使用があります。USBエイリアスは、長くて使いにくいUSBアドレス文字列の代わりとなるものです。

LANベース計測器の接続

USB接続の項で述べたように、計測器に対するいくつかの新しい接続方法が標準となりつつあります。このような変化に対応するため、VEEが拡張され、LANベース計測器の接続が可能になりました。

IVI-COMドライバの使用

IVI-COMは、計測器の互換性を実現するための最新の標準です。この標準はIVI Foundationによって作成され、計測器メーカが他社の製品と互換性のある機器を開発するための助けとなります。この新しい標準に対応するため、VEEはAgilentのすべてのIVI-COMドライバと、一部のサード・パーティ製IVI-COMドライバを受け入れます。

VEEは、IVI-COMドライバとやりとりするために、ドライバのPIA（Primary Interop Assembly）を探します。アセンブリは.EXEまたは.DLLファイルであり、.NETアプリケーションの基本的な構成要素です。PIAは、COMベース・コンポーネント用にベンダから提供される.NETアセンブリです。IVI-COMはCOMベース・コンポーネントなので、VEEはそのPIAを検索します。これが見つかると、VEEでIVI-COMドライバを他の.NETアセンブリと同様に使用できます。

IVIとはを参照してください。

エラー・レポート機構の変更

VEEのエラー・レポート機構が変更されました。この有用な機能を活用してください。詳細についてはミニダンプを参照してください。

Agilent VEE 6.0の新機能

Agilent VEEソフトウェア・ファミリ・バージョン6.0へようこそ。バージョン6.0の新機能と機能拡張について以下に説明します。これらの機能の詳細については、「新機能」または「機能拡張」をクリックしてください。Agilent VEEのすべての機能の詳細については、ヘルプの目次と索引を参照してください。

新機能

マルチメディア・チュートリアル
統合されたMATLABR Script
Callable VEE ActiveX Automation Server
新しいデータ型
VEE 6実行モード
新しい関数
VEE I/O構成ファイルのプログラムへの保存
プログラム可能な計測器プロパティ
ダイナミックI/Oオートメーション・サーバ
追加されたI/O診断機能
[Instrument Manager]ツールバー・ボタン
VXI 64ビット・メモリ・アクセスのサポート
PCプラグイン・カードのサポート
追加されたProgram Explorerサブメニュー
新しいRunTimeオプション
プログラム設定のレジストリへの保存
MAPI電子メールのサポート
Microsoft Intellimouseホイールのサポート

Agilent VEE（Windows版）にマルチメディア・チュートリアルが追加され、使い方を覚えるのがさらに容易になりました。利用手順は次のとおりです。

1. VEEをインストールしたのと同じCDドライブにVEE CDを挿入します。
2. VEEを実行し、Welcomeウィンドウで[Tutorials]ボタンをクリックします。
3. 7つのチュートリアルから1つを選んで、あるいは7つ全部を見ることができます。

統合されたMATLABR Script

Agilent VEE 6.0では、VEEプログラムからMATLABの機能を利用できるようになりました。新しいVEEにはMATLAB Scriptのランタイム・バージョンが付属しています。また、[Device]メニューに新しくMATLAB Scriptオブジェクトが追加されました。使用可能なすべてのMATLAB関数は、VEEのFunction & Object Browserにも表示されます（HP-UX版のVEEにはMATLABサポートはありません）。

Callable VEE ActiveX Automation Server

VEEの以前のバージョンでは、他の開発環境からVEEコードを実行する方法として、C-to-VEE APIとCallable VEE ActiveXコントロールの2種類が用意されていました。Agilent VEE Pro 6.0では、従来のActiveXコントロールがActiveXオートメーション・サーバに置き換えられ、Visual Basicなどのプログラミング環境からVEEコードを容易に利用できるようになりました（Callable VEE ServerはWindowsのみでサポートされます）。

詳細については、「VEE CallServer Help」を参照してください。

新しいデータ型

Agilent VEE 6.0の新しいデータ型として、UInt8、Int16、Real32、Variantがあります。新しいデータ型と、WRITE TEXT INT16などの新しいトランザクションは、すべての実行モードに現れます。ただし、新しいトランザクションは古いモードでは従来の方法で動作します。例えば、VEE 5モードでは、WRITE BINARY INT16は実際にはWRITE BINARY INT32を実行し、データをInt16に変換することはありません。VEE 6モードでは、WRITE BINARY INT16はデータをInt16に変換します。VEEの実行モードによるプログラムの動作の変化については、「実行モード」の項目を参照してください。

場所

Data [image] Constant [image] UInt8
Data [image] Constant [image] Int16
Data [image] Constant [image] Real32
Data [image] Allocate Array [image] UInt8
Data [image] Allocate Array [image] Int16
Data [image] Allocate Array [image] Real32

VEE 6実行モード

Agilent VEEソフトウェア・バージョン6.0では、VEE 6実行モードが[Default Preferences]ダイアログ・ボックスに追加されています。詳細については、「実行モード」のヘルプ項目を参照してください。

新しい関数

VEEの新しいデータ型（Int16、Real32、Variant、UInt8）は、ActiveXオートメーション・サーバとの互換性を広げる役割を果たします。また、新しい関数を使うと、VEEに対応する型がないその他のActiveXデータ型（Currency、Dateなど）の扱いが容易になります。詳細については、「型変換」のヘルプ項目を参照してください。Agilent VEE 6.0言語には次の新しい関数が追加されています。

asVariant()
asVariantBool()
asVariantCurrency()
asVariantDate()
asVariantError()
asVariantEmpty()
asVariantNull()
baseName(pathStr)
commandLine()
dirName(pathStr)
inDaylightSavings()
isVariant()
isVariantBool()
isVariantCurrency()
isVariantDate()
isVariantError()
isVariantEmpty()
isVariantNull()
programName()
typeName(x)

VEE I/O構成ファイルのプログラムへの保存

VEE 6.0では、veeioリソース・ファイルを使用する代わりに、I/O構成情報をプログラム自体に埋め込むことができます。構成情報の埋込みを可能にするため、[Save I/O configuration with program]チェック・ボックスが[Save File]ダイアログ・ボックスに追加されています。I/O構成の保存については、Instrument Managerを参照してください。

場所:File Save（新規プログラムの保存）

File Save As（別名での保存）

プログラム可能な計測器プロパティ

Agilent VEEソフトウェア・バージョン6.0には、実行時に計測器パラメータ（タイムアウト値など）を変更する機能が追加されています。この新機能は、Direct I/Oオブジェクトへのコントロール入力に取って代わるもので、一部のプログラム可能な計測器パラメータを実行時に取得／設定することを可能にします（コントロール入力の必要性はなくなりましたが、コントロール入力は引き続きサポートされています）。使用可能な計測器とそのプロパティのリストはFunction and Object Browserにあり、このリストからFormulaを作成できます。

使用可能なプロパティの詳細については、「GPIB計測器のプロパティ」、「GPIO計測器のプロパティ」、「シリアル計測器のプロパティ」、「VXI計測器のプロパティ」を参照してください。また、以下の2つの例を参照してください。

examples\InstrumentIO\ProgrammableInstrProperty1.vee

examples\InstrumentIO\ProgrammableInstrProperty2.vee

ダイナミックI/Oオートメーション・サーバ

VEEの以前のバージョンでは、VEE I/O設定ファイルの計測器バス・アドレスは静的（固定）でした。バージョン6.0では、ダイナミックI/Oオートメーション・サーバにより、計測器をプログラムで検索して認識できるようになりました。これにより、柔軟性が大幅に高まりました。例えば、すべての計測器を検索し、プログラム可能な計測器プロパティを使ってDirect I/Oオブジェクトを設定できます（ダイナミックI/Oオートメーション・サーバはWindowsのみでサポートされます）。

詳細については、「ダイナミックI/Oオートメーション・サーバ」を参照してください。

追加されたI/O診断機能

バージョン6.0には、いくつかの重要なI/O診断機能が新しく追加されています。これらの機能は、エラーの防止とエラーからの回復に分類され、主に計測器のチェックを行います。

エラーの防止

VEE 6.0は、VEEプログラムの本体を実行する前に、計測器のチェックを実行できます。計測器チェックを有効にするには、[File] [Default Preferences]を使用し、[Check Instrument Addresses at PreRun]ボックスを選択します。詳細については、Default Preferences（"Debug"グループ）を参照してください。

エラーからの回復

バージョン6.0では、I/Oタイムアウト・エラーが検出された場合に、[VEE Run Time Error]ダイアログ・ボックスに[Troubleshooting]ボタンが表示されるようになりました。捕捉される診断I/Oエラーは、「エラー811 - Timeout or General I/O Error（タイムアウトまたは一般I/Oエラー）」です。

インタフェースが存在しないかバス・アドレスが使用されていないためにVEEの計測器アクセスが失敗した場合、診断はエラーの種類とエラーを修正するためのヒントを示します。

[Instrument Manager]ツールバー・ボタン

バージョン6.0では、ツールバー表示に[Instrument Manager]アイコンが追加され、[Instrument Manager]ダイアログ・ボックスに容易にアクセスできるようになりました。もちろん、メニューの[I/O] [Instrument Manager…]を使ってInstrument Managerにアクセスすることも引き続き可能です。

VXI 64ビット・メモリ・アクセスのサポート

Agilent I/O Libraries G.02.02は、一部のVXI計測器のメモリ空間への64ビット・アクセスをサポートします。この機能により、VEEプログラムは64ビット単位でメモリを読み書きできます。バージョンG.02.02以上がインストールされている場合、[Advanced Instrument Properties]ダイアログ・ボックスの[A24/A32 Space]タブを使って、このアクセス・モードを有効にできます。

場所:I/O Instrument Manager

（VXI計測器を選択） Instrument Properties Advanced... A24/A32 Spaceタブ

PCプラグイン・カードのサポート

VEE 6.0は、ODAA（Open Data Acquisition Association）準拠のドライバを持つPCプラグイン・カードをサポートします。これらのカードを使用するには、ハードウェアとソフトウェアをインストールし、メーカの説明書に従ってサブシステムを設定します。Agilent VEEのInstrument Managerで、[Find Instruments]ボタンをクリックします。

PCプラグイン・カードが正しく設定されると、設定されているサブシステムがInstrument Managerに表示されます。目的のサブシステムを選択し、[PCPI Driver]ボタンをクリックして、Formulaオブジェクトを作成します。プロパティやメソッドを調べたり、[Function & Object Browser]ダイアログ・ボックスからサブシステム用のFormulaを作成したりできます。

追加されたProgram Explorerサブメニュー

Agilent VEE 6.0では、Program Explorerにグローバル変数用の新しいサブメニューが追加されました。"Generate"という名前のこの新しい項目を使うと、グローバル変数に関連するGet、Set、If/Then/Elseなどの操作を容易に使用できます。

新しいRunTimeオプション

VEE Pro RunTimeに新しいオプション-enablewarningsが追加されました。これにより、プログラムをRunTimeでチェックして、必要なファイルがすべて揃っていることを確認できます。-enablewarningsを使用しない場合、RunTime製品は"Picture file is missing"（ピクチャ・ファイルが存在しない）などの致命的でないエラーを無警告で無視します。

プログラム設定のレジストリへの保存

VEE 4.xおよび5.0では、一部の情報（ツールバーの表示／非表示、ステータス・バーの表示／非表示など）がデフォルト設定ファイル（vee.rc）に保存されていました。バージョン6.0では、これらの設定はvee.rcファイルには保存されません。

これに加えて、Windows版VEEの以前のバージョンでは、一部の設定がv.iniファイルに保存されていました。現在のVEEは、MS Windowsではv.iniファイルを使用しません。これらの設定はすべて、Windowsレジストリにユーザ別にHKEY_CURRENT_USER\Software\Agilent\VEEの下に保存されています。

HP-UXの場合、情報は.vee-settingsというファイルに保存されます。このファイルはユーザの$HOMEディレクトリにあります（このファイルは以前には.vee-historyという名前でした）。

プログラム設定を保存するためにユーザが操作を行う必要はありません。設定はVEEの終了時に自動的に保存されます。次にVEEを開いたときには、VEEは同じ位置に同じサイズで表示され、同じユーザ・インタフェース・オプションが選択されています。

MAPI電子メールのサポート

バージョン6.0では、MAPIプロファイルを持つシステムのために、[File]メニューに[Send Program by Email]項目が追加されています。HP-UXシステムとMAPIプロファイルを持たないPCでは、この機能はサポートされません。

場所:File Send Program by Email

Microsoft Intellimouseホイールのサポート

バージョン6.0では、Microsoft Intellimouseのサポートが追加されています。Microsoft Intellimouseまたは互換マウスを使用している場合、リスト・ビューにフォーカスがある状態でマウス・ホイールを回すと、リスト・ビューが上下にスクロールします。

機能拡張

インストール・プログラムの改善
VariantからVEEデータ型への変換 &ndash; 配列処理の改善
オートメーション・サーバのクリーンアップの改善
追加されたグラフィックス・ファイル・サポート
XYマーカ・プロパティの改善
トランザクション・ピンの作成の改善
Get/Set Formulaボタン
更新された関数
PCのExecuteオブジェクトの改善
Instrument Managerの更新
便利なオブジェクトのサイズ変更
追加されたキーボード・ショートカット
シーケンス・ライン・カラーの改善
設定保存オプション

インストール・プログラムの改善

新しいWindowsインストール・プログラムでは、以前のVEEインストール・プログラムでできなかったことがいくつか可能になっています。VEEをインストールした後、コントロール・パネルの「プログラムの追加と削除」アプレットを実行して、Agilent VEEを選択できます。新しい機能がいくつか追加されています。Agilent VEEの削除だけでなく、既存のインストールの変更も可能です。これにより、HP以外のパネル・ドライバなど、最初にインストールしなかったコンポーネントをインストールできます。また、使用していないコンポーネントを削除することもできます。修復オプションを使うと、Agilent VEEのインストールを修復できます。

VariantからVEEデータ型への変換 - 配列処理の改善

ActiveXオートメーション・サーバ（Excelなど）またはActiveXコントロールからデータが返された場合、VEEはオートメーション・データ型をVEEデータ型に変換する必要があります。VEE 5.0では、Variantの配列はVEEのRecordに変換されていました。バージョン6.0（VEE 6実行モード）では、Variantの配列は、すべての要素が同じデータ型の場合、VEEの配列に変換されます（異なるデータ型が混在している場合は、VEE 5.0と同じ動作をします）。

ソースのVariantのSafearrayのすべての要素が同じデータ型の場合、Variantデータ型からVEEの配列データ型への変換は次のようになります（注記:この機能はVEE 6実行モードだけで利用できます）。

Variant配列メンバの型 VEE 6.0データ型

VT_UI1 UInt8
VT_BOOL Int32
VT_I2 Int16
VT_UI2 Int16
VT_I4 Int32
VT_UI4 Int32
VT_R4 Real32
VT_R8 Real64
VT_DATE Real64
VT_CY Real64
VT_BSTR Text
VT_DISPATCH Object

オートメーション・サーバのクリーンアップの改善

VEEプログラムでオートメーション・サーバ（Excelなど）を使用する場合、VEEプログラムが終了したときに、Excel（またはその他のアプリケーション）が終了しない場合があります。VEE 6.0では、ActiveX参照の処理を改善し、不要なポインタを解放するようにしています。ActiveX参照のクリーンアップを実行するプログラミング技法については、「CreateObject」の項目を参照してください。

追加されたグラフィックス・ファイル・サポート

バージョン6.0では、Windows 95/98/NTにおいて、JPG、WMF、PNGフォーマットの読み取り専用のサポートが追加されています。読み込めるBMP/GIFフォーマットの種類も増えています。Pictureオブジェクトのヘルプ項目を参照してください。

XYマーカ・プロパティの改善

バージョン6.0では、マーカの値を任意の式で値として取得できます。これらの新しいプロパティの詳細については、XY表示のヘルプ項目の「プログラムでのマーカ値の設定と読み取り」というセクションを参照してください。XY表示の例としては、XY Trace、Magnitude Spectrum、Polar Plotがあります。また、次の項目を参照してください:マーカのプロパティを取得／設定するには

トランザクション・ピンの作成の改善

トランザクションを持つオブジェクトには、トランザクション内での端子名の使用に基づいて、自動的に入出力が追加されるようになりました。この機能は、ローカル／グローバル変数を認識するので、名前がローカル／グローバル変数を指す場合にはピンは追加されません。

Get/Set Formulaボタン

Function & Object Browserで、ActiveX、VEEオブジェクト、計測器グループのプロパティに対して、2種類のFormulaを作成できるようになりました。"Get Property" Formulaまたは"Set Property" Formulaを、対応するボタンを押すことで作成できます。

更新された関数

次の関数は、Agilent VEEソフトウェア・バージョン6.0で更新されています。

whichOS() Windows 98とWindows 2000を追加

createObject() オプションのhostnameパラメータを追加

PCのExecuteオブジェクトの改善

PCのExecuteオブジェクトは、実行されたプログラムからの終了コードを返し、登録されたサフィックスを使って関連付けられたプログラムを実行できるようになりました。「Execute Program（PC）」のヘルプ項目を参照してください。

Instrument Managerの更新

バージョン6.0では、[Instrument Manager]ダイアログ・ボックスに[Configure Drivers]ボタンが用意され、計測器ドライバの設定が容易になっています。1つの計測器、インタフェース・カード、I/O構成全体のいずれかを選択し、ボタン1つでドライバを設定できます。詳細については、「Instrument Manager」のヘルプ項目を参照してください。

便利なオブジェクトのサイズ変更

Agilent VEE 6.0では、オブジェクトの4隅の1つをドラッグすることでサイズを変更できます。この機能はパネル・ビューでも詳細ビューでも使用できます。

オブジェクトのサイズ変更操作では、グリッドへのスナップがデフォルトになりました。この動作は、パネル・ビューでも詳細ビューでも同じです。Shiftキーを押さずにコーナーをマウスでクリックすると、粗いサイズ変更（グリッドへのスナップ）が開始されます。Shiftキーを押しながらコーナーをマウスでクリックすると、細かいサイズ変更（1ピクセル単位）が開始されます。グリッド・サイズは詳細ビューでは10ピクセル固定、パネル・ビューではデフォルトで10ピクセルです。

VEE 5.0では、グリッドへのスナップはパネル・ビューのみで可能で、詳細ビューでは細かいサイズ変更のみが可能でした。

追加されたキーボード・ショートカット

デバッグ用にファンクション・キーのマッピングが新しく追加されています。

F5は"Run"にマッピングされ、Ctrl-Gと同じ働きをします。

F10は"Step Over"にマッピングされます。

F11は"Step Into"にマッピングされます。

Shift-F11は"Step Out"にマッピングされます。

VEEのショートカットの一覧については、「キーボード・ショートカットの使用」を参照してください。

シーケンス・ライン・カラーの改善

Agilent VEE 6.0では、シーケンス入力に接続されたすべてのラインは、1ピクセル幅で色は薄いグレーになります。これは、実際にプログラム・データを伝達するラインを目立たせるためです（VEEプログラム・ラインの大半はデータでなくシーケンスを表すのが普通です）。

設定保存オプション

Agilent VEE 6.0では、[Save colors/fonts with program]と[Save Device Configuration]が[Default Preferences]ダイアログ・ボックスから削除され、次のオプションが[Save File]ダイアログ・ボックスに追加されました。

オプション

[ ] Save colors and fonts with program

[ ] Save I/O configuration with program

これらのオプションの詳細については、「Save As」を参照してください。

場所:File Save As…

HP VEE 5.0の新機能

HP VEEをお使いいただきありがとうございます。このバージョンには、多数の新機能や以前のバージョンからの変更が含まれています。HP VEEヘルプのこのセクションでは、これらについて説明します。下に示すのは、更新部分の一覧と、既存のプログラムに対する互換性の問題の概要です。リンクをクリックすると、これらの機能の使用法の詳細を見ることができます。これらを含むHP VEEの全機能の詳細については、HP VEEヘルプの目次と索引を参照してください。

HP VEE Webサイトには、サポート情報、計測器ドライバのダウンロード方法、その他の有用なリソースが用意されています。このサイトは、HP VEEウィンドウから[Help] => [HP VEE on the Web]を選択することで見ることができます。

注記

ファイル保存形式はHP VEE 3.xの後で変更されています。HP VEE 3.xプログラムをHP VEE 4.0以降で保存すると、HP VEE 3.x以前では開けなくなります。

ファイル保存形式はHP VEE 4.xとHP VEE 5.0で変わっていません。ただし、これら2つのバージョンの間でプログラムを移行した場合、プログラムが正しく動作しない可能性があります。例えば、HP VEE 4.xプログラムをHP VEE 5.0で開いて新機能を使用し、プログラムを保存した場合、HP VEE 4.xで再び開くことは可能です。ただし、新機能は削除され、プログラムが破損されるおそれがあります。

ActiveXサポート Windows版HP VEEは、WindowsR 95/NTR 4.0以上が動作しているPCでActiveXオートメーション／コントロールをサポートします（UNIXではサポートされません）。

ActiveXオートメーションを使うと、HP VEEをオートメーション・コントローラとして使用できます。これにより、MicrosoftR Word、Excel、Accessなどのアプリケーションを制御して、アプリケーションにデータを送信してレポートを生成するなどのことが可能です。これは、オートメーション対応のアプリケーションに対して、現在のアプリケーション制御方法であるDynamic Data Exchange（DDE）に完全に取って代わるものです。

ActiveXコントロールは、さまざまなベンダから提供されており、HP VEEの機能を拡張して、ActiveXオートメーション・プロパティ／メソッド／イベントを通じて各分野に固有のサービスを提供する役割を果たします。ほとんどのActiveXコントロールはユーザ・インタフェースも装備しており、カレンダーなどのコントロールを操作することで、カレンダーの日付に基づくイベントを開始したりすることができます。

Webモニタリング HP VEEにはWebサーバが組み込まれており、HP VEEアプリケーションのモニタとトラブルシューティングを、標準のHTTPプロトコルを使ってリモートWebブラウザから実行できます。この機能は以下のような用途に使用できます。

  • 工場で動作しているシステムのトラブルシューティング

  • HP VEEプログラムからの情報の取得

  • テスト・システムのモニタ

HP VEEオブジェクトと関数

XY表示の機能拡張により、スケール・ラベルとその間隔の定義、数値フォーマットの設定が可能になりました。

Knob、Slider、Indicatorオブジェクトの機能拡張により、対数／リニア・スケーリングの選択、数値フォーマットの設定、目盛りラベルとその間隔の制御が可能になりました。

Formulaオブジェクトが複数行の式を受け入れるようになりました。1つまたは複数の式を入力する場合、1行に1つの式を入力することも、式を複数行に分割して入力することもできます。

[UserFunction]メニュー項目により、UserFunctionの呼び出しに一般的に用いられる次のオブジェクト／関数からのUserFunctionへの呼び出しを自動的に生成できます。Call、Formula、If/Then/Else、showPanel()、hidePanel()

SavePanelImage関数により、HP VEEのUserFunctionパネルをプログラムからファイルに描画し、HP VEEパネルを動的にレポートに埋め込むことができます。

開発環境

HP VEE開発環境には、次のような変更が加えられています。

  • [Default Preferences]ダイアログ・ボックスで、[Execution Mode]が[Compatibility Mode]に変わりました。モードには、VEE 3、VEE 4、Standardがあります。

  • [Select Function]ダイアログ・ボックスが[Function & Object Browser]（[Device]メニュー）になりました。UNIXでは[Function Browser]です。

  • 拡張クリップボード・サポートにより、HP VEEから他のWindowsアプリケーションにオブジェクトのビットマップをコピーできます。

  • .vxeバイナリ・ファイル・フォーマットにより、ファイル・サイズの縮小と、RunTimeプログラムのセキュリティの向上が実現されます。

  • オンライン・ヘルプ情報へのアクセスが向上します。

Instrument Manager

[Instrument Manager]ダイアログ・ボックスのボタン・ラベルが変更されました。[Configuration]領域のボタンのラベルは、[Instrument List]ツリー・ビューで選択されているノードに応じて動的に変化します。これにより、各ノードで可能な設定変更がよりわかりやすくなります。詳細については、「Instrument Manager」を参照してください。

ActiveXサポート

Windows版HP VEEは、Windows 95/NT 4.0以上が動作しているPCでActiveXオートメーション／コントロールをサポートします（UNIXではサポートされません）。

注記

ActiveXサポートを有効にするには、[Default Preferences]ダイアログ・ボックスの[General]タブでHP VEEがStandardモードに設定されている必要があります。これは新規プログラムのデフォルトのモードです。HP VEEをStandardモードに設定した場合のメニュー、オブジェクト、関数の変更の詳細については、「開発環境」の「実行モード」のセクションを参照してください。

ActiveXオートメーションを使うと、HP VEEをオートメーション・コントローラとして使用できます。これにより、Microsoft Word、Excel、Accessなどのアプリケーションを制御して、アプリケーションにデータを送信してレポートを生成するなどのことが可能です。これは、オートメーション対応のアプリケーションに対して、現在のアプリケーション制御方法であるDynamic Data Exchange（DDE）に完全に取って代わるものです。

ActiveXコントロールは、さまざまなベンダから提供されており、HP VEEの機能を拡張して、ActiveXオートメーション・プロパティ／メソッド／イベントを通じて各分野に固有のサービスを提供する役割を果たします。ほとんどのActiveXコントロールはユーザ・インタフェースも装備しており、カレンダーなどのコントロールを操作することで、カレンダーの日付に基づくイベントを開始したりすることができます。

推奨文献

Microsoft Office 97 Visual Basic Programmer's Guide
Microsoft Press, 1997
ISBN 1-57231-340-4

HP VEEは、Microsoft Visual Basicの標準に基づいてActiveXサポートを実現しています。ActiveXテクノロジーに不慣れな方は、この本のオブジェクト・モデルとActiveXコントロールに関する章を参照してください。これらの概念を理解することで、HP VEEのActiveX機能の使用が容易になります。

HP VEEでのActiveXの使用法については、『HP VEE Advanced Programming Techniques』マニュアルの「Using ActiveX Automation Objects and Controls」の章を参照してください。\examplesディレクトリに多数の新しいサンプル・プログラムが追加されています。HP VEEウィンドウからサンプルを開くには、[Help] => [Open Example]を使用します。サンプルは\ActiveXAutomationと\ActiveXControlsの下にあります。

Webモニタリング

HP VEEにはWebサーバが組み込まれており、HP VEEアプリケーションのモニタとトラブルシューティングを、標準のHTTPプロトコルを使ってリモートWebブラウザから実行できます。この機能は以下のような用途に使用できます。

  • 工場で動作しているシステムのトラブルシューティング

  • HP VEEプログラムからの情報の取得

  • テスト・システムのモニタ

Webサーバを有効にするには、[Default Preferences]ダイアログ・ボックスの新しい[Web Server]タブを使用します。この機能が動作するためには、ネットワークに接続されたシステムでHP VEEが動作している必要があります。Webブラウザからリモートでプログラムをモニタするには、システムのホスト名を知る必要があります。詳細については、「Default Preferences」を参照してください。

HP VEEオブジェクトと関数

XY表示の機能拡張により、スケール・ラベルとその間隔の定義、数値フォーマットの設定が可能になりました。これらの変更は、それぞれの[Properties]ダイアログ・ボックスに表示されます。変更の一覧を下に示します。詳細については、XY Traceなどの表示オブジェクトのヘルプ項目を参照してください。各表示オブジェクトには、それぞれの設定をサポートするための多少の変異があります。

  • 各表示オブジェクトのXY表示の背景色は、[Properties]ダイアログ・ボックスの[Colors]タブで設定できます。タブの[Display]領域でカラーを変更すると、[Default Preferences]で設定されたデフォルト・カラーがオーバーライドされます。

  • 表示オブジェクトのオープン・ビューにあるトレースとスケールに関する情報が変更されました。トレースとスケールに関する編集可能フィールドが、フラット・ボタンに変わりました。スケールの大目盛りにラベルが付き、最小値／最大値はオープン・ビューでは編集できなくなりました。

プロパティを編集するには、オープン・ビューでトレースまたはスケール名をクリックして、[Edit]ダイアログ・ボックスを表示します。または、オブジェクトのタイトル・バーをダブルクリックして、[Properties]ダイアログ・ボックスを使用します。[Traces and Scales]ボタンが[General]タブからなくなっており、2つの新しいタブ[Traces]と[Scales]が加わっていることがわかります。

トレースのプロパティはHP VEE 4.xから変わっていません。

スケールのプロパティは変更されています。最小値／最大値は他のプロパティといっしょの場合のみ編集でき、Label SpacingとAutomatic Scalingの2つのプロパティが追加されています。各スケール（追加の右スケールを含む）のプロパティは独立に設定できます。

大目盛りのラベル間隔を設定するには、[Label Spacing]の隣の下矢印をクリックし、値をクリックして選択します。新規プログラムの場合、Xスケールのデフォルト設定はEvery Major Tic、Yメイン・スケールのデフォルト値はEvery Other Ticです。古いプログラムの場合、以前の表示オブジェクトのスタイルに似せるため、デフォルトはOnly Max & Minになっています。

ラベルのフォントは、オブジェクトのフォントとは別に、オブジェクトの[Properties]ダイアログ・ボックスの[Fonts]タブで設定できます。タブの[Scale Label]領域でフォントを変更すると、[Default Preferences]で設定されたデフォルト・フォントがオーバーライドされます。ラベルのカラーは、[Default Preferences]またはオブジェクトの[Properties]ダイアログ・ボックスで設定されたオブジェクト・テキスト・カラーに従います。

オートスケールのプロパティが変更され、自動スケーリング・モードが追加されました。オープン・ビューの[Auto Scale]ボタンはオプションです。このボタンの表示／非表示は、[Properties]ダイアログ・ボックスの[General]タブの[Layout]領域で設定できます。自動スケーリング・モードは、X/Yメイン・スケールのその他のプロパティを設定する際に設定できます。自動スケーリングがオンの場合、スケールは入力データに対して自動的に「オートスケール」設定されます。追加の右スケール（Y2/Y3）はYメインに従います。このモードは、Strip Chartではサポートされません。

既存の表示オブジェクトを持つ古いプログラムの場合、以前の表示オブジェクトのスタイルに似せるため、自動スケーリングはオフであり、オープン・ビューに[Auto Scale]ボタンが表示されます。古いプログラムに新しく表示オブジェクトを追加した場合、デフォルト設定が用いられます。すなわち、XとYメインの両方が自動スケーリング・モード・オンに設定され、[Auto Scale]ボタンはありません。

Auto Scale X、Auto Scale Y、Auto Scaleのコントロール入力は変わりません。Scalesコントロール入力レコードは、AutoScaleという名前の新しいテキスト・フィールドを持ちます。これは値OnまたはOffを受け入れます。これにより、自動スケーリングにプログラムからアクセスできます。これはStrip Chartではサポートされません。

  • 各スケールの数値フォーマットは、[Properties]ダイアログ・ボックスの[Number]タブで設定できます。

マーカ値は、対応するスケールと同じ数値フォーマットを使用します。X/Yスケールのデルタ・マーカは、[Default Preferences]ダイアログ・ボックスで設定されたデフォルトの数値フォーマットを使用します。ただし、XまたはYスケールのMarker1とMarker2がともにTime Stampフォーマットを使用している場合、デルタ・マーカはDelta Timeフォーマットを使用します。

  • [Properties]ダイアログ・ボックスの[General}タブの[Layout]領域が変更されています。新しいオプションを使うと、オープン・ビューの外観とセキュリティをより柔軟に制御できます。

    • [Show Traces Legend]は、トレースの編集ボタンのオン／オフを切り替えます。

    • [Show Scales Legend]は、X/Yスケールの編集ボタンのオン／オフを切り替えます。

    • [Show Scale Labels]は、軸スケール・ラベルのオン／オフを切り替えます。

    • [Show Scroll Bars]は、スクロール・バーのオン／オフを切り替えます。

    • [Show Auto Scale]ボタンは、[Auto Scale]ボタンのオン／オフを切り替えます。

    • [Enable Trace/Scale Editing]は、[Trace]および[Scales]編集ボタンの編集機能を制御します。

Knob、Slider、Indicatorオブジェクト

機能拡張により、対数／リニア・スケーリングの選択、数値フォーマットの設定、目盛りラベルとその間隔の制御が可能になりました。これらの機能拡張は、Integer/Real KnobおよびSlider、Meter、Thermometer、Fill Bar、Tankの各オブジェクトに影響します。Color Alarmには、数値フォーマットの制御だけが追加されています。これらの変更はすべて、各オブジェクトの[Properties]ダイアログ・ボックスに表示されます。

  • リニア／対数スケーリングは、[General]タブの[Scale]領域で選択できます。対数スケーリングは、Integer Knob/Sliderオブジェクトではサポートされません。

  • 大目盛りのラベル間隔は、[General]タブの[Scales]領域で選択できます。[Label Spacing]の隣の下矢印をクリックし、値をクリックして選択します。

  • 目盛りとラベルのオン／オフ切り替えは、Knob、Thermometer、Fill Bar、Tankの各オブジェクトで可能です。これは従来、SliderおよびMeterオブジェクトでのみ可能でした。

  • Thermometer、Fill Bar、Tank、Color Alarmの[Properties]ダイアログ・ボックスに、[Number formats]タブが追加されています。これらのオブジェクトでは、Knob、Slider、Meterと同様に、最小値／最大値と目盛りラベルの値が、現在の数値フォーマットで表示されるようになりました。

  • 詳細については、Integer KnobInteger_Knob、Integer SliderInteger_Slid、Real KnobReal_Knob、Real SliderReal_Slider、Fill BarFill_Bar、MeterMeter、TankTank、ThermometerThermoを参照してください。

Formulaオブジェクトが複数行の式を受け入れるようになりました。これにより、長い式を入力する際にFormulaオブジェクトを縦横に拡大できます。このHP VEEバージョンで開かれた古いプログラムの中のFormulaオブジェクトも、この新しい動作に従います。1つまたは複数の式を入力する場合、1行に1つの式を入力することも、下の例のように1つの式を複数行に分割して入力することもできます。

(a == someLongExpr

? "return someLongTrue"

: "return someLongFalse"

)

  • 各行の末尾には、区切り文字としてキャリッジ・リターン（\r）が追加されます。この文字は表示されません。パーサはFormulaオブジェクトからフォーカスが外れたときに式の有効性をチェックします。次の2つの例で、最初の式は構文エラーになります。変数名が分割されているように見えるからです。エラー・メッセージはエラーの位置を示します。

2 * A +

3 - foo

bar - snafu

次の例では、fooの後に演算子を追加することで問題を修正しています。

2 * A +

3 - foo -

bar - snafu

  • Formulaオブジェクトへのコントロール入力が配列またはスカラのTextを受け入れるようになりました。

  • Formulaオブジェクトに編集機能が追加され、複数行の式の編集が容易になりました。

  • 詳細については、FormulaFormula_Object>mainを参照してください。

[UserFunction]メニューで、[Generate]メニュー項目の下の項目により、UserFunctionの呼び出しに一般的に用いられる次のオブジェクト／関数からのUserFunctionへの呼び出しを自動的に生成できます:Call、Formula、If/Then/Else、showPanel()、hidePanel()。従来は、Callオブジェクトだけが自動的に生成されていました。追加されたメニュー項目を使うと、より適切なオブジェクトからUserFunctionへの呼び出しを生成できます。例えば、If/Then/ElseからBoolean関数を参照したり、showPanel()またはhidePanel()関数を使ってプログラムの外観を制御したりする場合です。[Generate]メニュー項目へのアクセス方法は同じです。

  • Program Explorerで、UserFunction名をマウスの右ボタンでクリックします。

  • UserFunctionウィンドウでオブジェクト・メニューを使用します。

  • 詳細については、UserFunctionUser_Function>mainを参照してください。

savePanelImage()関数を使うと、HP VEEのUserFunctionパネルをプログラムでファイルに描画できます。これにより、HP
 VEEのUserFunctionパネルを動的にレポートに埋め込むことができます。UserObjectパネルはサポートされません。savePanelImage()（[Device]
 => [Function & Object Browser]）は、PanelカテゴリのBuilt-in Functionsにあります。Formulaオブジェクトが関数呼び出しを実行します。savePanelImage()がサポートするグラフィックス・フォーマットには、Windows
 Bitmap（Windowsのみ）とJPEG（WindowsおよびUNIX）があります。詳細については、「savePanelImage()」を参照してください。

開発環境

[Default Preferences]ダイアログ・ボックスの[General]タブで、[Execution Mode]が[Compatibility Mode]に変わりました。サポートされるモードには、Standard、VEE 4、VEE 3があります。また、[Disable Debug Features]チェックボックスが[Debug]領域に移動しました。VEE 4およびVEE 3モードは、HP VEE 4.xで設定された互換性定義を保持します。以下に示す小さな変更がありますが、これらは既存のプログラムを元のモードで実行し続ける限りは影響ありません。

新しいStandardモードはVEE 4モードのスーパーセットであり、プログラムの互換性に影響する重要な変更が導入されています。ほとんどの変更は新しいActiveXオートメーション機能を有効にするためのものですが、ActiveXを使用していなくても、以下に記述される機能のどれかを使用している場合、プログラミング手法に影響する可能性があります。ActiveXオートメーション／コントロールの詳細については、「ActiveXサポート」を参照してください。

新しいHP VEE 5.0プログラムは、Standardモードで開きます。古いプログラムは、必要な場合、[Default Preferences]で手動で新しいモードに変更する必要があります。プログラムをStandardモードに変更した場合、エラーが発生する可能性があります。この場合、問題が発生している箇所のリストが表示されます。HP VEEがStandardモードへの切り替えを受け入れるためには、これらの問題を修正する必要があります。HP VEEはエラーを修正するためにプログラムを自動的に変更することはありません。エラーの修正に役立つように、Standardモードでの互換性に関わる変更の一覧を以下に示します。

注記

互換モードの詳細については、『HP VEE Advanced Programming Techniques』マニュアルの付録「Using the Compatibility Mode」を参照してください。HP VEE 3.xプログラムをStandardモードに変更したい場合、まずVEE 4モードで動作することを確認してから、Standardモードに変更するようにしてください。

Standardモードの変更を以下に示します。

  • HP VEEプログラムはコンパイルされます。

  • Formulaオブジェクトで:

    • SETとByRefはActiveXオートメーション用の新しいキーワードであり、端子名としては使用できません。

    • ActiveXオートメーション用に新しい構文がサポートされます。例: excel.worksheets(1).cells(1,2) = 2

    • [1 2 3]のようにカンマなしで配列構文を入力すると、Formulaからフォーカスが外れたときにエラーが発生します。

    • 1のような値は整数を返し、1.0は実数を返します。以前には、どちらも実数を返していました。

    • ActiveXオートメーション用の2つの新しい組み込み関数CreateObject()とGetObject()が追加されています。

  • [Delete Variables at PreRun]がオンになっている場合（Default Preferences）、ActiveXコントロールを参照するグローバル変数は削除されません。

  • Declare Variableオブジェクトに、ActiveXオートメーション用の新しい変数型Objectが追加されました。

  • 新しいObject変数型は、入力端子でRequired Typeとしても使用できますが、型変換はできません。

  • [Device]メニューに新しいメニュー項目[ActiveX Automation References…]、[ActiveX Control References…]、[ActiveX Controls]が追加されています。

  • グローバル名前空間の規則が次のように変更されています。

    • ローカルUserFunction、ライブラリ名、宣言された／宣言されないグローバル変数、ライブラリにローカルな宣言された変数は、すべて同じ名前空間に存在し、一意の名前を持つ必要があります。したがって、UserFunctionと宣言されたグローバル変数の両方に同じ名前を付けることはできません。

    • ライブラリ内では、ローカルUserFunctionとライブラリにローカルな宣言された変数は、同じ名前空間に存在し、一意の名前を持つ必要があります。

  • To StringやFrom StringなどのオブジェクトでREAD TEXTトランザクションを使用する場合に、TOKENフォーマットとEXCLUDE CHARSを組み合わせたときの読み取りポインタの動作が変更されました。READ TEXTトランザクションの後では、ポインタは除外されない次の文字まで進み、次のトランザクションが可能な状態になります。VEE 3およびVEE 4モードでは、ポインタは除外される文字で停止します。

  • VEE 3およびVEE 4モードの場合、To FileまたはFrom FileオブジェクトでEXECUTE REWINDトランザクションを使用してTo DataSetまたはFrom DataSetオブジェクトと同じデータ・ファイルにアクセスするプログラムでは、予期しない相互作用が生じ、データが正しく書き込まれない可能性があります。Standardモードでは、この予期しない相互作用は修正されており、データは正しくファイルに書き込まれます。

すべてのモードの変更を以下に示します。

  • 古いプログラムを開いたときには、プログラムが保存されたときのモードに応じて、VEE 3またはVEE 4のいずれかのモードになります。[1 2 3]のような（カンマのない）配列構文が使用されている式は、プログラムがロードされたときに再解釈され、カンマを使用するように自動的に変更されます。

  • Formulaオブジェクトで、lib.func(a,b) = RightHandExprのような新しい構文が使用可能になりました。

これはすべてのモードで正しく解釈されますが、Standardモードのみで正しく実行されます（VEE 4とVEE 3では実行時にエラーになります）。これにより、モードを変更したときのインポートされたライブラリのグローバル名前空間の問題を修正できます。

  • UNIXプログラムはStandardモードにすることができます。これにより、グローバル名前空間が上記のように影響されます。ただし、ActiveXメニュー項目は、UNIXではサポートされないので存在しません。ActiveXをサポートするHP VEEの関数（CreateObject()など）を呼び出すプログラムはエラーになります。Object変数型が宣言されたStandardモードのプログラムは、UNIXにロードできますが、正しく実行されません。

Select Function

このダイアログ・ボックスは、[Function & Object Browser]（[Device]メニュー）に名前が変更され、既存の演算子／関数に加えてActiveXオートメーションおよびコントロールのサポートが追加されました。UNIXでは[Function Browser]です。詳細については、「Function and Object Browser」と、『HP VEE Advanced Programming Techniques』の「Using ActiveX Objects and Controls」を参照してください。

拡張クリップボード・サポート

HP VEEから、ビットマップ描画をサポートする他のWindowsアプリケーションに、オブジェクトを切り取り／コピー／貼り付けできます。従来は、HP VEEセッション内部でのみオブジェクトの切り取り／コピー／貼り付けが可能でした。切り取り／コピーするオブジェクトを1つまたは複数選択し、HP VEEの[Edit]メニューまたはツールバーを使って、オブジェクトをクリップボードに格納します。[Copy]メニュー項目は、UserObjectおよびUserFunctionのオブジェクト・メニューにも追加されています。

RunTimeプログラムのセキュリティの向上

これは.vxeファイルで利用できます。プログラムのRunTimeバージョンをバイナリ・モードで保存することにより、ファイル・サイズを縮小し、プログラムのセキュリティを向上させられるようになりました（[File] => [Save Secured RunTime Version]）。[Default Preferences]の[General]タブで、[Binary RunTime File Format]オプションがデフォルトでチェックされています。このボックスのチェックを外すと、ファイルはASCIIで保存されます。さらにセキュリティを高めるため、HP VEEでは、.vxeファイルがバイナリ・フォーマットで保存されているかどうかに関わらず、.vxeファイルを別のプログラムにマージできなくなりました。.vxeファイルとして保存されたライブラリをインポートすることはできます。

HP VEEヘルプ

情報へのアクセスが容易になります。

  • プログラム中のオブジェクトのヘルプは、HP VEEが実行中でないときにF1キーを押すことにより表示できます。プログラムの詳細ビューでF1を押すと、最後に選択されたオブジェクトのヘルプ項目が表示されます。それ以外の場合、HP VEEヘルプ目次ウィンドウが表示されます。

  • [Help]メニューに有用なWebサイトへのリンクが追加されました（Windowsのみ）。

  • HP VEEヘルプ目次ウィンドウに、「HP VEEサンプル・プログラム・ガイド」という新しい見出しが加わりました。これには、HP VEEに付属しているサンプルの一覧と、ヘルプからサンプルを直接開くためのリンクが記載されています。


概要

VEEでは、次のような方法で計測器を制御できます。

Direct I/Oオブジェクトは、サポートされているさまざまなインタフェース経由でコマンドを伝達したりデータを受け取ることができます。

VXI plug&play ドライバは、C関数を呼び出して計測器を制御するために使用します。Agilent Technologiesおよび計測器をサポートするメーカから提供されています。

NIデータ収集ライブラリは、National Instruments PXI/PCIカードに接続されている計測器の制御に用いることができます。SCXIサポートも提供されています。

「パネル」ドライバは、計測器をコンピュータ画面から制御するための簡単なユーザ・インタフェース（フロント・パネル）を提供します。VEEパネル・ドライバでパラメータを変更すると、計測器の対応するステートが変化します。パネル・ドライバは、Agilent TechnologiesによってVEEと共に提供され、さまざまなメーカから提供されている450以上の計測器をサポートします。

I/OライブラリをインポートしてPCプラグイン・ボードを制御できます。インポートしたライブラリからは、Callオブジェクトを使用して関数を呼び出すことができます。これらのライブラリは、通常はDLL（ダイナミック・リンク・ライブラリ）として提供されます。

パネル・ドライバ

Agilent VEEには、さまざまな計測器メーカ用に450以上のパネル・ドライバが用意されています。パネル・ドライバはVEEプログラム内に表示される画面を使って動作しますが、この画面では対応する物理計測器の設定を制御します。パネル・ドライバは、大変使いやすく、開発時間を大幅に短縮します。下の図は、パネル・ドライバの例です。

I/Oライブラリを使用したPCプラグイン・ボード制御

I/Oライブラリは、通常PCプラグイン・ボード用のダイナミック・リンク・ライブラリ（DLLファイル）としてPCプラグイン・ボードのメーカから提供されます。VEEではCallオブジェクトでライブラリ関数を呼び出すことによってPCプラグイン・ボードを制御できます。下の図は、VEEで関数を使用できるようにするImport Libraryオブジェクトの例です。

NIデータ収集ライブラリ

National Instrumentsのデータ収集ライブラリへは、VEE内からアクセスできます。サポートされているライブラリは、niDMM、niSWITCH、niFGEN、niSCOPE、NIDAQです。VEEのniDMM ConfigureMeasurementトランザクションの例については、下の図を参照してください。

VXI plug&playドライバ

VXI plug&playドライバは、計測器メーカまたはAgilent Technologiesによって提供されます。Agilent Technologiesが提供するVXI plug&playドライバのリストについては、VEE説明書または VXIplug&playの概要を参照してください。そのほかのVXI plug&playドライバについては計測器メーカにお問い合せください。VEEでは、VXIplug&playドライバを呼び出すことによって計測器を制御できます。 下の図は、VEEからVXIplug&playドライバを呼び出している例です。

そのほかのI/O機能

1 VEEのすべてのI/O機能については[I/O]  [image] [Advanced I/O]のサブメニュー、[Interface Operations]、[Instrument Event]、[Interface Event]、および[Multiinstrument Direct I/O]で調べることができます。

2 I/Oメニューでは、Agilent IO Monitorを使用してデバッグを行うためにバス・アクティビティを表示、印刷、または保存できます。

3 VEEには、プログラムによって計測器を検索できるActiveXオートメーション・サーバが含まれています。

4 I/O構成は、実行時にプログラムによって変更することもできます。

関連項目

計測器の設定方法

パネル・ドライバの使用法

Direct I/Oの使用法

PCプラグイン・ボードの使用法

VEEでのNIデータ収集の使用法

IVI-COMおよびInstrument Manager

VXIplug&playドライバの使用法

VEEにおけるActiveXオートメーションの使用法


Agilent VEEにおけるActiveXオートメーション

ActiveXオートメーションは、VEEがMS Excel、MS Word、MS Accessなどのオートメーション・サーバ・アプリケーションのオートメーション・コントローラとして機能する能力を指します。例題では、MicrosoftのActiveX技術を実地に利用して、テストと計測のプログラムに関するレポートを生成します。

関連項目:例題6-1：Agilent VEEデータのMS Excelへの送信方法

例題6-2：Agilent VEE→MS Excelテンプレートの作成方法

例題6-3：MS Wordを使ってAgilent VEEレポートを表示する方法


サポートI/Oインタフェース

下の表は各プラットフォームでサポートされているI/Oインタフェースをリストしたものです。

プラットフォーム | サポートI/Oインタフェース
Windows Vista、Windows 2000およびWindows XP | GPIB、Serial、GPIO、USB、TCP/IP、NIDAQ、VXI


Code Completion

Code Completionを使用するには

Code Completionを使うと、[Code Completion]ウィンドウ（下図）を通じて、有効なメンバ、プロパティ、変数にすばやくアクセスできます。

Code Completionを起動するには

  • Code Completionの自動起動

  1. Formulaボックスでの入力中には、[Code Completion]ウィンドウが自動的に表示され、有効なすべての選択肢とその簡単な説明を表示します。これをインスタント・コンプリーションと呼びます。

インスタント・コンプリーションでは次の選択肢が使用可能です。

        • 変数（グローバル、コンテキストにローカル、ライブラリにローカル）

        • VEE定数

        • 端子（現在のFormulaオブジェクトの入力端子と出力端子を含みます。出力端子"Result"は含まれません）。

        • 組み込み関数

        • .NET名前空間およびクラス

        • COM定数

  2. Formulaオブジェクト内でオブジェクト（OKボタン、Toggleコントロール、.NETオブジェクト、COMオブジェクトなどのVEEオブジェクト）の名前の後ろに"."を入力すると、[Code Completion]ウィンドウが自動的に表示され、そのオブジェクトのすべてのメンバまたはプロパティを表示します。[Code Completion]ウィンドウの例を次に示します。arraylistは.NETオブジェクトです。arraylistのすべてのメンバが[Code Completion]ウィンドウに表示されます。

VEEオブジェクト（OKボタン、Labelなど）のDeclared Nameプロパティを設定する場合、そのVEEオブジェクトのプロパティも[Code Completion]ウィンドウに表示されます。Declared Nameプロパティの詳細については、プログラムのプロパティを参照してください。

  3. '='を使って名前付きオブジェクトのカラー・プロパティを設定する場合、または'=&rsquo;を使って既定義のCOM Constant定数であるCOMオブジェクトのプロパティの値を設定する場合、または'=&rsquo;を使って.NETオブジェクトの列挙型のプロパティの値を設定する場合、'='を入力したときに[Code Completion]ウィンドウが表示され、使用可能なすべての選択肢を示します。下の図で、XYSinは名前付きオブジェクトです。すべてのプロパティが[Code Completion]ウィンドウに表示されます。

下の図で、g_ActiveMovieはCOMオブジェクトです。そのプロパティAppearanceはCOM定数です。'='を入力したときに[Code Completion]ウィンドウが表示されます。

下の図で、Buttonは.NETオブジェクトです。そのプロパティAnchorは列挙型です。'='を入力したときに[Code Completion]ウィンドウと名前空間が表示されます。

  • Code Completionの手動起動

編集カーソルを式フィールドに置いて[Ctrl+スペース]を押すと、[Code Completion]ウィンドウが表示されます。使用可能なすべての選択肢が[Code Completion]ウィンドウに表示されます。現在使用可能な選択肢がない場合は、[Code Completion]ウィンドウは表示されません。次の図では、[Ctrl+スペース]を押すと[Code Completion]ウィンドウが表示されます。

変数名または名前空間名の入力の途中で[Code Completion]ウィンドウを起動すると、使用可能なすべての変数と.NET名前空間のリストが表示されます。

コードを完成するには

[Code Completion]ウィンドウが表示された状態で、選択肢をダブルクリックするか、Tabキーを押すか、選択肢が選択された状態でEnterキーを押すと、その選択肢が選択されて式が完成します。選択肢を手動で入力することもできます。この場合、入力中に最もよく一致する選択肢が強調表示されます。次の図では、Conを入力したときに、Containsが強調表示されます。選択肢が選択されたときには、その選択肢の簡単な説明が表示されます。

.

注記

VEEのCode Completionはデフォルトで有効になっています。無効にするには、[File] => [Default Preferences]の[General]タブを使用します。

[Default Preferences]ダイアログ・ボックスでは、組み込み関数またはCOM定数に対するCode Completionのサポートの有効／無効を切り替えることもできます。

関連項目

Code Insight


Code Insight

Formulaオブジェクトで関数を入力する際には、Code Insightによって[Code Insight]ウィンドウが表示され、パラメータを含む完全な関数プロトタイプが提示されます。[Code Insight]ウィンドウはネストされた関数に対しても表示されます。

Code Insightを起動するには

Formulaオブジェクトで関数名（VEE UserFunction名、.NETメソッドなど）の後ろに開き括弧を入力すると、[Code Insight]ウィンドウ（黄色のツールヒント）が表示されます。戻り値とパラメータを含む完全な関数プロトタイプが[Code Insight]ウィンドウに表示されます。[Code Insight]の詳細レベルはさまざまです。例えば、.NET関数の詳細な説明が表示されるのは、.NETアセンブリに独自のXMLドキュメント・ファイルが付属している場合に限られます。現在のパラメータは太字で表示されます。下の図を参照してください。

"2 of 9 METHOD Int32 IndexOf (System.Char value)"が[Code Insight]ウィンドウに表示されます。

'2 of 9'は、"IndexOf"という同じ名前を持つメソッドが9つあり、これが2番目のものであることを示します。9つのメソッドをすべて調べるには、[Code Insight]ウィンドウで上または下の矢印を押します。Int32は戻り値です。このメソッドにはパラメータが1つあります。

[Code Insight]ウィンドウを消すには

[Code Insight]ウィンドウが表示されているときに、ESCキーを押すか、閉じ括弧を入力すると、[Code Insight]ウィンドウは消えます。カーソルをカンマまたは左端の開き括弧を超えて動かしても、ウィンドウは消えます。

関数の入力中に[Code Insight]ウィンドウを消した後でまた見たくなった場合は、CTRL+SHIFT+スペースを押します。

注記

Code Insight機能はデフォルトで有効になっています。無効にするには、[File] [image] [Default Preferences]の[General]タブを使用します。

Code Insightがサポートするオブジェクト

  • .NETオブジェクトのメソッド

  • ローカルUserFunction

  • インポートされたUserFunction

  • 組み込み関数

  • インポートされたリモート関数

  • インポートされたコンパイル済み関数

  • COMオブジェクト

関連項目

Code Completion


キーワードと定数

VEEのキーワードと定数

キーワード

キーワードはAgilent VEEによって予約されており、オブジェクトや端子の名前に使用したり、I/Oトランザクションで使用したりすることはできません。

次の表は、オブジェクトまたは端子の名前に使用できないすべてのキーワードの一覧です。

AND | ASAWF | ASBOOLEAN | ASCOMPLEX | ASCOORD
ASDOUBLE | ASFS | ASINT | ASINT16 | ASINT32
ASINT64 | ASINTEGER | ASLONG | ASLONGINT | ASPCOMPLEX
ASREAL | ASREAL32 | ASREAL64 | ASSHORT | ASSPECTRUM
ASSTR | ASSTRING | ASTEXT | ASUINT8 | ASWAVEFORM
Builtin | ByRef | COORD | DIV | Main
MAXINT | MAXINT16 | MaxInt16 | MAXINT32 | MaxInt32
MAXINT64 | MaxInt64 | MaxLong | MAXLONG | MaxShort
MAXSHORT | Me | MinInt | MININT | MININT16
MinInt16 | MinInt32 | MININT32 | MinInt64 | MININT64
MOD | NOT | OR | PI | SET
XOR | XYZZY |  |  |

次の表は、I/Oトランザクションに使用できないすべての予約語の一覧です。

ABORT | ACK | ALL | ARRAY | BEL
BINARY | BINBLOCK | BOOL | BOOLEAN | BREAK
BS | BYTE | CAN | CASE | CHAR
CLEAR | CLOSE | CLOSEREAD | CLOSEWRITE | CMD
CMND | CONTAINER | COORD | COUNT | CPX
CR | CTL | CTS | DATA | DATAREADY
DATE | DC1 | DC2 | DC3 | DC4
DCL | DEG | DELETE | DELTIME | DLE
DMY | DSR | DTR | ECL | EM
ENQ | EOI | EOL | EOT | EQUAL
ERR | ESC | ETB | ETX | EXCLUDE
EXECUTE | EXT | FF | FIX | FS
FW | GET | GRAD | GS | GTL
H12 | H24 | HEX | HM | HMS
HT | INCLUDE | INCR | INT | INT16
INT32 | INT64 | INTERVAL | IOCONTROL | IOSTATUS
ITEM | LF | LISTEN | LJ | LLO
LOCAL | LOCALLOCKOUT | LOCK | MASK | MAXFW
MEM | MLA | MSG | MTA | NAK
NOEND | NOP | NUL | OCT | OF
OFF | ON | PASS_CONTROL | PCTL | PCX
PPC | PPU | PREFIX | PULSE | QSTR
RAD | READ | REAL | REAL32 | REAL64
REG | REMOTE | RESET | REWIND | RJ
RS | SCI | SDC | SEC | SEND
SET | SI | SIGN | SO | SOH
SPD | SPE | SPEC | SPOLL | STATE
STD | STR | STS | STX | SUB
SYN | TALK | TCT | TEXT | TIME
TOKEN | TRIGGER | TTL | UNL | UNLOCK
UNT | US | VT | WAIT | WDMY
WF | WRITE | RTS |  |

注記

デフォルトでは、TrueとFalseはBooleanデータと見なされます。TrueおよびFalseをオブジェクト名に使用することは推奨されません。

定数

次の表は、Agilent VEEの定数とその値の一覧です。

定数 | 値
MaxInt | 2147483647
MinInt | -2147483648
MaxInt16 | 32767
MinInt16 | -32768
MaxInt32 | 2147483647
MinInt32 | -2147483648
MaxInt64 | 9223372036854775807
MinInt64 | -9223372036854775808
MaxLong | 2147483647
MaxShort | 32767
PI | 3.142
MaxInt | 2147483647


NI-DAQmx

VEEバージョン8.0以降、VEEはNational InstrumentsのNIDAQmxライブラリをサポートします。

VEEのNI-DAQmxドライバは、VEEの他のNIDAQドライバ（NI-DMM、NI-SCOPE、NI-SWITCH、NI-FGEN、Traditional NIDAQ）と同様に動作します。.To/From NI-DAQmxトランザクション・オブジェクトを使うと、National InstrumentsのNI-DAQmxライブラリのほとんどの機能を利用できます。これらのトランザクションは、National InstrumentsのNI-DAQmx C Referenceヘルプ・ファイルに記載された関数と1対1に対応しています。トランザクション・リストの参照中に[Function Help]ボタンを押すと、その関数のヘルプ・ページに移動します。ユーザは、NI-DAQmx APIのプログラミングと、National Instruments DAQmxの「物理チャネル構文」を理解していると仮定されます。

VEEのNI-DAQmxドライバは、VEEの他のNIDAQドライバと重要な点で異なっています。他のドライバはVEEのInstrument Managerの特定のデバイスと結びついているのに対して、NI-DAQmxはそうではありません。NI-DAQmxトランザクションでは、NIの「物理チャネル構文」を入力することにより、同じトランザクション・オブジェクトで複数のデバイス／ポートをプログラムできます。このため、「物理チャネル」パラメータのデフォルト値（"Dev1/Line0"など）は、単に説明としての役割（パラメータにどのような文字列を使用すべきか）を果たします。適切な文字列を入力するには、National InstrumentsのDAQmxの「物理チャネル構文」と使用可能な測定機能について十分に理解しておく必要があります。

関連項目

To/From NIDAQ、NI-FGEN、NI-SCOPEのFetch/Read関数、VEEでのNIデータ収集の使用方法


Visafication

VISAインタフェースへの標準化

I/Oデバイスの宣言／使用の際に、古い一貫性のないI/Oデバイス（SICLとVISAの混在）から、より一貫性のある方法（VISA）に移行します。従来の方法との互換性は保たれますが、新しいスタイルのデバイスの使用を推奨します。

Instrument Managerは、NIDAQデバイスを除いて、ACE（Agilent Connection Expert）で設定された計測器だけを検出します。ACEで計測器に対して必要な設定作業を行った後、VEE Instrument ManagerでFind Instrumentsを押すことにより、計測器が接続されている間はそれ以上の設定なしでこの計測器を検出できます。

デフォルトでは、Agilent VEE 8.0はSICLスタイルのデバイスをInstrument Managerに追加しません。従来のデバイスを検出するには、[Default Preference]ダイアログ・ボックスの[IO]タブで[Enable Pre 8.0 Legacy IO]項目をチェックします。

注記

Agilent VEE 7.5では、Instrument Managerで[Find Instruments]を実行すると、常にSerialインタフェースが検出されます。Agilent VEE 8.0では、シリアル・デバイスが接続されている場合に限ってSerialインタフェースが検出されます。

関連項目

Instrument Manager