Probleme mit dem Vorzeichen (Analog PT100)

oli aus d

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

ich habe folgenedes Problem:

Analoge Karte: ( 6es7 331 7kf01 0ab0)
PT100 std

bei Temperaturen über 0 grad habe ich keine Probleme
unter 0 grad bekomm ich Werte mit denen ich nichts anfangen kann.

Beispiel:
Pew 400 in einer Variablentabelle: -70
Pew 400 im FC aufgerufen 65466

hat irgendwas zu tun mit dem Vorzeichen aber ich brings nicht auf die Reihe.

wäre schön wenn mir jemand helfen könnte.

Danke im Voraus
Gruss oli
 
Das ist nur der Anzeigemodus,

das Vorzeichen ist das höherwertigste Bit. Wenn du es entsprechend anzeigst, stellt er das Vorzeichen dar.
Wenn du dies nicht tust, interpretiert er das als höchstwertige Zahl, also 65396 ( 65466 - 70 = 65396) und addiert diese dazu.

Die Variable ist also korrekt, nur die Anzeige im Simaticmanager falsch.

Grüße

Marcel
 
Das hat damit zu tun, daß beim Beobachten per Variablentabelle der Inhalt des PEW400 angezeigt wird und beim Beobachten des AWL-Programms nicht der Inhalt des PEW (16 Bit), sondern der Inhalt der AKKUs (32 Bit).

Hier ging es um das gleiche Problem: mein Integer kann kein minus?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

also ich hab das Programm im Kop und da sollte es also angezeigt werden.

Es wird aber nicht der Wert "-170" wie in der Variblentabelle angezeigt sondern "65364"

mit was kann ich jetzt den Wert auf -170 bringen.
Irgendwas mit Schieben oder wie kann ich da vorgehen.
Gruss Oli
 
Also ich wusste gar nicht, das irgendwer der Bediener deine KOP/FUP wasauchimmer Geschichte zu Gesicht bekommt,
und die paar Programmierer die das zu Gesicht bekommen, die sind im Regelfall kompetent genug um mit Zahlendarstellungen umzugehen.

Was funktionieren müsste wäre ein Move auf eine Temp-Var vom Typ Integer, diese TempVar wird dann entsprechend angezeigt, kann auch ein MW vom Typ Integer sein, oder ein DBW ...
Für die Funktion des Programmes ist das aber absolut egal.

Mfg
Manuel
 
Hallo
das im kop sehe war auf den link vorher gemünzt.

Hab einen move schon programmiert, weil ich danach auf real wandle.
Problem ist aber das am eingang vom move schon diese 65364 am pew 400 anstehen, aber das pew 400 in der vartab -170 anzeigt
gruss oli
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja kannst du.
Schau nach ob das höchstwertige Bit eins ist.
Dann ein Bit nach links und wieder eins nach rechts, dann hast du die Zahl und musst nur noch darum kümmern, dass das Vorzeichen wieder angezeigt wird.
Oder du nimmst dir die schönen Bausteine die dir den Wert normieren und dann auch noch richtig anzeigen.

Kannst du uns erzählen, was du wie anzeigen willst?


bike
 
Also moment mal, wenn du das entsprechend INT_TO_DINT und dann von DINT_TO_REAL wandelst,
dann steht in deinem REAL definitiv der richtige Wert, sprich -170.
Sinnigerweise musst du das REAL dann natürlich noch durch 10.0 teilen.

Ergo machst du gerade ein Problem aus etwas, was keins ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das mach ich ja auch
hab das selbe für die innentemp und da funktioniert alles, ging auch schon für die aussentemp.
bloss seit es drausen minusgrade hat gehts nicht mehr.

mein problem ist das das pew 400 falsch angeziegt wird im Kop, aber in der vartab richtig angezeigt wird
gruss oli
 
Dein Problem ist nicht die Anzeige in KOP, sondern wie du das PEW verarbeitest, das garantiere ich dir.

Screenshot vom Code!
 
das mach ich ja auch
hab das selbe für die innentemp und da funktioniert alles, ging auch schon für die aussentemp.
bloss seit es drausen minusgrade hat gehts nicht mehr.

mein problem ist das das pew 400 falsch angeziegt wird im Kop, aber in der vartab richtig angezeigt wird
gruss oli

Jetzt solltest du dir einmal die Mühe machen, wenn es nicht zu viel ist, und lese nach was ein AKKU ist und was ein Variabletyp ist.



bike

P.S: Warum wird jeder Mist hier gefragt ohne Hintergrund und ohne Versuch ein Problem sinnvoll zu beschreiben?:rolleyes:
Groß- und Kleinschreibung ist ein Problem, dann kann es nichts werden mit der PLC Programmierung.
 
Hallo
habs mal kopiert und eingefügt.

und fragen tu ich weil ich das nicht weiss, sonst bräuchte ich nicht zu fragen
Gruss Oli


U(
L "PEW 400"
T LD 0
SET
SAVE
CLR
U BIE
)
SPBNB _001
L LD 0
DTR
T LD 4
 
Also ich sehe da nur ne Wandlung von DINT nach REAL, und nicht vorher noch von INT nach DINT.

Insofern solltest du dich wirklich mal näher mit Zahlenformaten beschäftigen!
 
Zurück
Oben