【三菱Qシリーズ】時計データ読出し(DATERD)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】時計データ読出し(DATERD)命令の指令方法とラダープログラム例

「時計データ読出し」命令とは、三菱電機製シーケンサQシリーズにおけるCPUユニットの時計素子の時計データを読み出すラダープログラム命令です。

時計データ読出し命令を用いることにより、CPUユニットの時計素子から「年(西暦)・月・日・時・分・秒・曜日」のデータをラダープログラム上で使用することが可能です。

この記事では、三菱電機製シーケンサQシリーズにおける時計データ読出し命令の指令方法ラダープログラム例について解説します。

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。

三菱電機製シーケンサQシリーズにおいて、時計データ読出し命令は以下のCPUで使用することが可能です。

Basic:ベーシックモデルQCPU
High performance:ハイパフォーマンスモデルQCPU
Process:プロセスCPU
Redundant:二重化CPU
Universal:ユニバーサルモデルQCPU
LCPU:LCPU

※MELSEC-Lシリーズも含まれていますがご了承ください。

1. 時計データ読出し命令の指令方法

時計データ読出し命令には、2種類の指令方法があります。

DATERD:連続実行形
DATERDP:パルス実行形

DATERDは、Date readの略です。(だと思います。)

メモ
連続実行形は、入力条件がONしている間は命令が毎スキャン実行されます。パルス実行形は、入力条件がOFF→ONしたときに命令が1スキャンだけ実行されます。

DATERD:連続実行形(基本の形)

連続実行形の時計データ読出し命令は”DATERD”と指令します。

こちらがDATERD命令を使用したラダープログラム例です。

10_DATERD命令

このラダープログラムでは、入力条件であるX0がONしている間、CPUユニットの時計素子に格納されている以下の時計データをD0~D6に格納します。

D0:年(西暦)
D1:月
D2:日
D3:時(24時間計)
D4:分
D5:秒
D6:曜日

上のラダープログラムでは、時計データの転送先をD0にしているので、D0を先頭とするD0~D6(7ワード)が占有されます。

注意
DATERD命令では、時計データの格納先が必ず7ワード長を占有しますので、他の用途との重複には注意してください。

先ほどのラダープログラムを実行すると、D0~D6のデバイス値は以下のようになります。

10_デバイスモニタ

入力リレーX0をONしたときの時刻は、2020年2月18日17時59分(火曜日)でした。データレジスタに各時計データが格納されています。

メモ
曜日(↑ではD6)データは、日曜日を先頭として0~6のいずれかが格納されます。


先ほどのラダープログラムはGX Works2の回路上で DATERD D0 と入力してEnterキーを押すと命令が挿入されます。

10_命令挿入

DATERDP:パルス実行形

パルス実行形の時計データ読出し命令は”DATERDP”と指令します。

こちらがDATERDP命令を使用したラダープログラム例です。

11_DATERDP命令

連続実行形(DATERD命令)との違いは、入力条件である入力リレーX0がOFF→ONになった瞬間に1回だけCPUユニットの時計データをD0~D6に格納することです。(すぐに各データレジスタの値が0に戻る訳ではありません。)

つまり、入力リレーX0がONし続けていても時計データはX0がOFF→ONになった瞬間の値が格納され続けます。

メモ
入力条件がOFF→ONしたときに時計データ読出し命令を1スキャンだけ実行します。

2.【例題①】現在の時刻を表示する

下記仕様のラダープログラムを時計データ読出し命令を用いて解説します。

仕様
CPUに格納されている現在の時刻を常にデータレジスタD0~D6に格納してGOTに表示する。

先ほどのDATERD命令を使用すれば簡単に作成することが可能です。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題①_GOT

※使用していないデバイスがありますがご了承ください。

このGOTは、2020年2月18日18時42分(火曜日)に実行したものです。

各データレジスタに時計データが格納されています。

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

今回は、スイッチ等の入力条件がなく「常に」時計データを表示するので、特殊リレーのSM400を使用します。SM400はCPUがRUN中は常にONする特殊なリレーです。

3.【例題②】設定した時刻にランプを点灯させる

下記仕様のラダープログラムを時計データ読出し命令を用いて解説します。

仕様
CPUに格納されている時刻の「秒データ」とデータレジスタD15の値が一致したとき、ランプ(Y0)を点灯させる。
このデータレジスタD15の値はGOTから入力可能とすること。

「何この仕様…」って感じですが、応用することにより所定の時間に到達したら何か処理を実行する「ウィークリタイマ」を作成することができます。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題②_GOT

データレジスタD15の値を「秒データ」つまりD5の値と比較して、等しいときにランプ(緑)を点灯させます。

ラダープログラム

ラダープログラムは以下のようになります。

例題②_ラダープログラム

例題①と同様に、常に時計データ読出し命令を実行します。

接点形比較命令を用いて「時計データで読み出した秒のデータD5」と「データレジスタD15」の値を比較して、両者の値が等しいときに出力リレーY0をONさせます。

4. おわりに

三菱Qシリーズにおける時計データ読出し命令について解説しました。

以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。

本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。

シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。

ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。

2 COMMENTS

zzz

D0(年)とD1(月)を結合して
一つのDアドレスで『年月』表示というのはできるのでしょうか?

返信する
電気設計人

表示器の表示形式にも依りますが、2ヶのデバイスを1ヶに結合する命令として、BTOW命令があります。
命令の詳細はMELSEC-Q/Lプログラミングマニュアル(共通命令編)を参照ください。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です