Sinamics S120 CU320 Parameter per SFB53 schreiben

Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt les ich Parameter aus, die ich quasi im DB101.DBB6 eingebe.
Ja da wird die Nummer des ersten zu lesenden Parameters eingetragen.
Wenn ich allerdings öfters den gleichen Wert auslese (im übrigens ziemlich egal welchen) kommen immer die Werte: 160000; FFFF0401 oder der Fehler 8003 raus. Also ich bekomm nicht immer das gleiche Ergebnis, wenn ich immer den selben Parameter auslese. Hast du das Problem auch schon mal gehabt? Und weiß du dazu eine Lösung?

Ach ja, wenn der Fehler kommt, dann steht im Instanz-DB unter RD_REC_STATUS: DE80C200

Hast Du das mehrfach am laufen? Also ich habe bisher das Lesen nur per HMI oder Wertetabelle getriggert, vlt. braucht der SINAMICS etwas Ruhe zwischen den Aufgträgen?
DE80C200= resource busy; The module currently processes the maximum possible jobs for a CPU.

Wo stehen denn die 160000 und FFFF0401? Kannst Du mal die beiden zusammengehörenden DBs posten?
 
Ich les die Parameter mit einem Merker in der Variablen Tabelle aus. Ist nicht ständig, sondern von mir per Hand angestoßen.
Die Werte stehen im DB103.DBD6.
Ich hab die DB´s und den FB-Aufruf als Bild angehängt.

FC + DB.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab noch was festgestellt:
Wenn nur done kommt, dann kommt als Ergebnis im DB103.DBD6 FFFF0401 raus
Wenn dagegen done und drive_error ansteht kommt als Ergebnis 160000 raus.
Hab nur durch den done, den Start wieder abgelöscht und hab nicht gesehen, das gleichzeitig auch noch der drive error sporadisch kommt.
 
Du solltest entweder den Auftrags DB auf die tatsächlich benötigte Länge kürzen (A_2_... und A_3_... löschen), oder drei Parameter anfordern. Da mein FB immer den gesamten DB zum Antrieb sendet und evt. hat der Sinamics ein Problem damit.
Ist die DO (Antriebs Objekt) Nummer richtig?
Bitte beachte, dass im Antwort-DB nur die empfangenen Daten überschrieben werden und evt noch Reste von vorherigen Empfang folgen können. Ggf. solltest Du den DB vorher mit 00 überschreiben.


Meine Analyse der Antwort:

01
81 Auftrag mit Fehler beendet
00
01
44 Fehler bei diesem Parameter (Du hast ja nur einen angefragt)
02 Anzahl Fehlerwerte
00 unzulässige Parameternummer
16 Parameteraddresse unzulässig

Ich finde in der Anleitung zum G120 ist die Fehlerantwort besser beschrieben und habe dir die beiden Seiten beigefügt.

Die Struktur meines Antwort-DBs gilt natürlich nur für die erfolgriche Übertragung von 2 REAL und 16 INT Werten. Bei Fehler oder anderen Parameterformaten musst Du das selber interpretieren, nur die Struktur im Header (H_...) passt immer.
 

Anhänge

  • Fehler.pdf
    99,7 KB · Aufrufe: 14
Zuletzt bearbeitet:
Hab noch was festgestellt:
Wenn nur done kommt, dann kommt als Ergebnis im DB103.DBD6 FFFF0401 raus.

Für den P201 (Leistungsteil Aktueller Typ) erwarte so was wie

00 Referenz
01 Leseauftrag erfolgreich
00 DO Nummer
01 Anzahl Parameter
06 Format: unsigned16 (also WORD)
?? Anzahl der Indexwerte (vermutlich 01, aber evt. werde ja alle Motormodule genannt)
64 Wert des Parameters (100Dez = S120, wenn ich die Parameterliste des S120 richtig interpretiert habe)

evt. folgen noch weitere Werte, wenn tatsächlich mehrere Motormodule ausgegeben werden sollten.

Wenn dagegen done und drive_error ansteht kommt als Ergebnis 160000 raus.
Dann wurde der Auftrag bearbeitet, aber der Umrichter hat einen Fehler gemeldet,
Vlt. hast Du ja auch ein Problem mit der Zugriffsstufe ???

Hab nur durch den done, den Start wieder abgelöscht und hab nicht gesehen, das gleichzeitig auch noch der drive error sporadisch kommt.
Ich würde START erst löschen wenn ich die Antwortbits analysiert habe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antworten, aber irgendwie komm ich nicht weiter. Hab mal meine DB´s angepasst auf die Länge von einem Wert.
Wenn ich aber das Auslesen anstarte über den FB20 dann spiegelt er mir obwohl er ja den done ausgibt nicht mal mehr die Reference. Ich hab mein Beispiel nochmals angehängt.
Ich würde gern den Parameter p2587 - EPOS Tippen Verfahrweg auslesen. Dabei handelt es sich um einen Unsigned32, quasi ein DW. Was meiner Ansicht nach auch passen müsste. Wo könnte denn noch ein Fehler sein???



FC + DB.jpg
 
Also, ich habe eben mit meinem G120 nochmal getestet. Um möglichst gleich mit Dir zu sein, habe ich P18 ausgelesen, das ist der FW Version, die liegt auch in unsigned32 vor.

Anbei das Projekt (STEP 7 V5.5 SP2, STARTER V4.3.1.2, WinCC flex 2008 SP3 (habe ich aber aus dem Projekt gelöscht) )

Nimm mal unverändert das Programm (bis auf die Parametrierung im OB1). Öffne die Wertetabelle und setze START auf 1. Es sollte nur DONE kommen und in Zeile 11 müsste die FW Version zu lesen sein. (Bei mir 4503007dez für die V4.50.3007).
Ich sehe keinen Grund warum das nicht gehen sollte.

Ich habe auch mal statt der IO-Adresse (256) die Diagnose Adresse (2043 oder 2042) genommen, ging beides auch.


Wenn das klappt, dann ändere die Parameternummer. Vermutlich musst Du auch die die Nummer des Antriebobjektes (in H_Axis) anpassen und dort die deines Motormodules angeben müssen.
 

Anhänge

  • Par_lesen_2.zip
    627,1 KB · Aufrufe: 20
  • Bild1.jpg
    Bild1.jpg
    156,7 KB · Aufrufe: 27
Danke für deine Bemühungen! Ich werde das Anfang nächste Woche testen und dich wissen lassen ob es funktioniert. (Ich hab spontan noch einen Montage-Ausflug gewonnen und komm erst dann wieder dazu.)=
 
Zurück
Oben