Bringt Dich bei Deinem eigentlichen Problem leider nicht weiter, aber mir sind bei der Durchsicht Deines Programms zwei Dinge aufgefallen.
Zum einen sollten FBs die über mehrere Zyklen laufen, z.B. Timer oder, wie bei Dir, Datei-FBs nicht innerhalb einer CASE Anweisung oder einer IF-Anweisung...