1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos Handwerk automatisieren - ich schaffs mit KUKA
besuche unseren Partner
Roboterprogrammierer
Online Roboterschulung
Werbung schalten Roboter
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Abarbeiten eines Arrays

  • cncandi
  • November 2, 2020 at 3:42 PM
  • Thread is Resolved
  • cncandi
    Reactions Received
    1
    Points
    391
    Posts
    61
    • November 2, 2020 at 3:42 PM
    • #1

    ich habe noch ein Problem beim abarbeiten eines E6POS Arrays. Anbei sende ich euch einen

    Link zu einem Video das ich gemacht habe.

    Der Wert AZAEHLER soll von 1-10 hochzählen und entsprechenden Arrayeintrag verwenden.

    Der springt aber hin und her wie ein Gummiball.

    Video: http://datentechnik-reitz.ddns.net:8088/nextcloud/inde…Dp2E6x8NWDErinB

    Code
    AZAEHLER=1
    WHILE AZAEHLER<10
    LIN POSARRAY[AZAEHLER] C_DIS
    AZAEHLER=AZAEHLER+1
    ENDWHILE
  • Schritt für Schritt zum Roboterprofi!
  • cncandi
    Reactions Received
    1
    Points
    391
    Posts
    61
    • November 2, 2020 at 4:07 PM
    • #2

    ich glaube ich konnte das Problem schon soweit lösen. Die Schleife läuft komplett durch und springt im Hauptprogramm wieder zurück.

    Ich brauche zusätzlich ein VARSTATE für jede Array Position. Leider weiß ich aber nicht wie die Syntax bei eine Array in Verbindung mit VARSTATE aussieht.

    Ich bräuchte ...

    WAIT FOR (VARSTATE "POSARRAY[ZAEHLER]"==#INITIALIZED)

    Aber ZAEHLER ist ja immer ein anderer Wert.

  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • November 2, 2020 at 4:49 PM
    • #3

    Das hilft dir nicht weiter. Die Daten sind ja initialisiert, sonst würde das Programm stoppen und eine Fehlermeldung erscheinen.

    Wo liegt denn der Sinn der Abarbeitung des Arrays, wenn es denn doch wieder nicht abgearbeitet werden soll, bzw auf irgendwas gewartet werden soll?

    Achtung jetzt kommt die Glaskugel: schätze mal da sollen in einem parallelen Prozess (Sps.sub?, oder über KukaVarProxy? ) die Positionen reihum in das array geschrieben werden.

    Da müsste man dann noch etwas mehr Hirnschmalz investieren.

  • Mathias Voegtle
    Reactions Received
    3
    Points
    108
    Posts
    17
    • November 2, 2020 at 5:40 PM
    • #4

    Würde ON_ERROR_PROCEED verwenden, ist wohl performanter und du hast mehr Möglichkeiten, bzw. der Zähler wird keine Rolle spielen...und falls nicht schon geschehen $Advance auf 0 oder 1.

  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • November 3, 2020 at 7:50 AM
    • #5

    Auch ON_ERROR_PROCEED hilft nicht weiter, da das Array komplett initialisiert ist. Würde nur helfen wenn der Index die Arraygröße überschreitet.

    Das Programm ist absolut korrekt und die Abarbeitung ist auch korrekt, es passiert genau das was programmiert ist.

    Völlig unklar ist was cncandi mit dem Programm überhaupt erreichen will. Er hat da irgend etwas vor, das weder aus seinem Post, noch aus dem Film hervorgeht.

  • AtoK09
    Reactions Received
    21
    Points
    2,151
    Trophies
    1
    Posts
    385
    • November 3, 2020 at 2:22 PM
    • #6

    Leider kann ich nichts erkennen was wie ein Gummiball springt. Was passiert denn wenn du das Programm Zeilenweise abarbeitest? Wie verhält sich der Robi wenn du ohne Überschleifen fährst?

    Ich würde (unter anderem wegen der Übersichtlichkeit) mir eine POS-Variable erstellen welche ich mit der POS aus dem Array beschreibe, diese würde ich in meine LIN abfahren (nach jeder abgefahrenen POS würde ich dann eine nicht erreichbare POS in die Variable schreiben), so kann ich zumindest zu jedem Zeitpunkt auch klar rauslesen wohin der Robi möchte. Dann würde ich ohne Überschleifen das Programm Zeilenweise abfahren und beobachten. Hier sollte dann doch auch zu erkennen sein was in deinem .src vorgeht.

    Edit sagt: Hab den "Gumiball-Zähler" dann doch noch erkannt. Unter realen Bedingungen würde ich sagen das ist die Trägheit des Bildschirms. Auch dein Programmzeiger sagt eindeutig ich bin zu schnell für deinen Monitor. Deshalb einmal versuchen ohne Überschleifen und im "Automatik-Ablauf" auch ruhig mal ohne Vorlauf abarbeiten!

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

  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • November 3, 2020 at 2:45 PM
    • #7

    Macht nix, er hat das Programm eh vorhin gelöscht^^ Siehe gelöschtes Programm wiederherstellen

    Sorry aber der musste raus.

  • panic mode
    Reactions Received
    91
    Points
    3,541
    Trophies
    1
    Posts
    689
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 3, 2020 at 2:49 PM
    • #8

    gelinkte video zeigt es. die Abarbeitung ist auch korrekt, es passiert genau das was programmiert ist.

    Daten verursachen kleine Bewegungen in der X Richtung, 9mm forwaerts und zurueck, wie erwartet...

  • cncandi
    Reactions Received
    1
    Points
    391
    Posts
    61
    • November 3, 2020 at 2:49 PM
    • #9

    Programm ist wieder da. Aber wenn wir schon beim Array sind habe ich dazu noch eine kurze Frage.

    Wie kann man den Inhalt eines Arrays löschen? also nicht das komplette Array sondern einzelne Elemente wie Array[0], Array[1], usw.

  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • November 3, 2020 at 2:53 PM
    • #10

    Geht nicht, soweit ich weiss.

    Da kommen die Ansätze von atoK09 in Frage, zumindest teilweise.

    Erkläre doch einfach mal was du da machen willst. Dann kann man vielleicht besser helfen.

  • panic mode
    Reactions Received
    91
    Points
    3,541
    Trophies
    1
    Posts
    689
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 3, 2020 at 3:02 PM
    • #11
    Quote

    Ich bräuchte ...

    WAIT FOR (VARSTATE ("POSARRAY[ZAEHLER]")==#INITIALIZED)

    Aber ZAEHLER ist ja immer ein anderer Wert.

    Literal durch Variable ersetzen, Variable mit SWRITE beschreiben, zB.

    Code
    DECL CHAR sTmp[20]DECL STATE_T s
    DECL INT Ofs
    ;...
    sTmp[]="                    "
    Ofs=0
    SWRITE(sTmp[],S,Ofs,"POSARRAY[%d]",zahler)
    ;....
  • panic mode
    Reactions Received
    91
    Points
    3,541
    Trophies
    1
    Posts
    689
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • November 3, 2020 at 3:05 PM
    • #12

    geht nicht... aber, so was ist naehe... (POS, E3POS, E6POS aber kein FRAME)

    Code
    FOR n=1 to 10   
       Array[n] = {S 0}
    ENDFOR

    oder mit unerichbare Position beschreiben gehts schon...

    Code
    FOR n=1 to 10
       Array[n] = {Z 999999}  
    ENDFOR

    Edited 2 times, last by panic mode (November 3, 2020 at 3:14 PM).

  • cncandi
    Reactions Received
    1
    Points
    391
    Posts
    61
    • November 3, 2020 at 3:09 PM
    • #13

    ok, hier ein paar Bilder was wir machen ...

    Bild 1 ist unsere programmierte Software, die den Arduino mit Extruder Steuerung und den Roboter verbindet. Das funktioniert schon sehr gut.

    Bild 2 ist unsere Simulationssoftware, welche den Fertigungsprozess simuliert und den Code erzeugt.

    Es geht darum, den erzeugten Code an den Roboter zu bringen und kompletten Einfluss auf die Bearbeitung des Extruders parallel zur Bearbeitung

    des Roboters zu haben.

    Images

    • 03-11-_2020_14-56-04.png
      • 269.63 kB
      • 1,187 × 871
      • 24
    • 03-11-_2020_14-56-23.png
      • 346.69 kB
      • 793 × 968
      • 19
  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • November 3, 2020 at 3:44 PM
    • #14

    Wirklich klarer ist das Problem für mich jetzt auch nicht. Aber ich denke meine Glaskugel von gestern hatte doch nicht so ganz Unrecht?

    Da baut man sich halt ein paar Zeiger (integer variable als index des Arrays), einer wird vom PC hochgezählt, wenn er den Punkt abgearbeitet hat, einer vom PC, wenn er einen weiteren Punkt in das array geschrieben hat.

    Man muss auf beiden Seiten sicherstellen, dass der eigene Zeiger nie den der Gegenseite überholt. Fertig ist die Laube.

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
  • YRC1000
AD
Your browser does not support videos Automatisierung im Handwerk - ich schaffs mit KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • Array
  • INITIALIZED

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download