Signal als Routinenparameter

  • Hallo miteinander,
    ich versuche eine Routine zu erstellen, der ich als Parameter Digitale Signale übergeben kann. Leider kriege ich es nicht hin. Ich ende immer mit einem Syntaxfehler.
    In etwa folgendes schwebt mir vor:


    Leider konnte ich hier im Forum nicht viel hilfreiches finden und in der ABB Doku finde ich lediglich folgenden Hinweis:

    Zitat

    Data of the data type signalxx must not be defined in the program. However, if
    this is in fact done then an error message will be displayed as soon as an instruction
    or function that refers to this signal is executed. The data type can, on the other
    hand, be used as a parameter when declaring a routine.


    Weiss jemand mehr? Kennt jemand den richtigen Syntax oder weiss jemand, dass mein Ansatz mit Sicherheit nicht funktionert?
    greez Drudge

  • ANZEIGE
  • Vielleicht so in der Art?

    Code
    PROC rMyRoutine(VAR SignalDI diSignalX, DioNum dnCondition)
       IF diSignalX = dnCondition THEN
          SetDo doLampe, 1;
       ELSE
          SetDo doLampe, 0;
       ENDIF
    ENDPROC


    Und als Aufruf

    Code
    PROC Main()
    
    
       rMyRoutine(diSchalterlinks,  High)
    
    
    ENDPROC

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

    Einmal editiert, zuletzt von Roland Keller ()

  • Danke Roland für die Antwort. So ähnlich hatte ich es probiert:



    jedoch beim Aufruf kommt "Syntax Error" sobald ich die Parameter eingebe:

    Code
    rMyRoutine (1, diSchalterLinks);


    Ist es eventuell noch Versionsabhängig? Auf dem Roboter läuft RobotWare V5.14.3071.03


    Greez Drudge

  • Gute Frage, glaube ich aber nicht. Das Beispiel von mir ist von 2014.
    Da hab ich schon solche Anwendungen zur Abfrage von digitalen Ein- und Ausgängen bzw. Bool-Variablen verwendet.
    Der einzige Unterschied zwischen deinem und meinem Code ist, daß ich für die Abfrage bzw. für den Vergleich ein DioNum-Variable mitschicke die entweder High oder Low ist. Diesen Zustand frage ich dann ab.
    Mehr fällt mir im Moment dazu leider nicht ein.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Stimmt, da hab ich mich überrumpeln lassen.


    Code
    PROC Main()
    
    
       rMyRoutine diSchalterlinks, High 
    
    
    ENDPROC

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

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