「インダストリー4.0」「スマート工場」「IoT化」……。
展示会に行けばキラキラした言葉が踊っていますが、現場の設計者からすれば「で、結局どうやって繋ぐの?」というのが本音ではないでしょうか。
そこで必ず出てくるキーワードが「OPC UA」です。
「名前は聞くけど、設定が面倒くさそう」「従来の通信と何が違うの?」と敬遠されがちなこの規格。
実はこれ、単なる通信プロトコルではなく、「メーカーの壁を取り払うための通訳(翻訳機)」なのです。
今回は、なぜ今OPC UAが必要なのかを、現場のエンジニア目線で「Dレジスタ」や「DM」の話を交えて噛み砕いて解説します。
導入:メーカーごとの「方言」で、現場は会話不能状態?
工場の中を見渡してみてください。 三菱電機のPLC、オムロンの温調器、キーエンスのセンサー、ファナックのロボット……。 まるで多国籍軍のように、様々なメーカーの機器が混在していますよね。
しかし、これらには今まで「言葉が通じない」という致命的な問題がありました。 みんな、メーカー独自の「きつい方言」しか喋れないのです。
- CC-Link IE (三菱語)
- EtherNet/IP (ODVA語)
- EtherCAT (ベッコフ語)
この状態で、上位のパソコン(サーバー)でデータをまとめて管理しようとするとどうなるでしょうか? パソコン側は、これら全ての方言を理解するために、何種類もの「通訳プログラム」を用意しなければなりません。これでは、システムを組むだけで莫大な手間とコストがかかってしまいます。
そこで救世主として登場したのが、「全員、これからは『OPC UA』という世界共通語で喋ろうぜ」というルールなのです。

アドレス(番地)を捨てて「タグ(名札)」で呼ぶ
従来の通信(Modbusや各社独自プロトコル)とOPC UAの最大の違いは、「データの呼び方」にあります。
昔(レガシー):番地で呼ぶ「郵便屋さん」
これまでは、データを取り出すために「メモリの番地」を指定していました。
- 三菱電機 (Q/iQ-R): 「D1000番地」の値を見ろ!
- キーエンス (KV): 「DM100番地」の値だ!
- オムロン (CS/CJ): 「CIO 0.00」がONしてるぞ!
これの問題点は、「外(PC側)からは、その数字が何の意味かさっぱり分からない」ことです。
PC側のプログラマーは、「三菱のD1000はライン速度、キーエンスのDM100は温度…」という膨大な「翻訳表(アドレスマップ)」をエクセルで作る必要がありました。
もしPLCのラダー修正でD1000がD1002にズレたら? ……翻訳表も全部修正です(地獄)。
今(OPC UA):名前で呼ぶ「タグ(変数)方式」
OPC UAでは、内部のメモリ番号なんて気にしません。データに「名札(タグ)」を付けてやり取りします。
Line1.MotorSpeed(ライン1のモータ速度)Oven.Temperature(オーブンの温度)
これなら、三菱だろうがキーエンスだろうが、外から見れば同じ「Temperature」です。
PLCの中身がD1000だろうがD5000だろうが、タグ名さえ合っていれば上位システムは一切修正不要。これがOPC UAが「IoT時代の標準」と言われる最大の理由です。

コラム:メーカーによって「設定の楽さ」が全然違う!
「タグ名で呼べるなんて便利!」と思ったあなた。実は、使っているPLCメーカーによって設定の「楽さ」が天と地ほど違います。
これから機器選定をするなら、この違いを知っておいて損はありません。
変数ベース(オムロン・シーメンスなど)
これらは最初から変数をタグとして扱う思想で作られています(IEC 61131-3準拠)。 例えば、オムロンのNX/NJシリーズなら、設定は一瞬です。
- グローバル変数を作る(例:
Network_In1など)。 - その変数の「ネットワーク公開」という列を、プルダウンで切り替える。
たったこれだけで、上位PCからは自動的にその変数名が「タグ」として見えるようになります。 構造体などもそのまま見えるため、「ダントツで楽」です。

