HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > ソフテックだより > 第231号(2015年4月1日発行) 技術レポート「各社PLC比較 〜ラダー命令編〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより(技術分野別)のページへ
ソフテックだより(シーン別)のページへ


ソフテックだより 第231号(2015年4月1日発行)

技術レポート

「各社PLC比較 〜ラダー命令編〜」

1. はじめに

第217号(2014年9月3日発行)技術レポート「各社PLC比較 〜プログラミングツール編〜」では、PLCメーカー各社のプログラミングツールを取り上げ、基本的な機能の違いについて紹介しました。
同じラダー言語を扱うプログラミングツールにも関わらず、メーカーによって異なる点が多いことに驚かれた方もいるのではないでしょうか。
本技術レポートでは、各社PLC比較シリーズの続編として、PLCを扱う上で重要な知識であるラダー命令の仕様について比較します。

プログラミングツール同様、ラダー命令の仕様も各PLCメーカーで独自に発展してきました。
IEC 61131-3(※1)という国際規格でPLCプログラミング仕様の標準化が推進されており、今回取り上げるラダー命令についてもLD(Ladder Diagram)(※2) という言語で定義されていますが、日本国内にはまだ浸透していない状況です。

本技術レポートで各PLCメーカーの違いを取り上げることで、PLCプログラミングをこれから始める方、複数メーカーのPLC技術習得を目指す方のお役に立てればと考えています。

なお、本レポートでは、各社PLC、プログラミングツールは表1を前提として比較を行っています。
また、使用する言語はラダー言語を想定しております。

メーカー PLCシリーズ プログラミングツール
三菱電機 MELSEC Qシリーズ GX Works2
横河電機 FA-M3シリーズ WideField3 R3.02
キーエンス KVシリーズ KV Studio Ver.7
オムロン SYSMAC CS/CJシリーズ CX-Programmer Ver.9

表1.比較を行うPLCシリーズとプログラミングツール

2. ラダー命令とは

ラダー命令とは、ラダー言語で記述されたプログラムの最小単位の要素となります。
図1にラダープログラムの例を示します。
ラダープログラムには様々な記号が登場しますが、接点(図中①)、コイル(図中②)、応用命令(図中③)など、1つ1つがラダー命令です。

ラダープログラムの例
図1.ラダープログラムの例

図1のラダー回路の中の6ステップ目(赤枠箇所)に位置するFMOV命令に着目します。
三菱電機PLCのFMOV命令は、単一のデータを連続する複数領域に転送するという仕様です。
図1のラダー回路の例では、内部レジスタD10から3ワードの領域を0で埋めるという動作をします。

 

三菱電機PLCのFMOV命令と、同等の動作を行う横河電機PLCの命令は、BSET命令という名前となります。
横河電機PLCのBSET命令の記述例を図2に示します。

横河電機PLCのBSET命令
図2.横河電機PLCのBSET命令

これらの命令は、名称は異なるものの、オペランド(※3)の数を含めて動作仕様は同一となっています。
オムロンPLCの場合、転送領域の指定方法が違うなど動作仕様まで変わってきます。

ラダー命令は、各社それぞれ数百の種類が存在しますが、基本的なシーケンス命令を除いて同一仕様のものは極めて少ないです。
そのため、新たなPLCメーカーでラダー製作を行う場合には、「○○社でいう△△命令はどれにあたるのだろう?」、「似たような命令だが同じ使い方で大丈夫か?」という疑問が生まれ、マニュアルを読みしっかりと理解してから使用することが重要となります。

次章より、頻繁に使用する命令を取り上げ、違いについてまとめていきます。

3. シーケンス命令

ラダー命令の中で基本的な命令群であるシーケンス命令について、各メーカーで比較します。
シーケンス命令は接点、コイルといったシーケンス制御における基本的な命令の分類名のことで、各PLCメーカーで必ず実装されているものです。
比較結果を表2に示します。

表2の「ラダー記号」列に示す図は、三菱電機PLCのマニュアルから抜粋しましたが、その他のPLCメーカーでも同じ記号で表現されています。
各シーケンス命令の記号をベースとし、各PLCメーカーで実装の有無、名称、命令表記の違いをまとめています。

