TIA Problem mit FB aus Kopiervorlage

blackfield

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend,

ich hab mir einen FB erstellt um mit einem Button etwas Ein- und Ausschalten zu können (incl Flankenauswertung zur Entprellung).

Hab mir diesen dann als Kopiervorlage angelegt. Alles im Baustein ist als local angelegt.

Jetzt hab ich den Baustein zwei mal in meinen OB1 kopiert und sobald ich die Bedingung für einen erfülle reagieren beide.

Wo ist mein Denkfehler bzw was mache ich falsch. Oder kann ich die Kopiervorlagen gar nicht so einsetzen wie ich mir das denke?


Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das heißt ich muss die Bausteine selektiv aufrufen? Klar jetzt hab ich sie einfach ins Netzwerk reingezogen, mein Trigger und mein Ausgang verdrahtet und gut is (dachte ich).

Wie muss ich das denn (auch bei zukünftigen Vorlagen) umstricken das mir das nicht mehr passiert?
 
Mal abgesehen von der eigentlichen Frage
. . . um mit einem Button etwas Ein- und Ausschalten zu können (incl Flankenauswertung zur Entprellung).
FlankenAuswertung zur Entprellung? Wenn Du schon ein prellendes Signal hast, dann hast Du doch damit auch schon mehr Flanken, als Dir lieb sind!
Die Ausbreitung eines Feuers kann man zwar u.U. be- bzw. verhindern durch Legen zusätzlicher Brände.
Aber, ob sich das auf prellende Signale sinngemäss anwenden lässt? Würde mich schon "brennend" interessieren, wie Du das meinst - wenn's auch ein anderes Thema als das dieser Anfrage ist.
 
Zuletzt bearbeitet:
den FB reinziehen und aufraufen im OB oder einem anderen FB, dann fragt TIA nach der Instanz und man kann diese dann anlegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal abgesehen von der eigentlichen Frage

Würde mich schon "brennend" interessieren, wie Du das meinst

Ich hab mich da vielleicht etwas falsch ausgedrückt: Wenn ich den Button/Taster/ect gedrückt halte dann würde ja permanent zwischen Setzen und Rücksetzen hin und her gesprungen. Da ich nur positive Flanken auswerte verhindere ich das.


Das ist es was mich irritiert: Der erste ist FB4, der zweite FB5. Ich hab es gerade nochmal testhalber versucht. Beim Einfügen fragt TIA ob den bestehenden Baustein an diese Stelle verschieben oder den neuen Umbenennen. Geändert wird dann allerdings nur der Name, FB4 bleibt.

EDIT: Gilt eine als Local definierte Variabel nur innerhalb des FBs oder oder auch in dem übergeordneten FB/OB? Dann wäre dieses Verhalten natürlich klar.
 
Zuletzt bearbeitet:
Das Beantworten Deiner Frage überlasse ich den Experten.
Die "Toggelei" könntest Du so erreichen:

Lampe := Lampe Xor (Taste And Not FM);
FM := Taste;

FM ist ein Bit, das im jeweils nächsten PLC-Zyklus noch unverändert verfügbar sein muss! Also pro Taste ein eigenes, "langlebiges" Bit verwenden.

Lokale Variablen gelten keinesfalls in übergeordneten Bausteinen!!!
 
Zuletzt bearbeitet:
Die Idee werde ich mir definitiv mal anschauen! Danke!

Dann bin ich was mein aktuelle Problem angeht am Ende meines Lateins. Eigener Aufruf, eigener DB. Die Variablen im Baustein haben natürlich identische Namen aber alle als Local, gerade nochmal nachgeschaut. Auch keine Querverbindungen, nicht das ich mir ausersehen beide Bausteine von irgendwo anders Trigger.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist es was mich irritiert: Der erste ist FB4, der zweite FB5. Ich hab es gerade nochmal testhalber versucht. Beim Einfügen fragt TIA ob den bestehenden Baustein an diese Stelle verschieben oder den neuen Umbenennen. Geändert wird dann allerdings nur der Name, FB4 bleibt.
Das irritiert mich auch.
Heisst das, Du hast nach dieser Prozedur 2 Exemplare, die beide FB4 heissen, aber unterschiedliche Namen haben?

