Optionale Parameter, Signalzustand abfragen

  • Hallo zusammen, Ich sitze vor einem ABB, IRC5, RW 6.10.04.


    Ich habe gerade Schwierigkeiten eine Lösung für folgendes Problem zu finden; Ich habe mehrere Signale bis zu zehn. Diese möchte ich über eine Routine oder Funktion abfragen. Wie ich vorn schrieb sind es bis zu zehn Signale, es können in einem Fall zwei sein in einem anderen sechs oder eben zehn, alles zwischen einem Signal und zehn ist möglich. Gerne würde ich eine Routine mit optionalen Parametern verwenden. Die RobotStudio Doku "Rapid Kernel" ist mir da keine große Hilfe.

    Eine Lösung wie:

    Code
    PROC SignalZustandHigh(num SignalNr\switch Null|switch Eins)

    ist nicht der richtige Ansatz.

    Ich benötige eher so etwas wie:

    Code
    PROC SignalZustandHigh(num Signal1\num Signal2\num Signal3\num Signal4)

    Dies ist aber so nicht richtig. Eventuell kennt jemand von euch die richtige Doku oder kann mich in die richtige Richtung stoßen. Vielen Dank im voraus!

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • ANZEIGE
  • Hallo Atok09,


    dann kannst du 1 bis 100 Signale gleich abfragen


    z.B.


    Code
    PROC TestSignalZustand()
        VAR string Freigaben{7}:=["Frg1","Frg2","Frg3","Frg4","Frg5","Frg6","Frg7"];
        
        WaitUntil SignalZustand (["Signal1","Signal2","Signal3","Signal4","Signal5","Signal6","Signal7"],high);
        
        WaitUntil SignalZustand (Freigaben,high);
    
    ENDPROC

    Gruß Loipe


    Habs noch nicht getestet. wenn noch was ist kannst auch anrufen ^^

    • Hilfreich
  • Hallo,
    man könnte auch in der Schleife prüfen ob ein Signal nicht dem erwarteten Signalzustand entspricht.
    Sollte dies der Fall sein, so kann man die Funktion mit RETURN FALSE verlassen.
    Wird die Schleife bis zum Ende ausgeführt, haben alle Signale den erwarteten Zustand und die Funktion wird mit TRUE verlassen.


    Die Funktion sollte in der Abarbeitung schneller sein, da nicht alle Signale geprüft werden, wenn bereits die ersten Signale nicht den erwarteten Zustand aufweisen.


    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • stimmt.


    ich teste beide Versionen mal am Montag und schaue mal wie groß der Unterschied ist.


    Ich weiß wofür es ist und weiß das es für diesen anwendungsfall nicht wichtig ist aber es wäre interessant.


    Und ich mach mal volle 100 signale ;) go big or go home

  • habs mal gemessen. bei 10 signalen ist er in 1ms-3ms durch

    bei 100 braucht er 3ms-39ms je nachdem wie wie beschäftigt dein system ist.


    also ja er wäre schneller wenn er früher aufhört jedoch je nach systemauslastung relativ irrelevant



    Gruß Loipe

    Einmal editiert, zuletzt von Loipe ()

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