-> Hier kostenlos registrieren
Hallo zusammen,
ich (Grundlagen in der SPS-Programmierung) beschäftige mich gerade damit eine Komponente an eine SPS S7-300 anzubinden, die ausschließlich per ASCII-String über TCP/IP-Kommunizieren kann.
Hierbei muss von der SPS eine Verbindung zum Port 4444 der Komponente aufgebaut werden und dann eine Anfrage in Form eine ASCII-Strings gesendet werden (Trennzeichen: - ; Beispiel: 0.0 2.2 2.3 3.3-). Für jede Anfrage bekommt man eine Antwort auf einem anderen Port (5555) in dem selben Format zurück.
Zur Kommunikation habe ich mir schon: http://support.automation.siemens.c...lib.csinfo&lang=de&objid=29737950&caller=view durchgelesen. So wie ich das daraus lesen, benötige ich somit einmal eine aktive (senden der Anfrage) und eine passive (empfangen der Antwort) Verbindung. Soweit richtig?
Meine Kernfrage beschäftigt sich nun mit dem Zerlegen der ASCII-Antwort-Zeichenkette. Die Antwort kann unterschiedlich viele Zeichen haben, endete aber immer mit dem selben Trennzeichen und hat die gleiche Anzahl an Zahlenwerten - Trennzeichen zwischen den Zahlenwerten ist das Leerzeichen, wie z.B.:
0 2.1 2.22 1.1-
0.1 2.111 2.2 3.3-
Wie kann ich damit am besten Umgehen und auf einzelne Zahlenwerte zugreifen? Mein theoretisches Vorgehen wäre:
- Sicherstellen, dass ich eine gesamte Antwort vorliegt (sprich das Endzeichen am Ende des Strings ist und die Anzahl an Zahlenwerten stimmt).
- String zerlegen und die Zahlenwerte in einzelne Strings überführen.
Mit welchen FBs mache ich das am besten und Ressourcensparendsten? Mittels diverese Programmiersprachen habe ich das schon öfters gemacht, kenne mich aber noch nicht sonderlich gut mit allen FB der SPS ab. Daher würde ich diese gerne vorab Abklären, bevor ich mich dazu entschließe, dass alles auf der SPS S7-300 zu implementieren.
Ich danke euch schonmal ganz herzlich für eure Hilfe,
Johannes
ich (Grundlagen in der SPS-Programmierung) beschäftige mich gerade damit eine Komponente an eine SPS S7-300 anzubinden, die ausschließlich per ASCII-String über TCP/IP-Kommunizieren kann.
Hierbei muss von der SPS eine Verbindung zum Port 4444 der Komponente aufgebaut werden und dann eine Anfrage in Form eine ASCII-Strings gesendet werden (Trennzeichen: - ; Beispiel: 0.0 2.2 2.3 3.3-). Für jede Anfrage bekommt man eine Antwort auf einem anderen Port (5555) in dem selben Format zurück.
Zur Kommunikation habe ich mir schon: http://support.automation.siemens.c...lib.csinfo&lang=de&objid=29737950&caller=view durchgelesen. So wie ich das daraus lesen, benötige ich somit einmal eine aktive (senden der Anfrage) und eine passive (empfangen der Antwort) Verbindung. Soweit richtig?
Meine Kernfrage beschäftigt sich nun mit dem Zerlegen der ASCII-Antwort-Zeichenkette. Die Antwort kann unterschiedlich viele Zeichen haben, endete aber immer mit dem selben Trennzeichen und hat die gleiche Anzahl an Zahlenwerten - Trennzeichen zwischen den Zahlenwerten ist das Leerzeichen, wie z.B.:
0 2.1 2.22 1.1-
0.1 2.111 2.2 3.3-
Wie kann ich damit am besten Umgehen und auf einzelne Zahlenwerte zugreifen? Mein theoretisches Vorgehen wäre:
- Sicherstellen, dass ich eine gesamte Antwort vorliegt (sprich das Endzeichen am Ende des Strings ist und die Anzahl an Zahlenwerten stimmt).
- String zerlegen und die Zahlenwerte in einzelne Strings überführen.
Mit welchen FBs mache ich das am besten und Ressourcensparendsten? Mittels diverese Programmiersprachen habe ich das schon öfters gemacht, kenne mich aber noch nicht sonderlich gut mit allen FB der SPS ab. Daher würde ich diese gerne vorab Abklären, bevor ich mich dazu entschließe, dass alles auf der SPS S7-300 zu implementieren.
Ich danke euch schonmal ganz herzlich für eure Hilfe,
Johannes