Autor Thema: bibliothek teilen  (Gelesen 10931 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
bibliothek teilen
« am: 19. September 2007, 16:23:42 »
es wurde schon mehrfach angeregt die oscat bibliothek in mehrere kleine bibliotheken zu teilen.
wir haben uns entschlossen dies auch mit der 2.0 nicht zu tun.
hier die gründe.

1. die häufige meldung unter codesys mnehr als 256 module vorhanden ist meist durch einen bug in codesys verursacht, einfach abspeichern und wieder öffnen dann funktionierts .
2. die meisten targets koennen auf emhr als 256 (512 oder 1024) in den target einstellungen configuriert werden.
3. ein teilen der lib würde zukünftige releases verkomplizieren, z.b. welche rev welcher lib ist für welche funktion nötig.

das wichtigste argument aber ist das jeder anwender selbst sich eine abgespeckte lib erzeugen kann. dann mit genau den funktionen die er benötigt.
- datei / öffnen die lib als projekt öffnen
- unnötiges löschen
- datei / speichern unter als interne lib abspeichern.
- dann diese neue lib ins projekt einbinden.

so kann jeder selbst entscheiden ob er die lib teilen will oder abspecken will.
 

Rockcrunsher

  • Gast
Re: bibliothek teilen
« Antwort #1 am: 29. September 2008, 15:22:34 »
Hallo erst mal,

wichtig zu sagen: Ich bin CoDeSys-Neuling und natürlich auch damit OSCAT-Neuling.

heute bin ich auf Eure Bibliothek hingewiesen worden, da ich große Strings verabeiten muß und unter CoDeSys nur 255 Zeichen möglich sind.

Natürlich kam beim Einbinden Eurer Bibliothek der obligatorische "Fehler 3612: Maximale Anzahl der Bausteine (512) überschritten!".

Beim Zielsystem habe ich keine Möglichkeit gefunden, die Anzahl der Bausteine zu erhöhen (Berghof-Steuerung).

Also habe ich (versucht) den Rat zu befolgen und "alles unnötige" rauszuschmeissen, um die Bibliothek zu verkleinern. Ich habe alles außer "STRING" gelöscht. Das Ergebnis:

in Funktion FLOAT_TO_REAL:
   Variable "EXPN" nicht deklariert
   Erwarte END_IF vor '('      ...was wohl ein Folgefehler von oben ist

in Funktion REAL_TO_STRF:
   Variable 'EXP10' nicht deklariert
   Kein korrekter Anfang für ST-Anweisung  ...ist wohl auch Folgefehler

Also ist es wohl nicht so einfach..'alles unnötige zu löschen'

Kann man nicht wichtige globale Variablen in ein eigenes Paket packen, welches man dann nicht löschen darf ?
Oder habe ich grundlegend falsch gedacht?

...mittlerweile habe ich gesehen, daß das keine Variablen sind sondern die Exponentialfunktionen aus dem Teil Mathematik.
Was aber nicht unbedingt die Fragestellung oben beseitigt.

Viele Grüße von Rockcrunsher


*** Das Problem habe ich jetzt so gelöst, indem ich die fehlenden Funktionen in den String-Teil mitgenommen habe. Jetzt geht's.
Was wäre aber die, Eurer Meinung nach, professionellere Lösung?

Gruß Rockcrunsher
« Letzte Änderung: 29. September 2008, 15:47:11 von Rockcrunsher »

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 377
    • Profil anzeigen
Re: bibliothek teilen
« Antwort #2 am: 29. September 2008, 15:50:06 »
hallo Rockcrunsher

schau einmal bei deinem system unter "Ressourcen" - > "Zieleinstellungen" -> "Speicheraufteilung"
dort gibst du bei "Maximale Anzahl von Bausteinen" die Zahl 1024 ein.

dann sollte auch die komplette LIB laufen !