TIA DPWR_DAT Unbekannter Fehlercode

blimaa

Level-2
Beiträge
954
Reaktionspunkte
103
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

S7-1500er Tia Aktuellste Nummer

Ich lese von einem Servodrive die Daten über DPRD_DAT, kein Problem.
Ich möchte aber auch Daten schreiben mit DPWR_DAT. Dies funktioniert aber nicht. Der Fehlercode ist -32591. Was bedeutet dieser????
HW-Kennung wurde Eingetragen gemäss HW-Aufbau (261dez und in HEX 105).

Gruss blimaa
 
Der Fehlercode ist -32591. Was bedeutet dieser????
-32591 ist die Dezimaldarstellung (Integerdarstellung) des WORD-Fehlerausgangs.
Versuch mal den Wert in Darstellungsart "Hexadezimal" (sofern das in TIA geht) zu beobachten.

Sollte dann W#16#80B1 sein, den Code findest du in der Hilfe zu DPWR_DAT.

Sollte TIA einen WORD-Datentyp nicht eigentlich automatisch in HEX anzeigen?
Der Wert auf den die RetVal geschrieben wird ist als WORD definiert?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

Leider kann ich diesen nicht als HEX anzeigen lassen. Anzeigen als ist ausgegraut.


EDIT: OK 80B1 heisst es, habs auf einen Merker gelegt und dann in der Beobachtungstabelle
 
Bei mir (V13Sp1Upd7) gehts eigentlich schon....
Die Var muss halt als WORD deklariert sein.
TIA_WORD_HEX.jpg

Sonst eben über VarTab.
 
Besten Dank
Das hat mich auf die richtige Spur gebracht.
Musste noch 2 Words in der Länge vom Datentyp einfügen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Witz ist ja das der Returnvalue ein INT ist. Man kann also nicht einfach ein Word anhängen.
Ist übrigens bei allen möglichen Bibliotheksbausteinen der 1500er so.
In den Beschreibungen stehen aber immer die Hex Codes.

mfG René
 
Ja stimmt, die sind alle als INT definiert.

Obwohl das im Endeffekt gar nicht falsch ist.
Step7-Classic-Hilfe: Fehlerauswertung mit dem Parameter RET_VAL schrieb:
Der Rückgabewert ist vom Datentyp Ganzzahl (INT). Die Relation des Rückgabewerts zu dem Wert "0" zeigt an, ob während der Bearbeitung der Funktion ein Fehler aufgetreten ist

Es handelt sich bei dem Datentyp des Ausgangsparameters RET_VAL zwar um eine Ganzzahl (INT), doch die Fehlercodes der Systemfunktionen werden nach hexadezimalen Werten gegliedert. Wenn Sie einen Rückgabewert auswerten und den Wert mit den Fehlercodes vergleichen, die in diesem Handbuch aufgeführt sind, dann lassen Sie sich den Fehlercode im Hexadezimalformat anzeigen.
Der RET_VAL war eigentlich immer schon ein Ganzzahlwert welcher per Vorzeichenbit auf einen Fehlcode hinwies. RET_VAL < 0 (Bit 15) => Fehler.
Bei Classic wurde die RET_VAL aber implizit konvertiert als WORD ausgegeben. Wahrscheinlich weil einfacher zu lesen (Parameter, Ereignisnummer, Fehlerklasse, Einzelfehler).
 
Zuletzt bearbeitet:
Hi
Also soweit läufts.
Allerdings kann ich nicht auf HEX umschalten, alles ausgegraut. OK ich habs in AWL und nicht als Merker sondern ALS FB Variable.
Der Beweis ist im Anhang ;)Siemens.jpg

Ja das ist meiner Meinung nach ein böser Wiederspruch in sich, Explizit ein INT wird verlangt, aber die Fehlercodes in HEX (WORD) ausgeben...

EDIT: Übrigens ich verwende TIA 13SP1 UPD8, sollte also ziemlich aktuell sein.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der RET_VAL war eigentlich immer schon ein Ganzzahlwert welcher per Vorzeichenbit auf einen Fehlcode hinwies. RET_VAL < 0 (Bit 15) => Fehler.
Bei Classic wurde die RET_VAL aber implizit konvertiert als WORD ausgegeben. Wahrscheinlich weil einfacher zu lesen (Parameter, Ereignisnummer, Fehlerklasse, Einzelfehler).

LoL in Classic bin ich jetzt nie auf die Idee gekommen RET_VAL auf <0 zu vergleichen um einen Fehler zu erkennen. Da sie ja immer ein Word beschrieben haben und üblicherweise ein Errorbit mitgekommen ist. Aber ist natürlich ne Möglichkeit.

mfG René
 
Zurück
Oben