Share this

Softwareentwicklungstechnologie für die Fernkommunikation multifunktionaler Stromzähler auf Basis des MODBUS-Busses

2026-02-21 08:49:54 · · #1
Basierend auf MODBUS-Softwaretechnologie zur Fernkommunikation multifunktionaler elektrischer Messgeräte 【Zusammenfassung】 Dieser Artikel analysiert die multifunktionalen elektrischen Messgeräte der Jiangyin Changjiang Sfield Electric Instrument Company und stellt ein auf Visual Basic basierendes Programm zur Fernauslesung von Daten dieser Messgeräte vor. Die MSComm-Steuerung dient zur Ansteuerung des RS-232-Schnittstellenanschlusses COM1 und realisiert so die Fernsteuerungsfunktion der Messgeräte. 【Schlüsselwörter】 RS-232-Schnittstelle, MODBUS-Bus, MSComm-Steuerung, 232/485-Konvertermodul. Zusammenfassung : Dieser Artikel analysiert die multifunktionalen elektrischen Messgeräte der Jiangyin Changjiang Sfield Electric Power Company Limited. Er beschreibt den Fernzugriff auf diese Messgeräte mithilfe von Visual Basic. Die Fernsteuerung der Messgeräte wird durch den Zugriff auf die serielle Schnittstelle COM1 über die MSComm-Steuerung realisiert. Schlüsselwörter: RS-232-Schnittstelle, MODBUS, MSComm-Steuerung, 232/485-Konvertermodul . I. Einleitung. In traditionellen Stromversorgungssystemen werden zur Überwachung des Systems häufig verschiedene Messgeräte (z. B. Stromzähler, Amperemeter, Voltmeter usw.) in Hoch- und Niederspannungsverteilerschränken installiert. In großen Fabriken sind oft zahlreiche Messgeräte vorhanden, und regelmäßig muss eine Person alle Messpunkte im Werksgelände mit Stift und Papier abfahren, die Messwerte erfassen und die Daten zur Analyse und Verarbeitung ins Büro bringen. Mit der Entwicklung der Informatik und Technologie werden Computer zunehmend auch in der Energieüberwachung eingesetzt. Der Ersatz mechanischer Leistungsmesser durch multifunktionale intelligente Leistungsmesser ist ein unaufhaltsamer Trend in der industriellen Automatisierung. Multifunktionale Messgeräte bieten nicht nur vielfältige Einsatzmöglichkeiten, sondern ermöglichen in der Regel auch die Programmierung und Datenerfassung über ihre Kommunikationsschnittstellen. Daher kann der Einsatz multifunktionaler Leistungsmesser den Arbeitsaufwand deutlich reduzieren und die Effizienz erheblich steigern. Die Überwachung multifunktionaler Leistungsmesser ist jedoch in ihrer Funktionalität relativ eingeschränkt, und die verfügbare Konfigurationssoftware ist teuer. Diese Arbeit nutzt die MSComm-Steuerung zur Ansteuerung der seriellen Schnittstelle, um das Fernauslesen von Leistungsdaten der Multifunktions-Leistungsmesser der Jiangyin Changjiang Sifel Power Meter Company zu ermöglichen und somit das Software-Designziel zu erreichen. Die MSComm-Steuerung ist eine von Microsoft bereitgestellte Erweiterung, die den Zugriff von VB-Programmen auf serielle Schnittstellen unterstützt. Sie „verbirgt“ die meisten zugrundeliegenden seriellen Kommunikationsprozesse und viele umständliche Verarbeitungsschritte und unterstützt gleichzeitig Abfragemethoden und ereignisgesteuerte Kommunikationsmechanismen. Daher ist die Implementierung der seriellen Datenkommunikation mit Mikrocomputern sehr einfach und erfordert nur minimalen Code für den einfachen Zugriff auf die serielle Schnittstelle und die Datenkommunikation. II. Analyse des MODBUS-Kommunikationsprotokolls: Da die Multifunktions-Leistungsmesser der Serie CD194E der Jiangyin Changjiang Sifel Electric Instrument Co., Ltd. eine digitale RS-485-Fernschnittstelle (differenziell, Halbduplex) und das MODBUS-RTU-Kommunikationsprotokoll für Funktionen wie Geräteprogrammierung und Datenerfassung verwenden, wird das MODBUS-Protokoll zunächst vorgestellt. Das MODBUS-Protokoll ist ein Master-Slave-Punkt-zu-Punkt-Kommunikationsprotokoll, das die Datenkommunikation zwischen einem Master und mehreren Slave-Geräten ermöglicht. Im multifunktionalen Leistungsmessgeräte-Kommunikationssystem der Serie CD194E fungiert ein Mikrocomputer (PC, Industrie-PC, SPS) als Master, während die Geräte der Serie CD194E als Slaves fungieren. Dieses Kommunikationssystem ermöglicht den Anschluss von bis zu 128 Geräten über eine Reichweite von 1200 Metern. Die Kommunikation erfolgt über ein Master-Anfrage-Slave-Antwort-Verfahren. Der Master sendet eine Befehlsanfrage, der Slave empfängt und analysiert die Daten. Entsprechen die Daten dem Kommunikationsprotokoll, sendet der Slave eine Antwort. Jeder Datenrahmen der Master-Slave-Kommunikation enthält folgende Informationen (hexadezimal): Slave-Adresse, Befehlswort, Informationswort und Prüfsumme. Slave-Adresse (1 Byte): Die Gerätenummer des Slaves, die vom Master zur Identifizierung des Slaves verwendet wird. Befehlswort (1 Byte): Definiert den Kommunikationsinhalt zwischen Master und Slave. Informationswort (N Bytes): Enthält verschiedene Datenadressen, Datenlängen und weitere Dateninformationen für die Kommunikation zwischen den beiden Geräten. Prüfsumme (2 Byte): Dient zur Erkennung von Datenkommunikationsfehlern mittels zyklischer Redundanzprüfung (CRC16). Einstellungen der Kommunikationsparameter: Geräteadresse (1–247), Übertragungsgeschwindigkeit (4800 oder 9600) und Datenformat (1 Startbit, 8 Datenbits, 1 Stoppbit, wählbare Parität: keine, ungerade oder gerade) werden über die Programmiertastatur des Geräts eingestellt. Die Netzwerkverbindung ist in Abbildung 1 dargestellt. Der Autor verwendet hier das 232/485-Konvertermodul I-7520 von ICP D.C. (Taiwan). Befehle des Hauptsteuerrechners werden über die serielle RS-232-Schnittstelle übertragen. Dieses Signal wird vom 232/485-Konvertermodul (Modulnummer I-7520) in Standardspannung und -typ umgewandelt, bevor es über das 485-Netzwerk weitergeleitet wird. Nach Empfang des Befehls führt das Multifunktions-Leistungsmessgerät Analyse- und Steuerungsoperationen durch und sendet das Ergebnis schließlich an das 485-Netzwerk. Dieses Signal wird anschließend vom I-7520 erneut umgewandelt und über die RS-232-Schnittstelle des Computers empfangen. Der gesamte Sende- und Empfangsprozess erfolgt seriell. III. Software-Design und Entwicklungshinweis : Die vom Multifunktions-Leistungsmesser der Serie CD194E übertragenen Leistungsdaten werden in Byte 1 bis Byte 4 gespeichert. 3. Kommunikationsschritte: 1. Kommunikationssteuerung hinzufügen (MSComm-Steuerung). 2. Kommunikationsportnummer festlegen (CommPort-Eigenschaft). In diesem Artikel wird Com1 verwendet. 3. Kommunikationsparameter festlegen (Einstellungen-Eigenschaft). In diesem Artikel sind die Werte 9600,n,8,1. Die Übertragungsgeschwindigkeit beträgt 9600 Baud, das Datenformat 1 Startbit, 8 Datenbits, 1 Stoppbit und kein Paritätsbit. Diese Einstellungen müssen mit den Einstellungen des Multifunktions-Leistungsmessers übereinstimmen, andernfalls schlägt die Kommunikation fehl. (4) Weitere Parameter festlegen. Fügen Sie bei Bedarf weitere Attributeinstellungen hinzu. (5) Öffnen Sie den Kommunikationsport. Setzen Sie die Eigenschaft „PortOpen“ auf „True“. (6) Senden oder lesen Sie alle 500 Millisekunden eine Zeichenfolge. Senden Sie Befehl 4 (N Bytes lesen), um die Leistungsparameter mithilfe der Eigenschaften „Input“ und „Output“ auszulesen. (7) Schließen Sie den Kommunikationsport nach Verwendung des MSComm-Steuerelements. 4. Mensch-Maschine-Schnittstelle: 5. Programmcode: 'API-Funktionsdeklaration Private Declare Function GetTickCount Lib "kernel32" () As Long 'Klicken Sie die Schaltfläche "Programm beenden" Private Sub CmdEnd_Click() End End Sub 'Klicken Sie die Schaltfläche "Energie lesen" Private Sub CmdRead_Click() Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled Then CmdRead.Caption = "Lesen stoppen" Else CmdRead.Caption = "Energie lesen" End If End Sub 'Programminitialisierung Private Sub Form_Load() MSComm1.InputMode = comInputModeBinary MSComm1.PortOpen = True Timer1.Enabled = False End Sub Private Sub Timer1_Timer() Dim C4%, C5%, C6%, C7% Dim Tick& Dim Data As Double Dim Buf() As Byte Dim ByteOut() As Byte MSComm1.InputLen = 0 Buf = MSComm1.Input 'Dateneingabepuffer neu definieren, Befehl 4 senden MSComm1.InputLen = 1 ByteOut(0) = &H1 ByteOut(1) = &H4 ByteOut(2) = &H0 ByteOut(3) = &H5C ByteOut(4) = &H0 ByteOut(5) = &H4 ByteOut(6) = &H31 ByteOut(7) = &HDB MSComm1.Output = ByteOut(0) & ByteOut(1) & ByteOut(2) & ByteOut(3) & ByteOut(4) & ByteOut(5) & ByteOut(6) & ByteOut(7) 'Warten, bis die Daten vom Multifunktions-Leistungsmesser am seriellen Port eintreffen Tick = GetTickCount() Do If (GetTickCount() - Tick) / 1000# > 10 Then MsgBox "Zeit zu lang, bitte überprüfen Sie den Multifunktions-Leistungsmesser und den Übertragungsstatus!" vbCritical + vbOKOnly, "Systeminformationen" Exit Sub End If DoEvents Loop Until MSComm1.InBufferCount >= 9 'Daten aus dem Eingabepuffer lesen Buf = MSComm1.Input If Buf(0) <> 1 Then MsgBox "Adressfehler!", vbCritical + vbOKOnly, "Systeminformationen" Exit Sub End If Buf = MSComm1.Input If Buf(0) <> 4 Then MsgBox "Befehlsfehler!", vbCritical + vbOKOnly, "Systeminformationen" Exit Sub End If Buf = MSComm1.Input If Buf(0) <> 4 Then MsgBox "Längenfehler!", vbCritical + vbOKOnly, "Systeminformationen" Exit Sub End If Buf = MSComm1.Input C4 = Buf(0) Buf = MSComm1.Input C5 = Buf(0) Buf = MSComm1.Input C6 = Buf(0) Buf = MSComm1.Input C7 = Buf(0) Buf = MSComm1.Input Buf = MSComm1.Input Data = Power(C4, C5, C6, C7) TxtPower.Text = CStr(Data) End Sub 'Benutzerdefinierte Leistungsumrechnungsfunktion Private Function Power(C4%, C5%, C6%, C7%) Dim PowerExp As String, Mantissa As String Dim ReadValue# Dim ValueSign& If ((C4 And &H80) / 2 ︿ 7) = True Then ValueSign = -1 Else ValueSign = 1 End If PowerExp = CStr((C4 And &H7F) * 2 + (C5 And &H80) / 2 ︿ 7) Mantissa = CStr ((&H80 Or C5) * 2 ︿ 16 + C6 * 2 ︿ 8 + C7) ReadValue = ValueSign * 2 ︿ (Val(PowerExp) - 126) * Val(Mantissa) / (256 * 65536) Power = ReadValue End Function IV. Fazit Dieses Beispiel basiert auf mehreren vom Autor im Labor durchgeführten Experimenten und erzielte den beabsichtigten Anwendungseffekt. Es wird nun in einer Fabrik in der Provinz Jiangxi praktisch eingesetzt. Die größten Vorteile dieses Steuerungssystems sind: 1. Aus Hardware-Sicht ist nur ein Konvertermodul erforderlich, um die Fernüberwachung und zentrale Steuerung der gesamten Anlagenleistung zu realisieren. Dies verbessert die Effizienz erheblich und ist sehr wirtschaftlich. 2. Aus Software-Sicht wird die serielle Schnittstellensteuerung direkt verwendet, ohne dass zusätzliche Treiber geschrieben werden müssen. Die Entwicklung der Anwendungssoftware mit VB ist sehr komfortabel und der Programmieraufwand gering. 【Literaturverzeichnis】 1. Li Zhaoqing, Han Tao. Serielle Schnittstellentechnologie, National Defense Industry Press, 2004. 2. Fan Yizhi. Visual Basic und RS-232-Serielle Kommunikationssteuerung, Tsinghua University Press, 2002. 3. Fan Yizhi. Visual Basic und verteilte Überwachungssysteme – RS232/485-Serielle Kommunikation, Tsinghua University Press, 2002. 4. Benutzerhandbuch der Jiangyin Changjiang Sfield Electric Instrument Co., Ltd. 5. Bedienungsanleitung für das 232/485-Konvertermodul der Taiwan ICP F. Ltd.
Read next

Neue Entwicklungen bei mikromechanischen Bauteilen und Instrumenten

Zusammenfassung: Mikromechanische Komponenten und Instrumente, die sich für die Massenproduktion eignen, zeichnen sich d...

Articles 2026-02-20