Beiträge von Johnsenfr

    Deine Frage ist nicht konkret genug.

    Was genau meinst du mit: wie man einen String in eine Position schreiben kann?


    Ist der Scanner über TCP/IP angeschlossen? Schickt der Scanner Daten (Strings) mit Positionen darin?

    Bitte konkretisiere deine Frage, dann kann man dir ggf. helfen.

    Hallo,


    Annahme: alle Punkte/Frames sind unter world angelegt.

    Wenn SRS vorhanden ist, dann könnet ihr unter Geometrische Beschreibung einen neuen frame (z.B. fOffset) unter world anlegen, der als z Eintrag 3 hat. Anschließend zieht ihr alle Punkte/frames unterhalb dieses neuen Frames


    Alle Angaben ohne Gewähr!

    Hallo zusammen,


    ich habe folgendes Video von UR gefunden:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Ab 2:44 min wird der Wizard gezeigt, bei dem mit 4 verschiedenen Roboterposen die Payload und das COG (Center of gravity) bestimmt wird.

    Meine Frage: Wie wird dies intern berechnet bzw. welche Werte sind nötig, um dies selbst nachzurechnen?


    Danke im Voraus!

    Hallo,


    hier mal ein Beispielprogramm, das eine Datei einliest:



    Die Idee ist, dass so lange mit $fileGet Zeile für Zeile eingelesen wird, bis die eingelesenen Zeichen 0 (und damit leer) ist.


    Hier nochmals eine Beschreibung der Funktion $fileGet()


    num $fileGet(num nFileHandler, string& sLines[], num NbLines)

    Diese Anweisung liest nNbLines-Zeilen, speichert jede Zeile in einem Eintrag der Variablen nLines und gibt die Anzahl der effektiv gelesenen Zeilen zurück. Ein Zeilenende ist '\n' (0xa in binärer Form); die nachgestellten Zeichen \n und \r werden in der VAL3-Zeichenkette entfernt. Der nFileHandler ist der Dateibezeichner, der von der $fileOpen-Anweisung zurückgegeben wird.

    Beispiel: $fileGet(nFileHandler, sLines[10], 7) : liest und speichert 7 Zeilen in sLines[10], sLines[11], ... sLines [16].


    P.S.: Es ist auch möglich die Anzahl der einzulesenen Bytes anzugeben mit

    num $fileGet(num nFileHandler, num& nBytes[], num nNbBytes)



    Zum Schreiben von Dateien:


    num $fileSet(num nFileHandler, string sLine, num NbLines)

    Diese Anweisung schreibt nNbLines, die im Array sLines gefunden wurden, und gibt die Anzahl der effektiv geschriebenen Zeilen zurück. Nach jeder Zeichenfolge von sLines[] wird ein Zeilenende '\n' (0xa in binärer Form) geschrieben. Der nFileHandler ist der Dateibezeichner, der von der $fileOpen-Anweisung zurückgegeben wird. 5/7


    Beispiel: $fileSet(nFileHandler, sLines[10], 7) : schreibt sLines[10], sLines[11], ... sLines[16] in 7 verschiedene Zeilen.

    Ich würde ganz klar SRS (Stäubli Robotics Suite) von Stäubli selbst empfehlen, da es genau die Punkte integriert hat, die du aufgezählt hast. Die EA-Verwaltung wüsste ich gar nicht anders als über SRS bzw. Sycon.net selbst zu konfigurieren (Sycon.net ist bei SRS automatisch mit dabei!). Ebenso kann mittlerweile die Saftey-Konfiguration über SRS erstellt werden, das Transferieren auf den Controller selbst geht dann mit SafePMT (Software gibt es im Downloadbereich bei Stäubli oder an der Hotline).

    In SRS sind dann auch Emulatoren aller Controller bzw. deren Systemversionen vorhanden, was deinem virtuellen Teach Panel entspricht.


    Zudem gibt es noch einige Extras:

    • Online Debugger (im Laufenden Betrieb auf den Controller schalten)
    • Syntax-Check fürs Programmieren
    • Transfer-Manager zum komfortablen Austausch von Einstellungen, Applikationen etc. zwischen PC und Controller
    • Log-File ziehen bzw. Auswerten
    • Grafische Synchronisation zwischen Controller und Software


    Wegen SRC: Ich denke hier liegt eine Verwechslung vor. SRC (Stäubli Robotics Control) beschreibt eigentlich die Version der Software auf dem Controller und ist keine Software zur Konfiguration. Das wäre dann SRS (Stäubli Robotics Suite).

    Ich habe noch eine bessere Variante gefunden, denn mit Hilfe des Expansion-AddOns kann man sich (mit 4 ms Verzögerung, aber das wird verkraftbar sein), die Ist-Geschwindigkeit ausgeben lassen, dann sieht dein paralleler Task (alle 4 ms) so aus:


    do


    nVelTCP=$getSpeedFbk(tTool)

    aioSet(aoVel, nVelTCP)


    delay(0)

    until false


    Damit schreibst du alle 4 ms auf dem analogen Ausgang aoVel die aktuelle Ist-Geschwindigkeit. Wenn du das Expansion-AddOn nicht hast, dann müssen wir auf die distance() Variante zurückgreifen. Die AddOns können von der technischen Datenbank geladen werden und sind spezifisch für die verwendete SRC Version zu installieren.

    Du könntest in einem parallelen, synchronen Task (4 ms) dir immer mit dem Hilfe des distance()-Befehl ausgeben lassen, wie weit du zur letzten bekannten Position gekommen bist. Über v=s/t kannst du dir dann die Geschwindigkeit sehr leicht berechnen.
    Über Fast-IOs wird das nicht funktionieren, da diese nur digitale IOs sind. Du müsstest den Geschwindigkeitswert mit aioset() auf eine analoge Variable mappen und dann über Feldbus etc. abschicken. Wenn es nicht echtzeitfähig sein muss, dann kannst du es auch über TCP-IP ausgeben.

    Wenn du einen funktionstüchtigen VAL3-Code benötigst, dann kann ich diese gern zur Verfügung stellen.

    Sie können überprüfen, ob beim Druck auf "Zeige alle Updates" die Updates kommen und zudem werden diese erst aktiviert, wenn Sie SRS beenden. Dann sollte rechts oben die Updates angezeigt werden.

    Diese Karten sind nur original bei Stäubli zu bestellen, da sie meines Wissens gebrandet sind.

    Jedoch gibt es in diesem Forenbeitrag auch andere Hinweise, jedoch werden diese nicht offiziell von Stäubli supported: CS8C-Profibuskarte


    Da Sie uniVAL PLC verwenden wollen, würde ich sehr empfehlen die Originalkarte zu verwenden, da dann auch die Einrichtung etc. mit uniVAL PLC sichergestellt ist.

    Guten Abend zusammen,


    Fanuc bietet ja beispielsweise die Möglichkeit die Payload-Parameter automatisch ermitteln zu lassen.

    Weiß jemand, wie dazu der Grundsätzliche Algorithmus funktioniert bzw. aus welchen Daten (Ströme, Drehmomente, ...) diese berechnet werden?

    Ich binum jede Hilfe dankbar!

    Hallo,


    Zu deinen beiden Punkten:


    Programmcode anzeigen/editieren: Dies ist im Prinzip möglich, jedoch etwas versteckt: Wenn man auf dem SP2 im Hauptmenü den "VAL3" Button drücken kann, dann ist dies erst nach einer Änderung der Datei usr/configs/controller.cfx möglich (FTP Verbindung aufbauen, Datei lokal kopieren, ändern, wieder hochladen). Dazu den Eintrag "

    <Bool name="legacyEditor" value="false" />" suchen und den value auf true setzen, Steuerung neu starten. Dann ist der VAL3 Button auf dem Handbediengerät ausgegraut, dafür ist nun der Hardwarebutton links (drei waagrechte Striche, auch "BurgerButton" genannt) aktiv. Dann hat man den "alten" CS8C Style. Dann kann man darin im "Applikationsmanager" seine Applikation öffnen und in den RAM laden. öffnet man weiter den Dateienbaum, so sieht man unterhalb der geladenen Applikation "Programme". Man wählt das gewünscht Programm aus und drückt "F4" (edit) um das Programm zu editieren. Aber das macht nicht sehr viel Spaß auf dem Handbediengerät ;)


    Zum Programmzeiger: Da Stäubli mit parallelen Tasks arbeitet ist es nicht ohne weiteres möglich einen von anderen Herstellern bekannten Programmzeiger zu sehen. Zudem sind ja VAL3 und die Roboterbewegung getrennt voneinander.

    Dennoch kann man im Taskmanager sehen, in welcher Programmzeile jeder Task gerade steht (Was nicht bedeutet, dass der Roboter alle Fahrbefehle bis dorthin schon ausgeführt hat!).

    Ist die VAL3 Kachel im Hauptmenü vorhanden (nicht ausgegraut wie oben beschrieben), dann drückt man diese und wenn die Applikation läuft sieht man links oben drei Balken. Drückt man diese, dann erscheint der Taskmanager und man sieht, in welcher Zeile welcher Task steht. Man erkennt z.B. auch leicht, wenn auf Signale gewartet wird um Fehler zu beheben.


    Falls wie oben beschrieben der legacyMode angeschalten ist, gibt es im Hauptmenü einen eigenen Eintrag "Applikationsmanager".


    Ab SRC Version s8.10.3 ist es möglich ohne den "Hack" des Anpassens der controller.cfx Datei zum legacyMode umzuschalten. Ich weiß jedoch nicht aus dem Kopf, wie dies möglich ist (kann dies aber gerne nachtragen).