KepServer 是一款用于與工業(yè)設(shè)備進(jìn)行通信的 OPC 服務(wù)器
安裝 KepServer:首先,從 Kepware 官網(wǎng)下載并安裝 KepServer。
配置 KepServer:啟動(dòng) KepServer 并進(jìn)行以下操作: a. 添加設(shè)備:在 KepServer 中,選擇 “Devices” -> “Add Device”,然后選擇相應(yīng)的設(shè)備類型(例如,Siemens PLC)并為其命名。 b. 配置設(shè)備連接:雙擊新添加的設(shè)備,然后在 “Connection” 選項(xiàng)卡中輸入設(shè)備的 IP 地址、端口號(hào)等連接信息。 c. 添加標(biāo)簽:在 “Tags” 選項(xiàng)卡中,添加要訪問的設(shè)備標(biāo)簽。為每個(gè)標(biāo)簽分配一個(gè)地址,例如,一個(gè) Siemens PLC 的 DB 地址。
在 C# 中使用 KepServer:要在 C# 中使用 KepServer,需要使用 OPC 客戶端庫。這里以 OPC Foundation 的 OPC UA 客戶端庫為例:
a. 安裝 OPC UA 客戶端庫:在 Visual Studio 中,打開 “NuGet 包管理器”,搜索并安裝 “OPCFoundation.NetStandard.Opc.Ua” 包。
b. 編寫 C# 代碼:
using Opc.Ua;
using Opc.Ua.Client;
using System;
using System.Threading.Tasks;
namespace KepServerSample
{
class Program
{
static async Task Main(string[] args)
{
// 創(chuàng)建 OPC UA 應(yīng)用程序配置
ApplicationConfiguration config = new ApplicationConfiguration();
config.ApplicationName = "KepServerSample";
config.ApplicationType = ApplicationType.Client;
config.SecurityConfiguration = new SecurityConfiguration();
config.SecurityConfiguration.AutoAcceptUntrustedCertificates = true;
// 創(chuàng)建 OPC UA 會(huì)話
Session session = null;
try
{
session = await Session.Create(config, new ConfiguredEndpoint(null, new EndpointDescription("opc.tcp://localhost:55555/Kepware.KEPServerEX.V6")), false, "KepServerSample", 60000, null, null);
}
catch (Exception ex)
{
Console.WriteLine($"Error creating session: {ex.Message}");
return;
}
// 讀取標(biāo)簽值
try
{
ReadValueIdCollection nodesToRead = new ReadValueIdCollection();
nodesToRead.Add(new ReadValueId { NodeId = NodeId.Parse("ns=2;s=MyDevice.MyTag"), AttributeId = Attributes.Value });
DataValueCollection results = null;
DiagnosticInfoCollection diagnosticInfos = null;
session.Read(null, 0, TimestampsToReturn.Both, nodesToRead, out results, out diagnosticInfos);
foreach (DataValue result in results)
{
Console.WriteLine($"Tag value: {result.Value}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error reading tag value: {ex.Message}");
}
finally
{
// 關(guān)閉會(huì)話
if (session != null)
{
session.Close();
}
}
}
}
}
這段代碼首先創(chuàng)建了一個(gè) OPC UA 會(huì)話,然后讀取了 KepServer 中的標(biāo)簽值。請(qǐng)注意,您需要根據(jù)實(shí)際情況修改 “EndpointDescription” 中的 URL 和節(jié)點(diǎn) ID。