Wago 750-653 Modbus Energiezähler auslesen

Zip

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich würde gerne einen/mehrere Energiezähler Modbus über die Klemme 750-653/003 auslesen,

Welche Bausteine benötige ich hierzu?
In der Bibliothek Modb_L05.lib befinden sich etliche Modbus master bausteine bei denen mir aber nicht klar wird wie man ein bestimmtes Register aus dem Zähler auslesen kann :confused:.



Der Controller ist ein Wago 750-881



hat jemand ein Beispielprogramm hierzu?



im Anhang das Kommunikationsprotokoll des Zählers.Anhang anzeigen Communication Protocol EMM IM147-U v0.92.pdf


Mit freundlichen Grüßen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Natürlich habe ich diese schon gelesen, aber ich bin ein modbus neuling und habe die ganze protokollierung noch nicht verstanden.

ich bekomme zwar irgendwelche werte doch kann ich mit diesen nichtsd vernünftiges anfangen.

will ich z.b. die spannung aus meinem zähler auslesen

SlaveAddresse:=01
FunctionCode:=03
StartAddresse:=4096
NumberOfPoints:=2

Die Anderen Kommunikationsparameter wie Baudrate usw. hab ich schon x mal kontrolliert, bin schon fast am durchdrehen
 
Hallo Zip,


unten aufgeführte Beispiele sind bekannt und die Verdrahtung ist nach halbduplex (2 wire) und fullduplex (4 wire) ausgeführt und
auch so an der Klemme eingestellt.Solltes Du eine reine 653 haben, so ist nut 4 wire möglich.
Da deine Datenstrecke nicht sauber funktioniert empfehle ich für die weiter Suche, die Tools
Modbus Slave und Modbus Poll.(demo)





http://www.wago.com/wagoweb/documentation/app_note/a1026/a102604d.htm
http://www.wago.com/wagoweb/documentation/app_note/a1026/a102605d.htm
 
Wichtig ist das du den Baustein MODBUS_EXTENDED_MASTER_RTU benutzt, der Baustein gibt dir die Response Daten als WORD aus. Wenn du den Baustein MODBUS_MASTER_RTU benutzt bekommst du immer nur Bytes, egal ob du die Response Daten als WORD oder BYTE anlegst. Denke daran das du nur Maximal 125 Wörter auslesen kannst.

Anbei ein Beispiel.
 

Anhänge

  • Test.rar
    4,2 MB · Aufrufe: 211
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hast du mittlerweile ne Lösung gefunden? Habe nämlich das gleiche Problem. Ich habe jetzt schon mehre Sachen ausprobiert und bekomme es einfach nicht hin nen Wert auszulesen ... Die Anwendungsbeispiele bekomme ich auch nicht zum laufen.
 
Wichtig

Hallo Exesor,

Wichtig ist erstmal das du eine Kommunikation zwischen deinen Slave und der 750-652 karte hast. Also erstmal die Karte Konfigurieren. Alle Einstellungen müssen mit dem Slave übereinstimmen.

1.WAGO-IO-Check 3>auf die Karte Klicken
2.BAUDRATE, PARITY, STOPBITS, BYTESIZE, FLOW_CONTROL (Alles genauso einstellen wie auch der Slave eingestellt ist)
3.Baustein MODBUS_EXTENDED_MASTER_RTU auch identisch wie die Karte Parametrieren.
4.Slave-Adresse, Funktion, Register, und Register Länge and die Struktur deiner Instanz übergeben. Mit MOVE zum Beispiel

ExtQuery typModbusExte
ndedQuery
TYPE typModbusExtendedQuery :
STRUCT
SlaveAddress : BYTE;
FunctionCode : BYTE;
Read_StartAddress : UINT; (Register das Geschrieben oder gelesen werden soll.
Read_Quantity : UINT; (Reigister Länge z.b 2)
Write_StartAddress : UINT;
Write_Quantity : UINT;
Write_Data : ARRAY[0..124]
OF WORD;
END_STRUCT
END_TYPE

5.an dem Eingang Startfunktion einen Blinker basteln.
6. Sollte kein Fehler in der Instanz Struktur
MB_Error enumMB_ERR
OR
Fehlercode
TYPE enumMB_ERROR :(

MB_NO_ERROR := 16#00,
MB_NOT_SUPPORTED_FUNCTION := 16#01,
MB_ILLEGAL_DATA := 16#03,
MB_EXTENDED_SLAVE_ERROR := 16#90,
MB_NOT_ALLOWED_BROADCAST := 16#95,
MB_CRC_ERROR := 16#96,

MB_ILLEGAL_NUMBER_OF_POINTS := 16#97,
MB_OVERRUN := 16#98,
MB_TIME_OUT := 16#99
);
END_TYPE
sein dann bekommst du in der Instanz Struktur Response

Response typModbusRes
ponse
TYPE typModbusResponse :
STRUCT
Error : WORD;
SlaveAddress : BYTE;
FunctionCode : BYTE;
StartAddress : UINT;
Quantity : UINT;
Data : ARRAY[0..124]
OF WORD;
END_STRUCT
END_TYPE
unter Data deine Werte vom Slave.
7. Solltest du mehrere Register Lesen oder Schreiben und die Maxanzahl der Wörter reicht nicht aus dann musst du dir eine Schleife Basteln die bei jeder Antwort zum Nächsten Register Wechselt.


Sehr,Sehr,Sehr Wichtig ist auch noch das nicht alle Slaves über die RS485 Schnittstelle Kommunizieren können. Also versuch es auch mal über RS232 Schnittstelle. Manchmal steht aber trotzdem in der Doku des Slaves das er mit RS485 Kommunizieren kann.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
danke für die schnelle Antwort.
Ich benutze die Karte 750-653/003-000 und mit Wago-IO-Check 3 kann ich zwar auf die Prozessdaten zugreifen aber nichts einstellen. Gibt es für das Modul auch einen weg um die Kommunikation zu testen? Ich habe es nach deinen Beispiel versucht und noch keine Verbindung hinbekommen.
Der Stromsensor (789-620) den ich benutzen möchte wird mit RS485 2-Polig angeschlossen. (Dabei habe ich RxD und TxD gebrückt) Das wird auf der Wago-Homepage auch beschrieben.
 
Hallo cshum,

du musst auf Einstellungen klicken um die Karte zu Parametrieren zu können. Also ich glaube es war Einstellung. Näheres kann ich dir erst nächsten Montag sagen. Da bin ich wieder bei dieser Anlage. Der Anschluss an der Karte sollten so stimmen. Schau mal Hier auf Seite 70
http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CC4QFjAC&url=http%3A%2F%2Fwww.wago.de%2Fcatalogue%2FdocumentDownload.do%3FdocOid%3D0200000000006c2400020092de&ei=EcKPUPrGGoTwsgbP4IDgBQ&usg=AFQjCNHDMv5YnIK2ePJUul_kmgdokpbwwA
 
Zurück
Oben