bpc-0544 - interface...bpc-0544は、弊社canインタフェース製品をnational...

72
CAN(PCI/C-PCI).VI www.interface.co.jp BPC-0544 CAN インタフェース製品 LabVIEW 対応ソフトウェア Help for VI Library

Upload: others

Post on 23-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

CAN(PCI/C-PCI).VI

www.interface.co.jp

BPC-0544 CAN インタフェース製品 LabVIEW 対応ソフトウェア

Help for VI Library

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

2

目 次

第 1 章 はじめに 3

1.1 概要 ...........................................................................3

1.2 特長 ...........................................................................3

第 2 章 製品仕様 4

2.1 基本仕様 .......................................................................4

2.2 製品構成 .......................................................................4

第 3 章 導入方法 5

3.1 インストール手順 ...............................................................5

第 4 章 リファレンス 6

4.1 VI一覧 .........................................................................6

4.2 VI個別説明 .....................................................................8

4.3 戻り値一覧 ....................................................................68

第 5 章 サンプルダイアグラム 70

5.1 trans .........................................................................70

第 6 章 重要な情報 71

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

3

第1章 はじめに

1.1 概要 BPC-0544 は、弊社 CAN インタフェース製品を National Instruments 社 LabVIEW から使用するた

めの VI(ダイアグラム)を提供するソフトウェアです。

1.2 特長 ●機能や使い方を説明するヘルプ(Help.pdf)をサポートしていますので、開発中に VI(ダイア

グラム)の詳細説明など、簡単に参照することができます。

●弊社 CAN インタフェースを Natioanl Instruments 社 LabVIEW から制御できます。

●CAN プロトコル Version 2.0B(アクティブ)に対応しています。

アプリケーションでは CAN プロトコルを意識することなく、メッセージの送受信が行えます。

●各ポート独立に制御することが可能です。(通信速度、その他のパラメータなど)

●送受信データをメッセージ単位で扱えますので、プログラムの作成が容易です。

●デバイスドライバ内部にバッファを用意することで、アプリケーションの処理が遅れた場合の

オーバーランエラー発生の確率を低減しています。

●通信されるデータのフォーマットをあらかじめ登録しておくことで、データフィールドを様々

な型やサイズに変換することができます。

●指定したデータを周期的に送信することができます。(※)

●データを送信する前にディレイ時間を挿入することができます。(※)

※高機能版、バスマスタ版 CAN インタフェース製品のみ対応しています。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

4

第2章 製品仕様

2.1 基本仕様 対応プロトコル CAN Ver.2.0B(アクティブ) ISO11898

拡張フレームを用いた通信が可能

高速 CAN 60kbps~1Mbps 通信速度

低速 CAN 40kbps~125kbps

送信バッファサイズ 64 メッセージ(最小) (※1)

受信バッファサイズ 64 メッセージ(最小) (※1)

エラーバッファサイズ 64 件(最小) (※1)

検出可能なエラーの種類 ・ビットエラー

・フォームエラー

・ビットスタッフエラー

・その他エラー

エラーが発生したフレームは、バッファには格納され

ません。

最大使用ポート数 255 (※2)

※1 最大サイズは、環境(使用可能な空きメモリ)に依存します。

※2 同一型式のデバイスは最大 16 枚まで使用可能です。ただし、型式内の数字が同じものは同

一型式とみなします。例えば CBI-4851A と CBI-4851B は同一型式とみなし、最大使用可能枚数

は両型式合わせて 16 枚までとなります。

2.2 製品構成 製品構成 ファイル名 説明

弊社管理用ファイル BPC0544.VER 弊社ソフト管理用ファイル

最新情報ドキュメント README.HTM 最新ドキュメント掲載ファイル

インストールプログラム SETUP.EXE インストール用ファイル

サンプルダイアグラム

trans trans.vi サンプルダイアグラム

DLL BPC0544.llb VI ライブラリ

オンラインヘルプ HELP.PDF オンラインヘルプ(PDF 形式)

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

5

第3章 導入方法

3.1 インストール手順 1. サンプルダイアグラムのインストール

サンプルダイアグラム、ヘルプ、VI ライブラリ、最新情報ドキュメントファイルのインストー

ルを行います。

1. 弊社 Web site より BPC-0544 の Utility Disk をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「SETUP」フォルダが作成されます。

3. 「SETUP」フォルダ内の SETUP.EXE を実行してください。プログラムが起動しインストール

が開始されます。

インストールが完了すると、「スタート」メニューの「プログラム」に、「Interface BPC-0544」

が追加されます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

6

第4章 リファレンス

4.1 VI 一覧

4.1.1 デバイス制御用 Vi No VI 名 機能

●初期化 VI

1 CanOpenPort CAN インタフェースをオープンします。

2 CanClosePort CAN インタフェースをクローズします。

3 CanActivate CAN バスに接続します。

4 CanDeactivate CAN バスから切り離します。

●各種設定 VI

5 CanSetConfig 各種設定を行います。

6 CanSetAcceptanceFilter アクセプタンスフィルタの設定を行います。

7 CanSetFifoTrigger FIFO のトリガ設定を行います。

●メッセージ送受信 VI

8 CanSendMessage メッセージの送信を行います。

9 CanCyclicSendMessage メッセージの周期送信を行ないます。

10 CanStopCyclicSendMessage メッセージの周期送信を停止します。

11 CanReceiveMessage 受信メッセージの取り出しを行います。

●その他(ステータス取得など)

12 CanGetStatus 各種ステータスの取得を行います。

13 CanGetErrorEvent エラー情報をエラーバッファから取り出します。

14 CanGetCompletionMessage 送信完了したメッセージを取り出します。

15 CanClearBuffer 各種バッファをクリアします。

16 CanGetPortInformation ポートのハードウェア情報を取得します。

●割り込み設定 VI

17 CanSetEvent 割り込みイベントを登録します。

18 CanSetEventMask 割り込みのマスク設定を行います。

19 CanKillEvent 割り込みイベントを解除します。

20 CanWaitEvent 割り込みイベントの発生を待ちます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

7

4.1.2 プロファイル設定用 VI No VI 名 機能

●プロファイル変換 VI

1 CanQueryProfile 該当するプロファイルが登録されているかどうか問い合わせます。

2 CanApplyProfileInteger プロファイル情報を元に受信データを 32bit 整数値に変換します。

3 CanApplyProfileFloat プロファイル情報を元に受信データを 32bit 実数値に変換します。

4 CanApplyProfileDouble プロファイル情報を元に受信データを 64bit 実数値に変換します。

●プロファイル設定 VI

5 CanSetProfile プロファイルの登録を行います。

6 CanDeleteProfile プロファイルを削除します。

●プロファイル設定ファイル VI

7 CanSaveProfile プロファイルをセーブします。

8 CanLoadProfile プロファイルをロードします。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

8

4.2 VI 個別説明

4.2.1 デバイス制御用 VI

1. CanOpenPort

【機能】

CAN インタフェースのオープンを行い、以後のアクセスを行えるようにします。

Windows の「デバイス マネージャ」に認識された弊社 CAN インタフェースが一覧表示されま

す。一覧の製品型式の横にチャンネル番号とデバイス名(IFCANx)が表示されます。

※ チャンネル 1とチャンネル 2は別のデバイス名で登録されます。

デバイス名はスロット位置の変更等でシステム構成が変化すると割り当てられる名前が変化

する場合があります。システム構成が変化する環境でご使用になる場合は、デバイス名の指定

が変更できるようにアプリケーションを作成ください。

【入力】

DeviceName オープンする CAN インタフェースのデバイス名を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle CanOpenPort.vi が正常に終了した場合には、有効なハンドルが返されます。

オープンに失敗した場合には、FFFFFFFFh が返されます。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

9

2. CanClosePort

【機能】

CAN インタフェースをクローズします。

アクセスのために使用されていた各種リソースの解放を行い、以後の CAN インタフェースへの

アクセスを禁止します。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

再度、CANインタフェースへのアクセスを行う場合にはオープン処理(CanOpenPort.vi)を呼び

出してください。

メッセージの送受信中に本 VI を実行した場合、全て中断されます。

