printedtimecomp in web socket API

Hallo

Ich bin dabei die API zu verwenden, dabei ist mir aufgefallen das gleich nachdem ich einen Printjob gestartet habe nicht die richjtigen Werte ausgegeben werden.

Noch in der Aufwärmphase bekomme ich zb.

'printTime': 669.4892434422834, 'printedTimeComp': 500.0,
Sollte printeTimeComp nicht die schon gedruckte Zeit sein?

Woher kommen die 500.0?  Muss ich das noch etwas zurücksetzen?
Repetier-Server Pro 1.1.2

lg Chris

Comments

  • API Call printer/api/Creality_Ender_5?a=listPrinter

  • Mir ist aufgefallen das es unabhängig von der Druckzeit ist.

    'printTime': 6322.271346611896, 'printedTimeComp': 500.0,

    Die 500 bleiben und nach ein paar Minuten werden 602,5 daraus. Immer
    lg Chris
  • Am Anfang gibt es einen großen Sprung wegen M109/M190 warten auf Temperatur. Der Befehl ist gesendet und Berechnung nimmt an, das er ausgeführt wurde und die Befehle dauern lange je nach Zieltemperatur. Aber spätestens im Druck sollte es dann kontinuierlich steigen je nach G-Code.
  • Ok das wäre mir klar. Aber warum werden fiktive Werte genommen? Repetier sollte ja wissen wann der Druck begonnen hat.
    Es fängt immer mit 500 (8,33 Minuten) an obwohl ja erst gestartet wurde, das erhöht sich dann auf 602,5 (10,04 Minuten) obwohl er nach effektiven 5 Minuten anfängt zu drucken. Erst dann erhöht sich der Wert kontinuierlich und liegt immer falsch zur echt vergangenen Zeit.

    Ich verwende jetzt "done" für meine Berechnung, da passt es.

    Danke, lg Chris
  • Hast du mal den temperatur Wizard in der Tool Konfiguration laufen lassen? Die hohen Werte kommen von den dort eingetragenen Heizgeschwindigkeiten. Je genauer sie mit deiner echten Zeit passen desto geringer der Fehler. 
    printTime ist die Druckzeit in der simulation, printedTimeComp ist die simulierte Druckzeit basierend of was gesendet wurde. Wenn also M109 gesendet wurde macht der gleich einen Sprung aber der Drucker blockiert den Befehl bis er durch ist. Daher die Sprünge bei langsamen Befehlen.
  • Hab ich nicht. Die Sprünge würden mich ja nicht so stören nur am Ende schießt er ca. um diese Werte übers Ziel hinaus.
    Mit einer Berechnung mit "done" ist der Druck bei 95 bis 99 Prozent fertig. Eine Berechnung mit "printedTimeComp" komme ich auf gute 140 bis 150 Prozent. Evl. müsste auch "printTime" angepasst werden.
    Auf der Repetier Server Webansicht ist der Druck auch immer vor 100% fertig. Ich kann nicht sagen ob das in vorherigen versionen auch so war. Aufgefallen ist es mir erst jetzt da Cura auf einmal über 100% hinaus anzeigt.
  • Eigentlich sollten beide simulation am ende die gleiche Zeit haben. Aber die für die Endzeit wird beim hoch laden berechnet bzw. wenn sich ein relevanter Wert ändert. Kann aber sein das dies mal nicht passiert ist. Daher wird ab dem nächsten release bei jedem Druckstart noch mal neu die Zeit berechnet sozusagen zur korrektur.

    Wenn du den code neu hochlädst bleibt die Differenz? Wenn ja, kannst du den code mal posten. Das sollte nicht der Fall sein und ist es normal auch nicht zumindest bei mir. Hast du noch irgend was anderes Konfiguriert das eingefügt wird und die Zeit beeinflussen könnte? Also ersetzungen... -sollten zwar rausgerechnet werden aber da es ja offenbar nicht passt kann es auch ein bug sein.
  • Es ist eigentlich egal welchen Code ich auf die Drucker schicke. Bei beiden Druckern das gleiche Resultat. Ender 5 und Anycubic Chiron. Auch nach einer Kalibrierung. Ender 5 printedTimeComp = 500 AnyCubic printedTimeComp = 400

    Irgendwie steh ich auf dem Schlauch. Der Repetierserver bekommt ja mit wann echt zum Drucken begonnen wird. Warum kann man da nicht die Vergangene Zeit vom Start weg berechnen? Das was ich bei "done"
     zurückbekomme ändert sich ja auch. Wie macht Ihr diese Berechnung?

    Je grösser der GCode um so weniger fällt die vergangene Starzeit auf, jedoch am Ende sind die Werte in Cura über 100% und im Repetier Web unter 100%
    Ein gerade gestarteter 8 Std. Druck steht bei 1% einer der nur 15 Min dauert steht gleich nach dem Start auf 57%

    Im Repetirserver Web ist er auf ca. 1%
    Wenn ich im Curaplugin mit den "Done" wert berechne sind beide gleich. Unter 100% fertig. Damit kann ich ja leben.
    Anders ist es eben wenn er über 100% hinaus rechnet da kann ich das nicht einschätzen wie lange es noch dauern könnte.


  • printedTimeComp stimmt auch nicht mit der angegebenen Druckzeit im Web überein
  • Done basiert auf gesendete Zeilen und nicht auf der Druckzeit, daher passt das.

    Nutze kein Cura kann daher nicht sagen was die für Zeit heranziehen. Oder meinst du die von Cura berechnete Druckzeit? Aber auch die ist unerheblich. Wichtig ist was intern berechnet wird im Server.

    Du must unterscheiden: echte Druckzeit und Zeit die er simuliert benötigt hätte. Restzeit ist simulierte Druckzeit - simulierte Druckzeit des gesendeten Teils. Wenn beide simulation identisch sind ist dann am ende 0s Restzeit übrig.

    Am Anfang gibt es die Sprünge wie berets erklärt wegen des Aufheizens. Sobald der Befehl gesendet wird ist der im Fortschritt sichtbar. Bei der % angabe die Zeilen zählt fallen bei kurzen gcodes die vielen Kommentarzeilen am Anfang leicht auf. Insbesondere wenn der eigentliche gcode wenig Zeilen weil weil z.b. alles rechteckig ist.

    Bekommst du jetzt Prozentangaben in unserem GUI über 100% - dann bitte mal Druckerkonfig und gcode (kurz) posten. Dann hab ich was, was ich untersuchen kann. Wenn ich es reproduzieren kann, dann kann ich es vielleicht noch ins nächste release bringen, müsste aber schnell geschehen weil es so gut wie fertig ist.
  • edited September 2021
    In der Gui ist der Drucker meistens bei 90-95% fertig. Die Anzeige in der Gui Druckzeit stimmt eigentlich nur aus der API ist die Druckzeit wie gesagt eine andere.
    Wird in der GUI für die Druckzeit eine andere Berechnung gemacht als in der API? Schön wäre es wenn man in der API auch diese Zeit im JSON findet.
    Wie kann ich eine Datei anhängen? Den Punkt gibts bei mir nicht.

    Cura benötigt "printTime" und "printedTimeComp" damit wird gerechnet, wobei es geht mir ja darum was mir die API ausspuckt.
  • Dateien kann man nicht anhängen, must du pastebin oder dropbox oder ähnlichen service nutzen.

    Die gui fragt auch über api ab, ist ja auch nur eine webapp. Hier mal der Codeausschnitt wo es erzeugt wird. Am ende stehen die API namen aus den Feldern.

    <table style="width: 100%;white-space: nowrap;margin:-5px 0">
    <tr ng-show="ctrl.r.active.status.analysed">
    <td style="white-space: nowrap;"><strong><?php _('ETA:') ?></strong>&nbsp;
    </td>
    <td style="padding-right: 10px;">{{(ctrl.r.stateTime + 1000*(ctrl.r.active.status.printTime-ctrl.r.active.status.printedTimeComp))
    | date:'short'}}
    </td>
    <td>
    <strong class="hidden-xs"><?php _('Start') ?>:</strong>
    </td>
    <td style="width: 100%">
    <span class="hidden-xs">
    {{1000*ctrl.r.active.status.printStart| date:'short'}}
    </span>
    </td>
    </tr>
    <tr ng-show="ctrl.r.active.status.analysed">
    <td style="white-space: nowrap;"><strong><?php _('ETE:') ?></strong>&nbsp;
    </td>
    <td style="padding-right: 10px;">
    {{ctrl.r.active.status.printTime-ctrl.r.active.status.printedTimeComp | hms}}
    </td>
    <td>
    <strong class="hidden-xs"><?php _('Printing Time:') ?></strong>&nbsp;
    </td>
    <td>
    <span class="hidden-xs">
    {{ctrl.r.stateTime/1000 - ctrl.r.active.status.printStart | hms}}</span>
    </td>
    </tr>
  • Danke
    Ich bin davon ausgegangen das "printedTimeComp"
    ctrl.r.stateTime/1000 - ctrl.r.active.status.printStart

    liefert. Das wär ja die schon gelaufene Zeit
    Gibt es zur API eine Beschreibung wo dabei steht was da gemeint ist was geliefert wird?
  • Ich berechne das jetzt trotzdem mit "done" kommt am besten an realistische Werte und nie über 100%
    In der Weboberfläche wir auch ETE meiner Meinung nach nicht richtig angezeigt. Ein 15 Minuten Druck steht ETE auf 7 Minuten bei Druckzeit 5 Minuten und wenn die ETE Zeit abgelaufen ist steht bis zum Druckende ""wird berechnet"

    Aber trotzdem Danke.

    lg Chris
  • Die aktuell beste Beschreibung ist Entwicklung aber schon hier zu finden:
    https://prgdoc.repetier-server.com/v1/docs/index.html#/
Sign In or Register to comment.