das problem ist ja, ich komme nicht mehr dazu irgendetwas anderes zu übertragen. Ich hatte vorher nach gehe zu da snetzwerk einfach gelöscht neu übertragen fertig, gings. dann hatte ich es nocheinmal probiert, aber jetzt geht nichts mehr
???
irgendwas geht bestimmt noch
Deine CPU 315-2 DP hat den SFB41 nicht. Gehe mal in dem Baugruppenzustand auf den Reiter "Leistungsdaten", da werden die vorhandenen SFB aufgelistet.
Um Betriebssystem-ROM-Speicher in der CPU zu sparen, enthalten die CPUs nicht alle möglichen SFB und SFC, viele nicht vorhandene Funktionen kann man aber bei Bedarf in Form von FB oder FC aus Bibliotheken nachladen. Wie vollmi schon schrieb, Du mußt den FB41 aus der Bibliothek "Standard Library / PID Control Blocks" ins Projekt einfügen und in die CPU laden. Und natürlich den FB41 aufrufen und nicht den SFB41.
Also, der Baustein ist zur verfügung, ich hatte ihn auch mit AWL aufgerufen.
Unabhängig von der CPU kann man offline im Projekt einen Aufruf von real nicht vorhandenen SFB programmieren...
(der Simatic Manager packt dann einfach die SFB-Deklaration als Baustein aus einer Bibliothek in den Bausteine-Ordner des Projektes)
... und in die CPU laden. Da kommt es dann zu dem Fehler "SFB nicht vorhanden".
bevor ich die diagnose gemacht habe, habe ich ja versucht sie Urzulöschen, und einfach mal einen leeren ob1 hochgeladen
Urlöschen löscht das Programm nur aus dem Arbeitsspeicher und läd es danach gleich wieder aus dem Ladespeicher (von der MMC) in den Arbeitsspeicher. Durch Urlöschen bekommt man also das Programm nicht gelöscht (nur spezielle DB welche nur im Arbeitsspeicher liegen), es sei denn man entfernt die MMC aus der CPU. Das hilft aber nicht wirklich, weil man die CPU nicht ohne MMC betreiben kann, und wenn man die MMC wieder in die CPU steckt dann muß man urlöschen, wodurch das Programm von der MMC in den Arbeitsspeicher der CPU geladen wird - das Programm ist wieder da.
Einen leeren OB1 laden hilft nicht, wenn der Fehler im OB35 programmiert ist.
Und jetzt kam dann dieses fenster, [...]
Nachtrag. jetzt hatte ich das fenster mit ok gedrückt dann kam noch dieses Bild
Da hast Du den OB35 online geöffnet - vermutlich über "Erreichbare Teilnehmer" (oder hattest den OB35 schon im Projekt gelöscht?) - deshalb kennt der Editor nicht die Namen der Lokalvariablen, und weil es online den SFB41 nicht gibt kann der Editor den Aufruf des SFB41 auch nicht symbolisch anzeigen und man sieht dann diese "kaputte" Darstellung.
gibt es eigentlich hierzu eine Alternative, das das Programm in der CPU löscht, denn es ist schon wieder passiert. Nur dieses mal lässt sich der FB nicht einfach rauslöschen
Ja. Du mußt in der CPU den Baustein löschen, der den Aufruf des nicht vorhandenen SFB enthält - also den OB35. Oder den Aufruf aus dem OB35 entfernen.
SFB ("System"-FB) und SFC ("System"-FC) kann man nicht in die CPU laden und auch nicht in der CPU löschen - die sind fest in der Firmware ("System") der CPU drinne.
Man kann nur die SFB und SFC im offline-Projekt löschen. Beim nächsten Referenzdaten erzeugen sind die im Programm aufgerufenen SFB und SFC aber wieder da (im Projekt).
Harald