クローズ後の各種設定はクリアされます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

10

3. CanActivate

【機能】

CAN バスへの接続を有効(データの送受信が行える状態)化します。

CanOpenPort.viでオープンした直後は、バスオフ状態(接続が無効な状態)ですので、本VIを

使用し、CANバスへ接続する必要があります。

送信エラー数が 255 を越え、バスオフ状態になったときにも、本 VI を使い再接続します。

送信バッファに送信メッセージが残っている場合、送信を再開します。

既に CAN バスへの接続が有効であるときに、本 VI を呼び出すとエラーとなります。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

11

4. CanDeactivate

【機能】

バスオフ状態(CAN バスへの接続を無効化)にします。(メッセージの送受信が行えない状態)

CanSetConfig.vi、CanSetAcceptanceFilter.vi、CanSetFifoTrigger.viを実行するには本VIで

バスオフ状態にしておく必要があります。

バスオフ状態かどうかは、CanGetStatus.viで確認することができます。

メッセージの送信中の場合、そのメッセージは途中で中断されます。

(そのメッセージは正規のフォーマットではなくなるので、受信側でエラーが発生します)

送信待機中のメッセージはそのまま送信バッファに残りますが、送信 FIFO 内のデータはクリ

アされます(受信 FIFO、エラーFIFO のデータは各バッファに格納されます)。

再度、CanActivate.viを実行し、バスに接続後、自動的に送信が再開されます。

送信したくない場合は、CanActivate.viを実行する前に CanClearBuffer.viで送信バッファを

クリアしておいてください。

メッセージの受信中に、本 Vi を実行した場合、その受信中のメッセージは受信バッファには

蓄えられません。(破棄されます)

受信バッファの中身は変化しませんので、バスオフ状態でもメッセージを取り出すことは可能

ですが、新たな受信メッセージは CanActivate.viを実行するまで蓄えられません。

既にバスオフ状態のときに、本 VI を呼び出すとエラーとなります。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

12

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの Vi のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

13

5. CanSetConfig

【機能】

CAN インタフェースの各種設定を行います。

本VIで設定を行うためには、CANバスへの接続を無効化(CanDeactivate.vi)しておく必要が

あります。(接続中のまま実行すると、エラーが返されます)

設定変更後、再度CANバスへ接続するためには CanActivate.viを実行して下さい。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

CanPortConfig 通信条件の設定を行います。

LineMode 通信のモードの設定を指定します。

高機能版 CAN インタフェース製品では、CAN_FIFO_SEND_MODE を OR で指定することがで

きます。

値 識別子 意味

0 CAN_NORMAL_MODE 通常の通信モード

メッセージを受信したら ACK を返します。

(デフォルト値)

1 CAN_LISTEN_ONLY_MODE モニタモード

メッセージを受信しても ACK を返しません。

2 CAN_FIFO_SEND_MODE FIFO 送信モード

送信 FIFO を使った送信を行います。送信 FIFO トリガを

使用してパフォーマンスを上げることが出来ますが、送

信完了メッセージは挿入されません。

複数のモードを同時に指定する場合は各識別子を論理和(OR)で指定します。

例:LineMode[0] = CAN_NORMAL_MODE

LineMode[1] = CAN_FIFO_SEND_MODE

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

14

FilterMode アクセプタンスフィルタモードの設定を指定します。

値 識別子 意味

0 CAN_DUAL_FILTER 2 つのフィルタを設定できます。

(1つのフィルタあたり、16 ビットの定義)

1 CAN_SINGLE_FILTER 1 つのフィルタを設定できます。(デフォルト値)

(32 ビットの定義が可能)

TXBSize 送信バッファのサイズをメッセージ単位で指定します。

1 増加する毎に使用するメモリが 24 バイトずつ増加します。

バスマスタ版 CAN インタフェース製品は送信バッファにデータが格納されている場合、

送信バッファサイズの変更は行えません。

送信バッファ内に格納されているメッセージ数よりも、小さいサイズに設定しようと

した場合、入りきらなかったデータは破棄されます。

設定値 : 64~ (デフォルト値 : 64)

RXBSize 受信バッファのサイズをメッセージ単位で指定します。

1 増加する毎に使用するメモリが 24 バイトずつ増加します。

受信バッファ内に格納されているメッセージ数よりも、小さいサイズに設定しようと

した場合、入りきらなかったデータは破棄されます。

設定値 : 64~ (デフォルト値 : 64)

ERBSize エラーキャプチャに使用するバッファのサイズを件数単位で指定します。

1 増加する毎に使用するメモリが 16 バイトずつ増加します。

エラーバッファ内に格納されているエラー数よりも、小さいサイズに設定しようとし

た場合、入りきらなかったデータは破棄されます。

設定値 : 64~ (デフォルト値 : 64)

ErrorLimit 送受信の際に発生したエラーが、この件数を超えるとイベントが発生します。

CAN のプロトコルでは 127 を越えるとエラーパッシブ状態となり、255 を越えるとバス

オフ状態へ遷移します。

設定値 : 0~255 (デフォルト値 : 96)

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

15

BaudRate 通信速度を指定します。

値 識別子 意味

0 CAN_BAUDRATE_33_3k 通信速度を 33.3Kbps に設定します。

1 CAN_BAUDRATE_50k 通信速度を 50Kbps に設定します。

2 CAN_BAUDRATE_83_3k 通信速度を 83.3Kbps に設定します。

3 CAN_BAUDRATE_95_2k 通信速度を 95.2Kbps に設定します。

4 CAN_BAUDRATE_100k 通信速度を 100Kbps に設定します。

5 CAN_BAUDRATE_125k 通信速度を 125Kbps に設定します。(デフォルト値)

6 CAN_BAUDRATE_250k 通信速度を 250Kbps に設定します。

7 CAN_BAUDRATE_500k 通信速度を 500Kbps に設定します。

8 CAN_BAUDRATE_1M 通信速度を 1Mbps に設定します。

9 CAN_BAUDRATE_BTR SJA1000 の BTR レジスタを直接制御します。

※CAN_BAUDRATE_BTR を指定することで、BaudRateBtr から CAN コントローラ SJA1000

の BTR レジスタに直接、値を代入することが出来ます。

BaudRateBtr BTR レジスタへ直接設定する通信速度を指定します。

BaudRate で CAN_BAUDRATE_BTR を指定したときのみ有効です。

bit15~8 が BTR1、bit7~0 が BTR0 に相当します。

なお、CAN コントローラに入力されるクロックは 24MHz です。

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

予約 予約 予約 予約 予約 予約 予約 予約

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

予約 予約 予約 予約 予約 予約 予約 予約

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

SAM TSEG2.2 TSEG2.1 TSEG2.0 TSEG1.3 TSEG1.2 TSEG1.1 TSEG1.0

※CAN_BAUDRATE_BTR でのボーレート設定方法

下記の計算式に各ビットの値をあてはめてボーレートを設定してください。

BRP.0BRP.1BRP.2BRP.3BRP.4BPR.5BRP +×+×+×+×+× 2481632=

TSEG1.0 TSEG1.1 TSEG1.2 TSEG1.3 TSEG1 +×+×+× 248=

TSEG2.0 TSEG2.1 TSEG2.2 TSEG2 +×+× 24=

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

16

BRPfSCL

