FB_Exit() wird soweit ich weiß nur einmal ausgeführt (nicht mehrere Zyklen). Einen Ablauf beenden der mehrere Zyklen dauert wird so nicht funktionieren. Falls du das nicht brauchst, wäre das aber die richtige Funktion. Das Problem beim Stop ist, dass wenn du eine Exception hast oder einen Nullpointer-Zugriff, die SPS immer über Stop in den Exception Zustand (gelbes Symbol) geht und da kann nicht noch ein Zyklus ausgeführt werden.
Ich werde das mal ausprobieren, danke. Allerdings werde ich wohl schon mehr als einen Zyklus brauchen. Ich möchte einen Port schließen und dem externen Teilnehmer mitteilen, dass ich die Verbindung unterbreche. Über TCP sind das mehrere Nachrichten, ich warte ja noch auf sein ACK und muss ihm dann auch noch mal antworten.
Ich dachte es gäbe vllt eine Funktion, mit der ich ein kontrolliertes Abschalten durchführen könnte. (Ähnlich wie bei Betriebssystemen, da werden ja auch erst offene Verbindungen getrennt und dann Heruntergefahren)
Welche Version vom TwinCAT3 verwendest Du, welches VS, 2010, 2013, 2018, welches Betriebssystem? So ein Verhalten kann ich nicht nachvollziehen. Welche PLC Hardware verwendest Du?
TwinCat 3.1.4022.28
Visual Studio 2017
Windows 10
Es läuft alles über den Rechner
Ich nahm an, wenn ich mit einem Port interagiere wird dessen Buffer vllt in mein VS TC Projekt geladen. Wenn ich jetzt den Port nicht ordnungsgemäß schließe bleibt der Buffer gespeichert und VS TC erwartet, dass dieser Buffer leer ist.
Das ist aber auch nur eine Vermutung. Ich habe auch schon Fehlermeldungen bekommen als der Port vorher normal geschlossen wurde.
Die Fehler treten aber erst beim öffnen der TC Dateien auf, nicht wenn ich normal VS öffne.
Dazu sind es nicht immer die gleichen Fehler, die auftreten und sie kommen nicht immer vor ( Ich kann leider erst ab Mittwoch wieder mit dem externen Teilnehmer sprechen sonst würde ich mal Bilder von den Fehlermeldungen machen).