TIA Immer-Ein-Merker

kuti

Level-1
Beiträge
354
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe innerhalb meines FBs einen Merker #IMMER_Ein, den ich gerne immer (logischerweise) auf 1 gesetzt haben möchte. Ich habe es mit dem OB100 versucht, leider ergebnislos. Soll dieser Merker als static oder temp deklariert werden??

Danke im Voraus.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke. Ganz kurz zu "InOut". Das ist doch ein ganz gewöhnlicher Merker, d.h er wird gelesen und auch geschrieben? Kann ich ihnauch als temp oder static verwenden?
 
Hi!

Du willst ja nur ein Bit, dass immer auf "TRUE" ist...
Im FB gehst du also einfach in den statischen Variablenbereich "STAT" deklarierst dir hier eine Variable "IMMER_EIN" und setzt ihren "Anfangswert" auf "TRUE".

Alternativ auch der AWL-Code:

UN "IMMER_EIN"
S "IMMER_EIN"


Hierfür muss die Variable natürlich auch existieren (z.B. auch im TEMP-Bereich des Bausteins)


Gruß,

Ottmar
 
Hallo Ottmar,

das mit dem Defaultwert habe ich auch gemacht, ging leider nicht. Jetzt habe deinen AWL-Code ins OB1 eingegeben, dort wird er 1, jedoch nicht im FB. Warum ist das so?
 
Ja, FB wird aufgerufen. Moment, hatte erst den diesen Merker auch im OB100 stehen, werde ihn jetzt löschen. Mal sehen...
 
Hi!

Also im FB solltest du der Sauberkeit halber schon eine lokale Variable im "STAT-Bereich" deklarieren und keinen globalen Merker verwenden.


Gruß,

Ottmar
 
Set
= M x. x

Im OB1, dieser Merker ist dann in jedem aufgerufenem Baustein 'high'

Gesendet von meinem XT890 mit Tapatalk 2

Also ich habe das im OB1 mit einer Temp-Variable gemacht: UN #IMMER1
S #IMMER1
hat aber nicht geklappt, also habe ich es im FB gemacht und das hat funktioniert. Ist aber, denke ich, nicht so eine gute Idee
 
Warum versteifst Du Dich so auf die TEMP-Merker?
Mach es doch wie Lebenslang vorgeschlagen hat und setz einen Merker.
Ich habe z.B. in jedem Projekt IMMER die Merker:

- M200.0 : IMMER_1
- M200.1 : IMMER_0
- M200.2 : INBE_IMMER_1
- M200.3 : INBE_IMMER_0
 
Also ich für meinen Teil kann sagen das in mehrfach aufzurufenden Bausteinen definitiv kein Globaloperrand was verloren hat.
Also entweder in jedem FB bilden, oder als IN-Variable über die Schnittstelle.

Mfg
Manuel
 
TEMP-Variablen kann man auch für den IMMER_EIN-Merker nehmen (*), es sollte aber klar sein, daß jeder Baustein seine EIGENEN TEMP-Variablen hat. #IMMER_EIN im OB1 ist eine andere Variable als #IMMER_EIN in dem FB - daß müßte eigentlich schon daher klar sein, weil man die Variable 2x anlegen/deklarieren muß. Setzen von #IMMER_EIN im OB1 hat keinen Einfluß auf die #IMMER_EIN-Variable des FB.

(*) er muß bei jedem Baustein-Aufruf vor Verwendung erneut gesetzt werden

Übrigens gibt es im TIA das Systemmerkerbyte, das enthält schon einen Merker, der immer True ist. Welche CPU programmierst Du?

PS:
Solche Auskünfte wie "das hat nicht geklappt" haben genauso geringen Informationsgehalt wie "mir gefällt die Farbe des Autos nicht". Wie soll man daraufhin zielgerichtet helfen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe innerhalb meines FBs einen Merker #IMMER_Ein, den ich gerne immer (logischerweise) auf 1 gesetzt haben möchte. Ich habe es mit dem OB100 versucht, leider ergebnislos. Soll dieser Merker als static oder temp deklariert werden??

Ich weiß nicht welche Steuerung und welche TIA-Version du einsetzt, bei der 1500er unter V12 gibt Systemmerker (findest du in den CPU-Einstellungen).
Dort findest du auch Always On.

Gruß
Dieter
 
Danke euch. Ich nehme mit: Temp-Variable ist lokal und nicht global :) . Tausend mal gelesen, aber das dann anzuwenden ist eine andere Geschichte.
Ich habe eine S7-1200.

@Manuel . Du hast recht. Wenn bibliotheksfähig, dann auch alle Variablen und nicht irgend einen "M-Merker" (global).
 
Zurück
Oben