SlideShare a Scribd company logo
1 of 39
Download to read offline
OPC UAをオープンソースやフリーの
ソフトで遊んでみた
ミソジ 2021/9/4
第6回 FA設備技術勉強会
#FA_Study
自己紹介
名前:ミソジ @misoji_engineer
仕事:ハードウェア系のエンジニア
エンジニアの電気屋さん(https://misoji-engineer.com/)
「ハードウェア」技術ネタをブログにしてます
アジェンダ
• OPC UAで遊びたい
• オープンソースやフリーのソフトウェアを調べてみる
• いろんなパターンでテストしてみる
• まとめ
IoTっぽいことで遊びたい!
FAのデータを(カッコよく)
繋げてみたい…
OPC UAで何かできそう…
OPC UA…産業機器・システムの通信プロトコル
⇒機器・通信規格を超えてデータ交換が可能に
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UAの環境構築できるのか?
• OPC UAのプロトコルの詳細を分かっていない
• 仕事でもネットワーク関係は全く触らない
• ハード屋でソフトは趣味の日曜大工レベル
個人でOPC UAを使えるの…?
専用機器・高価なソフトは無し!
100%(あやしい)趣味・個人的な遊びです。
OPC UAに対応した機械 OPC UA専用のゲートウェイ(中継器)
やりたいことは沢山!
・PLCでOPC UAの機能を使いたい
・PythonでOPC UAの環境構築したい
・RustでOPC UAの環境構築したい
・PCソフトからOPC UAのデータを監視したい
・スマートフォンからOPC UAのデータを見たい
・OPC UAのゲートウェイも作ってみたい
・クラウドでOPC UAのデータ収集したい
・OPC UAのセキュリティの機能も試してみたい
他にも色々…
エンジニアのいつもの
無いならば~
OPC UAの環境が
エンジニアのいつもの
作ればいいじゃない!
OPC UAの環境を
ちょっとOPC UAを探してくる
1.GitHubにあるオープンソース
2.ソフト・アプリでもフリーで使えるもの
3.クラウドでもOPC UAを使えるもの
4.テスト環境(ハードウェア)も簡単に用意
無料でテストできる環境構築
GitHubにあるオープンソ一スの一例
C#,Python,Go,Rust…など多くのプログラミング言語であります
(公式団体(OPC 協議会)がGitHubにオープンソースとして公開しています)
※GitHub…ソフトウェアの開発プラットフォーム
Free OPC-UA Library
https://github.com/FreeOpcUa
OPC Foundation
https://github.com/OPCFoundation/
フリーで使えるソフト・アプリの一例
OPC UAに対応している無料のソフト・アプリは多くあります
UaExpert
https://www.unified-
automation.com/products/development-tools/uaexpert.html
Prosys OPC UA Client for Android
https://www.prosysopc.com/products/opc-ua-
client-for-android/
OPC UAに対応しているクラウドの一例
大手のクラウドでもOPC UAが使えます。
(最初の無料枠を)上手く使えれば、無料でテストも可能。
AWS
(Amazonのクラウド)
Azure
(Microsoftのクラウド)
AWS IoT SiteWise
https://aws.amazon.com/jp/iot-sitewise/
OPC Publisher
https://docs.microsoft.com/ja-jp/azure/industrial-
iot/overview-what-is-opc-publisher
テスト環境(ハードウェア)も簡単に用意
汎用的なデバイスの「ラズベリーパイ」で対応します
ラズパイをOPC UA対応機器にします。
「PLC」「サーバー」「クライアント」「ゲートウェイ」
OPC UAのテスト
1.PLCでOPC UAを使う
2.PythonでOPC UAの環境構築
3.RustでOPC UAの環境構築
4.スマートフォンとOPC UAのデータ通信
5.クラウドでOPC UAのデータ収集
色んなパターンでテストしてみる
1.PLCでOPC UAを使う
PLCでOPC UAを使う
ここのイメージ
FA機器(PLC)とPC間の通信を想定
テスト環境
PCとラズベリーパイでOPC UA通信
ソフトウェアPLCでOPC UA
FA機器(PLC)とPCの想定でOPC UAの通信が出来ました。
2. PythonでOPC UAの環境構築
2.PythonでOPC UAの環境構築
ここのイメージ
FA機器×2…内部の通信仕様が異なるFA機器で
OPC UA + Pythonのデータ収集を想定
テスト環境
ラズベリーパイを複数台使ってOPC UAの通信
PythonでOPC UA
PythonでOPC UAクライアントとしてデータ収集できました
3. RustでOPC UAの環境構築
※Rust…C,C++に似ているプログラミング言語
3. RustでOPC UAの環境構築
ここのイメージ
FA機器…Rustの組み込み機器を想定
テスト環境
ラズベリーパイ+Rustの環境でOPC UA通信
RustでOPC UA
RustでOPC UAサーバーとしての動作できました
4.スマートフォンとOPC UAのデータ通信
4. スマートフォンとOPC UAのデータ通信
ここのイメージ
スマートフォン×2…アプリでOPC UA通信
テスト環境
スマートフォンにアプリをインストールしてOPC UA通信
スマートフォンでOPC UA
スマートフォンをOPC UAクライアントとして動作できました
5.クラウドでOPC UAのデータ収集
5.クラウドでOPC UAのデータ収集
ここのイメージ
クラウドでOPC UAのデータ収集・解析を想定
テスト環境
AWS(Amazonのクラウド)でOPC UAの通信
AWSでOPC UA
AWS IoT SiteWiseを使ってOPC UAのデータ収集できました
詳細の記事リンク先
OPC UAとは?使い方・入門方法をまとめてみた
https://misoji-engineer.com/archives/opc-ua-use.html
※各テスト動画のリンク先
1.PLCでOPC UAを使う https://youtu.be/SIvec-6DB3Q
2.PythonでOPC UAの環境構築 https://youtu.be/7R19bT6_Sgw
3.RustでOPC UAの環境構築 https://youtu.be/fsV35XBZYrw
4.スマートフォンとOPC UAのデータ通信 https://youtu.be/5Nt0lKUpPSw
5.クラウドでOPC UAのデータ収集 https://youtu.be/Opcd4tFvhh0
まとめ
OPC UAをオープンソースとフリーのソフトで十分に遊べました!
OPC UAを始めてみたい方におすすめです
最後に
ご清聴ありがとうございました

More Related Content

What's hot

PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.Kuniharu(州晴) AKAHANE(赤羽根)
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409稔 小林
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作るtorisoup
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだNarichika Kajihara
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみたKeijiUehata1
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホンYou_Kinjoh
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化DeNA
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 

What's hot (20)

PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
JIRA / Confluence の 必須プラグインはこれだ
JIRA / Confluence の必須プラグインはこれだJIRA / Confluence の必須プラグインはこれだ
JIRA / Confluence の 必須プラグインはこれだ
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 

Similar to OPC UAをオープンソースやフリーのソフトで遊んでみた

OSSはどこまで産業用機器に使えるか_20230520.pdf
OSSはどこまで産業用機器に使えるか_20230520.pdfOSSはどこまで産業用機器に使えるか_20230520.pdf
OSSはどこまで産業用機器に使えるか_20230520.pdfKioto Hirahara
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料Naoki Shibata
 
OSCによるソフトウェア連携
OSCによるソフトウェア連携�OSCによるソフトウェア連携�
OSCによるソフトウェア連携Ryo Kanda
 
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話ssuser551c92
 
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話Yoshikazu Kawashima
 
2017年度未踏事業最終成果報告
2017年度未踏事業最終成果報告2017年度未踏事業最終成果報告
2017年度未踏事業最終成果報告Daichi Teruya
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門Hirotaka Kawata
 
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験TomohisaYamazoe
 
Code for iizukaとオープンデータ
Code for iizukaとオープンデータCode for iizukaとオープンデータ
Code for iizukaとオープンデータKindai University
 
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...Insight Technology, Inc.
 
マイコンボード色々
マイコンボード色々マイコンボード色々
マイコンボード色々Hirokazu Tokuno
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"Reo Matsumura
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1l_b__
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)Kiyoshi Ogawa
 
