2026/08/22

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

手順

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)を追加してみる
  • 行の先頭に";"を付けてコメント行にしてみる
変換エラー修正後のラダー図
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シリーズのニモニックに変換が可能です。

ダウンロード

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

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

この記事へのコメント