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

Ergebnis 1 bis 2 von 2

Thema: "Busy" in Baustein einabuen

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe mal wieder eine Frage und zwar habe ich in MXPRo/ CoDeSys einen Funktions_Block programmiert. Leider benötigt, dieser mehrere Zyklen bis er komplett abgearbeitet ist. Nun möchte ich einen BOOL Wert Busy integrieren, der mir, sobald der FB aufgerufen wurde TRUE wird und erst wenn er alle Ergebnisse geliefert hat wieder auf FALSE geht.

    So kann ich später bei der fallenden Flanke von Busy mein Hauptprogramm fortsetzen.

    Anbei mal meinen Code:

    fbTrigger(CLK:=bTrigger, Q=>bPosFlank ); (*positive Flankenerkennung *)
    IF bPosFlank=TRUE THEN
    sPath:= CONCAT(sPath,sFileName); (*Zusammenfügen Pfad und
    Dateiname*)
    dwAdress:=SysFileOpen(sPath,'r'); (*Durchsuchen des Pfades, ob
    Datei vorhanden ist (Datei
    wird geöffnet), falls nicht
    Rückgabewert=0 *)
    IF dwAdress= 0 THEN
    bFileExists:=FALSE;
    bFileNotExists:=TRUE;
    speicher:=SysFileClose(dwAdress); (*Datei wird wieder geschlossen *)
    ELSE
    bFileExists:=TRUE;
    bFileNotExists:=FALSE;
    speicher:=SysFileClose(dwAdress); (*Datei wird wieder geschlossen *)
    END_IF
    END_IF


    Danke schon mal für eure Mithilfe!

    Gruß
    Zitieren Zitieren "Busy" in Baustein einabuen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von DjDonJuan Beitrag anzeigen
    Hallo zusammen,

    ich habe mal wieder eine Frage und zwar habe ich in MXPRo/ CoDeSys einen Funktions_Block programmiert. Leider benötigt, dieser mehrere Zyklen bis er komplett abgearbeitet ist. Nun möchte ich einen BOOL Wert Busy integrieren, der mir, sobald der FB aufgerufen wurde TRUE wird und erst wenn er alle Ergebnisse geliefert hat wieder auf FALSE geht.

    So kann ich später bei der fallenden Flanke von Busy mein Hauptprogramm fortsetzen.

    Anbei mal meinen Code:

    fbTrigger(CLK:=bTrigger, Q=>bPosFlank ); (*positive Flankenerkennung *)
    IF bPosFlank=TRUE THEN
    sPath:= CONCAT(sPath,sFileName); (*Zusammenfügen Pfad und
    Dateiname*)
    dwAdress:=SysFileOpen(sPath,'r'); (*Durchsuchen des Pfades, ob
    Datei vorhanden ist (Datei
    wird geöffnet), falls nicht
    Rückgabewert=0 *)
    IF dwAdress= 0 THEN
    bFileExists:=FALSE;
    bFileNotExists:=TRUE;
    speicher:=SysFileClose(dwAdress); (*Datei wird wieder geschlossen *)
    ELSE
    bFileExists:=TRUE;
    bFileNotExists:=FALSE;
    speicher:=SysFileClose(dwAdress); (*Datei wird wieder geschlossen *)
    END_IF
    END_IF


    Danke schon mal für eure Mithilfe!

    Gruß
    Ich kann nicht erkennen, dass der Codes mehrere Zyklen benötigt.
    Auf jeden Fall brauchst du eine interne statische Variable im FB, "fbBusy", die dir den Zustand der Bearbeitung speichert und eine Out "busy", welche diesen Zustand dann nach außen meldet. Nach der Abfrage der Flanke "IF bPosFlank=TRUE THEN" setzt du fbBusy, Im Moment würde ich nach dem 1. END_IF fbBusy wieder zurücksetzen, aber das bringt hier nichts, wenn alles in einem Durchlauf erledigt wird. fbBusy würde nach außen nie True werden.
    Wenn es wirklich so ist, dass mehrere Zyklen vergehen, bis die Aktion erledigt ist, muß es ja irgendwo eine Fertigmeldung geben, diese sollte dann fbBusy zurücksetzen. Ich kann nur sehen, dass dwAdress sofort 0 oder <> 0 abfragt und das Ergebnis setzt.

    PS: Die Flanke am Anfang bedingt ja auch, dass der Code nur ein einziges Mal durchlaufen wird und zwar genau einen Zyklus lang.
    Geändert von Ralle (19.10.2011 um 08:44 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 23.02.2010, 10:52
  2. Profibus "INIT" Baustein??
    Von E_Flynn im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 23.03.2009, 14:55
  3. SCL Fehlermeldung: "Baustein nicht korrekt"
    Von dinner4one im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.06.2008, 13:23
  4. Step 5 Operanden suchen im "Status Baustein"
    Von E-Marco im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 04.02.2005, 09:22
  5. S7 "lokale" Variablendeklaration in FB/FC Baustein
    Von halorenzen im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.10.2003, 20:50

Stichworte

Lesezeichen

Berechtigungen

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