Step 7 EN0 an einer FC steuern bzw. beeinflussen

Chyll-Out

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

ich befasse mich derzeit mit einem Siemens S7 Projekt (bin eher der Beckhoff Typ) und will eine kleine Funktion schreiben, die mir ausgibt, ob eine Achse sich in einer bestimmten Position befindet. Dazu verwende ich die aktuelle Position der Achse und eine gespeicherte Position in einem Array, welche ich dann mit etwas Tolleranz vergleiche. Habe ich die Möglichkeit den EN0 eines FCs zu nutzen und ein ähnliches Verhalten wie beim z.B. CMP==I im FUP zu bekommen? D.h. keinen separaten Ausgang in der Funktion zu deklarieren.

Vielen Dank im Voraus!

Gruß,
Chyll-Out
 
Hi, verstehe zwar nicht warum du nicht einfach einen Ausgang in deinem FC erstellst aber du kannst den ENO mit dem AWL Befehl SAVE beeinflussen. Damit wird das VKE ins BIE gespeichert welches über den ENO ausgegeben wird. Geht sicher auch in FUP.
 
@TP-Inc
Das Problem ist, dass an einen Ausgang keine weitere Funktion hängen kann. Über den EN0 hätte ich so die Möglichkeit, mehrere Aufrufe der Funktion aneinander zu packen und bräuchte keine weiteren Variablen.
 
verstehe zwar nicht warum du nicht einfach einen Ausgang in deinem FC erstellst
An einem Bool-Ausgang kann man in FUP/KOP keine Linie weiterziehen, d.h. das VKE weiterführen. Das geht nur am ENO.

Im FC mit "---(SAVE)" den RET_VAL an ENO ausgeben, dann kann das Ergebnis in FUP/KOP direkt vom ENO weiterverschaltet werden:
Code:
   #IN1      #IN2    #RET_VAL
---| |-------| |-------(#)-------(SAVE)

Allerdings hat der Baustein dann immer noch einen (in FUP/KOP eigentlich unnötigen) Ausgang RET_VAL, der mit einer (Dummy-)Variable beschaltet werden muß. Dafür ist er aber in FUP/KOP/AWL/SCL aufrufbar inklusive Ergebnisrückgabe.
Code:
     +------------+
     |   "MyFC"   |       M1.3      M1.4
-----|EN       ENO|-------| |-------( )
     |            |
M1.1-|IN1         |
     |     RET_VAL|-#dummyBit
M1.2-|IN2         |
     +------------+


Man kann auch den Ausgang/Return RET_VAL weglassen und das Ergebnis nur über ENO zurückgeben, dann kann man aber in AWL und SCL den Rückgabewert nicht mehr direkt einer Variale zuweisen sondern muß nach dem Bausteinaufruf das BIE abfragen ("U BIE"). Der Ausgang ENO kann nicht umbenannt werden.
Code:
   #IN1      #IN2
---| |-------| |-------(SAVE)
Code:
     +------------+
     |   "MyFC"   |       M1.3      M1.4
-----|EN       ENO|-------| |-------( )
     |            |
M1.1-|IN1         |
     |            |
M1.2-|IN2         |
     +------------+

PS: Verknüpfungen links/vor dem FC-Aufruf nicht am EN machen, denn dann wird der FC gar nicht aufgerufen und die Weiter-Verknüpfung hinter dem FC verknüpft nicht den ENO des nicht aufgerufenen FC sondern den Zustand am EN des FC - also FALSE.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem ist, dass an einen Ausgang keine weitere Funktion hängen kann. Über den EN0 hätte ich so die Möglichkeit, mehrere Aufrufe der Funktion aneinander zu packen und bräuchte keine weiteren Variablen.
In FUP/KOP kann man mehrere FC-Aufrufe platzieren, indem man sie untereinander malt und nicht hintereinander - dann braucht man kein ENO

Harald
 
Zurück
Oben