CANNEXユーザーズマニュアル

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

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

ダウンロードリンク

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

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

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


CANNEX Control

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

24年03月11日公開 Version 1.0.1


CANNEX ファームウェア

CANNEXのファームウェアです。
「CANNEX Control」を使用して、Ethernet経由で更新できます。

24年03月11日公開 Version 1.0.5
※ZIPの解凍パスワードはご購入いただいたお客様限定公開です



概要

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

相手機器からの受信データをKV-XLE02を用いて取りこぼしなく受信することが可能です。
※CANバスの通信負荷が57%を超える場合は事前にご相談ください


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

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

基板仕様

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

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

図:パラレル出力回路

配線図

図:制御配線図
OUT1-, OUT2-, OUT3-, OUT4-, 0Vはそれぞれ絶縁されています
CN1の0VとCN3の0Vは基板内で繋がっています

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.99 39999 不定

上記は初期値です。専用のパソコンツールで変更できます。
IPアドレスは192.168.0.1 - 192.168.9.254の範囲内で変更可能です

サブネットマスク:255.255.255.0  

CANNEXのIPアドレスを変更することで
PLCのLANポート1つで複数のCANNEXを制御可能です。

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-11 12 13-76
Data S T T X 0-14 0-15 1-65535 0x0-0x1FFFFFFF 1-64 0x00-0xFF
内容 コマンド 送信MBX Sweep番号 送信周期 CAN ID DLC Data0 - Data63

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

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

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

KV-Studio記述例

図:Protocol Studio設定

図:ラダープログラム

図:CAN通信データ


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

図:ラダープログラム

図:CAN通信データ


SHOT(単発送信)

Byte index 0 1 2 3 4-7 8 9-72
Data S H O T 0x0-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の送信を停止します

TACTV(定期送信 活性化)

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

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

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

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側の受信処理が追い付かず
 取りこぼしが発生する場合に
 不要なデータをCANNEXからPLCに送信しないようにするのが目的です

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

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

指定した送信MBXのCANデータの一部を
CANNEX側でチェックサムやカウントに置き換えます。

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]);
    
  3. カウント
    data7の下位4bit:カウンタ(0-F)

  4. 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を追加しますのでご相談ください

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.が常時付加され続けます

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

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

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

図:LOG保存先の指定

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

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

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

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

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

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

CAN受信データ

CANNEXがRUN中にCANデータを受信すると、下記のフレームをPLCとPCの両方に送信します。
CANNEXは自らが送信したCANデータも受信しているため、CANバス上のデータが全てEthernetで送出されます。
CANNEXが送信したCANデータは下記の「送受信種別」が2になります。

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-2 0x0-0x1FFFFFFF 1-64 0x00-0xFF
内容 Index TimeStamp(10us) MSG_TYPE Step No. Reserved CAN Error 送受信種別 CAN ID DLC Data0 - Data63

※DLCに応じて、DATAのサイズは変わります。
 DLC = 8の時、総データ数は34Byte
 DLC = 64の時、総データ数は90Byte

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

MSG_TYPE
0:CANデータ
1:CANデータ以外の通知など(MSG_TYPE以降のフレームの意味が変わります)

送受信種別
0:送受信の区別ができないデータ
1:受信(CANNEXが受信したCANデータ)
2:送信(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;

for(i = 0; i < k_can_msg.dlc; i++)
{
        cString[26 + i] = k_can_msg.data[i];
}

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

格納先に@DM0を指定した場合、下図の表に値が格納されます。

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

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

通知

Byte index 0-3 4-7 8-9 10-17 18-21 22-23 24-87
Data 0x00000000-0xFFFFFFFF 0x00000000-0xFFFFFFFF 0-1 0 0x0-0x1FFFFFFF 1-64 0x00-0xFF
内容 Index TimeStamp(10us) MSG_TYPE Reserved 通知コード DLC Data0 - Data63

※DLCに応じて、DATAのサイズは変わります。
 DLC = 8の時、総データ数は32Byte
 DLC = 64の時、総データ数は88Byte

MSG_TYPE
1固定

通知コード
0:未割当
1:パソコンアプリへロギング指令受信
2:CANNEX内 UDP送信用リングバッファ オーバーフロー
3:CANバスアイドルカウント(500ms毎に送信)
 1カウント = 0.2us
 例:アイドルカウント = 200000の時、CANバスアイドル時間 = 40000us
   CANバス占有率 = (500ms - 40ms) / 500ms = 0.92 (92%)
4:パソコンアプリへ通信ログクリア指令

DATA
通知の詳細内容(未使用)

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 Reserved 未使用です

モニタツール 通信設定

図: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



CANNEXユーザーズマニュアル

CAN仕様

Ethernet通信仕様

KV-XLE02での使用方法