Hallo, ich habe folgendes Problem: ich habe 2 digitale 4 Kanal Thermometer von Voltcraft die ich gerne gleichzeitig über mein PC via Rs232 auslesen möchte. Zwar hat Voltcraft eine software zum auslesen mitgeliefert, jedoch kann sie immer nur zu einem Gerät zur selben zeit verbunden sein. Daraufhin habe ich die Thermometer über tera term angesprochen was zwar funktioniert, aber das erfüllt nicht den zweck. geplant ist eine batch datei die in einer schleife einen befehl sendet und die daten dann empfängt. über die Konsole habe ich versucht die Com ports anzusprechen was jedoch schief gegangen ist. der mode ist richtig eingestellt, jedoch wenn ich mit echo A> com4 den Befehl A sende, gibt es keine Reaktion. was einer was da falsch ist?
Alfred schrieb: > echo A> com4 den Befehl A sende, gibt es keine Reaktion. was einer was > da falsch ist? gibt es ein Datenblatt oder eine Beschreibung vom dem Thermometer?
Es gibt einmal das: http://www.produktinfo.conrad.com/datenblaetter/100000-124999/100356-da-01-en-Schnittstelle_DIGITALTHERMOM_300K_K201.pdf und das http://www.produktinfo.conrad.com/datenblaetter/100000-124999/100518-da-01-en-Schnittstelle_Voltcraft_K204_Datalogger.pdf
Alfred schrieb: > echo A> com4 den Befehl A sende, gibt es keine Reaktion. was einer was > da falsch ist? naja in der doku steht auch nichts davon drin das nach dem A irgendetwas auf dem gerät passieren soll - was erwatetst du? Die Antwort bekommt du natürlich nicht in einem Batchfile sinnvoll ausgertet. Da wirst du wohl etwas programmierne müssen. C# könnte man dafür nehmen.
Peter II schrieb: > Alfred schrieb: >> echo A> com4 den Befehl A sende, gibt es keine Reaktion. was einer was >> da falsch ist? > > naja in der doku steht auch nichts davon drin das nach dem A irgendetwas > auf dem gerät passieren soll - was erwatetst du? > > Die Antwort bekommt du natürlich nicht in einem Batchfile sinnvoll > ausgertet. Da wirst du wohl etwas programmierne müssen. C# könnte man > dafür nehmen. Bei einem A schickt er mir auf jeden fall Daten. In der Doku steht ja dass man mit A nach Daten fragt. Wenn ich diesen Befehl in TeraTerm mache, bekomme ich ja auch was zurückt nur ASCII codiert. Wenn es nötig ist würde ich es mit C coden da ich mich damit etwas besser auskenne. kennt jemand ne gute seite wo das abfragen von Com ports erläutert wird?
Alfred schrieb: > Wenn es nötig ist würde ich es mit C coden da ich mich damit etwas > besser auskenne. kennt jemand ne gute seite wo das abfragen von Com > ports erläutert wird? für windows wie üblich in der MSDN http://msdn.microsoft.com/de-de/library/windows/desktop/aa363201%28v=vs.85%29.aspx
REM Betriebsart mode com4 .... REM "AUFWACHEN" echo A> com4 REM Ende mit Ctrl+C copy com4 Eingangsdaten.Txt oder so... Allerdings nur für Kontrollzwecke, da Ende/Abbruch nur durch "Abbruch" (^C)
Hallo, @Alferd Vielleicht erwartet das Gerät nach dem "A" noch einen Zeilenumbruch ASCII(13)? Zum Testen könntest Du das "A" mitsamt Zeilenumbruch in eine Textdatei packen und mittels "Type" ausgeben. Mit freundlichen Grüßen Guido
Guido schrieb: > Hallo, > > @Alferd > Vielleicht erwartet das Gerät nach dem "A" noch einen Zeilenumbruch > ASCII(13)? Zum Testen könntest Du das "A" mitsamt Zeilenumbruch in eine > Textdatei packen und mittels "Type" ausgeben. > > Mit freundlichen Grüßen > Guido leider funktioniert das mit der txt datei auch nicht. noch jemand vorschläge?
Hallo, was sagt denn "mode com4" alles richtig? Mit freundlichen Grüßen Guido
Hallo, was ich mich schon die ganze Zeit frage, woher soll die Konosle wissen, dass die Daten an COM4: für sie bestimmt sind. Mit freundlichen Grüßen Guido
Hallo, vielleicht braucht's hier ein "type com4:" oder dergl.? Mit freundlichen Grüßen Guido
COMxx: Ist ein im System reservierter Name. Genauso wie CON oder PRN. Sagst Du nämlich, in der Konsole: "COPY Datei.Txt CON", so landet der Output auf der Konsole (Bildschirm). Sagst Du also "Copy Irgendwas.Txt COM1" so wird der Text zur seriellen Schnittstelle "COM1" geschickt. Ob der Mode-Befehl benötigt wird, hängt wahrscheinlich von den Defaults ab. Natürlich wird ... COM4 nur dann verstanden, wenn das Teil auch existiert. Siehe: System->Hardware oder so.
Hallo, amateur schrieb: > Sagst Du also "Copy Irgendwas.Txt COM1" so wird der Text zur seriellen > Schnittstelle "COM1" geschickt. Stimmt, aber die Daten von COM1 werden nicht automatisch zur Konsole zurückgeschickt. Mit freundlichen Grüßen Guido
Guido schrieb: > Stimmt, aber die Daten von COM1 werden nicht automatisch zur Konsole > zurückgeschickt. Deswegen und überhaupt wäre es einfacher, zum Testen ein Terminal-Programm zu benutzen, dem muss man den Umgang mit COM-Ports nicht erst beibringen. Ein altes Hyperterminal reicht völlig, dazu gibts noch Zillionen andere. Gruss Reinhard
Reinhard Kern schrieb: > Deswegen und überhaupt wäre es einfacher, zum Testen ein > Terminal-Programm zu benutzen, dem muss man den Umgang mit COM-Ports > nicht erst beibringen. und genau das hat er doch schon gemacht.
Auf der Konsole gelten dieselben Regeln wie überall: Schickst Du Daten an den Drucker (PRN), so gehen sie zum Drucker und nicht zur Konsole. Die Gute alte Syntax des Copy-Befehls lautet: Copy Quelle Ziel [Optionen] Der Befehl: Copy Textdatei.Txt CON sendet die Daten der Datei zur Konsole der Befehl: Copy CON Textdatei.Txt sendet alle, auf der Konsole eingegebenen Zeichen an die Datei Textdatei.Txt bis das Ende-Zeichen: ^C erreicht wird. Das sollte eigentlich schlüssig und einfach sein.
wenn du schon mode verwendest dann doch bitte complett oder woher weiß deine schnittstelle mit welchen parametern sie senden soll mode /? hilft weiter
Hallo, no no schrieb: > wenn du schon mode verwendest dann doch bitte complett oder woher weiß > deine schnittstelle mit welchen parametern sie senden soll > mode /? "mode com4:" gibt die Einstellungen bzw. den Status von COM4 aus. Da braucht's nicht mehr. Erst wenn hier Einstellungen nötig sind benötigt man mehr Parameter. Mit freundlichen Grüßen Guido
Hallo, amateur schrieb: > Das sollte eigentlich schlüssig und einfach sein. @amateur Du beschreibst immer nur den Teil, wie die Daten zu COM4 gesendet werden. Die Antwort von COM4 soll jedoch wieder "in die Konsole zurück". Ich glaube genau hierin liegt das Problem des Threaderstellers. Mit freundlichen Grüßen Guido
In meinem, praktisch vollständigen Batch-Programm, von heute Vormittag, habe ich den Mode-Befehl aus dem folgenden, einfachen Grunde unvollständig gelassen: Ich-nix-wissen-wie-seine-Schnittstellenparameter-aussehen. Oder anders ausgedrückt: Meine hellseherischen Fähigkeiten sind echt mangelhaft. Zugegeben, dabei unterstelle ich allerdings, dass die Eingabe von: "help mode", den normalen User nicht Überfordert. Natürlich gefolgt von einem Blick in die zugehörigen Datenblätter.
Um das nochmal klar zu stellen: die Parameter habe ich richtig eingstellt: Status for device COM4: ----------------------- Baud: 9600 Parity: None Data Bits: 8 Stop Bits: 1 Timeout: OFF XON/XOFF: OFF CTS handshaking: OFF DSR handshaking: OFF DSR sensitivity: OFF DTR circuit: OFF RTS circuit: OFF die ein- und ausgabe über Putty, TeraTerm oder ähnliches funktioniert einwandfrei, d.h ich sende einen von den Befehlen(A,H,K,R) und er macht genau das was er soll. das Problem ist, dass ich dafür eine Batch schreiben möchte die in einer Schleife die Daten ausliest und erstmal auf der Konsoleausgibt.Wär diese Schleife mit einem Terminalprogramm möglich hätte ich es so gemacht. wenn ich diesen Befehl jetzt aber in der Konsole teste passiert nichts. Guido und Peter haben mein Problem verstanden. Meint ihr es besteht die möglichkeit, dass das Gerät am Com4 port mit antwortet aber ich die nachricht nicht bekomme? kann man das irgendwie überprüfen bzw. testen?
Hallo, Alfred schrieb: > Meint ihr es besteht die möglichkeit, dass das Gerät am Com4 port mit > antwortet aber ich die nachricht nicht bekomme? Das ist meine Vermutung. Hast Du schon einmal versucht die Textdatei "A" mit Zeilenumbuch an COM4 zu senden und direkt danach COM4 auszulesen? Guido schrieb: > "type com4:" Mit freundlichen Grüßen Guido
Beides ist ohne explizites Programm nicht machbar. Entweder: COPY COM4 Textdatei.Txt (Die Umleitung endet bei ^C) oder: COPY COM4 CON wenn Du beides willst, musst Du VB oder eine "Echte" Programmiersprache verwenden.
amateur schrieb: > oder: COPY COM4 CON das klappt sowieso nicht, weil der Befehl nie endet, denn das Gerät sendet kein EOF-Zeichen. Der Batchprozess hängt dann endlos in der Empfangszeile. Man könnte sich zwar ein Utility schreiben, das genau die Antwort empfängt, aber dann macht man sich lieber gleich ein richtiges Programm für 2 oder mehr COMPorts. Gruss Reinhard
Hmm ok Danke, ao stark wollte ich mich jetzt nicht unbedingt für 2 Messungen einarbeiten aber danke für alle antworten, jetzt weiss ich wenigstens woran ich stehe.
Die Software des Geräteherstellers arbeitet offensichtlich nur mit einem COM-Port. Kannst du nicht zwei Instanzen des Programms laufen lassen? Sicherheitshalber ( wegen ini-Files etc) solltest du das Programm dann mehrfach in verschiedene Verzeichnisse installieren! Wie ich sehe, sind die Antworten des Geräts zumindest teilweise binär, d.h. es kommen Zeichen vom Gerät, die aus zu interpretierenden Flagbits bestehen. Bist du sicher, dass da keine Bitmuster zusammenkommen, die ein Steuerzeichen darstellen? Stell dir vor, da käme ein Bitmuster, das wie BS aussieht: dieses Muster/Zeichen würde das zuetzt übertragene löschen .... Vielleicht kommt da auch ganz früeh ein Bitmuster, das den Kanal wieder schliesst (Ctl-Z) ...
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.