Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Probleme TCP-Verbindung CP343 mit externer Peripherie (AG_Receive)

  1. #1
    Registriert seit
    25.05.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr SPS Spezialisten,
    ich bin am verzweifeln und hoffe ich finde hier jemand der mir ein Stück weiter helfen kann.

    Folgende Situation:
    Ich möchte mit einer Siemens CPU 315 mit einem CP343-1 Advanced auf eine externe Peripherie zugreifen. Verbindung hab ich aufgebaut (TCP - Verbindung) war kein Ding. Es ist auch nicht weiter schwierig gewesen die ersten Daten vom Empfangsbaustein zu lesen, doch jetzt kommts.

    Da ich mich erst vor kurzem mit dem AG_Receive (FC6) Baustein erst angefreundet hab weiß ich nicht wie der so richtig reagiert.

    Problem:
    Ich bekomme ständig und das recht schnell neue Daten in den dafür vorgesehenen DB, wie kann ich das aufhalten? Soll ich nach empfang der Daten den Baustein auf enable setzen?

    Hab ich auch schon versucht, jedoch kommt es hin und wieder vor das NDR dann auf True geht ich dies aber nicht mehr zurück setzen kann.

    Wie Ihr seht ich benötige wirklich dringend Hilfe wie ich das angehen kann und bitte kommt nicht mit irgendwelchen Beispielprogrammen von Siemens, die hab ich bereits versucht.

    Vielen Dank
    Zitieren Zitieren Probleme TCP-Verbindung CP343 mit externer Peripherie (AG_Receive)  

  2. #2
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von bx76 Beitrag anzeigen
    Problem:
    Ich bekomme ständig und das recht schnell neue Daten in den dafür vorgesehenen DB, wie kann ich das aufhalten? Soll ich nach empfang der Daten den Baustein auf enable setzen?
    Warum ist das ein Problem?
    Die meisten haben das Problem das die Daten zu langsam kommen.
    Egal!
    Entweder Du überspringst den Aufruf des FC6 und rufst ihn nur im (?) Sekundentakt auf, oder Du sendest auf der Gegenseite langsamer (Aktivierung des FC5).
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Zitat Zitat von bx76 Beitrag anzeigen
    mit einer Siemens CPU 315 mit einem CP343-1 Advanced
    [...]
    Verbindung hab ich aufgebaut (TCP - Verbindung) war kein Ding.
    Die Verbindung baut sich ja auch vollkommen von alleine auf, wenn sie richtig projektiert ist.

    Zitat Zitat von bx76 Beitrag anzeigen
    Da ich mich erst vor kurzem mit dem AG_Receive (FC6) Baustein erst angefreundet hab weiß ich nicht wie der so richtig reagiert.
    [...]
    und bitte kommt nicht mit irgendwelchen Beispielprogrammen von Siemens, die hab ich bereits versucht.
    Die Beispielprogramme von Siemens sind das Grundgerüst, um spielerisch zu testen, wie Kommunikation funktioniert.

    Wie der FC6 "AG_RECV" arbeitet findest Du in der Step7-Baustein-Onlinehilfe mit F1 und in Siemens-Beispielen,
    die Du nicht genannt haben willst.

    Zitat Zitat von bx76 Beitrag anzeigen
    Problem:
    Ich bekomme ständig und das recht schnell neue Daten in den dafür vorgesehenen DB, wie kann ich das aufhalten?
    Vielleicht solltest Du nur dann Daten von dem Kommunikationspartner anfordern, wenn Du die auch empfangen willst.
    Falls der Kommunikationspartner keine besondere Aufforderung zum Senden braucht und zyklisch sendet, dann mußt
    Du halt alle Daten empfangen und verarbeiten.

    Gruß
    Harald

  4. #4
    bx76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erst einmal vielen Dank für Eure schnellen Antworten.
    Ich glaub ich sollte Euch mal mein Problem genauer beschreiben.

    Die externe Peripherie die ich ansteure sendet sekündlich einen Leitungsüberwachungsframe (Bsp. AABB0007AACC). Wenn ich nun ein Kommando absetze, dann bekomme ich auch die richtigen Daten (zumindest sehe ich das im Empfangs DB. Da die Daten im DB wie in einem Ringpuffer behandelt werden weiß ich nie genau auf welchem Array Byte mein Header landet, also muss ich die ankommenden Daten auf den Header überprüfen.

    Wenn ich den Receive Baustein zyklisch aufrufe, dann kommen die Daten sehr schnell, vielleicht mach ich da auch was falsch. Wie würdet Ihr prinzipiell dieses Thema angehen, denn wie gesagt ich bin was das Thema angeht neu und obwohl ich mich in den CP343 und die FC's eingelesen hab will es irgendwie nicht funktionieren.

    Danke Euch schon mal im voraus.
    Falls Ihr meine Erläuterungen nicht versteht, einfach Fragen.

  5. #5
    Registriert seit
    22.05.2005
    Ort
    sonniges Maifeld
    Beiträge
    1.067
    Danke
    77
    Erhielt 205 Danke für 159 Beiträge

    Standard

    Zitat Zitat von bx76 Beitrag anzeigen
    Erst einmal vielen Dank für Eure schnellen Antworten.
    Ich glaub ich sollte Euch mal mein Problem genauer beschreiben.

    Die externe Peripherie die ich ansteure sendet sekündlich einen Leitungsüberwachungsframe (Bsp. AABB0007AACC). Wenn ich nun ein Kommando absetze, dann bekomme ich auch die richtigen Daten (zumindest sehe ich das im Empfangs DB. Da die Daten im DB wie in einem Ringpuffer behandelt werden weiß ich nie genau auf welchem Array Byte mein Header landet, also muss ich die ankommenden Daten auf den Header überprüfen.

    Wenn ich den Receive Baustein zyklisch aufrufe, dann kommen die Daten sehr schnell, vielleicht mach ich da auch was falsch. Wie würdet Ihr prinzipiell dieses Thema angehen, denn wie gesagt ich bin was das Thema angeht neu und obwohl ich mich in den CP343 und die FC's eingelesen hab will es irgendwie nicht funktionieren.

    Danke Euch schon mal im voraus.
    Falls Ihr meine Erläuterungen nicht versteht, einfach Fragen.

    Hm, bekommst du Telegramme mit verschiedenen Längen geschickt ???
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

  6. #6
    bx76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja. Einmal die Leitungsüberwachung, dann die Response auf das Kommando, worin sich die benötigten Nutzdaten befindet und falls ein Kommando nicht ausführbar ist bekomme ich auch eine Response.

    Mir würde es aber reichen wenn ich die Nutzdaten mit entsprechendem Header Filtern könnte und diese Datenlänge ist immer gleich.

    Das Problem ist der Ringpuffer im DB.

    Ach noch was, ich nehme auch gern Tips an wie man dies in SCL programmieren könnte, denn das Ergebnis sollte ein FB sein der all das abhandelt.(nur als Info)
    Geändert von bx76 (26.05.2010 um 11:17 Uhr)

  7. #7
    bx76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, ich hab Euch noch ne Info bzw. Frage zu meinem Thema:

    Ich hab nun ein Programm erstellt, dass den Empfangsbaustein sobald er Daten empfängt am EN Eingang auf False geschaltet wird. Funktioniert soweit auch und NDR geht auch auf True bzw. die Datenlänge zeigt die zu erwartende Datenlänge an.

    Jedoch hab ich nun das Problem dass dies nur einmalig geht, sobald ich mit meinem Sendebaustein wieder ein Kommando absetzt so reagiert der Receivebaustein nicht mehr, ist wie eingefroren, was kann ich tun? Muß ich die Daten aus dem DB weg speichern? Falls ja wie?

    Denn wenn ich hierfür eine Lösung hätte wäre mein Thema so gut wie geschafft.



    Danke

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Meiner Meinung nach muß der AG_RECV-Baustein immer enabled sein, also immer aufgerufen werden.
    Ein disablen oder nicht-Aufrufen bringt nichts, der CP empfängt ja trotzdem Datenpakete, der AG_RECV
    holt die nur vom CP in die CPU. Das Verhalten des CP kann nur mit FC10 AG_CNTRL beeinflußt werden
    (Disconnect, Connect, Reset ...).

    NDR=1 zeigt an, wenn ein neues Datenpaket vom CP zur CPU kopiert wurde, LEN zeigt dann an, wie
    groß das Paket war. Es kann aber z.B. auch ERROR=1 und STATUS=W#16#8185 angezeigt werden,
    dann wurde z.B. ein Datenpaket größer als der angegebene RECV-Puffer empfangen.
    Die meiste Zeit wird AG_RECV aber NDR=ERROR=0 und STATUS=W#16#8180 oder W#16#8181 anzeigen:
    "Es liegen noch keine Daten vor" oder "Auftrag läuft".

    Also: AG_RECV frei laufen lassen und ERROR und NDR + LEN auswerten.

    Gruß
    Harald

  9. #9
    bx76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2010
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Infos, bin zwar jetzt etwas schlauer was den CP angeht, jedoch hab ich immer weniger Plan wie ich den Sch... geregelt bekomme.

Ähnliche Themen

  1. CP343-1 Lean Verbindung zu PC
    Von ssound1de im Forum Hochsprachen - OPC
    Antworten: 22
    Letzter Beitrag: 11.07.2011, 09:05
  2. Verbindung zu S7 CPU 314 CP343-1 Lean
    Von ditj_vitja im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 17.09.2010, 16:40
  3. VPN-Verbindung CP343-1
    Von dirknico im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.07.2010, 10:09
  4. FTP Verbindung mit CP343
    Von gally11 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 20.09.2007, 06:46
  5. Verbindung CP343-1 und CP-443-1
    Von Kuffel im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.10.2006, 08:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •