CANNEXユーザーズマニュアル

株式会社サンプロシステム
改定:2024年4月17日

製品に関するお問い合わせ先
product@sunprosys.co.jp
TEL:082-507-1067
「CANNEXに関するお問い合わせ」とお伝えください

ダウンロードリンク

KV-Studioサンプルプロジェクト

KV-XLE02を使用したKV-Studioのサンプルプロジェクトです。

CANNEX_XLE02_sample_240417.zip
※ZIPの解凍パスワードはお問い合わせいただいたお客様に無料でお伝えします。
 使用しているファンクションブロックのパスワードは非公開です


CANNEX Control

Windowsのアプリケーションです。無料です。
CANNEXへのコマンド発行、CAN通信のモニタができます。

24年04月17日公開 Version 1.2.1

インストール手順
※初回起動時にファイアウォールの警告が出ます。
 プライベートネットワーク、パブリックネットワークの両方にチェックを入れて
 アクセスを許可してください



概要

CAN/CAN FD通信 - Ethernet変換基板です。 単純なレベル変換基板ではありません。伝文を定期送信するようにアプリケーションからCANNEXにコマンドで指令すると、CANNEX側で周期の管理を行い自動で定期送信するといったことができます。
任意のタイミングでの単発送信、複数IDの定期送信、データの一部を変えながら定期送信なども可能です。

相手機器からの受信データはKV-XLE02のユニットプログラムで受信します。そのためスキャンタイムに影響することなく受信することが可能です。

500us間隔で8byteのデータが絶え間なく発生するようなCAN通信や、10us間隔で8byteのデータが幾つか連続で送られてきたあと500us間隔に戻るといった頻度の通信であれば取りこぼしなく受信することが可能です。
高負荷のデータを取り扱う場合は何かしらの工夫が必要になる場合がありますので
取りこぼしに関する正確な見解が必要な場合は、ご相談ください。
CANのボーレート、データサイズ、データの周期が分かれば評価することができます。

UDP通信のできる機器であればCANNEXを使用してCAN通信を行うことができますが、弊社はKV-XLE02(KEYENCE)を推奨しています。サンプルプログラムやマニュアルの説明はKV-XLE02を使用して記述しています。

KV-8000 + KV-XLE02をご利用のお客様に関しては、ドライブレコーダなどのログを通じてサポートを提供できます。ただし、Windowsアプリケーションや他メーカーのシーケンサを使用されているお客様に関しては、お問い合わせに対応できない場合がございます。

基板仕様

外形/インタフェース仕様

縦:70mm(LANコネクタ部突き出し部を含むと74mm)
横:70mm
高さ:16mm
取付穴:φ3.5×4(端から5mmの位置)
コネクタ 内容 ピン配列 コネクタ型式
CN1 基板電源 1:DC12-24V
2:0V(※1)
基板側 : B2B-XH-A
相手側 : XHP-2
3mのコネクタ付きケーブル付属
CN3 CAN 1:CANH
2:CANL
3:GND(※1)
基板側 : B3B-XH-A
相手側 : XHP-3
3mのコネクタ付きケーブル付属
CN4 出力4点
OUT1 : Run(CANNEX動作中)
OUT2 : Ethernet通信確立
OUT3 : CAN Run
OUT4 : CANNEX 高負荷
下図参照(図:パラレル出力回路) 基板側 : B8B-XH-A
相手側 : XHP-8
3mのコネクタ付きケーブル付属
CN5 Ethernet
CAT5e以上推奨
PLC/PC接続用
- RJ-45
LANケーブルはお客様にてご用意ください (CAT5e UTPで可)
JP3 CAN終端抵抗有無切替 短絡:終端抵抗あり
解放:終端抵抗なし
出荷時ジャンパー装着(短絡)
※1 0VとCAN GNDは絶縁されておらず、基板回路内で繋がりますのでご注意ください

図:パラレル出力回路

配線図

図:制御配線図
OUT1-, OUT2-, OUT3-, OUT4-, 0Vはそれぞれ絶縁されていますが、
共通にして使用しても構いません。
CN1の0VとCN3の0Vは基板内で繋がっています
CN1の24Vは12Vでも構いません。

