mein Integer kann kein minus

Peter_AUT

Level-1
Beiträge
96
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich arbeite normal nicht mit Siemens - jetzt habe ich aber ein Problem
das ich nicht verstehe und nicht beheben kann - für einen Insider aber
sicher leicht zu beantworten ist.

Also:
Sinngemäß mache ich folgendes:

Code:
MeinWert_1        Int
MeinWert_2        Int

L     0                                 
T     MeinWert_1                  
            
L     Mein Wert_1                     
L     1
-I   
T      MeinWert_2

Wenn ich mir das jetzt online ansehe, steht in "MeinWert_2" nicht das erwartete -1 sondern 65536.
Es gibt bei Step 7 ja keine "unsigned int" (0 bis 65536) sondern nur "int" (-32768 bis 32767) oder?
Muss ich beim Beobachten irgendwas umstellen damit minus angezeigt werden oder mache ich überhaupt was
falsch?

Danke und schöne Grüße
Peter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, du setzt den integer in jedem Zyklus auf 0. Aber dein anzeigeproblem kommt daher, dass der Akku 32bit lang ist und dir den Wert glaube ich als dint anzeigt. Wenn du das in einen merkerwort lädst, und in der variabelntabelle betrachtest, wirdes
-1 zeigen.

ps: oben steht ja dass es ein integer ist :p
 
Zuletzt bearbeitet:
Hallo und gleich mal Danke!

Aha - bedeutet also, dass die Steuerung wohl mit dem richtigen Wert arbeitet,
aber da beim Beobachten immer von DINT ausgegangen wird, gibt´s beim
Anschauen kein minus wenn ein INT Wert betrachtet wird - ist das so richtig?
 
Zuletzt bearbeitet:
Beim Beobachten eines AWL-Programms wird der Inhalt der AKKUs angezeigt und nicht der Inhalt der Variablen.
Die AKKUs haben 32 Bit und können als DINT (Dezimal) oder REAL (Gleitpunkt) oder DWORD (Hexadezimal) angezeigt werden. Da -I die oberen 16 Bit der AKKUs nicht ändert (also alle Bits auf 0 läßt) wird richtigerweise der AKKU-Inhalt als 65535 angezeigt.
Nur in FUP- und KOP-Ansicht wird der INT-Wert typrichtig als -1 angezeigt.

Abhilfe-Möglichkeiten, damit -1 angezeigt wird:
- beobachte mit einer Variablentabelle die Variable "MeinWert_2" (falls das eine globale oder IDB-Variable ist)
- schreibe das Programm so, daß es in FUP oder KOP dargestellt werden kann
- benutze -D statt -I

Harald
 
Zurück
Oben