シーメンス#LED命令でデバイス状態知る

S7-1200・S7-1500にはCPUがエラーあるかどうか取る方法がたくさんありますが、その中で一番簡単なのは””LED”というFunctionだと思います。今回はこのFunctionの使い方について紹介いたします。

Functionの名前はLEDというと、多分みんなさんも分かると思いますが、なにかしらのLEDの状態を取るのことですね。以下はS7-1200の絵ですが、LED Functionを使うとか赤枠のLEDの”状態”を取ることができます。

Function

LADDRとLEDのパラメータによって現在デバイスのLED Statusが返してくれます。注意するにはすべてのデバイスも全部”LEDの色”もついてわけでもなく、このあたりは取りたいデバイスの取り扱い書を参考してください。

以下はLEDが Functionのパラメータです:

INPUT

LADDRHW_IOLED状態取りたいCPUやデバイスのアドレス(もしCPU取りたいならLocal~~XXXを入れればよい)
LEDUINTどんなLEDを取りたいのか
1=STOP/RUN
2=ERROR
3=MAINT
4=Redundant
5=Link(Green)
6=Rx/Tx(Yellow)

OUTPUT

Ret_ValINTLEDの現在状態
0=LEDは存在しない・データ取りません
1=OFF
2=Color1(もしRun/Stopなら、緑のこと)がONしてる3=Color2(もしRun/Stopなら、オレンジのこと)がONしてる4=Color1が2Hzで点滅中
5=Color2が2Hzで点滅中
6=Color1と2も2Hzで点滅中
7=LEDは有効中、Color1
8=LEDは有効中、Color2
9=LEDは存在しない・データ取りません
8086=R/HシステムはRunしてません
8091=LADDRが間違いあり
8092=LADDR指定したデバイスが情報が返してくれれない8093=LADDR指定したデバイスが取りたいLEDがありません
808x=LADDR指定したデイバスがLED命令をSupportしません

Example1#STOP/RUN状態取る

以下は簡単な例S7-1200のSTOP/RUN状態を取ります。

LADDRをLocal~Commonにして、LED=1。

そうすると、16#0002が返してくれます。

2=Color1(もしRun/Stopなら、緑のこと)がONしてるのことです。

つまり緑が光っています。

Example2#ERROR状態取る

では、次やりたいのはS7-1200のERROR状態を取ることです。

ハードウェア構成に実機がないモジュールを1つ追加します。

CPUが止まるのは嫌なので、エラーOBを追加します。

LADDRをLocal~Commonにして、LED=2。

そうすると、16#0004が返してくれます。

4=Color1が2Hzで点滅中のことです。

つまり赤が点滅中ですね。赤点滅中ってことはなにかエラーだと判断できます。

これは実際S7-1200の状態です:

はーい、以上になります。

お疲れ様ですー

なにかあったらコメントしてね。

Footer_Basic

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする