AIO-163202F Board Support Package
Installation on RedHawk ReleaseNotes
Revision B
September 12, 2022

1. はじめに本書は、Concurrent Real Time Inc(CCRT)の RedHawk 上で動作する、コンテック社製 AIO- 163202F PCI
Express ボードサポートパッケージ 用リリースノートです。

2. インストールのための条件
AIO- 163202F BSP をインストールするためには、以下の製品がインストールされている事が必要です。
• AIO-163202F ボード• RedHawk 6.x 以上• Extmem version 8.3 以上
AIO-163202Fは、高精度アナログ入出力、デジタル入出力、カウンタを搭載したPCI Expressバス準拠のマルチファンクションボードです。

3. インストール方法
AIO-163202F BSP は、IRQ 共有するように設計されています。 もしこのデバイスの IRQ が、別のデバイスによって共有されている場合に、このドライバの性能は損なわれる場合があります。 そのため、可能な限り、このボードはその IRQ が他の装置と共有されていないＰＣＩスロットの中に実装する事が奨励されます。 “lspci -v”コマ
ンドをシステムで種々の装置の IRQ を確認するために使用することができます。
AIO-163202F BSP は、 CDROM/DVD 上の RPM/DEB フォーマットで供給され、別途 extmem デバイスドラ
イバがインストールされていることが必要です。
以下に、インストールの手順を示します。:
x86_64 アーキテクチャの場合=== root ユーザで実行してください===# mount /dev/cdrom /mnt あるいは mount /dev/dvd /mnt
# cd /mnt
もし、extmem を同時にインストールする場合には、以下のコマンドを入力してください# rpm -ivh bin-extmem-X.Y_RHx.y-z.x86_64.rpm
AIO-163202F BSP 実行パッケージのインストール# rpm -ivh bin-aio163202f-X.Y_RHx.y-ｚ.x86_64.rpm
もし必要であれば、続けて開発パッケージのインストールを行ってください# rpm -ivh dev- aio163202f-X.Y_RHx.y-ｚ.x86_64.rpm# umount /mnt
amd64 アーキテクチャの場合=== root ユーザで実行してください===# mount /dev/cdrom /mnt あるいは mount /dev/dvd /mnt
# cd /mnt
もし、extmem を同時にインストールする場合には、以下のコマンドを入力してください# apt install ./bin-extmem-rhx.y_X.Y_amd64.deb
AIO-163202F BSP 実行パッケージのインストール# apt install ./bin-aio163202f-rhx.y_X.Y_amd64.deb
もし必要であれば、続けて開発パッケージのインストールを行ってください# apt install ./dev-aio163202f-rhx.y_X.Y_amd64.deb# umount /mnt
arm64 アーキテクチャの場合=== root ユーザで実行してください===# mount /dev/cdrom /mnt あるいは mount /dev/dvd /mnt

# cd /mnt
もし、extmem を同時にインストールする場合には、以下のコマンドを入力してください# apt install ./bin-extmem-rhx.y_X.Y_arm64.deb
AIO-163202F BSP 実行パッケージのインストール# apt install ./bin-aio163202f-rhx.y_X.Y_arm64.deb
もし必要であれば、続けて開発パッケージのインストールを行ってください# apt install ./dev-aio163202f-rhx.y_X.Y_arm64.deb# umount /mnt
(x.y は RedHawk のバージョン番号であり、 6.0,6.3,6.5,7.0,7.2 または 7.3 で、X.Y は、BSP のバージ
ョン、z は、BSP のリリース番号を示し、予告なく変更することがあります。)
AIO-163202F BSP パッケージは /usr/local/CNC/drivers/extmem/interface/ aio163202f ディレクトリにインストールされ、必要な場所に展開されます。

4. アンインストール方法
AIO-163202F BSP パッケージは、以下のコマンドでアンインストールします。この作業により/usr/local/CNC/drivers/extmem/interface/ aio163202f ディレクトリは削除されます。
x86_64 アーキテクチャの場合=== root ユーザで実行してください===開発パッケージをインストールしていた場合には、# rpm -e rpm -ivh dev- aio163202f-X.Y_RHx.y-ｚ.x86_64 (開発パッケージの削除)# rpm -e bin-aio163202f-X.Y_RHx.y-ｚ.x86_64 (実行パッケージの削除)
実行パッケージのみをインストールしていた場合には、# rpm -e bin-aio163202f-X.Y_RHx.y-ｚ.x86_64 (実行パッケージの削除)
amd64 アーキテクチャの場合=== root ユーザで実行してください===開発パッケージをインストールしていた場合には、# apt purge dev-aio163202f-rhx.y(開発パッケージの削除)# apt purge bin-aio163202f-rhx.y(実行パッケージの削除)
実行パッケージのみをインストールしていた場合には、# apt purge bin-aio163202f-rhx.y(実行パッケージの削除)
arm64 アーキテクチャの場合=== root ユーザで実行してください===開発パッケージをインストールしていた場合には、# apt purge dev-aio163202f-rhx.y(開発パッケージの削除)# apt purge bin-aio163202f-rhx.y(実行パッケージの削除)
実行パッケージのみをインストールしていた場合には、# apt purge bin-aio163202f-rhx.y(実行パッケージの削除)

5. ライブラリマニュアル
ライブラリマニュアルは、オンラインで提供されます。
# man aio163202f
aio163202f(3)aio163202f(3)NAME
aio163202f - external memory device access library
SYNOPSIS[ ボードの詳細は、各マニュアルを見てください ]DESCRIPTION
aio163202f は、external memory ドライバを利用した AIO163202F ボードアクセ
スライブラリです。
#include <sys/aio163202f.h>gcc [options ...] file -laio163202f -lextmem ...