CAN仕様

回路

図:CAN I/F回路

JP3:終端抵抗の有無切替
IC3:CAN FDドライバIC(TJA1044BT/OZ ※NXP社製 または同等品)

アービトレーションフェーズボーレート

125kbps / 250kbps / 500kbps / 1Mbps

データフェーズボーレート

125kbps / 250kbps / 500kbps / 1Mbps / 2Mbps / 4Mbps / 5Mbps

データサイズ

CAN:1-8 byte
CAN FD:0-8,12,16,20,24,32,48,64 byte

Ethernet通信仕様

IPアドレス(出荷時)

機器 IPアドレス 受信ポート 送信ポート
CANNEX 192.168.0.70 20000(変更不可) 不定
PLC 192.168.0.20 10000 ユーザ任意
モニタツール用PC 192.168.0.* 39999 不定

上記は初期値です。専用のパソコンツールで変更できます。
IPアドレスは192.168.0.1 - 192.168.9.254の範囲内で変更可能です
サブネットマスクは255.255.255.0 固定です。

CANNEXのIPアドレスを変更することで
PLCのLANポート1つで複数のCANNEXを制御可能です。
(シーケンサCPUへの受信割り込みの頻度に注意する必要があります)

CANNEXに対してPLCが送信するコマンド

STOP(CAN通信停止)

Byte index 0 1 2 3
Data S T O P
内容 コマンド

CAN通信を停止します。
停止状態になると、相手機器からCANデータがきてもACKを返さなくなります。

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

RUN(CAN通信開始)

Byte index 0 1 2 3 4 5
Data R U N 0-1 0-3 0-5
内容 コマンド CAN種別 アービトレーションフェーズ
ボーレート
データフェーズ
ボーレート

CAN通信を開始します。
相手機器からCANデータが来た場合、ACKを返します。
STTXで定期送信を設定している場合、定期送信が開始されます。

  1. CAN種別
    0:CAN
    1:CAN FD

  2. アービトレーションフェーズボーレート
    0:125kbps
    1:250kbps
    2:500kbps
    3:1Mbps

  3. データフェーズボーレート
    0:125kbps
    1:250kbps
    2:500kbps
    3:1Mbps
    4:2Mbps
    5:5Mbps
    上記以外のボーレートには対応しておりません。カスタム仕様で対応可能な場合があります。ご相談ください

CAN種別を「0:CAN」に設定した状態で、8byteより大きなサイズのデータを送信しようとした場合、CANNEXはCANバスにデータ送出を行いません。

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

STTX(定期送信設定)

Byte index 0 1 2 3 4 5 6 7-8 9-12 13 14-77
Data S T T X 0-14 0-15 0-3 1-65535 0x01-0x1FFFFFFF 1-64 0x00-0xFF
内容 コマンド 送信MBX Sweep番号 CS_TYPE 送信周期[ms] CAN ID DLC Data0 - Data63

CAN送信の設定
STOP中、RUN中どちらでも設定可
設定済のMBX、Sweep番号に再設定すると上書きされる

CS_CNT_TYPE

定期送信中に送信周期の異なる設定を上書きした場合、 変更したタイミングで周期が1回だけ乱れます。ご注意ください。 下図は送信周期1000msで定期送信中、Index = 30 送信後に 送信周期500msの設定を上書きした例です。 Index = 30とIndex = 31の間隔が1000 - 1500msの間で不定になり、その後500ms周期で定期送信が行われます

図:RUN中に定期送信の周期変更した場合

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

図:CAN通信データ


同じMBX番号にSweep番号1の伝文を設定することで下記のように交互に異なるデータを送信することができます(Sweep送信)

図:ラダープログラム

図:CAN通信データ

Sweep送信を使用する場合、Sweep番号0から連番で設定してください。
連番で設定しなかった場合、下記のような振る舞いになります。

図:Sweep番号に空きがある設定

図:Sweep番号に空きがある場合のCAN通信データ

SHOT(単発送信)