61024 ×= 

)1()1(1 ++ fSCL

TSEG2 TSEG1 ++=   ボーレート

※サンプルポイントを後にずらすためには、TSEG2 の値をなるべく小さくする

ように設定してください。

その他設定値については、CAN コントローラ(SJA1000)のデータシートを参照くださ

い。

例:ボーレートを 500Kbps に設定します。(BPR=4,TSEG1=8,TSEG2=1)

BaudRate = CAN_BAUDRATE_BTR + 400h + 10h + 08h

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

1. 受信フィルタの設定は、CanSetAcceptanceFilter.viで行って下さい。

2. バスマスタ版 CAN インタフェース製品は送信中のデータがある状態で、送信バッファサイ

ズの変更は行えません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

17

6. CanSetAcceptanceFilter

【機能】

CAN バス上を流れるメッセージを取り込む際のフィルタを設定します。

本VIで設定を行うためには、CANバスへの接続を無効化(CanDeactivate.vi)しておく必要が

あります。(接続中のまま実行すると、エラーが返されます)

特定の ID、およびデータを持つ CAN メッセージだけ取り込みたい場合に使用します。

フィルタの設定は ID、およびデータに対してビットパターンで行い、ビット毎に「0、1 どち

らでも受信する」、「0の時だけ受信する」、「1の時だけ受信する」を設定することが出来ます。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

AcceptanceCode 後述の AcceptanceMask で 0 を指定したビットが 0、1 のどちらでフィルタを通過して受信

バッファに取り込まれるか指定します。

CAN コントローラ SJA1000 のレジスタ ACR0~3 に該当します。

デフォルトでは 0に設定されています。

AcceptanceMask どのビットにアクセプタンスフィルタを適用するか指定してください。

該当するビットに 0 を設定するとフィルタが有効になり、AcceptanceCode で指定した値と

受信メッセージの該当ビットが一致していれば、受信バッファに取り込まれます。

1 を設定しているビットはフィルタの対象外となります。

フィルタを使用せず、全てのメッセージを受信したい場合は、AcceptanceMask の全ビット

に 1を設定してください。

CAN コントローラ SJA1000 のレジスタ AMR0~3 に該当します。

デフォルトでは FFFFFFFFh(全ビット 1)に設定されています。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

18

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

AcceptanceCode、AcceptanceMaskは、CanSetConfig.viで設定するFilterMode及び、使用する

フレームフォーマット(標準/拡張フォーマット)により、内容が異なります。

FilterMode が CAN_SINGLE_FILTER の場合

1 種類のフィルタを設定することが可能です。

●標準フォーマット

11 ビット ID 全てに対しフィルタを設定することが可能です。

また、データバイトの先頭 2バイトに対してもフィルタを設定することが出来ます。

フィルタの適用範囲は以下の通りです。

←フレームの先頭

ID(11 ビット) RTR 1 バイト目データ 2バイト目データ 3バイト目

28 27 26 … 20 19 18 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

フィルタの適用範囲

ビット(※1) bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.20 ID.19 ID.18 RTR 0 0 0 0 フィルタ対象

ID.20~ID.18、RTR 予約(※2)

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 フィルタ対象

受信データ 1 バイト目

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

19

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 フィルタ対象

受信データ 2 バイト目

※1.AcceptanceCode、AcceptanceMask のビットです。

※2.0 を指定してください。

●拡張フォーマット

29 ビット ID 全てに対しフィルタを設定することが可能です。

フィルタの適用範囲は以下の通りです。

←フレームの先頭

ID(29 ビット) RTR 1 バイト目データ 2バイト目~

28 27 26 … 2 1 0 0 7 6 5 4 3 2 1 0

フィルタの適用範囲

ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13フィルタ対象

ID.20~ID.13

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.12 ID.11 ID.10 ID.9 ID.8 ID.7 ID.6 ID.5 フィルタ対象

ID.12~ID.5

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.4 ID.3 ID.2 ID.1 ID.0 RTR 0 0 フィルタ対象

ID.4~ID.0、RTR 予約

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

20

FilterMode が CAN_DUAL_FILTER の場合

2 種類のフィルタ(No.1 フィルタ、No.2 フィルタ)を設定することが可能です。

No.1 フィルタ、No.2 フィルタのいずれか片方のフィルタさえ通過すれば、データは受信され

ます(No.1 フィルタを通過したデータに、さらに No.2 フィルタを通過させ、両方のフィルタ

を通過するデータのみを受信するのではありません)。

●標準フォーマット

11 ビット ID 全てに対し 2種類のフィルタを設定することが可能です。

そのうち No.1 フィルタについては、データバイトの先頭 1バイトに対してもフィルタを設定

することが出来ます。

AcceptanceCode、AcceptanceMask の bit0~bit3、および bit16~bit31 の部分が No.1 フィル

タになり、bit4~bit15 の部分が No.2 フィルタになります。

フィルタの適用範囲は以下の通りです。

←フレームの先頭

ID(11 ビット) RTR 1 バイト目データ 2バイト目~

28 27 26 25 24 23 22 21 20 19 18 0 7 6 5 4 3 2 1 0

No.2 フィルタの適用範囲

No.1 フィルタの適用範囲

ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

フィルタ No No.1 フィルタ

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.20 ID.19 ID.18 RTR bit7 bit6 bit5 bit4 フィルタ対象

ID.20~ID.18、RTR 受信データ 1バイト目上位 4ビット

フィルタ No No.1 フィルタ

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

フィルタ No No.2 フィルタ

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.20 ID.19 ID.18 RTR bit3 bit2 bit1 bit0 フィルタ対象

ID.20~ID.18、RTR 受信データ 1バイト目下位 4ビット

フィルタ No No.2 フィルタ No.1 フィルタ

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

21

●拡張フォーマット

29 ビット ID のうち、先頭の 16 ビットに対し 2 種類のフィルタを設定することが可能です。

AcceptanceCode、AcceptanceMask の bit16~bit31 の部分が No.1 フィルタになり、bit0~

bit15 の部分が No.2 フィルタになります。

フィルタの適用範囲は以下の通りです。

←フレームの先頭

ID(29 ビット) RTR 1 バイト目データ 2バイト目~

28 27 26 … 15 14 13 12~0 0 7 6 5 4 3 2 1 0

No.2 フィルタの適用範囲

No.1 フィルタの適用範囲

ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

フィルタ No No.1 フィルタ

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13フィルタ対象

ID.20~ID.13

フィルタ No No.1 フィルタ

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21フィルタ対象

ID.28~ID.21

フィルタ No No.2 フィルタ

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13フィルタ対象

ID.20~ID.13

フィルタ No No.2 フィルタ

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

22

7. CanSetFifoTrigger

【機能】

受信 FIFO、エラーFIFO、送信 FIFO のトリガ値を設定します。ここでいうトリガとは、ドライ

バ内で割り込みが発生するタイミングのことをいいます。従って、通常はこのトリガ値を意識

する必要はありません。本 VI はバスオフ状態でのみ実行できます。

高速でデータをやり取りする場合、トリガ値を上げることにより、ドライバ内での割り込み発

生率が下がり、システムの負荷を下げることができます。トリガ値を上げることにより、オー

バーフローが発生する場合は、トリガ値を下げるようにして下さい。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

FifoKind 設定する FIFO を指定します。

値 識別子 内容

0 CAN_RECEIVE_FIFO 受信 FIFO(※1)

1 CAN_ERROR_FIFO エラーFIFO

2 CAN_SEND_FIFO 送信 FIFO(※1, 2)

※1 高機能版 CAN インタフェース製品のみ有効です。

※2 FIFO 送信モードに設定していない場合はエラーとなります。

TriggerValue トリガ値を指定します。デフォルトは 0です。

値 識別子 内容

0 CAN_TRIGGER_1 受信/エラーFIFO 内のデータ数が 0→1で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 1→0で割り込み発生。

1 CAN_TRIGGER_16 受信/エラーFIFO 内のデータ数が 15→16 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 16→15 で割り込み発生。

2 CAN_TRIGGER_32 受信/エラーFIFO 内のデータ数が 31→32 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 32→31 で割り込み発生。

3 CAN_TRIGGER_48 受信/エラーFIFO 内のデータ数が 47→48 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 48→47 で割り込み発生。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

23

FifoTimeout 受信 FIFO、エラーFIFO 内のタイムアウト時間を設定します。単位は 100μs です。

新しく FIFO 内にデータが挿入されてから、FifoTimeout 時間の間にトリガが発生しない場

合、割り込みが発生するようになります。

例えば、受信 FIFO のトリガ設定を行うために、FifoKind に CAN_RECEIVE_FIFO を設定し、

TriggerValue に CAN_TRIGGER_48、FifoTimeout に 5 を設定した場合、受信 FIFO 内のデータ

数が 48 になれば、トリガ条件が満たされたことになり、(ドライバ内で)割り込みが発生

します。また、受信 FIFO 内のデータ数が 48 より少ない場合、受信データが受信 FIFO に挿

入されてから、次のデータが受信 FIFO に挿入される前に、500μs(5×100μs)が経過す

ると、タイムアウトとみなされ、(ドライバ内で)割り込みが発生します。

デフォルトは、エラーFIFO、受信 FIFO いずれも 4です。

設定可能範囲は 1~255 です。

送信 FIFO 設定時は、設定値は無効となります。

error in (no error) エラー入力は、Vi の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、Vi はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの Vi のエラー状況を示します。

【備考】

本 VI は、スタンダード版 CAN インタフェース製品では使用することはできません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

24

8. CanSendMessage

【機能】

CAN メッセージの送信を行います。

本 VI の実行後、送信バッファにメッセージが蓄えられ、順次送信されます。

送信の完了は、送信完了イベントの取得により確認できます。

また、CanSetEvent.viでイベントを設定することで送信バッファが空になった時点でイベント

を発生させることができます。

セットするメッセージの個数を指定することで、1回の VI 呼び出しで複数のメッセージを送信

バッファに蓄えることができます。

CAN バスへの接続が有効である場合のみ実行できます。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

Count 送信バッファにセットするメッセージの個数を指定してください。

SendMessage 送信するメッセージを指定してください。

Length 送信メッセージの長さを指定します。(バイト)

ID、フラグを含まないデータ本体の長さになります(0~8)

Flag 送信するメッセージの種類を設定します。

値 内容

0 メッセージはデータフレームです。

1 メッセージはリモートフレームです。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

25

ID 送信メッセージに付加する ID を表します。

11 ビットと 29 ビットの ID の区別は bit31 の値により行うことができます。

bit31 を 0 に指定した場合は 11 ビット、bit31 を 1 に指定した場合は 29 ビットの ID

になります。

11 ビット ID では、ulID のビットパターンは下記のようになります。

bit31 bit30 … bit11 bit10 bit9 bit8

0 無効 ID.28 ID.27 ID.26

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18

29 ビット ID では、ulID のビットパターンは下記のようになります。

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

1 無効 ID.28 ID.27 ID.26 ID.25 ID.24

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.15 ID.14 ID.13 ID.12 ID.11 ID.10 ID.9 ID.8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.7 ID.6 ID.5 ID.4 ID.3 ID.2 ID.1 ID.0

Data 送信メッセージを格納します。

メッセージの先頭から Data[0], Data[1],,,,,Data[7]となっています。

送信時、Length に設定した値よりも長いデータは無視されます。

例えば Length に 3 を設定した場合、Data[0],Data[1],Data[2]はドライバに渡され蓄

えられますが、Data[3]以降のデータは無視されます。

Time 高機能版、バスマスタ版 CAN インタフェース製品では、ディレイ時間を格納します。

単位は 10μs です。例えば、Time に 100 を指定して、CanSendMessage.vi を呼ぶと、

1ms(100×10μs)待ってから、データを送信します。設定可能範囲は 0~1FFFFFh で

す。1FFFFFh より大きい値を設定しても、自動的に 1FFFFFh になります。スタンダード

版では使用しません。設定値は無効となります。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、Vi はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

26

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

27

9. CanCyclicSendMessage

【機能】

CAN メッセージの周期送信を行います。

この VI は非同期で実行されますので、VI 実行後にすぐに処理が返ります。

設定した周期でデータ送信ができなかった場合と、CanStopCyclicSendMessage.viを実行した

場合のみ、周期送信を停止します。周期送信実行中は、CanSendMessage.viは使用できません。

また、周期送信メッセージは、送信完了メッセージを取得できません。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

CanMessage 送信するメッセージを指定してください。

Length 送信メッセージの長さを指定します。(バイト)

ID、フラグを含まないデータ本体の長さになります(0~8)

Flag 送信するメッセージの種類を設定します。

値 内容

0 メッセージはデータフレームです。

1 メッセージはリモートフレームです。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

28

ID 送信メッセージに付加する ID を表します。

11 ビットと 29 ビットの ID の区別は bit31 の値により行うことができます。

bit31 を 0 に指定した場合は 11 ビット、bit31 を 1 に指定した場合は 29 ビットの ID

になります。

11 ビット ID では、ulID のビットパターンは下記のようになります。

bit31 bit30 … bit11 bit10 bit9 bit8

0 無効 ID.28 ID.27 ID.26

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18

29 ビット ID では、ulID のビットパターンは下記のようになります。

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

1 無効 ID.28 ID.27 ID.26 ID.25 ID.24

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.15 ID.14 ID.13 ID.12 ID.11 ID.10 ID.9 ID.8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.7 ID.6 ID.5 ID.4 ID.3 ID.2 ID.1 ID.0

Data 送信メッセージを格納します。

メッセージの先頭から Data[0], Data[1],,,,,Data[7]となっています。

送信時、Length に設定した値よりも長いデータは無視されます。

例えば Length に 3 を設定した場合、Data[0],Data[1],Data[2]はドライバに渡され蓄

えられますが、Data[3]以降のデータは無視されます。

Time 高機能版、バスマスタ版 CAN インタフェース製品では、ディレイ時間を格納します。

単位は 10μs です。例えば、Time に 100 を指定して、CanSendMessage.vi を呼ぶと、

1ms(100×10μs)待ってから、データを送信します。設定可能範囲は 0~1FFFFFh で

す。1FFFFFh より大きい値を設定しても、自動的に 1FFFFFh になります。スタンダード

版では使用しません。設定値は無効となります。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

29

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの Vi のエラー状況を示します。

【備考】

1. データの送信時間よりも、周期時間を短く設定した場合、指定された時間に送信ができず、周

期実行は停止します。例えば、データの送信に 80msかかるのに、周期時間を 50msに設定した場

合、50ms経過したときに、まだデータが送信中なので、周期実行が停止します。

周期実行の停止は、CanSetEvent.vi、CanSetEventMask.viでの設定を行っている場合、イベン

トにより通知されます。

また、アービトレーションロストにより、指定した周期にデータを送信できない場合もありま

す。アービトレーションロストが発生し、データを再送しているときに、次の周期時間が来る

と、上記と同じように、周期実行が停止します。

例)周期を 50ms に設定した場合