*************************************************************************************
AIO163202F*************************************************************************************
マルチファンクションボード AIO163202F をアクセスする関数群
デバイスの非初期化処理
int aio163202f_reset(int fd,int port);
port は、以下のビットオアまたは、全てを示す AIO163202F_ALL_PORT である
AIO163202F_AI_PORTAIO163202F_AO_PORTAIO163202F_DI_PORTAIO163202F_DO_PORTAIO163202F_COUNTER_PORTAIO163202F_MEMORY_PORTAIO163202F_ECU_PORT
int aio163202f_uninit(int fd);
デバイスの初期化処理
int aio163202f_init(int fd,int option);
汎用関数 オフセット値を指定してレジスタの値を読み出す
int aio163202f_get_ioport_long(int fd,int offset,unsigned int *value);
int aio163202f_get_ioport_short(int fd,int offset,unsigned int *value);
汎用関数 オフセット値を指定してレジスタに値を書き出す
int aio163202f_set_ioport_long(int fd,int offset,unsigned int *value);
int aio163202f_set_ioport_short(int fd,int offset,unsigned int *value);
割り込みハンドラの登録
int aio163202f_setup_signal(intfd,void(*interrupt_hadler)(int),unsigned int aimask,unsigned int aomask,unsigned int
dimask,unsigned int comask,unsigned int memask);
割り込みを許可するint aio163202f_enable_intrrupt(int fd,unsigned int aimask,unsigned int
aomask,unsigned int dimask,unsigned int comask,unsigned int memask);
割り込みを禁止する
int aio163202f_disable_intrrupt(int fd,unsigned int aimask,unsigned int
aomask,unsigned int dimask,unsigned int comask,unsigned int memask);
割り込みサービス関数 割り込んだ際の割り込み要因レジスタの値を戻す
int aio163202f_intr_service(int fd,unsigned int*iflag, unsigned int*aiflag,unsigned
int*aoflag,unsigned int*diflag,unsigned int*coflag,unsigned int *meflag, int *pending);
イベントコントローラ入出力信号の結線を行う
int aio163202f_set_signal_assign(int fd,unsigned int destnation_signal,unsigned int source_signal);
イベントコントローラ入出力信号の結線を得る
int aio163202f_get_signal_assign(int fd,unsigned int destnation_signal,unsigned int source_signal,unsigned int *destnation_signal_ret,unsigned int *source_signal_ret);設定できる信号は以下の通り
destnation_signal
DST_SIGNAL_AI_STORE_ENABLE_TRIGGER:
納許可トリガDST_SIGNAL_AI_SWITCH_TRIGGER:
り換えトリガ 1 1
DST_SIGNAL_AI_STORE_DISABL_TRIGGER:
納不許可トリガ 2 2
DST_SIGNAL_SAMPLING_CLOCK:
サンプ
リングクロック 4 4
DST_SIGNAL_AO_UPDATE_ENABLE_TRIGGER:
新許可トリガ 32 20
DST_SIGNAL_AO_UPDATE_DISABLE_TRIGGER :新不許可トリガ 34 22
DST_SIGNAL_UPDATE_CLOCK:
ロック 36 24
DST_SIGNAL_AIEXTSTATUS00
AIExtStatus00 112 70
DST_SIGNAL_AIEXTSTATUS01
AIExtStatus01 113 71
DST_SIGNAL_AOEXTSTATUS00
AOExtStatus00 114 72
DST_SIGNAL_AOEXTSTATUS01
AOExtStatus01 115 73
DST_SIGNAL_CNTEXTSTATUS00:
CNTExtStatus00 116 74
DST_SIGNAL_CNTEXTSTATUS01:
CNTExtStatus01 117 75
DST_SIGNAL_COUNT_START_TRIGGER0
ト開始トリガ 0 128 80
DST_SIGNAL_COUNT_START_TRIGGER1
ト開始トリガ 1 129 81
DST_SIGNAL_COUNT_STOP_TRIGGER0:
ト停止トリガ 0 130 82
DST_SIGNAL_COUNT_STOP_TRIGGER1:
ト停止トリガ 1 131 83
DST_SIGNAL_COUNT_LOAD_TRIGGER0
:

AI 格
AI 切
AI 格

AO 更
AO 更
更新ク
:
:
:
:

:

カウン

:

カウン

カウン
カウン
カウン

