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

Ergebnis 1 bis 4 von 4

Thema: Problem mehrfach Aufruf FC

  1. #1
    Registriert seit
    11.09.2008
    Beiträge
    9
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich habe einen FC selbst erstellt ohne Globaldaten zu verwenden um in Bibliothek-Fähig zu halten.
    Hier der FC:

    Code:
    FUNCTION"FC42_Korrektur_Zeit2" : VOID
    TITLE =Ändern einer Zeit im Sekundenraster
    //Über diesen Baustein kann eine Zeit die im Sekundenraster vorliegt im 
    //Sekundenraster nach oben und unten korriegiert werden.
    //Wertebereich 0-999sek - 999sek = 16m39s
    { S7_language := '9(1) Englisch (USA) 21.12.2007 10:50:25' }
    AUTHOR : Ludwig
    VERSION : 1.0
    
    VAR_INPUT
    Enable : BOOL ; //Start des Bausteins
    Grundzeit_sec : INT ; //Grundzeit in Sekunden 
    Zeitkorrektur_sec : INT ; //Zeiteingabe Zeitkorrektur in Sekunden
    END_VAR
    VAR_OUTPUT
    Erg_Zeit_BCD_sec : WORD ; //Umgerechnete Zeit +/- Korrektur in Sekunden mitZeitbasis
    Erg_Zeit_DEC_sec : INT ; //Umgerechnete Zeit +/- Korrektur in Sekunden ohneZeitbasis
    END_VAR
    VAR_TEMP
    tmp_Korrektur : INT ; 
    tmp_Ergebnis : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Kontrolle ob Zeiteinbgabe Positiv oder Negativ
    UN #Enable; 
    SPB end; 
    U( ; 
    L #Grundzeit_sec; 
    L #Zeitkorrektur_sec; 
    <I ; 
    ) ; 
    O( ; 
    L #Grundzeit_sec; 
    L #Zeitkorrektur_sec; 
    OW ; 
    L 0; 
    ==I ; 
    ) ; 
    SPB e001; 
    U( ; 
    L #Zeitkorrektur_sec; 
    L 0; 
    <I ; 
    ) ; 
    SPB c001; 
    NETWORK
    TITLE =Umrechnung der Zeit bei Toleranz Positiv
    L #Grundzeit_sec; 
    L #Zeitkorrektur_sec; 
    +I ; 
    T #tmp_Ergebnis; 
    SPA d001; 
    NETWORK
    TITLE =Umrechnung der Zeit bei Toleranz Negativ
    c001: NOP 0; 
    L #Zeitkorrektur_sec; 
    L -1; 
    *I ; 
    T #tmp_Korrektur; 
    L #Grundzeit_sec; 
    L #tmp_Korrektur; 
    -I ; 
    T #tmp_Ergebnis; 
    NETWORK
    TITLE =Auswertung ob Zeit 0-999sek, wenn OK und Wert nach Ausgabe
    d001: NOP 0; 
    U( ; 
    L #tmp_Ergebnis; 
    L 0; 
    <I ; 
    ) ; 
    O ; 
    U( ; 
    L #tmp_Ergebnis; 
    L 999; 
    >I ; 
    ) ; 
    SPB e001; 
    L #tmp_Ergebnis; 
    T #Erg_Zeit_DEC_sec; 
    L #tmp_Ergebnis; 
    ITB ; 
    L W#16#2000; 
    OW ; 
    T #Erg_Zeit_BCD_sec; 
    SPA end; 
    NETWORK
    TITLE =Rückgabewert auf 0 bei nichtausführung oder Fehler
    e001: NOP 0; 
    SET ; 
    L 0; 
    T #Erg_Zeit_BCD_sec; 
    T #Erg_Zeit_DEC_sec; 
    NETWORK
    TITLE =
    end: NOP 0; 
    END_FUNCTION


    Mein Problem ist nun folgendes.
    Wenn ich diesen FC aus einem anderen FC aus unterschiedlichen Netzwerken mehrfach aufrufe wird er mehrfach durchlaufen obwohl das Enable-Bit nur in einemNetzwerk für einen Zyklus True ist.
    Es werden somit alle Out-Variablen aller aufrufe geändert (Doppelbelegungen liegen nicht vor). Die In-/Outvariablen sowie das Enable-Bit liegen einem DB.Zudem wird wenn das Enable-Bit auf False steht an der OutvariableErg_Zeit_BCD_sec ein Wert von H7861 ausgegeben, wo auch immer dieser Fabelwert herkommt. Darauf kann ich mir keinen Reim machen. Den wenn das Enable-Bit nicht aktiv ist wird ja nur ans Ende des FC‘s gesprungen und die oben genannte Out-Variablen eigentlich gar nicht verändert.

    Ich habe das Problem zwar schon gelöst indem ich aus den Out-Variablen einfach IN-/Out-Variablen gemacht habe. Warum es nun allerdings mit dem Enable-Bitfunktioniert versteh ich nicht wirklich.
    Dies hat doch nicht mit Outvariablen bzw. In-/Outvariablen zu tun.

    Kann mich dazu zufälligerweise jemand aufklären?
    mfg
    Ladwig

    Party on Guzz!!
    Zitieren Zitieren Problem mehrfach Aufruf FC  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren Fc - out  

  3. Folgender Benutzer sagt Danke zu sps-concept für den nützlichen Beitrag:

    Ladwig (29.01.2013)

  4. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Wenn ein FC aufgerufen wird, dann muß er seinen OUT-Parametern auch etwas zuweisen. Davon geht der unsichtbare Aufruf-Code aus, der aus den FC-OUT-Parametern auf die OUT-Aktualparameter kopiert.

    Wenn der FC nichts tun soll, dann besser gar nicht aufrufen --> also bedingt aufrufen oder den Aufruf überspringen.

    In FUP/KOP hat der Baustein noch einen EN-Eingang, der genau für den bedingten Aufruf da ist. Schreibe Deine Aufrufbedingung an diesen EN-Eingang statt Deinem Enable-IN-Parameter. Das ist das für solche Sachen vorgesehene Standard-Vorgehen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Ladwig (29.01.2013)

  6. #4
    Avatar von Ladwig
    Ladwig ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.09.2008
    Beiträge
    9
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die schnellen Antworten, werde es nun mit IN_OUT Variablen machen!!
    mfg
    Ladwig

    Party on Guzz!!

Ähnliche Themen

  1. Antworten: 50
    Letzter Beitrag: 02.06.2008, 06:54
  2. Problem mit FB-Aufruf in SCL
    Von puehri im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 07.08.2007, 10:32
  3. Problem bei mehrfach aufruf von FC
    Von mzva im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 22.02.2007, 07:10
  4. Problem mit FB Aufruf in Codesys
    Von master im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 19.04.2006, 10:06
  5. Antworten: 6
    Letzter Beitrag: 04.02.2006, 20:00

Stichworte

Lesezeichen

Berechtigungen

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