CJtoKVアイコンCJtoKV
OMRON CJシリーズからKEYENCE KVシリーズへのラダー変換ツール

CJtoKVはOMRON CJ1M、CJ2M、CJ2H向けCX-Programmer形式のラダープログラムを、 KEYENCE KV-8000、KV-7000、KV-5500、KV-5000、KV-3000シリーズへ移行するための変換ツールです。

概略

OMRON CJのラダー回路をKEYENCE KVシリーズのラダー回路に変換するアプリケーションです
回路は出来るだけ変換しますが、全ての命令を変換することは出来ません
変換できない命令はKV STUDIOでニモニックでコメント行で表示されます

CJとKVのメモリ対応表

CJのメモリアドレスは以下のようにKVのメモリに変換します
(数値は最大アドレスです)

CJとKVのメモリ対応表
CJ2HKV8000
リレー CIO6144R32000
内部補助リレー WR8192MR64000
ラッチリレー HR8192LR16000
リンクリレー B32768
タイマ T4096T4000
カウンタ C4096C4000
コントロールリレーAR48128CR1280
データメモリ DM32768DM65535
拡張DM EM32768 x 25EM65535
ファイルレジスタFZ524288
FM32768 x 16
リンクレジスタ W32768
テンポラリDM TM512
インデックス IR16Z23
DR16
コントロールメモリCM9600

CJの特殊補助リレー(AR)とKVのコントローリレー(CR,CM)の対応表

CJの特殊補助リレーとKVのコントロールリレーの似ている内容のアドレスを対応表で書き出しました

注 意

同じ動作をするわけではありません。
目安として参考にしてください。正確には説明書を確認して動作を確認してください。

コンディションフラグ
CJKV
コンディションフラグ名称アドレス名称
P_ERエラーフラグCR2012演算実行エラーのときON
P_CYキャリーフラグCR2009演算結果が負またはオーバーフローのときON
P_GT>フラグCR2011演算結果が正のときON
P_EQ=フラグCR2010演算結果がゼロのときON
P_LT<フラグCR2009演算結果が負またはオーバーフローのときON
P_On常時ONフラグCR2002常時ON
P_Off常時OFFフラグCR2003常時OFF
P_First_Cycle運転開始時1スキャンのみONCR2008運転開始時1スキャンのみON
クロックパルス
CJKV
コンディションフラグ名称アドレス名称
P_0_1ms0.1ms-
P_1ms1ms-
P_0_01s10msCR200410msクロックパルス(duty50%)
P_0_02s20ms-
P_0_1ms100msCR2005100msクロックパルス(duty50%)
P_0_2ms200ms-
P_1s1sCR20061sクロックパルス(duty50%)
P_1min1min-
読み出し専用特殊補助リレー
CJKV
アドレス名称アドレス名称
A010ms 加算フリーランニングタイマCR103032ビット1msフリーランカウンタ (※)
A1100ms 加算フリーランニングタイマ
A21s 加算フリーランニングタイマ
A200.11運転開始時1サイクルONフラグCR2008運転開始時1スキャンのみON
A262 - 263サイクルタイム最大値(0.1ms)CR0727KV-5000,7000 スキャンタイム最大値(10us単位) (※)
CR1006 - 1007KV-8000 スキャンタイム最大値(1us単位) (※)
A264 - 265サイクルタイム現在値(0.1ms)
A266 - 267サイクルタイム現在値(0.01ms)CM0720KV-5000,7000 スキャンタイム測定値(10us単位)
CM1000 - 1001KV-8000 スキャンタイム測定値(1us単位) (※)
A343.14ファイルアクセス中フラグCR5402メモリカード使用中
A343.15メモリカード認識完了フラグCR5403メモリカード認識完了
A351時計データ(分 秒)CM0705RTCからの読み出し 秒
CM0704分
A352時計データ(日 時)CM0703時
CM0702日
A353時計データ(年 月)CM0701月
CM0700年
A354時計データ(曜日)CM0706曜日
A402.04バッテリ異常フラグCR2306バックアップ電池異常