シーケンス命令の中でも頻繁に用いられる命令は、命令名称に違いがあるものの各PLCメーカーで同一仕様となっていますので、初めて扱うPLCメーカーであっても比較的スムーズに移行することが可能です。

異なる点を挙げると以下の通りです。

横河電機PLCの立上り微分ロード命令、立下り微分ロード命令は、直列、並列で接続される場合に、複数の命令がセットになります。
微分命令とは、ラダー記号の入力条件の立上り、立下りを検出して1スキャンのみ導通する命令のことをいいます。
例えば、三菱電機PLCの場合には、母線に接続される立上り微分命令はLDP、他の命令に直列接続されるものはANDP、並列接続されるものはORPと、それぞれ異なる命令が用意されています。
これに対して横河電機PLCは、立上り微分命令は全てLDUで統一されており、直列接続の場合にANDLD、並列接続の場合にORLDというラダー回路上見えない命令とセットになります。この仕組みで他社と同一の機能を実現しています。
LDP、ANDPといった記号はニモニックと呼ばれ、ラダー記号をPLC内部で扱うための識別子です。表 2では「命令表記」列に記載しています。

ユーザはラダー記号でプログラムを組んでいくため、通常このニモニックを気にする必要はありませんが、ラダー記号がPLC内部でどのように展開されているかに着目することで、横河PLCの立上り微分系命令が三菱電機PLCのものよりもステップ数が多い理由が見えてきます。

ラダー
記号

三菱電機 横河電機 キーエンス オムロン

名称
(処理内容)

命令
表記

名称
(処理内容)

命令
表記

名称
(処理内容)

命令
表記

名称
(処理内容)

命令
表記
論理演算開始 LD ロード LD ロード LD ロード LD
論理演算 LDI ロードノット LDN ロードバー LDB ロード・ノット LD NOT
論理積 AND アンド AND アンド AND アンド AND
論理積否定 ANI アンドノット ANDN アンドバー ANDB アンド・ノット AND NOT
論理和 OR オア OR オア OR オア OR
論理和否定 ORI オアノット ORN オアバー ORB オア・ノット OR NOT
立上りパルス演算開始 LDP 立上り微分ロード LDU ロードパルス - - -
立下りパルス演算開始 LDF 立下り微分ロード LDD ロードパルフ - - -
立上りパルス直列接続 ANDP 立上り微分ロード(直列) LDU ANDLD ロードパルス - - -
立下りパルス直列接続 ANDF 立下り微分ロード(直列) LDD ANDLD アンドパルフ - - -
立上りパルス並列接続 ORP 立上り微分ロード(並列) LDU ORLD オアパルス - - -
立下りパルス並列接続 ORF 立下り微分ロード(並列) LDD ORLD オアパルフ - - -
デバイスの出力 OUT アウト OUT アウト OUT 出力 OUT
- デバイスのセット SET セット SET セット SET セット SET
- デバイスのリセット RST リセット RST リセット RES リセット RSET
- 入力信号の立上り時にプログラム1週分のパルスを発生する。 PLS 立上り微分 DIFU ディフアップ DIFU 立上り微分 DIFU
- 入力信号の立下り時にプログラム1週分のパルスを発生する。 PLF 立下り微分 DIFD ディフダウン DIFD 立下り微分 DIFD

表2.シーケンス命令比較

4. 応用命令

上で説明した三菱電機PLCでいう同一16ビットデータブロック転送(FMOV)命令を含む、頻繁に使用する命令をいくつか取り上げ、各社で比較します。

三菱電機 横河電機 キーエンス オムロン

名称

命令表記

名称

命令表記

名称

命令表記

名称

命令表記
同一16ビットデータブロック転送 FMOV s d n 同一データ転送 BSET s d n フィルムーブ FMOV s d n ブロック設定 BSET s d1 d2
ブロック転送 BMOV s d n ブロック転送 BMOV s d n ブロックムーブ BMOV s d n ブロック転送 XFER w s d
繰り返し FOR n
NEXT
繰り返し先頭/繰り返し終了 FOR d s1 s2
NEXT
フォー/ネクスト FOR n
NEXT
繰り返し開始/終了 FOR n
NEXT

