Step 7 Geberwerte auslesen

SPSNeuling2

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich bin gerade dabei Geberwerte mit einer S7-1500 auszulesen.

Der Geber kommuniziert dabei über TCP/IP.
Der Geber kann Positionen entweder in ASCII Werte ausgeben was wie folgt aussieht: 123149"Leerzeichen""Enter"
oder in 32 Bit Binärzahlen ohne Leerzeichen zwischen den Werten.

Wenn ich diese nun einlesen möchte sendet er mir die Daten bisher in eine STRUCT Variable, in der ein ARRAY OF CHAR enthalten ist.
Wenn ich nun die ASCII Werte einlese und die Char Variablen zu einem String zusammenfüge funktioniert die Positionauswertung, da die Positionen in die ersten 8 Felder des Arrays und das Leerzeichen und Enter Zeichen in die beiden letzten Felder geladen wird und somit vernachlässigt werden kann.

Wenn sich die Position allerdings ändert, z.b in : 513"Leerzeichen"Enter"
Dann werden die Char Variablen immer unterschiedlich beschrieben, da der eingelesene "String" eine unterschiedliche Länge besitzt, und das ganze dann nicht mehr funktioniert.

Habt ihr eine Idee wie man das lösen könnte oder wie es mit Binärzahlen besser funktionieren würde?
 
Ich würde mit der Variante 1234149"Leerzeichen""Enter" arbeiten, sowas hatte ich schon vor längerer Zeit mal so gelöst:

Schleifenbeginn
Alle Chars einzeln lesen und auswerten:
- wenn das Leerzeichen gefunden wurde dann alle von 0 bis X in die Variable mit dem Wert wandeln.
- irgendwo im Array muss dann ja das Zeichen Enter auftauchen, merken das es da war.
Schleifenende

Wenn der Wert in der Variable nun plausibel ist (z.B. Wert nicht zu weit weg vom vorherigen, innerhalb von Grenzen, etc.) und "Enter" gefunden wurde, so wird der neue Geberwert ausgegeben, ansonsten zählt ein Fehlerzähler hoch. Erreicht der Zähler Wert X (z.B. 5), dann kommt eine Störung. War die "Logik" aber richtig, so wird der Fehlerzähler auf 0 gesetzt.

Mittlerweile gibt es aber bestimmt eine Funktion dafür oder aber der Hersteller hat schon was passendes parat (machen immer mehr das die Beispiel-FBs liefern), doch das entzieht sich meiner Kenntnis, nicht zuletzt weil Du vergessen hast uns zu sagen welchen Geber Du genau hast.
 
Zurück
Oben