データ送信中

時間

データ送信中

50ms 50ms・・・

周期送信開始

例)周期を 50ms に設定したが、その周期よりもデータ送信時間が長い場合

データ送信中

時間

50ms

周期送信開始

前回のデータが、まだ送信完了して

いないため、次のデータが送れずに

周期送信は停止します。

周期送信実行中でも、周期送信を行いたいデータの更新、周期の更新を行えます。更新したデ

ータは、次の周期から反映されます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

30

例)周期送信を行うデータや周期を更新したい場合

データA送信中

時間

50ms・・・

周期送信開始

データ B送信中

80ms

データ、周期の更新はいつでも可能です。

ただし、反映されるのは次の周期からになります。

例えば、この時点で、周期送信を行うデータを B に、周期を 80ms に更

新したとすると、前回の設定周期の 50ms が経過してから、データ B が

80ms 周期で送信されるようになります。

優先順位の高いメッセージを短い周期で送信していると、アービトレーションにより、それよ

り優先順位の低いメッセージが送信されにくくなりますので、ご注意ください。

2. 本 VI は、スタンダード版 CAN インタフェース製品では使用することはできません。

【注意事項】

下記の型式、リビジョン ID の製品をご使用の場合、CAN コントローラへのアクセスが競合する

と、指定された時間に送信できず、周期送信が停止する場合があります。

(リビジョン ID は CanGetPortInformation.vi で取得できます。)

該当型式 該当リビジョン ID

CBI-4852、CBI-4852A、CBI-4852B 3 以下

PCI-485220、PCI-485211、PCI-485202

LPC-485220、LPC-485211、LPC-485202

2 以下

CBI-485220、CBI-485220WA、CBI-485220WB

CPZ-485220、CPZ-485211、CPZ-485202

CSI-485220

1

例えば、CanGetStatus.viによるステータスの読み出しや、データ受信と競合した場合などに

現象が発生しますので、周期送信を行うポートに対して下記のような対策をご検討下さい。

