String über RS232 in DB auslesen????

M

Madface

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle.
Ich hab ein ganz arges Problem. Ich möchte Daten über eine RS 232 Schnittstelle empfangen. Der CP zeigt mir auch an, das ich fürchterlich was empfange. Nur habe ich das Problem, das ich nicht weiß, wie und ob ich mir diese Daten ansehen kann. Und wo sie abgespeichert werden. In dem dafür vorgesehenen DB passiert nichts. Hqb ich irgendwas vergessen? Für jeden Tipp bin ich sehr dankbar.

Gruß und danke schonmal im voraus.

Madface


PS.: André, ich arbeite mit dem Zinken zusammen und hatte die gleiche Idee wie er. War doppelt gemoppelt. :lol: Kommt vor, sorry!!!!
 
Daten über RS232 in DB

Hallo,

Versuche mal

Projekt öffnen - Bibliothek - CP Ptp
entsprechenden CP Ordner öffnen
Beim CP340 den FB2 (Empfangen) und FB1 (Senden) ins eigene Projekt.
In der Doku sind die Beschaltungen zu finden

z.B.

Call FB2, DB2 (im DB2 liegen die Empfangsdaten nicht !!!)
EN_R := true (Freigabe Empfangen)
R := Reset (Impuls)
LADDR:= Anfangsadresse aus HW (z.B. 272)
DB_NO:= z.B. 10
DBB_NO:= z.B. 0 (Empfangsdaten im DB10 ab DBB 0)
NDR := neue Daten verfügbar
ERROR := Fehler
LEN := Länge der neuen Daten
STATUS:= Fehler Code etc.

Gruss
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Micha
danke erstmal für die prompte Antwort
aber das ist nicht ganz unser Problem. Den FB den du beschreibst ist ähnlich dem unserem (FB7) bei dem CP341 und wir haben ihn auch beschaltet (DB_NO = 17) und der DB17 hat folgende eingaben bekommen
Name=Kamera Typ=string[254] Anfangswert=''
und jetzt wissen wir nicht wie wir die daten die, die Kamera schickt aus dem DB auslesen und Vergleichen können bzw. ob die daten (string) in diesen DB geschrieben wurden. Der zu sendene string geht jedenfalls raus das konnten wir über den Hyper Terminal sichtbar machen.
 
String

Hallo,

wenn ihr im DB einen String deklariert habt, dann würde ich am FC den Parameter DBB_NO auf 2 nehmen (wenn der String ab DBB0 steht), dann wird der Stringkopf nicht überschrieben. Den Ausgangsparameter LEN beschaltest du dann mit einer temporären Variablen (Integer) und transferierst diese aufs DB17.DBB1 (genutzte Stringlänge). Dann legst du die irgendwo noch einen String an mit der Vergleichszeichenkette und kannst diese Strings über die entsprechenden Bausteine aus der Standard Library vergleichen. Oder du vergleichst zu Fuss jedes Byte aus dem String. Kannst auch mal anrufen!

MfG
André Räppel
 
String über RS232

Hallo,

die ersten zwei Bytes für die Längenangaben ist ja korrekt. Allerdings würde ich niemals auf die Idee kommen das Empfangsfach als String zu deklarieren. Wie willst Du hier eventuelle Steuerzeichen erkennen bzw. auswerten.
Empfangsfach immer als Bytefeld. Daten konvertieren dürfte ja wohl kein Problem darstellen.

Gruß
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
String

Wie schon am Telefon... ich würde im DB ein Array of Char anlegen. Dann kannste auch wieder bei DBB_NO auf 0 gehen. Gleiches gilt fürs senden. Dann einfach die Bytes einzeln abfragen und auswerten. Das mit den Steuerzeichen ist richtig, viele Kommunikationspartner schicken STX, ETX, CR. Aber der Tip bezog sich ja auf den Istzustand.

MfG
André Räppel
 
Das Problem ist gelöst. Danke an alle!!!!!!!!

Hallo an alle nochmal.
Unser Programm läuft inzwischen. Dank eines Telefonates mit André, der uns am Telefon tatkräftig Tipps gegeben hat. Das heisst unserer Abschlußpräsentation steht nix mehr im Wege.

Erstmal und nochmal Danke!!!!!!

8) :lol: :p
 
Zurück
Oben