トロードトリガ 0 132 84
DST_SIGNAL_COUNT_LOAD_TRIGGER1:
カウン
トロードトリガ 1 133 85
DST_SIGNAL_COUNT_UP0:
カウン
ト 0 対象/アップカウント 134 86
DST_SIGNAL_COUNT_UP1:
カウン
ト 1 対象/アップカウント 135 87
DST_SIGNAL_AI_WP_LATCH_TRIGGER:
AI W.P
Latch トリガ 162 A2
source_signal
SRC_SIGNAL_NO_CONNECTION:
Non
Connection 0 00 固定
SRC_SIGNAL_AI_INTERNAL_CLOCK:
内部サ
ンプリングクロック(Internal CLK for AI) 4 04 クロック
SRC_SIGNAL_AI_BEFORE_TRRIGER_NUM_END :ビフォ
ートリガサンプリング回数終了 (AI BeforeTrigger Num End) 17 11
SRC_SIGNAL_AI_AFTER_TRIGGER_NUM_END:
アフタ
ートリガサンプリング回数終了 (AI After Trigger Num End) 18 12
SRC_SIGNAL_AI_LEVEL_TRIGGER0:
AI レ
ベルトリガ 0 (AI Level Trigger 0) 28 1C
SRC_SIGNAL_AI_LEVEL_TRIGGER1:
AI レ
ベルトリガ 1 (AI Level Trigger 1) 29 1D
SRC_SIGNAL_AI_BUSY:
変換動
作中(AI Busy) 48 30
SRC_SIGNAL_AI_BEFORE_TRRIGER_SAMMPLING_BUSY:
ビフォ
ートリガサンプリング (Before Sampling Busy) 49 31
SRC_SIGNAL_AI_AFTER_TRRIGER_SAMMPLING_BUSY :アフタ
ートリガサンプリング (After Sampling Busy) 50 32
SRC_SIGNAL_AO_INTERNAL_CLOCK:
内部更新クロック(Internal CLK for AO) 66 42 クロック
SRC_SIGNAL_AO_BEFORE_TRIGGER_NUM_END:
ビフォ
ートリガ更新回数終了 (AO Before Trigger Num End ) 80 50 フラグ
SRC_SIGNAL_AO_BUSY:
AO
Busy 112 70
SRC_SIGNAL_AO_BEFORE_TRIGGER_RENEWAL:
BeforeTrigger Renewal 113 71
SRC_SIGNAL_DI_AI_EXTCLK_START_EDGE:AI ExtStart Edge 144 90
SRC_SIGNAL_DI_AI_EXTCLK_STOP_EGDE:AI ExtStop Edge 145 91
SRC_SIGNAL_DI_AI_EXTCLK:AI Ext
CLK 146 92
SRC_SIGNAL_DI_AO_EXTCLK_START_EDGE:
AO ExtStart Edge 147 93
SRC_SIGNAL_DI_AO_EXTCLK_STOP_EDGE:
AO ExtStop Edge 148 94
SRC_SIGNAL_DI_AO_EXTCLK:AO Ext
CLK 149 95
SRC_SIGNAL_DI_CNT_EXTUCLK1:CNTExt UCLK0 150 96
SRC_SIGNAL_DI_CNT_EXTUCLK2:CNTExt UCLK1 152 98
SRC_SIGNAL_COUNT_INTERNAL0:
内部標
準タイマ 0 (Internal CLK For CNT0) 272 110
SRC_SIGNAL_COUNT_INTERNAL1:
内部標
準タイマ 1 (Internal CLK For CNT1) 273 111

SRC_SIGNAL_COUNT_COUNTUP0:
比較カ
ウント一致 0 (CNT0 Count Up) 288 120
SRC_SIGNAL_COUNT_COUNTUP1:
比較カ
ウント一致 1 (CNT1 Count Up) 289 121
SRC_SIGNAL_COUNT_BUSY0:
CNT
Busy0 305 131
SRC_SIGNAL_COUNT_BUSY1:
CNT
Busy1 306 132
SRC_SIGNAL_MEMORY_AI_COMPARITION_DATA_NUM :AI 比較データ数 Hold(1) (AI Comparison Data Num(1)) 322 142
SRC_SIGNAL_MEMORY_AI_COMPARITION_DATA_WP:
AI 比較 W.P(1) (AI Comparison W.P(1)) 329 149
SRC_SIGNAL_MEMORY_AO_DATA_EMPTY:
AO
Data Empty 352 160
SRC_SIGNAL_MEMORY_AO_COMPARITION_DATA_NUM :AO 比較データ数 Hold(1) (AI Comparison Data Num(1)) 353 161
SRC_SIGNAL_MEMORY_AO_COMPARITION_DATA_RP :AO 比較 R.P(1) (AO Comparison R.P(1)) 360 168
SRC_SIGNAL_MEMORY_GENERAL_COMMAND0 :汎用コ
マンド 0 (General Command 0) 384 180
SRC_SIGNAL_MEMORY_GENERAL_COMMAND1 :汎用コ
マンド 1 (General Command 1) 385 181
汎用パルス出力コマンド
int aio163202f_raise_signal(int fd,int offset,int value);
通 常
offset は、AIO163202F_ECU_COMMAND_OFFSETは AIO163202F_ECU_GENERAL1_COMMAN(0x5)か AIO163202F_ECU_GENERAL2_COMMAND(0x6)である、 で value

イベントコントローラ(0x80)に、AI 異常停止設定コマンド(0x10)を値 value で出力する(outpd(0x84,value);)
int aio163202f_ai_abort_settings(int fd,int value);
value は、0x00000001 が AI CLK Error で、0x00010000 が AI Over Flow である。
イベントコントローラ(0x80)に、AO 異常停止設定コマンド(0x11)を値 value で出力する(outpd(0x84,value);)
int aio163202f_ao_abort_settings(int fd,int value);
value は、0x00000001 が AO CLK Error で、0x01000000 が AO Ext Stop である。
int aio163202f_ai_setcommand(int fd,int command,int value);
アナログ入力機能設定コマンド
command,value は以下の通り
command: value
AIO163202F_AI_CAL_COMMAND: AI キャリブレーション条
件設定
以下の値のオア を と っ た もの(ajdust(data)|ch|range|select)を設定する
selectAIO163202F_AI_CAL_OFFSETAIO163202F_AI_CAL_GAIN
range
AIO163202F_AI_CAL_RANGE_M10VtoP10V-10 to +10
AIO163202F_AI_CAL_RANGE_0VtoP10V
0 to +10

