[OPC UA] C# UA-.NETStandardでPLCと接続する
いいね
0
OPC UAとは
OPC UA(Open Platform Communications Unified Architecture)は、産業自動化(ファクトリーオートメーション)の分野で広く使われている「オープンかつセキュアで、ベンダーに依存しない通信プロトコルの国際標準(IEC 62541)」です。
一言で言えば、「メーカーが異なるPLC、センサー、ロボット、そして上位のITシステム(MES/ERP)の間で、安全かつスムーズにデータをやり取りするための共通言語」です。
UA-.NETStandard
OPC FOUNDATION のサンプルを使って接続してみます
OPC FOUNDATION のホームページ
ダウンロード
ダウンロードはこちら
GitHub OPCFoundation/UA-.NETStandard-Samples
サンプルの実行
ダウンロードしたファイルを展開してVisualStudioで UA Sample Applications.sln を開きます
ソリューション エクスプローラでUA Sample Client をスタートプロジェクトに設定して実行します
表示されたフォームのアドレス記入枠にURLを記入して[Connect]ボタンを押すとセキュリティポリシーを選択するダイアログが表示されます (例: opc.tcp://192.168.0.21:4840)
UA-.NETStandard Server Configuration
接続が成功するとオブジェクトが表示されるのでPLC名称の下のGlovalVarsを開きます
GlovalVarsの変数のいづれかで右クリックしてReadを選択するとReadダイアログが表示されます
UA-.NETStandard Readダイアログ
ReadダイアログのGlovalVarsの変数のうちモニタしたい変数を右の窓にドラッグして[Next>]ボタンを押します
UA-.NETStandard Read
変数の値が表示されます
UA-.NETStandard Read画面
OPC UA .NET SDK
SDKを使って接続してみます
こちらは有償のSDKですがテストで使う分なら連続30分間の使用が可能です
アプリを再起動したらまた30分間テストできます
ダウンロード
OPC UA .NET SDK
参照に追加
ダウンロードしたファイルを展開しておきます
Visual Studioで新規でWindowsフォームアプリを作成します
ソリューションマネージャで参照の追加を開いて展開したフォルダの下のnet471フォルダ(.NET framework 4.6.1の場合)のファイルを追加します
(Opc.UaFx.Client.dllだけでもよさそうです)
Visual Studio 参照マネージャ
SDKを使ったフォームを作成して実行
フォームにボタンとテキストボックスを配置します
OPC UA .NET SDK Form
コードはこんな感じです
OpcClient("opc.tcp://192.168.0.21:4840")でインスタンスを作成して
client.Connect()で接続して
client.ReadNode("ns=4;s=uaInt")で変数の値を読み出します
using System;
using System.Windows.Forms;
using Opc.UaFx.Client;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var client = new OpcClient("opc.tcp://192.168.0.21:4840"))
{
client.Connect();
var value = client.ReadNode("ns=4;s=uaInt");
Console.WriteLine("value = " + value);
textBox1.Text = value.ToString();
}
}
}
}
ボタンを押すと変数の値を読み出せます
OPC UA .NET SDK 実行画面
ns=4;s=uaInt の意味
ns=4 → Namespace Index
s=uaInt → 変数名
よくある質問(FAQ)
OPC UAのデフォルトポート番号は?
通常は4840です。
NodeIdはどこで確認できますか?
UA ExpertやUA Sample Clientから確認できます。
OPC UAとMQTTはどちらが良いですか?
設備データ取得はOPC UA、クラウド連携はMQTTが適しています。
<関連ページ