Bist Du sicher, dass eine FlankenAuswertung eines bestimmten Bits wirklich nur 1-mal pro Zyklus durchlaufen wird?
 
Ich hänge der Einfachheit halber mal ein Screenshot des FBs an.

Ja zwei FBs, beide waren FB4 aber halt am Name ein _1.
Das jetzt wieder ein neuer FB daraus wird, macht er plötzlich wieder. Wie er es halt soll. Ich verbuche das mal unter TIA wie es leibt und lebt.

Zur Hardware: VIPA 313SC die sich als 313C ausgibt für TIA


FB.PNG

FB2.PNG
 
Wenn du aus der Bibliothek einen Baustein ins Projekt einfügst dann macht man das nur 1x
Für jeden weiteren Aufruf nimmt man den Baustein im Projekt und nicht wieder den gleichen aus der Bibliothek.

Das hat nichts mit TIA wie leibt und lebt zu tun sondern ist alleine dein Fehler.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hänge der Einfachheit halber mal ein Screenshot des FBs an.

Ja zwei FBs, beide waren FB4 aber halt am Name ein _1.
Das jetzt wieder ein neuer FB daraus wird, macht er plötzlich wieder. Wie er es halt soll. Ich verbuche das mal unter TIA wie es leibt und lebt.

Zur Hardware: VIPA 313SC die sich als 313C ausgibt für TIA


Anhang anzeigen 43390

Anhang anzeigen 43391


Mit temporären Tags flanken auswerten - wie soll das funktionieren???? :-D
Vielleicht mal die Sucher verwenden - flanken Auswertung - gefühlt einmal die woche Thema :)

VG
 
Die Flankenmerker müssen immer statisch sein, niemals Temp. Sonst weis die Flankenauswertung im nächsten Zyklus ja nicht, das die Flanke im letzten Zyklus schon da war
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Hilfe!

Problem war das der SR nicht als static angelegt war, die Flankentrigger hab ich dann auch gleich geändert.

Nach Stromstoßschalter zu suchen wär ja zu einfach gewesen :ROFLMAO:
Aber danke für den Link

Jetzt macht es auf jeden Fall was es soll
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau dir mal die Hilfe zur Flanke an.
Ich würde an deiner Stelle dankbar sein das du gesagt bekommst das es so nicht gut ist wie du es umgesetzt hast.
Das verhalten der Flanke wird nicht so sein wie du es erwartest.
Versuch doch mal nachzuvollziehen warum es so falsch ist.


Ich würde damit kein Projekt an einen Kunden ausliefern.

P_TRIG.jpg
 
Ich versteh jetzt nicht warum du mir hier vorwirfst nicht dankbar zu senin? Ich hab mich bedankt das mir geholfen wurde und das teilweise nicht nachvollziehbare Verhalten von Triggern bestätigt wie MSB es nannte.

Die TIA-Hilfe ist in meinen Augen etwas unglücklich. Hab mich gestern mit Multiinstanzen beschäftigt. Es wird zwar erklärt wie der Aufbau funktioniert aber das Anlegen nicht bzw an einer komplett anderen Stelle.

Ist übrigens kein Produktivsystem sondern ein Modell.
 
Temp-Variable werden ja bei Aufruf des FB/FC auf dem Stack "angelegt", d.h. eigentlich nur einer Stackadresse zugewiesen. Weder beim Aufruf des FB/FC noch beim Verlassen werden diese vom Betriebssystem verändert. D.h. solange kein anderer FB/FC auf genau dieser Adresse rumschreibt, bleibt der Wert erhalten.
Es soll sogar Programmierer geben, die auf diese Weise Werte von einem FB/FC auf einen anderen übergeben.
Deshalb gilt für mich bei Temp-Variablen immer, daß diese vor lesendem Zugriff in diesem FC/FB mindestens einmal beschrieben werden müssen, entweder durch Rücksetzen am Anfang des Blocks oder Zuweisung mit =.

@blackfield: Dein Problem lag aber nicht bei den Multiinstanzen, sondern beim Unterschied zwischen Stat- und Temp-Variablen.
 
Zurück
Oben