AIO163202F_AI_CAL_RANGE_M5VtoP5V-5 to +5
AIO163202F_AI_CAL_RANGE_0VtoP5V
0 to +5
AIO163202F_AI_CAL_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AI_CAL_RANGE_0VtoP2p5V
0 to +2.5ch:
AIO163202F_AI_CAL_A
AIO163202F_AI_CAL_B
adjustAIO163202F_AI_CAL_ADJUST(data)
AIO163202F_AI_ADJUST_COMMAND:
AI 調整用データ確認/設定
AIO163202F_AI_ADJUST_EPROM_WRITE_DISABLE
AIO163202F_AI_ADJUST_EPROM_WRITE
AIO163202F_AI_ADJUST_EPROM_READ
AIO163202F_AI_ADJUST_EPROM_WRITE_ENABLE
AIO163202F_AI_RESET_COMMAND: AI 初期化コマンド
value=0 を設定
AIO163202F_AI_GATE_OPEN_COMMAND : AI 内部ゲートオープンコ
マンドvalue=0 を設定
AIO163202F_AI_ABORT_COMMAND: AI 強制停止コマンド
value=0 を設定
AIO163202F_AI_INTCLK_COMMAND: AI 用内部クロック設定
value= 内部クロックのパルス周期 = 周期(ms)/25 -1
AIO163202F_AI_SCNCLK_COMMAND: AI チャネルスキャンクロ
ック設定
value= 次のチャンネルの変換までの時間 = 周期(ns)/25 -1
AIO163202F_AI_CHNUM_COMMAND: AI 格納チャネル数設定
value=チャンネル数-1(最大 31)
AIO163202F_AI_CHSEQ_COMMAND: AI チャネルシーケンス設
定value=変 換 チ ャ ン ネ
ル<<16|変換番号
AIO163202F_AI_MODE_COMMAND: AI 入力方式設定
AIO163202F_AI_MODE_SINGLEEND シングルエンド
AIO163202F_AI_MODE_DIFFERNTIAL デファレンシアル
AIO163202F_AI_RANGE_COMMAND: AI レンジ設定
AIO163202F_AI_RANGE_M10VtoP10V-10 to +10
AIO163202F_AI_RANGE_0VtoP10V
0 to +10
AIO163202F_AI_RANGE_M5VtoP5V-5 to +5
AIO163202F_AI_RANGE_0VtoP5V
0 to +5

AIO163202F_AI_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AI_RANGE_0VtoP2p5V
0 to +2.5
AIO163202F_AI_BEFTRG_COMMAND
リング回数設定: AI ビフォートリガサンプ
value = ビフォートリ ガ

サンプリング回数-1
AIO163202F_AI_AFTTRG_COMMAND
リング回数設定: AI アフタートリガサンプ
value = アフタートリ ガ

サンプリング回数-1
AIO163202F_AI_REP_COMMAND: AI リピート回数設定
value = AI リピート回数& 0xFFFF | AIO163202F_AI_REP_INFINITY
AIO163202F_AI_LVLTRG_MODE_COMMAND: AI レベルトリガ_比較 タ
イプ設定
AIO163202F_AI_LVLTRG_MODE_RISE 立ち上がりエッジ
AIO163202F_AI_LVLTRG_MODE_FALL 立ち下がりエッジ
AIO163202F_AI_LVLTRG_MODE_BOTH
立ち上がりエッジ,立ち下がりエッジ
AIO163202F_AI_LVLTRG_MODE_INRANGE
インレンジ
AIO163202F_AI_LVLTRG_MODE_OUTRANGE アウトレンジ
AIO163202F_AI_LVTRG_WDCH_COMMAND: AI レベルトリガ_監視 チ
ャネル設定value = (AI レベルトリ
ガ番号 & 0x3) | ((監視チャンネル番号 & 0x1F)<<16)
AIO163202F_AI_LVTRG_STATE_NUM_COMMAND : AI レベルトリガ_ステ ー
ト維持回数設定
value = (AI レベルトリ
ガ番号 & 0x3) | (((設定回数-1) & 0xFFFF)<<16)
AIO163202F_AI_LVTRG_LEVEL_COMMAND: AI レベルトリガ_比較 レ
ベル設定
value = (AI レベルトリ
ガ番号 & 0x3)|((レベル番号&1)<<8) | (((入力電圧レベル) & 0xFFFF)<<16)
int aio163202f_ao_setcommand(int fd,int command,int value);
AIO163202F_AO_RESET_COMMAND: AO 初期化コマンド
value=0 を設定
AIO163202F_AO_GATE_OPEN_COMMAND: AO 内部ゲートオープンコ
マンドvalue=0 を設定
AIO163202F_AO_ABORT_COMMAND: AO 強制停止コマンド
value=0 を設定
AIO163202F_AO_INTCLK_COMMAND: AO 用内部クロック設定
value= 内部クロックのパルス周期 = 周期(ms)/25 -1
AIO163202F_AO_CHNUM_COMMAND: AO 更新チャネル数設定
value=チャンネル数-1(最大 1)|(AIO163202F_AO_CHNUM_MULTI or AIO163202F_AO_CHNUM_SINGLE)
AIO163202F_AO_RANGE_COMMAND: AO レンジ設定

value=(range<<16|ch)を設定する
range
AIO163202F_AO_RANGE_M10VtoP10V-10 to +10
AIO163202F_AO_RANGE_0VtoP10V
0 to +10
AIO163202F_AO_RANGE_M5VtoP5V-5 to +5
AIO163202F_AO_RANGE_0VtoP5V
0 to +5
AIO163202F_AO_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AO_RANGE_0VtoP2p5V
0 to +2.5
AIO163202F_AO_BEFTRG_COMMAND
数設定: AO ビフォートリガ更新回
value = ビフォートリ ガ

