Automatische Erkennung von Com-port?
Automatische Erkennung von Com-port?
Hallo
Ich suche für ein Projekt eine Möglichkeit, die verteilte COM-Port Nummer automatisch zu erkennen und Profilab mit Hardware zu verbinden.
Genauer: USB IO-Karte HB628 wird angesteckt und erhält eine Com-Port nummer vom System. Wie kann ich diese Com-Portnummer selbstständig mittels Profilab expert auslesen und mit Karte verbinden?
tschau Joergimd
Ich suche für ein Projekt eine Möglichkeit, die verteilte COM-Port Nummer automatisch zu erkennen und Profilab mit Hardware zu verbinden.
Genauer: USB IO-Karte HB628 wird angesteckt und erhält eine Com-Port nummer vom System. Wie kann ich diese Com-Portnummer selbstständig mittels Profilab expert auslesen und mit Karte verbinden?
tschau Joergimd
Re: Automatische Erkennung von Com-port?
Ich denke nicht, dass das möglich ist, aber vielleicht hat ja noch jemand eine Idee...
ABACOM support
Re: Automatische Erkennung von Com-port?
Es wären meines Erachtens folgende Voraussetzungen nötig:
zu 2. Kann ich nicht beantworten. Alternativ kann man auch ein Kommando senden und die Antwort abfragen.
- 1. Man kann aus PLE im Run Modus automatisch den COM port ändern
2. Deine Karte sendet einen bestimmte "Kennung" um dann in PLE zu prüfen ob der gewählte Com Port der richtige ist.
zu 2. Kann ich nicht beantworten. Alternativ kann man auch ein Kommando senden und die Antwort abfragen.
stachlige Grüße, Kaktus
Re: Automatische Erkennung von Com-port?
hallo nochmal.
karte sendet HB628 etwas weiter dann den (COM16)
die Systeminformation als txt-datei ausgelesen speziell für die Ports.
also habe ich eine txt-datei nur für die angeschlossenen COM-Ports.
Dieses als Commandline befehl erstellt.
jetzt brauche ich noch eine möglichkeit um aus der txt-datei diese benötigte Comport nummer herauszufiltern als Variable um diese Variable in die Profilab Konfigdatei einzusetzen.
danach dann erst profilab-start.
dann hat profilab automatisch gleich die richtige COM-Port Nr. ohne nachzuschauen und von Hand jedesmal neu einzutragen.
Ich bin nämlich dabei das Videostreamprogramm Adobe FlashMediaLiveEncoder mittels der HB628 für Internet online/offline und Stream Start/Stopp fernzubedienen.
Dieses mittels Batchdateien die von Profilab aus aufgerufen werden. Ergebnisse über 2 Duo-led mit lediglich 2 Ausgabeport-verbrauch und nachgeschalteten 7404 zum Signal wandeln. Digitalausgangsport =1 grün. =0 rot über 7404. So die Überlegung.
karte sendet HB628 etwas weiter dann den (COM16)
die Systeminformation als txt-datei ausgelesen speziell für die Ports.
also habe ich eine txt-datei nur für die angeschlossenen COM-Ports.
Dieses als Commandline befehl erstellt.
jetzt brauche ich noch eine möglichkeit um aus der txt-datei diese benötigte Comport nummer herauszufiltern als Variable um diese Variable in die Profilab Konfigdatei einzusetzen.
danach dann erst profilab-start.
dann hat profilab automatisch gleich die richtige COM-Port Nr. ohne nachzuschauen und von Hand jedesmal neu einzutragen.
Ich bin nämlich dabei das Videostreamprogramm Adobe FlashMediaLiveEncoder mittels der HB628 für Internet online/offline und Stream Start/Stopp fernzubedienen.
Dieses mittels Batchdateien die von Profilab aus aufgerufen werden. Ergebnisse über 2 Duo-led mit lediglich 2 Ausgabeport-verbrauch und nachgeschalteten 7404 zum Signal wandeln. Digitalausgangsport =1 grün. =0 rot über 7404. So die Überlegung.
Re: Automatische Erkennung von Com-port?
Um die Textdatei auszuwerten, kann man vielleicht mit der Komponente "Datei-Readline" etwas
sinnvolles herstellen.
sinnvolles herstellen.
ABACOM support
Re: Automatische Erkennung von Com-port?
Ein herzliches Hallo an alle,
zu diesem Thema habe ich eine Frage, obwohl der Beitrag schon recht betagt ist. In der Baugruppe "Com String empfangen" kann ich nur manuell die Ports auswählen. ist es möglich diese Auswahlliste automatisch abzufragen und bei Erkennen eines Ports die Verbindung herzustellen?
zu diesem Thema habe ich eine Frage, obwohl der Beitrag schon recht betagt ist. In der Baugruppe "Com String empfangen" kann ich nur manuell die Ports auswählen. ist es möglich diese Auswahlliste automatisch abzufragen und bei Erkennen eines Ports die Verbindung herzustellen?
Re: Automatische Erkennung von Com-port?
Hallo,
ich habe dieses Problem jetzt selbst gelöst und kann zunächst Port 1-15 automatisch einlesen bei bestehender Datenübermittlung. Über eine Kaskade lässt sich die Anzahl noch erweitern. Dazu habe ich einen StringMultiplexer (mit 15 Eingängen) und für jeden Port einen StringCom verwendet. Die Binärcodierung habe ich über Gatter und die Auswertung des aktiven Ports über den Busy-Ausgang vorgenommen.
Bei Interessen kann ich die Schaltung posten.
ich habe dieses Problem jetzt selbst gelöst und kann zunächst Port 1-15 automatisch einlesen bei bestehender Datenübermittlung. Über eine Kaskade lässt sich die Anzahl noch erweitern. Dazu habe ich einen StringMultiplexer (mit 15 Eingängen) und für jeden Port einen StringCom verwendet. Die Binärcodierung habe ich über Gatter und die Auswertung des aktiven Ports über den Busy-Ausgang vorgenommen.
Bei Interessen kann ich die Schaltung posten.
Re: Automatische Erkennung von Com-port?
Erlaubt ist was gefällt. Prinzipiell kann es aber Probleme machen alle verfügbaren Schnittstellen zu öffnen und probeweise zu befeuern. So habe ich den Ansatz jedenfalls verstanden. Wenn nur ein einzelnes Gerät dranhängt, könnte man das wohl vertreten.
ABACOM support
Re: Automatische Erkennung von Com-port?
Kommt es dadurch zu zeitkritischen Konflikten oder worin liegt das Problem. Für mich ist es wichtig, auch die Grenzen des Möglichen kennenzulernen, da ich wie gesagt dabei bin mich einzuarbeiten.
Das Erkennen funktioniert schon zuverlässing. Ich habe nur das Problem, dass ich 9 Messwerte zur aus einem String mit 3x15 Blöcken mit StringCom auslese. Das Selektieren funktioniert auch nur das er teilweise manche Blöcke nicht erfasst und dann auch nicht anzeigt sowohl mit als auch ohne Erkennen der Ports. Ich kann mir vorstellen das sich da viele Fehlerquellen auftun, aber irgendwie muss ich mich ja herantasten.
Das Erkennen funktioniert schon zuverlässing. Ich habe nur das Problem, dass ich 9 Messwerte zur aus einem String mit 3x15 Blöcken mit StringCom auslese. Das Selektieren funktioniert auch nur das er teilweise manche Blöcke nicht erfasst und dann auch nicht anzeigt sowohl mit als auch ohne Erkennen der Ports. Ich kann mir vorstellen das sich da viele Fehlerquellen auftun, aber irgendwie muss ich mich ja herantasten.
Re: Automatische Erkennung von Com-port?
Helfen kann man nur wenn man das projekt gesehen hat, am besten auch mal den Mitschrieb was da gesendet wird.
stachlige Grüße, Kaktus
Re: Automatische Erkennung von Com-port?
Hallo Kaktus,
vielen Dank für die Antwort. Anbei habe ich das Projekt beigefügt.
Es geht um ein 3-Kanal-Umweltmessgerät, das Daten über die serielle Schnittstelle jede Sekunde sendet. Dabei handelt es sich um 3 Parameter (Sauerstoffgehalt (Ox), Leitfähigkeit(Co), pH-Wert). Die Daten von jedem Sensor werden in 15 Blöcken (";"-getrennt) in einem String gesendet. Dieser String sieht dann so aus:
Multi 3430; 10360049;2;07.08.2009 03:37:57;480,0;5S/cm;Cond;25,3;0C;Temp;;+++;C = 0,477 1/cm Tref25 nLF;TetraCon 925; 10020296;Multi 3430; 10360049;2;07.08.2009 03:37:57;8,33;mg/l;Ox;25,8;0C;Temp;AR;+++;SC-FDO 925 11280334 [/color]t90 = 30 s;FDO 925; 10161880;Multi 3430; 10360049;2;07.08.2009 03:37:57;7,914;;pH;25,8;0C;Temp;AR;+++;;SenTix 940; C173734036;
ROT: Beginn des Strings pro Sensor
GRÜN: Kennung für die 3 Parameter
BLAU: Messwerte und Seriennummern
"Multi" ist der Selektionsstring für ComString. die Formel ermittelt aus dem realen Sauerstoffwert in mg/l den relativen Sauerstoffwert in %.
Das Makro dient der Ermittlung des Comports. Wenn ich dieses Makro abschalte, dann werden die Werte besser erkannt, aber dann gibt es trotzdem noch Aussetzer.
Die Daten werden dann im Display und über DDE in eine Exceltabelle übertragen.
Gruß Jörg
vielen Dank für die Antwort. Anbei habe ich das Projekt beigefügt.
Es geht um ein 3-Kanal-Umweltmessgerät, das Daten über die serielle Schnittstelle jede Sekunde sendet. Dabei handelt es sich um 3 Parameter (Sauerstoffgehalt (Ox), Leitfähigkeit(Co), pH-Wert). Die Daten von jedem Sensor werden in 15 Blöcken (";"-getrennt) in einem String gesendet. Dieser String sieht dann so aus:
Multi 3430; 10360049;2;07.08.2009 03:37:57;480,0;5S/cm;Cond;25,3;0C;Temp;;+++;C = 0,477 1/cm Tref25 nLF;TetraCon 925; 10020296;Multi 3430; 10360049;2;07.08.2009 03:37:57;8,33;mg/l;Ox;25,8;0C;Temp;AR;+++;SC-FDO 925 11280334 [/color]t90 = 30 s;FDO 925; 10161880;Multi 3430; 10360049;2;07.08.2009 03:37:57;7,914;;pH;25,8;0C;Temp;AR;+++;;SenTix 940; C173734036;
ROT: Beginn des Strings pro Sensor
GRÜN: Kennung für die 3 Parameter
BLAU: Messwerte und Seriennummern
"Multi" ist der Selektionsstring für ComString. die Formel ermittelt aus dem realen Sauerstoffwert in mg/l den relativen Sauerstoffwert in %.
Das Makro dient der Ermittlung des Comports. Wenn ich dieses Makro abschalte, dann werden die Werte besser erkannt, aber dann gibt es trotzdem noch Aussetzer.
Die Daten werden dann im Display und über DDE in eine Exceltabelle übertragen.
Gruß Jörg
- Dateianhänge
-
- Online11-12 red. Par. Formel DDE Makro.prj
- (31.67 KiB) 213-mal heruntergeladen
Re: Automatische Erkennung von Com-port?
So aufgeschrieben sieht es vielleicht etwas freundlicher aus. Sind da vielleicht doch noch irgendwo Trennzeichen im Protokoll, die die Sache vereinfachen könnten?
Der Ansatz mit den Puffern aus obigem Projekt erschließt sich mir nicht. Auf das zeitgleiche Takten mehrerer Empfänger dürfte problematisch sein. Die "COM-Erkennung" ist ja vielleicht auch erstmal verzichtbar.
Da (vermutlich) immer die gleiche Anzahl an Feldern übertragen wird, würde ich es mit $PART versuchen. Das "GPS-DEMO.PRJ" aus den RS232-Beispielen könnte vielleicht helfen, wenn man darin das Trennzeichen und den Filterstring entsprechend anpasst.
Code: Alles auswählen
[size=8]
Multi 3430; 10360049;2;07.08.2009 03:37:57; 480,0;5S/cm;Cond;25,3; 0C; Temp; ;+++; C = 0,477 1/cm Tref25 nLF;TetraCon 925; 10020296;
Multi 3430; 10360049;2;07.08.2009 03:37:57; 8,33; mg/l; Ox;25,8; 0C; Temp;AR;+++; SC-FDO 925 11280334 [/color]t90 = 30 s;FDO 925 ; 10161880;
Multi 3430; 10360049;2;07.08.2009 03:37:57; 7,914; ; pH;25,8; 0C; Temp;AR;+++; ;SenTix 940 ; C173734036;
[/size]
Da (vermutlich) immer die gleiche Anzahl an Feldern übertragen wird, würde ich es mit $PART versuchen. Das "GPS-DEMO.PRJ" aus den RS232-Beispielen könnte vielleicht helfen, wenn man darin das Trennzeichen und den Filterstring entsprechend anpasst.
ABACOM support
Re: Automatische Erkennung von Com-port?
Die Buffer hatte ich für die Zwischenspeicherung des Messwertes vorgesehen. Das Beispiel "GPS-Demo" mit $Hold war natürlich viel eleganter. Die Zwischenspeicherung mit $Hold hatte den Vorteil, das es zu keinen Datenabbrüchen mehr beim Logging kam. Die Abfrage der Comports erfolgt nur in den ersten 2 Sekunden, wodurch ich dann keine Probleme mit dem Logging der Messwerte mehr habe.