デバイスバッファモードにおいて、API-AIO(LNX)ドライバは、バッファメモリが少ないデバイスでも
なるべく安定したサンプリングを実現できるように、PCまたはファームウェアのメモリに256Kデータ分のメモリ領域を確保しており、
このメモリ領域を「ソフトウェアメモリ」と呼びます。
ソフトウェアメモリを使用するデバイスの場合、バッファメモリとソフトウェアメモリ間のデータ転送はドライバが自動的に行い、
アプリケーションからは、ソフトウェアメモリにアクセスする形になります。
この仕組みにより、アプリケーションではタイミングやデータ量に余裕を持って処理を行うことができます。
例:バッファメモリが1K(1024)データ分のデバイスで、以下の条件で長時間のサンプリングを行う場合 ・チャネル数 :
1Ch
このデバイスがソフトウェアメモリを使用しない場合 (*1) この設定でサンプリングを行うと、開始からおよそ1秒(1024msec)後に そのため、この設定で長時間のサンプリングを行うためには、アプリケーションは
このデバイスがソフトウェアメモリを使用する場合 ソフトウェアメモリには256K(262,144)データ分のデータを格納することができますので、 また、このサンプリングで収集するデータ量が256K未満の場合、
(*1) 実際にはバッファメモリが1Kのデバイスは必ずソフトウェアメモリを使用しますが、 (*2) 高速サンプリング時には、ソフトウェアメモリへのデータの転送が間に合わず、 |
各デバイスのソフトウェアメモリ使用有無と、使用できるメモリサイズは以下を参照ください。
デバイス | メモリサイズ | ソフトウェアメモリ使用 |
■アナログZシリーズボード AI-1204Z-PE |
(AioSetAiMemorySize関数の設定に依存) |
× |
■アナログGシリーズボード |
|
× |
■アナログFシリーズボード AIO-163202F-PE ADA16-32/2(PCI)F |
64K (64*1024) 64K (64*1024) |
× × |
■アナログEシリーズボード AIO-121601E3-PE AIO-121601UE3-PE AIO-161601E3-PE AIO-161601UE3-PE AD12-16(PCI)EV AD12-16U(PCI)EV AD16-16(PCI)EV AD16-16U(PCI)EV AI-1216I2-PCI |
16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 16M (16*1024*1024) 256K (256*1024) |
× × × × × × × × × |
■アナログLシリーズボード AIO-160802LI-PE AIO-160802L-LPE AI-1616LI-PE AI-1616L-LPE AI-1664LA-LPE ADAI16-8/2(LPCI)L ADA16-8/2(LPCI)L ADI16-16(LPCI)L AD16-16(LPCI)L AD16-64(LPCI)LA |
256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) |
■その他アナログ入出力ボード AI-1604CI2-PCI AD12-16(PCI) AD12-64(PCI) |
256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ無し) ○ (バッファメモリ無し) ○ (バッファメモリ無し) |
デバイス | メモリサイズ | ソフトウェアメモリ使用 |
■アナログUSBデバイス AIO-163202FX-USB AIO-160802GY-USB AIO-160802AY-USB AIO-120802LN-USB AIO-121602LN-USB AI-1608VIN-USB AI-1608AIN-USB AI-1608GY-USB AI-1608AY-USB AI-1664LAX-USB |
256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ128K) ○ (バッファメモリ8K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ8K) ○ (バッファメモリ8K) ○ (バッファメモリ8K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) |
■Ethernetデバイス AI-1608VIN-ETH AI-1608AIN-ETH |
256K (256*1024) 256K (256*1024) |
○ (バッファメモリ8K) ○ (バッファメモリ8K) |
■ワイヤレスI/Oデバイス AI-1004LY-WQ AI-1004LY-WQ-EU AI-1004LY-WQ-US AI-1004LY-WQ-CN |
無し (高機能アナログ入力非対応) 無し (高機能アナログ入力非対応) 無し (高機能アナログ入力非対応) 無し (高機能アナログ入力非対応) |
× × × × |
■CONPROSYSデバイス CPS-AI-1608LI (CPS-BXC200で使用) CPS-AI-1608ALI (CPS-BXC200で使用) |
256K (256*1024) 256K (256*1024) |
○ (バッファメモリ8K) ○ (バッファメモリ8K) |
■CONPROSYS nanoデバイス CPSN-AI-1208LI CPSN-AI-2408LI |
無し (高機能アナログ入力非対応) 無し (高機能アナログ入力非対応) |
× × |
高機能アナログ出力の場合
ここまでは高機能アナログ入力でのソフトウェアメモリについて記載していますが、
高機能アナログ出力用のソフトウェアメモリも存在し、以下のようなメリットがあります。
・ソフトウェアメモリに収まるデータ量であれば、出力中にデータを継ぎ足す必要が無くなる
・長時間の連続出力をする場合に、全データを出力し終わって動作終了してしまうまでの時間
(出力データを継ぎ足すのが間に合う時間)に余裕ができる
高機能アナログ出力に対応する各デバイスのメモリサイズは以下を参照ください。
デバイス | メモリサイズ | ソフトウェアメモリ使用 |
■アナログGシリーズボード AIO-163202G-PE |
|
× × |
■アナログFシリーズボード AIO-163202F-PE ADA16-32/2(PCI)F |
64K (64*1024) 64K (64*1024) |
× × |
■アナログEシリーズボード AIO-121601E3-PE AIO-121601UE3-PE AIO-161601E3-PE AIO-161601UE3-PE AD12-16(PCI)EV AD12-16U(PCI)EV AD16-16(PCI)EV AD16-16U(PCI)EV |
無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) 無し (高機能アナログ出力非対応) |
× × × × × × × × |
■アナログLシリーズボード AIO-160802LI-PE AIO-160802L-LPE AO-1604LI-PE AO-1604L-LPE AO-1608L-LPE AO-1616L-LPE ADAI16-8/2(LPCI)L ADA16-8/2(LPCI)L DAI16-4(LPCI)L DA16-4(LPCI)L DA16-8(LPCI)L DA16-16(LPCI)L |
256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) |
■その他アナログ入出力ボード AO-1604CI3-PCI DA12-4(PCI) DA12-8(PCI) DA12-16(PCI) |
256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ無し) ○ (バッファメモリ無し) ○ (バッファメモリ無し) ○ (バッファメモリ無し) |
デバイス | メモリサイズ | ソフトウェアメモリ使用 |
■アナログUSBデバイス AIO-163202FX-USB AIO-160802GY-USB AIO-160802AY-USB AIO-120802LN-USB AIO-121602LN-USB AO-1604VIN-USB AO-1604AIN-USB AO-1604LX-USB |
256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) 256K (256*1024) |
○ (バッファメモリ128K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ1K) ○ (バッファメモリ8K) ○ (バッファメモリ8K) ○ (バッファメモリ1K) |
■Ethernetデバイス AO-1604VIN-ETH AO-1604AIN-ETH |
256K (256*1024) 256K (256*1024) |
○ (バッファメモリ8K) ○ (バッファメモリ8K) |
■CONPROSYSデバイス CPS-AO-1604LI (CPS-BXC200で使用) CPS-AO-1604VLI (CPS-BXC200で使用) |
256K (256*1024) 256K (256*1024) |
○ (バッファメモリ4K) ○ (バッファメモリ4K) |
■CONPROSYS nanoデバイス CPSN-AO-1602LC |
無し (高機能アナログ出力非対応) |
× |