・メッセージを受信しないよう、受信フィルタを設定する。

・ステータスのポーリングを行わない。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

31

10. CanStopCyclicSendMessage

【機能】

CAN メッセージの周期送信を停止します。

データ送信中にこの VI を実行すると、現在送信中のデータの送信が完了してから、周期送信

が停止されます。

この VI で周期送信を停止した場合、周期送信停止イベントは発生しません。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

本 VI は、スタンダード版 CAN インタフェース製品では使用することはできません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

32

11. CanReceiveMessage

【機能】

受信された CAN メッセージを取り出します。

CAN バス上を流れる CAN メッセージは、自動的にデバイスドライバ内部の受信バッファに蓄え

られます。

本 VI では、この蓄えられた CAN メッセージを取り出します。

受信メッセージがあるかどうかは、CanGetStatus.viで受信バッファの状態を見ることで確認

できます。蓄えられたCANメッセージが無い場合、戻り値で、C0000008hが返されます。

また、CanSetEvent.viでイベントを設定することでメッセージを受信した時点でイベントを発

生させることができます。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

Count 受信バッファから取り出すメッセージの件数を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Count(out) 実際に受信バッファから取り出された件数が、この変数に返されます。

CanMessage 受信したメッセージが格納されます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

33

Length 受信したメッセージの長さを表しています。(バイト)

ID、フラグを含まないデータ本体の長さになります(0~8)

Flag 受信したメッセージの種類を表します。

値 内容

0 メッセージはデータフレームです。

1 メッセージはリモートフレームです。

ID 受信したメッセージの ID を表します。

11 ビットと 29 ビットの ID の区別は bit31 の値により行うことができます。

bit31 が 0 の場合は 11 ビット、bit31 が 1 の場合は 29 ビットの ID になります。

11 ビット ID では、ID のビットパターンは下記のようになります。

bit31 bit30 … bit11 bit10 bit9 bit8

0 無効 ID.28 ID.27 ID.26

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18

29 ビット ID では、ID のビットパターンは下記のようになります。

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

1 無効 ID.28 ID.27 ID.26 ID.25 ID.24

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.15 ID.14 ID.13 ID.12 ID.11 ID.10 ID.9 ID.8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.7 ID.6 ID.5 ID.4 ID.3 ID.2 ID.1 ID.0

Data 受信したメッセージの本体を表します。

メッセージの先頭から Data[0], Data[1],,,,,Data[7]となっています。

Length 以上のデータは無効データです。

例えば Length に 2 が返ってきた場合、Data[0],Data[1]は受信したメッセージの内容

ですが、Data[2]以降は無効なデータです。無視してください。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

34

Time メッセージ受信した時刻が格納されます。(単位 : μs)

実際の時刻ではなく、CanOpenPort.viの実行後からの経過時間になります。

エラーイベントにも同じ時刻が記録されますので、受信メッセージ、エラー発生、送

信完了の時間的関係を結びつけることができます。

CanClearBuffer.viでCAN_CLEAR_TIMERCOUNTERを指定することで、内部の経過時間を 0

クリアすることが出来ます。

単位はμs ですが、実際に返される値はスタンダード版では 1000 単位の値(ms)が返さ

れます。高機能版、バスマスタ版 CAN インタフェース製品では、10 単位の値が返され

ます。

また、この時間は、スタンダード版 CAN インタフェース製品では、CAN コントローラか

ら割り込みが発生し、デバイスドライバの割り込み処理内で CAN メッセージを取り出

した時の時間ですので、正確性には欠けます。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

35

12. CanGetStatus

【機能】

CAN バスの現在の状態を取得します。

得られる情報は バスの状態、エラーカウンタ、送受信バッファの空き状況などです。

本VIの実行時、CANバスへの接続を無効化(CanDeactivate.vi)する必要はありません。

CanOpenPort.viでオープン後であれば、いつでも使用することができます。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

CanPortStatus ステータス情報を返します。

BusStatus CAN バスの状態を表します。

値 内容

00000004h バスオフ状態です。

00000002h 送信か受信のエラーカウンタが 127 を越え

ました。エラーパッシブ状態です

00000001h バスは正常に動作しています。

エラーアクティブ状態です。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

36

TXBCount 送信バッファに蓄えられている未送信 CAN メッセージの数を返します。

送信完了メッセージはカウントされません。

0 ~ 最大値 (※)

RXBCount 受信バッファに蓄えられている CAN メッセージの数を返します。

0 ~ 最大値 (※)

ERBCount エラーバッファに蓄えられているエラー情報の数を返します。

0 ~ 最大値 (※)

TXERRCount 送信エラーカウンタの値を返します。

0 ~ 255

RXERRCount 受信エラーカウンタの値を返します。

0 ~ 255

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

37

13. CanGetErrorEvent

【機能】

エラーバッファに蓄えられたエラー情報を取り出します。

CAN バス上で発生したエラーは、自動的にデバイスドライバ内部のエラーバッファに蓄えられ

ます。

本 VI では、この蓄えられたエラー情報を取り出します。

エラー情報があるかどうかは、CanGetStatus.viでエラーバッファの状態を見ることで確認で

きます。蓄えられたエラー情報が無い場合、戻り値で、C0000008hが返されます。

また、CanSetEvent.viでイベントを設定することでエラーが発生した時点でイベントを発生さ

せることができます。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

Count エラーバッファから取り出すエラー情報の件数を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Count(out) 実際にエラーバッファから取り出された件数を返します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

38

CanError エラー情報が格納されます。

InterruptRegister エラー割り込み発生時の発生要因が格納されます。

複数の要因が同時に成立している場合もあります。

値が 80h の場合、ErrorCodeRegister に詳細なエラー要因が格納されます。

値 内容

00000080h CAN バス上のエラーを検出しました。詳細は ErrorCodeRegister で確認

してください。

00000040h CAN バス上でアービトレーションロストを検出しました。

詳細は ArbitrationLostRegister で確認してください。

00000020h エラーパッシブ状態となりました。(送信か受信のエラーカウンタが

127 を越えました)

00000008h オーバーランエラーが発生し、受信メッセージが失われました。

00000004h 送信か受信のエラーカウンタが CanSetConfig.viで設定したリミット

値を越えました。

ErrorCodeRegister CAN バス上のエラーが発生した場合の詳細な内容が格納されています。

InterruptRegister の CAN_DETECT_BUS_ERROR が有効でない場合は 0 が返されます。

(CAN コントローラ SJA1000 の ECC レジスタに相当します)

bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 ERRC1 ERRC0 DIR SEG4 SEG3 SEG2 SEG1 SEG0

各ビットの意味

ERRC1 ERRC0 エラーの種類

0 0 ビットエラー

0 1 フォームエラー

1 0 ビットスタッフエラー

1 1 その他の種類のエラー

DIR エラーの発生した方向

0 送信時に発生したエラー

1 受信時に発生したエラー

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

39

SEG4 SEG3 SEG2 SEG1 SEG0 エラーの発生箇所

0 0 0 1 1 SOF(スタートオブフレーム)

0 0 0 1 0 ID.28~ID.21 の間

0 0 1 1 0 ID.20~ID.18 の間

0 0 1 0 0 SRTR(標準フォーマット時は RTR)

0 0 1 0 1 IDE

0 0 1 1 1 ID.17~ID.13 の間

0 1 1 1 1 ID.12~ID.5 の間

0 1 1 1 0 ID.4~ID.0 の間

0 1 1 0 0 RTR

0 1 1 0 1 R1(予約ビット)

0 1 0 0 1 R0(予約ビット)

0 1 0 1 1 DLC(データ長コード)

0 1 0 1 0 データフィールド

0 1 0 0 0 CRC シーケンス

1 1 0 0 0 CRC デリミタ

1 1 0 0 1 ACK スロット

1 1 0 1 1 ACK デリミタ

1 1 0 1 0 EOF(エンドオブフレーム)

1 0 0 1 0 インターミッション

1 0 0 0 1 アクティブエラーフラグ

1 0 1 1 0 パッシブエラーフラグ

1 0 0 1 1 重ね合わせエラーフラグ

1 0 1 1 1 エラーデリミタ

