• No : 750
  • 公開日時 : 2008/01/24 20:33
  • 更新日時 : 2024/10/30 16:10
  • 印刷

AioInpBdMemの構造体と設定値について

関数 AioInpBdMemで使用している構造体と設定値について、関数ヘルプ記載内容への具体的に教えてください。

カテゴリー : 

回答

対象製品型式: API-AIO(98/PC)
 
関連情報:
 この関数では、必要設定値の一部をあらかじめひとまとめにしてメモリ上に用意しておき、関数実行時に
 はそれらの値の代わりにメモリアドレスを指定します。

 「構造体」とは、このあらかじめメモリ上に用意しておく各設定値の集合体のことで、Visual Basicでは
 「ユーザー定義型」を用います。

 なお、C言語ではメモリアドレスを直接指定することができますが、Visual Basicにはそういった機能が
 無く、アドレスを取得するために、弊社のAPIドライバでは「LpWord」という独自の関数を用意して
 います。

 アナログ入力の設定状態を格納する「構造体」の設定値について、以下に補足します。

 ●「Scan」
 サンプリング回数です。
 「ここで指定した回数分×チャネル数」のデータをボードメモリに収集することになります。

 ●「ScanClk」
 スキャンクロックを指定するための設定値です。
 スキャンクロックとは、1チャネル当たりのA/D変換時間で、チャネル間のサンプリングタイミングの
 時間差です。
 
 例えば、各チャネル間のA/D変換を「50usec」間隔で行いたい場合には、
  ScanClk = 40×スキャンクロック(usec)-1
 ですので、
  ScanClk = 40×50-1
   = 2000-1
   = 1999
 となり、ScanClkに「1999」を設定することで、スキャンクロック「50usec」を
 指定することができます

 また、「25usec」間隔としたい場合には、
  ScanClk = 40×25-1
   = 1000-1
   = 999
 となり、ScanClkに「999」を設定すればよいことになります


 ●「SmpClk」
 サンプリングクロックを指定するための設定値です。
 例えば上記「Scan」が50であれば、50回のサンプリングを行うわけですが、サンプリングクロックは、
 それらのサンプリングを行う(スタートする)間隔となります。
 値の設定方法は、スキャンクロックと同じ式で
  SmpClk = 40×サンプリングクロック(usec)-1
 となります

 スキャンクロックとサンプリングクロックの関係については、下記FAQを参照ください。
  サンプリングクロックとスキャンクロックの違いは何ですか? 
 
 サンプリングクロックのタイミングは、前回のスキャンが完了している必要があるため、サンプリング
 クロックの値は、
  サンプリングクロック > スキャンクロック×チャネル数
 を満たすように設定する必要があります。