※ 単位が違うので使用している場合は修正が必要です

手順

1. 準備 : CX-ProgramerでプロジェクトをCX-Programmerテキストファイル(*.cxt)形式で保存する

CX-Programerで変換したいプロジェクトを読み出して、[ファイル]-[名前を付けて保存]を選択して任意のフォルダにCX-Programmerテキストファイル(*.cxt)形式で保存します
指定したフォルダには???.cxtというファイルが作成されます
例 : c:\temp\cj-projectフォルダを指定した場合

プロジェクトをcxt形式で保存
プロジェクトをcxt形式で保存

変換先に???.cxtというファイルが出力されます
例 : c:\temp\cj-projectフォルダを指定した場合

出力例
出力例

2. CJtoKV.exeを実行する

CJtoKV.exeを実行します
変換元ファイルに1.準備で保存したcxtファイルを指定してます
変換先フォルダには変換後のファイルを保存するフォルダを指定します
[変換]ボタンをクリックすると変換先フォルダにKV用のニモニックリストのファイルが出力されます

CJtoKV.exeを実行
CJtoKV.exeを実行

例 : c:\temp\kv-projectフォルダを指定した場合
ファイル名は「PLC名称_プログラム名称.mnm」というファイルが出力されます
変換後のファイルはプログラム単位で分かれて出力するようにしています

ファイル出力例
ファイル出力例

3. KV-STUDIOを起動してニモニックリストを読み込む

  1. KV-STUDIOを起動して、対応機種に「KV-8000」を指定して任意のプロジェクト名で新規プログラムを作成します
    KV-8000以外に変換したい場合も一旦KV-8000で作成した後で機種を変更してください
  2. メニューの[ファイル]-[ニモニックリスト]-[読出]を選択します
  3. KV-STUDIO ニモニックリストの読出し
    ニモニックリストの読出し
  4. 例えば"新規PLC1_新規プログラム1.mnm"を読み出した場合は下図のようになります
  5. ニモニックリストの読出し例
    ニモニックリストの読出し例

変換内容

  • 変換が成功した行はラダー図で表示されます
  • アドレスが変数の場合はそのまま変数名が赤字で表示されますが、変数名がKVのシステム予約の文字と重複しないように手修正が必要な場合があります
  • 変換が失敗した行はコメント行で表示されて、「区切り用出力」をラダー図に追加する場合があります
    「区切り用出力」は手修正後削除してください
  • 変換に失敗したコメント行は変換元の命令語とそれに違いKVの命令語を記述しています

注 意

CJの命令語はKVの命令語とは異なるため、変換できなかったところは手修正が必要です
変換に成功していてもオペランドの意味の違う場合があるので動作確認してください
よく似た命令語がある場合は変換前の命令語の後ろにカッコ()を付けて変換できそうな命令語を記述しています
似た命令語が無い場合はラダー回路を作り直す必要があります

ニモニックリストの読出しに失敗した場合

KV-STUDIOでニモニックリストの読出しをしたときに失敗のメッセージが出たときは、新規プログラムを作成して「リスト編集」を使ってニモニックを読み込ませて失敗している箇所を特定しながら修正を加えていきます

読出しの失敗
メモ帳で開く

1. メモ帳で開く

読出しに失敗したニモニックリストのファイルをメモ帳で開きます

メモ帳
メモ帳

2. リスト編集を開く

KV-STUDIOで新しいプログラムを追加して[編集]-[リスト編集]を選択します

リスト編集を選択
リスト編集を選択

3. リスト編集に貼り付け

メモ帳で開いたニモニックリストをコピーしてKV-STUDIOのリスト編集に貼り付けます

メ モ

最初の3行「DEVICE:57 ;MODULE:新規プログラム4 ;MODULE_TYPE:0」と
最後の「;END(001)」は不要なので削除してください

リスト編集に貼り付け
リスト編集に貼り付け

4. [挿入]を押してエラーを修正

