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

Ergebnis 1 bis 5 von 5

Thema: TIA Graph Frage zu FC-Aufruf in Aktion

  1. #1
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Ich habe einen FB in Graph erstellt. An dem Schritt S3 ist eine Aktion in der ein FC aufgerufen werden soll.
    In dem FC "Temperaturen" sollen 2 Temperaturen (Tpm1 und Tmp2) verglichen werden. WennTmp1 10K größer als Tmp2 ist und wenn der FC aufgerufen wurde, also wenn der entsprechende Schritt aktiv ist,soll der Ausgang A auf true gehen.

    Der folgende Code funktioniert nicht:

    Code:
    If ((#Tpm1 - #Tpm2) < 10.00) AND "Temperaturen" THEN
    A:=true;
    Else
    A:=False;
    END_IF;
    Wie muss ich das in SCL schreiben?
    In der Schnittstelle des FC, was für Datentyp muss unter Return für den "Temperaturen" gewählt werden?

    Mir würde auch schon helfen, wenn ich wüsste, wie der SCL-Code ist, wenn man abfragt, ob eine Aktion aktiv ist

    MfG
    bastler
    Geändert von bastler (04.05.2015 um 00:12 Uhr)
    Zitieren Zitieren TIA Graph Frage zu FC-Aufruf in Aktion  

  2. #2
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hi

    der FC heißt Temperaturen ist vom Typ VOID und hat einen Ausgang A?
    dann:
    Code:
    #A := (#Tpm1 - #Tpm2) < 10.00;
    
    oder der FC heißt Temperaturen ist vom Typ BOOL und hat keinen dann unnötigen Ausgang A?
    dann:
    Code:
    Temperaturen := (#Tpm1 - #Tpm2) < 10.00;


    Warum wollen die Leute immer so umständlich viel Code schreiben
    Code:
    If irgendwas THEN
        A:=true;
    Else
        A:=False; 
    END_IF;
    ist so sinnlos wie ein Spoiler am 75PS Golf.
    Code:
    a:=irgendwas
    tut es doch auch

    'n schön' Tach auch
    HB
    Geändert von HelleBarde (04.05.2015 um 22:10 Uhr)

  3. #3
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke erstmal. Es sollen ja nicht nur die Temperaturen verglichen werden sondern es soll noch der Aufruf des FC "Temperaturen" mit den Vergleich der beiden Temperaturen verundet werden.
    Ich hab das jetzt so gemacht:
    Der FC ist Bool und es gibt einen Ausgang A.
    Code:
    #Temperaturen:=(#Tpm1 - #Tpm2) < 10.00;
    #A:=(#Tpm1 - #Tpm2) < 10.00 AND #Temperaturen;
    Das funktioniert so, kann man das aber noch vereinfacht schreiben?

  4. #4
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von bastler Beitrag anzeigen
    Der FC ist Bool und es gibt einen Ausgang A.
    Hallo

    ach so, Gürtel und Hosenträger ...

    Du schreibst
    Code:
    #Temperaturen:=(#Tpm1 - #Tpm2) < 10.00;
    #A:=(#Tpm1 - #Tpm2) < 10.00 AND #Temperaturen;
    funktioniert so.

    Machen wir ein bischen Algebra:
    setzen wir die rechte Seite der ersten Zeile an Stelle des Rückgabewertes in die zweite Zeile, dann erhalten wir:
    ( Ich füge mal noch ein paar eigentlich unnötige extra Klammern ein, damit die Präzedenz sichtbar wird )
    Code:
    #A := (((#Tpm1 - #Tpm2) < 10.00 ) AND ((#Tpm1 - #Tpm2) < 10.00 ));
    nun gilt X AND X ist X. Boolsche Algebra, bei Wikipedia nachlesen. Also darf das AND und alles rechts davon entfallen

    Code:
    #A := ((#Tpm1 - #Tpm2) < 10.00 );
    Das steht aber doch schon in Zeile 1. Also gilt #A = #Temperaturen.

    D.h. du darfst dir jetzt aussuchen, ob du zuerst #Temperaturen oder zuerst #A berechnest. Und das dann dem jeweils anderen zuweisen.

    Code:
    #Temperaturen:=(#Tpm1 - #Tpm2) < 10.00;
    #A:=#Temperaturen;
    Wer hat die Anforderung gestellt, dass deine Funktion zwei Mal das Gleiche zurückliefern soll?

    'n schön' Tach auch
    HB

  5. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    bastler (06.05.2015)

  6. #5
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für die ausführliche Erklärung. Die Aufgabenstellung ist aus einer Hausaufgabe.

    MfG
    bastler

Ähnliche Themen

  1. S7-Graph Aktion = Zuweisungen mit Operator
    Von stef12 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.09.2012, 22:54
  2. Zusammengesetzte Variable in Graph Aktion
    Von Spens im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 11.11.2010, 19:29
  3. Graph 7 Transition und Aktion
    Von Fabix im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.10.2008, 13:00
  4. Typumwandlung in GRAPH Aktion
    Von manas im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.01.2008, 15:42
  5. MOVE in Graph Aktion
    Von manas im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.09.2007, 21:26

Lesezeichen

Berechtigungen

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