1 1 1 0 0 オーバーロードフラグ

ArbitrationLostRegister CAN バス上で、送信データの衝突が発生し、その際の調停で負けた場合、どのビットで

調停に負けたか(アービトレーション・ロスト)を記録するレジスタです。

InterruptRegister の値が 40h でない場合は 0 が返されます。(CAN コントローラ

SJA1000 の ALC レジスタに相当します)

bit31~5 bit4 bit3 bit2 bit1 bit0

予約 BITNO4 BITNO3 BITNO2 BITNO1 BITNO0

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

40

各ビットの意味は下記のようになります。

BITNO4 BITNO3 BITNO2 BITNO1 BITNO0 アービトレーションロスト位置

0 0 0 0 0 ID の 1 ビット目 (※1)

0 0 0 0 1 ID の 2 ビット目

0 0 0 1 0 ID の 3 ビット目

0 0 0 1 1 ID の 4 ビット目

0 0 1 0 0 ID の 5 ビット目

0 0 1 0 1 ID の 6 ビット目

0 0 1 1 0 ID の 7 ビット目

0 0 1 1 1 ID の 8 ビット目

0 1 0 0 0 ID の 9 ビット目

0 1 0 0 1 ID の 10 ビット目

0 1 0 1 0 ID の 11 ビット目

0 1 0 1 1 SRTR ビット (※2)

0 1 1 0 0 IDE ビット

0 1 1 0 1 ID の 12 ビット目 (※3)

0 1 1 1 0 ID の 13 ビット目 (※3)

0 1 1 1 1 ID の 14 ビット目 (※3)

1 0 0 0 0 ID の 15 ビット目 (※3)

1 0 0 0 1 ID の 16 ビット目 (※3)

1 0 0 1 0 ID の 17 ビット目 (※3)

1 0 0 1 1 ID の 18 ビット目 (※3)

1 0 1 0 0 ID の 19 ビット目 (※3)

1 0 1 0 1 ID の 20 ビット目 (※3)

1 0 1 1 0 ID の 21 ビット目 (※3)

1 0 1 1 1 ID の 22 ビット目 (※3)

1 1 0 0 0 ID の 23 ビット目 (※3)

1 1 0 0 1 ID の 24 ビット目 (※3)

1 1 0 1 0 ID の 25 ビット目 (※3)

1 1 0 1 1 ID の 26 ビット目 (※3)

1 1 1 0 0 ID の 27 ビット目 (※3)

1 1 1 0 1 ID の 28 ビット目 (※3)

1 1 1 1 0 ID の 29 ビット目 (※3)

1 1 1 1 1 RTR ビット (※3)

※1.ID の 1 ビット目は ID.28、2 ビット目は ID.27、…、となります。

※2.標準フォーマットの場合、RTR ビット。

※3.拡張フォーマットの場合のみ有効。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

41

Time

エラーが発生した時刻が格納されます。(単位 : μs)

実際の時刻ではなく、CanOpenPort.viの実行後からの経過時間になります。

受信メッセージ、送信完了メッセージにも同じ時刻が記録されますので、受信メッセ

ージ、エラー発生、送信完了の時間的関係を結びつけることができます。

CanClearBuffer.viでCAN_CLEAR_TIMERCOUNTERを指定することで、内部の経過時間を 0

クリアすることが出来ます。

単位はμsですが、実際に返される値はスタンダード版では 1000 単位の値(ms)が返さ

れます。高機能版、バスマスタ版CANインタフェース製品では、10 単位の値が返されま

す。

また、この時間は、スタンダード版CANインタフェース製品では、CANコントローラか

ら割り込みが発生し、デバイスドライバの割り込み処理内でCANメッセージを取り出し

た時の時間ですので、正確性には欠けます。

また、連続でCANメッセージを受信した場合、2 つのメッセージの受信時刻が同じにな

ることがあります。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの Vi のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

42

14. CanGetCompletionMessage

【機能】

送信完了メッセージを取り出します。

送信を完了したメッセージは、送信が完了した時間を Time に格納して、そのまま送信バッフ

ァに格納されています。

本 VI では、その蓄えられた送信完了メッセージを取り出します。

送信バッファ内では、送信完了メッセージ数はカウントされませんので、ご注意ください。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

Count 取り出す送信完了メッセージの件数を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Count(out) 取り出した送信完了メッセージの件数を返します。

CanMessage 送信完了したメッセージが格納されます。

Length 送信完了メッセージの長さを表しています。(バイト)

ID、フラグを含まないデータ本体の長さになります(0~8)

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

43

Flag 送信完了したメッセージの種類を表します。

値 内容

0 メッセージはデータフレームです。

1 メッセージはリモートフレームです。

ID 送信完了したメッセージの ID を表します。

11 ビットと 29 ビットの ID の区別は bit31 の値により行うことができます。

bit31 が 0 の場合は 11 ビット、bit31 が 1 の場合は 29 ビットの ID になります。

11 ビット ID では、ID のビットパターンは下記のようになります。

bit31 bit30 … bit11 bit10 bit9 bit8

0 無効 ID.28 ID.27 ID.26

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18

29 ビット ID では、ulID のビットパターンは下記のようになります。

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

1 無効 ID.28 ID.27 ID.26 ID.25 ID.24

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

ID.15 ID.14 ID.13 ID.12 ID.11 ID.10 ID.9 ID.8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ID.7 ID.6 ID.5 ID.4 ID.3 ID.2 ID.1 ID.0

Data 送信完了したメッセージの本体を表します。

メッセージの先頭から Data[0], Data[1],,,,,Data[7]となっています。

Length 以上のデータは無効データです。

例えば Length に 2 が返ってきた場合、Data[0],Data[1]は送信したメッセージの内容

ですが、Data[2]以降は無効なデータです。無視してください。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

44

Time 送信完了した時刻が格納されます。(単位 : μs)

実際の時刻ではなく、CanOpenPort.viの実行後からの経過時間になります。

エラーイベントにも同じ時刻が記録されますので、受信メッセージ、エラー発生、送

信完了の時間的関係を結びつけることができます。

CanClearBuffer.viでCAN_CLEAR_TIMERCOUNTERを指定することで、内部の経過時間を 0

クリアすることが出来ます。

単位はμsですが、実際に返される値はスタンダード版では 1000 単位の値(ms)が返さ

れます。高機能版、バスマスタ版CANインタフェース製品では、10 単位の値が返されま

す。

また、この時間は、スタンダード版CANインタフェース製品では、CANコントローラか

ら割り込みが発生し、デバイスドライバの割り込み処理内でCANメッセージを送信した

時の時間ですので、正確性には欠けます。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【注意】

高機能版CANインタフェース製品で、CanSetConfig.viでLineModeを、CAN_FIFO_SEND_MODEで

FIFO送信モードに設定している場合、および、CanCyclicSendMessage.viによる周期送信は、

送信完了メッセージが格納されません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

45

15. CanClearBuffer

【機能】

デバイスドライバ内に蓄えられている送信、受信メッセージ等を削除します。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

ClearBuffer クリアするバッファの種類を指定してください。

送信バッファクリア時は、送信完了メッセージもクリアされます。

値 識別子 内容

0 CAN_CLEAR_TXB 送信バッファの内容をクリアします。

送信 FIFO 内のデータもクリアされます。

1 CAN_CLEAR_RXB 受信バッファの内容をクリアします。

受信 FIFO 内のデータもクリアされます。

2 CAN_CLEAR_TXERR 送信エラーカウンタをクリアします。※

3 CAN_CLEAR_RXERR 受信エラーカウンタをクリアします。※

4 CAN_CLEAR_ERB エラーバッファの内容をクリアします。

エラーFIFO 内のデータもクリアされます。

5 CAN_CLEAR_TIMERCOUNTER 内部カウンタをクリアします。

※バスオフ状態でのみ使用可能です。使用時にはCanDeactivate.viでバスオフ状態にする必

要があります。バスオフ状態になっていない場合、VIの戻り値でエラーが返され、全てのク

リアは行われません。

複数のバッファを同時に指定する場合は各識別子を論理和(OR)で指定します。

