Beiträge von D-Platoon

    Also ich hab die letzten Tage ein bissche probieren können und es hinbekommen.

    Ich deklariere einfach die Variable

    Code
    VAR pos posWeltzone

    Anschließend in der Init-Prozedur kann ich über PoseMult die werkobjektabhänige Position in eine Weltposition transferieren.

    Das funktioniert soweit ganz super mit der Einschränkung, dass wenn ein Punkt nachgeteacht, die Weltzone erst nach dem Neustart der aktualisiert wird. Damit kann ich aber erstmal leben.

    Vielen Dank für eure Hilfe!


    In der Doku steht das stationäre Weltzonen nur in einer POWER ON Eventroutine verwendet werden können, d.h. die Weltzone muss fertig definiert sein, da kann also nichts gerechnet werden während dem Ablauf. In dem Fall hilft Dir CRobT oder sogar nur CPos weiter um den Centerpoint der Weltzone zu bestimmen. Also Greifposition anfahren, dann das im Programm eingefügte CRobT oder CPos einmal ausführen, Daten in Weltzone übernehmen, CRobT oder CPos auskommentieren, Neu starten, fertig.

    Über die Posemult brauch ich nichts übernehmen, sondern die Initialisierungsprozedur übernimmt das damit beim Neustart selbst.

    Ein mögliches Problem bei den Weltzonen für die SPS ist dass sie nur mitbekommt das etwas passiert aber nicht genau was passiert. Legt der Greifer an derselben Stelle auch ab weiß die SPS nicht in welche Richtung die Bauteildaten kopiert werden sollen. Dafür wäre ein Signal 'Bauteil gegriffen' oder 'Bauteil abgelegt' eindeutiger.

    Da der Greifer in meinem Fall eh über die SPS angesteuert wird, hab ich ja die Signale "Greifer offen" und "Greifer zu" so kann ich problemlos die entsprechenden Daten umkopieren.

    Dennoch danke für den Einwand!

    Ich muss euch leider schon wieder um Hilfe bitten:

    Und zwar geht's diesmal um Weltzonen.

    Ich möchte eine stationäre kugelförmige Weltzone erstellen, welche sich anhand eines Punktes, der sich wiederum auf einen Greifer (also Tool) und ein Werkobjekt bezieht.

    Im Konkreten Fall:

    Ich möchte ein Bauteil greifen und die SPS soll in diesem Moment die entsprechenden Daten von der Station in den Greifer umkopieren (virtuelle Datenverfolgung). Diese Greifposition ist natürlich ein robtarget und kein jointtarget.

    Folgender Versuch schlug fehl:

    Code
    VAR pos posWeltzone := wWerkobjekt.uFrame.trans + tGreifer.tFrame.trans + pGreifpunk.trans;

    Robot-Studio meldet hier, dass wWerkobjekt und tGreifer keine Konstanten Ausdrücke seien (ist ja logisch, sie müssen auch als PERS angelegt werden).

    Es muss doch möglich sein, die Position pGreifpunkt in Weltkoordinaten umzurechnen. Ich habe die Hilfe schon durchgewälzt, aber noch keine Lösung gefunden.


    Hat jemand eine Idee?


    Edit: Obiger Code kann nicht funktionieren - Ich kann ja nicht im Deklarationsteil gleich rechnen wollen...

    Wenn ich das in der Prozedur mache klappts natürlich. Aber passt das dann auch? Oder müssten da die Winkel noch irgendwie mit verwurstelt werden?

    Hallo zusammen,


    ich habe mal wieder eine Frage:

    Und zwar habe ich eine kleine Prozedur geschrieben, an die ich insgesamt fünf Werte übergeben möchte:


    Code
    PROC pcMoveOffs(speeddata nSpeed,zonedata nZone,num nXValue,num nYValue,num nZValue)
    ...
    ENDPROC


    Wenn ich diese Routine nun aufrufe, möchte Robot-Studio das in folgender Syntax:

    Code
    pcMoveOffs(v100),z5,10,20,30;


    Normalerweise gehört ja alles innerhalb der Klammern. Komischerweise will Robot-Studio aber nur den ersten Wert in der Klammer haben, die restlichen sind außerhalb.

    Wenn ich hingegen an eine Funktion mehrere Werte übergebe, schreibe ich die, wie gewohnt alle in die Klammer.

    Also es funktioniert ja, aber kann mir jemand sagen, warum das so ist? Steckt da ein tieferer Sinn dahinter, oder ist das eher ein Bug?


    Viele Grüße,

    D-Platoon

    Wenn EIO.cfg etc. übertragen werden soll, muss man das dann mit "Parameter laden" machen. Dies funktioniert meines Wissen nicht mit dem Transfermanager der Beziehung.

    Ich war am Montag endlich mal wieder auf der Baustelle und konnte nochmal einige Erfahrungen sammeln.

    Die Variante von Pestkroete war dabei das Mittel der Wahl.


    Tatsächlich ist es aber auch so, wie AndreH vermutet hat, dass man die Parameter extra nachladen muss. Eine andere Möglichkeit habe ich hier auch noch nicht gefunden.

    Hallo zusammen,


    ich habe so kurz vor Weihnachten noch ein Problem:

    Ich möchte einen Profinetausgang in Abhängigkeit von einem booleschen Wert True oder False setzen.

    Klar könnte ich jetzt hergehen und folgendes machen:

    Code
    if bBool then
      set obOutput;
    else
      reset obOutput;
    endif

    Ist mir aber bei vielen Variablen zu umständlich.

    Am liebsten wäre mir ein Konvertierer in der folgenden Art:

    Code
    obOutput := fcBool2Signal(bBool);

    Das Problem dabei ist, dass ich ein "signalDO" nicht als Rückgabewert deklarieren kann und wenn ich ein "num" nehme, meckert er bei der Zuweisung folgenden Fehler:

    "Typenfehler(55): Typ des Zuweisungsziels signaldo ist nicht vom Typ 'value‘."


    Weiß jemand Rat?

    Hallo zusammen!


    Vielen Dank für die Tipps.

    Ich hatte jetzt gehofft, dass es da einen "Download"-Button vergleichbar zum Download eines SPS-Projektes in die Steuerung gibt. Schade, dass das noch so "umständlich" gehandhabt wird. Aber ich werd mich da morgen mit euren Hinweisen nochmal probieren, wenn ich wieder an der Anlage bin.

    Das Backup vom Robi war natürlich nach dem Einschalten das Erste, was ich gemacht hab ;)


    Viele Grüße

    Hallo zusammen,


    ich habe gerade ein kleines Problem: Ich nehme aktuell meinen ersten ABB in Betrieb (bisher warens immer Kuka). In der Zwischenzeit von Bestellung bis Lieferung habe ich bereits das Projekt in Robotstudio angelegt und einige Einstellungen (Roboter und Optionspakete ausgewählt, EA's konfiguriert ect.) getätigt.

    Nun soll das Projekt natürlich direkt in den Robi gespielt werden. Finde dazu aber keine Möglichkeit im Robotstudio. Ich kann lediglich den realen Robi als neue Station anlegen. Diese hat dann aber natürlich nicht die getätigten Einstellungen.

    Weiß jemand Rat? Wie macht ihr das?


    Viele Grüße,

    D-Platoon