TIA In-Parameter wird nicht in FC übernommen

volker

Supermoderator
Teammitglied
Beiträge
5.805
Reaktionspunkte
1.027
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich habe hier ein merkwürdiges Phänomen welches ich mir nicht erklären kann.

Tia 15_1 Upd 3
CPU: 315F-2 PN/DP (Bild flanke_cpu)

Ich habe eine Fc mit einem IN-Parameter und 3 IN-OUT (Bild flanke_fc)
Beim ERSTEN Aufruf der FC wird der in-Parameter nicht in die FC übernommen. (Bild flanke_geht_nicht)
Alle folgenden Aufrufe funktionieren

Rufe ich den FC vorher einmal auf geht es. Aber durch den 0-Merker wird dieser Aufruf der FC ja gar nicht gemacht. (Bild flanke_geht)

Jemand eine Idee? Oder hab ich gerade ein Brett vorm Kopf.

EDIT
Mache ich aus dem Parameter Start eine IN_Out geht auch der erste Aufruf.
Das hat dann aber den gravierenden Nachteil, dass ich am Start keine UND/Oder-Verknüpfungen oder sonstiges dran schreiben kann.
 

Anhänge

  • flanke_cpu.jpg
    flanke_cpu.jpg
    11,7 KB · Aufrufe: 49
  • flanke_geht_nicht.jpg
    flanke_geht_nicht.jpg
    109,1 KB · Aufrufe: 71
  • flanke_geht.jpg
    flanke_geht.jpg
    119,1 KB · Aufrufe: 54
  • flanke_fc.jpg
    flanke_fc.jpg
    54,4 KB · Aufrufe: 54
Zuletzt bearbeitet:
Mir fällt folgendes auf:
Es sieht so aus als hätte der FC ein interne Fehler.
Weil im Online gestrichelt dargestellt.

Erst wenn SAVE gesetzt ist, tausch mann richtige bearbeitung vor.
Sollte ohne SAVE befehl funktionieren.
 
Ja, ich glaube das SAVE kann den Aufruf in die nächste Netzwerk beeinflussen.
Wenn die VKE FALSE ist, wird die FC in nächsten Netzwerk nicht aufgerufen.

edit:
Abhilfe, entweder den SAVE entfernen, oder die EN Eingang mit ein Always_TRUE Variabel beschalten.

noch ein edit:
Bin nicht sicher ob die VKE von den vorigen FC Aufruf mit die beschaltete EN verknüpft wird. Dann wäre es keine Abhilfe mit die Beschaltung von die EN.
Die sichere Abhilfe ist die SAVE zu entfernen.
 
Zuletzt bearbeitet:
Ich habe jetzt noch mal so rumprobiert.

Rufe ich den fc-flanke ziemlich am Anfang aus funktioniert dieser.
Und Ja es gibt einige AWL Netzwerke vor dem besagtem Aufruf. Kein SCL.

Das ganze betrifft wohl auch nicht nur diesen Baustein (den Lifo habe ich so Dutzendfach im Einsatz). Auch an einem anderen Baustein in der Aufrufenden FC wird ein Bool-IN nicht übergeben und produziert dadurch Schrott.
Der Aufruf des Baustein im Bild ist in NW 33
Der Status des Lifo im Bild ist der Zeitpunkt wo diese FC aufgerufen wird.
Wie man sieht wird #reset_new nicht übernommen. Die anderen Parameter aber schon.

Der aufrufende Baustein ist genauso wie in dieser CPU schon mehrfach ohne Probleme im Einsatz.
Im Mom tendiere ich so ein bisschen dahin das die CPU ne Macke hat.

EDIT
Das SAVE hat nur Einfluss auf den ENO. Also wenn ich dort noch eine weitere Funktion dranhängen wollte.
 

Anhänge

  • keine_übergabe_01.jpg
    keine_übergabe_01.jpg
    101 KB · Aufrufe: 27
Zuletzt bearbeitet:
Das SAVE hat die Wirkung, daß der ENO und der Rahmen der FC-Box in FUP/KOP den Zustand des Input Start anzeigt:
Start = 0 --> Rahmen blau gestrichelt
Start = 1 --> Rahmen grün

Ich würde vermuten, daß im Netzwerk bzw Code vor dem Netzwerk 31 das VKE nicht abgegrenzt ist (keine Anweisung, die /ER auf 0 löscht). Das bewirkt, daß trotz M180.0 = TRUE das VKE da FALSE ist und ein FALSE an den Input Start übergeben wird. Falls der Code davor in AWL ist, dann als letztes ein SET oder CLR hinschreiben, oder anderweitig für ordnungsgemäße VKE-Abgrenzung sorgen z.B. eine Zuweisung.

Allerdings sollte dann die Linie am Input Start nicht grün sein... Das ist aber auch in Step7 classic so, daß die Linie grün ist, obwohl das VKE da 0 ist. :(

Harald
 
Ich würde vermuten, daß im Netzwerk bzw Code vor dem Netzwerk 31 das VKE nicht abgegrenzt ist (keine Anweisung, die /ER auf 0 löscht). Das bewirkt, daß trotz M180.0 = TRUE das VKE da FALSE ist und ein FALSE an den Input Start übergeben wird. Falls der Code davor in AWL ist, dann als letztes ein SET oder CLR hinschreiben, oder anderweitig für ordnungsgemäße VKE-Abgrenzung sorgen z.B. eine Zuweisung.

Du hast recht. Im vorigen AWL-Netzwerk war ein bedingter Spring auskommentiert. Innerhalb der Sprungmarke gibt es nur Lade-/Transferaktionen.
Das U wurde so über 2 Netzwerke mitgeschleppt.

Hätte ich eigentlich selbst drauf kommen müssen.
 
Zurück
Oben