Eigenschaften temporärer Variablen

geduldiger

Level-1
Beiträge
285
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

hab mal ne Frage zu den eigenschaften von temporären Variablen, und zwar hab ich in nem FC ein paar temporäre variabeln die ich jede sekunde um 1 erhöhe also quasi als real-zähler. aber manchmal bleiben die temps einfach stehen und werden nicht mehr erhöht?:confused: gibts da irgendwelche bedingungen die ich nicht beachtet hab oder spinnt mein programm?

mfg
 
Hallo,
die temporären Variablen sind nur zur Laufzeit des Bausteins gültig. D.h. nach verlassen des Bausteins können die Variablen auch von anderen Bausteinen als temp. Variablen benutzt werden. (Hilfe-->L-Stack). Benutze einfach ein MD, dann bleiben deine Werte erhalten...oder programmiere einen FB mit statischen Variablen.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Temporäre Variablen sind nur Temporär, also während eines Zyklus gültig.

Ein Verwendung um die Variable regelmäßig zu erhöhen ist damit also von vorneherein
grundsätzlich ausgeschlossen.

Wenn du sowas machst dann musst du das ganze z.B. als IN/OUT -Variable in einen DB/Merker oder irgendwas auslagern.

Mfg
Maneulo
 
aber warum hats dann funktioniert? das ich die variable nur in dem baustein benutzen kann is mir klar, aber warum ist bei einem bestimmten wert schluss? er hat z.b. bis 256 gezählt und wurde dann nicht mehr erhöht. und jedesmal ist sie wieder bei 256 stehn geblieben.

werde dann jetzt andere mittel benutzen

danke, mfg
 
temp. Variablen

Habe ich jetzt nicht richtig verstanden.
Gültig zur Laufzeit des Bausteins oder gültig während eines Zyklus ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
aber warum hats dann funktioniert? das ich die variable nur in dem baustein benutzen kann is mir klar, aber warum ist bei einem bestimmten wert schluss? er hat z.b. bis 256 gezählt und wurde dann nicht mehr erhöht. und jedesmal ist sie wieder bei 256 stehn geblieben.

werde dann jetzt andere mittel benutzen

danke, mfg

Hast du evtl. als Variable nur ein Byte ?? dann ist bei 255 Schluß.
 
nein sind alles reals und die werden jede sekunde um 1 erhöht, aber irgendwann bleiben sie einfach "hängen", ganz komisch, aber wenn die ja ausserhalb des bausteins auch als speicher genutzt werden vom programm dann gehts ja eh net
 
Hallo Geduldiger,
der Temp-Bereich eines jeden Bausteins ist ein Speicherbereich der SPS wie jeder andere auch. Das heißt, so lange wie ein Speicherinhalt nicht mit etwas anderem überschrieben wird, bleibt sein ursprüngicher Inhalt bestehen. Möglicherweise würdest du es sogar hinbekommen, dass wenn du deine Lokalvariable weit genug nach hinten in den L-Bereich legst, dass dein Zähler für diesen einen Fall) korrekt weiterläuft. Dieses kannst du halt nur eben nicht grundsätzlich sicherstellen. Temp-Variablen sind halt (wie der Name schon sagt) nur temporär (zeitlich beschränkt) verfügbar (wie von den Anderen schon beschrieben) .
 
Zurück
Oben