[挿入]を押すとラダーに出来なかった行が表示されるので、その行を手修正します
とりあえずラダー図で表示したいので以下の方法で修正してみます

  • 表示された行の上に"LD CR2002"(常時ON)を追加してみる
  • 行の先頭に";"を付けてコメント行にしてみる
LD CR2002を追加
CR2009を追加
コメント行にする
コメント行にする
変換エラー修正後のラダー図
変換エラー修正後のラダー図

変換できなかったところの対応 例1

変換できなかったところはコメント行としてそのブロックの下に表示されます
よく似た命令語がある場合は変換前の命令語の後ろにカッコ()を付けて変換できそうな命令語を記述しています

日付時刻のメモリの配置が違うところの修正

日付時刻のメモリの配置が違うため合わせる必要があります

日付時刻
CJKV
年A353.08-15CM0700
月A353.00-07CM0701
日A352.08-15CM0702
時A352.00-07CM0703
分A351.08-15CM0704
秒A351.00-07CM0705
曜日A350.00-07CM0706
CJ日付時刻の部分
CJ日付時刻の部分

↓

KVへの変換後の日付時刻部分
KVへの変換後の日付時刻部分
  • 3行目: LD CR2002の次に「区切り用出力」が挿入されています 手修正後は削除してください
  • 4行目: MOVD→DISNまたはDISBなど(オペランドの修正必要) A353→CM700 (A353.08-15 年) CM701(A353.00-07 月) $012 tmpWord
    CJのラダーではA353の上位桁(A353.08-15)をMOVDでtmpWord変数に格納してからBIN命令でBCDからBINに変換しています
    これはカレンダーの年のみを取り出して年に変換しています
    KVの場合はCM0700に直接年が入っているのでCM0700の値をDM0にMOVするだけで完了します
  • 6行目: 同様にA353の下位桁(A353.00-07)をMOVDでtmpWord変数に格納してからBIN命令でBCDからBINに変換しているのでカレンダーの月を取り出して月に変換しているのでCM0701の値をDM1にMOVするだけで完了です
  • 8行目: 同様に日の処理はCM0702の値をDM2にMOVするだけで完了です
  • 10行目: 同様に時の処理はCM0703の値をDM3にMOVするだけで完了です
  • 12行目: 同様に分の処理はCM0704の値をDM4にMOVするだけで完了です
  • 14行目: 同様に秒の処理はCM0705の値をDM5にMOVするだけで完了です
  • 16行目: 同様に曜日の処理はCM0706の値をDM6にMOVするだけで完了です
手修正後の日付時刻部分
手修正後の日付時刻部分

変換できなかったところの対応 例2

サイクルタイムの単位の違い

サイクルタイム
CJKV
現在値A266,267(0.01ms単位)CM1000,1001(1us単位)
最大値A262,263(0.1ms単位)CM1006,1007(1us単位)
CJのサイクルタイムの部分
CJのサイクルタイムの部分

↓

KVへの変換後のサイクルタイムの部分
KVのサイクルタイムの部分
  • 10行目: CJの場合はサイクルタイム最大値の単位が0.1msなので100を掛けてusにしています
    KVでは単位がusなのでそのままMOVに変換します
  • 11行目: 区切り用出力は手修正後に削除します
  • 12行目: CJの場合はサイクルタイム現在値の単位が0.01msのエリア(A266)に10をかけてusにしています
    KVでは単位がusなのでそのままMOVに変換します
    変換できずにコメントになった行は後ろに追加されるので元の順番に戻すために10行と入れ替えます
手修正後のサイクルタイム部分
手修正後のサイクルタイム部分

変換できなかったところの対応 例3

タイマの違い

