Begrenzung der Programmlänge

  • Hi,
    Ich habe ein Problem mit der maximalen Befehlsanzahl in meinen Programmen.
    Bei uns steht ein KR150 mit ner KRC2 und V5.2.15.


    Wir haben manchmal Programme mit sehr vielen anzufahrenden Punkten (Fräsen).
    Beim aktuellen Projekt ca 500000 Programmschritte. Wenn ich die alle in ein Programm stopfe steigt die Steuerung echt schnell aus mit der Fehlermeldung "kein physikalischer Speicher mehr frei" oder so ähnlich. Und bei ca. 30000 Schritten.
    Ich bin dann dazu übergegangen mehrere Unterprogramme mit jeweils 30000 Schritten zu erstellen. Damit schaffe ich immerhin 7 Unterprogramme, also ca 210000 Schritte.
    Jetzt die Frage: Wie kann ich das noch erweitern?
    Am real existierenden Speicher kann es ja eigentlich nicht liegen. Liegt es irgendwie an der Syntaxprüfung, daß es Probleme gibt?
    In freudiger Erwartung der Antworten,
    Andreas Junghanß

  • Schritt für Schritt zum Roboterprofi!
  • Hallo Andreas,
    es gibt bei Deiner Version V5.2 flg. Einschränkungen:


    MODULBEZOGENE Einschränkungen:
    - Ein SRC oder DAT File kann max. 32767 Zeile enthalten.
    Aber die Anzahl wird in nächsten Releases (ab V5.4,V5.5?) erweitert.
    Der Compiler kann dann mehr lesen, hoffe aber, daß der Editor dann auch soviele Zeilen
    verarbeiten kann
    - Eine Variable kann max. 32KB Groß sein. Es kann beim Arrays vom Punkte solche Probleme
    auftreten.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein


  • Der Compiler kann dann mehr lesen,


    Darauf gleich mal eine Verständnisfrage:
    Es handelt sich also um einen Compiler, nicht um einen Interpreter.
    Wann genau wird denn compiliert?
    Sobald ein Programm in das Programmverzeichnis kopiert wird?
    Oder findet da nur eine Syntaxprüfung statt?
    Könnte ich meine Unterprogramme, die ausschliesslich aus lin-Befehlen bestehen auch vorkompilieren, um den Compiler zu entlasten?


    Grüße, Andy

  • - es ist ein Compiler und Interpreter, sozusagen ein ComPreter :mrgreen:
    - compiliert wird bei einem Download, Zeile einfügen, löschen, usw.
    - kopieren mit Explorer passiert gar nix
    kopieren mit KUKA-Navigator ist wie Download
    - vorcompilieren ? Mit was ? Nein geht (noch) nicht
    in naher Zukunft wird es aber möglich sein

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Ich nochmal


    Ich habe jetzt schon mal ne Menge dazugelernt, aber ich verstehe noch nicht, durch welche Beschränkung die Anzahl der Unterprogramme begrenzt wird.
    Kann man die Unterprogramme vielleicht in ein Unterverzeichnis stecken?
    Und wie kann ich sie dann aufrufen. In der Dat-Datei muß ich sie ja mit dem ext-Befehl deklarieren. Erlaubt die Sytax hier einen Pfad anzugeben?
    Sorry, daß ich so dämlich frage, aber durch meine Versuche habe ich die Steuerung schon mehrfach zur totalen Arbeitsverweigerung gebracht ;)
    Ich hab auch schon mal irgendwo gehört, daß man Programme dynamisch nachladen kann. Ist da vielleicht was dran? In der Doku (die durch extreme Übersichtlichkeit besticht) habe ich dazu noch nichts gefunden.


    Grüße, Andy

  • die Anzahl der Unterprogramme sind nicht festgelegt.
    Du überschreitest den Gesamtspeicher !!
    Die Fehlermeldung "kein physikalischer Speicher mehr frei" oder so ähnlich kommt nicht umsonst !!
    vxWinRAM erhöhen ! Siehe BIld von Regedit


    Dynamisches Nachladen ist eine Option. Siehe Doku im Anhang

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein


  • Du überschreitest den Gesamtspeicher !!
    Die Fehlermeldung "kein physikalischer Speicher mehr frei" oder so ähnlich kommt nicht umsonst !!
    vxWinRAM erhöhen ! Siehe BIld von Regedit


    Kann ich vxWinRam einfach erhöhen. (Bei Aktionen mit Regedit bin ich ziemlich feige:))
    Oder sollten mir jetzt nur meine Grenzen aufgezeigt werden?
    So oder so, vielen Dank für die Hilfe!


    Andy

  • Guten Morgen Andy,


    diese 0x1000000 ist eine Defaulteinstellung die für die allermeisten Anwender reicht.
    Setze den Wert mal auf =x1010000, Kaltstart durchführen und hoffen es funkt wieder.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein


  • Guten Morgen Andy,


    diese 0x1000000 ist eine Defaulteinstellung die für die allermeisten Anwender reicht.
    Setze den Wert mal auf =x1010000, Kaltstart durchführen und hoffen es funkt wieder.


    Nachdem ich jetzt mal ein bischen Zeit hatte hab ich das mal probiert. Leider nicht so ganz mit dem gewünschten Erfolg :(
    Ich hab den Wert in mehreren Schritten hochgesetzt, aber es hat sich absolut nichts verändert.
    Nichts verändert ist gelogen, denn Cross3 ist irgendwann ausgestiegen, ich weiß aber nicht mehr mit welcher Fehlermeldung. Ich hab dann alles wieder auf Originalwerte gesetzt.
    Seitdem bringt die Steuerung immer mal wieder die Fehlermeldungen
    KCPDRV watchdog fehler und KCP: CAN busfehler (genauen Meldungstext hab ich jetzt nicht hier)
    Also Erfolg auf ganzer Linie, aber sonst geht es mir gut ;)


    Irgendwelche Ideen?


    Grüße, Andy

  • LindePaul oh LindePaul,


    ob Dich jemals jemand ersetzen kann.
    VxWinRam hochsetzen wird ja auch beim KRC1 bei der installation von CoDeSys AUTOMATISCH gemacht.


    Hab ich dann auch gleich mal als Speichererweiterung geprobt...


    Was kam raus, ein Systemcrash, die selben Fehlermeldungen, Physikalischer Speicher net ausreichend....
    Is ja überhaupt kein Physikalischer Speicher, eigentlich müsste die KUKA-Systemmeldung Kein VirtuellZugewiesenerPhysikalischerSpeicher mehr üüüübrig heißen.


    Übrigens. Wenn man den Physikalischen Speicher Start (Phys1Begin) + Speichergröße Phys1Size) zusammenzählt, ergibt das einen Konflikt mit dem Start Phys2Begin. :bawling:


    Und weil wir viele Programme haben, stürzt die KK-Kiste dauernd ab.
    Wenn der Speicherbereich Phys2Begin nach Phys1Begin+Phys1Size liegt funzt alles wunderbar.
    ABER DA GIBTS DANN KEINE GARANTIE AUF EINE KONFLIKTFREIE SPEICHERDEKLARATION :( :( :(


    In dem Bild VXRAM... ist folgender Konflikt - (Standard-Installations-Einstellungen bei KSS 4.1)


    d0000 + 2FFFF = FFFFF


    Startadresse Phys2Begin:
    FE000


    Muss da die Kiste nicht abschmieren wenn man an die Speichergrenzen kommt. (Ist das von KUKA so gewollt?)


    Für was wird der Phys2-Speicher eigentlich gebraucht? Für CoDeSys?


    Wo ist LindePaul oder einer mit Basiswissen über die KK-Urgetüme.


    Darf man in der Registry den Physikalischen Speicher hochnehmen und bei 128 MB RAM wie hoch?


    Vielen Dank für Antworten


    Gruß
    Robotnik

    Einmal editiert, zuletzt von Robotnik ()

  • LindePaul ist seit Jahren im Ruhestand.
    Jemanden wie ihn, der am KRC1 in der Entwicklung gearbeitet hat, ist hier nicht (mehr) vorhanden...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden