TIA Mal wieder RS232 CM1241 und S7-1214C

Uli001

Level-1
Beiträge
40
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe jetzt 6 Stunden von meiner Arbeitszeit damit verbracht eine Lösung zu finden.

Ich habe eine S7-1214C und ein CM1241 zur Kommunikation mit einem PC und später ein weiteres CM1241 um einen Motor anzusteuern. Die Daten die Übertragen werden sollen sind aber recht gleich.

Die Verbindung zum PC konnte ich bereits erfolgreich aufbauen und Daten senden und empfangen. Zur weiteren Verarbeitung der Daten wollte ich aber das Ende eine Nachricht auswerten. Ich dachte beim RCV-PTP ist der Wert NDR dafür zuständig mir für einen Zyklus ein True zu geben wenn neue Daten vorhanden sind. Leider bekomme ich nie ein True auf dem NDR.

Dann habe ich versucht mit einer festen Länge der Nachrichten zu arbeiten. Auch hier ohne Erfolg.

Jetzt werte ich nach bestimmten Zeichen (CR-LF) am Ende der Nachricht aus. Auch hier bekomme ich kein NDR=TRUE.

Ich sehe den Fehler einfach nicht.

Ziel war in diesem Schritt die gesendete Zeichenfolge 1:1 wieder zurück zu bekommen und zwar genau ein Mal.

Hat jemand eine Idee?

Danke Uli
 
Hi!

Da war ich in meiner ersten Antwort etwas zu schnell.

Du hast ja schon Daten vom PC erhalten, hast aber kein NDR bekommen.

Löschst du auch den Empfangspuffer zwischendrin?

Auf welches Ereignis hin sendet der PC die Daten?

Gruß,

Ottmar
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ottmar,

erst einmal Danke für die Antwort.

Von dem PC sende ich Daten aus dem HTerm, ähnlich dem HyperTerm was es aber in Win 7 nicht mehr gibt. Die Daten kommen so natürlich zu jeder beliebigen Zeit. Das wird auch in der Endanwendung so bleiben. Ich hänge dir mal zwei Bilder vom Sende- und Empfangsnetzwerk dran. Inzwischen habe ich auch gesehen, dass der NDR beim Senden nicht kommt.

Nein der Empfangspuffer wird z.Z. noch nicht gelöscht. Dazu müsste ich die Daten die Empfangen wurden ja erst übernehmen. Das kann ich doch am besten anstoßen wenn ich auch ein Signal habe das die Daten empfangen wurden, was wieder dem NDR entspricht.

Mich irritiert, dass ich beim Senden auch kein NDR=True bekomme obwohl ich die Daten im HTerm sehen kann. Ich war bis jetzt auf dem Trichter, dass nicht kontrolliert wird ob die Daten am Empfänger angekommen sind (wie auch wenn keine Bestätigung kommt) sondern nur ob die Daten ans CM1241 übergeben wurden, welches das Senden selbstständig organisiert.

Ich habe übrigens zwei Varianten:

Einmal ist der Sende- und Empfangspuffer jeweils ein Array of Char oder in der zweiten Variante je ein String. Der String gefällt mir z.Z. besser, da ich anschließend einer Art Select Case Anweisung aufbauen will wo in Abhängigkeit vom String IOs geschaltet/abgefragt werden.

PTP 1.jpgPTP 2.jpg

Ist jetzt noch mehr Verwirrung drin oder hilft das weiter?

VG Uli
 
Du hast da Bereichsüberschneidungen.

Status überschreibt dir die Bereiche für die Quittierung und Error.

Werden dir beim übersetzen keine Warnungen geworfen?

mfG René
 
Hallo René,

komme ich hier mit den Programmiersprachen durcheinander? Also das MW2 verwendet den selben Bereich wie M2.0 ...?

Sprich MW2 entspricht gleichzeitig den Werten M2.0 ... M2.7. Ja so langsam kommen die Erinnerungen ans Studium zurück (17 Jahre liegt es zurück). In der kleinen Firma bekommen wir neue Aufgaben, auf die ich mich auch gefreut habe, aber leider keine Schulungen.

Habe es jetzt mal geändert und nach dem ich wieder auf Nachrichten-Zeitüberschreitung umgestellt habe kommt tatsächlich auch das NDR.

Vielen Vielen Vielen … Dank.

Da kann ich jetzt zum nächsten Teil übergehen.
VG Uli
 
Nein, TIA V13 SP1 bringt mir nur eine Warnung da ich noch keine Schutzstufe eingestellt habe. Mehr Meldungen habe ich nicht.

So, der Vergleich der String's geht auch. Damit habe ich die Vorarbeiten abgeschlossen. Jetzt schaue ich mir mal den Webserver an.

Danke Uli
 
Zurück
Oben