タイマ
CJKV
減算式ONディレイタイマ 0.1s単位 (BCD)TIM
減算式ONディレイタイマ 0.1s単位 (BIN)TIMXTMR
減算式ONディレイタイマ 0.01s単位 (BCD)TIMH
減算式ONディレイタイマ 0.01s単位 (BIN)TIMHXTMH
減算式ONディレイタイマ 1ms単位 (BIN)TMS
減算式ONディレイタイマ 0.1ms単位 (BCD)TIMU
減算式ONディレイタイマ 0.1ms単位 (BIN)TIMUX
減算式ONディレイタイマ 0.01ms単位 (BIN)TMU
CJのタイマの部分
CJのタイマの部分

↓

KVへの変換後のタイマの部分
KVのタイマの部分
  • 62行目: CJのTIMX命令はBIN減算式0.1sタイマなのでKVのTMR命令に変換できています
  • 63行目: CJのTIMHX命令はBIN減算式0.01sタイマなのでKVのTMH命令に変換できています
  • 64行目: 区切り用出力は手修正後に削除します
  • 65行目: CJのTIM命令はBCD減算式0.1sタイマなのでKVのTMR命令の設定値をBINに変えて修正します
  • 66行目: CJのTIMH命令はBCD減算式0.01sタイマなのでKVのTMR命令の設定値をBINに変えて修正します
  • 67行目: CJのTIMU命令はBCD減算式0.1usタイマなのでKVのTMU命令の設定値をBINに変えて単位を計算して修正します
  • 68行目: CJのTIMUX命令はBIN減算式0.1usタイマなのでKVのTMU命令の設定値の単位を計算して修正します
  • 順番は適宜修正します
手修正後のタイマの部分
手修正後のサイクルタイム部分

よくある質問

全ての命令を変換できますか?

いいえ。一部の命令は手修正が必要です。

KV-STUDIOのどの機種に対応していますか?

KV-8000向けニモニック形式に出力しますが、変換後にKV7000、KV5500、KV5000、KV3000、KV1000、KV Nanoなどに機種変更してください。

CJ以外でも利用できますか?

CJ以外の機種ではCX-Programerで機種をCJシリーズに変更してからKVシリーズのニモニックに変換が可能です。

関連ページ

PLC

メーカー別デバイス比較

メーカー別デバイス比較

三菱・OMRON・KEYENCEなど主要PLCメーカーのデバイスアドレスを比較します。

PLC

メーカー別デバイス比較

メーカー別特殊リレー比較

三菱・OMRON・KEYENCEなど主要PLCメーカーの特殊リレーを比較します。

PLC

メーカー別応用命令語比較

メーカー別応用命令語比較

三菱・OMRON・KEYENCEなど主要PLCメーカーの応用命令語を比較します。

PLC

メーカー別システム変数比較

メーカー別システム変数比較

OMRON NX と KEYENCE KV-Xのシステム変数を比較します。

PLC

systemvar

メーカー別FUN/FB比較

OMRON NX と KEYENCE KV-Xのファンクションとファンクションブロックを比較します。

MITSUBISHI

特殊補助リレー(SM)・特殊レジスタ(SD)一覧

SM・SD一覧

Qシリーズ / Lシリーズ / iQ-Rシリーズ PLC 特殊補助リレー(SM)・特殊レジスタ(SD)一覧

KEYENCE

CR/CM 機種別比較表

CR/CM 機種別比較表

KV-X KV800 KV7000 KV5000 KV3000のCR/CMの比較

KEYENCE

CR/CM 機種別比較表

CR/CM KV/KV-X対応表

KEYENCE KV-8000シリーズと KV-X500/X300シリーズ間のCR/CMおよび変数名の対応一覧

OMRON

CJ-NJ命令置換ガイド

CJ-NJ命令置換ガイド

CJの命令語からNJの命令語へ置換するガイド

PCツール

KVシリーズからCJシリーズへの変換ソフト

KVtoCJ

KEYENCE KVシリーズのラダーをOMRON CJシリーズのラダーに変換するアプリケーションです

ダウンロード

ダウンロードされたときは利用規約に同意したものとみなします

基本的なラダーの変換しか対応していません、変換の間違いや要望などがあればアップデートしてきたいと思いますのでコメントに記入していただくか問い合わせでお知らせください

この記事へのコメント