検査測定プログラムの作成に役立つ実用サンプルプログラム集です。お客様からのご要望を元に、そのまま検査などのご用途でご利用いただける完成度でご提供しております。ソースコードに親切丁寧なコメント・アドバイスを記載しておりますので、プログラム開発のベースプロジェクトに、コーディングの参考にもご利用ください。
収集データを定期的にファイルに保存しながら、連続サンプリングを行います。パフォーマンス測定アプリケーションとして、ご使用環境下における最大収集スループットを把握する目的にも使用できます。収集スループット最大化のため、メモリからのデータ取得プロセスはポーリング処理で行われ、ファイル保存はバイナリ形式で行います。保存したバイナリデータをCSVに変換する機能も用意しています。
CSV形式の波形データファイルを読み込み、これに基づく波形電圧出力を行います。クロック周期の変更が可能です。シミュレーション波形出力などにご利用ください。
DC電圧測定を行い、設定した目標値に対するヒストグラムを作成します。また、標準偏差、最大・最小・平均の統計データを計算します。ヒストグラムのCSVファイル保存も行います。出荷前検査や特性研究などにご利用ください。
大容量・高速サンプリングを行い、サンプリングしたデータを一括してCSVファイルへ保存するAI-1204Z-PCI専用のプログラムです。振動試験や落下試験などのデータ分析にご利用ください。
DC電圧が一定の範囲内に収まっているかどうかを測定検査するプログラムです。デバイス内蔵のプログラマブルタイマを使用して、異常検出時の信号の状態を高速に取り込むことができます。車両走行時における車載機器の振動検査など高速な信号の収集にご利用ください。
DC電圧が一定の範囲内に収まっているかどうかを測定検査するプログラムです。システムタイマの周期で信号の収集を行うためデバイスを選びません。温度やバッテリの出力電圧など、緩やかな信号を測定する用途にご利用ください。
複数のデバイスでサンプリングクロックとサンプリング開始トリガを同期させて、多チャネルサンプリングを行うプログラムです。多数のセンサーを使って、電圧信号を同時に取り込む必要のある測定検査システムなどにご利用ください。
デバイスのBOARD ID(ロータリースイッチ)を設定して、同期バスコネクタ間(CN2→CN3)を専用のフラットケーブル(標準添付品)で接続します。図はID:0をマスタ、ID:1とID:2をスレーブとして3つのデバイスを同期させる場合です。
コンテックのデバイスには、入出力機能と同期バスの因果関係を定義して連動させることができるECU(イベントコントローラユニット)という回路が搭載されている製品があります。ECUを搭載したデバイスは、同期バスを通じて他のデバイスへクロック信号やトリガ信号を出力したり、入力したりすることができます。
同期バスには汎用的に使用できる3本の制御ラインがあります。サンプルグプログラムでは、1本目をサンプリングクロックの同期用として、2本目をサンプリング開始トリガの同期用に使用しています。
ECUの設定は、API関数 AioSetEcuSignal を実行して行います。 接続先(Destination)と接続元(Source)をパラメータとして、必要なだけ繰り返し定義していきます。
接続先を同期コネクタのマスタ信号1(AIOECU_DEST_MASTER1)、接続元をアナログ入力内部クロック信号(AIOECU_SRC_AI_CLK)に設定します。
接続先を同期バスのマスタ信号2(AIOECU_DEST_MASTER2)、接続元をアナログ入力変換開始信号(AIOECU_SRC_START)に設定します。
これでマスタのサンプリングクロックとサンプリング開始トリガがスレーブに送信されます。同期バスから制御信号出力は、自動的に行われますので、別途関数などの実行は必要ありません。
接続先をアナログ入力内部クロック信号(AIOECU_DEST_AI_CLK)、接続元を同期バスのスレーブ信号1(AIOECU_SRC_SLAVE1)に設定します。
接続先をアナログ入力変換開始信号(AIOECU_DEST_AI_START)、接続元を同期バスのスレーブ信号2(AIOECU_SRC_SLAVE2)に設定します。
同期運転の場合、先にスレーブのサンプリングを開始してからマスタのサンプリングを開始するのがポイントです。(先にスレーブのサンプリングを開始して、マスタがサンプリングを開始するまでの間、スレーブは開始トリガ待ちの状態にします。)
API関数 [AioStartAi] はスレッドに対して非同期で動作、サンプリングの開始をハードウェアに指示すると、すぐに処理を戻します。一方のAPI関数 [AioStartAiSync] は、スレッドに同期して動作するためサンプリングが完了するまで処理を戻しません。
サンプルプログラムでは、スレーブのサンプリング開始にAPI関数 [AioStartAi]、マスタのサンプリング開始にAPI関数 [AioStartAiSync] を使っています。スレーブはマスタに同期して動作しているため、マスタのサンプリングが完了している(API関数 [AioStartAiSync] から処理が戻った)ということは、スレーブのサンプリングも完了しているというわけです。サンプルプログラムで、スレーブの状態を見ずにマスタにAPI関数 [AioStartAiSync] 実行後、すぐにデータ取得(変数に格納)して問題ないのはこのためです。