Step 7 ET200SP mit CM PtP - RS232 Kommunikation - Empfange keine Daten

rune

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

mit folgendem Aufbau versuche ich derzeit über RS232 die Daten eines Mikrocontrollers auf einem MSP-EXP430FR4133 Launchpad zu empfangen. Mit einer Terminal-Software auf einem PC funktioniert dies schon einwandfrei.


Der Aufbau:
SIMATIC S7-300 (CPU315-2 PN/DP Firmware 3.2)
ET200SP (Firmware 3.3)
CM PtP
Step 7 V5.5 SP4
Verbunden ist das ganze über ein PROFINET-IO-System.


Ich nutze den Funktionsblock 614 aus den PtP-Anweisungen (Beitrags-ID. 75226762)
In meiner Funktion rufe ich eigentlich nur diesen Block mit einer IDB auf. Als Port habe ich die erste E-Adresse des CM PtP angegeben (256) und der Puffer ist eine DB ('DB3') mit 1024 Word-Zeilen(2048 Byte). Der Pointer, welchen ich für den FB614 angegeben habe, sieht so aus: "P#DB3.DBX 0.0 WORD 1024"

Die Baudrate beträgt 115,2 kbit/s, 8 Datenbits, keine Parität und 1 Stopbit.
Als Telegramanfangserkennung habe ich "mit beliebigen Zeichen beginnen", als Telegrammendeerkennung eine Zeichenverzugszeit von '1' eingestellt. Hier habe ich aber auch schon diverse Werte ausprobiert. Genutzt wird das Freeport-Protokoll und RS232C.


Der Empfangspuffer wird letzendlich gar nicht beschrieben, alle Einträge ändern sich nicht und bleiben ' 0000', auch in der IDB wird nichts in den Puffer geschrieben, dort bleiben alle Einträge '00'. Allerdings steht dort eine Fehlermeldung '0x7002'. Die LED für den Empfang (RX) blinkt wenn ich vom Board aus Daten sende immer mal wieder.
Sobald ich das erste Mal Daten sende, springt der Error-Status ab diesen Zeitpunkt immer mal wieder für Millisekunden auf einen Error '0x8280'. Auch wenn ich keine Daten mehr sende, dieses springen bleibt, bis ich das nächste Mal die Stromversorgung des CM PtP kappe.
In der Beschreibung des Fehlercodes stand, dass dies eine "Negative Quittung beim Lesen des Moduls" sei und ich den Parameter RDREC.STATUS aus der IDB überprüfen soll.


Dort steht "DW#16#DE80B100". Damit kann ich aber auch relativ wenig anfangen, zumal ich gar nicht weiß, ob dieser Fehler überhaupt damit zusammenhängt, das ich garkeine Daten empfange.


Angehängt habe ich, wie die Daten die ich empfangen möchte in der Terminalsoftware aussehen, dort habe ich lediglich eine Darstellung in ASCII angewählt. Angeben musste ich nur Baudrate, Anzahl Datenbits, Stopbits und keine Parität. Ich brauche nur "Block 9", aber ersteinmal überhaupt etwas empfangen wäre schon ein Fortschritt. Danach gibt es noch ein paar Zeilen, aber die habe ich nicht mehr mitgeschnitten.



Vielen Dank schon einmal im Voraus und mit freundlichen Grüßen,
Rune

UART.PNG
 
Zurück
Oben