CanSetCanTiming


機能

CANの通信タイミングを設定します。

書式

Ret = CanSetCanTiming ( Id , ChannelNo , Bitrate , TSeg1 , SJW , TSeg2 )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ]
CanInitで取得したデバイスIDを指定します。

ChannelNo [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ]
チャネル番号を指定します。

Bitrate [ VB.NET: UInteger ] [ C, C++: unsigned long ] [ C#: uint ]
ビットレートを指定します。単位はbpsです。(bit per second)
指定範囲は、デバイスによって異なります。
詳細は、デバイス別仕様の項目を参照ください。

TSeg1 [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ]
時間セグメント1を指定します。
詳細は、デバイス別仕様の項目を参照ください。

SJW [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ]
同期ジャンプ幅を指定します。(Synchronization Jump Width)
詳細は、デバイス別仕様の項目を参照ください。

TSeg2 [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ]
時間セグメント2を指定します。
詳細は、デバイス別仕様の項目を参照ください。

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ]

定義

戻り値
[Dec]

内容

CAN_ERR_SUCCESS

0

正常終了

CAN_ERR_SYS_RECOVERED_FROM_STANDBY

7

スタンバイモードから復帰したため、DioResetDevice関数を実行してください

CAN_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました。

CAN_ERR_DLL_CALL_DRIVER

10002

ドライバーを呼び出せません(デバイスI/Oコントロールに失敗)。

CAN_ERR_SYS_CH_NO

20101

チャネル番号が設定可能範囲外です

CAN_ERR_SYS_BITRATE

20110

ビットレートが設定可能範囲外です。

CAN_ERR_SYS_TSEG1

20120

時間セグメント1が設定可能範囲外です。

CAN_ERR_SYS_SJW

20121

同期ジャンプ幅が設定可能範囲外です。

CAN_ERR_SYS_TSEG2

20122

時間セグメント2が設定可能範囲外です。

CAN_ERR_SYS_TIMING_COMBINATION

20144

通信パラメータが設定不可能な組み合わせです。

CAN_ERR_SYS_BUSON

20200

バスオンのため実行できません。

その他のエラー(参照:エラーコード詳細

初期値

なし

説明

CANの通信タイミングを設定します。
CANバス未接続時のみ設定が可能です。

デバイスに搭載されているCAN通信用のクロック及びこれを分周するためのプリスケーラの組み合わせに依存しています。
このため、デバイスに設定可能なビットレート、TSeg1、TSeg2、SJW等の組み合わせには、制限があり設定不可の場合には、近い値に補正されます。

CanGetCanTiming関数を使用してビットレート及びサンプル・ポイントの比率が意図した値になっていることを確認してください。
CAN通信サンプル プログラムを使用して、確認いただくのが簡単です。

  詳細は、CAN通信の伝送時間を参照ください。

デバイス別仕様

型式

引数名

内容

CAN-4P-PE
CAN-4PF-PE

Bitrate

設定範囲は、60000~1000000となります。単位はbpsです。(bit per second)

Tseg1

設定範囲は、2~513となります。単位は TQです。

SJW

設定範囲は、1~127となります。また、時間セグメント2(TSeg2)以下としてください。単位は TQです。

Tseg2

設定範囲は、1~128となります。また、同期ジャンプ幅(SJW)以上にしてください。単位は TQです。

CAN-2-USB
CAN-2-WF

Bitrate

設定範囲は、5000~1000000となります。単位はbpsです。(bit per second)

Tseg1

設定範囲は、2~16となります。単位はTQです。

SJW

設定範囲は、1~4となります。また、時間セグメント2(TSeg2)以下としてください。単位はTQです。

Tseg2

設定範囲は、1~8となります。単位はTQです。

使用例

ChannelNo = 1へ、Bitrate = 1000000 bps、TSeg1 = 100TQ、SJW = 60TQ、TSeg2 = 60TQを設定します。

VB.NET

Dim Ret As Integer

Ret = CanSetCanTiming ( Id , 1 , 1000000 , 100 , 60 , 60 )
 

C, C++

long Ret;
Ret = CanSetCanTiming ( Id , 1 , 1000000 , 100 , 60 , 60 );
 

C#

int Ret;
Ret = can.SetCanTiming ( Id , 1 , 1000000 , 100 , 60 , 60 );
 

関連項目

CanGetCanTiming