# Controller 750-8202 - Smartmeter Programm



## Violett (16 Februar 2022)

Hallo,
ich bin ein ziemlicher Neuling in dem Bereich und komme leider nicht weiter.
Derzeit bearbeiten wir an der Abendschule ein Diplomprojekt zu diesem Thema, doch leider haben wir viel zu wenig zum Thema WAGO e!COCKPIT gemacht und nun stehe ich an.
Hat zufällig jemand eine Hilfestellung, Anleitung oder Sonstiges für mich, um einen Smartmeter zu programmieren?
In dem Projekt handelt es sich um eine Übungstafel, mit verschiedenen Komponenten darauf, DALI sowie auch KNX, Beswegungsmelder etc.

Nun soll über den 750-8202 und einem Smartmeter, das wäre dieser hier: https://www.voltus.de/elektromateri...phasen-zweirichtungs-wechselstromzaehler.html

Von allen Verbrauchern und allem was so angeschlossen ist, die Daten: Spannung, Frequenz, Strom und Cosinus(phi) ausgelesen werden und in einer Visu angezeigt werden. Doch leider hab ich absolut keinen Plan wie man das programmiert, ohne einer Steckkarte 750-646 oder dem M-Bus, leider haben wir nur dazu einmal ein Bsp gemacht, im Unterricht.

Hier soll nur Modbus verwendet werden und die Schnittstelle RS-485.

Gibt es hier jemanden der mit etwas helfen könnte, leider bekomme ich seitens der Schule keine Antworten oder Betreuung, daher versuche ich es einmal hier.
Anbei ist ein Bild von dem Augbau den ich derzeit zu Hause habe.

Vielen Dank vorab und LG


----------



## Tobsucht (16 Februar 2022)

Hallo,

entweder benutzt Du den Modbus Feldbuskonfigurator:




Doku:
C:\ProgramData\Wago Software\e!COCKPIT\Documentation\e!COCKPIT_Modbus-Konfigurator_Handbuch_D.pdf

oder die Bibliothek WagoAppPlcModbus:
C:\ProgramData\Wago Software\e!COCKPIT\Documentation\LibraryDocumentation\Manuals\WAGO\WagoAppPlcModbus
In der Bibliothek findest Du noch ein ausführlicheres PDF Dokument und ST Beispielcode.

Grüße

Edit:

Beim Konfigurator ziehst Du für Moddbus RTU statt der grauen Line einfach die schwarze.


----------



## Violett (16 Februar 2022)

Hallo,

vielen lieben Dank, ich versuchs damit mal. Vielleicht bekomm ichs ja so hin.
LG


----------



## Hesse (16 Februar 2022)

Violett schrieb:


> oder dem M-Bus, leider haben wir nur dazu einmal ein Bsp gemacht, im Unterricht.
> 
> Hier soll nur Modbus


Achtung :
M-Bus ist nicht das gleiche / selbe wie Modbus !


----------



## Violett (16 Februar 2022)

Hesse schrieb:


> Achtung :
> M-Bus ist nicht das gleiche / selbe wie Modbus !


Ich weiss, daher sage ich ja, wir haben bis jetzt erst ein Bsp mit Smartmeter gemacht und da war der M-Bus Master im Spiel  
Daher kenne ich andere Möglichkeiten und Wege nicht, wie ichs anders angehe.


----------



## Nilzon (17 Februar 2022)

Wie Du den Zähler abfragst beschreibt Tobsuchts Beispiel sehr schön.

Beim Hersteller findest Du noch das ModBus-Registerverzeichnis des Zählers.


			https://www.eastroneurope.com/images/uploads/products/protocol/SDM120-MODBUS_Protocol.pdf
		

Da stehen die Adressen drin und die sagen Dir, in welchem Register die gewünschte Information zu finden ist und mit welchem Funktionscode Du da dran kommst.

Damit hast Du theoretisch alle Infos.
RS-485 machst Du dann über die COM-Schnittstelle des Controllers. Die ist ja (zumindest dem Bild nach zu urteilen) nicht in Benutzung. Du brauchst also keine weitere Karte.


----------



## Violett (17 Februar 2022)

Nilzon schrieb:


> Wie Du den Zähler abfragst beschreibt Tobsuchts Beispiel sehr schön.
> 
> Beim Hersteller findest Du noch das ModBus-Registerverzeichnis des Zählers.
> 
> ...


Vielen Dank, ja genau es soll über die RS-485 dann gemacht werden.
Den Smartmeter selbst habe ich leider noch nicht, nur den Aufbau der oben am Bild zu sehen ist.
Vielen lieben Dank, ich versuche das nun irgendwie mit der Bibliothek hinzubekommen.
Bei mir scheiterts halt daran das ich keinen Plan vom Code habe und nicht weiss was ich da reinschreibe, das soll nämlich St-text werden, daher hoffe ich, das ich mit der Anleitung aus dem ersten Kommentar was anfangen kann.

LG


----------



## Violett (25 Februar 2022)

Hallo Leute erst einmal vielen Dank für eure Hilfe.
Ich habs nun wenigstens geschafft das Ding mit der Bibliothek: WagoAppPlcModbus aufzubauen.
Aber nun frage ich mich, wo kann ich nun die Variablen vergeben bzw den Befehl, dass ich die Spannung, Strom, Freuquenz und die Leistung benötige?
Den ich möchte dann, dass in der Visu steht:

Spannung ..... V
Strom....A usw

Wisst ihr wie ich das mache? Leider weiss ich nicht wie ich diese Register aus dem Link: https://www.eastroneurope.com/images/uploads/products/protocol/SDM120-MODBUS_Protocol.pdf   
da reinmache? Bzw wohin ich das schreibe und wie.

LG


----------



## Tobsucht (25 Februar 2022)

Das Dokument beschreibt doch schon ganz gut wie Modbus funktioniert.
Die Bezeichnungen aus der PDF und dem Datentyp typMbQuery decken sich auch ganz gut.

Die Slave Address nennt sich in der Struktur bUnitId.

Das Address Register aus der PDF gibt nicht direkt die Modbus Adresse an.
Dazu können die Beispiele betrachtet werden.

Die führende Ziffer 3xxxx und 4xxxx gibt die Unterscheidung zwischen Input Register (3xxxx lesen mit FC4) und Holding Register (4xxxx lesen mit FC3 und schreiben mit FC16). Der restliche Wert muss noch mit 1 subtrahiert werden und ergibt dann die Modbus Adresse.

Also für die Spannung ist Address Register 30001 ein Input Register: bFunctionCode = 4, uiReadAddress = 0 und  uiReadQuantity = 2 (der Wert hat eine Größe von 4 Byte und ein Modbus Register eine Größe von 2 Byte).
Die beiden Registerwerte aus dem awData Array aus der Antwort in utResponse muss dann in eine Real Variable kopiert werden.
Dies kannst Du z.B. mit einem Union machen.

Die Modbus Datenpunkte müssen wohl einzeln gelesen werden. Daher musst Du die Anfrage utQuery vor jeder Anfrage anpassen.
Entweder mit einem Array of typMbQuery oder Du modifizierst uiReadAddress nach jeder Anfrage.

Grüße


----------



## Violett (18 März 2022)

Danke euch vielmals, habs mittlerweile alles geschafft.
LG


----------

