İçeriğe geç
Proxus 2.0.0 Proxus 2.0: Proxus tarihinin en büyük sürümü Sürüm notları

Açık kaynak · Apache-2.0 · 0.1.0-preview.4

.NET için Modbus ve OPC UA sürücüleri

Proxus’un içindeki protokol sürücüleri, NuGet paketi olarak. .NET 10 ve Native AOT için yazıldı: reflection yok, çalışma anında kod üretimi yok, gerçek async soket G/Ç’si var; hatalar neyin, neden başarısız olduğunu ve ne denenmesi gerektiğini söyler.

  • .NET 10, Native AOT
  • Üçüncü taraf bağımlılığı yok
  • Bağımsız yazılımlarla test edildi

Paketler

Dört paket, tek sözleşme

Proxus.Drivers.Modbus
TCP üzerinden Modbus master; ağ geçidi ya da sizin açtığınız seri port üzerinden RTU ve ASCII. Coil, discrete input, holding ve input register’lar, veri tipleri ve okuma planlama.
Proxus.Drivers.OpcUa
OPC UA Binary istemcisi: None, Basic256Sha256, Aes128_Sha256_RsaOaep ve Aes256_Sha256_RsaPss ile SecureChannel; Session, Read, Write, Browse, abonelikler, geçmiş veri, metotlar ve olaylar.
Proxus.Drivers.Abstractions
Protokolden bağımsız değer, kalite, zaman damgası, hata tipleri ve ortak sürücü sözleşmesi.
Proxus.Drivers.Core
Sürücülerin ortak kullandığı soket ve zaman aşımı altyapısı.

Protokol rehberleri

Modbus rehberi OPC UA rehberi Kanıt seviyeleri

Hızlı başlangıç

Bir register ve bir düğüm okuyun

Kurulum (önizleme paketleri)

dotnet add package Proxus.Drivers.Modbus --prerelease
dotnet add package Proxus.Drivers.OpcUa --prerelease

Modbus TCP: iki holding register okuma

using Proxus.Drivers.Modbus;

await using var client = new ModbusTcpClient(new ModbusTcpOptions
{
    Host = "192.168.1.10",
    Port = 502,
    UnitId = 1,
    ConnectTimeout = TimeSpan.FromSeconds(5),
    RequestTimeout = TimeSpan.FromSeconds(5)
});

var connected = await client.ConnectAsync();
if (!connected.IsSuccess) { Console.Error.WriteLine(connected.Error.ToUserMessage()); return; }

var registers = new ushort[2];
var read = await client.ReadHoldingRegistersAsync(0, registers);
Console.WriteLine(read.IsSuccess ? $"hr:0 = {registers[0]}" : read.Error.ToUserMessage());

OPC UA: sunucu saatini okuma (hata kontrolü kısaltıldı)

using Proxus.Drivers;
using Proxus.Drivers.OpcUa;

await using var client = new OpcUaTcpClient(new OpcUaTcpOptions
{
    EndpointUrl = new Uri("opc.tcp://192.168.1.20:4840")
});

await client.ConnectAsync();
await client.OpenAnonymousSessionAsync();
var read = await client.ReadAsync(new OpcUaNodeDescriptor(IndustrialNodeId.Numeric(0, 2258)));
Console.WriteLine($"{read.Value.Value}; quality={read.Value.Quality}");

Ne kadarı kanıtlandı

Her özellik neye karşı test edildiğini söyler

Her özelliğin bir kanıt seviyesi vardır: depodaki byte düzeyinde testlerden bağımsız yazılımlarla birlikte çalışmaya kadar. libmodbus, PyModbus, open62541, asyncua ve OPC Foundation referans sunucusu bunlardan bazılarıdır. Simülatör fiziksel cihaz değildir; rehberler bunu açıkça yazar.

  • Deterministik testler: byte düzeyinde çerçeveler, yaşam döngüleri, hatalar ve soket davranışı.
  • Bağımsız yazılımlar: aynı senaryolar başkalarının yazdığı protokol yazılımlarına karşı.
  • Native AOT: senaryolar yalnızca test ortamında değil, yayınlanmış yerel programlarla da çalıştırılır.

Nerede çalışıyor

Üründeki sürücülerin aynısı

Açık kaynak Proxus Industrial MCP Server cihazları bu paketlerle okur; Proxus da bunları Siemens S7, EtherNet/IP, CNC ve diğer protokol sürücüleriyle birlikte kullanır.

Sık sorulanlar

.NET sürücüleri hakkında en çok sorulanlar.

Ticari bir üründe kullanabilir miyim?
Evet. Paketler Apache-2.0 lisansıyla açık kaynaktır; ticari kullanıma, değiştirmeye ve yeniden dağıtmaya izin verir.
Modbus sürücüsü Modbus RTU destekliyor mu?
Evet. Çerçeve tipini RTU ya da ASCII yapın; seri-Ethernet ağ geçidi üzerinden bağlanın ya da kendi açtığınız seri port akışını sürücüye verin. Paketlerin seri port kütüphanesine bağımlılığı yoktur.
Hangi OPC UA güvenlik politikaları destekleniyor?
None, Basic256Sha256, Aes128_Sha256_RsaOaep ve Aes256_Sha256_RsaPss; Sign ya da SignAndEncrypt modunda, anonim, kullanıcı adı ya da X509 kimliğiyle.
Üretimde kullanılmaya hazır mı?
Paketler önizleme sürümündedir (0.1.0-preview.4). Her özelliğin kanıt seviyesi protokol rehberlerinde yayınlanır; neyin neye karşı test edildiğini kullanmadan önce görebilirsiniz.