(※出典:オムロン株式会社「NJ/NXシリーズ CPUユニットユーザーズマニュアル OPC UA編 (SBCA-411)」より)
画像の「ネットワーク公開」の列を見てください。 ここのプルダウンを「非公開」から「入力」や「出力」に変えるだけ。……信じられないかもしれませんが、設定は本当にこれだけです。 これだけで、PLC内部の変数がそのままOPC UAの「タグ」として世界中に公開されます。
アドレスベース(三菱電機・キーエンスなど)
これらは伝統的なアドレス(デバイス)管理を守っているため、ひと手間かかります。
- OPC UAユニットの設定ツールを開く。
- 「デバイス D1000番地 を、タグ名
Motor_Speedに変換する」という「割り付け設定」を行う。 - ユニットに書き込む。
あくまで「アドレス」を「タグ」に変換して見せているだけなので、変換テーブルを作る作業が発生します。
大規模なシステムを作る場合、この手間の差は意外と馬鹿になりません。
セキュリティは「社員証」ではなく「パスポート」
もう一つ、現場で嫌がられるのが「証明書(Certificate)」などの面倒なセキュリティ設定です。
「社内LANなんだから、繋げば動くようにしてくれよ!」と言いたくなりますが、これには理由があります。
- 従来の工場ネットワーク:
- 「鎖国」状態。 外と繋がっていないから、誰が入ってきても(物理的にケーブルを挿せれば)性善説で通していた。
- IoT時代のネットワーク:
- 「開国」状態。 インターネットやクラウドと繋がる。
もし、従来の感覚でインターネットに繋ぐと、地球の裏側のハッカーに「モーター停止コマンド」を勝手に送られてしまうかもしれません。
空港の入国審査と同じ
OPC UAのセキュリティは、「信頼できる相手としか通信しない」仕組みです。
- 接続要求: 「繋いでいい?」
- 証明書確認: 「パスポート(電子証明書)見せて。うん、君は正規の管理者だね」
- 暗号化通信: 「じゃあここからは、盗聴されても分からない暗号で話そう」
面倒ですが、この「認証」と「暗号化」が標準装備されているからこそ、安心して工場のデータを外に出せるのです。

【技術解説】OPC UAを支える「情報モデル」
さて、ここからは少し技術的な中身の話です。
これを理解していると、上位システム側の担当者(ITエンジニア)と会話するときに、『タグの中に単位も入ってるから、そっちで勝手にグラフ化できるでしょ?』とカッコよく言えるようになります。
OPC UAが「ただの通信」ではないと言われる所以は、その「情報の持たせ方(情報モデル)」にあります。
単なる「数値」か、「意味のある情報」か
従来の通信では、「100」というデータが送られてきても、それが「100℃」なのか「100mm」なのか「エラーコード100」なのかは分かりませんでした。
OPC UA(情報モデル)では、データが「オブジェクト(構造体)」として扱われます。
- 値 (Value): 100
- データ型 (DataType): Int32
- 単位 (Unit): Celsius (℃)
- 品質 (Quality): Good (正常値)
- タイムスタンプ: 2025/12/24 15:00
データそのものに「私は摂氏100度で、正常なデータですよ」という自己紹介が含まれているのです。これにより、受け取った側のシステムは何も考えずにデータをグラフ化したり保存したりできます。
OPC UA導入の現実解(住み分け)
「じゃあ、これからはセンサーも全部OPC UAになるの?」
というと、そうはなりません。OPC UAは高機能なぶん、通信パケットが大きく、処理が重いからです。
0.1ミリ秒を争うような高速なモーション制御には不向きです。
現在の工場のトレンドは、以下のような「適材適所」の使い分けです。
| 階層 | 役割 | 推奨プロトコル |
| 上位 (IT層) | 生産管理・クラウド連携 (速度より意味・安全重視) | OPC UA |
| コントローラ間 | PLC同士の連携 | OPC UA / EtherNet/IP |
| フィールド (現場) | モーター・センサー制御 (とにかくリアルタイム性重視) | EtherCAT, CC-Link IE TSN MECHATROLINK など |
現場の足回りは、従来どおり得意なフィールドバス(EtherCATなど)で高速に回し、
そのデータをPLCが集約して、上位へ送るときだけOPC UAに変換して渡す。
これが最もコストパフォーマンスが良く、現実的な構成です。

OPC UAは上位連携には最強ですが、高速な制御には向きません。足回りの制御には『EtherNet/IP』などが適しています。違いについては以下の記事で解説しています。

まとめ
- OPC UAは「通訳」: 三菱「D」やキーエンス「DM」の違いを吸収し、共通の言葉にする。
- タグで管理: アドレス管理から解放され、仕様変更に強くなる。
- メーカー差: オムロンなどの「変数ベース」PLCなら、設定はチェックを入れるだけで爆速。
- セキュリティ: 面倒な証明書は、工場を守るための「パスポート」。
- 使い分け: 制御は従来のフィールドバス、情報収集はOPC UA。
「難しい・面倒」と思われがちなOPC UAですが、その本質は「人間(エンジニア)が楽をするための仕組み」です。
次回のプロジェクトで「上位連携」の話が出たら、「じゃあOPC UAでタグ渡しにしましょうか」と提案してみてください。それだけで、あなたは「IoTの分かるエンジニア」として一目置かれるはずです。