0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MELSEC-Q INV,MEP,MEF,EGP,EGF使用時の注意点

Last updated at Posted at 2021-10-26

はじめに

INV、MEP、MEF、EGP、EGFって言われてもわからないかもしれませんが、これらはMELSEC-Qの重要な演算命令です。

image.png

各命令の概要

  • INV: 演算結果反転
  • MEP, MEF: 演算結果パルス化
  • EGP, EGF: エッジリレー演算結果パルス化

マニュアルを見ていて「ほぇ~」と思ったので、ちょっと調べてみました。


問題

下のSample1とSample2の動作は同じでしょうか?(Yはアドレスを変えてあります)

image.png

答えは「同じではない」です。

  • Sample2: 見た目通りの動きになります
  • Sample1: 見た目とは違う挙動になります

マニュアル参照:[SH-080804 MELSEC-Q/L プログラミングマニュアル(共通命令編)/演算結果反転 INV]


Sample1の実際の動作

ではSample1はどのような動きになるのでしょうか?

答えは下の回路と同じ動きになります。

要するに、分岐手前のM0は反転対象から除外されるということですね。

image.png

なぜこのような動作になるのか?

下はSample1のリスト表示です。

INVはLD*命令からINVまでの演算結果を反転する動作のようで、LD M0は反転対象に含まれず、LD M1からINVまで、LD M10からINVの演算結果が反転されるようです。

LD*が実行されるたびにそれまでの演算結果はどこかに退避され、ORB/ANBで退避した演算結果とAND/ORされるようです。

(たぶん…あんまりマニュアルには詳しく書いてなかった)

()は命令ではなく説明です

;Sample1
LD M0
(→演算結果退避A)
LD M1
AND M2
INV
(→演算結果退避B)
LD M10
AND M20
INV
ORB (←退避BとOR)
ANB (←退避AとAND)
OUT Y10

同じ挙動の回路との比較

Sample1とSample1と同じ挙動の回路は見た目は違いますが、リストで見比べるとほぼ同じような処理をしています。

;Sample1と同じ挙動
LD M1
AND M2
INV
(→演算結果退避A)
LD M10
AND M20
INV
ORB(←退避AとOR)
AND M0
OUT Y10

MEP, MEF, EGP, EGFではどうか?

下の回路は[SH-080804 MELSEC-Q/L プログラミングマニュアル(共通命令編)/エッジリレー演算結果パルス化 EGP,EGF]のPointに書いてある回路です。

**EGP、EGF命令は、下記の回路ブロックの位置で使用できません。**と…

image.png

実際の動作

実際は使えないのではなく、これもINV命令と同じでパルスの適用範囲が見た目と違うということです。

動かしてみると、Sample3と同じ動きの回路と同じ動作になります。

;Sample3
LD X0
LD X1
EGP V0
OR X2
ANB
INC W0
;Sample3と同じ動き
LD X1
EGP V1
OR X2
AND X0
INC W1

まとめ

回路を整理しようとして大きな回路ブロックを作ると、こういう罠にはまるような気がします。

回路の途中での反転やパルス化は便利なので、気をつけましょう😀

重要なポイント

  1. INV命令: 分岐手前の演算結果は反転対象から除外される
  2. EGP/EGF命令: パルスの適用範囲が見た目と異なる場合がある
  3. 大きな回路ブロック: 整理の際は動作確認が重要

このような注意点を理解しておくことで、より確実なPLCプログラミングが可能になります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?