GhostBlade
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hi
Ich arbeite derzeit mit einer s7-300 314-c2 dp und simatic v5.3 + sp2.
Grundlegend will ich folgende Funktion realisieren: Wenn der Wert an einem Analogeingang von einem vorgebenen Sollwert abweicht, soll bei einem Analogausgang der wert um einen 2. vorgegebenen Wert erhöht/verringert werden. Die Überprüfung findet alle 15 sekunden statt (mittels Timer).
Nun bin ich wie folgt vorgegangen. Nach der Überprüfung (in FC1) wird, je nach dem ob eine Abweichung vorliegt, mittels des Befehls CC der FC 2 aufgerufen. In FC2 wird der akutelle Wert des Analogausgangs mit dem 2. vorgegeben Wert addiert und an den Ausgang übertragen. Nun sollte doch wenn man als Beispiel folgende Werte (Analogausgang= 1 ; zu addierender Wert = 1) annimmt folgendes passieren. Alle 15 Sekunden müsste sich der Wert am Ausgang um 1 erhöhen.
Analogeingang einlesen:
Analogeingang setzen:
Leider musste ich jedoch feststellen, das der Sollwert am Ausgang nicht um jeweils 1 alle 15 Sekunden erhäht wird. Anscheinend wird FC2 immer mehrfach durch geführt, da sich der Wert immer um ca. 500 erhöht hat.
Da dies so anscheinend nicht möglich war, habe ich versucht die FC2 abzubrechen wenn M 1.0 nicht gesetzt ist. Die Funktion wurde jedoch immer noch ca 500 mal ausgeführt.
Gibt es eine Möglichkeit das ein FC nur einmal ausgeführt wird oder muss ich die Sache anders lösen?
gruß
GhostBlade
Ich arbeite derzeit mit einer s7-300 314-c2 dp und simatic v5.3 + sp2.
Grundlegend will ich folgende Funktion realisieren: Wenn der Wert an einem Analogeingang von einem vorgebenen Sollwert abweicht, soll bei einem Analogausgang der wert um einen 2. vorgegebenen Wert erhöht/verringert werden. Die Überprüfung findet alle 15 sekunden statt (mittels Timer).
Nun bin ich wie folgt vorgegangen. Nach der Überprüfung (in FC1) wird, je nach dem ob eine Abweichung vorliegt, mittels des Befehls CC der FC 2 aufgerufen. In FC2 wird der akutelle Wert des Analogausgangs mit dem 2. vorgegeben Wert addiert und an den Ausgang übertragen. Nun sollte doch wenn man als Beispiel folgende Werte (Analogausgang= 1 ; zu addierender Wert = 1) annimmt folgendes passieren. Alle 15 Sekunden müsste sich der Wert am Ausgang um 1 erhöhen.
Analogeingang einlesen:
Code:
L DB1.DBD 6
ITD
DTR
L 2.7648e+4
/R
L 1.0e+2
*R
T DB3.DBD 28
Code:
L DB3.DBD 8
L 1.0e+2
/R
L 2.7648e+4
*R
RND
T PAW752
Da dies so anscheinend nicht möglich war, habe ich versucht die FC2 abzubrechen wenn M 1.0 nicht gesetzt ist. Die Funktion wurde jedoch immer noch ca 500 mal ausgeführt.
Gibt es eine Möglichkeit das ein FC nur einmal ausgeführt wird oder muss ich die Sache anders lösen?
gruß
GhostBlade