例:ClearBuffer[0] = CAN_CLEAR_TXB

ClearBuffer[1] = CAN_CLEAR_RXB

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

46

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

47

16. CanGetPortInformation

【機能】

ポートのハードウェア情報を取得します。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

CanPortInfomation ハードウェア情報が格納されます。

VendorID CAN インタフェース製品のベンダ ID を返します。

DeviceID CAN インタフェース製品のデバイス ID を返します。

SubsystemID CAN インタフェース製品のサブシステム ID を返します。

RevisionID CAN インタフェース製品のリビジョン ID を返します。

ModelNumber CAN インタフェース製品の型式番号を返します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

48

BoardID CAN インタフェース製品の RSW1 設定値を返します。

ChannelNumber チャンネル番号を返します。

値は 1始まりです(チャンネル1の場合は1、チャンネル2の場合は2、…となります) 。

PhysicalLayer CAN ポートのハードウェアインタフェースです。

値 内容

0 低速 CAN(ISO 11898-3)

1 高速 CAN(ISO 11898-2)

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの Vi のエラー状況を示します。

【備考】

各 CAN インタフェース製品のデバイス ID、サブシステム ID は下記のとおりです。

製品型式 デバイス ID サブシステム ID

PCI-485120

LPC-485120

4851(12F3h) 2094h

PCI-485111

LPC-485111

4851(12F3h) 208Bh

PCI-485102

LPC-485102

4851(12F3h) 2082h

PCI-485220

LPC-485220

PCI-485220P

4852(12F4h) 2094h

PCI-485211

LPC-485211

PCI-485211P

4852(12F4h) 208Bh

PCI-485202

LPC-485202

PCI-485202P

4852(12F4h) 2082h

PCI-485340

PCI-485340P

4853(12F5h) 20A8h

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

49

製品型式 デバイス ID サブシステム ID

PCI-485322

PCI-485322P

4853(12F5h) 2096h

PCI-485304

PCI-485304P

4853(12F5h) 2084h

製品型式 デバイス ID サブシステム ID

PEX-485120 4851(12F3h) 2C94h

PEX-485111 4851(12F3h) 2C8Bh

PEX-485102 4851(12F3h) 2C82h

PEX-485220 4852(12F4h) 2C94h

PEX-485211 4852(12F4h) 2C8Bh

PEX-485202 4852(12F4h) 2C82h

製品型式 デバイス ID サブシステム ID

CPZ-485340

CTP-485340

CPZ-485340P

4853(12F5h) 24A8h

CPZ-485322

CTP-485322

CPZ-485322P

4853(12F5h) 2496h

CPZ-485304

CTP-485304

CPZ-485304P

4853(12F5h) 2484h

CPZ-485220

CTP-485220

CPZ-485220P

CTP-485220P

4852(12F4h) 2494h

CPZ-485211

CTP-485211

CPZ-485211P

CTP-485211P

4852(12F4h) 248Bh

CPZ-485202

CTP-485202

CPZ-485202P

CTP-485202P

4852(12F4h) 2482h

製品型式 デバイス ID サブシステム ID

CBI-4851A

CBI-4851B

4851(12F3h) 0201h

CBI-4852A

CBI-4852B

4852(12F4h) 0201h

CBI-485120WA

CBI-485120WB

CSI-485120

4851(12F3h) 2894h

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

50

製品型式 デバイス ID サブシステム ID

CBI-485220WA

CBI-485220WB

CSI-485220

4852(12F4h) 2894h

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

51

17. CanSetEvent

【機能】

割り込み発生時に起動するイベントの登録を行います。

発生させる割り込みは CanSetEventMask.viで設定します。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

InterruptEvent 割り込み発生時にシグナル状態に設定されるイベントを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

52

18. CanSetEventMask

【機能】

割り込みイベントのマスク設定を行います。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

EventMask 使用する割り込みイベントのマスクデータを指定してください。

値 識別子 内容

0 CAN_EVENT_TRANSCEIVER_ERROR

(※1)

低速 CAN トランシーバでエラーが発生しました。

1 CAN_EVENT_ERR_FIFO_OVER

(※2)

エラーFIFO がオーバーフローし、エラー情報を取りこぼしま

した。エラーFIFO トリガ値を下げてください。

2 CAN_EVENT_DETECT_OVERRUN

オーバーランエラーが発生し、受信データを取りこぼしまし

た。受信 FIFO はデータがいっぱいになると、CAN コントロー

ラからデータを抜き取らなくなるため、このオーバーランエ

ラーが発生します。受信 FIFO トリガ値を下げてください。

3 CAN_EVENT_CYCLIC_SEND_STOP

(※2)

送信周期よりもデータ送信時間が長いため、周期送信が停止

しました。

4 CAN_EVENT_BUS_STATUS バスステータスの変化(エラーアクティブ、エラーパッシブ、

バスオフ)でイベントが発生しました。

5 CAN_EVENT_RECV 受信バッファに 1 つ以上の受信メッセージが蓄えられまし

た。

6 CAN_EVENT_ERROR エラーバッファに 1つ以上のエラーが蓄えられました。

CAN_EVENT_TXB_IS_EMPTY 送信バッファ内の未送信データがなくなりました。

7 CAN_EVENT_ERROR_LIMIT 送信、受信いずれかのエラーがリミット値を越えました。リ

ミット値は CanSetConfig.viのErrorLimitで指定します。

8 CAN_EVENT_RXB_FULL 受信バッファがいっぱいになりました。

9 CAN_EVENT_ERB_FULL エラーバッファがいっぱいになりました。

※ 1 低速 CAN のポートのみ有効です。

※ 2 高機能版、バスマスタ版 CAN インタフェース製品のみ有効です。

複数のイベントを同時に指定する場合は各識別子を論理和(OR)で指定します。

例:EventMask[0] = CAN_EVENT_RECV

EventMask[1] = CAN_EVENT_RXB_FULL

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

53

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

54

19. CanKillEvent

【機能】

割り込み発生時に起動するイベントの解除を行います。

【入力】

DeviceHandle CanOpenPort.viで取得したデバイスハンドルを指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

DeviceHandle(out) 入力されたデバイスハンドルを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

55

20. CanWaitEvent

【機能】

指定されたイベントがシグナル状態になるまで待ちます。

【入力】

Event CanSetEvent.viにより返されたイベントを指定します。

Timeout タイムアウト時間を、ミリ秒単位で指定します。

タイムアウト時間が経過すると、イベントが非シグナル状態の場合も、制御を返します。

0 を指定すると、イベントの状態を調べ、そのまますぐに制御を返します。

-1 を指定すると、イベントがシグナル状態になるまで待ち続けます。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Ret 処理が正常に終了すると下記の値を返します。

値 内容

0 指定したオブジェクトがシグナル状態になったことを意味します。

1 タイムアウト時間が経過し、指定されたオブジェクトが非シグナル状態であった

ことを意味します。

上記の値以外の場合には、「戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

56

4.2.2 プロファイル設定用 VI

1. CanQueryProfile

【機能】

受信データの ID に該当するプロファイルが登録されているかどうか問い合わせます。

該当するプロファイルが見つかった場合、その番号が返されます。

【入力】

ID 受信データの ID を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Number プロファイル番号を返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

57

2. CanApplyProfileInteger

【機能】

プロファイル情報を元に受信データを変換します。

【入力】

Length 受信データの長さを指定してください。

ID 受信データの ID を指定してください。

Data 受信データを指定してください。

Index 適用するプロファイルの要素番号を指定します。要素番号は 1始まりです。

(プロファイル要素の先頭は 1、その次の要素は 2、…となります)

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Destination プロファイル情報適用後のデータを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

58

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

プロファイルの要素が 8bit 整数値、16bit 整数値の場合は、自動的に 32bit 整数値に拡張され

ます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

59

3. CanApplyProfileFloat

【機能】

プロファイル情報を元に送受信データを 32bit 実数値に変換します。

【入力】

Length 受信データの長さを指定してください。

ID 受信データの ID を指定してください。

Data 受信データを指定してください。

Index 適用するプロファイルの要素番号を指定します。要素番号は 1始まりです。

