String wandert

focus81

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich habe eine Kamera mit einem CP 343-1cx10-0xe0 über TCP/IP gekoppelt.

In der SPS rufe ich die Verbindung über das FC6 auf. Von der Kamera werden immer werte von vier stellen übergeben als String der sieht dann so aus
1243;3467;4576End.

Hier der Aufruf :

CALL "AG_Reseive"
ID :=1
LADDR :=W#16#100
RECV :=P#DB103.DBX0.0 BYTE 16
NDR :="DB_Empfangsfach_Kam100".E_Datenuebernommen
ERROR :="DB_Empfangsfach_Kam100".E_error_von_Kamera
STATUS:="DB_Empfangsfach_Kam100".E_status_von_Kamera
LEN :="DB_Empfangsfach_Kam100".E_Len_an_Kamera
NOP 0
Wenn ich nun den String in einer Variablen Tabelle beobachte verschiebt er sich um ein bis zwei byte.

Es kann auch passieren das es etwa zehn mal gut geht und beim elften mal versiebt sich erst der String.


ich hoffe ihr könnt mir helfen.
Danke schon mal im voraus.
 
Ich glaube eher, dass die Kamera (oder was auch immer) die Daten immer gnadenlos heraus haut. Es wäre hier praktisch, einen unterlagerten Empfangsbaustein zu erstellen, der den Empfangsstring nach der "End"-Markierung untersucht und entsprechend gefiltert (oder sogar gleich zerlegt) ausgibt.
 
@Larry
Wenn ich mich nicht irre, geht bei der CP343-1 nichts verloren, außer der Empfangspuffer läuft über, d.h. auch wenn die Kamera permanent sendet, sollte so schnell nichts passieren.

@focus:
Wie oft sendet die Kamera denn? Welche Zykluszeiten hast Du?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Michael:
Das meinte ich auch nicht. Siehe bitte die Anwort des TE.
So wie ich das verstanden habe fragt der TE einfach immer den Port ab und wenn etwas empfangen ist dann versucht er irgendetwas damit anzustellen.
Bei der Kamera nehme ich an, dass die zyklisch sehr schnell immer wieder Wertesatz für Wertesatz einfach heraushaut - zur Not bis zum Überlauf des Empfangspuffers und darüber hinaus.
Die beiden synchronisieren sich nicht ...
 
Momentan sendet die Kamera alle 5s.

Der string denn die Kamera sendet ist immer gleich groß ich habe noch einen Rechner mit dran hängen der mit einer Hercules Software den gesendeten String anzeigt.
 
Wen die erwartete (eingetragene Länge) zu kurz ist, dann holt man z.Bsp. 2 Zeichen zu wenig ab, Rest steht vornan beim nächsten Empfang und so verschiebt sich der String. Das hatte ich ebenfalls bei einer TCP/IP-Kamera. Man muß wissen, wie viele Zeichen ankommen sollen, leider und genau diesen Wert am Baustein eintragen.

Der ankommende String muß dann natürlich erst in einen S7-String gewandelt werden, wenn man ihn als String weiternutzen will, also die beiden führenden Bytes voranstellen und die richtigen Daten eintragen.
 
Zurück
Oben