String Synchronisation
Verfasst: Dienstag 14. Oktober 2008, 12:49
Bedo
Anmeldungsdatum: 16.03.2007
Beiträge: 7
Verfasst am: 20.05.2008 21:30 Titel: String Synchronisation
--------------------------------------------------------------------------------
Hallo,
habe ein Temperaturmessgerät (Voltcraft 302K) über RS232 angeschlossen. Das Gerät sendet 8 Bytes. Byte 4 bis 6 sind die entsprechenden Werte in BCD-Code für die 2 Temperaturen. Bei bestimmten Temperaturen, z.B. ca. 30,3 oder 10,3°C ist der String nur 4 und dann 2 Byte lang. Dies konnte ich mit Hypertherminal nicht beobachten. Kann es sein dass PL4.0 das Synchronisationszeichen im 8. Byte (gesendet wird eine 3) mit dem Messwert verwechselt? Wenn ja, wie kann ich dies umgehen? Oder kann ich eine feste Stringlänge vorgeben? Oder über die Stringlänge und Buffer den zu kurzen String löschen, allerdings den Letzten String mit normaler Länge speichern bis wieder ein langer String kommt?
Vielen Dank im voraus
Gruß Bedo
Nach oben
abacom
Site Admin
Anmeldungsdatum: 30.06.2006
Beiträge: 898
Verfasst am: 21.05.2008 08:28 Titel:
--------------------------------------------------------------------------------
Wenn kein eindeutiges Synchronzeichen vorhanden ist, müssen Sie in der Tat die Anzahl der empfangenen Zeichen in irgend einer Form berücksichtigen. Entweder so wie Sie es selbst vorgeschlagen haben, oder auch durch z.B. "8x Byte empfangen" statt "1x String empfangen".
Nach oben
Bedo
Anmeldungsdatum: 16.03.2007
Beiträge: 7
Verfasst am: 21.05.2008 17:35 Titel:
--------------------------------------------------------------------------------
Meine Vorschläge konnte ich nicht umsetzen, deshalb habe ich sie als Gedankenanstoß angeführt. Der Tipp von Abacom war besser und führte zum Erfolg.
Ich habe jetzt " 8 x Byte empfangen " benutzt. Vielen Dank nochmal.
Gruß Bedo
Anmeldungsdatum: 16.03.2007
Beiträge: 7
Verfasst am: 20.05.2008 21:30 Titel: String Synchronisation
--------------------------------------------------------------------------------
Hallo,
habe ein Temperaturmessgerät (Voltcraft 302K) über RS232 angeschlossen. Das Gerät sendet 8 Bytes. Byte 4 bis 6 sind die entsprechenden Werte in BCD-Code für die 2 Temperaturen. Bei bestimmten Temperaturen, z.B. ca. 30,3 oder 10,3°C ist der String nur 4 und dann 2 Byte lang. Dies konnte ich mit Hypertherminal nicht beobachten. Kann es sein dass PL4.0 das Synchronisationszeichen im 8. Byte (gesendet wird eine 3) mit dem Messwert verwechselt? Wenn ja, wie kann ich dies umgehen? Oder kann ich eine feste Stringlänge vorgeben? Oder über die Stringlänge und Buffer den zu kurzen String löschen, allerdings den Letzten String mit normaler Länge speichern bis wieder ein langer String kommt?
Vielen Dank im voraus
Gruß Bedo
Nach oben
abacom
Site Admin
Anmeldungsdatum: 30.06.2006
Beiträge: 898
Verfasst am: 21.05.2008 08:28 Titel:
--------------------------------------------------------------------------------
Wenn kein eindeutiges Synchronzeichen vorhanden ist, müssen Sie in der Tat die Anzahl der empfangenen Zeichen in irgend einer Form berücksichtigen. Entweder so wie Sie es selbst vorgeschlagen haben, oder auch durch z.B. "8x Byte empfangen" statt "1x String empfangen".
Nach oben
Bedo
Anmeldungsdatum: 16.03.2007
Beiträge: 7
Verfasst am: 21.05.2008 17:35 Titel:
--------------------------------------------------------------------------------
Meine Vorschläge konnte ich nicht umsetzen, deshalb habe ich sie als Gedankenanstoß angeführt. Der Tipp von Abacom war besser und führte zum Erfolg.
Ich habe jetzt " 8 x Byte empfangen " benutzt. Vielen Dank nochmal.
Gruß Bedo