PLCプロファイリング — テストキット(「건조로 #2」)
PLCプロファイリング(PLC 프로파일링) は、IOアドレス一覧がないPLCをエッジが読み取り専用で走査して実際に使われているアドレスを見つけ、名前を付けてタグとして登録できるようにする機能です。このページのテストキットは、実際の設備なしでその流れを最初から最後まで試すためのセットです — 架空の「건조로 #2」(乾燥炉 #2)を模したModbus TCPシミュレータと、その値に合わせたHMI画面写真・PLCコメントファイルです。
リリース前の機能です
PLCプロファイリングはまだ正式リリース前のため、この機能を含むテストビルドでのみ表示されます。画面ヘッダーのチップアイコンから開き、AIが設定されている場合にのみ表示されます。機能の紹介はエッジ提案書の「⑥ アドレス一覧がなくても接続します」のページをご覧ください。
キットのダウンロード
| ファイル | 内容 | ダウンロード |
|---|---|---|
| HMI画面写真 | 架空のHMI「건조로 #2 운전 화면」(乾燥炉 #2 運転画面、1280×800)。設定値・生産数量・ランプがシミュレータの値と一致します | hmi-dryer2.png |
| PLCコメント | PLCコメントエクスポートの例。Modiconアドレス(4xxxx · 3xxxx · 0xxxx · 1xxxx、1から数える)、UTF-8、23行 | dryer2-comments.csv |
| シミュレータ | 上の2つと値が一致するModbus TCPシミュレータ。Python 3の標準ライブラリのみを使い、読み取り専用です | dryer2_sim.py |
写真とコメントは任意の添付です。なくてもスキャン結果だけで基本名を付けます — 添付すると、AIがそれを根拠にタグ名・説明・単位を提案します。

シミュレータの実行
python3 dryer2_sim.py 5020
- ポートを省略すると
5020です。起動するとdryer2 simulator listening on :5020と表示されます。 - エッジと同じホストで動かす場合、エッジに入力するIPは
127.0.0.1です(エッジコンテナはhostネットワークを使います)。別のPCで動かす場合は、そのPCのIPを入力します。 - 別のPCの場合、そのPCのファイアウォールで
5020/tcpを開ける必要があることがあります。 - Unit IDは何を入れても受け付けます。
シミュレータが返す値
アドレスはModbusプロトコルアドレス(0から)とModicon表記(1から)を併記しています。コメントCSVはModicon表記です。
| 領域・アドレス | Modicon | 意味 | 値 |
|---|---|---|---|
| holding 0 | 40001 | 乾燥炉 現在温度(×0.1 ℃) | 99.0~102.0 の間で変動 |
| holding 1 | 40002 | 排気ダンパー 現在開度(×0.1 %) | 変動 |
| holding 2 | 40003 | バッチ番号 | 35(固定) |
| holding 3 | 40004 | 生産カウンター | 3秒ごとに+1 |
| holding 4 | 40005 | 累積稼働時間(h) | 111(固定) |
| holding 5 | 40006 | レシピ番号 | 640(固定) |
| holding 10 | 40011 | 乾燥炉 設定温度(×0.1 ℃) | 1008 → 100.8 ℃ |
| holding 11 | 40012 | 排気ダンパー 設定(×0.1 %) | 1009 → 100.9 % |
| holding 12 | 40013 | 供給圧力 設定(×0.01 bar) | 1015 → 10.15 bar |
| holding 13 | 40014 | コンベヤ速度 設定(×0.01 m/min) | 1016 → 10.16 m/min |
| holding 14 | 40015 | 上限警報 設定(×0.1 ℃) | 1020 → 102.0 ℃ |
| holding 20–21 | 40021–40022 | 供給圧力 現在値、FLOAT32 上位ワード先 | 10.0~10.3 bar の間で変動 |
| input 0 | 30001 | 生産数量表示(EA) | 999 |
| input 1 | 30002 | 稼働時間表示(h) | 111 |
| coil 0~3 | 00001~00004 | 運転・停止・自動・異常ランプ | 1 · 0 · 1 · 0 |
| discrete 0 | 10001 | ドア閉 | 1 |
| discrete 1 | 10002 | 非常停止押下 | 0 |
| discrete 2 | 10003 | バーナー火炎検知 | 5秒ごとに点滅 |
- 4つの領域すべてがアドレス 0~1999 を返し、上の表にないアドレスは 0 です。
- 2000 以上は「存在しないアドレス」(Modbus例外 02)として応答します — スキャンの境界探索はここで終端を見つけます。
- 書き込み要求(ファンクションコード 5 · 6 · 15 · 16)は例外 01 で拒否します。
テスト手順
- エッジ画面ヘッダーの PLCプロファイリング(PLC 프로파일링) を開きます。
- 新しいPLC情報を入力(새 PLC 정보 입력) を選び、名前「건조로 #2」、説明(必須)、プロトコルModbus、上で決めたIPとポート
5020を入力します。 - スキャン時間を 5分 にします。
- キットのHMI写真とコメントCSVを添付します(任意)。
- 開始(시작) します。
- スキャンが終わったら AIで名前を作成(AI 로 이름 만들기) を押します。
- ④ 確認・登録(④ 확인 · 등록) 画面で精度と根拠を確認し、正しいものにチェックを入れて登録します。
期待される結果
- 写真の設定値 100.8 · 100.9 · 10.15 · 10.16 · 102.0 が 40011~40015 と対応付けられます。
- 写真の 35 · 640 · 111 · 999 もそれぞれのアドレスと対応付けられます。
- 写真のランプ(運転・停止・自動・異常)はコイル 00001~00004 と対応付けられます。
- コメントCSVの
49001はスキャン領域外のため破棄されます — 正常です。 - 写真に撮影時刻(EXIF)がない場合は、アップロード時刻の値と比較します。そのため温度・開度・圧力のように変動する値は一致しないことがあります — 固定値と設定値が対応付けの基準です。
テスト用です
このキットは実際に稼働中のPLCではなくテスト用です。シミュレータは書き込みを拒否し(読み取り専用)、すべてのネットワークアドレスで接続を受け付けるため、テスト網でのみ動かし、テストが終わったら停止してください。
プロトコル別の事前設定と制約
実際のPLCをスキャンする前に、以下を確認してください。エッジ画面でも、開始画面でプロトコルを選ぶと同じ内容が対象領域の上に表示されます。
共通
- 同時接続数が制限されたPLCでは、既存の収集が接続を使っているとスキャン接続が拒否されることがあります。この場合、スキャンは«2つ目の接続拒否(두 번째 연결 거절)»という理由で停止します。
- ファイアウォールでPLCのポートが開いている必要があります。
Siemens S7 (1200/1500)
- CPUプロパティ › 保護とセキュリティ › 接続メカニズム › «リモートパートナからのPUT/GET通信によるアクセスを許可» がオンになっていて初めて M · I · Q も読み取れます。保護レベルが «アクセスなし(完全な保護)» の場合も読み取れません。
- TIA Portal で «最適化ブロックアクセス» で作成したDBはアドレスで読み取れないため、スキャンから外れます(現場の1200/1500に多く見られます)。そのDBの «最適化ブロックアクセス» をオフにして再ダウンロードすると読み取れるようになります。
Mitsubishi
- PLCのイーサネット設定でMCプロトコル(SLMP)のポートが開いており、交信データコードが «バイナリコード交信» である必要があります。
- FX3はイーサネットアダプタ(FX3U-ENETなど)のMCプロトコル設定が、Aシリーズはイーサネットモジュールの1Eフレーム交信が必要です。
- ZR(拡張ファイルレジスタ)は既定のスキャン領域に含まれていません。
LS
- FEnetモジュールの «XGT専用プロトコル»(既定ポート
2004)がオンになっていて、接続許可IPにエッジが含まれている必要があります。 - XGI / XEC で直接アドレス(
%MW·%MXなど)がなく名前だけの変数は、アドレスで読み取れないためスキャンから外れます。
Modbus
- どのアドレスに何があるかは機器ごとに異なります。Unit ID が間違っていると何も読み取れません。
- RTU-TCPゲートウェイを経由すると非常に遅いため、スキャン時間を30分以上に設定してください。