Case Anweisungen

  • Hallo Leute,


    mal wieder eine "strange" Frage.


    Das neue Projekt soll super flexibel sein und deshalb hat sich jemand ausgedacht , das der Roboter nur noch Programmnummenrn von der SPS erhält und der Robbi das über
    "Test" Routinen abarbeiten soll.


    Schön und gut.


    Nur, wo ist denn da die Kotzgrenze!!!


    Kann der Roboter auch noch Case "max Gruppeneingang" ?????


    Gruß
    Högi

    Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!<br />Albert Einstein

  • ANZEIGE
  • eine zentrale steuerschleife und tausend kleine bewegungsprogrämmchen?


    hast mail....

    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.

    Einmal editiert, zuletzt von WolfHenk ()

  • Hi,
    Kenne auch so Programme. Bin aber noch an keine max Grenze gestoßen bei Test-Anweisungen. Das gleich gilt für ELSEIF Funktionalität.


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hi,


    ich denke, dass es da keine Grenze bzgl. des TEST-Ausdrucks oder der CASE-Ausdrücke gibt,
    sondern das die Größe der gesamten Konstruktion durch die max. Code- bzw. Programmlänge begrenzt ist.


    Egal ob der Quelltext durch einen Compiler in Maschinen- oder P-Code umgewandelt, oder
    durch einen Interpreter abgearbeitet wird, letztendlich läuft es intern auf eine (lange)
    IF-THEN-ELSE... Kette hinaus, die bei vielen CASEs einfach langen Code erzeugt.
    Wenn es (irgendwann) zu eine Fehlermeldung kommen sollte, würde ich das eher in
    dieser Richtung vermuten.


    Falls das in deinem Projekt so vorgegeben ist, nun gut, dann kann man da nichts machen. :wallbash:


    Anderenfalls würde ich das folgendermaßen realisieren:
    - Jedes (Teil-)Programm in eine Routine packen
    - Ein Array aus Records mit Index-Nr. und String (=Routinenname) als Konstante deklarieren
    und mit den Indizes und den entsprechenden Routinennamen besetzen
    - Zur Laufzeit den Gruppeneingang lesen, und
    - über eine Schleife das Array nach dem (Gruppen-)Index durchsuchen und im Erfolgsfall
    - den Routinenname per "CallByVar" ausführen


    Wenn du noch einen draufsetzen willst, kannst du auch die Array-Daten aus einer externen
    Textdatei einlesen, ähnlich einer INI-Datei, und könntest damit auch (theoretisch) zur Laufzeit
    das Verhalten ändern/anpassen.


    Eleganter/flexibler wirds nich....


    Gruß
    rmac

  • Hallo,


    der Kunde will das unbedingt über Test Routinen realisieren.
    Mit Arrays und Strings kommen angeblich die Instandhalter nicht so gut klar.


    Konnte die Leute aber immerhin überreden das ich die verschiedenen Typen über einen extra Gruppeneingang bekomme.
    Dadurch habe ich nicht nur eine einzige Monster "Test" Routine, sondern für jeden Typ eine Eigene.


    Da sieht das alles schon weit weniger dramatisch aus. :liebe029:


    Gruß
    Helge

    Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!<br />Albert Einstein

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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