# Funktionsbaustein Output



## Dick Morley Fan (13 August 2021)

Hey,

kann mir vorstellen, dass die Frage schon häufiger gestellt wurde, nur leider finde ich kein passendes Thema.

Zur Frage:
Ich nutze das Tia Portal V14 und habe mir einen Funktionsbaustein für meine Ausgänge programmiert.
In der Theorie ist der Baustein ziemlich simpel und funktioniert auch.
Meinen Ausgang habe ich als Output vom Datentyp Bool programmiert.
Wenn ich meinen FB nun in ein Fup Netzwerk schiebe, kann ich bei meinem Ausgang nur Variablen einsetzen.
Ich würde aber gerne den Ausgang nutzen um weitere logische Verknüpfungen  zu verwenden.
Bei den Timer Bausteinen von Siemens ist es doch auch möglich.

Hier ist noch ein Bild zum Verständnis. Ich hätte meinen Ausgang gerne wie Eno.



Freue mich über jede Antwort!


----------



## MFreiberger (13 August 2021)

Moin Dick Morley Fan,

Bei den Timerbausteinen bin ich mir nicht ganz sicher, aber der "Q" sollte wie "ENO" funktionieren.

An einen programmieren Ausgang kannst Du nur Variablen einsetzen. Das ist so.
Statt einen Ausgang zu programmieren, könntest Du mit Deinem Verknüpfungsergebnis den ENO beschalten.

Such mal in der TIA-Hilfe nach "eno". Das ist eigentlich alles gut beschrieben.

VG

MFreiberger


----------



## Dick Morley Fan (13 August 2021)

Danke für die hilfreiche Antwort.
`IF (#Bedingung_erfüllt_Auto OR #Bedingung_erfüllt_Hand) AND #Anlage_an  THEN
    ENO := TRUE;
ELSE
    ENO := false;
END_IF;`
Zwei Fragen dazu noch.

Wird der Eno des Öfteren für solche Zwecke verwendet oder ist das zweckentfremdet? 
Die Möglichkeit Eno in Ausgang umzubenennen besteht vermutlich nicht oder?
Gruß
DMF


----------



## PN/DP (13 August 2021)

Im FB am Ende weise den selben Wert, den der Ausgang bekommt, auch dem ENO zu. Und dokumentiere/kommentiere das bei Deiner Bausteinbeschreibung am Anfang des Bausteins.
Siehe TIA Hilfe die Themen "EN-/ENO-Mechanismus in FUP" und "RET: Zurück springen" bzw. "EN-/ENO-Mechanismus in SCL"

"Schöner": beginne eine neue Verknüpfung mit der Ausgangsvariable.

Harald


----------



## MFreiberger (13 August 2021)

Moin Dick Morley Fan,

Du könntest statt einer IF-Abfrage eine einfache Zuweisung verwenden:


```
ENO := (#Bedinung_erfüllt_Auto OR #Bedingung_erfüllt_Hand) AND #Anlage_an;
```

Zu Frage 1: Zweckentfremdet ist es nicht. Ich selber mache es nicht. Häufig gesehen habe ich es auch noch nicht.
Zu Frage 2: Nein

VG

MFreiberger


----------



## Dick Morley Fan (13 August 2021)

PN/DP schrieb:


> Im FB am Ende weise den selben Wert, den der Ausgang bekommt, auch dem ENO zu. Und dokumentiere/kommentiere das bei Deiner Bausteinbeschreibung am Anfang des Bausteins.
> Siehe TIA Hilfe die Themen "EN-/ENO-Mechanismus in FUP" und "RET: Zurück springen" bzw. "EN-/ENO-Mechanismus in SCL"
> 
> "Schöner": beginne eine neue Verknüpfung mit der Ausgangsvariable.
> ...


Werde es genau so machen wie beschrieben.
Eno mit dem Ausgang gleichsetzen und nur in den wenigen 2-3 Fällen den Eno verwenden.
Von einer extra Ausgangsvariable bin ich kein Fan.

Danke euch beiden für die Hilfe!


----------



## PN/DP (13 August 2021)

Dick Morley Fan schrieb:


> Eno mit dem Ausgang gleichsetzen und nur in den wenigen 2-3 Fällen den Eno verwenden.


Beachte: wenn der Baustein gar nicht aufgerufen wird (EN = FALSE), dann wird trotzdem die Verknüpfung am ENO ausgeführt (das VKE beginnt dann am ENO mit FALSE) und eine da angeschlossene Variable bekommt eine Zuweisung. Eine an einem FB-Output angeschlossene Variable bekommt keine Zuweisung und bleibt wie sie ist.



Dick Morley Fan schrieb:


> Von einer extra Ausgangsvariable bin ich kein Fan.


An FB-Outputs muß man keine Variablen anschließen, sie können unbeschaltet bleiben. Man kann trotzdem den Output verknüpfen als Instanzname.Outputname

Harald


----------



## Dick Morley Fan (13 August 2021)

PN/DP schrieb:


> An FB-Outputs muß man keine Variablen anschließen, sie können unbeschaltet bleiben. Man kann trotzdem den Output verknüpfen als Instanzname.Outputname


Daran hab ich gar nicht gedacht. Ist genau was ich gesucht habe 😀
Wenn der Baustein mal vergessen wird könnte man sich unschöne Fehler in das Programm einbauen. 
Besser wenn man es vermeiden kann.


----------