Byte index 0 1 2 3 4-7 8 9-72
Data S H O T 0x01-0x1FFFFFFF 1-64 0x00-0xFF
内容 コマンド CAN ID DLC Data0 - Data63

RUN中に送信すると、1shot送信する

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

図:CAN通信データ


DEL(定期送信設定消去)

Byte index 0 1 2 3
Data D E L 0-14, 99
内容 コマンド 送信MBX

指定した送信MBXの設定を消去します

送信MBXに99を指定するか、「DEL」のみ送信すると全ての設定を消去します

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

TSTOP(定期送信一時停止)

Byte index 0 1 2 3 4 5
Data T S T O P 0-14, 99
内容 コマンド 送信MBX

指定した送信MBXの設定を維持したまま、送信を停止します。

送信MBXに99を指定するか、「TSTOP」のみ送信すると全ての送信MBXの送信を停止します

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

TACTV(定期送信 活性化)

Byte index 0 1 2 3 4 5
Data T A C T V 0-14, 99
内容 コマンド 送信MBX

指定した送信MBXの送信を再開する

送信MBXに99を指定するか、「TACTV」のみ送信すると全ての送信MBXの送信を再開します

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

FILT(UDPデータ送信フィルタ)

Byte index 0 1 2 3 4
Data F I L T 0-1
内容 コマンド フィルタ種別

フィルタ種別

  1. CANの送受信データを全てPLCに送信する
  2. 送信MBXに登録されているCAN IDについては
    PLCに送信しない
     (受信したいIDと同じIDが送信MBXに存在する場合
      受信できなくなります)
      1shot(SHTX)についてはフィルタ対象外のため
      PLCにフィードバックがあります

※本コマンドはPLC側のEthernetの受信処理が追い付かず取りこぼしが発生する場合に、
 不要なデータをCANNEXからPLCに送信しないようにするために存在します

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

CS(定期送信 カウント・チェックサム設定)

Byte index 0 1 2 3
Data C S 0-14 0-3
内容 コマンド 送信MBX CS_CNT_TYPE

指定した送信MBXのCANデータの一部を
CANNEX側でチェックサムやカウントに置き換えます。
(STTXコマンド内にも同様の機能があります)


CS_CNT_TYPE

  1. チェックサムやカウントなし

  2. 下記の計算によるチェックサム、カウント
    data6の下位4bit:カウンタ(0-F)
    data7:チェックサム(ID, DLC, Data0-6の加算)

     p_snd_frame.data[6] += k_snd_can_ary[i].cnt % 0x10;
     k_snd_can_ary[i].cnt++;
    
     p_snd_frame.data[7] = (uint8_t)(((p_snd_frame.id & 0x0700) >> 8) +
                     (p_snd_frame.id & 0x00ff) +
                     p_snd_frame.data_length_code +
                     p_snd_frame.data[0] +
                     p_snd_frame.data[1] +
                     p_snd_frame.data[2] +
                     p_snd_frame.data[3] +
                     p_snd_frame.data[4] +
                     p_snd_frame.data[5] +
                     p_snd_frame.data[6]);
    

図:CS_CNT_TYPE = 1の例

図:CS_CNT_TYPE = 1のCANデータの様子
  1. カウント
    data7の下位4bit:カウンタ(0-F)

図:CS_CNT_TYPE = 2の例

図:CS_CNT_TYPE = 2のCANデータの様子



  1. 64bitカウント(D0-D7を使った64bitカウンタ)

     p_snd_frame.data[1] = (cnt >> 48) & 0xFF;
     p_snd_frame.data[2] = (cnt >> 40) & 0xFF;
     p_snd_frame.data[3] = (cnt >> 32) & 0xFF;
     p_snd_frame.data[4] = (cnt >> 24) & 0xFF;
     p_snd_frame.data[5] = (cnt >> 16) & 0xFF;
     p_snd_frame.data[6] = (cnt >> 8) & 0xFF;
     p_snd_frame.data[7] = cnt & 0xFF;
     cnt++;
    

図:CS_CNT_TYPE = 3の例

D0 - D7のすべてを使用したカウンター動作になります

図:CS_CNT_TYPE = 3のCANデータの様子

