Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: FC für Verwendung in KOP/FUP optimieren

  1. #1
    Registriert seit
    13.07.2016
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Idee


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe einen FC mit einem Rückgabewert vom Typ BOOL.
    Dieser soll nun in KOP/FUP auf einer 300er SPS (Step 7 V5.5) verwendet werden.
    Scheinbar kann ich aber an Ausgängen nur den ENO verschalten, nicht RET_VAL.

    In SCL geht das, da kann ich z.B. schreiben
    A := myFC(23) AND M4.5;

    Die Anforderung hier ist aber, dass man es auch in KOP/FUP gut verwenden können soll.

    Als Beispiel mal ein Aufruf. Da ich RET_VAL nicht direkt mit dem EN von MOVE verbinden kann, brauche ich die Zwischenvariable.
    Zudem muss man noch - um alles in Netzwerk zu bekommen - den Trick mit der Dummy-Und-Verknüpfung einfügen...

    Geht das prinzipiell nicht, oder gibt's da einen Trick?

    Schon mal vielen Dank im Voraus.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von fraschfn (13.07.2016 um 15:54 Uhr)
    Zitieren Zitieren FC für Verwendung in KOP/FUP optimieren  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.251
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ich würde prinzipiell nicht so programmieren, dieses bedingte bearbeiten von Bausteinen (FC1) ist ein Graus, zumindest m.M. nach.
    Die Frage ist eher warum Du den RET_VAL nicht mit dem EN verbinden kannst.
    Wo ist eine Dummy-Und-Verknüpfung?

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    10.759
    Danke
    883
    Erhielt 3.158 Danke für 2.559 Beiträge

    Standard

    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
    Geändert von PN/DP (13.07.2016 um 16:38 Uhr)
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    fraschfn (13.07.2016)

  5. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.624
    Danke
    431
    Erhielt 895 Danke für 725 Beiträge

    Standard

    ...
    [Gelöscht, da Haralds Beitrag übersehen, in dem das Gleiche schon steht]


    Beim FC noch das Schlüsselwort VOID verwenden, damit kein RetVal mehr erzeugt wird.
    Geändert von hucki (13.07.2016 um 16:54 Uhr)

  6. #5
    fraschfn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.07.2016
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Bei der bedingten Bearbeitung gebe ich Dir recht.
    Das ist noch ein Fehler, eigentlich sollte der Baustein noch einen "Enable" Eingang haben und EN immer gesetzt sein.

    Im Bild unten habe ich das korrigiert.

    Ich habe gerade hier: In SCL den BIE (ENO) manipulieren herausgefunden, dass ich mein Ergebnis auf ENO legen kann, das wäre zwar etwas zweckentfremdet (da ENO ja eigentlich für Fehler ist) aber sollte funktionieren.

    Auch das ist im Bild schon enthalten.

    Die das Dummy-Und (jetzt vielmehr ein Dummy-Oder) ist ganz rechts. Es wird nur verodert, damit man mehrere Pfade in einem Netzwerk haben kann.

    Mir ist auch aufgefallen, dass wenn bei einem Baustein ENO schon verschalten ist, man EN (oder andere Eingänge) nicht mehr verschalten kann.

    Dass man nun auch noch die Variable "inStep" ersetzt wird wohl nicht gehen...
    Ebensowenig, dass ich statt ENO RET_VAL benutzen kann.
    KOP Ansicht geht auch nicht, nur FUP...

    Man muss halt auch Kompromisse eingehen können


    FC KOP FUP 2.jpg
    Zitieren Zitieren Neuer Stand  

  7. #6
    fraschfn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.07.2016
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die ausführliche Antwort Harald.

    Das mit dem ENO löst einen Teil des Problems. Das mit RET_VAL könnte ich so lösen, dass ich zwei Varianten des FCs erstelle: einen mit RET_VAL, einen ohne - das wäre akzeptabel.

    Ich habe noch einmal ein Bild angehängt.

    Im Prinzip soll das obere Netzwerk das gleiche machen, wie das untere (und daher auch ähnlich aussehen).

    Das Problem ist, dass die FCs in jedem Fall aufgerufen werden müssen und der rechte wird ja jetzt nur aufgerufen, wenn der links ENO = 1 zurückgibt.

    Hast Du da noch eine Idee?
    Angehängte Grafiken Angehängte Grafiken

  8. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.251
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Das Problem ist, dass die FCs in jedem Fall aufgerufen werden müssen und der rechte wird ja jetzt nur aufgerufen, wenn der links ENO = 1 zurückgibt.
    Ich habe Dir schon oben geschrieben, dass das eine ungünstige Art zu programmieren ist.
    Warum machst Du beim (Bsp FC1) nicht einen separaten Eingang WFIH (Waitung for Input High) und schnürlst das VKE Ergebnis darauf (also zB das CMP==I), dann wird der Baustein aufgerufen und kannst im Baustein das Eingangsbit ja auch entsprechend verwenden.

  9. #8
    fraschfn ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.07.2016
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Borromeus,

    Ich will ja auch gar nicht den EN beschalten.

    Wie mache ich das aber in KOP? Ich vermute, der beschaltet da immer selbst EN und das kann ich auch nicht änder, oder?
    Angehängte Grafiken Angehängte Grafiken

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 13.12.2011, 09:29
  2. Ich suche Quellcode in C++ für einen KOP oder FUP Editor
    Von Anonymous im Forum Suche - Biete
    Antworten: 1
    Letzter Beitrag: 08.03.2004, 00:15

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •