Hallo, ich möchte gerne meinen Parallelportdrucker erst mit Strom versorgen, wenn Daten am parallelen Port anliegen. Der Drucker verbraucht im Standby 16W und hängt an meinem Server. Gibt es am Parallelport ein Signal welches sich ändert, sobald über die Schnittstelle Daten gesendet werden? Mit diesem Signal würde ich dann ein Relais schalten, welches den Drucker einschaltet. Könnte das funktionieren? Sven
Die Drucker brauchen normal einige Zeit bis sich sie initialisieren, GANZ so einfach wird das also nicht. Was benutzt Du auf dem Server denn als Spooler? Vlt. kannst du dem Beibringen sich irgendwo zu melden (serial-port?) um den Drucker in Betrieb zu nehmen sobald es Aufträge gibt.
Linux? Wir haben sowas hier für Linux laufen. Ein Script überwacht cups, ob ein neuer Druckauftrag eingegangen ist, und schaltet den Drucker über ein am Serialport befindliches Relais ein (macht einfach den Port auf). Nach einer bestimmten Zeit, und wenn kein neuer Druckjob eingetrudelt ist, wird wieder ausgeschaltet. Kommt ein neuer Job, startet die Zeit von vorne. Hardware ist simpel, einfach ein Relais, ein Transistor, 2 Dioden am COM-Port. Stromversorgung des Relais aus den 12V des Servers. Klappt super seit Jahren.
Ich benutze Windows 2003 Server. Serieller und Paralleler Port sind vorhanden. Als Treiber ist der HP Laserjet 6P installiert und als Spooler der von Windows Server. Wie ich dem nun allerdings beibringen soll, dass er zusätzlich noch ein Signal an der Seriellen ausgeben soll, wenn Daten ankommen, da bin ich überfragt. Falls das einer weiß, immer her damit. Ansonsten stelle ich mir das genau so vor, wie es Christian R. beschrieben hat, halt nur für Windows. Ich hatte halt gedacht, dass irgendein Signal der parallelen Schnittstelle wechselt, sobald Daten an den Drucker gesendet werden. Das der Drucker Zeit zum Aufwärmen benötigt ist mir klar, allerdings druckt der auch die Daten noch aus, wenn sie schon eine Weile im Spooler liegen und ich den Drucker per Hand einschalte. Das sollte also nicht das Problem sein. Eine Hardwarelösung wäre mir am liebsten, da ich derzeit einen Schalter entwickle, welcher auch den Server abschaltet, sobald kein Client mehr im Netz ist (das läuft allerdings über die Linklampe des Switches und da ist ja der Drucker nicht angeschlossen). Da ich den Drucker aber nur sehr selten benutze (so 1-2x im Monat) wollte ich den halt nur einschalten, wenn was gedruckt werden soll. Gruß Sven
Wir wollten das auch erst komplett als reine Hardware-Lösung machen. Ging aber nicht. Prinzipiell gibts das Signal schon, aber der Druckertreiber startet erst mal überhaupt nix, solange der Drucker nicht das Busy-Signal weggenommen hat. Auch als wir das quasi manuell simuliert hatten, tat sich noch nix, eventuell tauschen Treiber und Drucker beim Einschalten des Druckers noch weitere Daten aus. Schreib dir doch ein kleines Programm, was den Spool-Ordner überwacht, den wird´s ja sicher bei Windows auch geben.
Normalerweise ist windows der Status des Druckers egal. die Aufträge werden einfach in die Warteschlange eingereit. (Der Treiber könnte da zwar machen, aber das ist mir bis jetzt nicht untergekommen) Einfach einen kleinen Dienst schreiben und die Warteschlange abfrage, wenn ein Auftrag drin ist dann über die Serielle schnittstelle den Drucker einschalten, wenn die Wartechlange leer ist. noch eine kurzen Moment warten und ann ausschalten.
Das klingt ja schon mal recht vielversprechend. Allerdings habe ich ein Problem: Ich kann zwar µC in Assembler programmieren und habe auch schon ein wenig html und php gemacht (früher auch mal drei Jahre lang Turbo-Pascal :-) aber wie man einen Dienst schreibt oder die Warteschlange abfragt, da habe ich keinen Plan von. Ich versuche mir zwar derzeit Delphi beizubringen, dass ist aber noch viel Neuland für mich. Könntet ihr mir da sagen, wie man das angeht bzw. wo ich mir das Wissen dazu aneignen kann? Danke schon mal für eure Unterstützung.
Bei einigen Eps*n-Druckern stand im Handbuch eine Tastenkombination wie man einen Hexadump damit ausdruckt. So könnte man den gesamten Datenstrom auf einfache Art analysieren. Man sollte jedoch bedenken, daß Laserdrucker in der Aufheizphase ca. den 10-fachen Strom brauchen. Daher lohnen sich solche Klimmzüge wegen 10 Minuten Stillstand noch nicht.
mit Delphi sollte es kein Problem sein, wenn man beim anlegen eines neuen Projektes nicht Anwendung sondern Service/Dienst wählt hat man schon fast alles zusammen, das Abfrage der Druckerwarteschange geht über die WindowsApi http://msdn.microsoft.com/en-us/library/ms535514(VS.85).aspx
> Man sollte jedoch bedenken, daß Laserdrucker in der Aufheizphase > ca. den 10-fachen Strom brauchen. Das hängt vom Drucker ab. Neuere Druckwerke haben eine nur für den Fixiervorgang selbst beheizte Fixiereinheit, das sind die, die binnen 10..15 sec nach dem Einschalten/Aufwachen aus Standby die erste Seite drucken können.
Genau diese Heizung der Fixiereinheit braucht in der Anheizspase etwas mehr Strom. Sonst dauerts länger.
Das ist ja alles richtig, aber ich hatte doch schon geschrieben, dass ich meinen Drucker nur 2-3x im Monat benutze. Der steht allerdings in der Abstellkammer zusammen mit dem Server. Drucken tun da sowohl meine Kinder, als auch meine Frau und ich drauf. Er bekommt also von vier Stellen seine Druckaufträge. Im Moment läuft er den ganzen Monat im Standby (16W), was also ca. 11kWh pro Monat entspricht. Ist sicher nicht die Welt, läppert sich aber mit dem Switch und dem Router und dem Server. Deshalb plane ich ein Gerät welches die Geräte nur einschalten soll, wenn sie benötigt werden, speziell in diesem Thread: die Ansteuerung des Druckers. @ Peter (Gast): Das überschreitet leider derzeit noch meine Kenntnisse. Ich bin mit meinem Delphibuch erst auf Seite 56 (also noch beim Einführungsbeispiel). Ich kann zwar ein neues Projekt als Service anlegen, weiß dann aber absolut nicht weiter...
Schlecht ist, wenn durch Ausschalten undefiniert halbe Druckaufträge übrig bleiben. Dann könnten Druckdaten, die fälschlich als Steuerzeichen erkannt werden, zu einen wirren Ausdruck vieler Blätter führen. Sonst wäre eine Schaltuhr am HP6 die schnellste Lösung.
Deshalb bin ich ja auf der Suche nach einem Signal an der LPT, welches ich mit einem µC auswerten kann. Wenn z.Bsp. das Strobe-Signal immer aktiv wird, wenn der Server Daten sendet, dann könnte ich das auswerten. Ist der Drucker noch nicht an, schaltet der Controller ihn ein und startet eine Wartezeit von 10 Minuten, welche immer wieder resetet wird, solange Daten ankommen. Kommen 10 Minuten keine Daten mehr, dann wird der Drucker wieder abgeschaltet. Ich bin halt nur auf der Suche nach solch einem Signal, da ich die Arbeitsweise der par. Schnittstelle nicht so genau kenne. Man könnte das sicher auch mal probieren, lieber wäre mir aber ich wüsste es genau, weil dieses gesuchte Signal halt immer aktiv wird, wenn der PC Daten sendet und es inaktiv ist, wenn der PC nichts sendet.
Hi Stepp64, ich bin auf genau derselben Suche wie Du! Was hast Du inzwischen herausgefunden? Vielen Dank im Voraus!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.