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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Array in FB mit Größe als Parameter

  1. #11
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    OK, das mit dem 4 erhöhen, ist eine Fehler

    Aber, das jemand deinen Baustein falsch ansteuert kann man nicht verhindern.
    Dann liegt der Fehler beim Programmierer, alles kann man nicht berücksichtigen.

    Evtl. könntest du eine Plausibilitätsprüfung machen.

  2. #12
    Heimchen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.11.2010
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das tu ich auch schon.

    Aber genau das wäre mein Wunsch gewesen. Naja, scheint wohl nicht zu gehen...

  3. #13
    Registriert seit
    01.09.2008
    Ort
    Berlin
    Beiträge
    172
    Danke
    51
    Erhielt 51 Danke für 44 Beiträge

    Standard

    Bei codesys gibt es eine Funktion "check range" (oder so ähnlich), such mal im Handbuch danach.
    Mit dieser Funktion kannst du den Fall der Indexüberschreitung seperat behandeln.

    Vielleicht hilft es dir, was besseres fällt mir so spontan nicht ein.

  4. #14
    Registriert seit
    06.10.2003
    Beiträge
    3.467
    Danke
    457
    Erhielt 515 Danke für 416 Beiträge

    Standard

    Anstatt des ARRAY könnte man zur Laufzeit einen DB mit entsprechender Größe erzeugen und durch indirekte Adressierung auf die REALs (oder was auch immer) zugreifen.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

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

    Beitrag

    Was Du machen möchtest, gibt es nicht auf einer CoDeSys (oder anderer) SPS. Und das ist gewollt so.

    In der IT nennt man das Memory allocieren (malloc in C). Sobald man Memory dynamisch reserviert und wieder freigibt, kann man für nix mehr garantieren, weder dafür, dass man den Speicher bekommt, noch für die Zykluszeit.

    Bei fester Speichervergabe kann der Compiler überprüfen, dass die Hardware nicht an ihre Grenzen stösst und das Reservieren des Speichers kostet keine Zykluszeit.

    Bei der dynamischen Speichervergabe könnte es sein, dass mehr Speicher angefordert wird als vorhanden und was dann? Zusätzlich gibt es noch das Problem der Memory Fragmentation aber dazu mal im Internet suchen.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Malloc gibt es nicht bei der SPS  

  6. #16
    Registriert seit
    30.08.2005
    Beiträge
    281
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von ebt'ler Beitrag anzeigen
    Bei codesys gibt es eine Funktion "check range" (oder so ähnlich), such mal im Handbuch danach.
    Mit dieser Funktion kannst du den Fall der Indexüberschreitung seperat behandeln.

    Vielleicht hilft es dir, was besseres fällt mir so spontan nicht ein.
    Es gibt die Funktion CheckBounds. In der Hilfe findest du wie die funktioniert, das funktioniert aber auch nicht, wenn man mit Pointer in einen Array reingreift, hilft daher für diesen Fall nicht weiter. Leider gibt es zu dem Typ keine Laufzeitinformation, das heisst, es ist prinzipiell nicht möglich zu wissen, auf was ein Pointer zeigt.

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Fehler: Array Größe
    Von ysh032 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 28.09.2011, 07:28
  3. SCL - OB und Array als Parameter
    Von Bluescreener im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 15.02.2008, 15:21
  4. Größe UDT in SCL
    Von Larry Laffer im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 17.12.2007, 20:25
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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