MBServer Modbus-Komponenten: ActiveX-Steuerelemente und TCP-Serverbibliotheken

kostenlosKostenloses technisches Material

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

MBServer Modbus-Komponenten: ActiveX-Steuerelemente und TCP-Serverbibliotheken

Übersicht über MBServer

M BS er ver ist .modbus.orgZ wei komp lement äre Mod bus - Kom pon enten für die Kommunik ation werden emp f oh len Es ist wichtig zu beach ten , dass sie zwar beide " M BS er ver " genannt werden , es sich tatsächlich um zwei vers chiedene Projek te handelt :

  • MBServer ActiveXmbserver.tripod.comEin kostenloser ActiveX-Automatisierungsserver für die Kommunikation mit SPS oder anderen industriellen Geräten über Modbus RTU / ASCII und Modbus TCP-Protokolle auf der Windows-Plattform
  • MBServer TCPsourceforge.net/projects/mblogicEine Open-Source - Sammlung von Modbus TCP-Server - / Client-Bibliotheken mit eigenständigen Servern, Clients und Befehlszeilen-Tools

MBServer ActiveX-Komponenten

MBServer ActiveX ist ein Out-Process - ActiveX-Automatisierungsserver, was bedeutet, dass er von jeder Sprache aufgerufen werden kann, die COM / OLE unterstützt - Visual Basic 6, VBA (Excel Makros), C #, C + +, Delphi usw. Es ist eine Freeware (freie Software) und es ist nicht erforderlich, um die vollständigen Funktionen zu verwenden.

Unterstützte Funktionen

  • Modbus RTU/ASCII(RS - 232 / RS - 485)
  • Modbus TCP(Ethernet-Kommunikation)
  • Funktioncode: FC01 - Lesespule, FC02 - Discret-Lese - Eingang, FC03 - Lesen-Halt - Register, FC04 - Leseneingangs-Register, FC05 - Schreib-Einzel - Spule, FC06 - Schreib-Einzel - Register, FC15 - Schreib-Multi - Spule, FC16 Schreib-Multi - Register
  • Automatische Wiederverbindungsmechanismen
  • Verwendung von MBServer ActiveX in VBA (Excel)

Multi-Threaded - Sicherheitsdesign

Dies ist eines der praktischsten Szenarien für MBServer ActiveX - direktes Lesen und Schreiben von SPS-Daten in Excel:

' VBA 代码:在 Excel 中读取 Modbus TCP 设备数据
Sub ReadModbusData()
    Dim mb As Object
    Set mb = CreateObject("MBServer.MBServerCtrl.1")
    
    ' 配置 Modbus TCP 连接
    mb.Protocol = 3  ' 3 = Modbus TCP
    
    ' 连接设备
    If mb.Connect("192.168.1.100", 502) Then
        ' 读取从站 1,起始地址 40001,10 个保持寄存器
        Dim values As Variant
        values = mb.ReadHoldingRegisters(1, 40001, 10)
        
        ' 将数据写入 Excel 单元格
        Dim i As Integer
        For i = 0 To UBound(values)
            Cells(i + 1, 1).Value = values(i)
        Next i
        
        mb.Disconnect
    Else
        MsgBox "连接失败!"
    End If
End Sub

Einschränkungen von MBServer ActiveX in C #

// C# 代码:通过互操作调用 MBServer ActiveX
using System.Runtime.InteropServices;

Type mbType = Type.GetTypeFromProgID("MBServer.MBServerCtrl.1");
dynamic mb = Activator.CreateInstance(mbType);

mb.Protocol = 3;  // Modbus TCP
if (mb.Connect("192.168.1.100", 502))
{
    // 读取 10 个保持寄存器
    Array values = (Array)mb.ReadHoldingRegisters(1, 40001, 10);
    foreach (var v in values)
    {
        Console.WriteLine(v);
    }
    mb.Disconnect();
}

MBServer ActiveX

Die ActiveX-Technologie wurde in den 1990er Jahren geboren und wurde in der modernen Windows-Entwicklung allmählich durch neuere Technologien wie. NET und COM Interop ersetzt. MBServer ActiveX unterstützt nur 32 - Bit-Windows und benötigt in 64 - Bit-Anwendungen eine WOW64 - Kompatibilitätsschicht oder Surrogate-Prozess. Für neue Projekte empfiehlt es sich, native. NET-Bibliotheken wie NModbus (C #) oder ASComm.NET zu verwenden.

MBServer TCP (mblogic)

MBServer TCP ist ein völlig anderes Projekt, das als Open-Source - Modbus-TCP - Toolset positioniert wird, das bei SourceForge gehostet wird. Die Lizenz ist GPL (für Open-Source - Projekte geeignet, kommerzielle Projekte müssen die Konformität beachten).

Komponenten

  • mbserverdKomponente: eigenständiger Modbus TCP-Server - Daemon, der als Systemdienst bereitgestellt werden kann
  • mbclient: Modbus TCP-Client für Tests und Skriptenaufrufe
  • libmblogic: Modbus TCP-Bibliothek für C-Sprache, die von anderen Programmen aufgerufen werden kann

Installation von MBServer TCP unter Linux

# 从 SourceForge 下载源码
git clone https://git.code.sf.net/p/mblogic/code mblogic-code
cd mblogic-code

# 编译(需要 gcc 和 make)
./configure
make
sudo make install

# 启动 Modbus TCP 服务器
mbserverd -p 502 -a 1

Test mit mbclient

# 读取 127.0.0.1:502 上从站 1 的保持寄存器 0-9
mbclient -H 127.0.0.1 -p 502 -a 1 -f 3 -s 0 -n 10

# 写入从站 1 的保持寄存器 0
mbclient -H 127.0.0.1 -p 502 -a 1 -f 6 -s 0 -v 1234

Moderne Alternativen

Aufgrund des älteren MBServer ActiveX-Technologie - Stacks und der geringen Aktivität des mblogic-Projekts werden folgende Alternativen im tatsächlichen Projekt empfohlen:

AnforderungsszenarioEmpfohlene AlternativenBeschreibung
Windows. NET / C # EntwicklungNModbus oder ASComm.NETNative. NET-Bibliotheken ohne ActiveX-Abhängigkeit
Excel VBA-Lese - PLCMBServer ActiveXbleibt der einfachste Weg für VBA-Szenarien
Linux-Serverlibmodbus oder pymodbusAktivere C / Python-Bibliothek
Embedded LinuxlibmodbusLeichtgewicht, unterstützt RTU und TCP

Zusammenfassung

MBServer repräsentiert zwei klassische Implementierungen der Modbus-Kommunikation: MBServer ActiveX wurde für Windows-Desktop - Anwendungen und Office-Automatisierung entwickelt, um schnell einfache Modbus-Datenerfassungsschnittstellen zu erstellen; MBServer TCP (mblogic) ist ein Open-Source - Modbus-TCP - Server und Befehlszeilen-Tool für Linux-Umgebungen. Obwohl ihr Technologiestack relativ alt ist, sind sie als Lernmittel und historische Referenzen immer noch wertvoll. Bei aktuellen neuen Projekten wird empfohlen, eine modernere Alternative entsprechend der Plattform und den Anforderungen zu wählen.

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.