要使用C#和OPC UA進行遠程監控,您需要遵循以下步驟:
安裝OPC UA庫:首先,您需要一個支持OPC UA的庫。有幾個流行的庫可供選擇,例如OPC Foundation的OPC UA SDK和UA.NET Standard。為了方便起見,我們將使用UA.NET Standard庫。要安裝此庫,請在Visual Studio中打開NuGet包管理器并搜索"UA.NET Standard",然后安裝它。
創建一個C#項目:在Visual Studio中創建一個新的C#控制臺應用程序項目。
添加必要的命名空間引用:在Program.cs文件中,添加以下命名空間引用:
using Opc.Ua;
using Opc.Ua.Client;
using System.Threading.Tasks;
private static async Task<Session> ConnectToServer(string endpointUrl)
{
// Create a new ApplicationConfiguration and AppDescription
var config = new ApplicationConfiguration();
var desc = new ApplicationDescription();
// Set the application URI and product URI
config.ApplicationUri = "urn:MyOPCClient";
config.ProductUri = "urn:MyOPCClient";
// Discover endpoints using the provided endpoint URL
var selectedEndpoint = CoreClientUtils.SelectEndpoint(endpointUrl, true);
// Create a new Session object and connect to the server
var session = await Session.Create(config, new ConfiguredEndpoint(selectedEndpoint.EndpointUrl), false, "OPC UA Console Client", 60000, new UserIdentity(), null);
return session;
}
private static async Task<DataValue> ReadNodeValue(Session session, string nodeId)
{
// Parse the NodeId
var parsedNodeId = NodeId.Parse(nodeId);
// Read the value of the node
var dataValue = await session.ReadValueAsync(parsedNodeId);
return dataValue;
}
static async Task Main(string[] args)
{
// Replace this with the actual endpoint URL of your OPC UA server
string endpointUrl = "opc.tcp://your-opc-ua-server:4840";
// Connect to the OPC UA server
var session = await ConnectToServer(endpointUrl);
// Replace this with the actual NodeId you want to monitor
string nodeId = "ns=2;s=YourNodeId";
// Read the value of the node
var dataValue = await ReadNodeValue(session, nodeId);
// Print the value to the console
Console.WriteLine($"The current value of node {nodeId} is: {dataValue.Value}");
// Close the session
session.Close();
}
注意:這只是一個基本示例,實際應用可能需要更復雜的邏輯和錯誤處理。根據您的需求,您可能還需要考慮安全性、身份驗證和授權等方面。