Ü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 ActiveX(mbserver.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 TCP(sourceforge.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 SubEinschrä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 1Test 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 1234Moderne Alternativen
Aufgrund des älteren MBServer ActiveX-Technologie - Stacks und der geringen Aktivität des mblogic-Projekts werden folgende Alternativen im tatsächlichen Projekt empfohlen:
| Anforderungsszenario | Empfohlene Alternativen | Beschreibung |
|---|---|---|
| Windows. NET / C # Entwicklung | NModbus oder ASComm.NET | Native. NET-Bibliotheken ohne ActiveX-Abhängigkeit |
| Excel VBA-Lese - PLC | MBServer ActiveX | bleibt der einfachste Weg für VBA-Szenarien |
| Linux-Server | libmodbus oder pymodbus | Aktivere C / Python-Bibliothek |
| Embedded Linux | libmodbus | Leichtgewicht, 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.
Antwort veröffentlichen