更新回数-1
AIO163202F_AO_REP_COMMAND: AO リピート回数設定
value = AO リピート回数& 0xFFFF | AIO163202F_AO_REP_INFINITY or 0
AIO163202F_AO_REP_COUNT_SRC_COMMAND : AO リピートカウントソー
ス設定
value = 0:自動(AO ビフォートリガ更新回数)
value = 1:通常(更新不許可トリガの回数)
AIO163202F_AO_CAL_COMMAND: AO キャリブレーション条
件設定
以下の値のオア を と っ た もの(ajdust(data)|ch|range|select)を設定する
selectAIO163202F_AO_CAL_OFFSETAIO163202F_AO_CAL_GAIN
range
AIO163202F_AO_CAL_RANGE_M10VtoP10V-10 to +10
AIO163202F_AO_CAL_RANGE_0VtoP10V
0 to +10
AIO163202F_AO_CAL_RANGE_M5VtoP5V-5 to +5
AIO163202F_AO_CAL_RANGE_0VtoP5V
0 to +5
AIO163202F_AO_CAL_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AO_CAL_RANGE_0VtoP2p5V
0 to +2.5
AIO163202F_AO_CAL_RANGE_M1p25Vto1p25V-1.25 to +1.25
ch:
AIO163202F_AO_CAL_CH0
AIO163202F_AO_CAL_CH1
adjustAIO163202F_AO_CAL_ADJUST(data)
AIO163202F_AO_ADJUST_COMMAND: AO 調整用データ確認/ 設定
AIO-163202F-PE テクニカルリファレンスマニュアル 64/123 を参照してください
int aio163202f_ao_setcommand2(int fd,int command,int value1,int
value2);
AIO163202F_AO_RESET_COMMAND: AO 初期化コマンド
value1=0,value2=0 を設定
AIO163202F_AO_GATE_OPEN_COMMAND : AO 内部ゲートオープンコ
マンドvalue1=0,value2=0 を設定
AIO163202F_AO_ABORT_COMMAND: AO 強制停止コマンド
value1=0,value2=0 を設定
AIO163202F_AO_INTCLK_COMMAND: AO 用内部クロック設定
value1=内部クロックのパルス周期の下位 = ((周期(ms)/25 -1) & 0xFFFF)
value2=内部クロックのパルス周期の上位 = ((周期(ms)/25 -1)>>16)
value1=チャンネル 数-1(
最大 1)|(AIO163202F_AO_CHNUM_MULTI or AIO163202F_AO_CHNUM_SINGLE)
value2=0
AIO163202F_AO_RANGE_COMMAND: AO レンジ設定
value1=ch を設定する
value2=以下のレンジのいずれかを設定する
AIO163202F_AO_RANGE_M10VtoP10V-10 to +10
AIO163202F_AO_RANGE_0VtoP10V
0 to +10
AIO163202F_AO_RANGE_M5VtoP5V-5 to +5
AIO163202F_AO_RANGE_0VtoP5V
0 to +5
AIO163202F_AO_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AO_RANGE_0VtoP2p5V
0 to +2.5
AIO163202F_AO_BEFTRG_COMMAND: AO ビフォートリガ更新回
数設定
value1 = ((ビフォートリ
ガ更新回数-1) & 0xFFFF)
value2 = ((ビフォートリ
ガ更新回数-1) >>16)
AIO163202F_AO_REP_COMMAND: AO リピート回数設定
value1 = AO リピート 回
数 & 0xFFFF
value2=
AIO163202F_AO_REP_INFINITY or 0
AIO163202F_AO_REP_COUNT_SRC_COMMAND: AO リピートカウントソー
ス設定
value1 = 0:自動(AO ビフォートリガ更新回数)
value1 = 1:通常(更新不許可トリガの回数)
value2 = 0
AIO163202F_AO_CAL_COMMAND: AO キャリブレーション条
件設定
value1= 以 下 の 値 の オ ア を と ったもの(ch|range|select)を設定する
selectAIO163202F_AO_CAL_OFFSETAIO163202F_AO_CAL_GAIN
range
AIO163202F_AO_CAL_RANGE_M10VtoP10V-10 to +10
AIO163202F_AO_CAL_RANGE_0VtoP10V
0 to +10
AIO163202F_AO_CAL_RANGE_M5VtoP5V-5 to +5
AIO163202F_AO_CAL_RANGE_0VtoP5V
0 to +5
AIO163202F_AO_CAL_RANGE_M2p5VtoP2p5V-2.5 to +2.5
AIO163202F_AO_CAL_RANGE_0VtoP2p5V
0 to +2.5
AIO163202F_AO_CAL_RANGE_M1p25Vto1p25V-1.25 to +1.25
ch:
AIO163202F_AO_CAL_CH0
AIO163202F_AO_CAL_CH1
value2=adjust
AIO163202F_AO_ADJUST_COMMAND:
AO 調整用データ確認/設定
AIO-163202F-PE テクニカルリファレンスマ ニ
ュアル 64/123 を参照してください
int aio163202f_memory_setcommand(int fd,int command,int value);command,value は以下の通り
command: value
AIO163202F_MEMORY_RESET_COMMAND :MEM 初期化コマンド
value=0 を設定
AIO163202F_MEMORY_AI_TRANSFER_COMMAND :AI 転送設定
AIO163202F_MEMORY_AI_TRANSFER_IO
AIO163202F_MEMORY_AO_TRANSFER_COMMAND :AO 転送設定
AIO163202F_MEMORY_AO_TRANSFER_IO
AIO163202F_MEMORY_AI_MEM_WP_COMMAND:AI MEM W.P 確認/設定
value=0 を設定
AIO163202F_MEMORY_AI_MEM_RP_COMMAND:AI MEM R.P 確認/設定
value=0 を設定
AIO163202F_MEMORY_AO_MEM_WP_COMMAND:AO MEM W.P 確認/設定
value=0 を設定
AIO163202F_MEMORY_AO_MEM_RP_COMMAND:AO MEM R.P 確認/設定
value=0 を設定
AIO163202F_MEMORY_AI_MEM_CLEAR_COMMAND :AI MEM クリア
value=0 を設定
AIO163202F_MEMORY_AO_MEM_CLEAR_COMMAND :AO MEM クリア
value=0 を設定
AIO163202F_MEMORY_AI_MEMORY_TYPE_COMMAND:AI メモリタイプ設定
AIO163202F_MEMORY_AI_MEMORY_TYPE_FIFO FIFO
AIO163202F_MEMORY_AI_MEMORY_TYPE_RING RING
AIO163202F_MEMORY_AO_MEMORY_TYPE_COMMAND:AO メモリタイプ設定
AIO163202F_MEMORY_AO_MEMORY_TYPE_FIFO FIFO
AIO163202F_MEMORY_AO_MEMORY_TYPE_RING RINGAIO163202F_MEMORY_AI_TRGGER_WRITE_POINT_COMMAND:AI トリガラ
イトポインタ設定
value=0 を設定
AIO163202F_MEMORY_AO_MEM_COMPARETE_TYPE_COMMAND:AO 用 MEM
比
較タイプ設定value=0 を設定
AIO163202F_MEMORY_AO_MEM_COMPARETE_DATA_COMMAND:AO 用 MEM

