ABB 1400

  • Hallo ich habe mal eine Frage ich Arbeite an einem ABB Schweißroboter und würde gerne ein Zähler einfügen damit ich am ende des Tages weis wieviel Teile ich gemacht habe wie mache ich das weiss da jemand Rat .


    Ich danke im Vorraus :hilfe:

  • ANZEIGE
  • hallo


    du machst dir ein merker z.b.
    var num counter


    und immer wenn du ein gutes teil ablegst


    counter:=counter+1;


    dann machst du dir noch einen taster z.b. DI Reset


    und schreibst im permanenttask


    If Reset=1 then
    counter:=0;
    Endif



    also ich hoffe das hilft dir


    Gruß Roboprog

    Die dümmsten Programmierer haben die dicksten Programme

  • Also roboprog, wennschon dann


    PERS num Counter;


    damit auch nach Stromausfall/Ausschalten der Zähler erhalten bleibt!


    Gute Programmierer initialisieren Variablen, bevor sie sie das erste Mal benutzen!
    Die Frage wo und vor allen wann Counter initialisiert wird, ist tatsächlich nicht trivial wenn du über PZtoMain drüberzählen willst!!!



    Gute Programmierer achten beim Hochzählen auf Überlauf:


    IF counter<8388628 THEN
    counter:=counter+1;
    ELSE
    ! Fehler Überlauf geht schneller als man denkt! siehe WINDOWS....
    ENDIF


    Wenn es wirklich ein Tageszähler sein soll, kannst Du aut. um Mitternacht resetten ( mit CDate()-Funktion vergleichen ob neuer Tag)


    Meiner Meinung nach sollte aber die SPS zählen auf einer Flanke eines Eingangs der vom Robi bei jedem Teil gesetzt wird. Vorteil die SPS läuft zyklisch, kann den Wert auch gleich aufs Panel schreiben und beim Umrüsten oder Tastedruck im Bedienpult resetten. Damit bist Du auch unabh. davon, wie oft der Robi zwischenzeitlich neu gestartet oder abgeschalten wurde und musst nicht stur über Produktwechsel hinwegzählen, nur weil jemand den Resetknopf nicht gedrückt hat.
    Außerdem hat die SPS meist die Anbindung ans ERP und da Reporting immer wichtiger wird, kann der Wert ggf. einfach hochgegeben werden!


    Aber mal grundsätzlich zu Marvyn123456:


    1. Aus Der Forumüberschrift geht Dein Problen überhaupt nicht hervor!
    2. Du programmierst Schweißroboter und weißt nicht, wie man eine num-Variable deklariert, initialisiert und inkrementiert? Das macht mir schon Angst!!! Ich mein wir sind hier nicht bei Roboterselbstbau .de sondern reden von Industrierobotern! Schon mal was von der neuen Maschinenrichtlinie gehört?
    Bist Du sicher das Du entsprechend qualifiziert bist? Glaubst DU es hilft Dir, wenn Du nun das Listing von roboprog in Deinen Robi reinoperierst?


    Falls Du Praktikant bist, lass Dir bitte von Deinem Betreuer eine Dokumentation über Roboter und Steuerung geben!
    Falls Du kein Praktikant bist, fordere Deinen Chef auf, Dich dringend zum Grundlagenlehrgang nach Friedberg zu schicken!!



    Grüße dust2

    Einmal editiert, zuletzt von dust2 ()

  • Hallo Marvyn
    eigentlich bin ich nicht der typ der ständig in foren schreibt, lese hier öfter mal und wenn ich ein problem habe schreibe ich auch .


    das von roboprog sollte dir erst mal weiterhelfen, die bessere variate ist natürlich mit einer speichernden variablen (pers)


    das war erst mal deine frage


    nun zu dust2
    hast du die weisheit mit löffeln gegessen. was redest du nur für ein mist???
    jeder fängt mal klein an und ein forum ist nun mal da um fragen stellen zu dürfen, oder ist das hier nur für diejenigen ab einem bestimmten wissen. er wollte nur wissen wie man zählt nicht mehr und nicht weniger.
    er ist halt neu, die nächtse frage wäre sicherlich gekommen, und es hätte bestimmt auch jemand gerne darauf geantwortet.


    Zitat; Ich mein wir sind hier nicht bei Roboterselbstbau .de sondern reden von Industrierobotern! Schon mal was von der neuen Maschinenrichtlinie gehört?


    ich habe noch von keiner roboterprogrammierrichtlinie gehört, kannst sie mir ja mal senden.


    über dein beitrag kann man nur schmunzeln, was bist du nur für ein toller typ, echt klasse!


    lese doch bitte mal das abschluss wort von sven weyer durch!

  • Hallo zusammen


    dust2


    dein name sagt alles !
    aber warscheinlich hast du sonst nix zu sagen das du hier hilfsbereiten forum-schreibern
    deinen müll ans knie nagelst


    wenn du alles besser kanst dann mach doch dein eigenes forum auf !!
    da kannst du dann chef spielen!!


    chupete


    nicht aufregen werner ist für jeden dankbar der hier weiterhelfen kann auch wenn es nur die basics sind !

    Die dümmsten Programmierer haben die dicksten Programme

  • ... kannst auch den Zähler auf dem Programmiergerät ausgeben lassen,


    PERS num nCounter:=0;



    nCounter:=nCounter+1;


    TPWrite "STUECKZAHL >"\num:=nCounter;



    und reset zum Beispiel auf zu Fuß über Programmiergerät Datentypen num auf 0!!!

  • dust2,


    bei ein paar deiner Ausführungen gebe ich dir zweifellos recht, aber der Ton
    macht bekanntlich die Musik.... :pfeif: und da sehe ich durchaus noch Verbesserungs-Potential.


    Eine Sache leuchtet mir hingegen nicht ein:


    Wie kommst du denn auf diesem Überlauf :huh: (oder hast du da nur wahllos etwas eingetippt ?)
    Laut Handbuch sind bei ABB die NUMs nach ANSI IEEE 754-1985 (Single) kodiert (siehe http://de.wikipedia.org/wiki/IEEE_754),
    d.h. die größte darstellbare Zahl liegt bei ca. 3,403·1038.


    Selbst wenn der Prozess nonstop im Sekundentakt laufen würde (was beim Schweißen ja wohl selten der Fall sein wird),
    wäre der Zählerstand nach einem Jahr bei 3,1536·107 (= 60*60*24*365).
    D.h. der Zähler würde so ungefähr nach 1,08·1031 ( = 3,403·1038 / 3,1536·107) Jahren überlaufen.


    Glaubt man der Annahme, dass unser Sonnensystem noch vielleicht 4-5 Milliarden (109) Jahre existiert,
    hat der Zähler also noch ein wenig Luft nach oben.
    Ich würde mich sogar zu der Aussage hinreißen lassen, dass, selbst wenn die Menschheit (und der Roboter) bis dahin
    überleben und sie bei der Flucht aus dem zusammenbrechende Sonnenssystem die Schweißanlage mitnehmen würden,
    der Zähler selbst bis zum Ende des Universums nicht überlaufen wird.


    Ich glaube unter diesen Umständen würde ich mir eine Überlaufs-Prüfung sparen.
    Gute Programmierer machen das ....


    In diesem Sinne
    gruß
    rmac

    Einmal editiert, zuletzt von rmac ()

  • Hallo,


    hatte wirklich lange überlegt, ob ich das mal so in aller Deutlichkeit sage! Habe bisher auch immer Fragen beantwortet ohne ein Wertung abzugeben! Aber irgendwie musste das an dem Abend mal raus!
    War vielleicht zu brachial, wollte niemanden persönlich angreifen-was ich meines Ermessens auch nicht habe( im Gegensatz zu Anderen hier!) Ich stehe aber nachwievor zu dem was ich gesagt habe! Werde aber in Zukunft wieder neutral antworten! Letzendlich muss jeder selbst wissen, was er tut!


    Wegen des Überlaufs hatte ich im technischen Referenzhandbuch beim datentyp num geschaut:



    Der Datentyp num kann folgende Werte haben:
    • eine Ganzzahl, z. B. -5,
    • eine Dezimalzahl, z. B. 3,45.
    Er lässt sich auch in Exponentialschreibweise ausdrücken, z. B. 2E3 (= 2*10^3 = 2000), 2,5E-
    2 (= 0,025).
    Ganzzahlen zwischen -8388607 und +8388608 werden immer als exakte Ganzzahlen
    gespeichert.


    Ich hatte auch im RAPID-Überblick keine weitere Angabe über die Datenbreite eines num gefunden, deshalb hielt ich es für sinvoll, dort zu begrenzen.
    Die Frage, wo den nun counter im Listing von robprog das erste Mal auf 0 initialisiert werden soll, ist immer noch nicht beantwortet!!?? Wo würdet Ihr das tun, um auch über PZtoMain hinwegzählen zu können?


    Hoffe-Alles wieder gut


    dust2

    Einmal editiert, zuletzt von dust2 ()

  • Hi Zusammen,
    grundsätzlich würde ich eine "PERS nCounter:=0;" als erstes als Definition einsetzen.
    So die Rücksetzkriterien bestimmt die Verwendung. Wie hier schon angedeutet soll dies nur ein Tageszähler werden. Also liegt es auf der Hand die Tageszeit mit zu verwenden. Wie halt oben beschreiben. (CDate)
    Ich für mein Teil würde noch ein rollierende Datenfeld verwenden am Besten aus 7 Feldern. Da eine Woche ja bekanntlich sieben Tage hat und dort für jeden der bestimmten Tage Mo.---So. die Tagesstückzahlen hinterlegen. Somit kann man zumindesten die letzten Daten nachsehen. Wäre doch blöd wenn man immer um 23:59 den Zähler ansehen müsste um zu wissen wieviel den nun getan worden ist, oder? :uglyhammer_2:


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hi dust2,



    [...]Letzendlich muss jeder selbst wissen, was er tut![...]


    Yep, genau so ist es.



    [...]Ganzzahlen zwischen -8388607 und +8388608 werden immer als exakte Ganzzahlen gespeichert. [...]


    Das hatte ich bislang überlesen. Hab ich wieder was dazu gelernt. Thx...



    [...]Die Frage, wo den nun counter im Listing von robprog das erste Mal auf 0 initialisiert werden soll, ist immer noch nicht beantwortet!!?? Wo würdet Ihr das tun, um auch über PZtoMain hinwegzählen zu können?[...]


    Ich denke
    PERS num nCounter:=0;
    sollte hierfür ausreichend sein. Rücksetzen dann z.B. über das Panel.


    Gruß
    rmac

  • Hallo zusammen


    nun möche ich auch noch mal meinen senf dazu geben !!
    Danach ist das thema dann für mich erledigt !


    1. ob nun var oder pers das ist nun wirklich jeden selbst überlassen !!!
    vieleicht will man garnicht den pers-effekt !?!
    also war das nicht falsch was ich da geschrieben habe !


    2. wenn ich immer nur +/- 1 zähle wie soll da meine num ein real annehmen ??
    einfach mal so ???


    3. mit dem taster war nur ne fixe idee wie man auf die schnelle ein reset erzeugen kann (ist das falsch ????) !


    natürlich kann ich das ding auch noch toll visualisieren kann auch ne fahne wackeln lassen bei jedem 10.teil
    und mit dem reset kann man auch nen mondkalender programmieren da tut sich der zähler immer bei vollmond zurücksetzen


    aber das war hier alles nicht die frage !!


    und zum thema "wollte niemanden persönlich angreifen" dann hättest du dir aber auch deinen 1.satz
    "Also roboprog, wennschon dann......" (das ist für mich persönlich) klemmen können!


    Und jetzt schluß mit der scheiße ich kanns nicht mehr lesen was hier ab geht wegen so einer banalität !!
    ich glaube wir sollten jetzt alle :beerchug: und uns auf andere fragen hier im forum konzentrieren !!!





    MFG
    Roboprog


    PS Erfahrungen vererben sich nicht – jeder muß sie allein machen...

    Die dümmsten Programmierer haben die dicksten Programme

  • Hi,



    [...]2. wenn ich immer nur +/- 1 zähle wie soll da meine num ein real annehmen ??
    einfach mal so ???[...]


    Braucht sie nicht annehmen, ist sie nämlich schon.....
    Soll heißen: Ganzzahlen werden in RAPID nicht explizit in einem Ganzzahlen-Format (Integer) gespeichert,
    sondern immer als Gleitkommazahlen.


    gruß

  • und was gibt es da für ein problem ???


    ich verstehe das ganze trara nicht für so eine simple anwendung wo nix verglichen oder berechnet wird ist das doch wohl egal


    gruß

    Die dümmsten Programmierer haben die dicksten Programme

  • Doch, es gibt da ein Problem:


    Ich habe mir die Sache nochmal durch den Kopf gehen lassen und
    muß dust2 doch teilweise recht geben. :oops::applaus:


    Ich revidiere mich zwar ungerne :pfeif:, aber andererseits möchte
    ich hier auch nichts Falsches stehen lassen.


    Wie schon gesagt, ist der (echte) Überlauf der NUM (=Single real) nicht das
    Problem, aber der (Gleitkomma-)Zähler wird irgendwann mal so groß (> 16777216),
    dass das Inkrement (+1) kleiner als die speicherbare Genauigkeit
    (7-8 Stellen bei Single) wird
    . D.h. beim nächsten Inkrement fällt die +1
    damit unter den Tisch und der Zähler zählt nicht mehr weiter sondern bleibt
    bei 16777216 stehen
    .
    Im Klartext: (num)16777216 + 1 = (num)16777216


    Insofern wäre die Prüfung einer Obergrenze (wie von dust2 vorgeschlagen :blumen: )
    doch sinnvoll, allerdings dann erst bei 16777216.
    Also wenn ihr mal einen Zähler habt, der (mit Inkrement +1 bzw. kleinen Inkrementen)
    bei 16777216 stehen bleibt, dann wisst ihr jetzt warum.... :mrgreen:


    Ziehe hiermit meinen Einwand also zurück.... :liebe029:
    gruß
    rmac

  • ok


    das sehe ich ein !!!


    habe zwar noch nie eine schweißanwendung gesehen die 16777216 teile am tag produziert
    aber ist ja auch egal !!


    ich werde ab jetzt meine zähler auch beschränken
    doch nur wenn ich vermute das ich auch in diesen bereich komme
    denn sonst wird das prog doch ziemlich unübersichtlich
    und ich bin nur noch damit beschäftigt aktionen zu programmieren die warscheinlich sowieso nie eintreten!
    was für mich beruhigend ist das hier niemand außer dust2 das wuste mit dem überlauf
    also brauche ich mir da keine vorwürfe zu machen das ich das bisher bei teilezählern nie gemacht habe!!
    oder das hier irgendjemand ein schlechter programmierer währe!!
    man lernt ja nie aus !


    MFG
    Roboprog

    Die dümmsten Programmierer haben die dicksten Programme

  • Hi,
    der Überlauf war mir schon bekannt aber bei einem Tageszähler macht das, so wie Du schon sagst, keinen Sinn! :uglyhammer_2:


    Hier im Forum gehts es nicht darum ein guter oder schlechter Programmierer zu sein! Hier geht es darum über Themen zu diskutieren, wie wir das ja auch gemacht haben, und eventuell, nach jedem persönlichen Bedarf, auch einen Information mit in sein alltägliches Programmiererleben mitzunehmen.


    Also in dem Sinne weitermachen!


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

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