【PLC】そのラダー、バグります。「MOV」と「MOVP」の決定的違いと現場の常識

  • URLをコピーしました!

「PLCのマニュアル、言葉が難しすぎて頭に入ってこない…」「ラダー図は合ってるはずなのに、数値がありえない挙動をする…」

もしあなたが今、そんな悩みを抱えているなら、この記事はあなたのためのものです。

メーカーのマニュアルには「パルス化転送」だの「スキャンごとの実行」だの、小難しい言葉が並んでいますよね。でも、現場で知っておくべきことはもっとシンプルです。

今回は、初心者が必ず一度はハマる「命令語の後ろにつく『P』の有無(MOVとMOVP、INCとINCP)」について、現場目線でバッサリ翻訳して解説します。これを理解していないと、私のように試運転で冷や汗をかくことになりますよ(笑)。


目次

マニュアルの言葉を「現場語」に翻訳しよう

まず、教科書的な定義を見てみましょう。

  • MOV(連続実行): 指令がONの間、毎スキャン実行される。
  • MOVP(パルス実行): 指令が立ち上がった一瞬だけ実行される。

…これだけ読んで「なるほど!」と即座に理解できるなら、あなたはもうベテランです。

新人時代の私は「で、どっちを使えばいいの?」と迷いました。現場の感覚で覚えるなら、こうイメージしてください。

命令語イメージ現場での使いどころ
Pなし (MOV)「蛇口を開けっ放し」条件がONの間、常にデータを流し続けたい時。
(例:タッチパネルの数値を常に監視したい)
Pあり (MOVP)「ハンコをポンと押す」条件がONした「瞬間」に1回だけ処理したい時。
(例:設定値を確定させる、計算をする)

この違いを無視すると、次に紹介する「恐怖の事件」が起きます。


【実話】立ち上げ時にカウンタが爆発した話

これは私がまだ若手だった頃、新しい設備のソフトを入れて立ち上げをしていた時の話です。「ボタンを押したら、製品カウントを『+1』する」という、非常に単純な回路を作りました。使った命令はインクリメント(加算)命令のINCです。

[ X0:カウントボタン ]-------------[ INC D0 ]

「よし、テストだ!」と思ってボタンをポチッと押した瞬間。本来「1」になるはずのD0の値が、いきなり「154」とか「230」に爆増したんです。「えっ!?なんで!?」とパニックになりました。幸い、試運転中だったのでラインを止めるような事故にはなりませんでしたが、もしこれが稼働中の設備で、製品個数管理に使われていたら…と考えるとゾッとします。

なぜ爆発したのか?

原因は、PLCの仕組みである「スキャンタイム」です。PLCは1秒間に何百回もプログラムを繰り返し読んでいます(スキャンしています)。人間がボタンを「一瞬(0.1秒くらい)」押したつもりでも、PLCにとっては「何十回もスキャンできる長い時間」なんです。

「P」をつけていないINC命令は、スキャンするたびに実行されます。

  1. 1回目のスキャン:ボタンONだ!→ +1
  2. 2回目のスキャン:まだボタンONだ!→ +1
  3. 3回目のスキャン:まだONだ!→ +1…
  4. 50回目のスキャン:ボタン離された。終わり。

結果、一回押しただけで「+50」されてしまうわけです。これを防ぐのが「P(パルス)」です。

※ INCP D0 と書けば、PLCは「あ、押し始めの1回だけ足せばいいのね」と理解してくれ、正しく「+1」で止まります。

【現場の教訓】四則演算(足し算・引き算など)をする時は、とりあえず『P』をつけろ。

(※常に変化させたい特別な理由がない限り、計算系はパルス化が基本です!)


じゃあ「MOV」と「MOVP」はどう使い分ける?

転送命令(MOV)の場合は、計算ほどシビアではありませんが、やはり使い分けは重要です。

MOV(Pなし)を使う場面:リアルタイム性重視

  • アナログ値の読み込み: 温度や圧力など、常に変化する数値をDレジスタに入れて監視したい時。
  • タッチパネルの表示: 常に最新の値を表示させたい時。

ここでMOVPを使ってしまうと、条件がONした瞬間の値で固定されてしまい、その後の温度変化に追従できなくなります。

MOVP(Pあり)を使う場面:タイミング重視

  • 設定値の変更: 「段取り替えボタン」を押した時だけ、品種データを書き込みたい時。
  • データの一時保存: エラーが起きた瞬間の数値を、別の場所に退避させておきたい時(エラーログなど)。

ここでMOVを使ってしまうと、ボタンを押している間ずっと書き込み続けるため、無駄な処理が増えますし、タイミング制御が難しくなります。


まとめ:未来の担当者(自分含む)のために

動けばどっちでもいいじゃん、と思うかもしれません。確かに、テスト段階では動くかもしれません。しかし、半年後にトラブル対応でラダーを見た時、「なんでここ、計算してるのにP付いてないの? わざと? それともミス?」と疑心暗鬼になるのは、未来のあなた自身です。

  • 流し続けたいなら「Pなし」
  • 1回だけ処理したいなら「Pあり」

このルールを徹底するだけで、バグの9割は減らせます。現場からは以上です!

現場で役立つ!あわせて読みたい /

「MOV」と「MOVP」の違いを生んでいるのは、PLC特有の「スキャン(上から下への高速ループ)」という仕組みです。バグを出さないためには、まずこの「電気回路とは違う動き」を理解するのが近道です。解説はこちら👇

あわせて読みたい
【PLC入門】回路図とラダー図は「別物」と思え!初心者がハマる「上から下へ」の罠 「リレー回路が読めるなら、ラダー図も楽勝ですよ」 先輩はそう言いますが、信じてはいけません。 確かに、見た目はそっくりです。同じ「接点記号」を使います。 しかし...

他にも「現場で役立つ」技術ノート公開中

\ 未経験から一人前の設計者へ /

知識ゼロから現場で戦えるレベルまで。FA電気設計の学習手順を体系的にまとめました。学習の迷子にならないための「地図」です。

👉 FA電気設計・完全学習ロードマップを見る

💬 更新情報を X (Twitter) で発信中!

記事の更新通知や、現場で役立つ「電気制御の小ネタ」をツイートしています。「ねじ vs スプリング」のような実務の話に興味がある方は、ぜひフォローして繋がってください!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次