(プロファイル要素の先頭は 1、その次の要素は 2、…となります)

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Destination プロファイル情報適用後のデータを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

60

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

61

4. CanApplyProfileDouble

【機能】

プロファイル情報を元に送受信データを 64bit 実数値に変換します。

【入力】

Length 受信データの長さを指定してください。

ID 受信データの ID を指定してください。

Data 受信データを指定してください。

Index 適用するプロファイルの要素番号を指定します。要素番号は 1始まりです。

(プロファイル要素の先頭は 1、その次の要素は 2、…となります)

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Destination プロファイル情報適用後のデータを返します。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

62

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

63

5. CanSetProfile

【機能】

プロファイルの登録を行います。

【入力】

Number プロファイル番号を指定します。最大 16384 個まで指定できます。

CAN_ANY_NUMBER を指定した場合、自動的に番号を割り当てます。

Name プロファイル名を指定します。64 文字まで指定できます。

Id プロファイルを適用するメッセージの ID を指定します。

Itemcount プロファイルの要素数を指定します。最大 64 個まで指定できます。

CanProfileData プロファイル情報を指定します。

StartBit 変換を開始するビット位置を指定します。範囲は 0~63 です。

BitCount 変換するデータサイズを指定します。範囲は 1~64 です。

DataType が 32 bits 実数型のとき 32 ビット固定となります。

DataType が 64 bits 実数型のとき 64 ビット固定となります。

変換後のデータ型のサイズより小さい値を指定した場合、BitCount で指定した値まで

のデータを変換します。

変換後のデータ型のサイズより大きい値を指定した場合、変換されるのは変換後のデ

ータ型のサイズまでとなります。

例えば、DataType に 16 bits 整数型、BitCount に 10 を指定した場合は、10 ビット分

が変換されます。また、DataType に 16 bits 整数型、BitCount に 20 を指定した場合、

変換されるのは 16 bits 整数型のビット数である 16 ビット分となります。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

64

ByteOrder バイトオーダーを指定します。

DataType が 8 bits 整数型のとき本パラメータは無効です。

値 内容

1 Intel 形式(※)

2 Motorola 形式(※)

DataType データ型を指定します。

値 内容

01h 8 bits 整数型

02h 16 bits 整数型

03h 32 bits 整数型

10h 32 bits 実数型(IEEE754 単精度浮動小数点数)

20h 64 bits 実数型(IEEE754 倍精度浮動小数点数)

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Number(out) 実際に割り当てられた番号が返されます。

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

65

6. CanDeleteProfile

【機能】

プロファイル情報を削除します。

【入力】

nNumber プロファイル番号を指定します。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

66

7. CanSaveProfile

【機能】

プロファイル情報をファイルに保存します。

【入力】

Filename プロファイル情報を保存するファイル名を指定します。

拡張子も含めた文字列を指定してください。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

67

8. CanLoadProfile

【機能】

ファイルからプロファイル情報を取得します。

【入力】

Filename プロファイル情報が格納されているファイル名を指定します。

拡張子も含めた文字列を指定してください。相対パス、絶対パス、いずれも使用できます。

error in (no error) エラー入力は、VI の実行前に発生するエラー状態を示します。

エラーが既に発生済みの場合、VI はエラー出力にエラー入力クラスタでのエラー値を返し

ます。

【出力】

Ret 処理が正常に終了すると 0を返します。

正常に処理が終了しなかった場合、0以外の値を返します。0以外の値が返された場合には、

「4.3 戻り値一覧」を参照してください。

error out エラー出力には、エラー情報の内容が格納されます。

エラー入力クラスタにエラーが表示された場合、エラー出力クラスタにも同じ情報が格納

されます。

それ以外の場合は、エラー出力はこの VI のエラー状況を示します。

【備考】

本 VI 呼び出し前に設定されていたプロファイルはすべて削除されます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

68

4.3 戻り値一覧

4.3.1 デバイス制御用 VI 戻り値一覧 値 意味 対処方法

0 正常終了 -

c0000001h 現在ドライバを使用すること

ができません。

デバイスがちゃんと接続されていること、デバイスマネージャ

に表示されていることを確認し実行してください。

c0000002h 現在デバイスの削除中です。 デバイスの削除が完了後、再度デバイスを組み込んでから実行

してください。

c0000003h パラメータが不正です。 引数の値が不正です。

引数の値の範囲が指定範囲外です。

c0000004h システムコールに渡されたデ

ータ領域が小さすぎます。

ドライバの内部エラーです。どのような状況でエラーが発生し

たかをご連絡ください。

c0000005h ポートがオープンされる前に

クローズしようとしました。

CanOpenPort.vi の実行中は、他の VI を呼び出さないようにし

て下さい。

c0000006h メモリを確保できません。 ドライバ内部のバッファメモリの確保に失敗しました。 c0000007h バッファに空きがありませ

ん。

送信バッファの空き容量以上のデータを送信しようとしまし

た。

送信バッファサイズと、送信バッファ内にあるデータ数を確認

して、VI を実行してください。

c0000008h バッファが空です。 受信バッファ、エラーバッファが空でないことを確認して、VI

を実行してください。

バスが有効時にしか実行でき

ない VI をバスオフ時に実行

しました。

バスオフ時にしか実行できな

い VI をバスが有効なときに

実行しました。

バスの状態を確認後、VI を実行してください。 c0000009h

周期送信データのバッファ転

送中です。

再度、周期送信データの設定を行ってください。

c000000Ah デバイスハンドルが正しくあ

りません。

不正なデバイスハンドルで呼び出しを行おうとしました。

CanOpenPort.viで返されたデバイスハンドルを使用してくださ

い。

c000000Bh サポートしていない機能で

す。

サポートしていない機能を呼び出そうとしました。

現在、周期送信中です。 周期送信を停止させてから VI を実行してください。 c000000Ch

現在、データ送信中です。 データが送信完了してから VI を実行してください。

c0001082h DLL がロードできませんでし

た。

DLL のロードに失敗しました。

DLL が見つかりませんでした。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

69

4.3.2 プロファイル設定用 VI 戻り値一覧 値 意味

0 正常終了

c0001082h DLL がロードできませんでした。

c0000003h パラメータに誤りがあります。

c0000004h パラメータに誤りがあります。

c0004001h 指定したプロファイルは登録されていません。

c0004002h 指定した要素のデータ型が異なります。

c0004003h 指定したプロファイル要素は存在しません。

c0004004h 指定したプロファイルはすでに登録されています。

c0004005h 登録できるプロファイル件数を超えています。

c0004006h 指定した設定ファイルのフォーマットが不正です。

c0004007h 指定したファイルにアクセスできません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

70

第5章 サンプルダイアグラム

以下、サンプルダイアグラムの概要を説明します。

5.1 trans 【概要】

CAN メッセージの送受信を行うサンプルダイアグラムです。

【入力】

DeviceName デバイス名を入力します。

BaudRate ボーレートを選択します。

BaudRateBtr 直接ボーレート値を設定する場合に入力します。

Count 送信するメッセージの数を入力します。

SendMessage 送信するメッセージを入力します。

Length メッセージの長さを入力します。

Flag メッセージの種類を入力します。

ID メッセージの ID を入力します。

Data 送信メッセージを入力します。

Time ディレイ時間を入力します。

Transmit ボタン 入力したメッセージを送信します。

Stop 通信処理を停止してサンプルダイアグラムを終了します。

【出力】

ReceiveMessage 受信したメッセージを出力します。

Length メッセージの長さを出力します。

Flag メッセージの種類を出力します。

ID メッセージの ID を出力します。

Data 受信メッセージを出力します。

Time メッセージを受信した時刻を出力します。

Error VI の実行が正常かエラーか出力されます。

正常 : LED 消灯

エラー: LED 点灯

Error VI エラーとなった VI 名が出力されます。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

71

第6章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に

誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ

た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に

起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製

造された物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機

器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは

できません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、

間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる

結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的

損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する

改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、

予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊

社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ

ポート等は行っておりません。

BPC-0544 Help for VI Library

© 2006,2008 Interface Corporation. All rights reserved.

72

商標/登録商標

本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。