TIA Kommunikation mit SPS und RS232

MattGyver

Level-2
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Morgen.

Folgendes habe ich vor:
Ich möchte mit meiner S7-1200 daten über eine RS232 an einer Platine senden und empfangen.
Dabei möchte ich wie folgt vorgehen.
1. - Ich habe ein Array of Strings mit den befehlen die ich zur Platine schicken möchte z.B.: 'H0481$R'
2. - Die Platine schickt jetzt die Antwort die ich auch im Array speichern möchte. Die Antwort lautet z.B: 23AC\r (war fälschlicherweise \n)
3. - Das \n soll die SPS automatisch erkennen und die daten im Buffer speichern. (Das klappt bis jetzt noch Garnicht).
4. - Jetzt soll wieder zu Punkt 1 gesprungen werden und das nächste Feld im Array gesendet werden.

Ich habe schon viele Ansätze versucht es jedoch nie hinbekommen. Meistens hängt sich die SPS auf weil sie auf \n wartet. Wie sind eure Ansätze um solch ein Problem zu lösen?

Habe es mit SCL probiert und mit FUP, bis jetzt alles ohne Ergebnis.

MfG
 
Zuletzt bearbeitet:
FIND: Zeichen in Zeichenkette finden (S7-1200, S7-1500)

falls dein ergebnis als byte array reinkommt gibt es noch:
Anweisungen Strg_TO_Chars und Chars_TO_Strg (In/aus Zeichenkette und Array aus CHAR umwandeln)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1732181559413.png

Stimmt diese Einstellung um ein Nachrichten ende zuverlässig zu erkennen?

Dachte mir folgendes:
Nachrichtenende wird erkannt und der Inhalt im Buffer wird gespeichert.
Gerade erkannt das die Antwort mit \r endet.

Wenn das \r gesendet wurde Speicher ich einfach den Empfangs Buffer in einem Array ab, kann das so funktionieren?

Also senden möchte ich wie folgt

FOR #MCount := 0 TO 10 DO
"SEND_PTP_DB"(REQ:=#Senden,
"PORT":="Local~CM_1241_(RS232)_1",
BUFFER:= "RS232".Buffer_Senden[#MCount],
LENGTH:= 5,
PTRCL:= FALSE,
DONE=> #MSenden,
ERROR=>#MSenden_Error,
STATUS=>#MSenden_Status);
END_FOR;

In der gleiche FOR schleife soll jetzt auch Empfangen werden. Ist das überhaupt möglich.
Ich würde warten bis Done = True ist dann den Empfangsteil starten? geht Das überhaupt wie ich mir das vorstelle?
 
Zurück
Oben