比
較データ設定value=0 を設定
AIO163202F_MEMORY_AO_READ_POINTER_MAX_ADDRESS_COMMAND:AO リード ポ
インタ上限アドレス設定
value=0 を設定
int aio163202f_memory_setcommand2(int fd,int command,int value1,int
value2);
command,value1,value2 は以下の通り
AIO163202F_MEMORY_AI_MEM_COMPARETE_COMMAND:AI 用 MEM 比較タイプ設定
value1:比較番号
FIFO
RING
0:デ ー タ 数(1)W.P(1)
1: デ ー タ数(2)W.P(2)
value2:比較タイプ
FIFO
RING
0:無効
特
定ポインタ
1:上方一致 特
定ポインタ毎2:
設
定ポインタ毎AIO163202F_MEMORY_AO_MEM_COMPARETE_COMMAND:AO 用 MEM 比較データ設定
value1:比較番号
FIFO
RING
0:デ ー タ 数(1)R.P(1)
1: デ ー タ数(2)R.P(2)
value2:比較タイプ
FIFO
RING
0:無効
特
定ポインタ
1:上方一致 特
定ポインタ毎
int aio163202f_di_setcommand2(int fd,int command,int value1,int
value2);
command,value1,value2 は以下の通り
AIO163202F_DI_RESET_COMMAND:DI 初期化コマンド
value1=0,value2=0 を設定
AIO163202F_DI_EDGE_DETECT_COMMAND:
DI エッジ検出設定

value1=以下の外部から入力 されるディジタル入力タイプを選択
AIO163202F_DI_EDGE_TYPE_DI
AIO163202F_DI_EDGE_TYPE_AI
AIO163202F_DI_EDGE_TYPE_AO
AIO163202F_DI_EDGE_TYPE_CNT
value2= ディジタル入力の以下の検出ビットをAIO163202F_DI_EDGE_TYPE_NONE
AIO163202F_DI_EDGE_TYPE_RISE
AIO163202F_DI_EDGE_TYPE_FALL
AIO163202F_DI_EDGE_TYPE_BOTH
下記のポート分シフトした値をビットオアした値を設定
AIO163202F_DI_EDGE_BIT00_SHIFTAIO163202F_DI_EDGE_BIT01_SHIFTAIO163202F_DI_EDGE_BIT02_SHIFTAIO163202F_DI_EDGE_BIT03_SHIFTAIO163202F_DI_EDGE_BIT04_SHIFTAIO163202F_DI_EDGE_BIT05_SHIFTAIO163202F_DI_EDGE_BIT06_SHIFTAIO163202F_DI_EDGE_BIT07_SHIFT
例えば、(AIO163202F_DI_EDGE_TYPE_RISE<<AIO163202F_DI_EDGE_BIT00_SHIFT)|...
AIO163202F_DI_DIGITAL_FILTER_COMMAND: DI Digital Filter 設定
value1=以下のディジタルフ ィ
ルタを入れる信号名を選択
AIO163202F_DI_DIGITAL_FILTER_DI DI Digital Filter
AIO163202F_DI_DIGITAL_FILTER_AI AI Digital Filter
AIO163202F_DI_DIGITAL_FILTER_AO AO Digital Filter
AIO163202F_DI_DIGITAL_FILTER_CNT CNTDigital Filter
value2= 以下のディジタルフィ
ルタ時間を選択AIO163202F_DI_DIGITAL_FILTER_OFF Digital Filter なし
AIO163202F_DI_DIGITAL_FILTER_1U Digital Filter 1 マイクロ秒
AIO163202F_DI_DIGITAL_FILTER_128U Digital Filter 128 マイクロ秒
AIO163202F_DI_DIGITAL_FILTER_16M Digital Filter 16m 秒
int aio163202f_do_setcommand2(int fd,int command,int value1,int
value2);
command,value1,value2 は以下の通り
AIO163202F_DO_RESET_COMMAND
DO 初期化コマンド
value1=0;value2=0
AIO163202F_DO_OUTSETTING_COMMAND:
DO
出
力 設 定
value1= 汎用 DO 番号
AIO163202F_DO_OUTSETTING_DO_BIT00 DO 出力 bit0
AIO163202F_DO_OUTSETTING_DO_BIT01 DO 出力 bit1

