どうも、もももです。
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で複数のビットデバイスをワードデータに変換する方法についてまとめました。
複数のビットデバイスをワードデータに変換することでラダー記述を省略することができます。
コメント