O
omignobi
Guest
-> Hier kostenlos registrieren
Hallo ich arbeite mit der WinCC Version 5.1 .
Ich habe in meinem WinCC Programm als C Code die folgenden Felder als lokale Variablen angelegt:
WORD feld1[15][531]
WORD feld2[126]
WORD feld3[126]
WORD feld4[126]
WORD feld5[126]
WORD feld6[126]
Dynamisch werden nun Variablen von einem DB aus einer S7 400er CPU gelesen und in den oben angelegten Feldern gespeichert. Dazu habe ich die einzelnen Felder in Funktionen z. B. als extern feld1[15][531] aufgerufen, um sie dann mit Variablen beschreiben zu können. Über printf habe ich mir dann den Inhalt der Felder angezeigt und überprüft. Der Inhalt war auch der richtige. Mein Problem tritt auf wenn ich die Runtime schließe und danach wieder starte. Dann stürzt das Programm ab. Ich denke das könnte an einem Speicherproblem liegen da ich lokale Felder verwendet habe. Muss ich eigentlich für diese Felder irgendeine "malloc" Funktion aufrufen um Speicher freizugeben. Da habe ich leidr keine Ahnung von. Oder gibt es noch eine andere Lösung. Freue mich über jede Antwort.
Ich habe in meinem WinCC Programm als C Code die folgenden Felder als lokale Variablen angelegt:
WORD feld1[15][531]
WORD feld2[126]
WORD feld3[126]
WORD feld4[126]
WORD feld5[126]
WORD feld6[126]
Dynamisch werden nun Variablen von einem DB aus einer S7 400er CPU gelesen und in den oben angelegten Feldern gespeichert. Dazu habe ich die einzelnen Felder in Funktionen z. B. als extern feld1[15][531] aufgerufen, um sie dann mit Variablen beschreiben zu können. Über printf habe ich mir dann den Inhalt der Felder angezeigt und überprüft. Der Inhalt war auch der richtige. Mein Problem tritt auf wenn ich die Runtime schließe und danach wieder starte. Dann stürzt das Programm ab. Ich denke das könnte an einem Speicherproblem liegen da ich lokale Felder verwendet habe. Muss ich eigentlich für diese Felder irgendeine "malloc" Funktion aufrufen um Speicher freizugeben. Da habe ich leidr keine Ahnung von. Oder gibt es noch eine andere Lösung. Freue mich über jede Antwort.