SNMP (ネットワーク機器・UPS)
SNMP v2c — スイッチ・ルーター・UPS・サーバーなどのインフラ機器を読み取ります(UDP 161)。 PLC ではなく「工場を支える機器」を同じ画面で確認したいときに使用します。
| 状況 | どのカードを使うか |
|---|---|
| スイッチ・ルーター・UPS・サーバー・NAS | SNMP (このページ) |
| 産業用PLC | Modbus TCP · OPC-UA |
| CNC工作機械 | MTConnect · FOCAS |
これを使う理由
設備が停止した原因が設備ではなくネットワークや電源であることが多いです。UPSバッテリー 残量やスイッチポートのエラーを設備データと同じタイムラインに載せておくと、その判断が速くなります。
登録フォームの入力値
| 入力欄 | 何を書くか | 例 |
|---|---|---|
| IPアドレス | 機器管理IP | 10.20.30.1 |
| ポート | 標準 161 | 161 |
| 収集周期 | ポーリング周期(ms) | 10000 (インフラ指標は長めに) |
オプション
| オプション | デフォルト | 説明 |
|---|---|---|
community | public | SNMPコミュニティ文字列 |
request-timeout | 2000 | 応答待ち(ms) |
public のままにしないでください読み取り専用でもコミュニティ文字列はパスワードです。機器で別途読み取り専用コミュニティを 作成して使用し、管理網の外で161が開かないようにしてください。
タグのPLCアドレス表記 — OID
タグのPLCアドレス = OID(ドット表記)です。先頭の . はあってもなくても構いません。
| OID | 説明 |
|---|---|
1.3.6.1.2.1.1.3.0 | sysUpTime — 機器が起動していた時間 |
1.3.6.1.2.1.1.5.0 | sysName — 機器名 |
1.3.6.1.2.1.2.2.1.10.1 | ifInOctets.1 — 1番ポート受信バイト |
1.3.6.1.2.1.2.2.1.8.1 | ifOperStatus.1 — 1番ポートリンクステータス |
🔴 末尾のインデックスを忘れないでください。 スカラー値は .0、テーブル値は .<인덱스> が
付きます。 1.3.6.1.2.1.1.3 は値ではなく「枝」なので空の値が返ります。
UPS・PDUのようなメーカー固有指標は、そのメーカーのMIBドキュメントにOIDが記載されています。
値がどのように入るか
| SNMPタイプ | 入ってくる値 |
|---|---|
| INTEGER · Counter32 · Gauge32 · TimeTicks | 数値 |
| OCTET STRING | 文字列 (出力不可文字ならhex) |
| OID | ドット表記文字列 |
| IpAddress | a.b.c.d |
| noSuchObject · noSuchInstance · endOfMibView | 空文字列 |
Counter は「累積」です
ifInOctets のようなCounterは増え続ける累計なので、その値自体の意味は薄いです。毎秒
増加量が必要なら計算式で差分を取ってください → 計算式適用
うまくいかないとき
| 症状 | 最初に確認すること |
|---|---|
| すべて空の値 | コミュニティ文字列、機器のSNMP許可IPリスト |
| 特定のOIDだけ空 | インデックス(.0 · .1)が付いているか、その機器がそのMIBをサポートしているか |
| 断続的に空 | UDPなので損失が発生することがあります — request-timeout を増やしてください |