スポンサーリンク
PLC

【KEYENCE KV STUDIO】連続したビットデバイスを数値としてワードデバイス領域に転送する方法

三菱電機製シーケンサでは K1X00のような書式で桁指定することにより、連続したビットデータを数値データとしてワードデバイス領域にデータ転送することが出来ます。これをビットデバイスの桁指定と呼びます。

K1X00 のようなビットデバイスを桁指する定表記方法は、三菱電機固有のものです。

キーエンス製のPLCにてプログラミングを行う場合に、ビットデータを数値データとして扱う場合には、 別の方法を使用します。

今回はキーエンス製のPLCでプログラミングを行う際にビットデータを数値データとして取出すために、PMOV命令を使用する方法を紹介しようと思います。

スポンサーリンク

部分転送命令 PMOV

まず、PMOV指令について説明します。

PMOVとは、部分転送命令です。

PMOV命令とは

転送元のビットデバイス中の任意の位置から、任意の数の連続するビット情報を、指定したデバイス中の指定したビット位置に転送する命令です。

これを使用して、三菱のビットデータの桁指定相当の動作をさせることが出来ます。

PMOV命令の詳細についてはプログラマブルコントローラKVシリーズの命令後リファレンスマニュアル(共通命令編)に記述されています。キーエンスのKV STUDIOのユーザサポートサイトよりダウンロードすることが出来ますので、必要な方は会員登録しておきましょう。

PMOVの使用例

CR2002は常時ONするコントロールリレーです。機能命令を常時実行するためのデバイスです。

KEYENCE PMOV命令による部分転送

この命令実行時のPLC内でのデータの処理について説明します。

ビットデータをワードデータ領域へ転送し、数値データとして扱う

MR000~MR003までの4ビットのデバイスデータを、データデバイスであるMD0の先頭の0ビット目に転送されます。この例では4ビットだけを転送しますが、#4の数値を調整することで、より多くのビットバイスを転送することも可能です。三菱の場合最低でもK1M00で4ビット同時に転送してしまいますが、キーエンスの場合は3,2ビット単位での転送が可能になります。

転送先のワードデバイス領域のDM0.15~DM0.4の上位12ビットは状態変化しない点に注意が必要です。

KEYENCE PMOV命令による部分転送
KEYENCE PMOV命令による部分転送

MR000-MR003に4ビット分の 進数を10進数の数値データに変換してDM10に格納することが出来ます。

注意

転送先のデバイス領域のDM0.15~DM0.04の領域には、何も転送されないため、転送元の値をそのまま使用するためには、 DM0.15~DM0.04 はクリア(ゼロリセット)されている必要があります。

予め誤ってて転送先に、値が入っていると、DM0の数値は転送元と異なる値になってしまいます。

例えば、予めDM0.4=1であった場合、通常DM0=13となるべきところが、
13+2^4=13+16=29より
DM0=29となっていしまいます。

ビットデータ領域に、ワードデータを部分転送する

反対にワードデータ内での連続したビットを、ビットデバイス領域に任意の数だけ転送する方法を紹介します。

今回も、転送ビット数を4としています。5ビット目のDM0.4は転送されないため、注意必要です。また、先ほどと同様に、転送先の上位12ビットは値が変化しません。ゼロクリアされるわけではないため、こちらも注意必要です。

KEYENCE PMOV命令による部分転送
KEYENCE PMOV命令による部分転送

転送ビット数については三菱電シーケンサーでは。4,8,12といった4の倍数ビット数しか指定できないのにたいして、とは異なり、

サフィックスが.Uの16bit命令であれば、最小1ビットから最大16ビットまでです。

サフィックスが.D の32bit命令であれば、最小1ビットから最大32ビットまでです。

まとめ

  • KEYENCE KV STUDIO使用時にはPMOV指令を使用して、ビットデータをワードデータ領域に転送することが出来ます。

以上です。