表3.応用命令比較

4.1 同一データ転送命令
メーカー 命令表記 解説
三菱電機 FMOV s d n d から n 点分の領域を s で埋める。
横河電機 BSET s d n d から n 点分の領域を s で埋める。
キーエンス FMOV s d n d から n 点分の領域を s で埋める。
オムロン BSET s d1 d2 d1 から d2 までの領域(チャネル)を s で埋める。

表4.同一データ転送命令比較

命令の名称は三菱とキーエンスでFMOV、横河電機とオムロンでBSETとなっています。
オムロンPLCのみオペランド(※3)の意味が異なっています。他はすべて転送先の先頭アドレスと転送点数を指定するのに対し、オムロンPLCは転送先アドレス(チャネル)の先頭と末尾を指定します。

4.2 ブロック転送命令
メーカー 命令表記 解説
三菱電機 BMOV s d n s で指定されたデバイスから n ワード(点)分を dを先頭にした領域に転送する。
横河電機 BMOV s d n s で指定されたデバイスから n ワード(点)分を dを先頭にした領域に転送する。
キーエンス BMOV s d n s で指定されたデバイスから n ワード(点)分を dを先頭にした領域に転送する。
オムロン XFER w s d s で指定されたチャネルから w チャネル数分を dを先頭にした領域(チャネル)に転送する。

表5.ブロック転送命令比較

オムロンPLCでオペランド(※3)の並びに違いがあるものの、命令の仕様は取り上げた全てのPLCで同一となっています。
1ワード転送するMOV命令に次いで、転送命令の中では頻繁に使用する命令です。
これは初めて扱うメーカーでも迷うことなく使用することができると思います。

4.3 繰り返し命令
メーカー 命令表記 解説
三菱電機 FOR n
NEXT
FOR 〜 NEXT間をn回実行する。
横河電機 FOR d s1 s2
NEXT
dで指定したデバイスをカウンタとして、カウンタがs1からs2になるまで実行する。
キーエンス FOR n
NEXT
FOR 〜 NEXT間をn回実行する。
オムロン FOR n
NEXT
FOR 〜 NEXT間をn回実行する。

表6.繰り返し命令比較

横河電機PLCのみFOR〜NEXT命令の仕様は、C言語に似たものとなっています。
それ以外の三社は共通して指定回数繰返し実行するというシンプルな仕様となっています。

5. おわりに

本レポートでは、各社PLCのラダー命令を比較し違いをまとめてみました。
プログラミングツール同様、ラダー命令についても各社で異なっており、記述方法が全く同一でも命令の動作が微妙に異なっていたり、同じ動作にも関わらず記述方法が異なっていたりということが多々あります。
実際に初めて使用する命令については、マニュアルをしっかり理解した上で使用することが重要であると言えます。
今後、引き続きラダープログラムを製作するにあたり注意点など紹介できればと考えております。

(M.S.)

[参考文献]
『MELSEC-Q/Lプログラミングマニュアル 共通命令編』三菱電機
『FA-M3VシーケンスCPU解説書 命令編』横河電機
『プログラマブルコントローラKV-5500/5000/3000/1000シリーズ KV Nanoシリーズ 命令語リファレンスマニュアル(共通命令編)』キーエンス
『CX-Programmer 命令語リファレンス CS/CJシリーズ』オムロン
[注釈]
※1 IEC 61131-3
国際電気標準会議(IEC)が制定した、PLC用プログラミング言語を規定した標準規格。
※2 LD(Ladder Diagram)
IEC 61131-3で定義されているプログラミング言語の1つ。
IEC 61131-3では、LD(Ladder Diagram)、FBD(Function Block Diagram)、ST(Structured Text)、IL(Instruction List)、SFC(Sequential Function Chart)の5種類のプログラミング言語が定義されている。
※3 オペランド
ラダー命令に渡すパラメータのこと。

関連ページへのリンク

関連するソフテックだより