TIA CP340 SEND/RCV liefert kein DONE Signal

Orbis92

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
mein Name ist Christian, ich bin 23 Jahre alt und Auszubildender im 3. Lehrjahr zum Mechatroniker.
In meiner Ausbildung haben wir 3 Wochen SPS Lehrgang an der 314C 2PN/DP gehabt, was mich direkt für die SPS Programmierung begeistern konnte.
Nun habe ich mir für zu Hause zum Üben und Basteln genau diese SPS gekauft. Programmiert wird mit dem TIA v13
Vieles habe ich mir in den letzen Wochen selbst angeeignet bzw. durch mitlesen im Forum wurden auch schon einige meiner Fragen und Probleme beantwortet.

Nun habe ich mein ganz eigenes, spezielles Problem ;)
Um mit meinem Beamer zu kommunizieren verwende ich einen CP340. . Aktuell bin ich dabei mein Zimmer etwas zu "automatisieren" und nun möchte ich mit dem CP340 über RS232 mit meinem Beamer kommunizieren.
Das klappt auch schon ganz gut, leider nicht perfekt...

Die zu sendenden Daten stehen in einem Sende-DB, ich habe 4 Befehle zum senden, die jeweils in einem "Array of Char" stehen. Letzter "Char" in den Arrays ist '$R' um den Beamer zu signalisiere, das ein Befehl kam.
Auf zwei der Befehle antwortet der Beamer sofort.
Die "Länge" am Sendebaustein stelle ich über eine Variable ein, die je nach zu sendendem Befehl die Größe des Arrays annimmt (feste Werte mit MOVE der DBB_No-Variable zugewiesen)
Das funktioniert auch super. Der Beamer antwortet sofort darauf und mit dem RCV-Baustein schreibe ich die empfangenen Daten in den RCV-DB in Arrays (of Char).
Den DBB_No am Emfangs-Baustein schalte ich genau wie beim Sende-Baustein mit einer Variablen und MOVE Befehlen um.
Der erste Datensatz wird im RCV-DB in DBB0 und der zweite in DBB10 geschrieben. Leider wird nur das erste Array "befüllt", das zweite Array, welches bei 10.0 losgeht, wird nicht beschrieben.

Um die Verwirrung komplett zu machen, beide Bausteine funktionieren, senden und empfangen erfolgreich Daten, leider wird das zweite Empfangstelegramm nicht immer erfolgreich in den DB geschrieben, aber weder der Sende-Baustein liefert ein "DONE" nach dem Senden, noch der Empfangsbaustein das "NDR" oder die Länge des empfangenen Telegramms.
Habe ich vielleicht etwas falsch parametriert? Stimmen vielleicht meine übertragenen "Längen" am Sende-Baustein nicht?

Ich würde mich riesig über Lösungsansätze freuen :)
Wenn ich wieder zu Hause bin, kann ich ach gerne Auszüge aus meinem Programm hochladen, falls meine Beschreibungen oben doch nicht verständlich sein sollten...

Grüße, Orbis
 
Hallo Christian,

bist Du sicher, daß kein DONE bzw. NDR kommt? Vielleicht sind die Signale so kurz, daß Du die nicht sehen kannst oder es wird stattdessen ERROR signalisiert?

Lege mal DONE und ERROR bzw. NDR und ERROR mit OR auf getrennte S7-Zähler und beobachte die Zählerstände. Dann siehst Du, wenn die Signale gekommen sind.

"MOVE" Dir jeweils den Baustein-Ausgangs-STATUS bei DONE oder ERROR (bzw. bei NDR oder ERROR) in ein Speicher-Word. Dann kannst Du den Status des letzten Auftragsendes in Ruhe lesen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,
vielen Dank für die schnelle Antwort. Leider kam ich gestern abend nicht mehr dazu zu antworten.
Die Idee den Ausgang mit einem Zähler zu überwachen hat funktioniert. Ich hatte auch früher schon einmal eine Flankenerkennung an den Ausgang angeschlossen, weil ich vermutete, dass der Ausgang zu kurz aktiv ist, aber zu diesem Zeitpunkt hat scheinbar mein komplettes Programm noch nicht so richtig funktioniert.

Jetzt muss ich noch mal nachsehen, ob der RCV-Baustein auch die Daten richtig schreibt...

Gruß, Christian
 
Zurück
Oben