TIA PTP RS232 RCV_PTP bleibt bei 16#7002

MattGyver

Level-2
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Moren Forum User,

mein eigentliches Ziel ist es ein Kommunikation mit einer Platine herzustellen.
Eigentlich ist die Kommunikation ganz einfach hier ein Bsp.:

SPS sendet: h1057\r
Platine sendet: 1205\r

Ist ja schonmal ganz hübsch, jetzt dacht ich mir super End Zeichen ist \r um das Nachrichtenende zu erkennen.

Die Sende Befehle sind in einem Array. Bei jedem Senden wird ein Zähler hochgezählt und und Zeigt auf das nächste Element im Array.
Leider Zählt der Zähler nicht zuverlässig und das Nachrichten ende wird auch nicht richtig erkannt.

Das ganze habe ich in SCL geschrieben hier ist das Programm.

Dieser Baustein wird durch einen Clock jede Sekunde einmal angesteuert. Der Baustein sendet jede Sekunde ein Datenpaket.

IF "Senden".Zähler <= 5 THEN

"Send_P2P_DB"(REQ := #Senden,
"PORT" := "Local~CM_1241_(RS232)_1",
BUFFER := "Senden".Senden["Senden".Zähler],
LENGTH := 6,
DONE => "Senden".Steuer_Senden.Gesendet,
ERROR => "Senden".Steuer_Senden.Error,
STATUS => "Senden".Steuer_Senden.Status);

"RCV_PTP_DB"(EN_R:= "AlwaysTRUE",
"PORT":= "Local~CM_1241_(RS232)_1",
BUFFER:= "Senden".Empfangen["Senden".Zähler],
NDR=>"Senden".Steuer_Empfangen.Empfangen,
ERROR=> "Senden".Steuer_Empfangen.Error,
STATUS=>"Senden".Steuer_Empfangen.Length);


IF "Senden".Steuer_Senden.Gesendet AND "Senden".Steuer_Empfangen.Empfangen THEN
"Senden".Zähler := "Senden".Zähler + 1;
END_IF;

END_IF;

IF "Senden".Zähler = 5 THEN
"Senden".Zähler := 0;
END_IF;

Vielen dank für eure bemühungen.
Mathias
 
Zuletzt bearbeitet:
Zurück
Oben