Problem mit BSEND/BRCV

romanz

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe zwei Kommunikationspartner und eine Punkt-zu-Punktverbindung.
Testversuche führe ich in CFC durch. Es gibt 2 Funktionsbausteine(weil 2 Kommunikationspartner), die Telegramme generieren und die Antwortstelegrammen auswerten, und ein ,der Telegrammen verwaltet mit BSEND/BRECV.
Das Problem, dass man nicht erkennen kann, von welchem Partner die Antwortstelegrammen empfangen wurde. Ich habe versucht, erst mal mit einem FB Telegramme zu schicken, wenn die Antwortgekommen(NDR=true) ist, dann der nächster an der Reihe. Das klappt leider nicht, es werden die falsche FB aktualisiert.
Hat jemand Idee wie ich das machen soll?
 
Wenn ich das richtig verstanden habe dann hast du eine Serielle Punkt zu Punkt Kopplung aufgebaut (also RS485 oder RS422) oder lieg ich da Falsch?

Wie entscheidest du denn beim Senden Welcher Teilnehmer die Daten bekommt?

Gibt es in den Antwort Daten denn keinen signifikanten Datenbereich aus dem ersichtlich ist von welchem Teilnehmer die Daten kommen!

Sowas wie eine Teilnehmeradresse oder so?

Gruß
SKg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe CP441-1 Kommunikationsprozessor (20mA TTY Schnittstelle) .
Telegramme (STx,waagenummer-2Byte,Code-2Byte,ETx) werden im ASCII-Format mit Zykluszeit 0,1s gesendet(Master-Slave). Antworttelegramm (STx,Code-2Byte,Daten-6Byte,ETx)

Genau, man kann nicht die Antworttelegrammzugehörigkeit erkennen. Partner hat sein Identifikationsnummer(Waagenummer), die ich in Telegramm einfüge.
 
Hallo romanz,

Du gibst doch bei den Bausteinen die ID aus dem Net-Pro an.
Damit unterscheiderst Du, von/zu welchem Partner die Daten kommen.

Grüße
Gebs
 
Hallo Gebs,

Ich habe nur eine Punkt-zuPunkt-Verbindung => ein ID , Die Partner werden in Reihe verbunden. R_ID biem Senden unterschiedlich , beim Empfangen gleich.
Grüße
romanz
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann mann das Antworttelegramm der Waage nicht ändern das sie ihre Teilnehmernummer mitsendet?

Wenn das nicht geht dann mußt du das ganze Sequenziell abarbeiten!
Soll heißen z.b.:

1. Senden an Waage 1 !
2. Warten auf Antwort !
3. Senden an Waage 2 !
4. Warten auf Antwort !
und wieder Schritt 1!

Also immer erst auf eine gültige Antwort warten bevor du die nächste Waage ansprichst!

Gruß
SKg
 
Das ist eine schöne aufgabe für eine Schrittkette!
Des weiteren kann man eine Telegramm Ausfallzeit mit einbinden die dafür sort das die Kette nicht unterbrochen wird und man kann eine Störung auslösen!

Gruß
SKg
 
Hallo SKg,

nein, man kann leider nicht.
Das habe ich schon getan, wenn gültige Antwort kommt , dann darf der anderer senden. Kommunikationsbaustein programmiere ich in SCL.
Siehe Anhang.

Das ist ein Teil von grosem Projekt, deswegen ich muss versuchen am besten ohne Schrittkette kommunikation zu erstellen.
Gruß
romanz
 

Anhänge

  • SendenEmpfangen.txt
    3,3 KB · Aufrufe: 18
Zuletzt bearbeitet:
Hier ist Schaltplan, an der Verschaltung kann es nicht liegen. Wenn ich nur ein FB benutze und nur die Waageummer ändere datenaustausch ist einwandfrei,
nur problem wenn 2 oder mehrere aktualisiert werden müssen.

moz-screenshot.png
moz-screenshot-1.png
 