Kadecot Application Examples
Kadecot Application ExamplesKadecot Application Examples
Kadecot Application Examplessonycsl
 
金沢アプリ塾 アプリ・オープンデータとライセンス
金沢アプリ塾 アプリ・オープンデータとライセンス金沢アプリ塾 アプリ・オープンデータとライセンス
金沢アプリ塾 アプリ・オープンデータとライセンスMasayuki KaToH
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Hironori Sekine
 

Similar to OPC UAをオープンソースやフリーのソフトで遊んでみた (20)

OSSはどこまで産業用機器に使えるか_20230520.pdf
OSSはどこまで産業用機器に使えるか_20230520.pdfOSSはどこまで産業用機器に使えるか_20230520.pdf
OSSはどこまで産業用機器に使えるか_20230520.pdf
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
 
OSCによるソフトウェア連携
OSCによるソフトウェア連携�OSCによるソフトウェア連携�
OSCによるソフトウェア連携
 
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
 
Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話Ruby で ffmpeg の filter_complex と戯れる話
Ruby で ffmpeg の filter_complex と戯れる話
 
2017年度未踏事業最終成果報告
2017年度未踏事業最終成果報告2017年度未踏事業最終成果報告
2017年度未踏事業最終成果報告
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
 
Code for iizukaとオープンデータ
Code for iizukaとオープンデータCode for iizukaとオープンデータ
Code for iizukaとオープンデータ
 
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
 
マイコンボード色々
マイコンボード色々マイコンボード色々
マイコンボード色々
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
 
Rubykaigi2010
Rubykaigi2010Rubykaigi2010
Rubykaigi2010
 
Kadecot Application Examples
Kadecot Application ExamplesKadecot Application Examples
Kadecot Application Examples
 
金沢アプリ塾 アプリ・オープンデータとライセンス
金沢アプリ塾 アプリ・オープンデータとライセンス金沢アプリ塾 アプリ・オープンデータとライセンス
金沢アプリ塾 アプリ・オープンデータとライセンス
 
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
 

OPC UAをオープンソースやフリーのソフトで遊んでみた