ユーザーバッファモードにて、指定サンプリング回数以外の停止条件でジェネレーティングを行うサンプルです。
このサンプルプログラムは、アナログ出力機能を持ったデバイスの選定が必要です。
サンプル仕様 |
※サンプルプログラムの初期値です。デバイスドライバの初期値と異なりますので、ご注意ください。 |
プログラム名 |
./ao_generating_infinite_user |
変換データ転送方式 |
1(ユーザーバッファモード) |
メモリタイプ |
1(RING:繰り返し出力あり) |
イベント |
デバイス動作停止イベント、指定転送数毎イベント、ジェネレーティングクロック周期エラーイベント、DA変換エラーイベント |
指定転送数毎イベント |
500 |
1.希望するプログラム名を指定し、プログラム実行させると、上記のような外観のCUI(Character
User Interface)メニューが表示されます。
ソフトウェアのバージョンによっては外観が異なることがあります。
2.デバイス初期化処理
・[1 : AioInit]をコマンド選択すると、デバイス名を指定することができます。
指定デバイスの利用開始することをデバイスドライバへ通知します。
デバイス名を指定すると、AioInitが実行され、CUIメニューが再度表示されます。
3.アナログ出力設定
・[3 : AioSetAoRangeAll]をコマンド選択すると、レンジを指定することができます。
レンジを指定すると、AioSetAoRangeAllが実行され、CUIメニューが再度表示されます。
利用するデバイスによっては、デバイス上のジャンパーピンで出力レンジを変更しないと設定が有効とならない場合があります。
4.ジェネレーティング設定
・[4 : AioSetAoChannels]をコマンド選択すると、チャネル数を指定することができます。
チャネル数を指定するとAioSetAoChannelsが実行され、CUIメニューが再度表示されます。
なお、開始チャネル番号は0ch固定です。例えば、チャネル数 3を指定した場合、0ch~2chからのデータ出力となります。
5.ジェネレーティング条件設定
・[5 : 条件設定]をコマンド選択すると、条件設定メニューが表示されます。
・条件設定メニューから「1 : 開始条件」を選択すると、開始条件メニューが表示されます。
開始条件メニューから、希望する開始条件を選択します。
希望する開始条件を指定すると、条件設定メニューが再度表示されます。
・条件設定メニューから[2 : ジェネレーティングクロック条件]を選択すると、ジェネレーティングクロックタイプ メニューが表示されます。
ジェネレーティングクロックタイプ メニューから、希望するクロックタイプを選択します。
内部クロックを選択した場合、ジェネレーティングクロック周期を[μsec]単位で入力しします。指定できるジェネレーティングクロック周期の最小値は、利用するデバイスによって異なります。
外部クロックを選択した場合、デバイスに接続された外部クロックの周期でデータを出力します。外部クロック入力タイミングも、立ち上がり、立下りから選択できます。
なお、指定したチャネル数の値も考慮してクロック周期を決める必要があります。
詳細は、[用語集]サンプリング クロックエラーの項目を参照ください。
希望するジェネレーティングクロックを指定すると、条件設定メニューが再度表示されます。
・条件設定メニューから「3 : 停止条件」を選択すると、希望する停止条件を指定できます。
外部トリガ立ち上がり、外部トリガたち下りを選択できます。
希望する停止条件を選択すると、条件設定メニューが再度表示されます。
・条件設定メニューから「b : 戻る」を選択すると、トップメニューへ戻ります。
6.ジェネレーティング設定
・[6 : ユーザーバッファ設定]をコマンド選択すると、ジェネレーティング回数を指定することができます。
ユーザーバッファに格納するジェネレーティング回数を指定すると、ジェネレーティング用データが生成され、デバイスドライバへ通知します。
ジェネレーティング用データが生成されると、CUIメニューが再度表示されます。
生成データ: 指定レンジに応じた正弦波(サイン波)が生成されます。指定したジェネレーティング回数で1周期となります。
複数チャネルの場合、位相が1/4周期(90度)遅れた正弦波(サイン波)が、各チャネルに対して生成されます。
生成データ例:
7.指定ジェネレーティング回数出力イベント設定
・[7 : AioSetAoEventTransferTimes]をコマンド選択すると、データ転送回数を指定することができます。
データ転送回数を指定すると、CUIメニューが再度表示されます。
8.ジェネレーティング動作
・[8 : ジェネレーティング開始]をコマンド選択すると、デバイスからデータ出力が開始されます。
デバイスからデータ出力が開始されると、CUIメニューが再度表示されます。
[7 : AioSetAoEventTransferTimes]で指定したデータ転送回数分のデータが、デバイスから出力されるとイベントが発生します。
イベントが発生する毎に、転送位置や繰り返し出力回数の表示値が更新されます。
・[9 : AioGetAoTransferCount]をコマンド選択すると、転送位置が表示されます。
転送位置が表示されると、CUIメニューが再度表示されます。
・[10 : AioGetAoTransferLap]をコマンド選択すると、繰り返し出力回数が表示されます。
繰り返し出力回数が表示されると、CUIメニューが再度表示されます。
・[11 : AioGetAoStatus]をコマンド選択すると、ステータスが表示されます。
ステータスが表示されると、CUIメニューが再度表示されます。
・[12 : ジェネレーティング停止]をコマンド選択すると、デバイスからのデータ出力が停止します。
デバイスからのデータ出力が停止すると、CUIメニューが再度表示されます。
9.終了処理
・[13 : AioExit]をコマンド選択すると、現デバイス利用が完了したことデバイスドライバへ通知します。
プログラムを終了させることなく、異なるデバイス(例:AIO001など)からデータ出力ができます。
AioExitが実行されると、CUIメニューが再度表示されます。
・再び、データ出力処理を行う場合は、[1 : AioInit]をコマンド選択し、新たなデバイス名を指定し、デバイス初期化処理を行ってください。
10.プログラムの終了処理
・[q : 終了]をコマンド選択すると、プログラムが終了します。