三菱PLCの特殊リレー(SM)・特殊レジスタ(SD)早見表|SM400・SM402・SM412・SD0・SD520 の意味と使いどころ【iQ-R】
GX Works3 で三菱PLCのプログラムを開くと、SM400 や SM402、SD0 といった番号が出てきます。X や M のように自分で割り付けた覚えがないのに、いろいろな行の条件に使われていて、「これは何?」となりがちな部分です。
これらは特殊リレー(SM)と特殊レジスタ(SD)という、番号ごとに中身が決まっているデバイスです。この記事では、よく見かけるものを早見表にまとめ、意味と使いどころを整理します。
この記事で分かること:
- 特殊リレー(SM)・特殊レジスタ(SD)とは何か
- よく使う SM(常時ON/OFF・RUN後1スキャン・クロック)
- エラーまわりの SM・SD(SM0・SM1・SM50・SD0・SD10〜SD25)
- 時計・CPUの状態・スキャンタイムの SD(SD210〜SD216・SD203・SD520 など)
- よくある使い方の例(RUN直後の初期値・ランプの点滅)
※この記事の仕様は、三菱電機の「MELSEC iQ-R CPUユニット ユーザーズマニュアル(SH-082487J)」に書かれている範囲だけで書いています。本文の「p.xx」はこのマニュアルの印刷ページです。対象は iQ-R の CPU ユニットで、他のシリーズや他社の PLC は扱いません。
特殊リレー(SM)・特殊レジスタ(SD)とは|番号ごとに中身が決まったデバイス
PLC のデバイス(データを入れておく箱)には、入力の X・出力の Y・内部リレーの M・データレジスタの D などがあります。X・Y・M・D の種類と使い分けは三菱PLCのデバイス種類まとめ|X・Y・M・L・D・T・Cの使い分けで一覧にしています。
特殊リレー・特殊レジスタは、これらと違って番号ごとに意味があらかじめ決まっているデバイスです。
| 種類 | 記号 | 中身の表し方 | 例 |
|---|---|---|---|
| 特殊リレー | SM | ON/OFF で状態を表す | SM0(エラーが起きると ON)、SM400(常時 ON) |
| 特殊レジスタ | SD | 数値で状態を表す | SD0(最新のエラーコード)、SD210〜SD216(時計) |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.570・p.575・p.592・p.599)
「読んで使う」ものと「書いて指示する」ものがある
この記事で取り上げるものの多くは、CPU の状態に応じて ON/OFF や値が変わり、プログラムからはそれを読んで使うものです。たとえば SM0 はエラーが起きると ON になり(ユーザーズマニュアル p.570)、SD210〜SD216 には時計のデータが入っています(ユーザーズマニュアル p.599)。
一方で、こちらから ON にして CPU に指示するものもあります。SM50(エラー解除)は、OFF から ON にするとエラー解除を行い、終わると自動で OFF に戻ります(ユーザーズマニュアル p.570)。
なお、この記事に載せているのは現場でよく見かけるものだけです。特殊リレーの全体はユーザーズマニュアルの付録4(p.570〜)、特殊レジスタの全体は付録5(p.592〜)に載っています。
よく使う特殊リレー(SM)|常時ON/OFF・RUN後1スキャン・クロック
| 番号 | 名称 | どう動くか |
|---|---|---|
| SM400 | 常時ON | いつも ON |
| SM401 | 常時OFF | いつも OFF |
| SM402 | RUN後1スキャンのみON | RUN にしたあとの1スキャンだけ ON(スキャン実行タイプのプログラムでのみ使用可) |
| SM403 | RUN後1スキャンのみOFF | RUN にしたあとの1スキャンだけ OFF(スキャン実行タイプのプログラムでのみ使用可) |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.575)
SM400・SM401=常時ON・常時OFF
SM400 はいつも ON、SM401 はいつも OFF の特殊リレーです(ユーザーズマニュアル p.575)。ラダー図では命令の左に何かしらの条件(接点)を置く形になるので、「条件なしで毎スキャン実行したい」命令の条件として SM400 がよく使われます。プログラムの中で SM400 を見かけたら、「この行はいつも実行される」と読み替えて差し支えありません。
SM402・SM403=RUN後1スキャンだけ
SM402 は、RUN(運転)にしたあとの1スキャンだけ ON になります。SM403 はその逆で、1スキャンだけ OFF になります(ユーザーズマニュアル p.575)。RUN 直後に1回だけ実行したい処理の条件に使います(使い方の例は後の章で扱います)。
注意点として、SM402・SM403 はスキャン実行タイプのプログラムでのみ使用可と書かれています(ユーザーズマニュアル p.575)。名前のとおりスキャンごとに実行するタイプのプログラムで使うもので、それ以外の実行タイプのプログラムに書いた場合の扱いは取説で確認してください。
ここでいう「1スキャン」は、PLC がプログラムを先頭から END まで実行する1周のことです。1周の流れはPLC(シーケンサ)の処理の順番|スキャンの流れとEND処理・サービス処理をやさしく解説【MELSEC iQ-R】で、信号の立上りで「1スキャンだけ ON」を作る命令は【GX Works3】PLS/PLF命令の使い方|LDP/ANDP/ORPとの違い・1スキャンONの使いどころで解説しています。
SM409〜SM415=クロック(一定の周期で ON/OFF する)
決まった周期で ON と OFF を繰り返す特殊リレーです。ランプの点滅などに使えます。
| 番号 | 名称 | ON・OFF それぞれの時間(半周期) |
|---|---|---|
| SM409 | 0.01秒クロック | 5ms |
| SM410 | 0.1秒クロック | 0.05秒 |
| SM411 | 0.2秒クロック | 0.1秒 |
| SM412 | 1秒クロック | 0.5秒 |
| SM413 | 2秒クロック | 1秒 |
| SM414 | 2n秒クロック | n は SD414 の値で決まる(デフォルト 30) |
| SM415 | 2nミリ秒クロック | n は SD415 の値で決まる(デフォルト 30) |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.575・p.603)
たとえば SM412(1秒クロック)は、0.5秒 ON・0.5秒 OFF を繰り返します(ユーザーズマニュアル p.575)。
クロックについて押さえておきたい点は次の2つです(ユーザーズマニュアル p.575)。
- スキャンごとではなく、時間の経過で切り替わる:スキャンタイムの長さに合わせて ON/OFF するのではなく、時間で ON/OFF します。
- 電源ON時・リセット時は OFF から始まる:最初は OFF の状態からスタートします。
エラーまわりの SM・SD|SM0・SM1・SM50・SD0・SD10〜SD25
CPU が自分自身で見つけた異常(自己診断エラー)の情報は、特殊リレーと特殊レジスタに入ります。まず特殊リレーです。
| 番号 | 名称 | どう動くか(要旨) |
|---|---|---|
| SM0 | 最新自己診断エラー(アナンシェータONを含む) | エラーが起きると ON。正常に戻っても ON のまま |
| SM1 | 最新自己診断エラー(アナンシェータONを含まない) | SM0 と同じ動き。ただしアナンシェータの ON は含まない |
| SM50 | エラー解除 | OFF→ON でエラー解除。解除が終わると自動で OFF |
| SM51 | バッテリ低下ラッチ | バッテリ低下で ON。その後は ON のまま |
| SM52 | バッテリ低下 | バッテリ低下で ON。正常に戻ると OFF |
| SM53 | AC/DC DOWN | AC 電源で 20ms 以内(DC 電源で 10ms 以内)の瞬停を検出すると ON。電源 OFF→ON でリセット |
| SM62 | アナンシェータ | アナンシェータ(F)が1つでも ON になると ON |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.570)
SM0 と SM1 の違いは、アナンシェータ(デバイス記号 F)の ON を「エラー」に含めるかどうかだけです(ユーザーズマニュアル p.570)。どちらも、エラーが起きると ON になり、正常に戻っても ON のまま残ります(ユーザーズマニュアル p.570)。一瞬だけ起きたエラーでも、ON が残るので後から気づける、という性質です。
バッテリの2つも、同じく「残る」か「戻る」かの違いです。SM51 は一度 ON になるとそのまま、SM52 は正常に戻ると OFF になります(ユーザーズマニュアル p.570)。
続いて特殊レジスタです。
| 番号 | 名称 | 中身(要旨) |
|---|---|---|
| SD0 | 最新自己診断エラーコード | 最新のエラーのコードが 16 進数で入る |
| SD1〜SD7 | 最新自己診断エラー発生時刻 | 年・月・日・時・分・秒・曜日が BIN(2進数のふつうの数値)で入る |
| SD10〜SD25 | 自己診断エラーコード 1〜16 | エラーコードが最大16種類まで入る。17個目以降は入らない |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.592)
SD10〜SD25 は「16種類まで」
SD0 に入るのは最新の1つだけです。複数のエラーを見たいときは SD10〜SD25 を見ますが、入るのは最大16種類までで、17個目以降は入りません(ユーザーズマニュアル p.592)。エラーがたくさん重なっているときは、ここに出ていないエラーもありうる、と考えておきます。
SM0・SM1・SD0 はインタロックに使う
マニュアルには、SM0・SM1・SD0 をプログラムの中で使って、CPU ユニットや機械側のインタロックにするよう書かれています(ユーザーズマニュアル p.166)。インタロックは、「この条件がそろっていないときは動かさない」ようにする仕組みのことです。エラーの有無やエラーコードを、運転の条件として組み込んでおく、という考え方です。
時計・CPUの状態・スキャンタイムの SD|SD203・SD210・SD520 など
| 番号 | 名称 | 中身(要旨) | p |
|---|---|---|---|
| SD200 | スイッチ状態 | CPU のスイッチの状態。0=RUN、1=STOP | 599 |
| SD203 | CPU動作状態 | CPU の動作状態。0=RUN、2=STOP、3=PAUSE。END 処理のたびに入る | 599 |
| SD210〜SD216 | 時計データ | 年(西暦4桁)・月・日・時・分・秒・曜日。曜日は 0=日曜〜6=土曜。BIN で入る | 599 |
| SD412 | 1秒カウンタ | RUN にしてから1秒ごとに +1。0→65535→0 を繰り返す | 603 |
| SD420 | スキャンカウンタ | RUN にしてから1スキャンごとに +1(初期実行タイプのプログラムのスキャンは数えない) | 603 |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.599・p.603)
SD200 と SD203 の違い
どちらも RUN/STOP に関わりますが、SD200 はスイッチの状態、SD203 は CPU が実際に動いている状態です(ユーザーズマニュアル p.599)。SD203 には PAUSE(3)もあります。値の割り当ても、SD200 は STOP が 1、SD203 は STOP が 2 と違うので、読むときは取り違えないようにします。
SD210〜SD216=CPU の時計
CPU が持っている時計の年・月・日・時・分・秒・曜日が、SD210〜SD216 の7つに入っています(ユーザーズマニュアル p.599)。年は西暦4桁、曜日は 0(日曜)〜6(土曜)の数字です。エラー発生時刻の SD1〜SD7 も、同じ7項目の並びです(ユーザーズマニュアル p.592)。
SD520〜SD527=スキャンタイム
1スキャンにかかった時間(スキャンタイム)は、SD520〜SD527 に入ります。1つの時間を ms の位と μs の位の2つのレジスタに分けて入れる形です(ユーザーズマニュアル p.604)。
| 番号 | 中身 |
|---|---|
| SD520(ms の位)・SD521(μs の位) | 現在のスキャンタイム |
| SD522・SD523 | 最小スキャンタイム |
| SD524・SD525 | 最大スキャンタイム |
| SD526・SD527 | END 処理時間 |
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.604)
スキャンタイムが何で決まるのか、END 処理で何をしているのかはPLC(シーケンサ)の処理の順番|スキャンの流れとEND処理・サービス処理をやさしく解説【MELSEC iQ-R】で解説しています。
よくある使い方の例|RUN直後の初期値・ランプの点滅
ここでは、特殊リレーの使い方を2つだけ紹介します。命令の細かい仕様は、それぞれの命令の記事で確認してください。
SM402 で RUN 直後に初期値を1回だけ入れる
RUN にしたとき、データレジスタ D0 に 100 を1回だけ入れておきたい、という例です。
- 行:SM402 の接点 → MOV K100 D0(K100 は10進数の 100)
SM402 は RUN 後の1スキャンだけ ON なので(ユーザーズマニュアル p.575)、この MOV 命令は RUN 直後に1回だけ実行されます。2スキャン目以降は SM402 が OFF なので実行されず、そのあとプログラムの中で D0 を書き換えても、上書きされることはありません。
前の章のとおり、SM402 はスキャン実行タイプのプログラムでのみ使用可です(ユーザーズマニュアル p.575)。MOV 命令の使い方は【GX Works3】MOV命令の使い方|MOVP・DMOV・FMOV/BMOVの使い分けまで総まとめで解説しています。
SM412 でランプを1秒周期で点滅させる
異常のときに ON になる内部リレー M10 があり、異常中はランプ(出力 Y20)を点滅させたい、という例です。
- 行:M10 の接点 → SM412 の接点(直列)→ Y20 のコイル
M10 が ON の間は、SM412 の ON/OFF に合わせて Y20 が 0.5秒 ON・0.5秒 OFF を繰り返し、ランプが1秒周期で点滅します(ユーザーズマニュアル p.575)。M10 が OFF になれば、ランプは消えたままです。
点滅を速くしたいなら SM411(0.2秒クロック)、ゆっくりにしたいなら SM413(2秒クロック)に差し替えます(ユーザーズマニュアル p.575)。クロックは時間で切り替わり、電源ON・リセット時は OFF から始まる点は、前の章のとおりです。
よくある質問(FAQ)
Q1. SM400とは何ですか?
A. 三菱PLC(MELSEC iQ-R)の特殊リレーで、常時ONのデバイスです。条件を付けずに毎スキャン命令を実行したいときの条件として使われます。反対に、常時OFFの特殊リレーはSM401です。
Q2. SM402はどんなときに使いますか?
A. SM402はRUNにしたあとの1スキャンだけONになる特殊リレーです。RUN直後にデータレジスタへ初期値を1回だけ入れる、といった使い方をします。スキャン実行タイプのプログラムでのみ使用できる点に注意してください。反対に、RUN後1スキャンだけOFFになるのがSM403です。
Q3. SM412(1秒クロック)はスキャンごとに切り替わりますか?
A. スキャンごとではなく、時間の経過で切り替わります。SM412は0.5秒ごとにON/OFFを繰り返す1秒クロックで、電源ON時やリセット時はOFFから始まります。ほかに0.01秒(SM409)、0.1秒(SM410)、0.2秒(SM411)、2秒(SM413)のクロックがあります。
Q4. 最新のエラーコードはどこで確認できますか?
A. 特殊レジスタSD0に、最新の自己診断エラーのコードが16進数で入ります。発生した時刻はSD1〜SD7に入ります。複数のエラーコードはSD10〜SD25に最大16種類まで入り、17個目以降は入りません。エラーが起きたかどうかは、特殊リレーSM0・SM1のON/OFFでも確認できます。
まとめ
特殊リレー(SM)・特殊レジスタ(SD)は、番号ごとに中身が決まっているデバイスです。SM は ON/OFF、SD は数値で CPU の状態などを表します。
- SM400=常時ON、SM401=常時OFF。SM400 は「毎スキャン実行する」行の条件によく使われる
- SM402=RUN後1スキャンだけON、SM403=1スキャンだけOFF。スキャン実行タイプのプログラムでのみ使用可
- SM409〜SM413 は 0.01秒〜2秒のクロック。スキャンごとではなく時間で切り替わり、電源ON・リセット時は OFF から始まる
- SM0・SM1 はエラーで ON になり、正常に戻っても ON のまま。SM0・SM1・SD0 はインタロックに使うようマニュアルに書かれている
- SD0 に最新のエラーコード(16進数)、SD10〜SD25 に最大16種類。17個目以降は入らない
- SD210〜SD216 は時計、SD203 は CPU の動作状態、SD520〜SD527 はスキャンタイム(ms と μs の2つで1組)
(出典:MELSEC iQ-R CPUユニット ユーザーズマニュアル p.166・p.570・p.575・p.592・p.599・p.603・p.604)
ここに載せていない特殊リレー・特殊レジスタや、使っている CPU の型名ごとの扱いは、お手元のユーザーズマニュアルの付録4(p.570〜)・付録5(p.592〜)で確認してください。
参考資料
- MELSEC iQ-R CPUユニット ユーザーズマニュアル(SH-082487J・三菱電機)
