Stromzähler mittels Modbus aulesen klappt nicht :-(

dast

Level-1
Beiträge
146
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Forumsgemeinde,

versuche gerade einen SDM630 Stromzähler von bg-etech.de mittels Modbus an meiner WAGO 750-881 auszulesen.
Das Auslesen per Modbus an meinem Raspberry Pi 2 mit RS485 Aufsteckmodul funktioniert tadellos, nur an meiner WAGO 750-881 wills einfach nicht hinhauen :-(.

Das ganze soll über die 750-653/003-000 Klemme von WAGO und dem MODBUS_EXTENDED_MASTER FB aus der Modb_l05.lib laufen.
An der Klemme habe ich für die 2-Draht Übertragung die Anschlusspunkte 1 und 2 sowie die Anschlusspunkte 5 und 6 gebrückt und die 2-Draht Leitung zum SDM630 an den Klemmen 1 und 5 angeschlossen.

Das Programm im Online-Modus seht ihr im Anhang.

Bekomme weder einen Fehlercode noch sonst welche Info, was schief geht.
Nur die Daten sind alle Null ...

Vielleicht sieht ja jemand von euch einen Fehler?!

Danke schon mal und Grüße,
Daniel.


Unbenannt.png
 
Hi,

ich nutze die gleiche Hardware wie Du. Allerdings nutze ich den Modbus Configurator. Bei Interesse schick ich Dir ein paar Screenshots.

Gruß Kay
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mir bei Deiner Konfiguration noch auffällt:

Stimmt die Baudrate? Start Adresse = 0?

Bei mir lese ich Register 1+2 aus. Die beiden Register geswappt ergeben Volt l1 gegen Null.
 
Parameter, wie Baudrate usw. sollten stimmen. Da verwende ich die selben wie im Python Programm am Raspberry Pi, wo es ja funktioniert.
Und die COM-Port Nummer ist 3, da ich davor noch eine 750-652 Klemme für DMX sitzen hab.

Ich versuche ja einfach die ersten 80 WORDs auszulesen, steht aber überall 0 drin.
Und ja, im Python Programm am Raspberry Pi lese ich auch einfach die ersten 80 WORDs ab Adresse 0x0000.
Sollte also gehn ...
 
Zuletzt bearbeitet:
Ist komisch. Bei mir ist es genauso angeschlossen. Hast du mal den Modbus konfigurator probiert?

Gesendet von meinem Elephone P8000 mit Tapatalk
 
Hallo Daniel,

zuerst mal zum letzten Beitrag von Holger. Baudraten bis zu 57600 Baud lassen sich bei der 750-653/003-000 durchaus einstellen. Siehe Handbuch: http://www.wago.com/wagoweb/documentation/750/ger_manu/modules/m07500653_00000000_0de.pdf

Grundsätzlich ist zu beachten, dass Übertragungsparameter, die im CODESYS-Projekt mittels eines FB's in der Klemme eingestellt werden, dominierend sind. D.h. eine zuvor mittels WAGO IO-Chcke3 getroffene Einstellung wird überschrieben!

Nun zu Deinem Projekt an sich:

Wenn über eine 750-653/003-000 eine größere Anzahl Bytes gelesen werden soll (in Deinem Fall 80 Modbus-Register -> in Summe etwas über 160 Bytes), dann kommt dem Taskmanagement eine entscheidende Bedeutung zu. Je nach Einstellung der Prozessabbildgröße (3 oder 5 Byte) können über den K-Bus pro Programmzyklus nur 1 bis 3 Bytes des über 160 Byte langen Telegramms aus der Klemme gelesen werden. In der Folge kann es recht schnell zu einem Buffer-Überlauf in der Klemme kommen. Bei der genannten Baud-Rate ist die 5 Byte Einstellung, eine Task-Zykluszeit von 10 ms und eine hohe Priorität für die Mod-Bus Task zu empfehlen.

Du hast zwischen dem Kontroller und der 750-653/003-000 noch eine 750-652 gesteckt. Läuft diese serielle Schnittstelle? Passt hier die eingestellte Prozessabbildgröße zu der in der Steuerungskonfiguration? Die 750-652 kann auch auf RS485 konfiguriert werden. Zu Versuchszwecken könntest Du also auch diese mal als ModBus-Schnittstelle verwenden.



Wenn alles nicht hilft, kannst Du mir gerne mal das Projekt schicken. Mailaddresse siehe unten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Lieber WAGO-Support,

zuerst mal vielen Dank für die Hilfe und die Info bzgl. der Task-Zykluszeit ...

Ich hab jetzt mal ein simples Program für meine verbaute Steuerung programmiert (siehe Anhang) und das SDM630 (testhalber) auf eine Baudrate von 9600 gesetzt.

Selbes Ergebnis, nur etwas ist mit aufgefallen:
Die übergebene Response-Struktur ist leer, genau so wie die innerhalb der MODBUS_EXTENDED_MASTER Instanz.
Nur innerhalb der Struktur ".ReceiveBuffer" der MODBUS_EXTENDED_MASTER Instanz scheinen sich die Daten regelmäßig zu aktualisieren.
Siehe dazu auch das Bild im Anhang! Es scheint so, als ob doch Werte ausgelesen werden, welche aber nicht in der Response Struktur landen.

Und ja, die 750-652 sitzt genau vor der 750-653/003-000 und darüber läuft meine DMX-Beleuchtung einwandfrei und ohne Probleme!

LG Daniel.

Unbenannt.jpg

Anhang anzeigen Sdm630.zip
 
Zuletzt bearbeitet:
Problem gefunden! :D

Der Boolean StartFunction DARF NICHT (zu früh) ZURÜCKGESETZT werden!

Durch die TON FB in meinem Programm wurde StartFunction zurückgesetzt und deshalb die Daten vermutlich im MODBUS_EXTENDED_MASTER nicht umkopiert!

Habs jetzt umgebaut, dass StartFunction erst geändert wird, sobald es vom MODBUS_EXTENDED_MASTER zurückgesetzt wurde.

Unbenannt.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir möchten ebenfalls einen SDM630 auslesen und haben das Beispielprogramm von dast heruntergeladen. Das Programm läuft aber leider bekommen wir nur Nullen zurück. Kann es vielleicht daran liegen, dass wir die normale 750-653-Karte statt der 750-653/003-000 einsetzen?

SDM630.jpg
 
Passen die Einstellungen am SDM630, sprich 9600/N/8/1?
Die normale WAGO 750-653 kann nämlich nur diese Einstellungen!

EDIT: Noch eine Anmerkung: Die SDM630 muss - glaub ich - nach Änderung der Parameter kurz stromlos geschalten werden (was einem Neustart entspricht).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann es vielleicht daran liegen, dass wir die normale 750-653-Karte statt der 750-653/003-000 einsetzen?

Hallo Markusschus,

mit der "normalen" 750-653 wird das vermutlich nicht funktionieren, weil die Klemme im Modus Vollduplex arbeitet.
Bei einen 2-draht Anschluss muss die Klemme aber zwingend im Modus Halfduplex arbeiten. Oder hast Du den Stromzähler über 4-draht angeschlossen?
 
Hat der SDM nicht per default Adresse 1? Ich meine im Screen die Adr 0 gesehen zu haben. TX+ ist auf RX+ und TX- auf RX- gebrückt? RTX- ist auf A und RTX+ auf B gebrückt?
Die nicht unterstützten Eingänge am FB (Baudrate, Duplexmodus) sollen unbeschaltet bleiben bzw. mit den Defaultwerten belegt werden.
 
Danke für die vielen Tipps. Der SDM630 ist mit einer 2-Draht-Verbindung angeschlossen. Einstellungen 9600/N/8/1 waren von Anfang an gesetzt.
Es hat uns auch gewundert, dass im Programm (siehe mein Bild) alle Werte 0 sind. Die Brücken sind so gesetzt wie von weißnix_ beschrieben.

Viele Grüße
 
Zurück
Oben