AIO163202F_DO_OUTSETTING_DO_BIT02 DO 出力 bit2
AIO163202F_DO_OUTSETTING_DO_BIT03 DO 出力 bit3
AIO163202F_DO_OUTSETTING_DO_BIT04 DO 出力 bit4
AIO163202F_DO_OUTSETTING_DO_BIT05 DO 出力 bit5
AIO163202F_DO_OUTSETTING_DO_BIT06 DO 出力 bit6
AIO163202F_DO_OUTSETTING_DO_BIT07 DO 出力 bit7
AIO163202F_DO_OUTSETTING_AI_STATUS00
AIO163202F_DO_OUTSETTING_AI_STATUS01
AIO163202F_DO_OUTSETTING_AO_STATUS0O
AIO163202F_DO_OUTSETTING_AO_STATUS01
AIO163202F_DO_OUTSETTING_CNT0_STATUS
AIO163202F_DO_OUTSETTING_CNT1_STATUS
value2= DO 出力から何を出力するかを設定
AIO163202F_DO_OUTSETTING_DO
DO 出力
AIO163202F_DO_OUTSETTING_ECUECU 出力AIO163202F_DO_OUTSTATE_COMMAND: DO 出力状態設定
value1= 汎用 DO 番号
AIO163202F_DO_OUTSTATE_DO_BIT00 DO 出力 bit0
AIO163202F_DO_OUTSTATE_DO_BIT01 DO 出力 bit1
AIO163202F_DO_OUTSTATE_DO_BIT02 DO 出力 bit2
AIO163202F_DO_OUTSTATE_DO_BIT03 DO 出力 bit3
AIO163202F_DO_OUTSTATE_DO_BIT04 DO 出力 bit4
AIO163202F_DO_OUTSTATE_DO_BIT05 DO 出力 bit5
AIO163202F_DO_OUTSTATE_DO_BIT06 DO 出力 bit6
AIO163202F_DO_OUTSTATE_DO_BIT07 DO 出力 bit7
AIO163202F_DO_OUTSTATE_AI_STATUS00
AIO163202F_DO_OUTSTATE_AI_STATUS01
AIO163202F_DO_OUTSTATE_AO_STATUS0O
AIO163202F_DO_OUTSTATE_AO_STATUS01
AIO163202F_DO_OUTSTATE_CNT0_STATUS
AIO163202F_DO_OUT-STATE_CNT1_STATUS
value2=以下のロジックとタイプを論理 OA したも のを設定
AIO163202F_DO_OUTSTATE_LOGIC_HI or AIO163202F_DO_OUTSTATE_LOGIC_LO
AIO163202F_DO_OUTSTATE_LOGIC_THROUGH or AIO163202F_DO_OUTSTATE_LOGIC_PLUSE
int aio163202f_cnt_setcommand(int fd,int command,int value);
AIO163202F_COUNTER_RESET_COMMAND://CNT 初期化コマンド
value=0 を設定
AIO163202F_COUNTER_GATE_OPEN_COMMAND://CNT 内部ゲートオープンコマ
ンド
value=チャンネル選択：各チャンネルに内部ゲート
オープンするかしないかを設定
０ビット:CNT00 １ビット:CNT01 を表す
AIO163202F_COUNTER_ABORT_COMMAND://CNT 強制停止コマンド
value=チャンネル選択：各チャンネルに強制停止す
るかしないかを設定
０ビット:CNT00 １ビット:CNT01 を表す
int aio163202f_ai_getcommand(int fd,int command,int *value);
以下のコマンドが利用できる、value の詳細は aio163202f_ai_setcommand()を参照
AIO163202F_AI_INTCLK_COMMAND://AI 用内部クロック設定
AIO163202F_AI_SCNCLK_COMMAND://AI チャネルスキャンクロッ
ク設定
AIO163202F_AI_CHNUM_COMMAND://AI 格納チャネル数設定
AIO163202F_AI_CHSEQ_COMMAND://AI チャネルシーケンス設定
AIO163202F_AI_MODE_COMMAND://AI 入力方式設定
AIO163202F_AI_RANGE_COMMAND://AI レンジ設定
AIO163202F_AI_BEFTRG_COMMAND://AI ビフォートリガサンプリ
ング回数設定AIO163202F_AI_AFTTRG_COMMAND://AI アフタートリガサンプリ
ング回数設定AIO163202F_AI_REP_COMMAND://AI リピート回数設定
AIO163202F_AI_LVLTRG_MODE_COMMAND://AI レベルトリガ_比較タイプ設定
AIO163202F_AI_LVTRG_WDCH_COMMAND://AI レベルトリガ_監視チ ャ
ネル設定
AIO163202F_AI_LVTRG_STATE_NUM_COMMAND: //AI レベルトリガ_ステート
維持回数設定AIO163202F_AI_LVTRG_LEVEL_COMMAND://AI レベルトリガ_比較レ ベ
ル設定
int aio163202f_ao_getcommand(int fd,int command,int *value);
以下のコマンドが利用できる、value の詳細は aio163202f_ao_setcommand()を参照
AIO163202F_AO_RESET_COMMAND://AO 初期化コマンド
AIO163202F_AO_GATE_OPEN_COMMAND: //AO 内部ゲートオープンコマン
ド
AIO163202F_AO_ABORT_COMMAND://AO 強制停止コマンド
AIO163202F_AO_INTCLK_COMMAND://AO 用内部クロック設定
AIO163202F_AO_CHNUM_COMMAND://AO 更新チャネル数設定
AIO163202F_AO_RANGE_COMMAND://AO レンジ設定
AIO163202F_AO_BEFTRG_COMMAND://AO ビフォートリガ更新回数設定AIO163202F_AO_REP_COMMAND://AO リピート回数設定
AIO163202F_AO_REP_COUNT_SRC_COMMAND: //AO リピートカウントソース設定
AIO163202F_AO_CAL_COMMAND://AO キャリブレーション条件設定
AIO163202F_AO_ADJUST_COMMAND://AO 調整用データ確認/設定
int aio163202f_memory_getcommand(int fd,int command,int *value);
以下のコマンドが利用できる、value の詳細は aio163202f_memory_setcommand()を参照
AIO163202F_MEMORY_AI_TRANSFER_COMMAND://AI 転送設定
AIO163202F_MEMORY_AO_TRANSFER_COMMAND://AO 転送設定
AIO163202F_MEMORY_AI_MEM_WP_COMMAND://AI MEM
W.P 確認/設定
AIO163202F_MEMORY_AI_MEM_RP_COMMAND://AI MEM
R.P 確認/設定
AIO163202F_MEMORY_AO_MEM_WP_COMMAND://AO MEM
W.P 確認/設定
AIO163202F_MEMORY_AO_MEM_RP_COMMAND://AO MEM
R.P 確認/設定
AIO163202F_MEMORY_AI_MEM_CLEAR_COMMAND://AI MEM ク
リア
AIO163202F_MEMORY_AO_MEM_CLEAR_COMMAND://AO MEM ク
リア
AIO163202F_MEMORY_AI_MEMORY_TYPE_COMMAND://AI メモリ
タイプ設定
AIO163202F_MEMORY_AO_MEMORY_TYPE_COMMAND://AO メモリ
タイプ設定
AIO163202F_MEMORY_AI_TRGGER_WRITE_POINT_COMMAND://AI トリガ
ライトポインタ設定
AIO163202F_MEMORY_AO_MEM_COMPARETE_TYPE_COMMAND://AO 用
MEM
比較タイプ設定
AIO163202F_MEMORY_AO_MEM_COMPARETE_DATA_COMMAND://AO 用 MEM
比較データ設定
AIO163202F_MEMORY_AO_READ_POINTER_MAX_ADDRESS_COMMAND: //AO リード
ポインタ上限アドレス設定
int aio163202f_memory_getcommand2(int fd,int command,int *value1,int*value2);
以 下 の コ マ ン ド が 利 用 で き る 、value1,value2 の詳 細は aio163202f_memory_setcommand2()を参照
AIO163202F_MEMORY_AI_MEM_COMPARETE_COMMAND://AI 用 MEM
比較タイプ設定 2 パラメータ
AIO163202F_MEMORY_AO_MEM_COMPARETE_COMMAND://AO 用
MEM
比較データ設定
int aio163202f_di_getcommand(int fd,int command,int *value);
以下のコマンドが利用できる、value の詳細は aio163202f_di_setcommand()を参照
AIO163202F_DI_RESET_COMMAND://DI 初期化コマンド
AIO163202F_DI_EDGE_DETECT_COMMAND://DI エッジ検出設定
AIO163202F_DI_DIGITAL_FILTER_COMMAND: //DI Digital Filter 設定
int aio163202f_do_getcommand(int fd,int command,int *value);以下のコマンドが利用できる、value の詳細は aio163202f_do_setcommand()を参照
AIO163202F_DO_OUTSETTING_COMMAND: //DO 出力設定
AIO163202F_DO_OUTSTATE_COMMAND://DO 出力状態設定
int aio163202f_cnt_getcommand(int fd,int command,int *value);
以 下のコマンドが利用できる、value の詳細は aio163202f_cnt_setcommand()を参照
AIO163202F_COUNTER_GATE_OPEN_COMMAND://CNT 内部ゲートオープンコ マ
ンド
AIO163202F_COUNTER_ABORT_COMMAND://CNT 強制停止コマンド
int aio163202f_set_clock(int fd,int value);
クロックの値を value に設定する。
int aio163202f_get_counter(int fd,int ch,int *value);
クロックの値を読み出し*value に設定する。
int aio163202f_set_counter(int fd,int ch,int value);
カウンタ ch の値を value に設定する
int aio163202f_set_counter_comparete(int fd,int ch,int value);
クロック ch の値を読み出し*value に設定する
int aio163202f_ai_read(int fd,unsigned long int *data,int nch);
AD 変換器から nch 分データを読み出す
int aio163202f_ai_read_data(int fd,unsigned long int *data);
AD 変換器から１データだけ読み出す
int aio163202f_ai_read_csr(int fd,unsigned short int *data);
AD 変換器の CSR から１データだけ読み出す
int aio163202f_ai_calibration(int fd,int value);AI のキャリブレーションを行う
int aio163202f_ai_start(int fd);
AD 変換をスタートする
int aio163202f_ao_write(int fd,unsigned long int *addr,int nch);
配列 addr のデータを nch 分 AO に書き出す
int aio163202f_ao_start(int fd);
AO をスタートする
int aio163202f_di_setmask(int fd,int value);
DI のマスクを設定する
int aio163202f_di_getvalue(int fd,int *value);
DI の値を読み出す
int aio163202f_do_setmask(int fd,int value);
DO のマスクを設定する
int aio163202f_do_setvalue(int fd,int value);
DO に値を設定する
int aio163202f_ao_read(int fd,unsigned long int *addr,int nch);
出力した AO の値を読み出す

SEE ALSO/usr/local/CNC/drivers/extmem/contec/aio163202f 下のプログラム
AUTHORS
Copyright (C) 1995-2016 Concurrent Realtime Inc.

28 Apr 2016

aio163202f(3)