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

Ergebnis 1 bis 3 von 3

Thema: C++/Winsock/ISO on TCP/SPS Telegrammen

  1. #1
    jorgio Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    wir haben einen Project bekommen, einen dienst zu erstellen ,der Telegramme von s7-300 cp343 it20gx empfängt und auch sendet.

    Ich kriege im Kopf nicht hin, wie es funken sollte. winsocket kenne ich auswendig hier k.p.

    Ich habe RFC1006 untersucht, also es werden ISO packete über TCP/IP protokol übertragen.

    ISO strucktur ist mir unklar.

    Die bibliotheken libnodave,rllib habe ich durchgelesen und kriege nicht hin.Dort werden die daten geholt und in SPS geschrieben. ;-(

    Unsere stand:
    Ich muss port 5000 binden und warten auf SPS. Wenn die Daten angekommen, verarbeiten und antwort telegramm senden.
    SPS hat auch einen eigenen port 5001.

    Die s7 funktionen fetch/write sind sie für mich relevant?
    Wie muss ich vorgehen bitte?

    thx
    Zitieren Zitieren Gelöst: C++/Winsock/ISO on TCP/SPS Telegrammen  

  2. "
    Zitat Zitat von jorgio
    Hallo zusammen,

    wir haben einen Project bekommen, einen dienst zu erstellen ,der Telegramme von s7-300 cp343 it20gx empfängt und auch sendet.

    Ich kriege im Kopf nicht hin, wie es funken sollte. winsocket kenne ich auswendig hier k.p.

    Ich habe RFC1006 untersucht, also es werden ISO packete über TCP/IP protokol übertragen.

    ISO strucktur ist mir unklar.

    Die bibliotheken libnodave,rllib habe ich durchgelesen und kriege nicht hin.Dort werden die daten geholt und in SPS geschrieben. ;-(

    Unsere stand:
    Ich muss port 5000 binden und warten auf SPS. Wenn die Daten angekommen, verarbeiten und antwort telegramm senden.
    SPS hat auch einen eigenen port 5001.


    Die s7 funktionen fetch/write sind sie für mich relevant?
    Wie muss ich vorgehen bitte?

    thx
    Hallo,
    TCP Sockets arbeiten zeichenorientiert. Zur Übertragung von Datenstrukturen von SIMATIC SPS per TCP verwendet Siemens
    deshalb das paketorientierte RFC1006-Protokoll über TCP. Der zu verwendende TCP-Port für eine RFC1006-Verbindung ist der
    Port 102.

    Die Spezifikation des Protokolls ist im Internet veröffentlicht, z.B. unter RFC1006.

    Wahrscheinlich werden die Daten über die SEND/RECEIVE-Schnittstelle der SPS gesendet (du solltest mal fragen warum die SPS Port 5001 verwendet und nicht 102).

    Dazu werden auf der SPS die folgenden von SIEMENS bereitgestellten Funktionsbausteine benötigt und müssen im SPS-Programm aufgerufen werden: Der Funktionsbaustein AG_SEND/AG_LSEND zum Senden von Daten und der Funktionsbaustein AG_RECV/AG_LRECV zum Empfangen von Daten auf der S7.

    Alternativ zur SEND/RECEIVE-Schnittstelle kannst Du z.B. mit dem FETCH/WRITE-Protokoll mit deiner Anwendung aktiv die Daten von der SPS pollen (per Fetch-Aufruf). Der Protokollaufbau von Fetch/Write steht in der Doku zum Ethernet-CP mit drin und ist sehr einfach. In diesem Fall musst Du genau wissen in welchem DB deine Daten drinstehen, während bei SEND/RECEIVE die SPS das Datenpaket aktiv sendet.

    Falls Du diese Protokolle nicht selbst implementieren möchtest, dann findest Du auch Bibliotheken, die diese Prot. enthalten. Die sind zumeist jedoch nicht kostenlos."


  3. #2
    Registriert seit
    12.04.2005
    Beiträge
    27
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von jorgio
    Hallo zusammen,

    wir haben einen Project bekommen, einen dienst zu erstellen ,der Telegramme von s7-300 cp343 it20gx empfängt und auch sendet.

    Ich kriege im Kopf nicht hin, wie es funken sollte. winsocket kenne ich auswendig hier k.p.

    Ich habe RFC1006 untersucht, also es werden ISO packete über TCP/IP protokol übertragen.

    ISO strucktur ist mir unklar.

    Die bibliotheken libnodave,rllib habe ich durchgelesen und kriege nicht hin.Dort werden die daten geholt und in SPS geschrieben. ;-(

    Unsere stand:
    Ich muss port 5000 binden und warten auf SPS. Wenn die Daten angekommen, verarbeiten und antwort telegramm senden.
    SPS hat auch einen eigenen port 5001.


    Die s7 funktionen fetch/write sind sie für mich relevant?
    Wie muss ich vorgehen bitte?

    thx
    Hallo,
    TCP Sockets arbeiten zeichenorientiert. Zur Übertragung von Datenstrukturen von SIMATIC SPS per TCP verwendet Siemens
    deshalb das paketorientierte RFC1006-Protokoll über TCP. Der zu verwendende TCP-Port für eine RFC1006-Verbindung ist der
    Port 102.

    Die Spezifikation des Protokolls ist im Internet veröffentlicht, z.B. unter RFC1006.

    Wahrscheinlich werden die Daten über die SEND/RECEIVE-Schnittstelle der SPS gesendet (du solltest mal fragen warum die SPS Port 5001 verwendet und nicht 102).

    Dazu werden auf der SPS die folgenden von SIEMENS bereitgestellten Funktionsbausteine benötigt und müssen im SPS-Programm aufgerufen werden: Der Funktionsbaustein AG_SEND/AG_LSEND zum Senden von Daten und der Funktionsbaustein AG_RECV/AG_LRECV zum Empfangen von Daten auf der S7.

    Alternativ zur SEND/RECEIVE-Schnittstelle kannst Du z.B. mit dem FETCH/WRITE-Protokoll mit deiner Anwendung aktiv die Daten von der SPS pollen (per Fetch-Aufruf). Der Protokollaufbau von Fetch/Write steht in der Doku zum Ethernet-CP mit drin und ist sehr einfach. In diesem Fall musst Du genau wissen in welchem DB deine Daten drinstehen, während bei SEND/RECEIVE die SPS das Datenpaket aktiv sendet.

    Falls Du diese Protokolle nicht selbst implementieren möchtest, dann findest Du auch Bibliotheken, die diese Prot. enthalten. Die sind zumeist jedoch nicht kostenlos.
    Zitieren Zitieren Re: C++/Winsock/ISO on TCP/SPS Telegrammen  

  4. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ist das Problem mittlerweile gelöst oder gibt es neue Erkenntnisse?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

Ähnliche Themen

  1. Winsock-Steuerelmnt ähnlich Kommunikation unter TwinCAT
    Von borsti87 im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 29.03.2011, 19:17
  2. WinCCflex + WinSock
    Von Lazarus™ im Forum HMI
    Antworten: 3
    Letzter Beitrag: 20.11.2007, 18:07
  3. CAN: Filtern von Telegrammen
    Von PeterEF im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 08.10.2007, 18:07
  4. Empfang von "Telegrammen"
    Von Lilapauser im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 01.06.2005, 12:49

Lesezeichen

Berechtigungen

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