KV-8000をKV-7500に置き換える手順について説明します。
KV-8000で使える変数、構造体が非常に便利でサクサクとプログラム作っていたら、しばらく受注停止に・・。そこでKV-7500に置き換え(ダウングレード)処理参考資料を元にやってみます。
KV-8000のプログラムをKV-7500に置き換える手順
- 手順1 置き換え元KV-8000のプログラムをKVSTUDIOで開き【ツール】→【ユニットエディタ】から、ユニットエディタを表示させ、KV-7500の未対応ユニット“KV-XD02”“KV-CA02”を使用していれば削除します。
- 手順2 置き換え元のKV-8000プログラムを開き【ファイル】→【機能バージョン確認変更】から、KV-8000の機能バージョンを“1.0”に変更します。
- 手順3 変更が完了すれば、変換を実行し、変換エラーの内容を修正します。
- 手順4 変換が完了したら、プロジェクトを別名保存します。《保存1》
- 手順5 KV STUDIOを新しく立ち上げ、KV-7500の新規プログラムを作成します。
- 手順6 KV-7500のユニットエディタを開いて【ファイル】→【インポート】から手順4の《保存1》ファイルの場所を指定して“UnitSet.ue2”を開き、ユニット構成をインポートします。
- 手順7 元プログラムでEtherNetIPを使用している場合は、【ツール】→【内蔵イーサーネット設定】→【EtherNetIP設定】
- 手順8 手順4の《保存1》で保存した、KV-8000のプログラムのインポートを行います。
- 手順9 《保存1》のプログラムと今回インポートしたプログラムのモジュールの並び(実行順)が同じであるかを確認し、同じになる様に修正します。
- 手順10 手順4の《保存1》で保存した、KV-8000のコメントラベルのインポートを行います。
- 手順11 元ファイルでロギングを使用しているのであれば、ロギングの設定は手動で移します。
- 手順12 変換を実行し、変換エラーの内容を修正します。
- 手順13 【ファイル】→【メモリカード】→【保存】でプロジェクトを保存します。
- 手順14 【ファイル】→【メモリカード】→【読出】で手順13で保存変更したプロジェクトを読み出します。
- 手順15 【ファイル】→【プロジェクトを別名保存】を行い置き換え完了です。
- まとめ
- 追記
手順1 置き換え元KV-8000のプログラムをKVSTUDIOで開き【ツール】→【ユニットエディタ】から、ユニットエディタを表示させ、KV-7500の未対応ユニット“KV-XD02”“KV-CA02”を使用していれば削除します。
その後、ユニットエディタのウィンドウを閉じます。
※プログラムに仕様差分の未対応機能の項目があればできる限り変更、修正を行います。(以下参考例)
・グローバル変数 →できる限り空いているデバイスに割り付けを行います。
・構造体 →プログラムを確認しながらUNIT、DINT、BOOLの変数に置き換えます。
・ファンクションブロック →FB CALL命令はFB命令に置き換えます。※要検証(挙動が変わる可能性があります。)
・ST言語 →KVスクリプトに置き換えます。
手順2 置き換え元のKV-8000プログラムを開き【ファイル】→【機能バージョン確認変更】から、KV-8000の機能バージョンを“1.0”に変更します。
変更時に表示されるメッセージに対し、マニュアルを参照しながら修正し、変更を進めます。
※全てのプログラムが、容易にバージョン変更できるわけではありません。
プログラムによっては機能バージョンの変更が困難な場合があります。
変換してエラーを参照
手順3 変更が完了すれば、変換を実行し、変換エラーの内容を修正します。
【変換】→【変換】
変換結果で、エラー内容を確認して、修正を実施します。
※エラー内容を解決することにより変換が進み新たなエラーが表示される場合があります。
エラー件数が0になるまでマニュアルを参照し、修正を実施します。
手順4 変換が完了したら、プロジェクトを別名保存します。《保存1》
合わせて【ファイル】→【メモリカード】→【保存】も行います。《保存2》
手順5 KV STUDIOを新しく立ち上げ、KV-7500の新規プログラムを作成します。
手順6 KV-7500のユニットエディタを開いて【ファイル】→【インポート】から手順4の《保存1》ファイルの場所を指定して“UnitSet.ue2”を開き、ユニット構成をインポートします。
その後元ファイルと同じ設定となる様にCPUの設定(IPアドレス等)と各ユニットにデバイスの割り付けを行います。
設定が完了すれば保存してユニットエディタを閉じます。
手順7 元プログラムでEtherNetIPを使用している場合は、【ツール】→【内蔵イーサーネット設定】→【EtherNetIP設定】
で設定ツールを開き【ファイル】→【インポート】で手順4で《保存1》を保存したファイルの場所を指定して“UnitSet.ue2”を
開き、元の構成をインポートします。
手順8 手順4の《保存1》で保存した、KV-8000のプログラムのインポートを行います。
【ファイル】→【インポート】→【プログラムのインポート】
対象となるフォルダを開き、拡張子が「.mod」、「.mcr」、「.kfb」のファイルをインポートします。
手順9 《保存1》のプログラムと今回インポートしたプログラムのモジュールの並び(実行順)が同じであるかを確認し、同じになる様に修正します。
【表示】→【CPUシステム設定】の【モジュール実行順設定】
モジュールが1個なので飛ばします
手順10 手順4の《保存1》で保存した、KV-8000のコメントラベルのインポートを行います。
【ファイル】→【インポート】→【コメントラベルのインポート】
1個ずつしかできない
対象となるフォルダを開き、使用しているコメントに応じて拡張子が「.cm1」、「.cm2」、「.cm*」のファイルをインポートします。
(cm1はコメント1、cm*はコメント*です。使用しているコメントファイルのみ取り込みます。)
手順11 元ファイルでロギングを使用しているのであれば、ロギングの設定は手動で移します。
【ツール】→【ロギングトレース設定】
※バッファ容量と登録可能デバイス数が少なくなります。
手順12 変換を実行し、変換エラーの内容を修正します。
【変換】→【変換】
変換結果で、エラー内容を確認して、修正を実施します。
※エラー内容を解決することにより変換が進み新たなエラーが表示される場合があります。
エラー件数が0になるまでマニュアルを参照し、修正を実施します。
変換したら、エラーが増えた・・
ローカル変数(ローカルラベルとなっている部分をグローバルラベルに移動し、実デバイスを割り当てします。
グローバルラベルにして実デバイスを割り当てしないとラベルが使えないようです。
赤くなっている部分がエラーで、グローバルラベルに入れ替えした部分は、青くなります。
さらに続けて作業します。
INST_FBCALLのエラーを解除するために・・ファンクションブロックを登録します
ファンクションブロック部分を追加すると変換したときに、ファンクションブロック内でのエラーが表示されます。
ローカルデバイスでエラーとなっている部分をグローバルラベルに変更して実デバイスを割り当てします。
グローバルラベルに割り当てするので、先に変換した部分も表示されています。内部変数で使っていたので、ラベル名称がダブれば修正する必要があるかもしれません。
何度も見直ししてよくやく変換完了・・
メモリカード保存はないのでプロジェクト保存して一旦完了です。
手順13 【ファイル】→【メモリカード】→【保存】でプロジェクトを保存します。
手順4で保存した《保存2》データの中から、拡張ユニットの設定ファイル「.ytc」を全て、今回保存したプロジェクトにコピー
します。
手順14 【ファイル】→【メモリカード】→【読出】で手順13で保存変更したプロジェクトを読み出します。
手順15 【ファイル】→【プロジェクトを別名保存】を行い置き換え完了です。
まとめ
ローカル変数をグローバルラベルに登録し実アドレスとしたので、同じプログラム複数展開する場合は、グローバルラベルに新しく登録しないといけないとなりそうです。
まずは、変数構造体で作ったKV8000をマニュアルに従って、KV7500に変更したので、これがちゃんと動くかどうかデバッグ作業が必要です。
はやくKV8000がほしいが、高機能ユニットはハイスペック半導体を使っているそうで、しばらくは入手が難しそうです。
他社の場合はCPUの入手も不可なので技術でカバーして、頑張ってKV-7500で対応するしかないですかね
追記
変数構造体を使ってなければ、この記事でもダウングレード可能です。