-> 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ß
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ß