TCP und String
TCP und String
Hallo an alle,
wie ist es möglich einen String von Projekt A nach Projekt B zu Senden alle meine Versuche sind gescheitert.
Ich versuche von einem Betriebsstundenzähler (Profilab Projekte) den Stringausgang von Projekt a nach Projekt B zu Senden.
Mit TCP wie auf dem Bild zu sehen geht es nicht.
Wie bekomme ich das hin?
Danke im voraus.
Gruß Micha
wie ist es möglich einen String von Projekt A nach Projekt B zu Senden alle meine Versuche sind gescheitert.
Ich versuche von einem Betriebsstundenzähler (Profilab Projekte) den Stringausgang von Projekt a nach Projekt B zu Senden.
Mit TCP wie auf dem Bild zu sehen geht es nicht.
Wie bekomme ich das hin?
Danke im voraus.
Gruß Micha
- Dateianhänge
-
- bd.png (51.05 KiB) 11565 mal betrachtet
Re: TCP und String
Hi,
Jede Instanz von ProfiLab TCP erlaubt "nur" einen analogen Wert oder 16 bits binäre Werte zu übertragen. Du hast für Dein Beispiel die TCP-Instanz auf binärsignalübertragung konfiguriert. Hiermit kann kein String, sondern allenfalls nur ein einzelnes decodiertes ASCII-Zeichen (Buchstaben) übertragen werden.
Ein String besteht aus vielen Werten (oder Buchstaben), welche "halt" von Dir sequentiell = nacheinander durch eine TCP-Verbindung durchgeschoben werden müssen.
Das Problem: es kann nicht einfach erkannt werden, wenn sich gleiche Werte aufeinanderfolgen, dass es sich um diese einzelnen Werte handelt. (Nur bei nacheinander immer verschiedenen Werten könnte man einen Differenzdetektor auf der Empfängerseite bauen, welcher die Aenderung erkennt und das Zeichen packt.)
Ich denke nur mal laut und theoretisch, tut mir leid, dass ich nicht gleich ein Beispiel habe....
Man könnte sich zu diesem Zweck eine parallele 2. TCP-Leitung öffnen, worüber ein Synchronisationssignal geschickt wird. Hiermit liesse sich nun erkennen, das aktuell ein Zeichen (Wert) übermittelt wird, welcher gepuffert (z.B. mit StringBuffer) oder gesampelt oder... wird.
Vielleicht gehts auch nur mit einem einzelnen TCP-Kanal, mit dem BEwusstsein, dass "normale" Buchstaben (ASCII-Zeichentabelle ansehen) bei 122 enden (falls Dir das reicht).
Trick: Ein bekannter Offset , z.B. 128, könnte nun immer wechselnd, (0, 128, 0...) quasi als Taktgeber auf das Zeichen "aufmoduliert" werden und auf der Empfängerseite diskriminiert werden. Somit wäre die Dynamik gegeben, um jeweils das übertragene Zeichen zu "packen".
Vielleicht gibts auch einfachere Lösungen ?
Viele Grüsse von Thomas
Jede Instanz von ProfiLab TCP erlaubt "nur" einen analogen Wert oder 16 bits binäre Werte zu übertragen. Du hast für Dein Beispiel die TCP-Instanz auf binärsignalübertragung konfiguriert. Hiermit kann kein String, sondern allenfalls nur ein einzelnes decodiertes ASCII-Zeichen (Buchstaben) übertragen werden.
Ein String besteht aus vielen Werten (oder Buchstaben), welche "halt" von Dir sequentiell = nacheinander durch eine TCP-Verbindung durchgeschoben werden müssen.
Das Problem: es kann nicht einfach erkannt werden, wenn sich gleiche Werte aufeinanderfolgen, dass es sich um diese einzelnen Werte handelt. (Nur bei nacheinander immer verschiedenen Werten könnte man einen Differenzdetektor auf der Empfängerseite bauen, welcher die Aenderung erkennt und das Zeichen packt.)
Ich denke nur mal laut und theoretisch, tut mir leid, dass ich nicht gleich ein Beispiel habe....
Man könnte sich zu diesem Zweck eine parallele 2. TCP-Leitung öffnen, worüber ein Synchronisationssignal geschickt wird. Hiermit liesse sich nun erkennen, das aktuell ein Zeichen (Wert) übermittelt wird, welcher gepuffert (z.B. mit StringBuffer) oder gesampelt oder... wird.
Vielleicht gehts auch nur mit einem einzelnen TCP-Kanal, mit dem BEwusstsein, dass "normale" Buchstaben (ASCII-Zeichentabelle ansehen) bei 122 enden (falls Dir das reicht).
Trick: Ein bekannter Offset , z.B. 128, könnte nun immer wechselnd, (0, 128, 0...) quasi als Taktgeber auf das Zeichen "aufmoduliert" werden und auf der Empfängerseite diskriminiert werden. Somit wäre die Dynamik gegeben, um jeweils das übertragene Zeichen zu "packen".
Vielleicht gibts auch einfachere Lösungen ?
Viele Grüsse von Thomas
Curiousity makes us progress !
Re: TCP und String
tom_g hat geschrieben:Hi,
Jede Instanz von ProfiLab TCP erlaubt "nur" einen analogen Wert oder 16 bits binäre Werte zu übertragen. Du hast für Dein Beispiel die TCP-Instanz auf binärsignalübertragung konfiguriert. Hiermit kann kein String, sondern allenfalls nur ein einzelnes decodiertes ASCII-Zeichen (Buchstaben) übertragen werden.
Ein String besteht aus vielen Werten (oder Buchstaben), welche "halt" von Dir sequentiell = nacheinander durch eine TCP-Verbindung durchgeschoben werden müssen.
Das Problem: es kann nicht einfach erkannt werden, wenn sich gleiche Werte aufeinanderfolgen, dass es sich um diese einzelnen Werte handelt. (Nur bei nacheinander immer verschiedenen Werten könnte man einen Differenzdetektor auf der Empfängerseite bauen, welcher die Aenderung erkennt und das Zeichen packt.)
Ich denke nur mal laut und theoretisch, tut mir leid, dass ich nicht gleich ein Beispiel habe....
Man könnte sich zu diesem Zweck eine parallele 2. TCP-Leitung öffnen, worüber ein Synchronisationssignal geschickt wird. Hiermit liesse sich nun erkennen, das aktuell ein Zeichen (Wert) übermittelt wird, welcher gepuffert (z.B. mit StringBuffer) oder gesampelt oder... wird.
Vielleicht gehts auch nur mit einem einzelnen TCP-Kanal, mit dem BEwusstsein, dass "normale" Buchstaben (ASCII-Zeichentabelle ansehen) bei 122 enden (falls Dir das reicht).
Trick: Ein bekannter Offset , z.B. 128, könnte nun immer wechselnd, (0, 128, 0...) quasi als Taktgeber auf das Zeichen "aufmoduliert" werden und auf der Empfängerseite diskriminiert werden. Somit wäre die Dynamik gegeben, um jeweils das übertragene Zeichen zu "packen".
Vielleicht gibts auch einfachere Lösungen ?
Viele Grüsse von Thomas
Hi und danke für deinen Beitrag.
Kann mir denn sonnst keiner einen weg zeigen wie ich den String von Projekt A nach Projekt B bekomme???
Re: TCP und String
Hi Micha,
muss es denn wirklich ein String sein? In deinem Beispiel hast du ja einen "konstanten" String hinzugefügt. Der Wert an sich ist doch analog, nämlich Betriebsstunden, oder? Den analogen Wert kannst du ja ganz simple übertragen... und in Projekt b den Rest dazu schreiben?
Gruß, martin
muss es denn wirklich ein String sein? In deinem Beispiel hast du ja einen "konstanten" String hinzugefügt. Der Wert an sich ist doch analog, nämlich Betriebsstunden, oder? Den analogen Wert kannst du ja ganz simple übertragen... und in Projekt b den Rest dazu schreiben?
Gruß, martin
Re: TCP und String
mstaudi hat geschrieben:Hi Micha,
muss es denn wirklich ein String sein? In deinem Beispiel hast du ja einen "konstanten" String hinzugefügt. Der Wert an sich ist doch analog, nämlich Betriebsstunden, oder? Den analogen Wert kannst du ja ganz simple übertragen... und in Projekt b den Rest dazu schreiben?
Gruß, martin
hi mstaudi,
klar hab ich das auch schon Versucht aber dann bekomme ich nur zahlen wie diese >> 185635289<< ich brauche aber die Anzeige in z.b. in 00:38 wie sie sonnst ist als String.
Und ich weiss nicht wie ich das realisieren soll???
Hat jemand eine Idee oder ein Beispiel für mich??!!
Danke im voraus.
Gruß
Micha
Re: TCP und String
Hi Micha,
ich verwende dafür virtuelle COM-Port ein simples Programm findest du hier:
http://www.heise.de/download/com0com-1149731.html
Somit kannst du Byte, Zahlen, Strings hin und her senden vorausgesetzt es läuft auf dem gleichen PC.
oder PC 1 Com zu PC 2 Com geht auch.
ich verwende dafür virtuelle COM-Port ein simples Programm findest du hier:
http://www.heise.de/download/com0com-1149731.html
Somit kannst du Byte, Zahlen, Strings hin und her senden vorausgesetzt es läuft auf dem gleichen PC.
oder PC 1 Com zu PC 2 Com geht auch.
Re: TCP und String
oder mit com2tcp auf verschieden PCs
Re: TCP und String
Mike D hat geschrieben:oder mit com2tcp auf verschieden PCs
Hi und danke für den Hinweis.
Werde es mal testen ob ich damit zurecht komme, und melde mich dann wieder.
Re: TCP und String
Hi,
ich habe hier gemäss meinem vorgängigen Vorschlag hier im Forum ein rudimentäres Beispiel für einen "String-Serializer" aufgebaut, welcher Buchstabenketten (=strings oder andere Daten) über ProfiLab-TCP (hier mittels localhost in meinem eigenen Rechner) übertragen kann.
Das Beispiel benötigt nur einen analogen Profilab-TCP-Kanal, weil das synch-Signal im Sender auf die Nutzdaten aufmoduliert wird und im Empfänger wieder zurückgewonnen wird, sowie die Nutzdaten wieder aufbereitet werden.
Ich verwende momentan 50Hz als synch-Signal. Das geht locker via localhost. Habe nicht mehr probiert. Ob das zuverlässig über ein Firmennetzwerk oder gar über das Internet funktioniert ?
Würde mich freuen, wenn das jemand probiert und seine Erfahrungen publiziert !
Grüsse von Thomas
ich habe hier gemäss meinem vorgängigen Vorschlag hier im Forum ein rudimentäres Beispiel für einen "String-Serializer" aufgebaut, welcher Buchstabenketten (=strings oder andere Daten) über ProfiLab-TCP (hier mittels localhost in meinem eigenen Rechner) übertragen kann.
Das Beispiel benötigt nur einen analogen Profilab-TCP-Kanal, weil das synch-Signal im Sender auf die Nutzdaten aufmoduliert wird und im Empfänger wieder zurückgewonnen wird, sowie die Nutzdaten wieder aufbereitet werden.
Ich verwende momentan 50Hz als synch-Signal. Das geht locker via localhost. Habe nicht mehr probiert. Ob das zuverlässig über ein Firmennetzwerk oder gar über das Internet funktioniert ?
Würde mich freuen, wenn das jemand probiert und seine Erfahrungen publiziert !
Grüsse von Thomas
- Dateianhänge
-
- string_through_TCP_1.prj
- (6.71 KiB) 668-mal heruntergeladen
Curiousity makes us progress !
Re: TCP und String
@tom_g
interessante Lösung
Mike
interessante Lösung
Mike