TIA Problem mit variablen Impulsgeber in S7-1214C

PLC_Freak

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

nachdem ein Problem gelöst war, kam das nächste.
Ich benötige für eine Steuerung einen variablen Impulsgeber.
Nun gibt es ja von der SIEMENS Seite Vorschläge dazu. Zum Beispiel diesen:

step7_v11_impulsgeber_01.png

Leider habe ich bei mir das Problem, das dieser nicht funktioniert. Es wird zwar die Variabel #Trig auf 1 gesetzt, aber aus irgendeinem Grund wird diese nicht im nächsten Zyklus "oben" übernommen. Somit bleibt #Trig und #Trig_Out auf Dauer-1. Woran kann das liegen. Nahm erst an, dass meine PCL-SIM nicht richtig funktioniert, aber am "lebenden" Objekt (S7-1214C) wollte dies auch nicht funktionieren :cry:

Oder gibt es noch einen anderen Weg? Ich möchte eine errechnete Zeit an die Einschaltverzögerung der Impulspause hängen.

Im Voraus schonmal VIELEN DANK!!!
 
Ja, bzw. in meinem Fall #Trig und #Out als Temp und #TrigOut als Output.
Na da haben wir ja das Problem.

1.) TEMP-Werte behalten ihren Wert nicht über den SPS-Zyklus.
Bei der 1200er sind die Werte aus Temp zu Beginn jedes Baustein-Durchlaufes auf 0 (bei 300/400 können es sogar zufällige Werte sein).
Die sind nun mal, wie der Name schon sagt, temporär.

Du musst dir den Zustand von Trig und Out ja über von einem Durchlauf zum Nächsten merken können.
Also "statisch" deklarieren.

Wenn du einen FB hast, kannst du die Bits im STAT-Bereich und damit später im IDB ablegen.
Wenn du einen FC hast, kannst du IN/OUT-Werte nehmen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Könntest auch direkt den .Q -Ausgang der Timer zum Verriegeln nehmen.
Obwohl man sich dass wegen dem geänderten Timer-Verhalten (Aktualisierung bei jeder Abfrage von ET und Q)
unter 1200/1500 abgewöhnen, bzw. gar nicht erst angewöhnen sollte.
http://www.sps-forum.de/simatic/633...-funktionsbaustein-post443410.html#post443410

Wird hier zwar egal sein, wenn man es aber überall macht erlebt man bald irgendwo Überraschungen.
 
@RONIN:

Jo, da wäre eine Variable am .Q dann sinvoller.(nicht Temp)


Wobei hier von TEMP geredet wird.

%M0.0 soll eineTemp-Variable sein?

sollte doch #"M0.0" (Symbol M0.0) heißen

ton.JPG

Tippe mal auf Doppeltzuweisung im MB0
 
Wobei hier von TEMP geredet wird.
%M0.0 soll eineTemp-Variable sein?
sollte doch #"M0.0" (Symbol M0.0) heißen
Damit hättest du schon recht.

Ich bin aber, da der TE von....
Es wird zwar die Variabel #Trig auf 1 gesetzt, aber aus irgendeinem Grund wird diese nicht im nächsten Zyklus "oben" übernommen. Somit bleibt #Trig und #Trig_Out auf Dauer-1.
...geschrieben hat, davon ausgegangen dass dies nicht Merker, so wie im Bild, sondern Temp-Vars sind.

Ich interpretiere die Betrag vom TE so dass das gezeigte Bild aus dem Siemens-Beispiel stammt.
Nur wurden aber die Variablen anders (TEMP) deklariert.

So weit meine Vermutung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na da haben wir ja das Problem.

1.) TEMP-Werte behalten ihren Wert nicht über den SPS-Zyklus.
Bei der 1200er sind die Werte aus Temp zu Beginn jedes Baustein-Durchlaufes auf 0 (bei 300/400 können es sogar zufällige Werte sein).
Die sind nun mal, wie der Name schon sagt, temporär.

Du musst dir den Zustand von Trig und Out ja über von einem Durchlauf zum Nächsten merken können.
Also "statisch" deklarieren.

Wenn du einen FB hast, kannst du die Bits im STAT-Bereich und damit später im IDB ablegen.
Wenn du einen FC hast, kannst du IN/OUT-Werte nehmen.

Was soll ich sagen? Der Fehler war, dass ich Temp-Variablen genutzt habe. So wie RONIN schon schrieb werden die ja nicht über den Zyklus hinaus übernommen.
Mit statischen Variablen klappt das wunderbar.

Vielen Dank an alle die hier geholfen haben!!!
 
Zurück
Oben