Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Arrays als lokale Variable verwenden

  1. #1
    omignobi Gast

    Standard


    Zuviel Werbung?
    -> 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.
    Zitieren Zitieren Arrays als lokale Variable verwenden  

  2. #2
    Anonymous Gast

    Standard

    Das Porblem liegt bei der Deklaration.

    WORD Var[3] beinhaltet:

    Var[0]
    Var[1]
    Var[2]

    (Der Index startet bei 0)

    In deinem Fall musst du 532 Felder deklarieren, sonst schreibst du irgendwo in den Speicher.

    WORD feld1[15][532]
    Zitieren Zitieren ✔ hilfreichste Antwort! RE:Arrays als lokale Variable verwenden  

  3. #3
    omignobi Gast

    Standard

    Habe genau den Fehler gemacht. Habe die Felder um eine Nummer zu klein gemacht. Jetzt läuft das Programm ohne jeden Absturz
    Danke Nochmal
    Zitieren Zitieren ✔ hilfreichste Antwort! Kleiner Fehler Große Wirkung  

  4. #4
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Noch eine kleine Anmerkung:

    Natürlich müssen beide Dimensionen gross genug deklariert werden.
    WORD feld1[16][532]
    Zitieren Zitieren ✔ hilfreichste Antwort! RE:Arrays als lokale Variable verwenden  

Ähnliche Themen

  1. ADS-Zugriff auf lokale Variable im FB?
    Von ahds im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 23.03.2011, 09:18
  2. Lokale Variable hat 2 Zustände
    Von peraho im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 08.04.2010, 18:05
  3. SPS Variable im Script verwenden
    Von Hofi im Forum HMI
    Antworten: 5
    Letzter Beitrag: 16.01.2009, 09:55
  4. S5: FB mehrfach verwenden; "lokale Variablen"
    Von burner im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 15.01.2006, 19:38
  5. globale-lokale variable
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.06.2005, 12:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •