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

Seite 2 von 8 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 75

Thema: AG_RECV (FC6) für Modbus TCP Verbindung

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    TCON kann man nicht mit CP343-1 verwenden. Dessen Funktion wird bereits durch die Projektierung in NetPro erfüllt.

    TSEND/TRCV kann man nicht mit CP343-1 verwenden. Diese Bausteine mußt Du durch AG_SEND/AG_RECV ersetzen. Das geht nicht so einfach indem man die TSEND/TRCV-Instanzen als AG_SEND/AG_RECV deklariert, weil AG_SEND/AG_RECV sind FC, die können gar nicht instanziert werden. Außerdem ist die Bausteinschnittstelle anders als bei TSEND/TRCV. Du mußt die TSEND/TRCV-Aufrufe komplett durch neu geschriebene AG_SEND/AG_RECV-Aufrufe ersetzen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    DerMatze (23.03.2016)

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

    Standard

    Und noch eins musst du tun: Im Header steht im letzten Byte die Anzahl noch Bytes die noch folgen. Den Wert musst du am 2ten Aufruf von AG_RECV als Länge angeben. Der AG_RECV unterstützt keine variable Telegrammlänge.
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

  4. Folgender Benutzer sagt Danke zu Lars Weiß für den nützlichen Beitrag:

    DerMatze (23.03.2016)

  5. #13
    DerMatze ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    TCON kann man nicht mit CP343-1 verwenden. Dessen Funktion wird bereits durch die Projektierung in NetPro erfüllt.

    TSEND/TRCV kann man nicht mit CP343-1 verwenden. Diese Bausteine mußt Du durch AG_SEND/AG_RECV ersetzen. Das geht nicht so einfach indem man die TSEND/TRCV-Instanzen als AG_SEND/AG_RECV deklariert, weil AG_SEND/AG_RECV sind FC, die können gar nicht instanziert werden. Außerdem ist die Bausteinschnittstelle anders als bei TSEND/TRCV. Du mußt die TSEND/TRCV-Aufrufe komplett durch neu geschriebene AG_SEND/AG_RECV-Aufrufe ersetzen.

    Harald
    Danke für die ausführliche Erklärung!

  6. #14
    DerMatze ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Standard

    Zitat Zitat von Lars Weiß Beitrag anzeigen
    Und noch eins musst du tun: Im Header steht im letzten Byte die Anzahl noch Bytes die noch folgen. Den Wert musst du am 2ten Aufruf von AG_RECV als Länge angeben. Der AG_RECV unterstützt keine variable Telegrammlänge.

    Mein Ansatz ist nun folgender:

    Grundlage Beispiel aus #1 da hier schon ein AG_SEND / AG_RECV mittels zwei 315er mit CP realisiert wurde.
    1. ertselle mir einen DB der den Header gem. Struktur aus deinem FB100 enthält
    2. Komandotelegramm via AG_SEND an das PAC schicken
    3. erster AG_RECV Aufruf erwartet die Antwort vom PAC
    4. zweiter AG_RECV Auftruf erst wenn Antwort vom PAC "komplett" dann die Messwerte empfangen

    Den Verbindungsauf- bzw. abbau berücksichtige ersteinmal nicht, sobald die CPU einen Neustart macht wird die Verbindung aufgebaut (OB100). Ich müsste mir nur etwas überlegen wenn die Verbindung doch mal getrennt werden sollte...

    Das wäre jetzt mein Ansatz den ich realisieren würde, wenn ich es richtig verstanden habe.
    Danke für alle Tipps und Hinweise!

    Gruß
    Matze
    -----------------------------------------------------------------------------------------
    Programmierumgebung: Step 7 V5.5 + SP3
    WinCC flexible 2008 Advanced + SP3
    -----------------------------------------------------------------------------------------

  7. #15
    DerMatze ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Beitrag

    Update:

    1. Realisierungsansatz nach Beitrag ID 17853532 (Beispiel zu AG_SEND / AG_RECV)
    2. Header DB gebaut
    DB Header.JPG
    3. via AG_SEND den Header zum PAC senden
    FB80_FC5.JPG

    4. PAC Antwort - nicht umgesetzt

    5. via AG_RECV die Messwerte empfangen
    FB80_FC6.JPG

    --> Es kommen Werte, allerdings irgendwie versetzt, zumindest kann ich damit nix anfangen...
    Was habe ich falsch gemacht.
    DB81 Messwerte.JPG
    Geändert von DerMatze (23.03.2016 um 22:04 Uhr)
    -----------------------------------------------------------------------------------------
    Programmierumgebung: Step 7 V5.5 + SP3
    WinCC flexible 2008 Advanced + SP3
    -----------------------------------------------------------------------------------------

  8. #16
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Zitat Zitat von DerMatze Beitrag anzeigen
    --> Es kommen Werte, allerdings irgendwie versetzt, zumindest kann ich damit nix anfangen...
    Was habe ich falsch gemacht.
    "Irgendwie versetzt" ist schon richtig.

    Du bekommst im Antwort-Telegramm auch einen ModBus-Header zurückgeschickt.
    Dieser belegt Byte 0-8 und sieht folgendermaßen aus:
    ModBusTCP_RxHead.jpg

    Ab Byte 9 beginnen dann deine Nutzdaten.

    EDIT: Sehe grade dass du den empfangenen Header über ein vorausgegangenes AG_RECV behandelst....
    Geändert von RONIN (23.03.2016 um 22:19 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  9. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    DerMatze (24.03.2016)

  10. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Kann es sein, daß der PAC LREAL (64 Bit) liefert?

    Und Lars schrieb was von variabler Telegrammlänge bei der Antwort. Falls das von Belang ist dann schau mal dieses Beispiel:
    Übertragung von Daten (mit FC5 "AG_SEND" und FC6 "AG_RECV") mit variabler Telegrammlänge über das TCP Protokoll

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    DerMatze (24.03.2016)

  12. #18
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Kenne den PAC selber nicht wirklich aber für ein UMG96 hab ich das mit den AG_RECV schon mal gemacht. Allerdings ohne variable Telegrammlängen.

    Ich hab damals einfach den Header samt Payload (122 Register) mit einem AG_RECV entgegen genommen und mit einem 11Byte Offset in den DB geschrieben damit
    der Header auf Byte 11-19 und die Nutzdaten ab Byte 20 zum liegen kamen.

    Hat eigentlich problemlos funktioniert. Den Header vorher getrennt auszuwerten ist aber wahrscheinlich eleganter.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  13. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    DerMatze (24.03.2016)

  14. #19
    DerMatze ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Idee

    Zitat Zitat von RONIN Beitrag anzeigen
    Ab Byte 9 beginnen dann deine Nutzdaten.
    Versuche es doch entgegen wie unter #15 Punkt 4 beschrieben.
    Das würden dann zwei AG_RECV Aufrufe etwas zeitversetzt nacheinander zu realisieren.

    Das erklärt dann auch dieses, aus Lars seinem Programm:
    FB100.JPG
    Geändert von DerMatze (24.03.2016 um 06:16 Uhr)
    -----------------------------------------------------------------------------------------
    Programmierumgebung: Step 7 V5.5 + SP3
    WinCC flexible 2008 Advanced + SP3
    -----------------------------------------------------------------------------------------

  15. #20
    DerMatze ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Kann es sein, daß der PAC LREAL (64 Bit) liefert?

    Und Lars schrieb was von variabler Telegrammlänge bei der Antwort. Falls das von Belang ist dann schau mal dieses Beispiel:
    Übertragung von Daten (mit FC5 "AG_SEND" und FC6 "AG_RECV") mit variabler Telegrammlänge über das TCP Protokoll

    Harald
    Den Tipp verfolge ich wenn das mit dem Header Empfangen nicht zum Erfolg führte. Der Beitrag liest sich aber vielversprechend
    In dem Beispiel von Lars ist der DB für die Messwerte (fast)komplett mit REAL projektiert, lediglich ein Paar 64Bit sind enthalten
    DB101.JPG
    Seine CPU kommuniziert ja auch mit einem PAC3200.
    Geändert von DerMatze (24.03.2016 um 06:18 Uhr)
    -----------------------------------------------------------------------------------------
    Programmierumgebung: Step 7 V5.5 + SP3
    WinCC flexible 2008 Advanced + SP3
    -----------------------------------------------------------------------------------------

Ähnliche Themen

  1. CP343-1 Lean, Version von AG_RECV (FC6)
    Von BoxHead im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.12.2012, 21:28
  2. FC6 AG_RECV Probleme beim Datenempfang
    Von danielplp im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 16.02.2011, 07:59
  3. Simatic Net, AG_CNTRL (FC10) und AG_RECV (FC6)
    Von Hansruedi im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 12.03.2010, 08:56
  4. Konflikt durch FC6 : AG_RECV <--> DT_DATE
    Von biertrinker im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 05.03.2010, 12:32
  5. Datenübernahme beim FC6 AG_RECV
    Von Florian_Niedermaier im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.11.2007, 13:37

Lesezeichen

Berechtigungen

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