Anhänge

  • Aufzeichnen.JPG
    Aufzeichnen.JPG
    33,2 KB · Aufrufe: 13
Ich habe CP441-1 Kommunikationsprozessor (20mA TTY Schnittstelle) .
Telegramme (STx,waagenummer-2Byte,Code-2Byte,ETx) werden im ASCII-Format mit Zykluszeit 0,1s gesendet(Master-Slave). Antworttelegramm (STx,Code-2Byte,Daten-6Byte,ETx)

Genau, man kann nicht die Antworttelegrammzugehörigkeit erkennen. Partner hat sein Identifikationsnummer(Waagenummer), die ich in Telegramm einfüge.

Wie gesagt, TTY ist eine "Punkt zu Punkt"-Verbindung.
d.h. 2 Partner unterhalten sich, keine 3 !!

Das Senden vom CP aus zu mehreren Partnern kann ja (physikalisch) noch funktionieren, da alle Empfängerdoiden in Reihe sind.
(Treiberspannung OK für die Schleifenbürde mal vorausgesetzt)

Beim Antworten zum CP kommen mir doch Zweifel, da alle Sender-Transis auch in Reihe sind.
Da im "Ruhezustand" eines Senders der Transistor meines Wissens durchgesteuert ist (log.0=20mA), sollte es zwar funktionieren.
Aber was, wenn nur einer in der Schleife zuckt oder gar fehlt?

Ich denke eine saubere Lösung wäre für jeden Partner eine eigene TTY-Verbindung.
Und die Zuordnung der Telegramm-Antwort ist dann auch kein Problem.

Gruß Roland
 
Zuviel Werbung?
-> Hier kostenlos registrieren
für jeden Partner eine eigene TTY-Verbindung zu machen ist nicht möglich, weil die Anlage wird lediglich auf pcs7 und S 400 umgestellt, alle physikalische verbindungen bleiben erhalten.

Früher mit S5 hat alles funktioniert, es muss irgenwelche Lösung geben.
Man hat leider keine Möglichkeit altes programm zu studieren.
 
Mmmmh...

Früher mit S5 hat alles funktioniert, es muss irgenwelche Lösung geben.
Man hat leider keine Möglichkeit altes programm zu studieren.

Wenn das mit S5 mal funktioniert hat, sollte es auch mit S7 zu realisieren sein.
Mir fallen da spontan 2 Punkte ein:
- Ist die Hardware, sprich CP, pysikalisch vergleichbar?
(Kann man ein solches Problem sicher ausschliessen)

- Sicherlich haben sich die Zykluszeiten mittlerweile verkürzt
(Ich würde daher eher auf ein Koordinierungsproblem tippen)

Da PtP-Verbindung, sind doch für den CP beide Partner als 1 Partner anzusehen.
Also auch 1 Empfangs-FB. Die Auswertung ist ja nicht im Telegramm möglich (kein ID).
Da bleibt doch nur die Möglichkeit, die Antwort einer gezielten Anfrage zuzuordnen.

Kann mann das Antworttelegramm der Waage nicht ändern das sie ihre Teilnehmernummer mitsendet?

Wenn das nicht geht dann mußt du das ganze Sequenziell abarbeiten!
Soll heißen z.b.:

1. Senden an Waage 1 !
2. Warten auf Antwort !
3. Senden an Waage 2 !
4. Warten auf Antwort !
und wieder Schritt 1!

Also immer erst auf eine gültige Antwort warten bevor du die nächste Waage ansprichst!

Gruß
SKg

Muss ja bei 2 Partnern keine riesige Schrittkette sein.
Auf jeden Fall würde ich die Sache zeitlich etwas entkoppeln.
Versuchsweise mal mit Zeiten im Sekundenbereich.

Gruß Roland
 
Danke Roland,

wahrscheinlich hast du recht, ich werde versuchen mit Schrittkette und Zeit- variation zu realisieren, schauen mal was passiert ?!

Gruß
Roman
 
Zurück
Oben