【GX Works2】複数のビットデバイスをワードデータに変換

FA

どうも、もももです。

GX Works2で複数のビットデバイスをワードデータに変換する方法を紹介します。

前提条件

今回は下記の環境について設定手順を紹介します。

  • GX Wroks2:Ver1.605F
  • 使用機種:MELSEC-Qシリーズ

設定手順

「K*」をビットデバイスの前に付けるだけです。

「*」は任意の数字、「4×*」が指定ビット数になります。

  • K1:4×1→4ビット
  • K2:4×2→8ビット
  • K3:4×3→12ビット
  • K4:4×4→16ビット
  • K5:4×5→20ビット
  • K6:4×6→24ビット
  • K7:4×7→28ビット
  • K8:4×8→32ビット

「K4M0」と指定するとM0~M15の16ビット分を1ワードデータとして扱います。

「MOV K4M0 D0」とラダーに記述すると「D0」に上記の1ワードデータが格納されます。

任意の数字が「5」以上の場合は2ワードデータとなるので、「MOV」を使用すると先頭から16ビット分しか反映されません。

2ワードデータすべてを反映させる場合は「MOV」ではなく「DMOV」を使用してください。

動作確認

上図のように「K4M0」を「D0」にMOVしてD0とM0~15の値を確認していきます。

・M0=ONの場合

M0がONの場合、D0の0ビット目もONします。D0→1

・M15=ONの場合

M15がONの場合、D0の15ビット目もONします。D0→-32767(M0&M15がON)

・M16=ONの場合

M16がONの場合、D1の0ビット目には影響ありません。

これはMOV対象が「K4M0」で対象のデバイスがM0~15のため、M16の状態が反映されません。

「DMOV K4M0 D0」でも同様にM16がONでもD1の値は変わりませんが、2ワード分転送しているためD1は常に「0」になります。

活用事例

異常系回路の省略

  • M0~31:即時停止系の各異常
  • M32~63:サイクル停止系の各異常
  • M100:即時停止系の異常発生
  • M101:サイクル停止系の異常発生

という様にデバイスを割り付けたとします。

M0~31のいずれかがONの場合にM100をON、M32~M63のいずれかがONの場合にM101をONさせたいです。

何も考えないと上図のように1行ずつORで繋げていくラダーになると思います。

しかし、この方法だと使用するデバイスの数=行数となるため、縦に長くなってしまい1画面に収まらず読みにくいラダーとなっていまします。

M0~31を「K8M0」、M32~63を「K8M32」と表現することで上図のように64行を2行に縮小できます。

「D<> K8M0 K0」はM0~31の2ワードデータの値と0値の比較をしています。

いずれかのビットがONすると2ワードデータ値は0以外になるのでM100がONします。(M101も同様)

まとめ

GX Works2で複数のビットデバイスをワードデータに変換する方法についてまとめました。

複数のビットデバイスをワードデータに変換することでラダー記述を省略することができます。

コメント

タイトルとURLをコピーしました