Modbus RTU

Seppe

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

hat jemand zufällig schonmal einen Parker AC10 Frequenzumrichter mit Modbus RTU ausgelesen und gesteuert?
Habe mithilfe des Handbuches des AC10 folgendes konfiguriert:
screenshot.PNG

Kann mir irgendjemand einen Tipp geben warum ich keine Daten empfange?

Vielen Dank!
 
Hallo Seppe,

die hast RS485_FullDuplex konfiguriert. Das ist aus meiner Sicht falsch, denn es müsste auf HalfDuplex konfiguriert sein.
Die Modbus Kommunikation läuft doch über zwei Adern A/B - oder?

VG
ClMak
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Seppe
Füge doch erst einmal den Status und Fehlerausgang hinzu,
Code:
xError            => xFehler,
oStatus            => oZustand
und sage uns ob der Baustein fehlerfrei arbeitet.
Den Status kannst du mit "WagoAppPlcModbus.WagoSysErrorBase.FbResult" auflösen
- Duplex prüfen
- Interface der RS485 prüfen

Holger
 
Der AC 10 von Parker ist auf alle Fälle HalfDuplex (2-Draht A/B)
Mit Siemens habe ich die öfters im Einsatz über RTU.

Eine Besonderheit gibt es die mir sofort einfällt.
Wenn du per Modbus einen Wert sendest zb. Drehzahl 0 Hz und die Min. Drehzahl ist 0,5 Hz (Werkseinstellung)
dann gibt es einen Modbus Fehler. So ist es auf alle Fälle beim MB-Maste Bausein von Siemens.... nur zur Info

Hast du die Parameter im Umrichter alle eingestellt ?
 
Das sind die Parameter die ich immer am Frequenzumrichter einstelle:

Basisparameter
F111 - Maximalfrequenz
F112 - Minimalfrequenz
F113 - Zielfrequenz


Laufsteuerungsparameter
F200 - Quelle des Startbefehls 3: MODBUS
F201 - Quelle des Stoppbefehls 3: MODBUS
F203 - Hauptfrequenzquelle 10: Modbus

Kommunikationsparameter
F900 - Kommunikationsadresse 1 - 255
F901 - Kommunikationsmodus 2= RTU
F902 - Stop Bit 1
F903 - Paritätsprüfung 0: Inaktiv
F904 - Baudrate 3: 9600 / 4: 19200 / 5: 38400 / 6: 57600
F905 - Kommunikations-Timeout 0,0 – 3000,0




 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

vielen Dank für die ganzen Hinweise. Habe auf Half Duplex umgestellt und die Einstellungen am Frequenzumrichter nochmals überprüft. Diese müssten aber passen.

Ich bekomme allerdings immer einen Timeout Error...:confused:
 
Hallo,

stell mal denn Functioncode auf 03 (Read Holding registers) um. So steht es zumindest in der Anleitung Abschnitt 12.6

Gruß

PS: da steht auch was von weniger als 10 Adressen auf einmal.
 
Zuletzt bearbeitet:
Hallo Thruser,

danke, habe Funktionscode auf 03 und readQuantity auf 8 gestellt.
Der Verbindungsaufbau funktioniert:s12:

Wenn ich den Frequenzumrichter auslese solange er nicht läuft bekomme ich einige Werte. Sobald er aber läuft und Frequenz- Spannung- und Stromwert nicht 0 sind tritt die Fehlermeldung 'Error invalid crc' auf...
Eigentlich ist doch die Prüfsumme deaktiviert!?:confused:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das hört sich ganz nach Störungen an, wenn die Fehler auftreten wenn der FU läuft.

Ist das Kabel geschirmt?
Wie lang ist das Kabel?
Hast Du die Abschlußwiderstände dran?
Hats Du die BIAS Widerstände dran?

Damit würde ich jetzt erst einmal anfangen. Hilfreich wäre auch wenn Du ein USB RS-485 Umsetzer hättest, dann könntest Du auch mal mit dem PC und qmodmaster bzw. realterm versuche Dir die Kommunikation anzusehen.

Gruß
 
Hallo,

hab die Abschlusswiderstände eingebaut und kann nun auch im laufenden Modus den Frequenzumricher auslesen.
Habe aber beim Schreiben noch Probleme...

Den Funktionscode habe ich auf 06 umgestellt,
die Schreibadresse auf 8192.

Der Frequenzumricher zeigt CE (Kommunikationsfehler) an, und ich bekomme im Programm den Fehler 'Error message from slave -> see slave error'. Fehler ID ist 144. Ich kann aber nicht herausfinden, was hinter der ID steckt (auch nicht im Handbuch des AC10)...

Hat jemand eine Idee woran es liegen könnte?

Viele Grüße
 
Hi Seppe,

wie schon von Thruser in #9 vorgeschlagen, schau mal was wirklich auf der Leitung übertragen wird. Modbus kennt keine Fehler-ID 144. Wenn ich jetzt mal in die Kristallkugel schaue, könnte die 144 als Hexadezimale 90 interpretiert werden und das könnte die Antwort auf eine fehlerhafte Modbus-Funktion 16 (0x10, Preset Multiple Registers) sein. Im nächsten Byte steht dann was der Slave nicht verstanden hat.

Gruss Corrado
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Wert 144 = 16#90 steht für MB_EXTENDED_SLAVE_ERROR (see the error entry inside modbus response struct)
Also musst Du auch in die Response Struktur schauen. Dort gibt es die Variable Error. Diese enthält den vom Slave zurückgegebenen Fehler.

Grüße
 
Zurück
Oben