Step 7 DB Ausgänge kein Oder möglich ?

Hallo Hubert,
programmierst du in FUP oder ? Dann müsstest du noch ein "oder" Baustein einfügen. An die Band Ausgänge z.B. Temp Variablen dran (Achtung Zuweisung muss vor dem Oder geschehen) ... tmp_Band1...tmp_Band2... Diese dann an den Oder Baustein hängen.

Mit freundlichen Grüßen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja in FUP. Ich hab im Funktionsbaustein eine Temp Variable für den Ausgang verwendet.
Selbst wenn ich für den DB noch eine Temp Variable definiere und an den Ausgang "hänge" kann ich kein Oder Gatter rannhängen.
 
Die Temp Variable nimmt den Zustand des Ausgangs an und die beiden kannst du dann verodern. Siehe Beispielbild.
Oder verstehe ich hier irgendwas falsch ??...
Band.JPG

Wie hier gezeigt ist es bei Temp Variablen wichtig das die Zuweisung vor der Abfrage passiert.
Bei Step 7 Classic müsstest du noch ein Netzwerk unterhalb einfügen für das "oder"glied.
Gruß
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Hast Du mal probiert, den DBs vor dem ver-odern Instanznahmen zu vergeben?
Hast Du das ganze mal "rückwärts" versucht? Also: Leeres Netzwerk -> Oder-Baustein einfügen -> Deine DBs an die Eingänge des Oders hängen...

Bei CoDeSys gibt es noch so Nickeligkeiten wie z.B. das sich der Oder-Baustein nur anhängen läßt, wenn Du den kleinen Strich anklickst, nicht aber die Punkte. Da hab ich beim ersten mal recht lange nach gesucht...
 
FUP/KOP: VKE-Verknüpfungs-Linien kann man nur vom ENO-Ausgang ziehen - nur der liefert das VKE. Die anderen Baustein-Ausgänge müssen auf Variablen zwischengespeichert werden (bei FC), danach können die Variablen verknüpft werden. Bei FB hat man die Wahl, da müssen die Ausgänge nicht auf Zwischenvariablen gespeichert werden, sondern an den nächsten Box/Baustein-Eingängen können die Instanzvariablen angeschaltet werden.

FB/FC: Weitergabe über Zwischenvariable (FB-Ausgangswerte können direkt beobachtet werden)
Code:
[COLOR="#0000FF"]Netzwerk 1:[/COLOR]

 #instanz_1
+----------+
|   FB1    |
|       ...|
|      band|-#tempBit_1
|          |
+----------+

[COLOR="#0000FF"]Netzwerk 2:[/COLOR]

 #instanz_2
+----------+
|   FB1    |
|       ...|
|      band|-#tempBit_2
|          |
+----------+

[COLOR="#0000FF"]Netzwerk 3:[/COLOR]
           +-----+
#tempBit_1-|     |
           | >=1 |---
#tempBit_2-|     |
           +-----+
FB: Weitergabe ohne Zwischenvariable (FB-Ausgangswerte können so nicht direkt beobachtet werden, nur bei der späteren Verwendung)
Code:
[COLOR="#0000FF"]Netzwerk 1:[/COLOR]

 #instanz_1
+----------+
|   FB1    |
|       ...|
|      band|-
|          |
+----------+

[COLOR="#0000FF"]Netzwerk 2:[/COLOR]

 #instanz_2
+----------+
|   FB1    |
|       ...|
|      band|-
|          |
+----------+

[COLOR="#0000FF"]Netzwerk 3:[/COLOR]
                +-----+
#instanz_1.band-|     |
                | >=1 |---
#instanz_2.band-|     |
                +-----+

Vielen Dank für die Tips. Das Verordern über die Temp Namen hat funktioniert, das sollte reichen !
:s12:
Vorsicht!! Bei mehreren Baustein-Aufrufen im selben Netzwerk mit Weitergabe von Werten von einem Baustein-Ausgang zu einem Eingang eines folgenden Bausteins - das funktioniert nicht wie beabsichtigt! Weil die Werte der Aktualparameter des zweiten Bausteins schon am Netzwerk-Anfang zwischengespeichert werden und nach Ausführung des ersten Bausteins dem zweiten Baustein zugewiesen werden, kommen die Werte erst im nächsten Zyklus beim zweiten Baustein an. (das sieht man nicht beim normalen Beobachten) Übergabe über TEMP-Variablen funktioniert so überhaupt nicht! (das kann man beim Beobachten (meistens) sehen) Schalte mal die Ansicht auf AWL) Siehe Bild
Mache besser jeden Baustein-Aufruf in ein eigenes Netzwerk!

Bool-In_zweiter_Call.gif


PS: Teilweise Entwarnung! Weitergabe an AND/OR-Boxen im selben Netzwerk funktioniert doch über Temp-Variablen. Das geschilderte Verhalten bezieht sich nur auf Weitergabe an Baustein-Aufrufe.

Harald
 
Zuletzt bearbeitet:
Ich überlege gerade ob das mit Temp-Variablen auch dann funktioniert wenn in dem FB der Ausgang nicht über '=' zugewiesen ist sondern über 'S' bzw. 'R' ?
Ja, funktioniert auch. Weil im FB wird mit S/R die OUTPUT-Instanzvariable gesetzt/rückgesetzt, und nicht die außen angeschaltete TEMP-Variable. Wenn das ein INOUT-Parameter wäre dann würde es mit TEMP-Variable nicht funktionieren.

Harald
 
Zurück
Oben