IM151 ASCII 1SI serielle Kommunikation mit FB2 FB3

saarlaender

Level-1
Beiträge
94
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

ich habe 2 Probleme bei der Kommunikation (Seriell) mit den Bausteinen FB2 und FB3.

Die Kommunikation steht bisher nur auf Sendeseite. Empfangen klappt noch nicht richtig. Dabei gibts immer (?!) einen Error, den Code kann ich morgen nachreichen. Im entspr. Empfangs-DB steht zwar etwas plausibles drin (dh es sind schonmal keine wahllosen bzw zufälligen Daten im DB), allerdings ändert sich der Inhalt des DBs nur unregelmäßig und nur SEHR SEHR kurz - man kann nichtmal sehen was genau sich wie ändert so schnell gehts. Der Empfangs-DB SOLLTE aber stets aktuelle, sich häufig ändernde, Daten enthalten. DH immer wenn etwas gesendet wird, wird dies vom Kommunikationspartner bestätigt - der Empfangs-DB ist aber zu 90% statisch und wie gesagt nur selten und sehr sehr kurz ändern sich die Daten dort...

Ich könnte mir vorstellen, dass es am falschen Aufruf des Empfangs-FB liegt und eben unregelmäßig und sehr kurz "richtig" empfangen wird und sonst nur Fehler entstehen.

Bei der Fehlersuche kam nun die Frage auf, wann und wie genau der Empfangs-FB aufgerufen werden sollte bzw. wann / wie es absolut nicht gehen kann. Z.B. Sende- und Empfangs-FB mit der gleichen Flanke aktivieren oder Sende-FB mit einer Flanke und Empfangs-FB mit der gleichen NEGIERTEN Flanke ... oder Sende-FB mit Flanke und Empfangs-FB mit Taktmerker usw. Hierbei sei gesagt, dass der Sende-FB mit "seiner" Flanke bereits ohne Probleme funktioniert. Zu empfangen ist auch nur, wenn etwas gesendet wurde (dh es gibt nicht "einfach mal so" Daten, die ich empfangen müsste).


Die zweite Sache hat wohl eher was mit Any-Pointer als speziell mit dem Sende-FB zu tun. Ich habe einen Kommando-FB, der bis auf eine Ausnahme (Doppel-Wort) alle ASCII-Zeichen als Byte ausgibt. An diesen Ausgängen habe ich bisher die entspr. Adresse des DB stehen (z.B. DB41.DBD0; DB41.DBB4; ...).
Nun möchte ich das ganze aber über eine Variable steuern, da alles Instanziert ist. DH ich möchte eine beliebige DB-Nummer (INT) als Eingang in die Funktion geben und diese soll die Kommandos in den entspr. DB schreiben.
Ein Beispiel zu einem sich verändernden Any-Pointer habe ich bereits (die Geschichte mit BLKMOV), weiß aber nicht wie ich den hier richtig einsetzen muss.
 
Zuletzt bearbeitet:
Zurück
Oben