上記に当てはまらないチェックサム計算やカウントのデータ位置を変えたい場合、
CS_CNT_TYPEを追加しますのでご相談ください

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

STSP(Step No.設定)

Byte index 0 1 2 3 4-5
Data S T S P 0-65535
内容 コマンド Step No.

CANNEXから送られてくるCANデータに
任意の数値を付加してデバッグやロギングの際に活用できます。
本コマンドでStepNo.を設定するとCANNEXの電源を切るまでは
最後に設定したStepNo.が常時付加され続けます

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

Step No.を9999から12345に変更した例です
ラダープログラムの検査シーケンスが進むにつれてStep No.を変更しておくと
シーケンスとCANデータの突き合わせをする際に便利です。

図:CS_CNT_TYPE = 3のCANデータの様子

LOG(パソコンアプリ CSVロギング指令)

Byte index 0 1 2
Data L O G
内容 コマンド

CANNEXをパソコンに接続して専用のアプリを起動した状態で
PLCから本コマンドをCANNEXに発行すると
パソコンはあらかじめ指定しておいたフォルダにCAN通信ログをCSVファイルで出力します。ファイル名はcan_log_YYMMddHHmmss.csvとなります。

図:LOG保存先の指定

図:LOGコマンドで生成されるCSVファイル

図:CSVファイルの内容

出力されるログの項目(列)は、CANNEX Controlの「表示」設定の状態に従います。
例えば、「DLC表示」のチェックを外すと、CSVファイルにDLCの列は出力されません。

図:CANNEX Control「表示」設定

CAN通信中にLOGコマンドを複数回送信した場合、
一度CSV出力したCANデータは以降のLOGコマンドでは出力対象外となります。
例えば、CANデータを10回分受信後にLOGコマンドを実行し、その後追加でCANデータを35回受信し、LOGコマンドを実行すると、
1回目のCSVファイルには最初の10回分のデータが記録され、
2回目のCSVファイルには最新の35回分のデータが記録されます。

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

CLOG(パソコンアプリ ログクリア指令)

Byte index 0 1 2 3
Data C L O G
内容 コマンド

CANNEXをパソコンに接続して専用のアプリを起動した状態で
PLCから本コマンドをCANNEXに発行すると
パソコン画面上の通信ログをクリアします
(ファイルの消去ではなく、画面表示のクリア)

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

CANNEXがPLCやパソコンに送信するコマンド

CAN受信データ

CANNEXがRUN中にCANデータを受信すると、下記のフレームをPLCに送信します。
CANNEXは自らが送信したCANデータも受信しているため、CANバス上のデータが全てEthernetで送出されます。(FILTコマンドの設定による)
CANNEXが送信したCANデータは下記の「送受信種別」が0になります。

Byte index 0-3 4-7 8-9 10-11 12-15 16-17 18-19 20-23 24-25 26-89
Data 0x00000000-0xFFFFFFFF 0x00000000-0xFFFFFFFF 0-1 0-65535 0 0-0xFFFF 0-1 0x0-0x1FFFFFFF 1-64 0x00-0xFF
内容 Index TimeStamp(10us) MSG_TYPE Step No. Reserved CAN Error 送受信種別 CAN ID DLC Data0 - Data63

※総データ数はDLCに関わらず、90Byte固定で送信します

Index
CANメッセージ毎にインクリメントします。
STOPコマンド → RUNコマンドで0に戻ります。
0xFFFFFFFFの次は0に戻ります。

MSG_TYPE
0:CANデータ
1:Reserved(機能拡張用の予約。現在は未使用)

送受信種別
0:送信(CANNEXが送信したCANデータ)
1:受信(CANNEXが受信したCANデータ)

CAN Error

cString[0] = (uint8_t)((k_can_msg.index >> 8) & 0xFF);
cString[1] = (uint8_t)((k_can_msg.index >> 0) & 0xFF);
cString[2] = (uint8_t)((k_can_msg.index >> 24) & 0xFF);
cString[3] = (uint8_t)((k_can_msg.index >> 16) & 0xFF);

