(57)【要約】【課題】  複数の測定モジュールを備え、各測定モジュールのプログラムを簡単に構築できる測定システムを提供する。【解決手段】  第１と第２の測定モジュール１２０、１３０と、それらを制御するコントローラ１０２とを備え、該コントローラは、第１のプロセッサと、第１のメモリと、第１のタイマとを備え、第１の測定モジュールは、第２のプロセッサと、第２のメモリと、第２のタイマとを備え、第２の測定モジュールは、第３のプロセッサと、第３のメモリと、第３のタイマとを備え、前記コントローラは、前記第１の測定モジュールで実行される第１の機能シーケンスの１以上の実行ステップを含む第１の機能カラムと、前記第２の測定モジュールで実行される第２の機能シーケンスの１以上の実行ステップを含む第２の機能カラムであって前記第１の機能カラムに隣接する第２の機能カラムとを備える、測定システム１００。【選択図】  図１
2019016095.tif 000002
【特許請求の範囲】
【請求項１】
第１の測定モジュールと第２の測定モジュールとコントローラとを備える測定システム上で実行されると該第１の測定モジュールと該第２の測定モジュールとを制御するものであるプログラムを作成するための方法であって、該方法は、
前記第１の測定モジュールの機能シーケンスを記述するための第１の機能カラムを設けるステップと、
機能シーケンスライブラリから該第１の測定モジュールで使用する第１の機能シーケンスを選択するステップと、
前記選択した第１の機能シーケンスを前記第１の機能カラムに表示させるステップと、
前記第１の機能カラムの第１の隣接方向に、前記第２の測定モジュールの機能シーケンスを記述するための第２の機能カラムを隣接して設けるステップと、
前記機能シーケンスライブラリから前記第２の測定モジュールで使用する第２の機能シーケンスを選択するステップと、
前記選択した第２の機能シーケンスを前記第２の機能カラムに表示させるステップと
を備え、
前記第１の機能シーケンスは、前記第１の測定モジュールに関して実行される１以上の第１の実行ステップを備え、前記第２の機能シーケンスは前記第２の測定モジュールに関して実行される１以上の第２の実行ステップを備える方法。
【請求項２】
前記１以上の第１の実行ステップ又は前記１以上の第２の実行ステップは、マクロ実行ステップ又はサブルーチンの実行ステップを含む、請求項１に記載の方法。
【請求項３】
前記１以上の第１の実行ステップと前記１以上の第２の実行ステップの各々は、前記第１又は第２の機能カラムでは、略四角形又は楕円のブロックで表わされる、請求項１に記載の方法。
【請求項４】
前記１以上の第１の実行ステップを表す１以上の第１の略四角形又は楕円のブロックと、前記１以上の第２の実行ステップを表す１以上の第２の略四角形又は楕円のブロックは、それぞれ、時間の経過に従って、前記第１及び第２の機能カラムの上又は下の一方から他方に向けて配置される、請求項３に記載の方法。
【請求項５】
前記第１の機能シーケンスは、前記第１の機能シーケンスの始まりを示す第１の上端のシンボルと、前記第１の機能シーケンスの終わりを示す第１の下端のシンボルとを備え、前記第２の機能シーケンスは、前記第２の機能シーケンスの始まりを示す第２の上端のシンボルと、前記第２の機能シーケンスの終わりを示す第２の下端のシンボルとを備え、
前記１以上の第１の略四角形又は楕円のブロックは、前記第１の機能シーケンスの前記第１の上端のシンボルと前記第１の下端のシンボルとを結ぶ第１の生存線の上に重なって配置され、前記１以上の第２の略四角形又は楕円のブロックは、前記第２の機能シーケンスの前記第２の上端のシンボルと前記第２の下端のシンボルとを結ぶ第２の生存線の上に重なって配置される、請求項４に記載の方法。
【請求項６】
前記１以上の第１の実行ステップは第３の実行ステップを備え、前記１以上の第２の実行ステップは第４の実行ステップを備え、該第３の実行ステップと該第４の実行ステップは略等しい高さに配置され、該第３の実行ステップと該第４の実行ステップは第１の補助線で接続されて、前記第３の実行ステップと前記第４の実行ステップとが前記測定システムにおいて同期して実行を開始することを指定する請求項１に記載の方法。
【請求項７】
前記第１の補助線と前記第４の実行ステップの間に第１のディレイ指定ステップを備え、前記第３の実行ステップと前記第１のディレイ指定ステップとが前記測定システムにおいて同期して実行を開始することを指定する請求項６に記載の方法。
【請求項８】
前記１以上の第１の実行ステップは第５の実行ステップを備え、該第５の実行ステップを表す第１の略四角形又は楕円のブロックの右側に、第２のディレイ指定ステップを表す第２の略四角形又は楕円のブロックの左側が当接して配置されることによって、該第５の実行ステップ又は該第２のディレイ指定ステップのうち、いずれか遅い方の実行が終わるまで待つことを指定する、請求項３に記載の方法。
【請求項９】
前記１以上の第１の実行ステップは第６の実行ステップを備え、該第６の実行ステップを示す略四角形又は楕円のブロックの上側から、前記第１の機能カラムの前記第１の隣接方向とは反対方向の第２の隣接方向に隣接する大域制御用の列にわたって水平な第２の補助線を表示し、該大域制御用の列中の該第２の補助線の端部の近傍に表示される第１の経過時間を指定することにより、前記プログラムの開始から該第６の実行ステップの開始までの経過時間を指定する、請求項３に記載の方法。
【請求項１０】
前記第１の機能カラムに対して、前記第１の機能カラムの前記第１の隣接方向とは反対方向の第２の隣接方向に隣接する大域制御用の列に、大域制御のループ又は大域制御の条件分岐を示す第１の制御シンボルであって、高さの異なる少なくとも第１の先端と第２の先端とを備える第１の制御シンボルを、前記第１の先端の高さから前記第２の先端の高さで規定される範囲に、前記第１の実行ステップの高さが含まれるように配置して、前記第１の実行ステップを大域制御の前記第１の制御シンボルの動作に関連付けて指定する請求項１に記載の方法。
【請求項１１】
前記第１の制御シンボルは、少なくとも前記第１の先端と前記第２の先端から、前記第１の機能カラム及び前記第２の機能カラムにわたって水平に延在する、少なくとも第２の補助線及び第３の補助線を表示して、前記第１の制御シンボルの動作に関連付けられた実行ステップを明確にする請求項１０に記載の方法。
【請求項１２】
前記大域制御用の列において、ループ又は条件分岐を示す第２の制御シンボルであって、高さの異なる少なくとも第３の先端と第４の先端とを備える第２の制御シンボルを、該第３の先端と該第４の先端との間に、前記第１の制御シンボルが含まれるように配置して、前記第１の制御シンボルを前記第２の制御シンボルの動作に関連付けて指定する請求項１１に記載の方法。
【請求項１３】
前記第１の機能カラムにおいて、ループ又は条件分岐を示す第３の制御シンボルであって、高さの異なる少なくとも第５の先端と第６の先端とを備える第３の制御シンボルを、該第５の先端と該第６の先端との間に、前記第１の実行ステップが含まれるように配置して、前記第１の実行ステップを前記第３の制御シンボルの動作に関連付けて指定する請求項１に記載の方法。
【請求項１４】
前記第１の機能カラムにおいて、ループ又は条件分岐を示す第４の制御シンボルであって、高さの異なる少なくとも第７の先端と第８の先端とを備える第４の制御シンボルを、該第７の先端と該第８の先端との間に、前記第３の制御シンボルが含まれるように配置して、前記第３の制御シンボルを前記第４の制御シンボルの動作に関連付けて指定する請求項１３に記載の方法。
【請求項１５】
第１の測定モジュールと、第２の測定モジュールと、該第１の測定モジュールと該第２の測定モジュールとを制御するコントローラとを備える測定システムであって、該測定システムは、
前記コントローラが、第１のプロセッサと、該第１のプロセッサからアクセス可能な第１のメモリと、該第１のプロセッサからアクセス可能な第１のタイマとを備え、
前記第１の測定モジュールが、第２のプロセッサと、該第２のプロセッサからアクセス可能な第２のメモリと、該第２のプロセッサからアクセス可能な第２のタイマとを備え、
前記第２の測定モジュールが、第３のプロセッサと、該第３のプロセッサからアクセス可能な第３のメモリと、該第３のプロセッサからアクセス可能な第３のタイマとを備え、
前記第１のプロセッサと前記第２のプロセッサと前記第３のプロセッサとは、データ線により互いに接続され、
前記第１のタイマと前記第２のタイマと前記第３のタイマとは、同期制御線により互いに接続され、
前記コントローラは、
前記第１の測定モジュールで実行される第１の機能シーケンスの１以上の実行ステップを含む第１の機能カラムと、
前記第２の測定モジュールで実行される第２の機能シーケンスの１以上の実行ステップを含む第２の機能カラムであって、該第２の機能カラムは前記第１の機能カラムの第１の隣接方向に隣接する、第２の機能カラムと
を備える測定システム。
【請求項１６】
前記第１の機能シーケンスの第１の実行ステップと、前記第２の機能シーケンスの第２の実行ステップとは、前記第１の機能カラムと前記第２の機能カラムとにおいて略等しい高さに配置され、互いに同期して実行されることを示す第１の補助線で接続されて、同期実行されることが指定され、
前記第１のプロセッサは、前記第１のタイマに、前記第２のタイマと前記第３のタイマとを制御させて、前記第１の実行ステップを前記第２のプロセッサに、前記第２の実行ステップを前記第３のプロセッサに、同期して実行させる、請求項１５に記載の測定システム。
【請求項１７】
非一時的コンピュータ可読プログラム記録媒体であって、前記コントローラ上で実行されると、請求項１に記載の方法を実行する命令を記憶するコンピュータ可読記録媒体。
【請求項１８】
非一時的コンピュータ可読プログラム記録媒体であって、前記コントローラ上で実行されると、請求項６に記載の方法を実行する命令を記憶するコンピュータ可読記録媒体。
【請求項１９】
非一時的コンピュータ可読プログラム記録媒体であって、前記コントローラ上で実行されると、請求項７に記載の方法を実行する命令を記憶するコンピュータ可読記録媒体。
【請求項２０】
非一時的コンピュータ可読プログラム記録媒体であって、前記コントローラ上で実行されると、請求項９に記載の方法を実行する命令を記憶するコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明の従来技術の１つとして、汎用の手続き型プログラミング言語を用いて、測定システムの各機能モジュールを制御するコマンドまたはＡＰＩ（Application Programming Interface）を組み合わせてシーケンスを記述し、制御するシステムが存在する。この従来技術では、サブルーチンなどの抽象化や、ループ及び／又は条件分岐などの様々な制御構造を利用することができる。このようなシステムでのプログラム例として、非特許文献１のｐ１２−１３の４．４章に掲載のプログラムを本明細書の図２７Ａ、２７Ｂに示す。
【０００２】
別の従来技術としては、グラフィカルプログラミング言語上で測定器の機能を組み合わせてシーケンシングするシステムが、存在する。ＬａｂＶＩＥＷ（非特許文献２）やＶＥＥ（非特許文献３）、ＢｅｎｃｈＶｕｅ（非特許文献４）などが該当する。この従来技術では、汎用プログラミング言語の柔軟性の一部に制約を加える代わりに、グラフィカルなユーザインタフェースで制御シーケンスをより直感的に図示することができる。図２８にＬａｂＶＩＥＷ上で複数の測定リソースを用いた場合の測定プログラムの例を示す。なお、グラフィック上で表示されるプログラミングステップの内部は非特許文献１のような手続型プログラミング言語を用いて記述されたサブルーチンが使用される。
【０００３】
さらに別の従来技術として、あらかじめプログラムをロードした複数の測定器を、シーケンサが発生するトリガー信号でコントロールするシステムが存在し、多くのＡＴＥ（Automated Test Equipment）がこれに該当する。特許文献１はその一例である。別の例として、図２９に、非特許文献５のＦｉｇｕｒｅ  １１に示されたベクターエディタでのプログラミング例を示す。あらゆる制御がベクターエディタなどの時間軸を基準としたチャート上に並べられる。特に多くの測定リソースによる正確な同期かつ高速な動作が期待されているため、多くの場合ＡＴＥは専用ハードウェアを備えたシーケンサを用いて構築されている。専用ハードウェアを前提にしているため固有の制約が多く、そのためプログラム作成においては、シーケンサの各機能の取り扱いは難しい部類に入る。
【０００４】
さらに別の従来技術として、特許文献２では、測定システムに適用できる分散プログラミングの手法を提案している。図３０に、特許文献２のＦＩＧ．７に示されるプログラミング例を示す。実施例の一つとして２次元のスプレッドシートを用いて時間軸が異なる測定器または測定モジュールの動作を表現し、それぞれの測定器または測定モジュールの制御を、対応する列に分離して記述するユーザインタフェースが示されている。これにより、特定の動作（タスク）がどの測定器または測定モジュールに所属するかがテーブル上で明確になり、またタスクの前後関係が把握しやすくなる。
【０００５】
また非特許文献１〜非特許文献４のようなコマンドベース制御のアーキテクチャをとるシステムにおいても、予め設定しておいた測定器又は測定（機能）モジュールを何らかの信号ソースで発生したトリガー信号によってタイミング制御する実装も存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許公開第２０１１／００５７６６３号公報
【特許文献２】米国特許公開第２００８／０２４３７３２号公報
【非特許文献】
【０００７】
【非特許文献１】Agilent Technologies, Inc.、Agilent IVI-COM driver and VISA-COM I/O programming examples in Microsoft Visual C# Application Note, 5991-0603EN, ２０１２年７月３０日
【非特許文献２】NATIONAL INSTRUMENTS、LabVIEW Getting Started with LabVIEW,373427J-01, ２０１３年６月
【非特許文献３】Keysight Technologies, Inc.、Keysight Technologies VEE Pro 9.32 Data Sheet, 5990-9117EN, ２０１４年８月３日
【非特許文献４】Keysight Technologies, Inc.、Keysight Technologies BenchVue Software v3.7 (BV0000A) Technical Overview, 5991-3850EN, ２０１６年１１月３日
【非特許文献５】National Instruments、PXI Digital Pattern Instruments Bring Semiconductor ATE-Class Digital to the Open PXI Platform, [online]、２０１７年２月１４日、［平成２９年２月２０日検索］、インターネット（URL:http://www.ni.com/whitepaper/53237/en/）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明では、例えば特許文献１あるいは非特許文献５のような大規模なＩＣテスタほどではない、それほど多数でない複数の測定モジュール（または複数の測定器である場合もある）を組み合わせて測定を行う測定システムまたはそこで提供される方法において、各測定モジュールごとのプログラムを記述する機能カラム（function column）を複数左右に並べたダイアグラムを用いて、簡単に各測定モジュールのプログラムを構築できるプログラミング環境を提供することを目的とする。一例として測定モジュールの数は５個までとすることができる。
【０００９】
あるいは、本発明では、ユーザが、測定モジュールごとに予め定義された単純又は基本的なシーケンスをもっぱら再利用することでプログラミングを行い、複合的な同期制御シーケンスを少ない手数で合成することができるプログラミング環境を提供することを目的とする。
【００１０】
あるいは、本発明では、ユーザが、シーケンスのカスタマイズとして、各測定モジュールの制御ステップの前後の順序関係を、左右に並んだ機能カラム上で縦方向に規定される時間軸上での位置を異ならせるように配置することにより規定し、時間軸上の同じ高さに配置することで同期実行を規定することができるプログラミング環境を提供することを目的とする。
【００１１】
あるいは、本発明では、左右に並んだ機能カラムの一つ又は複数にわたる制御構造シンボルを記述することで、ループ制御又は条件分岐の制御を記述することができるプログラミング環境を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明による方法は、第１の測定モジュールと第２の測定モジュールとコントローラとを備える測定システム上で実行されると該第１の測定モジュールと該第２の測定モジュールとを制御するようなプログラムを作成するための方法であって、該方法は、
前記第１の測定モジュールの機能シーケンスを記述するための第１の機能カラムを設けるステップと、
機能シーケンスライブラリから該第１の測定モジュールで使用する第１の機能シーケンスを選択するステップと、
前記選択した第１の機能シーケンスを前記第１の機能カラムに表示させるステップと、
前記第１の機能カラムの第１の隣接方向に、前記第２の測定モジュールの機能シーケンスを記述するための第２の機能カラムを隣接して設けるステップと、
前記機能シーケンスライブラリから前記第２の測定モジュールで使用する第２の機能シーケンスを選択するステップと、
前記選択した第２の機能シーケンスを前記第２の機能カラムに表示させるステップと
を備え、
前記第１の機能シーケンスは、前記第１の測定モジュールに関して実行される１以上の第１の実行ステップを備え、前記第２の機能シーケンスは前記第２の測定モジュールに関して実行される１以上の第２の実行ステップを備える。
【００１３】
本発明による方法は、前記１以上の第１の実行ステップ又は前記１以上の第２の実行ステップが、マクロ実行ステップ又はサブルーチンの実行ステップを含む態様と、前記１以上の第１の実行ステップと前記１以上の第２の実行ステップの各々が、前記第１又は第２の機能カラムでは、略四角形又は楕円のブロックで表わされる態様と、前記１以上の第１の実行ステップを表す１以上の第１の略四角形又は楕円のブロックと、前記１以上の第２の実行ステップを表す１以上の第２の略四角形又は楕円のブロックが、それぞれ、時間の経過に従って、前記第１及び第２の機能カラムの上又は下の一方から他方に向けて配置される態様とを含む。
【００１４】
本発明による方法は、さらに、前記第１の機能シーケンスが、前記第１の機能シーケンスの始まりを示す第１の上端のシンボルと、前記第１の機能シーケンスの終わりを示す第１の下端のシンボルとを備え、前記第２の機能シーケンスが、前記第２の機能シーケンスの始まりを示す第２の上端のシンボルと、前記第２の機能シーケンスの終わりを示す第２の下端のシンボルとを備え、
前記１以上の第１の略四角形又は楕円のブロックは、前記第１の機能シーケンスの前記第１の上端のシンボルと前記第１の下端のシンボルとを結ぶ第１の生存線の上に重なって配置され、前記１以上の第２の略四角形又は楕円のブロックは、前記第２の機能シーケンスの前記第２の上端のシンボルと前記第２の下端のシンボルとを結ぶ第２の生存線の上に重なって配置される態様を含む。
【００１５】
本発明による方法は、さらに、前記１以上の第１の実行ステップは第３の実行ステップを備え、前記１以上の第２の実行ステップは第４の実行ステップを備え、該第３の実行ステップと該第４の実行ステップは略等しい高さに配置され、該第３の実行ステップと該第４の実行ステップは第１の補助線で接続されて、前記第３の実行ステップと前記第４の実行ステップとが前記測定システムにおいて同期して実行を開始することを指定する態様と、前記第１の補助線と前記第４の実行ステップの間に第１のディレイ指定ステップを備え、前記第３の実行ステップと前記第１のディレイ指定ステップとが前記測定システムにおいて同期して実行を開始することを指定する態様とを含む。
【００１６】
本発明による方法は、さらに、前記１以上の第１の実行ステップは第５の実行ステップを備え、該第５の実行ステップを表す第１の略四角形又は楕円のブロックの右側に、第２のディレイ指定ステップを表す第２の略四角形又は楕円のブロックの左側が当接して配置されることによって、該第５の実行ステップ又は該第２のディレイ指定ステップのうち、いずれか遅い方の実行が終わるまで待つことを指定する態様と、前記１以上の第１の実行ステップは第６の実行ステップを備え、該第６の実行ステップを示す略四角形又は楕円のブロックの上側から、前記第１の機能カラムの前記第１の隣接方向とは反対方向の第２の隣接方向に隣接する大域制御用の列にわたって水平な第２の補助線を表示し、該大域制御用の列中の該第２の補助線の端部の近傍に表示される第１の経過時間を指定することにより、前記プログラムの開始から該第６の実行ステップの開始までの経過時間を指定する態様とを含む。
【００１７】
本発明による方法は、さらに、前記第１の機能カラムに対して、前記第１の機能カラムの前記第１の隣接方向とは反対方向の第２の隣接方向に隣接する大域制御用の列に、大域制御のループ又は大域制御の条件分岐を示す第１の制御シンボルであって、高さの異なる少なくとも第１の先端と第２の先端とを備える第１の制御シンボルを、前記第１の先端の高さから前記第２の先端の高さで規定される範囲に、前記第１の実行ステップの高さが含まれるように配置して、前記第１の実行ステップを大域制御の前記第１の制御シンボルの動作に関連付けて指定する態様と、前記第１の制御シンボルは、少なくとも前記第１の先端と前記第２の先端から、前記第１の機能カラム及び前記第２の機能カラムにわたって水平に延在する、少なくとも第２の補助線及び第３の補助線を表示して、前記第１の制御シンボルの動作に関連付けられた実行ステップを明確にする態様と、前記大域制御用の列において、ループ又は条件分岐を示す第２の制御シンボルであって、高さの異なる少なくとも第３の先端と第４の先端とを備える第２の制御シンボルを、該第３の先端と該第４の先端との間に、前記第１の制御シンボルが含まれるように配置して、前記第１の制御シンボルを前記第２の制御シンボルの動作に関連付けて指定する態様とを含む。
【００１８】
本発明による方法は、さらに、前記第１の機能カラムにおいて、ループ又は条件分岐を示す第３の制御シンボルであって、高さの異なる少なくとも第５の先端と第６の先端とを備える第３の制御シンボルを、該第５の先端と該第６の先端との間に、前記第１の実行ステップが含まれるように配置して、前記第１の実行ステップを前記第３の制御シンボルの動作に関連付けて指定する態様と、前記第１の機能カラムにおいて、ループ又は条件分岐を示す第４の制御シンボルであって、高さの異なる少なくとも第７の先端と第８の先端とを備える第４の制御シンボルを、該第７の先端と該第８の先端との間に、前記第３の制御シンボルが含まれるように配置して、前記第３の制御シンボルを前記第４の制御シンボルの動作に関連付けて指定する態様とを含む。
【００１９】
本発明による測定システムは、第１の測定モジュールと、第２の測定モジュールと、該第１の測定モジュールと該第２の測定モジュールとを制御するコントローラとを備える測定システムであって、該測定システムは、
前記コントローラが、第１のプロセッサと、該第１のプロセッサからアクセス可能な第１のメモリと、該第１のプロセッサからアクセス可能な第１のタイマとを備え、
前記第１の測定モジュールが、第２のプロセッサと、該第２のプロセッサからアクセス可能な第２のメモリと、該第２のプロセッサからアクセス可能な第２のタイマとを備え、
前記第２の測定モジュールが、第３のプロセッサと、該第３のプロセッサからアクセス可能な第３のメモリと、該第３のプロセッサからアクセス可能な第３のタイマとを備え、
前記第１のプロセッサと前記第２のプロセッサと前記第３のプロセッサとは、データ線により互いに接続され、
前記第１のタイマと前記第２のタイマと前記第３のタイマとは、同期制御線により互いに接続され、
前記コントローラは、
前記第１の測定モジュールで実行される第１の機能シーケンスの１以上の実行ステップを含む第１の機能カラムと、
前記第２の測定モジュールで実行される第２の機能シーケンスの１以上の実行ステップを含む第２の機能カラムであって、該第２の機能カラムは前記第１の機能カラムの第１の隣接方向に隣接する、第２の機能カラムと
を備える。
【００２０】
本発明による測定システムは、さらに、前記第１の機能シーケンスの第１の実行ステップと、前記第２の機能シーケンスの第２の実行ステップとは、前記第１の機能カラムと前記第２の機能カラムとにおいて略等しい高さに配置され、互いに同期して実行されることを示す第１の補助線で接続されて、同期実行されることが指定され、
前記第１のプロセッサは、前記第１のタイマに、前記第２のタイマと前記第３のタイマとを制御させて、前記第１の実行ステップを前記第２のプロセッサに、前記第２の実行ステップを前記第３のプロセッサに、同期して実行させる態様を含む。
【００２１】
本発明によるコンピュータ可読記録媒体は、非一時的コンピュータ可読プログラム記録媒体であって、前記コントローラ上で実行されると、上述のいずれかの方法を実行する命令を記憶するコンピュータ可読記録媒体である。
【発明の効果】
【００２２】
本発明による効果の１つは、プログラミングにおける基本的な測定シーケンスの再利用と流通を促進するようになることである。
【００２３】
それにより、本発明によれば、デバイス−測定モジュール間の信号経路の接続及び／又は条件設定、信号の印加及び／又は測定、デバイス−測定モジュール間の信号経路の接続解除（切断）の基本的な測定シーケンスの制御をそれぞれの測定モジュールで定義することができるようになる。こうした基本的な測定シーケンスのバリエーションは、比較的少数である。本発明による測定システムでは、これを多くの応用でそのまま再利用することができる。ユーザがプログラミングとして行なう作業は、基本的な測定シーケンスの選択とそのパラメータの設定、各ステップのタイミングの調節だけである。そのため、測定器のプログラミングについてユーザが覚えることは少なくてよいし、測定プログラムを作成する時間も少なくてすむ。
【００２４】
本発明による別の効果は、実時間軸での制御が簡単にできるようになることである。
【００２５】
すなわち、非特許文献１〜非特許文献４の手続き型制御では、複数の測定モジュールの制御ステップが混在したシーケンスとして記述されるので、個別のステップがどの測定機能に対応しているか判別しにくくなる。本発明によるプログラミング環境を用いれば、測定モジュールごとの縦長の測定シーケンスが横に並ぶダイアグラムとして管理できるため、前後関係と測定機能を整理することができ、ステップの前後関係および測定機能の判別が容易となる。隣り合う個々のステップの前後関係を入れ替えるには、ステップを表現するシンボルを画面上で上下に動かすだけでよい。さらに、測定ステップをシーケンス開始からの実時間指定することもできる。さらに、複数の測定機能でステップを同時に、あるいは固定の時間差で実行するなどの同期動作も可能である。これらの同期動作は、非特許文献１〜非特許文献４の手続き型制御では記述が著しく困難であった（例えば、従来では、外部トリガー機能の設定とトリガー源のセットアップが必要であった。）。他方、手続き型制御の長所である各種のループや条件分岐、抽象化による高度な測定ステップの作成及び利用の利点は本発明によるプログラミング環境でも引き続き利用することができる。
【００２６】
本発明による別の効果は、実施態様によっては、ソフトウェア定義の測定器を提供できるようになることである。
【００２７】
すなわち、本発明によるプログラミング環境を前提にすれば、測定モジュール、すなわち測定器のプログラミングインタフェースの提供のありかたが変化することが考えられる。その結果、ユーザは使いたい機能をより簡単に手に入れられるようになり、提供側はアプリケーションに特化した高機能及び／又は高性能な測定機能を提供しやすい環境を手に入れることができる。基本的な測定シーケンスの再利用と流通が促進され、それにより広範な測定アプリケーションをユーザが簡単に作成できる環境が提供されると、測定器の機能のあり方も変わると考えられる。従来の測定器が電圧、周波数、帯域幅など測定器の内部構成あるいはサブシステムの機能を直接反映した機能をプログラマに見せていたのに対して、本発明を適用した場合には機能の最もポピュラーな単位を「基本的な測定シーケンス」にすることができる。測定システムのユーザの多くが、こうした基本的な測定シーケンスに沿った測定器の使い方をするようになることから、今後は「基本的な測定シーケンス」としてどのような機能を提供するかによって、測定器が特徴付けられることになる。すなわちこれは、ハードウェア内部構成に基づく測定器の定義から、目的志向の「ソフトウェアによる」測定器の定義になることを示している。したがって、ユーザは測定器の内部構造について、必要以上のことは理解しなくてよい。ソフトウェア定義の測定器は、基本的な測定シーケンスを新たに開発し提供することによって特殊な用途に追加で対応していくことも容易である。FPGAなど再構成可能なハードウェアによって新たなアプリケーションに対応することのできる複雑な測定器であっても、ソフトウェアによる高レベルの機能が提供されれば、理解し利用することが容易になると考えることができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態の一つによる測定システムのブロック図である。
【図２Ａ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｂ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｃ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｄ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｅ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｆ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図２Ｇ】本発明の実施形態の一つによる基本ステップのグラフィック表現を示す図である。
【図３Ａ】本発明の実施形態の一つによる機能シーケンスのグラフィック表現を示す図である。
【図３Ｂ】本発明の実施形態の一つによる機能シーケンスのグラフィック表現を示す図である。
【図３Ｃ】本発明の実施形態の一つによる機能シーケンスのグラフィック表現を示す図である。
【図３Ｄ】本発明の実施形態の一つによる機能シーケンスのグラフィック表現を示す図である。
【図４Ａ】本発明の実施形態の一つによる制御構造のグラフィック表現を示す図である。
【図４Ｂ】本発明の実施形態の一つによる制御構造のグラフィック表現を示す図である。
【図４Ｃ】本発明の実施形態の一つによる制御構造のグラフィック表現を示す図である。
【図４Ｄ】本発明の実施形態の一つによる制御構造のグラフィック表現を示す図である。
【図５Ａ】本発明の実施形態の一つによる大域制御構造のグラフィック表現を示す図である。
【図５Ｂ】本発明の実施形態の一つによる大域制御構造のグラフィック表現を示す図である。
【図５Ｃ】本発明の実施形態の一つによる大域制御構造のグラフィック表現を示す図である。
【図５Ｄ】本発明の実施形態の一つによる大域制御構造のグラフィック表現を示す図である。
【図６】本発明の実施形態の一つによる機能カラムダイアグラムの構成を説明する図である。
【図７】本発明の実施形態の一つによるプログラム作成手順を説明するフローチャートである。
【図８】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図９】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１０】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１１】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１２】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１３】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１４】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１５】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１６】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１７】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１８】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図１９】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２０】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２１】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２２】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２３】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２４】本発明の実施形態の一つによる機能カラムダイアグラムにおけるプログラミング例を示す図である。
【図２５】図７のステップ７０４の詳細を説明するフローチャートである。
【図２６】図７のステップ７０６の詳細を説明するフローチャートである。
【図２７Ａ】従来技術の非特許文献１によるプログラム例を示すソースコードの前半部分である。
【図２７Ｂ】図２７Ａに示す従来技術の非特許文献１によるプログラム例を示すソースコードの後半部分である。
【図２８】従来技術の非特許文献２による測定プログラムの例である。
【図２９】非特許文献５のＦｉｇｕｒｅ  １１に示された従来技術によるプログラミング例である。
【図３０】特許文献２のＦＩＧ．７に示された従来技術によるプログラミング例である。
【発明を実施するための形態】
【００２９】
本発明による実施形態について図面を参照して説明する。なお、他の図で同じ機能又は同じ内容の要素を使用している場合には、同じ参照番号が付与されている。
【００３０】
以下の詳細な説明において、本発明による教示を十分に理解してもらうために、限定ではなく、説明のために、具体的な細部を開示する代表的な実施形態が記述される。例示的な実施形態の説明を分かりにくくするのを避けるために、既知のシステム、装置及び方法の説明は省略される場合がある。それにもかかわらず、当業者の理解の範囲内にあるそのようなシステム、装置及び方法は、代表的な実施形態に従って用いることができる。
【００３１】
一般的に、図面及びその中に図示される種々の要素は縮尺通りに描かれていないことが理解される。さらに、添付の図面において示されるような、種々の要素の互いの関係を説明するために、「上」、「下」、「上方」、「下方」、「上側」、「下側」、「左」、「右」、「垂直」及び「水平」等の相対語が用いられる。これらの相対語が、図面において示される向きに加えて、装置及び／又は要素の異なる向きも包含することを意図していることが理解される。例えば、要素が図面における見方に対して反転された場合、例えば、別の要素の「上方にある」と説明された要素は、その時点で、その要素の「下方に」存在することになる。同様に、その要素が図面における見方に対して９０度回転した場合、例えば、「垂直である」と説明された要素は、その時点で、「水平に」存在することになる。
【００３２】
本明細書において定義される或る特定の用語は、特定の実施形態を説明することのみを目的としており、制限することは意図していないことを理解されたい。定義された用語は、本教示の技術分野において一般的に理解され受け入れられているような定義された用語の科学技術関連の意味に加わるものである。
【００３３】
本明細書及び添付の特許請求の範囲において用いられるときに、単数または複数の数量を特定しない用語（例えば、英語表現における'a'、'an'、及び'the'に対応する表現）は、文脈上で他に明確に指示されない限り、単数及び複数の両方の指示物を含む。したがって、例えば、「デバイス」は１つのデバイス及び複数のデバイスを含む。
【００３４】
本明細書及び添付の特許請求の範囲において用いられるときに、用語「おおむね」又は「略」は、その通常の意味に加えて、当業者にとって許容限度又は許容量内にあることを意味する。
【００３５】
下記で説明されるプロセッサは、本明細書において論じられる種々の機能を実行するためにソフトウエア（例えばプログラム）を用いてプログラミングすることができる１つまたは複数のマイクロプロセッサ、あるいは、マイクロコントローラ、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）とすることができる。
【００３６】
また、下記で説明されるメモリは、１つまたは複数の記憶媒体を包括的に呼ぶものであり、例えば、ランダムアクセスメモリ（RAM）、リードオンリーメモリ（ROM）、プログラム可能リードオンリーメモリ（PROM）、消去可能プログラム可能リードオンリーメモリ（EPROM）、電気的消去可能プログラム可能リードオンリーメモリ（EEPROM）、ユニバーサルシリアルバス（USB）ドライブ、フロッピーディスク、コンパクトディスク、光ディスク、磁気テープ等の揮発性及び不揮発性コンピュータメモリとすることができる。上記メモリは、プロセッサで使用されるプログラム及び／又はデータを記憶することができる。本明細書では、メモリはプロセッサと共に使用されて、いわゆるコンピュータを構成し、本明細書において論じられる機能のうちの１以上を実行する１つまたは複数のプログラムを実行することができる。なお、本明細書におけるメモリは、上記のようなプログラムを記憶する非一時的コンピュータ可読プログラム記録媒体を含むことができる。
【００３７】
非特許文献１〜非特許文献４における手続き型プログラム言語によるプログラミングスタイルは、ホストコンピュータまたはメインコントローラ上でプログラムを実行し制御する集中制御型である。複数の測定器（測定モジュールであることもある）を組み合わせて用いる場合、プログラム中にそれらの測定器を制御するためのコマンドまたはＡＰＩを時系列順に並べたシーケンスを記述する必要がある。この並べ方はアプリケーションプログラムそれぞれの要求により多様な組み合わせが考えられる。
【００３８】
ここで、それぞれの測定器についてのプログラムシーケンスは、適用されるアプリケーションが異なっても、通常は大差ないものであることが多い。しかしながら、測定システムを制御するメインのコンピュータでは、複数の測定器に関する制御シーケンスを統合して記述するため、複数の測定器の制御ステップがシーケンス中に混在し、その結果、さまざまな順序で実行されるように記述することができるために、シーケンスに多数のバリエーションが生まれる。そのため、アプリケーションプログラムに記述された制御シーケンスを再利用することは困難である。
【００３９】
したがって、これまでの測定システムでは、再利用の単位が、基本的なシーケンスに含まれる要素的な制御ステップ（すなわち個々の制御コマンドやＡＰＩ）単位か、または完成した特定用途向けのアプリケーションプログラム単位のいずれかしかなく、粒度に開きがあった。ここで、要素的な制御ステップは、ユーザにとって、測定の目的に直接には結びつかない。そのため、要素的な制御ステップを再利用するためには、測定シーケンスが他のアプリケーションで共通に利用できるように設計に手間をかける必要がある。他方、完成したアプリケーションプログラムは特定の目的に強く結びついており、ユーザの目的と一致しない部分には変更を加える必要がある。このように、再利用を促進することを狙ってアプリケーションプログラムを作成するには、測定器そのものの動作原理やアプリケーションについて、深い理解が必要である。
【００４０】
上述の従来技術には、以下のような問題点が存在した。
【００４１】
時間軸上でのプログラミングの煩雑さ
上述の特許文献１及び非特許文献５によるシーケンサによる制御において、ベクターエディタを用いたプログラミングは、ハードウェアで実現されたシーケンサをプログラミングすることを通じて実時間上での同期動作を記述するプログラミングである。高いタイミング精度でプログラムを実行することはできるが、特定機能に特化されたハードウェアを有するシーケンサのプログラミングには制約が多いことが知られている。代表的な制約を２つ挙げると、１番目の制約は、ハードウェアの制約のために、シーケンサ上で実現できる測定器の制御コマンドは種類が限定され、しかも単純な機能に限定されることがある。例えば、非特許文献１〜非特許文献４で提供される高度な機能ブロック（例えば、ファイルやデータベースへの測定結果の格納、設定値や測定値の数学的変換、複数ステップあるいは条件分岐を含む複合的な測定ステップ等）を使用したり、多様な繰り返し制御や条件分岐を使用することができなかったりする。２番目の制約は、ＡＴＥの提供するＵＩ（User Interface）では、特定のイベントを時間軸上で前後に移動する編集作業が容易ではないことである。その主な理由として、シーケンサのプログラムでは、時間軸が、ＡＴＥのメモリ制約の都合で決められるシーケンスレートを単位としたベクターで表現されているために、所望の実時間のオフセットを実現するような操作を直接的にできないことと、イベントの削除又は貼り付けに伴い、待機ベクターの埋め込みが必要になり、その編集作業が煩雑になることが挙げられる。
【００４２】
実時間制御の困難さ
非特許文献１〜非特許文献４による手続き型プログラミング言語による制御では、命令の実行順序や命令間の待ち時間をプログラムすることができるが、プログラム開始時刻からの経過時間に合わせて命令を実行する実時間実行の機能は提供されない。しかし、現実の物理現象の測定の中には因果関係を明確にキャプチャーするために時刻情報が重要となるアプリケーションもある。したがって、複数の測定器が同期して、測定だけでなく信号印加時の時間精度を保証することが求められる。
【００４３】
プログラミングの柔軟性と時間再現性とのトレードオフ
次のように、２つのうちのどちらの制御アーキテクチャを選択するかによるトレードオフが少なからず存在する。すなわち、そのようなアーキテクチャは、コンピュータ又はマスタ測定器によるコマンドベースの制御を行うアーキテクチャと、シーケンサによるトリガー制御を行うアーキテクチャに大別される。前者は、高度で柔軟なプログラミング制御が可能である一方で、時間再現性の精度がない。後者は、高い時間再現性がある一方で、使用できるプログラミング制御が低水準である。
【００４４】
既存プログラムライブラリの再利用
特許文献２のテーブルによるシーケンス作成は、これまで挙げた問題点の一部分については解決することができるかもしれない。しかしながら、この従来技術では、ユーザがシーケンスをゼロからプログラミングして入力する必要があり、ユーザの負担が重い。
【００４５】
次に、本発明による代表的な実施形態について説明する。
【００４６】
本発明の発明者は、上記の特許文献２の問題点についての考察に鑑みて、測定器のユーザにとってのプログラミングはやりたいことを実現するための手段の一つに過ぎず、必ずしも全てのプログラミング作業を行なうことを望んでいるわけではなく、すなわち、ユーザにとっては、ユーザの用途に適したプログラムが予め用意されているのであれば、それを利用できるような環境が望ましいことを見出した。さらに、ユーザがカスタマイズすることを望んでいるのは、ユーザの作業にとって本質的な意味がある「機能ブロック」の「パラメータの設定」と「実行タイミングの設定」であり、それらを柔軟にカスタマイズできるようなプログラミング環境が望まれていることを見出した。
【００４７】
より詳細には、特許文献２が提示する表ベースのユーザインタフェースよりも単純でより直感的なインタフェースが望ましく、既存プログラムライブラリから予め用意された「機能ブロック」を選び、機能ブロック中の「パラメータの設定」と「タイミングの設定」を容易にカスタマイズ可能な環境が、操作上容易で、望ましいことを見出した。
【００４８】
以下に、本発明による機能カラム型シーケンスプログラミング環境又は機能カラムダイアグラムと、それらによる測定システムについて説明する。
【００４９】
シーケンス言語の概要
本発明による実施形態で使用されるシーケンス言語は、複数の測定モジュール間の依存関係を含む測定動作のシーケンスを規定するためのものである。ここで、上記のシーケンスはグラフィック要素によって表現される。本発明では、ユーザインタフェース上に表示された機能カラムダイアグラム（function column diagram）上に、以下のように、測定のシーケンスを記述する。
【００５０】
本発明による機能カラムプログラミング（function column programming）環境においては、プログラム要素の配置に制約を設ける代わりに、プログラムの読み易さを優先する。また、本発明による機能カラムプログラミング環境では、測定モジュールの動作の順序関係を表現できることが重要である。そのため、プログラム要素を表現するブロックの特定の側部又は辺や、ブロックの位置関係に意味を持たせている。
【００５１】
本発明による機能カラムプログラミング環境は、データ取得を中心とした簡単な測定シーケンスの実現に特化したドメイン特化言語環境の一つである。一般のプログラミング言語が実現する全ての機能を実現することは目指しておらず、同じ測定でも複雑なアルゴリズムの記述には適しておらず、どちらかというと、高度に抽象的な、上位のプログラミングに適した環境となっていることに留意されたい。特にデータ処理に関して言えば、ごく簡単な数値演算はこのプログラミングの枠組みの中で表現することを想定しているが、複数ステップからなる数値演算アルゴリズムをこのシーケンス言語で表現することは、想定しておらず、データを別のプログラミング環境に送って、その環境上で処理されることを想定している。
【００５２】
本発明による機能カラムプログラミング環境で用いられる典型的なタスクは、安価な基本機能を備えた測定モジュールまたは測定器を複数用いて、基礎的な測定シーケンスを実行させ、測定されたデータをマイクロソフト社のソフトウエアであるエクセル（登録商標）やデータベースなどのフォーマットで収集するものである。一定の条件に基づく測定値の判定と条件分岐を含む繰り返し測定（サーチ測定）のような、やや高度なアルゴリズムを含むタスクは、この環境で記述可能な場合もあるかもしれないが、主要な適用対象としては考慮していない。
【００５３】
仕様記述の構成について
以下では、まず、本発明によるシーケンス言語の仕様の根幹をなす、グラフィック構成要素（基本ステップ、機能シーケンス、生存線（lifeline）上の制御構造、後付け制御構造、グラフィック要素の時間表現とその制約）の定義を示し、次にそれらの定義の前提となっている機能カラムダイアグラムの定義、構成、用い方、機能カラムと機能シーケンスの関係、制御構造における測定値データ参照の表現を示し、最後に、これらの要素を用いて、ユーザがどのような操作でプログラムを作成するか、すなわち、機能カラムプログラムの作成手順について説明する。
【００５４】
基本ステップ
基本ステップとは、ある測定モジュールでの測定シーケンスを構成する実行ステップのうち、１以上の実行ステップ（execution step）（すなわち、上述のコマンド又はＡＰＩ）がまとまったものであり、さらに分割して取り扱う必要が基本的に生じないまとまりであり、本発明による機能カラムダイアグラム上で一つの単位として取り扱うことが望ましい１以上の実行ステップの集まりによるサブシーケンスを称するものである。
【００５５】
そのような基本ステップは、連続して実行しても支障がない実行ステップのサブシーケンスと考えることもできる。あるいは、基本ステップは、細かい実行ステップが集まったマクロ形態のステップ（マクロ実行ステップ）又はサブルーチンの実行ステップと考えることもできる。例えば、電圧測定モジュールの電圧測定シーケンスでは、基本ステップは、測定モードを設定するとともにデバイスとの接続を行う基本ステップ、電圧を１サンプル測定する基本ステップ、デバイスとの接続解除（切断）を行う基本ステップというもので基本的には構成され、これらが順番に実行されるように、電圧測定シーケンスを構成することができる。
【００５６】
基本ステップのグラフィック表現の定義を、図２Ａ〜２Ｇを参照して説明する。
【００５７】
（１）基本ステップ（時刻属性なし）（図２Ａ）
基本ステップの最も基本的な表現であり、ボックスアイコン又は略四角形のブロック２０２の中にタイトルを記述したものである。ここでは測定ステップの内容を表すラベルとして、「電圧を測定する」というラベルを表示し、電圧測定を行うことを示している。なお、基本ステップを表す上記のボックスアイコンは、おおむね四角形に近い形状とすることができ、楕円形の形状とすることもできる。
【００５８】
（２）基本ステップ（時刻属性付き）（図２Ｂ）
基本ステップのボックスアイコン２０４の上側又は上辺を太線２０４ａで強調表示することで、この基本ステップの実行開始時刻に制約がつくことを表現している。なお、図２Ｂの形式の基本ステップは単独で存在することはなく、後述する図２Ｄ〜２Ｇのいずれかの時刻指定方法とセットで用いられる。
【００５９】
（３）基本ステップの実行前又は後のディレイの指定（図２Ｃ）
図２Ｃに、基本ステップ「電圧を測定する」２０８の下側又は下辺に、ディレイ（待ち時間、又は遅延）指定実行ステップを直接接続して配置することで、基本ステップ実行直後の待ち時間を指定する場合の表現を示す。図２Ｃでは、基本ステップ「電圧を測定する」２０８が完了した時点から少なくとも１２０ｍｓｅｃの待ち時間を確保すること（２１０）が示されている。
【００６０】
ここで、ディレイ指定ステップとは、後述の図２Ｄ、２Ｅで利用されるような、複数の測定モジュール間での同期動作に関わるディレイ動作を指定するという拡張した利用が可能な特別な実行ステップであり、後述の図１において、複数の測定モジュールに備わるタイマを使用する可能性がある特別な実行ステップであるために、基本ステップに含めることはなく、このように独立して表現される。
【００６１】
なお、図２Ｃのバリエーションとして、基本ステップの上側又は上辺にディレイ指定ステップを直接接続して配置することで、指定された待ち時間経過後に基本ステップが実行されることを表現する場合があり、例えば、後述の図２Ｅで縦に並ぶディレイ指定ステップ２２０及び基本ステップ２２２がその例であり、動作としては、ディレイ指定ステップ２２０で指定された１２０ｍｓｅｃ経過後に、基本ステップ「電流を測定する」２２２が実行される。
【００６２】
（４）同期実行（同時実行）（図２Ｄ）
複数の測定モジュールに関する基本ステップ２１２、２１４を、その開始タイミングを同期させて同時に実行することを示す。ボックスアイコンの上側又は上辺の時刻制約２１２ａ、２１４ａが連動していることを示すため、上側又は上辺の上下方向の位置が一致するように表示を調整し、また一致していることを強調するために補助線（点線２１６）を上側又は上辺と重なるように描画する。このような状態を作り出すためのユーザ操作については後述する（以下同様。）。
【００６３】
（５）ディレイ指定付き同期実行（図２Ｅ）
上述の図２Ｄの基本ステップに、図２Ｃのディレイ指定に関して説明した拡張の一例である、ディレイ指定ステップを組み合わせた表現である。この図２Ｅでは、図２Ｃでは例示されなかった基本ステップ２２２の前に待ち時間指定実行ステップ２２０を配置することにより、指定された待ち時間（１２０ｍｓｅｃ）経過後に基本ステップ２２２が実行されることを表現している。さらに、補助線２２４により、ボックスアイコンの上側又は上辺の時刻制約２１８ａ、２２０ａが接続されて表現されることにより、基本ステップ「電圧を測定する」２１８とディレイ指定ステップ２２０とが同期して開始され、開始後１２０ｍｓｅｃ経過後（２２０）に、基本ステップ「電流を測定する」２２２を開始することを表現している。
【００６４】
（６）基本ステップとタイマの同期実行又は待ち合わせ（図２Ｆ）
基本ステップと遅延ブロックの別の組み合わせとして、横方向に並べることができる。基本ステップと遅延ブロックを横に並べるときには、関連を分かりやすくするように、基本ステップの右側又は右辺と遅延ブロックの左側又は左辺を接触又は当接させ、さらに時間制約であること示す上側又は上辺の強調表示２２６ａ、２２８ａを行う。この記述は、基本ステップ「電圧を測定する」２２６の完了と１２００ｍｓｅｃの経過（２２８）のいずれか遅い方を待ち合わせることを表現する。なおこの場合、後述の生存線は、表示される場合には、基本的に基本ステップ２２６の上下に伸びる。
【００６５】
（７）時刻指定（図２Ｇ）
プログラム開始からの経過時間を、基本ステップの開始時刻として指定することができる。このときの表現は、基本ステップ２３０の時間制約を示す上側又は上辺の強調表示２３０ａに加えて、補助線２３２と、補助線の左端が先の図面の左端の後述の大域制御用の列まで延伸し、その補助線の左端の近傍に開始時刻２３４を記述する。なお図２Ｄの表現と組み合わせて、複数の基本ステップの開始を同じ時刻に結びつけることもできる。
【００６６】
機能シーケンス
機能シーケンスとは、上述の基本ステップと、後述するグラフィック要素と、さらに後述するループや条件分岐などの制御構造とを用いて、ある測定モジュールについて実行されるプログラムシーケンスの動作を明確に表現するための表現形態である。ここでは機能シーケンスの定義で使用されるグラフィック要素について説明する。
【００６７】
図３Ａ〜３Ｄに、機能シーケンスを定義するうえで必要となるグラフィクス要素として、生存線を定義し、その使用例を以下で説明する。生存線は垂直方向に伸び縮みし、機能シーケンスの上端と下端を示す白丸のシンボルの表示は、それぞれ機能シーケンスの開始と終了を示し、時間的には、それぞれ、開始時刻と終了時刻を表現する。生存線上における基本ステップの配列の配置は、それらの実行される順序関係を定義するが、時間制約についてはそれぞれの基本ステップに定義された前項の時間制約ルールに基づく。
【００６８】
（１）生存線（図３Ａ）
生存線３０４は垂直方向の線分として表現される。ここで上から下に時間の経過が表わされる。上端および下端の白丸の表示３０２、３０６は、それぞれ機能シーケンスの開始と終了を示し、時間的には、それぞれ、およその開始時刻とおよその終了時刻を表現する。なお、以後の説明において、最初の基本ステップの実行時刻と、機能シーケンスの開始時刻とは、必ずしも一致している必要はない。最後の基本ステップの実行完了時刻と、機能シーケンスの終了時刻とも、必ずしも一致している必要はない。生存線の上端、下端の位置は、後述の機能カラムダイアグラム上で上下に自由に移動させることができ、生存線もそれに合わせて適宜伸び縮みさせることができる。
【００６９】
（２）典型的な測定シーケンス（図３Ｂ）
典型的な測定シーケンスは、上下端の表示３１２、３１６と、一連の基本ステップ３１８、３２０、３２２の時系列の並びと、上下端と各基本ステップとのそれぞれの間を結ぶ生存線３１４ａ、３１４ｂ、３１４ｃ、３１４ｄによって表現される。なお、複雑さを回避するために、基本ステップは重なることが許されないこととする。
【００７０】
さらに、一つの基本ステップの下側又は下辺と、後続の基本ステップの上側又は上辺を当接して配置することもできる。その場合は、上側の基本ステップの完了の直後に、下側の後続の基本ステップが実行されることを意味する。
【００７１】
図３Ｂのように基本ステップが離されて配置されている場合には、他に時刻指定がされている場合を除き、これらの基本ステップの実行時刻は未定義として扱われる。先行する基本ステップが完了してから、後続の基本ステップの実行が行われ、順序関係のみが定義されていることになる。
【００７２】
（３）基本ステップの可動範囲（生存線）（図３Ｃ）
図３Ｃのように基本ステップ３２８が生存線３２４ａ、３２４ｂに挟まれて存在する場合、この基本ステップ３２８は、生存線３２４ａの上端と生存線３２４ｂの下端の間（矢印３３０で示される）の任意の位置に、生存線３２４ａ、３２４ｂを延長又は収縮させて動かすことができる。なお、以後の説明では、このような配置についての表現を、基本ステップ３２８は１本の生存線３２４の上に重ねて配置されるものであり、基本ステップ３２８は生存線３２４の上を範囲３３０にわたる任意の位置に配置することができる、として表現する。
【００７３】
（４）基本ステップの可動範囲（前後のステップによる範囲制限）（図３Ｄ）
図３Ｄの真ん中の基本ステップ３３８は、前後の基本ステップ３３６、３４０と接するまでの範囲３４２にわたり、生存線３３４上で上下に動かして配置することができる。
【００７４】
なお、上記の説明以外に、機能シーケンスに基本ステップを追加したり削除したりする操作を許すか否かは、グラフィック要素の定義とは別に、ツールの設計方針として定義することができる。後述するように機能カラムプログラミング環境の基本的な実施形態においては、これらの操作は許さないものとする。これは、基本ステップの追加および削除の操作が、本質的に機能シーケンスの役割及び内容を大きく変更してしまうことになるからである。
【００７５】
同様の理由で、生存線上で基本ステップの順番を入れ替える操作も、機能カラムプログラミング環境の基本的な実施形態においては禁止される。したがって基本ステップの可動範囲は、図３Ｄで示すように前後のステップに接するか、もしくは生存線の上下端に達するまで、ということになる。
【００７６】
複数の測定モジュールについての機能シーケンスを考えると、それぞれの測定モジュールごとに生存線の列が存在し、それぞれの生存線の列上に基本ステップが存在し、ある生存線の列のある基本ステップと、別の生存線の列の別の基本ステップとの上下の位置関係により、複数の測定モジュールにおける基本ステップが実行される際の前後関係が記述されるが、それは後述の機能カラムダイアグラム上で定義され、表現される。
【００７７】
生存線上の制御構造
本発明による機能シーケンスでは、１本の生存線上において１つ以上の連続する基本ステップを備えるサブシーケンスを繰り返し実行するため、又は条件付きで実行するために、次のような制御構造を定義する。この制御構造の考え方は、一般的なプログラミング言語と同等のものである。以下では、図４Ａ〜４Ｄを参照して、制御構造のグラフィック表現について説明する。
【００７８】
（１）ループ
機能シーケンス中の特定のサブシーケンスの繰り返し実行制御を表現する、ループ制御を表現するグラフィック表現は、ループ制御される特定のサブシーケンスの区間を図４ＡのＣ字状のシンボル４０６で包み込み、Ｃ字状のシンボルは外枠の四隅を切り取ったシンボルで表現する。Ｃ字状のシンボルの２つの先端の間に位置する実行ステップが、このループ制御の影響を受けて制御される。この４０６などの制御構造のシンボルは、それぞれの制御構造ごとに色又はハッチングの種類により視認性を向上させることができる。ループの先頭部分４０６ａに、ループの内容を示すテキストのラベルを表示することができる。ラベルは必ずしもループ制御の種類（FOR, REPEAT, WHILEなど）を書く必要はなく、ユーザが分かりやすい任意のテキストとすることができる。ループの詳細を設定する方法については後述する。図４Ａでは、ループの終端部分を４０６ｂで示し、ループ中に含まれる基本ステップを４１０で示す。
【００７９】
（２）ネストしたループ
図４Ｂにシンボル４２２と４２６の包含構造によって示されるように、ループのネストを、一つのループ構造４２６をさらに別のループ構造４２２で外側から包み込むことにより表現する。ループのネストレベルにより色又はハッチングの種類を変化させることで、ネストの視認性を確保することができる。
【００８０】
（３）条件分岐
図４Ｃに示すように、条件分岐の表現も、Ｃ字状のシンボルを使用して表現される。条件分岐のシンボル４４４は、ループ構造のシンボルと区別するため、Ｃ字状シンボルの四隅のうち、右側の二つの隅だけに切欠きを設ける。Ｃ字状のシンボルの２つの先端が、影響する範囲について、上述のループ制御同様の意味を持つ。この条件分岐のシンボルの先頭４４４ａに、ラベルを記述することができる。図４Ａ同様、条件分岐の種類（IF, SWITCHなど）をラベルとして表現する必要は必ずしもない。さらに、Ｃ字状のシンボルの内部の空洞部分に、条件節ごとに内容を表現することができる。図４Ｃの条件分岐の場合、２つの条件節が存在し、条件節はラベル４４４ｂ、４４４ｃとサブシーケンス４４６、４４７を備える。図４Ｃは条件分岐４４４がSWITCH文、つまりサブシーケンスが１つ以上の任意の数存在する場合の例であり、条件節のラベル４４４ｂ、４４４ｃにはそれぞれの分岐条件を記述することができる。条件分岐４４４の終端部分は４４４ｄで示される。
【００８１】
（４）ネストした条件分岐
図４Ｄに示すように、条件分岐のネストも図４Ｂと同様に表現される。Ｃ字状の条件分岐のシンボルを、外側から取り囲むことによってネスト構造を表現する。ネストレベルに応じて異なる色又はハッチングにし、ネストの視認性を確保することができる。図４Ｄでは、条件分岐ＩＦ構造４６４の条件節ＴＨＥＮ４６４ｂ内に、別の条件分岐ＳＷＩＴＣＨ構造４６６が記述され、条件分岐構造４６６は、条件節ＣＡＳＥ  Ａ部分（４６６ｂ、４６８）と条件節ＣＡＳＥ  Ｂ部分（４６６ｃ、４７０）とを備える。
【００８２】
上記のような、本発明による制御シーケンスを行う言語における制御構造の特色は、制御構造に付されているループのラベル、条件のラベルが、完全にフリーテキストであり、任意の文字列とすることでできることである。そのため、条件分岐のラベルに"IF"と制御の種類を書いてももちろんかまわないが、「４端子デバイスであったときに」などといったフリーテキストを表示させることができる。実際の分岐条件設定の詳細は、詳細設定（後述）として背後に隠されている。そのため、より直感的にプログラムの内容を把握することができる。
【００８３】
なお、複雑さを回避するために、生存線上に配置され、上記の制御構造に囲まれているサブシーケンスにおいては、一部の時間制約の使用ができないものとする。すなわち、一般的な実施形態では、これら制御構造自体の実行開始時刻の指定（絶対時刻、他の基本ステップとの同期を含める全て）は使用できない。また、制御構造に包まれるサブシーケンスにおいても、各基本ステップの実行開始時刻の指定（絶対時刻、他の基本ステップとの同期を含める全て）は使用できないものとする。ただし基本ステップ前後のディレイ（図２Ｃ）と、遅延付き同期実行（図２Ｅ）と、タイマ待ち合わせ（図２Ｆ））は使用可能であるとする。
【００８４】
複数の生存線上にそれぞれ制御構造があり、その存在範囲が時間軸方向に重なっている場合、互いの基本ステップの前後関係は定義できない。また、繰り返し制御を行なう場合であっても、サブシーケンスの繰り返しごとのタイミング再現性は、基本的に保証しない。
【００８５】
後付け制御構造
前項の生存線上の制御構造が機能シーケンスを構成する上で本質的で不可分な要素である一方、ユーザの意図によって機能シーケンスの全部もしくは一部に対して制御構造を後付けで付加したい場合が存在する。そのような制御構造は、後述の機能カラムダイアグラム上においては、個々の機能カラムの生存線上に限定的に後付けする場合と、並行動作する全生存線にまたがる形で大域的に後付けする場合とが考えられる。本項ではこれらの後付け制御構造について包括的に説明する。
【００８６】
前項の生存線上の制御構造が、機能シーケンスを構成する本質的で不可分な要素であることは、次の具体例によって示される。掃引測定を目的とする機能シーケンスを考えると、その基本ステップは大まかに、１）測定リソースの接続および設定、２）繰り返し測定（電圧設定および電流測定のサブシーケンスの繰り返し）、３）測定リソースの接続解放、の３つの基本ステップで構成されると考えることができる。このうち２）の表現は、生存線上のループ制御構造で表現することが可能である。ここで、仮に２）のループ制御構造を取り除いてしまうと、この機能シーケンスは掃引測定ではなくなってしまうことを考えれば、このループ制御構造は機能シーケンスにとって本質的で不可分であることが理解できる。
【００８７】
同様に、この機能シーケンスに対して何らかの制御構造、ループまたは条件分岐を後付けしようと考えたとして、それを後付けする場所によっては、この機能シーケンスの本質的な意味が壊れてしまうことは、容易に想像がつく。例示した掃引測定の機能シーケンスに対して、その本質的な意味を壊さずに付加できる制御構造として考えられる例としては、最も簡単には機能シーケンスの全て、つまり生存線の上下端を包み込む形でループを付加することである。あるいは上記２）のサブシーケンス全体を包み込む形でもう１層のループや条件分岐を付加することも考えられる。しかし、上記２）の電圧設定と電流測定の間に制御構造を挟みこむことは、掃引測定の本質的な意味を損なうことになる。
【００８８】
一方、時間軸上で並行して実行される複数の機能シーケンスすべてに等しく有効となる、いわばプログラム全体の制御構造として大域制御構造を導入することを考えることができる。すなわち、プログラム全体としてその一部をループしたり、スキップあるいは分岐したりするために、大域制御構造を後付けして利用する。図５Ａ〜５Ｄにそのような大域制御構造のグラフィック表現を示し、以下に説明する。
【００８９】
（１）生存線上の待ち合わせ点（図５Ａ）
既存の機能シーケンスに対して新たな制御構造を後付けする場合、機能シーケンスの本質的な意味を維持する必要上、後付け可能な箇所が限定される。その理由については上述のとおりである。機能シーケンス上に、制御構造が後付け可能である位置を生存線上で示すために、生存線上に待ち合わせ点５０２、５０３を付加することができる。待ち合わせ点は、図５Ａでは生存線上の黒丸シンボルで表現される。なお、後述の機能カラムダイアグラムの表示ツール上では、待ち合わせ点５０２，５０６を必要なときのみ表示させるようにすることができる。これは制御構造の後付けを必要としないユーザにとって、多数の待ち合わせ点が生存線上に見えることは、煩雑であり混乱の元になるためである。待ち合わせ点を定義する場合には、生存線上に少なくとも2つ以上を定義する必要がある。また3つ以上の待ち合わせ点を定義する場合には、対応する待ち合わせ点のペアを明示する必要があり、色分け等で識別可能にすることができる。
【００９０】
（２）大域待ち合わせ線が引ける条件（図５Ｂ、５Ｃ）
図５Ｂに示されるように、大域待ち合わせ線は少なくとも２本の一点鎖線５１６、５１８で表記される。この大域待ち合わせ線５１６、５１８が生存線５０８を横切る場合、その大域待ち合わせ線ではさまれた部分の生存線５０８に関わる機能シーケンスの動作は、大域制御構造５５２の決定する分岐動作の影響を受ける。すなわち、例えば、条件分岐やループ条件判断によって特定のサブシーケンスを実行するかスキップするかなどの影響を受ける。このように、大域待ち合わせ線で囲まれた領域の全ての機能シーケンスは、大域制御構造５５２の単一の条件分岐の判断に従うことが求められる。大域制御構造５５２は２本以上の大域待ち合わせ線を伴うことができる。
【００９１】
大域待ち合わせ線５１６、５１８が生存線５０８を有効に横切ることができるための条件は、図５Ｂまたは図５Ｃのいずれかの条件が満たされるときである。まず、図５Ｂでは、２本の大域待ち合わせ線５１６、５１８にはさまれる生存線５０８上に１つ以上の基本ステップ（ここでは例として１つの基本ステップ５１２のみ）が存在する場合が示され、その２本の大域待ち合わせ線５１６、５１８がいずれも待ち合わせ点５１０、５１４を横切る必要がある。
【００９２】
次に、図５Ｃでは、生存線５２０のうち、大域制御構造５５４により２本の大域待ち合わせ線５２２、５２４にはさまれる部分に、基本ステップが１つも存在しない場合が示される。すなわち、生存線５２０上の待ち合わせ点の有無に関わらず、大域待ち合わせ線５２２、５２４が生存線５２０を有効に横切ることができる場合を示している。
【００９３】
（３）大域制御構造のグラフィック表現（図５Ｄ）
複数の生存線がある場合には、図５Ｄのように、大域制御構造５５６は後述の機能カラムダイアグラムの一番左側の特別な列に置かれる。そこから右方向に少なくとも２本以上の大域待ち合わせ線５３６、５３８が、同時刻に存在する全ての生存線５２８、５４０、５５０を横切って延在し、配置される。大域制御構造５５６のグラフィック表現は図４Ａ〜４Ｄに示した各種の制御構造に準拠するので、ここでは詳細な説明を省略する。また図４Ａ〜４Ｄで示したのと同様に、大域制御構造自体をネストすることも可能である。
【００９４】
以上のように、本発明のシーケンス言語では、一定の要件が整っている場合には、生存線に対して大域制御構造を後付けすることができる。大域制御構造は大域的（global）に効力を発揮し、同時期に存在する全ての生存線を有効に横切り、影響を与えることに意味がある。後述の機能カラムダイアグラムにおける典型的な実施形態では、この大域制御構造の定義だけでかなりのアプリケーションをカバーできるが、発展的には次のような応用を考えることもできる。
【００９５】
（１）生存線を複数のグループにわけ、それぞれに対してのみ有効な「大域」制御構造を適用する応用が考えられる。これはいわゆる、マルチスレッドプログラミングに相当する応用である。実装としては、後述のように機能カラムダイアグラムの左端の大域制御用カラムをスレッド数に応じて複数用意することで対応することができる。
【００９６】
（２）単一の生存線に対して、待ち合わせ点を利用して１つの生存線だけに有効な制御構造を後付けすることができる。たとえば掃引測定のループを複数回繰り返すことができるように、後付けでループを二重にするといった使い方をすることができる。
【００９７】
（３）大域待ち合わせ線を引くことができる条件に、より細かい制約をかけることができる。たとえば対応する大域制御構造としてループは許容するが条件分岐は許容しないなど。制御構造の種類によっては機能シーケンスの本質的な意味が壊されてしまう場合に、このような機能を利用することができる。
【００９８】
以上に示したように、大域制御構造は必要なものだが、細かい条件を考えていくと非常に複雑になり得るため、典型的な実施形態においては抑制的に利用することを想定している。すなわち、どのように利用されても機能シーケンスの本質的な意味が損なわれない、と確信される場合にのみ、機能シーケンスに待ち合わせ点を定義することにしている。典型的には、測定リソースの接続、接続解放のタイミングの前後のみが、待ち合わせ点の設定可能な対象だと考えることができる。
【００９９】
グラフィック要素の時間表現とその制約
前述の通り、機能シーケンスのグラフィック表現は、基本ステップならびに制御構造が生存線上に直列に並ぶことによって表現される。基本ステップあるいは制御構造の上側又は上辺および下側又は下辺には、開始および終了時刻を表現しているという意味付けがなされている。これは下側又は下辺と上側又は上辺を接触又は当接するように配置した同一生存線上の２つの要素が、間をおかず連続実行されるという定義によっても示されている。ただし、グラフィック表現の上下方向の高さは、絶対時間に比例しているわけではない。上下方向の高さは、グラフィック表現に表示すべき情報によって、時間情報とは無関係に変わり得る。
【０１００】
並列に存在する任意の２本の生存線上に、それぞれ基本ステップあるいは制御構造が存在するとき、その時間的前後関係は次のように定義される。すなわち、それぞれのグラフィック要素の上側又は上辺の位置が、上である方が、より早い時刻に実行開始される。上側又は上辺位置が見た目上揃っている場合の実行順序は不定である。ただし同期実行が指定されている場合においては、一定の時間スキューの範囲内（ハードウエア等の制約による）で、同時に実行が開始されると定義される。
【０１０１】
生存線上の制御構造あるいは大域制御構造に内包されているグラフィック要素については、上側又は上辺であれ下側又は下辺であれ、他の生存線上のいかなるグラフィック要素との間でも、その位置から前後関係を解釈することはできない。またこれらの間に同期実行を定義することもできない。ただし、同一のループ制御構造に同じネストレベルで包含される基本ステップの間に限っては、例外的に時間的前後関係を定義することができる。これは、たとえば２つの測定器を使って掃引測定ループを実行するような場合を実現するために不可欠である。
【０１０２】
機能カラムダイアグラムの定義
機能カラムダイアグラムは、上記の本発明による機能カラムプログラミングを行なうためのプログラム記述様式あるいはプログラム記述フォーマットである。概略すると、機能カラムダイアグラムは垂直軸に時間経過、水平軸に異なる測定モジュールを並列に並べたダイアグラムである。以下に説明するように、複数の機能シーケンスを時間軸上に並べ、それぞれを構成する基本ステップ等の実行開始時刻の前後関係を相対的に調整することができるようにしている。
【０１０３】
機能カラムダイアグラムの構成
図６に概略が示されるように、機能カラムダイアグラムの最も左端にある列６０２は、大域制御用に割り当てられた列である。この列６０２に割り当てられるのは、具体的には、絶対時刻指定と、上述の大域制御構造との２つである。それ以外の列は、それぞれの機能シーケンスに割り当てられており、左から２番目の列が、測定モジュール機能Ｘのシーケンスを記述するカラム１（６０４）であり、左から３番目の列が、測定モジュール機能Ｙのシーケンスを記述するカラム２（６０６）であり、左から４番目の列が、測定モジュール機能Ｚのシーケンスを記述するカラム３（６０８）である。
【０１０４】
（１）ステップａ、ｂ、ｃの順序関係
ステップａ６１６とステップｂ６１８は、一見、上側又は上辺が揃っているように見えるが、たとえ表示上上側又は上辺が完全に揃っていたとしても、同期の設定がされていないので、これらの基本ステップの実行開始の前後関係は未定義である。ステップｃ６２０はステップａ、ｂより明らかに後の時間に上側又は上辺が配置されているので、ステップａ、ｂより後に実行されることが保証されている。ただし保障されているのは順序だけで、具体的にどれだけの間隔をおいて実行されるのかは、定義されていないことに注意されたい。基本ステップの上側又は上辺の、あるいは下側又は下辺の間の見た目の高さは、各基本ステップを完了するまでの実行時間とは無関係である。たとえ高さ方向に重なっていても、ステップｂ６１８の完了前にステップｃ６２０の実行が開始されるとは限らない。
【０１０５】
（２）ステップｄ、ｅと大域ループ
ステップｄ、ｅ６３０、６３２は大域ループ６２２で指定される範囲内に包含されており、大域ループ６２２の設定内容（後述の図２３に例示）にしたがってループ実行される。ステップｄ、ｅ６３０、６３２の各繰り返しにおける開始時刻の前後関係は不定である。繰り返し区間においてカラム２（６０６）の生存線６１２には、基本ステップは存在しない。後続のステップｇ６４６は、繰り返しが全て終わった後に実行される。大域ループ６２２は、定義に従ってそのグラフィック要素を大域制御用の列６０２に置く。
【０１０６】
（３）ステップｆ、ｇ、ｈの同期実行
ステップｈ６５０には実行開始前のディレイ１０ｍｓｅｃが付加されている（６４８）。ステップｆ、ｇ（６４４、６４６）とステップｈ６５０に付加された先立つディレイ６４８とには同期実行（点線の補助線６４２）が定義されている。さらに同期実行の補助線６４２は左端の大域制御用の列６０２まで延伸され、絶対時刻指定６４０により、実行開始時刻をプログラム開始から１５０００ｍｓｅｃ（１５ｓｅｃ）に設定している。なお、同期実行だけであれば必ずしも時刻指定は必要ないことに注意されたい。時刻指定がない場合には、前述のループ終了後直ちに、これら基本ステップの同期実行が開始される。ループの回数の設定によっては、ステップｆ、ｇ（６４４、６４６）と、ステップｈ６５０に付加された先立つディレイ６４８との開始時刻指定が矛盾を起こすことがあり得るので、図６では時刻指定６４０を行っている。
【０１０７】
機能カラムダイアグラムの用い方
機能カラムダイアグラムはシーケンス言語に付随する文法の一部である。前項で例示したとおり、各機能カラムは１つの機能を備える測定モジュール又は測定器について記述され、各機能カラムにはそれぞれ１つの機能シーケンスが割り当てられ、ただ１つの生存線の存在のみを許す。機能カラムの上下端は、それぞれ好きな位置に動かすことができる。長い測定プログラムを記述する場合には、時間位置的に重ならない生存線を定義することもできる。機能カラム上で生存線がない領域は、当該機能を使用していないということを示し、この領域では同期や大域制御の対象に含まれないことを意味する。また前項で述べた通り、一定のルールに基づいて、機能カラムダイアグラムにより、それぞれの機能カラムに属する基本ステップの開始時刻の前後関係を知ることができる。
【０１０８】
機能カラムダイアグラムを実装するプログラミングツールは、すくなくとも次に示す機能を持っている必要がある。
【０１０９】
（１）機能カラムを追加し、別に提供されている機能シーケンスのライブラリの中からユーザに必要とするものを選択させ、該当機能カラムに紐付けること。
【０１１０】
（２）機能カラム上で生存線を自由に伸び縮みさせ、また、生存線上で基本ステップ等の要素を上下に動かすことができるようにすること。
【０１１１】
（３）基本ステップに時刻制約（同期を含む）を付加させること。
【０１１２】
（４）後付け制御構造を付加させること。このとき、一定のルールに基づいて制御構造の付加が指定されたコンテクストで可能であるかを判定し、判定結果をユーザにフィードバックする機能があること。
【０１１３】
（５）上記のプログラミングツールの各要素に対し所定のグラフィック要素を表示できること。また、ユーザの利便のために、必要であれば意味的に等価である範囲でグラフィック要素を整列させ、あるいは並べ替え、またあるいは一時的に隠すなどの機能を提供すること。
【０１１４】
機能カラムと機能シーケンスの関係
１つの機能カラムはただ一つの機能シーケンス、つまり生存線と紐付けられることを前提としているが、機能カラムを複数のチャンネル又は測定機能を備える測定モジュールにも紐付けることができるものと考え、時間的に重ならない限りにおいては機能カラムに複数の機能シーケンス（生存線）を置くことができるように拡張することができる。これにより、より長いシーケンス、高度な測定内容を表現することが可能となる。
【０１１５】
制御構造における測定値データ参照の表現
条件分岐あるいはループといった制御構造（生存線上と大域制御構造の両方）において、測定結果から直接的又は間接的に決まる判定条件を用いることができる。もしこれをグラフィック要素として表現するのであれば、測定を行なう基本ステップから、判定条件を内包する制御構造（生存線上あるいは大域制御構造）に向けて、依存関係を示す矢印などを描画して図示する拡張を行うこともできる。ただし、基本ステップの実行タイミングの前後関係を示すという、機能カラムダイアグラムの持つ本来的な役割から見ると、表示内容がやや煩雑になることが懸念される。したがって、本発明による上記の実施形態では、こうしたデータの依存関係の表現は、グラフィック要素を用いず、条件判定の式の中でテキスト言語的な参照関係を使用することで行うことができる。それは、一般的な表計算アプリケーションにおいてセル間の参照を行なうためにセル番号（A1, B12など）を用いるのと同様の手段によることができる。
【０１１６】
非特許文献２〜非特許文献４のＶＥＥ、ＬａｂＶＩＥＷ、ＢｅｎｃｈＶｕｅ等に代表されるデータフローを主に表現するGraphical Programming Languageでは、制御の流れとデータの依存関係の両方を、線（矢印）によって図示するが、これがプログラムの分かりにくさ、複雑さの原因となることが懸念される。機能カラムプログラミングにおいては、プログラミングの方針としてデータの流れと制御の流れを分離して記述するようにすることに努めており、これが、より簡潔で制御の流れの理解が容易であり、かつ再利用を促進するプログラミングを可能にすることにつながっている。
【０１１７】
機能カラムプログラムの作成手順
図７を参照して、本発明によって提供される機能カラムプログラミング環境によりユーザに利用可能となる推奨されるプログラム作成手順７００を示すフローチャートについて説明する。
【０１１８】
まず、ステップ７０２で、事前準備を行うことができる。この事前準備の内容は、機能シーケンスライブラリを作成することである。機能カラムプログラミングの主眼は測定モジュールまたは測定器のエンドユーザ、特にプログラミングおよび測定器についての知識レベルの高くないエンジニアや研究者が、ありあわせの材料を使って手早く必要なプログラム（シーケンス）を作ることが出来るようにすることである。その基礎となる機能シーケンスは、ライブラリ部品として供給されることが本発明のコンセプトの前提となっている。機能シーケンスは基本ステップ、制御構造、ならびに待ち合わせ点の並びとを備え、このうち特に基本ステップは、測定モジュール制御の基本的な構造物となる。基本ステップの内部の実装は、対象とする測定モジュールのハードウェアや、場合によっては他の言語によるプログラミング環境等を利用して行なう。基本ステップは、設定パラメータなどのカスタマイズが可能である必要がある。本発明によるプログラミング環境では、後述のように、それらのカスタマイズを行なうためのユーザインタフェースが提供される。
【０１１９】
機能シーケンスの内部は、基本的に、エンドユーザによって変更又は修正を行うことは不可能である。したがって、本質的に意味の異なる機能は、別の機能シーケンスとして実装されなければならない。例えば、同じ電圧サンプリング測定を行なう機能シーケンスであっても、測定データの格納先がＣＳＶ（comma separated value）形式のファイルであるかデータベースであるかによって、個別の機能シーケンスとして実装することが、わかりやすさの点から望ましい。しかしながら、測定の基本ステップで格納先を選べるようなカスタマイズ可能なユーザインタフェースを用意して実装しておくことで重複するような機能シーケンスを２つ用意することを避けることもできる。
【０１２０】
なお、ステップ７０２は、ステップ７０４〜７０８とは別に、単独のステップとして実行し、終了することもできる。
【０１２１】
次にステップ７０４で、機能シーケンスの選択と機能カラムへの追加を行うことができる。図２５にステップ７０４の詳細を示す。具体的には、ユーザは、新たな機能カラムを機能カラムダイアグラム上に追加し（ステップ２５０２）、その機能カラムで記述する測定モジュールを用意された候補から選択し（ステップ２５０４）、次に選択した測定モジュールについて用意されている機能シーケンスライブラリの中から、使用する機能シーケンスを選択する（ステップ２５０６）ことができる。選択した機能シーケンスは、追加した機能カラムに表示される（ステップ２５０８）。
【０１２２】
ここで、ユーザが選ぶ機能シーケンスは、選択した測定モジュールごとに、使用可能なもののリストが表示され、ユーザはその中から所望の機能シーケンスを選ぶことができる。これらの、測定モジュールのリストや、機能シーケンスのリストは、上述のようにあらかじめ用意され、多くは、本発明による機能カラムプログラミング環境の提供者により提供される。
【０１２３】
なお、この段階では、他の機能カラムの有無に関係なく、生存線とその生存線上に配置される基本ステップとは、デフォルトの適当な位置に置かれるだけである。ステップ７０４が終了した状態では、いくつかの機能カラムを追加しただけであり、そのままプログラムを実行したとしても、複数の測定モジュールについての基本ステップの同期などの設定がまだ行われてないので、おそらく所望の測定シーケンスを実現することはできない。
【０１２４】
次にステップ７０６で、基本ステップの実行タイミングの調整を行う。図２６にステップ７０６の詳細を示す。具体的には、ユーザは、生存線を伸ばして作業領域を作り（ステップ２６０２）、複数の機能カラムにおける基本ステップの前後関係が概略的に適切になるように並べ（ステップ２６０４）、大域制御や同期について詳細な設定を行い（ステップ２６０６）、最後に基本ステップや各種要素のパラメータの設定を行う（ステップ２６０８）ことができる。なおここで、ステップ２６０２〜２６０８のうちのいくつかの実行を省略することができる。さらに、ステップ２６０２〜２６０８のうちのいくつかの実行を入れ替えることができる。
【０１２５】
より詳細には、ステップ２６０２では、機能カラムをいくつか追加した直後の機能カラムダイアグラムには、デフォルトの適当な位置に置かれた機能シーケンスが並列に並んでいるだけであるので、ユーザはまず、各機能シーケンスの生存線を、作業に適した適切な長さに延ばす操作を行なうことができる。この生存線の長さはプログラムの実行時間とは直接関係がないので、基本ステップの想定される所望の配置に十分と思われる長さを考えて、生存線の長さを決めることができる。生存線は、この後、必要に応じていつでも伸び縮みさせることができる。
【０１２６】
次にユーザは、ステップ２６０４で、各基本ステップの前後の位置関係をラフに並べることができる。実行時間の前後関係は、基本的に各グラフィック要素の上側又は上辺によって決定されるので、ユーザは上側又は上辺の前後関係を意識しながら、グラフィック要素の上下方向の位置を調整する。この段階で、必要に応じて図２Ｃ、２Ｅ〜２Ｇに示されるような、各種のディレイ指定を行うことができる。すなわち、この段階で、図２Ｃ、２Ｅ、２Ｆに示されるように、各基本ステップの上、下、又は右にディレイ指定ステップを追加したり（ただし他のグラフィック要素と重なってはならない）、基本ステップ時間制約を示す上側又は上辺の強調表示から大域制御用列まで補助線を延伸し、その補助線の端部の近傍にその基本ステップの開始時刻を記述して指定することができる。
【０１２７】
次にユーザは、ステップ２６０６で、必要に応じて大域的な制御要素を機能カラムダイアグラム上に記述することができる。具体的には、大域制御の後付けと、同期の設定を行う。例えば、同期する基本ステップは同期線を基準に横一線に並ぶように表示が整理される必要があり、必要に応じて、影響を受ける生存線上の前後のグラフィック要素の配置を、ツールを使用して調整する。
【０１２８】
次にユーザは、ステップ２６０８で、各グラフィック要素が内部に詳細な設定項目あるいは条件記述などをそれぞれもっているので、これらを適切な値又は選択肢にセットすることができる。なお、これらの設定の入力方法の詳細については後述する。
【０１２９】
次にステップ７０８で、ユーザは、プログラムの実行、デバッグ、保存を行うことができる。
【０１３０】
ここで、本発明によるプログラミング環境における、測定データの処理について考察する。
【０１３１】
以上のように、本発明による機能カラムプログラミングは、多くは数ステップ、数モジュール程度の比較的単純な分散制御シーケンスを、基本ステップの前後関係の配置を決めるだけの簡単な操作で、作成することを目標としている。測定データに依存した制御はある程度は想定しているが、複雑な計算に基づいた高度な制御までは、対象と考えていない。
【０１３２】
原則として測定データは、各基本ステップから直接にログファイル、画面もしくはデータベースに送られるように処理されるべきであり、その観点から、機能カラムダイアグラムのグラフィック要素の中に、データの流れを示すようなものは定義していない。ただし本発明によるシーケンス言語の定義としては、測定データをこの基本ステップまたは制御構造に含まれない外部に参照させ、他の基本ステップまたは制御構造に伝達することができる機能を用意することができる。
【０１３３】
上記の測定データに関する機能は、具体的には、次のように設定して利用する。各基本ステップ、あるいは制御構造は、測定データ用のパラメータを事前に定義することができ、そのパラメータは他の基本ステップまたは制御構造に対して供給するように指定することができる。ユーザはそのパラメータに対して識別用のユニークなＩＤを割り振ることができる。ＩＤを割り振ったデータは、そのＩＤを使って他の基本ステップまたは制御構造から参照可能となる。こうした設定を行なった基本ステップまたは制御構造を、データソースと呼ぶ。
【０１３４】
このデータソースに対して、データの受け手となるデータコンシューマは、別の生存線上の基本ステップまたは制御構造であり、プログラミングツールの実装により定められた方法で、基本ステップのパラメータもしくは制御構造の設定パラメータ又は条件式などに埋め込んだＩＤにより、測定データを参照し、読み出して処理することができる。こうして設定されたパラメータは、実行時に値が参照されることになる。
【０１３５】
データソースとデータコンシューマの実行の前後関係は、常に適切に保たれなければならない。また、測定モジュール間のデータの移動を伴うときには、移動に伴うレイテンシが確保される必要がある。あるいは、データの循環参照が予想される場合には、そのような場合のエラー処理についても実装する必要となる場合がある。
【０１３６】
次に、図７に示したフローチャートに関して、本発明による機能カラムダイアグラム上でどのようにプログラミングが行われるかを、図８〜２４の表示の例を参照して説明する。
【０１３７】
図８に、本発明による機能カラムダイアグラム８００のまだプログラムが記述されてない初期画面を示す。左から２番目の列８０２の上端には、プログラミングの開始を用意するために、測定モジュールを追加するためのプラス記号のアイコン８０４が予め表示されている。最初の機能カラムのプログラミングを始めるために、メインコントローラの入力装置として用意されたマウスなどのポインティングデバイスを用いて、ポインタ８０６を左から２番目の列８０２の上端に移動させ、測定モジュールを追加するためのプラス記号のアイコン８０４を、一例として、マウスで左クリックする。
【０１３８】
すると、図９に９０２として示される設定ウインドウが表示され、測定モジュールを選択するためのフィールド９０４上でマウスを操作することで、目的の測定モジュールをプルダウンリストの中から選択することができる。
【０１３９】
すると、図１０にウインドウ１００２で示されるように、図９で選択した測定モジュール「B1182A」について利用可能な機能シーケンスを検索するウインドウが表示される。この画面で、ユーザは、例えば、B1182Aの多数の機能シーケンスから選択が容易になるように、検索フィールド１００６に、キーボードなどの入力デバイスを用いて検索キーワードとして「DC measure」を入力し、マウス等で検索を実行する。その結果、１００８で示されるように検索したキーワードを含む機能シーケンスの候補がウインドウ１００２に表示される。ここで、ユーザは、例えば、マウスを使って、一番上の候補である「DCV measure | B1182A」を選択する。
【０１４０】
すると、図１１に示されるように、左から２番目の列のタイトル行１１０２には選択した機能シーケンスのタイトルが表示され、左から２番目の列の機能カラムのプログラミング領域１１０６には、選択された機能シーケンス１１０４が表示される。図１１の画面では、選択された機能シーケンス１１０４は、「ＤＭＭを接続し、モードを選択する」、「電圧を測定し、データを格納する」、「ＤＭＭを切断する」の基本ステップを備えている。ここで、ＤＭＭは、Digital Multi-Meterの略称である。また、測定された電圧データは、ＣＳＶ形式などの所定の形式でファイルに格納される。図１１の画面の左から３番目の列のタイトル行には、新しい測定モジュールについてのプログラミングを容易にするプラスアイコン１１０８が表示されている。
【０１４１】
以上と同様に機能カラムダイアグラムへの操作を続けることで、図１２に、左から３番目の列に対して、測定モジュールB1185Aの機能シーケンス「Sin(x) Function」の機能シーケンス１２０４がプログラミング領域１２０６に表示された状態を示す。その結果、図１２の機能シーケンス１２０４は、「接続し、信号条件を設定する」、「波形（出力）をスタートする」、「波形（出力）を停止する」の基本ステップを備えている。
【０１４２】
次に、機能カラムダイアグラムに表示された２つの機能シーケンスについて、それぞれの機能シーケンスの下端１３０２、１３０４をマウス操作により下に引っ張って、生存線を延長させて、基本ステップの配置についての作業可能領域を広くする操作を行った状態を、図１３に示す。
【０１４３】
次に、２つの機能シーケンス上の各基本ステップについて、それぞれの内容から、時間軸上の前後関係の配置が適切になるように、基本ステップ１４０２、１４０４、１４０６をマウスで移動させた状態を、図１４に示す。
【０１４４】
次に、図１４で移動させた基本ステップ１４０２に先立つディレイを付加する操作として、基本ステップ１４０２上でマウスを左クリックし、表示されたメニュー１５０２からディレイを挿入する位置を指定する命令「Add Delay Before...」を選択する状態を、図１５に示す。
【０１４５】
次に、図１５の操作に続いて、ディレイを付加する設定で遅延時間「1500 msec」を入力し、基本ステップ１４０２に先立つディレイとして、入力した遅延時間が表示されている状態のディレイ設定１６０２が表示された状態を、図１６に示す。
【０１４６】
次に、複数の基本ステップを同期させる操作の説明として、まず、コントロールキーを押しながら、基本ステップ１７０２と１７０４を順に左クリックし、この２つのステップが共に選択されて強調表示された状態を、図１７に示す。
【０１４７】
次に、複数の基本ステップを同期させる操作の説明の続きとして、図１７の状態でマウスを右クリックし、表示されたメニュー１８０２から、同期を指定するための命令「Synchronize Group」を選択する状態を、図１８に示す。
【０１４８】
次に、複数の基本ステップを同期させる操作の説明のさらなる続きとして、図１８の操作の結果、基本ステップ１９０２と１９０４のそれぞれのブロックの上側又は上辺が同じ高さになるように上下位置が調整され、それぞれのブロックの上側又は上辺が太線１９０２ａ、１９０４ａで強調表示されるようになり、さらにそれぞれのブロックの上側又は上辺１９０２ａ、１９０４ａが同期実行されることを示す点線の補助線１９０６が２つの機能カラムにわたって引かれた表示の状態を、図１９に示す。
【０１４９】
次に、複数の基本ステップを同期させる操作の説明のさらなる続きとして、図１９の操作の後、基本ステップ２００４の詳細設定をする操作として、基本ステップ２００４上でマウスを左クリックして、表示された詳細設定ウインドウ２００２の４つの入力フィールドに、所望の値又は設定を入力した状態を、図２０に示す。
【０１５０】
次に、大域制御としてループ制御構造を設定する操作を示す例として、図１１同様の測定モジュールB1182Aの機能シーケンス「DCV Measure」２１０４が表示されている機能カラムダイアグラム上に、マウスにより、例えばメニューからループ制御構造の挿入を選択することにより、ループ制御構造シンボル２１０２を、大域制御用の列２１０６に矢印２１０８で示されるように移動させる状態を、図２１に示す。
【０１５１】
次に、大域制御としてループ制御構造を設定する操作の続きとして、ループ制御構造シンボル２１０２を、大域制御用の列２１０６に、基本ステップ２２１０をループ対象とするように配置し、その操作に伴って、一点鎖線の大域待ち合わせ線２２０２、２２０４が表示され、生存線上に待ち合わせ点２２０６、２２０８が表示されている状態を、図２２に示す。
【０１５２】
次に、大域制御としてループ制御構造を設定する操作のさらなる続きとして、ループ制御構造シンボル２１０２を左クリックして、詳細設定ウインドウ２３０２を表示させ、「リピートモード」のフィールド２３０４から、適切な選択肢をマウスで選択している状態を、図２３に示す。
【０１５３】
次に、大域制御としてループ制御構造を設定する操作のさらなる続きとして、図２３の詳細設定ウインドウ２３０２において、「リピートモード」のフィールドの設定を終了し、「ループカウント」フィールド２４０２に、設定値１５０を入力した状態を、図２４に示す。このように一連の設定をすることで、大域制御としてのループ制御構造を設定することができる。
【０１５４】
図２１〜２４を参照して、大域制御構造の指定方法についてループ構造を例に説明したが、上記の方法を、図４、５で説明した各種の大域制御構造に適用することができ、さらに、図１９の複数の測定モジュールについて記述された機能カラムダイアグラムに適用することもできる。
【０１５５】
本発明によるプログラミング環境を搭載した測定システムのブロック図
図１に、上述のプログラミング環境を搭載した測定システム１００のブロック図を示す。コントローラ１０２は、システム内のモジュール同士でのタイミング同期のためのタイマ（Synchronized Timer）１０４と、演算処理を行うプロセッサ１０６と、プロセッサ１０６からアクセス可能で、データおよびプログラムを格納するメモリ１０８とを備える。タイマ１０４はプロセッサ１０６からアクセス可能であるとする。コントローラ１０２は、さらに入力操作のためのキーボード及びポインティングデバイス１１４と表示用のディスプレイデバイス１１６を備える。コントローラ１０２は、さらに、図示しないプリンタ等の出力デバイスを備えることができる。ここで、ポインティングデバイスは、マウス、トラックボール、及び／又はタッチスクリーンとすることができる。コントローラ１０２のプロセッサ１０６及びメモリ１０８上では、上述の機能カラムプログラミング環境のプログラムを実行することができ、試験のための機能カラムダイアグラムを記述することができる。コントローラ１０２は、１以上の測定モジュール１２０、１３０、１４０を制御して、信号線１５２、１５４、１５６を介して被試験装置ＤＵＴ（Device Under Test）１５０を試験することができる。各制御モジュール１２０、１３０、１４０は、制御モジュール１２０で代表して説明すると、タイミング同期のためのタイマ１２２、演算処理のためのプロセッサ１２４、プロセッサ１２４からアクセス可能で、データおよびプログラムを格納するメモリ１２６と、プロセッサ１２４に制御されて、所定の測定機能を実施する機能モジュールすなわち測定機能（Measurement Function）１２８を備える。タイマ１２２はプロセッサ１２０からアクセス可能であるとする。上記の測定モジュール１２０の構成は、他の測定モジュール１３０、１４０についても同様である。タイマ１２２は、コントローラ１０２のタイマ１０４、他の測定モジュール１３０，１４０のタイマ１３２、１４２とタイミング同期パス（Timing Sync Path）又は同期制御線１１０で接続され、測定モジュール１２０のタイミングをコントローラや他の測定モジュールと同期する。プロセッサ１２４は、コントローラ１０２のプロセッサ１０６、他の測定モジュール１３０，１４０のプロセッサ１３４、１４４とデータパス（Data Path）又はデータ線１１２で接続され、各種データの送受信を行う。
【０１５６】
コントローラ１０２のプロセッサ１０６とメモリ１０８は、測定シーケンスを実行するときには、測定開始前に、メモリ上の測定シーケンス実行用の領域に、大域制御（ループ、分岐等）関係の実行部分についてのプログラム及び設定等のデータがコピーされて、実行することができる。
【０１５７】
各測定モジュールのメモリには、測定開始前に、コントローラ１０２から、各測定モジュールについての測定シーケンスの実行に関するプログラム及び設定等のデータがダウンロードされ、測定開始とともに、各測定モジュールのプロセッサ１２４、１３４、１４４により、測定シーケンスが実行される。
【０１５８】
コントローラ１０２は、Ｗｉｎｄｏｗｓ（登録商標）又はＬｉｎｕｘ（登録商標）等のＯＳ（Operating System）を搭載した外付けのＰＣ（Personal Computer）などのコンピュータに、同期制御用のタイマを搭載したものとすることができる。あるいは、コントローラ１０２は、測定器内に搭載されたコントローラであって、ＧＵＩ（Graphical User Interface）等の統合環境のプログラムの他、測定器を統合的に制御するプログラムを実行することができるようなプロセッサとメモリを備えたコンピュータとすることができ、さらに同期制御用のタイマを搭載したコントローラ１０２とすることもできる。
【０１５９】
測定モジュール１２０、１３０、１４０上の測定機能１２８、１３８、１４８は、単一のチャンネルの測定機能ユニットを搭載したものとすることができる。あるいは、複数チャンネルの測定機能ユニットを搭載するもの、又は、複数の異なる測定機能ユニットを複合的に搭載したものとすることができる。
【０１６０】
測定モジュール１２０、１３０、１４０のプロセッサ、メモリ、タイマは、上記のような測定機能をタイミング同期の機能を備えながら、ダウンロードされた測定シーケンスを実行及び制御できる機能を備えている。
【０１６１】
測定モジュール１２０、１３０、１４０は、コントローラ１０２と同じ筐体内に搭載することができる。あるいは、測定モジュール１２０、１３０、１４０は、コントローラ１０２とは異なる別の測定器の筐体内に収納することもできる。さらに、例えば、測定モジュール１２０及び１３０と、測定モジュール１４０は、異なる測定器に収納されることができる。その場合、測定モジュール１４０が収納される測定器には、別のコントローラを備えた測定器とすることができる。
【０１６２】
タイミング同期パス１１０及びデータパス１１２は、専用の制御線を備えたバスとすることもできるし、ＬＡＮ、ＷＡＮなどのネットワーク回線を利用して実施することもできる。タイミング同期パス１１０及びデータパス１１２にネットワーク回線を利用する場合には、測定モジュール１２０、１３０、１４０は、コントローラ１０２からは遠隔地に設置されているものとすることができ、タイミング同期パス１１０には、IEEE 1588 Precision Time Protocol等の規格を使用することができる。
【０１６３】
プログラムの実行においては、コントローラ１０２のタイマ１０４が発生するスタートトリガーに同期して、コントローラのプロセッサ１０６と全ての測定モジュールのプロセッサ１２４，１３４，１４４が同時にプログラム実行を開始する。すなわち、各タイマ１２２、１３２、１４２によって各ステップの実行開始時刻に到達すると、各プロセッサ１２４、１３４、１４４は、予め割り当てられた動作を実行する。コントローラ１０２の条件分岐に例えば測定モジュール１３０の測定値が必要な場合には、その測定値が利用可能になり次第、測定モジュール１３０のプロセッサ１３４からコントローラ１０２のプロセッサ１０６にデータパス１１２を介してその測定値が転送される。各ステップの実行にかかる時間、データの転送が完了するのにかかる時間などは、各プロセッサが実行しようとする次のステップのタイミングに制約を与えるので、その時間以内に確実に完了できる最大遅延時間に注意して設計が必要であり、本発明によるプログラミング環境では、その最大遅延時間を守ってプログラミングされるよう、ユーザは誘導される。
【０１６４】
また、上記の構成により、コントローラ１０２のタイマ１０４、各測定モジュール上のタイマ１２２、１３２、１４２のうちのいくつかまたは全部を利用することで、上述の図２Ｄ〜２Ｇに示した、同期動作、各種のディレイ指定付きの同期動作、基本ステップとの待ち合わせ動作、基本ステップの開始時刻指定を実行することができる。
【０１６５】
さらに、上記の構成により、コントローラ１０２のタイマ１０４、プロセッサ１０６、メモリ１０８の組み合わせのユニットが、いわゆるマスタシーケンサの役割を果たし、測定モジュール１２０、１３０、１４０のそれぞれのタイマ、プロセッサ、メモリの組み合わせのユニットが、いわゆるスレーブシーケンサの役目を果たすことができるので、結果として、非特許文献２〜非特許文献４ほど高性能なタイミング精度ではないにしろ、タイミング精度的に従来の測定器を組み合わせたシステムよりもタイミングの同期に関してより正確に管理された測定を実行するシステムを提供することができる。
【０１６６】
なお、図１では、測定モジュールの数は例示のために３つとしているが、それに限られず、１以上の任意の数の測定モジュールについて測定システム１００を構築することができ、その場合も、上述のプログラミング環境では、機能カラムダイアグラムの測定モジュールに対応するカラムを横方向に追加することで容易に対応できることも理解されよう。
【０１６７】
さらに、上述のプログラミング環境は単一のＰＣ等のコンピュータ上にも構築することができ、この単一のＰＣにとっては測定モジュールとはオフラインの状態のプログラミング環境上でプログラムを作成し、プログラム作成後は、この単一のＰＣをＬＡＮ又はＷＡＮ等のネットワークで図１に記載されるような測定システムに接続することにより、プログラムを測定システムから実行することができる。
【０１６８】
あるいは、この単一のＰＣ上のオフラインのプログラミング環境でプログラムを作成した後に、この単一のＰＣと各測定モジュールをネットワークによりオンラインとなるように接続して、プログラムを実行することも可能であり、このことは上述の図１に関する説明から理解することができる。
【０１６９】
さらに、上述の機能カラムダイアグラムの画面の配置に関し、機能カラム上の基本ステップが時間の経過に従って上から下に向けて配置されている点について、それとは逆に、時間の経過に従って下から上に向けて配置するような変形を行うことができる。さらに、大域制御用の列が画面の一番左の列に配置され、複数の測定モジュールに関する機能カラムがその右側に並んでいる点についても、左右を逆に配置したり、大域制御用の列を中央寄りの列に配置するなどの変形を行うこともできる。
【０１７０】
さらに別の機能カラムダイアグラムの画面配置として、ダイアグラムの画面を90度反時計方向に回転させて、複数の機能カラムを複数の機能ロウ（function row）として実現し、画面横方向に時間の経過に従って左から右に基本ステップが配置され、同期が縦線で表示される変形や、それに伴い大域制御用の列を大域制御用の行として、最上位の列に配置する変形や、あるいは、時間の経過を逆に表示するなどの変形も行うことができる。
【０１７１】
以上、本発明の実施形態について説明したが、以上の開示は例示を目的とするものであって、当業者は、従来技術を用いて、様々な変更、置き換え、改変をすることができよう。そのような変更は、本発明の請求範囲内に含まれるべきである。
【符号の説明】
【０１７２】
１００  測定システム
１０２  コントローラ
１０４、１２２、１３２、１４２  タイマ
１０６、１２４、１３４、１４４  プロセッサ
１０８、１２６、１３６、１４６  メモリ
１１４  キーボード及びポインティングデバイス
１１６  ディスプレイデバイス
１２０、１３０、１４０  測定モジュール
１２８、１３８、１４８  測定機能
１５０  ＤＵＴ
１５２、１５４、１５６  信号線
【図１】
2019016095.tif 000003
【図２Ａ】
2019016095.tif 000004
【図２Ｂ】
2019016095.tif 000005
【図２Ｃ】
2019016095.tif 000006
【図２Ｄ】
2019016095.tif 000007
【図２Ｅ】
2019016095.tif 000008
【図２Ｆ】
2019016095.tif 000009
【図２Ｇ】
2019016095.tif 000010
【図３Ａ】
2019016095.tif 000011
【図３Ｂ】
2019016095.tif 000012
【図３Ｃ】
2019016095.tif 000013
【図３Ｄ】
2019016095.tif 000014
【図４Ａ】
2019016095.tif 000015
【図４Ｂ】
2019016095.tif 000016
【図４Ｃ】
2019016095.tif 000017
【図４Ｄ】
2019016095.tif 000018
【図５Ａ】
2019016095.tif 000019
【図５Ｂ】
2019016095.tif 000020
【図５Ｃ】
2019016095.tif 000021
【図５Ｄ】
2019016095.tif 000022
【図６】
2019016095.tif 000023
【図７】
2019016095.tif 000024
【図８】
2019016095.tif 000025
【図９】
2019016095.tif 000026
【図１０】
2019016095.tif 000027
【図１１】
2019016095.tif 000028
【図１２】
2019016095.tif 000029
【図１３】
2019016095.tif 000030
【図１４】
2019016095.tif 000031
【図１５】
2019016095.tif 000032
【図１６】
2019016095.tif 000033
【図１７】
2019016095.tif 000034
【図１８】
2019016095.tif 000035
【図１９】
2019016095.tif 000036
【図２０】
2019016095.tif 000037
【図２１】
2019016095.tif 000038
【図２２】
2019016095.tif 000039
【図２３】
2019016095.tif 000040
【図２４】
2019016095.tif 000041
【図２５】
2019016095.tif 000042
【図２６】
2019016095.tif 000043
【図２７Ａ】
2019016095.tif 000044
【図２７Ｂ】
2019016095.tif 000045
【図２８】
2019016095.tif 000046
【図２９】
2019016095.tif 000047
【図３０】
2019016095.tif 000048