Posts by Micky

    Hallo,
    in dem Menüband "Steuerung" gibt es in der Gruppe "Steuerungstool" den Button "Neustart".
    Mit dem bist Du in der Lage Deinen Controller neu zu starten und Deine Poweron-Routine zu testen.

    Hallo,

    der Befehl ExitCycle setzt den Programmzeiger nur dann in die Routine main, wenn das Programm mit der Routine main gestartet wurde. Wird der Programmzeiger in eine andere Routine (z.B. Test1) gesetzt und das Programm gestartet, so setzt die Instruktion ExitCycle den Programmzeiger in die erste Zeile dieser Routine (z.B. Test1).

    Du kannst den Systemeingang "PP to Main" verwenden, um den Programmzeiger in die Routine Main zu versetzen. In diesem Fall kannst Du einen Ausgang über die ScreenMaker App pulsen und der PZ sollte in die Routine main versetzt werden.

    Den Ausgang musst Du aber direkt in der Datei EIO.CFG als Signalname bei den Systemeingängen definieren, da RobotStudio die Auswahl von Ausgängen bei der Auswahl nicht zulässt.

    Alternativ kannst Du auch den Systemeingan "Start Main", bei diesem wird der PZ auf Main gesetzt und das Programm gestartet. Das ganze sollte im Automatikbetrieb der Steuerung funktionieren. Im Handbetrieb funktionieren m.E nur die Systemeingänge Stop und MotorAus.

    Hallo,


    wenn Du Roboteware 5.x verwendest, musst Du mit dem SystemBuilder (RobotStudio) ein komplett neues Robotersystem mit dem neuen Key erstellen und dieses anschließend auf die Steuerung übertragen.


    In der Hilfe von RobotStudio findest Du eine Beschreibung, wie der Systembuilder verwendet werden muss.

    Hallo RobiMan,

    das Problem ist, das UiMsgWrite ein 1-dimensionales und nicht ein 2-dimensionales String-Array erwartet und das man aus Arrays nur Einzelelemente, in Deinem Falls Strings, auslesen kann.


    Der Zugriff auf das Array mit myMsgArray{nLanguage} erzeugt die folgende Fehlermeldung:

    Type error(36): Incorrect number of indices in index list for array myMsgArray with 2 dimension(s).


    Des Weiteren ist die Deklaration Deines 2-dimensionalen Arrays falsch.

    Anstelle von "VAR string myMsgArray{5,2}:=" müsste die Deklaration wie folgt lauten "VAR string myMsgArray{2,5}:=".


    Die beste Möglichkeit hier wäre den Meldungstext Sprachen abhängig in ein 1-dimensionales Array umzukopieren und dieses dann für die Ausgabe zu verwenden.


    Das ganze könnte dann wie folgt aussehen:



    Wenn es dir um die Anzeige einer Meldung mit dem Signalnamen beim Warten auf ein Signal geht, könntest du die die Warteinstruktion z.B. WaitDi mit dem optionalen Parameter "Visualize" erweitern:

    Code
    waitdi di1,high\Visualize;

    dann erscheint z,B. die folgende Meldung in der Sprache die am FlexPendant eingestellt ist:

    Hallo,


    der Parameter "ListNo" wird nur bei den beiden Instruktionen "ReadCfgData" und "WriteCfgData" verwendet, d.h. zum Auslesen und Beschreiben der Systemparameter.

    Tritt der Fehler auch auf, wenn Du das Programm von "main" startest, also beim Ausführen der Instruktion "MT_Execute"?

    Die Bewegungsinstruktionen lesen die Systemparameter nur aus, wenn dies im Programmabluaf noch nicht erfolgt ist, d.h. wenn der PZ in eine Routine gesetzt wird.


    Hast Du vielleicht ein Problem mit den Systemparametern von RWMT, bei den Typen "MT_HOMERUN","MT_PART_SETTINGS"," MT_API_POSITION" oder "MT_GUI_SETTINGS" in der Proc.cfg?


    Prüfe bitte ob die beschriebenen Systemparameter in der PROC.cfg vorhanden sind und ob diese gültige Werte enthalten.

    Vielliecht findest Du auch weiterführende Einträge in Fehlerlog.

    Hallo,
    Du musst den Installation Manger verwenden und dich mit Deinem Robotersystem verbinden. In der Reiter Lizenzen musst Du die neue Lizenz hinzufügen indem Du die rlf-Datei auswählst.

    Du solltest auf jeden Fall vorher ein Backup erstellen, da nach der Änderung des System ein I-Start ausgeführt wird und Du einen RESTORE erforderlich ist.

    Hallo,
    für die Übertragung mit mit dem Protokoll UDP/IP könnte wie folgt umgesetzt werden:


    VAR socketdev sUDP;


    PROC SendUDP(string message)

    SocketSendTo sUDP, "192.168.0.10", 1025\Str:=message;

    ERROR

    IF ERRNO = ERR_SOCK_CLOSED THEN

    SkipWarn;

    !* Try to establish a UDP connection

    SocketClose sUDP;

    SocketCreate sUDP\UDP;

    RETRY;

    ENDIF

    ENDPROC

    Hallo,
    ProfiNet unterstützt nur Signale.
    Das heißt du müsstest die ASCII-Codes der einzelnen Buchstaben über Gruppenausgänge mit jeweils 8 Bit an die SPS versenden.

    Wir verschicken Texte immer per UDP (Ethernet) an die SPS.
    Vielleicht wäre das auch eine Lösung für Deine Anwendung

    Hallo RobiMan,

    in RobotStudio kann man in dem Dialog "Add Controller" die IP-Adresse des Roboters hinzufügen, der sich in einem anderen SubNetz befindet.

    pasted-from-clipboard.png


    Nach dem Drücken des "Add" Buttons wird die neue IP-Adresse gespeichert und steht somit auch beim nächsten Start von RobotStudio zur Verfügung

    Hallo,
    zur Berechnung der Quaternion kannst Du den Befehl "OrientZYX" verwenden


    Code
    TASK PERS wobjdata wNew:=[FALSE, TRUE, "",[[0, 0, 0],[0.92388, 0, 0, 0.382683]],[[0,0,0],[1,0,0,0]]];
    
    
    wNew.uframe.rot:=OrientZYX(45,0,0);

    Hallo Hofd,

    die RAPID Befehle stoppen bei einem MultiMove System nur den aktuellen Robotertask .
    Wenn Du alle Roboter stoppen willst, musst Du den Befehl "Stop\AllMoveTasks" verwenden.

    Die Systemeingänge "Start" und "Stop" hingegen gelten für alle Roboter.

    Hallo,
    tritt der Fehler noch auf, wenn Du an der Position mit z50 an der Du den Greifer 1 verwendest die Zone "Fine" verwendest?


    Was passiert, wenn Du an der Stelle an der der Roboter hängen bleibst, die Zone "Fine" verwendest?

    Hallo,

    kann Ihr nicht die Bewegungsinstruktionen der einzelnen Layer in separate Unterroutinen verschieben (z.B. Layer1, Layer2, etc.), so dass man in der Routine "main" nur die gewünschte Layer Routine aufruft und dann den Programmzeiger auf die gewünschte Zeile setzt.

    In diesem Fall muss man weniger als 24025 Programmzeilen durchscrollen, um die gwünschte Position zu finden.

    Alternative könnte man auch die Layer Routinen in separate Module verschieben, so dass man nicht so große Module erhält.

    Hallo,

    laut Handbuch werden analoge Signale von den Cross-Connections nicht unterstützt.


    Quote

    Eine Querverbindung (Cross Connection) ist eine logische Verbindung zwischen

    digitalen (DO, DI) oder Gruppen- (GO, GI)-E/A-Signalen, die einem oder mehreren

    Signal/en gestatten, den Status anderer E/A-Signale automatisch zu beeinflussen

    Hallo Michael,
    die Fehlernummern und die Überschriften der Meldungen erhältst Du mit der Instruktion IError und kannst sie z.B. via TCP/IP oder UDP an die SPS übertragen.

    Eventuell könntest Du auch OPC-UA verwenden, aber dafür benötigst Du eine weitere Roboter Option (siehe https://new.abb.com/products/r…ngen/irc5/optionen/opc-ua)


    Mittlerweile ist die RobotWare 6.12 verfügbar, so dass die Fehlerliste der RW6.04 ziemlich veraltet ist.
    Aus diesem Grund habe ich Dir die Fehlerliste der aktuellen Robotware angehängt.
    Fehlermeldungen Deutsch RW6.12.xlsx.zip

    Hallo Bodo,

    wenn Ihr eine FlexPendant APP oder eine PC-SDK APP verwendet, könnt Ihr doch die erforderlichen Module direkt von der APP laden lassen.


    In diesem Fall muss das Programm nicht unbedingt ausgeführt werden.


    Unter dem folgenden LInk, findest Du eine Beschreibung wie das Laden von Modulen mit der FlexPendant-SDK funktioniert.


    Laden und speichern von Modulen