cString[4] = (uint8_t)((k_can_msg.ts_10us >> 8) & 0xFF);
cString[5] = (uint8_t)((k_can_msg.ts_10us >> 0) & 0xFF);
cString[6] = (uint8_t)((k_can_msg.ts_10us >> 24) & 0xFF);
cString[7] = (uint8_t)((k_can_msg.ts_10us >> 16) & 0xFF);

cString[8] = 0;     // アライメント調整
cString[9] = (uint8_t)K_MSG_TYPE_CAN_DATA;

cString[10] = (uint8_t)((PLC_step_no >> 8) & 0xFF);
cString[11] = (uint8_t)((PLC_step_no >> 0) & 0xFF);

cString[12] = 0;     // 予備
cString[13] = 0;     // 予備
cString[14] = 0;     // 予備
cString[15] = 0;     // 予備

cString[16] = (uint8_t)((k_can_msg.error >> 8) & 0xFF);
cString[17] = (uint8_t)((k_can_msg.error >> 0) & 0xFF);

cString[18] = 0;     // アライメント調整
cString[19] = k_can_msg.tx;

cString[20] = (uint8_t)((k_can_msg.can_id >> 8) & 0xFF);
cString[21] = (uint8_t)((k_can_msg.can_id >> 0) & 0xFF);
cString[22] = (uint8_t)((k_can_msg.can_id >> 24) & 0xFF);
cString[23] = (uint8_t)((k_can_msg.can_id >> 16) & 0xFF);


cString[24] = 0;     // アライメント調整
cString[25] = (uint8_t)k_can_msg.dlc;

memcpy(&(cString[26]), k_can_msg.data, k_can_msg.dlc);

受信は下図のように割り込みを用いて行います。

図:受信割り込みプログラム

格納先に@DM0を指定した場合、下図のように値が格納されます。(@DM0 - @DM76)

下図のように記述すると、ID = 0x12345678のCANデータをDM0-DM63に格納することができます

割り込みでの処理のため取りこぼしが発生しません。
それでも取りこぼしの確認が必要な場合は、@DM0(Index)が1ずつインクリメントされていることを確認するようなプログラムを作成して確認してください。

図:取りこぼし確認プログラム

KV-XLE02での使用方法

ハードウェア構成

PLCユニット構成

※本マニュアルはKV-8000, KV-XLE02, KV-B8XTDの構成で説明します。

ネットワーク構成

図:Ethernet 接続図

KV STUDIO設定

  1. ユニットエディタでKV-XLE02を下記のように設定します

図:KV-XLE02 ユニットエディタ設定
  1. PROTOCOL STUDIOに弊社提供の設定ファイルをインポートします

図:KV-XLE02 PROTOCOL STUDIO設定インポート

※設定ファイルが必要な方は、お問い合わせください

  1. PROTOCOL STUDIOの接続機器設定を行います
    CANNEXのIPアドレスと、ポート番号:20000(固定)を設定します

図:KV-XLE02 PROTOCOL STUDIO接続機器 設定
  1. KV-XLE02のユニット割り込み要因0を"使用する"に設定します

図:KV-XLE02 ユニット割り込み要因0設定
  1. KV-XLE02のユニットプログラムをインポートします

※下記のKV-Studioサンプルプロジェクトからインポートしてください
ダウンロードリンク

ここまでの手順で作成したプロジェクトファイルを下記からダウンロードできます。

ダウンロードリンク

パラレル出力

番号 名称 内容
OUT1 CANNEX Run CANNEX動作中
電源を供給し、マイコンプログラムが動作するとONします。
OFFしたままになる場合、基板故障の可能性があります
OUT2 ネットワーク接続済 ネットワークに接続されています。
PLCやPCとの通信が確立を意味するものではありません
LANケーブルがハブなどに接続されるとONします
OUT3 CAN Run RUNコマンドを受け付けるとONします。
STOPコマンドでOFFします
OUT4 CANNEX 高負荷 CANNEXから外部へのEthernetパケットの送信処理量を
CANデータ受信量が上回っている状態です。
この出力がONする場合、サンプロシステムにご相談ください。
CANの仕様がCANNEXの処理能力を超えている可能性があります

