Die Modbus-Bibliothek für. NET und Delphi-Plattformen: NModbus, FreeModbus. NET und Delphi-Komponenten

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Die Modbus-Bibliothek für. NET und Delphi-Plattformen: NModbus, FreeModbus. NET und Delphi-Komponenten

Modbus-Entwicklungs - Ökologie für die. NET-Plattform

In der Entwicklung von Windows - So ftware für industrielle Aut omat isierung ist . NET (C # / V B . NET) eine der wichtig sten Entwick lungs pla tt formen . modbus.org Mod bus - Bib li oth eken werden für mehr ere . NET - P latt formen emp f oh len , die vers chiedene Op tionen von Open - So urce - kosten los en bis hin zu kommer zi ellen Unterstüt z ungen ab de cken . In diesem Artikel werden die Eig ens chaften und die Verwendung dieser Bibli oth eken einzel n besch rieben .

NModbus - die beliebteste C # Modbus-Bibliothek

NModbus ist die bewährteste und am weitesten verwendete Open-Source - Modbus-Bibliothek für die. NET-Plattform. Zuerst gehostet bei Google Code, jetzt auf GitHub:github.com/NModbus/NModbus。NuGet Paket-Name:NModbus

Funktionsmerkmale

  • Unterstützt Modbus RTU, Modbus ASCII, Modbus TCP und Modbus UDP
  • Vollständige Unterstützung für alle gängigen Funktionscodes (FC01 - FC06, FC15, FC16)
  • Installation von
  • mit einem Klick über den NuGet-Paket - Manager Unterstützt. NET Framework und. NET Core /. NET 5 + Open-Source - Lizenzen
  • : MIT (verfügbar)

Installation

# NuGet 命令行安装
dotnet add package NModbus

# 或通过 Visual Studio 的 NuGet 包管理器搜索 "NModbus"

Modbus TCP-Lese - Schreibbeispiel

using System;
using System.Net.Sockets;
using NModbus;

// 创建 TCP 客户端
using var client = new TcpClient("192.168.1.100", 502);
var factory = new ModbusFactory();
var master = factory.CreateMaster(client);

// 读取从站 1 的保持寄存器 0-9
ushort[] registers = master.ReadHoldingRegisters(1, 0, 10);
Console.WriteLine("读取结果:");
for (int i = 0; i < registers.Length; i++)
    Console.WriteLine($"  地址 {i}: {registers[i]}");

// 写入单个寄存器
master.WriteSingleRegister(1, 0, 1234);

// 批量写入多个寄存器
ushort[] writeData = { 100, 200, 300 };
master.WriteMultipleRegisters(1, 10, writeData);

Modbus RTU-Serielle Kommunikation

using System.IO.Ports;
using NModbus;

using var port = new SerialPort("COM3")
{
    BaudRate = 9600,
    DataBits = 8,
    Parity = Parity.None,
    StopBits = StopBits.One
};
port.Open();

var factory = new ModbusFactory();
var master = factory.CreateRtuMaster(port);

ushort[] data = master.ReadHoldingRegisters(1, 0, 5);
foreach (var val in data)
    Console.WriteLine(val);

Free. NET Modbus (free-dotnet - modbus)

Free. NET Modbus ist eine weitere Open-Source - Bibliothek für. NET Modbus, die im Google Code Archive gehostet wird.Ähnlich wie NModbus unterstützt es Modbus ASCII, RTU, TCP und UDP. Wenn Sie eine ältere Version von. NET Framework (2.0 / 3.5) verwenden, bietet diese Bibliothek möglicherweise eine bessere Kompatibilität. Für neue Projekte wird es jedoch empfohlen, einen aktiv gepflegten NModbus zu verwenden.

ASComm. NET - Geschäftsmodbus-Treiber für. NET

ASComm. NET ist eine kommerzielle. NET-Komponente von Automated Solutions, offizielle Website:automatedsolutions.com. Es ist eine vollständig verwaltete. NET-Bibliothek, die nicht nur Modbus TCP / RTU / ASCII unterstützt, sondern auch verschiedene industrielle Protokolle wie Allen-Bradley Logix, PLC5, SLC500, MicroLogix und GE SRTP unterstützt.

Kernfunktionen

  • Visuelles Design: Konfigurationsmöglichkeit entweder per Code oder visuell über das Eigenschaftenfenster von Visual Studio
  • Hintergrund-Scan: Automatisches Scannen von Datenpunkten mit einer angegebenen Rate, Auslöser von Ereignissen, wenn Datenänderungen erkannt werden
  • Serialisierungsunterstützung: Konfigurationsserialisierung im XML / JSON-Format
  • 30 - tägige kostenlose Testversion: keine Funktionsbeschränkungen, vollständig getestet
  • Multi-Protokoll: Unterstützung für Modbus + Allen-Bradley + GE und andere Komponenten in einer Komponente

ASComm. NET-Codebeispiel

using ASComm.NET;

// 创建 Modbus TCP 通信组件
var comm = new ModbusTcpComm();
comm.RemoteAddress = "192.168.1.100";
comm.RemotePort = 502;

// 添加要扫描的数据组
var group = new ModbusScanGroup();
group.SlaveId = 1;
group.StartAddress = 0;
group.Length = 10;
group.ScanRate = 1000; // 每秒扫描一次

// 数据变化事件
group.DataChanged += (s, e) =>
{
    Console.WriteLine($"地址 {e.Address} 变为 {e.Value}");
};

comm.ScanGroups.Add(group);
comm.Connect();

Delphi ModbusTCP-Komponenten

Für Delphi / Lazarus-Entwickler gibt es eine Open-Source - Sammlung von Modbus TCP-Komponenten, die bei SourceForge gehostet werden:sourceforge.net/projects/delphimodbus。Es basiert auf der Indy (Internet Direct) Netzwerk-Komponenten - Bibliothek und unterstützt sowohl Indy 9 als auch Indy 10.

und️Hinweis: Dieses Projekt ist sehr wenig aktiv, und die neueste Delphi-Version (10.4 Sydney / 11 Alexandria) muss möglicherweise angepasst werden, um direkt verwendet zu werden. Wenn Sie Modbus-Funktionen in einer neuen Version von Delphi entwickeln möchten, können Sie auch den Aufruf von MBServer ActiveX über COM Interoperabilität oder die libmodbus-Dynamic Library (DLL) in der C-Version von Delphi in Betracht ziehen.

ModLink - - Native VCL-Komponenten für Delphi

ModLink ist eine native VCL-Komponente für Borland Delphi, die von Ivo Bauer entwickelt wurde, offizielle Websitewww.ozm.cz/ivobauer/modlink. Es handelt sich um eine Reihe von visuellen Komponenten, die Sie direkt in ein Delphi-Formular ziehen und fallen lassen können, die es Delphi-Entwicklern ermöglichen, die Modbus-Kommunikationsfunktionen zu integrieren, ohne Handschriftcode für Socket-Kommunikation zu schreiben.

ModLink unterstützt verschiedene Netzwerktypen, darunter:

  • Modbus TCP (über die TModLinkTCP-Komponente)
  • Modbus RTU-Serieller (über die TModLinkRTU-Komponente)
  • Modbus ASCII-Serieller
  • Modbus Plus-Netzwerk

✍️ ModLink ist ein Produkt aus der Delphi-Zeit, und das Projekt wurde seit Jahren nicht aktualisiert. ModLink ist immer noch wertvoll, wenn Sie ein altes Delphi-ICS - Projekt betreiben; aber für neu erstellte Projekte wird empfohlen, moderne Schema wie NModbus (. NET) oder pymodbus (Python) zu verwenden.

Auswahl einer. NET / Delphi Modbus-Bibliothek

- SzenarioEmpfehlungGründe
C # Neue ProjekteNModbus (NuGet)MIT-Lizenzierung, aktive Wartung, API-Kleinheit
. NET-Business - ProjekteASComm.NETMulti-Protokoll - Unterstützung, Visualisierung, kommerzielle Unterstützung
Alte Delphi-ProjekteModLink oder DelphiModbusNative Delphi-Komponenten, ohne Sprachüberrufe
Python-SkriptepymodbusDie aktivste Python-Modbus - Bibliothek

Zusammenfassung

Die Modbus-Entwicklungs - Ökosysteme für die. NET-Plattform sind die reichsten. Für neue Projekte ist der kostenlose Open-Source - NModbus die beste Wahl für die meisten Szenarien - MIT-Lizenz, NuGet mit einem Klick-Installation, Unterstützung für alle gängigen Übertragungsmodi. Wenn Sie eine gleichzeitige Verbindung von Allen-Bradley - oder GE-Geräten benötigen, bietet ASComm.NET eine einheitliche Multi-Protokoll - Lösung. Trotz weniger Auswahl für Delphi-Entwickler decken ModLink und DelphiModbus die grundlegenden Modbus TCP / RTU-Kommunikationsanforderungen ab.

Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.