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

Ergebnis 1 bis 5 von 5

Thema: Arrays in TwinCAT PLC

  1. #1
    Registriert seit
    20.04.2012
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich hätte gerne einen Array variabler Länge in meinem Programm so in der Art feld: ARRAY [1..x] OF INT Ich habe x := 20 : INT. Beim Übersetzen meckert er aber rum, dass "Obergrenze x nicht bekannt" ist.
    Meine Frage: Kann ich überhaupt mit Arrays variabler Länge arbeiten? In der Doku steht immer nur ein fester Wert.

    Danke
    Zitieren Zitieren Arrays in TwinCAT PLC  

  2. #2
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Wenn Du x als Konstante deklarierst, geht es. Aber zur Laufzeit kannst Du die Arraygrösse nicht ändern.

  3. #3
    Softi11 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.04.2012
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das hab ich befürchtet. Aber danke für die Antwort.

  4. #4
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    TwinCAT 3 kann das doch soweit ich weiss!
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  5. #5
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Softi11 Beitrag anzeigen
    Hallo Leute,

    ich hätte gerne einen Array variabler Länge in meinem Programm so in der Art feld: ARRAY [1..x] OF INT Ich habe x := 20 : INT. Beim Übersetzen meckert er aber rum, dass "Obergrenze x nicht bekannt" ist.
    Meine Frage: Kann ich überhaupt mit Arrays variabler Länge arbeiten? In der Doku steht immer nur ein fester Wert.

    Danke
    Vom Prinzip her will man verhindern (Codesys 2.x), dass die Situation zur Runtime auftritt, dass nicht genügend Speicher frei ist, um eine Aktion durchzuführen. Deshalb gibt es keine Funktionalität, die on the Fly Memory Anforderungen (malloc() in anderen Sprachen) stellen kann. Der Compiler geht von festen Speicherbelegungen aus, der Lader verweigert spätestens, wenn die Hardware den Speicherausbau nicht besitzt.

    Meine Abhilfe in so einem Fall (es ist Verschwendung) die Arrays so gross machen, dass alle vorstellbaren Anforderungen erfüllt werden können.

    Mit moderneren Prozessoren und Codesys 3.x steht virtuelles Memory zur Verfügung (wie auf dem PC, wo einfach die Harddisk als Memory Auslagerungs Ersatz verwendet wird). Diese Umlagerung kostet aber Zeit, sprich von einem Zyklus zum nächsten können gewaltige Änderungen in der Zykluszeit auftreten!
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Malloc  

Ähnliche Themen

  1. Variablenkonflikt im TwinCat PLC ?!
    Von Hans_der_Kann`s im Forum CODESYS und IEC61131
    Antworten: 15
    Letzter Beitrag: 30.11.2011, 08:09
  2. C++ TwinCat PLC
    Von hellrazz im Forum HMI
    Antworten: 2
    Letzter Beitrag: 03.05.2010, 11:18
  3. TwinCat PLC Control 2.11.0
    Von jusi im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 14.01.2010, 21:30
  4. Twincat PLC Anfängerfrage
    Von nils09 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 06.08.2008, 23:20
  5. TwinCat PLC
    Von Anonymous im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 20.07.2005, 12:44

Lesezeichen

Berechtigungen

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