ダウンロードリンク

KV-Studioサンプルプロジェクト

KV-XLE02を使用したKV-Studioのサンプルプロジェクトです。

CANNEX_XLE02_sample_240417.zip
※ZIPの解凍パスワードはお問い合わせいただいたお客様に無料でお伝えします。
 使用しているファンクションブロックのパスワードは非公開です


CANNEX Control

Windowsのアプリケーションです。無料です。
CANNEXへのコマンド発行、CAN通信のモニタができます。

24年04月17日公開 Version 1.2.0



CANNEX Controlインストール手順

CANNEX Controlのセットアップファイルをダウンロードします。

zipファイルを解凍すると下記の2つのファイルがあります。

「setup.exe」をダブルクリックします。

「次へ」をクリック

「次へ」をクリック

「次へ」をクリック

「閉じる」をクリック

デスクトップに生成されるショートカットをクリックしてアプリケーションを起動

「プライベートネットワーク」「パブリックネットワーク」 の両方にチェック
を入れて、「アクセスを許可する」

CANNEX Controlが起動します。

モニタツール 通信設定

図:CANNEX モニタツール 通信設定画面


モニタIPアドレスを「192.168.0.255」といった具合にブロードキャストアドレスを
設定して検索すると、ネットワーク内に接続されているすべてのCANNEXを見つけることができます
複数枚見つかった場合は、「前」「次」ボタンで表示するCANNEXを切り替えます。



KV-STUDIOの設定とCANNEXの設定は下記のように対応してします

図:KV-STUDIO設定 と モニタツール 通信設定の対応

IPアドレス変更手順

  1. パソコンのIPアドレスをCANNEXと同一ネットワークアドレスに設定してください
    (CANNEXのIPアドレスが192.168.5.70なら、
     パソコンのIPアドレスを192.168.5.*にする。*は他の機器と重複しないアドレス)
  2. CANNEXとパソコンをLANケーブルで接続。
  3. CANNEX Controlアプリケーションを起動し、
    「設定」->「通信設定」

  1. 「モニタIPアドレス」をCANNEXの現在のIPアドレスに変更
  2. 「検索」ボタンを押すとCANNEXが見つかる

※見つからない場合
- パソコンのIPアドレスを192.168.0.*の3オクテット目(0の部分)を0-9に変更して検索
- サブネットマスクを255.255.255.0にする
- モニタIPアドレスを192.168.0.255にして検索を実施する
- CANNEXとパソコンを1対1で接続する(他の機器を外す)
  1. 変更後のIPアドレスを入力して、「変更実施」ボタンを押す

  1. CANNEXに変更内容が書き込まれ、自動でソフトウェアリセットがかかります
    (電源再投入と同じ状態)

  2. 「モニタIPアドレス」を変更したIPアドレスに設定して「Apply」を押します。

ファームウェア更新手順

  1. CANNEXとパソコンをLANケーブルで接続。
  2. CANNEX Controlアプリケーションを起動し、
    「設定」->「ファームウェア更新」

  1. 「バージョン取得」ボタンを押して、現在のバージョンを確認
    (表示されない場合は、「設定」->「通信設定」を確認してください)

  1. 「選択」ボタンを押して、更新するファームウェアを選択

  1. 「更新」ボタンを押して、「はい」を選択

  1. ファームウェアの書き込みが開始されます。

  1. 正常に終了すると下記のダイアログが表示されます。

  1. 「OK」を押したあと「バージョン取得」を押すと書き込まれたファームウェアのバージョンが表示されます。(CANNEXの再起動が完了するまで応答は返ってきません)

※元のファームウェアに戻す場合は、古いファームウェアを書き込んでください

Q & A



can_log_240417_110257.csv

下記のようにCANNEX ControlにてCANバスにデータを送出する設定を行います。

実際にCANバスにデータを送出し、「負荷OVER」の値が0であることを確認します。

負荷OVERの値が増加する場合、CANNEXの処理能力を超えています。

CANNEXユーザーズマニュアル

CAN仕様

Ethernet通信仕様

KV-XLE02での使用方法