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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: SPS Daten über eine Socket Schnittstelle senden. Aber wie???

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Energie85 Beitrag anzeigen
    Was hält Ihr von der fetch\write Methode?
    Das Protokoll für fetch/write ist relativ einfach und auch dokumentiert. In diesem Fall ist deine SPS aber in jedem Fall passiv. Wenn das nicht stört ist es sicher eine einfache Möglichkeit Daten in der SPS anzusprechen, da in der SPS relativ wenig programmiert werden muss.
    Da das Protokoll aus S5 Zeiten stammt, hast du aber die Begrenzung auf Datenbausteinnummern bis max. 255, da im Telegramm für diese Nummer nur ein Byte vorgesehen ist.

  2. #12
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das muss schon in beide richtungen gehen. Die fetch\write Methode ist dann nichts für mich schade
    Ich hab da eine Doku im Internet gefunden.
    http://cache.automation.siemens.com/...le_data_de.pdf
    Was hälst du von der Methode?
    Könntest du mir paar Bücher für die Socket Programmierung empfehlen? In S7 bin ich einigermaßen fit aber in C++ hab ich noch nicht den großen überblick

  3. #13
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich darf das doch mit der fetch/write Methode machen ich bin auf die seite von pvbrowser gestoßen und habe da ein gutes beispiel gefunden. Kann man das C++ Programm anpassen und von dort aus ohne Lizenskosten übernehmen?
    Auf die Seite bin ich gestoßen: http://pvbrowser.de/pvbrowser/sf/man...iemensTCP.html

  4. #14
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Energie85 Beitrag anzeigen
    ich darf das doch mit der fetch/write Methode machen ich bin auf die seite von pvbrowser gestoßen und habe da ein gutes beispiel gefunden. Kann man das C++ Programm anpassen und von dort aus ohne Lizenskosten übernehmen?
    Wenn du jetzt doch fertige Bibliotheken verwendet darfst, wieso dann nicht libnodave? Dann muss in der SPS gar nichts projektiert und programmiert werden.

    Die von die erwähnte Bibliothek steht wie auch libnodave unter der LGPL.
    Ich hoffe ich bekomme es auf die Reihe was du darfst und was du musst, ohne Anspruch auf Vollständigkeit und Korrektheit:

    - du musst einen Hinweis darauf geben, dass du in deinem Programm Software die unter einer OSS(OpenSourceSoftware)-Lizenz steht verwendest. Leg einfach mal eine Siemens Step7/WinCCflexible Installations-CD in deinen Rechner, und wirf einen Blick in die "Liesmich_OSS" oder so was in der Richtung. Da kannst du mal sehen wie Siemens das macht.

    - du darfst die unveränderte Bibliothek dynamisch (z.B. in Form einer dll) oder statisch linken. Dein eigenes Projekt kannst du unter deine eigene Lizenz stellen.

    - wenn du Änderungen an der Bibliothek vornimmst musst du den Quellcode mit den gemachten Änderungen zur Verfügung stellen

    - wenn du den Quellcode in dein eigenes Projekt reinkopierst und alles zusammenmixt, erstellst du ein abgeleitetes Werk (derivative work) und dein gesamtes Projekt fällt unter die LGPL

  5. #15
    Registriert seit
    13.11.2011
    Beiträge
    48
    Danke
    7
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hi,

    also ich habe schon mehrere Verbindungen ausprobiert.

    Wenn es eine Socket Verbindung werden soll, kann ich die Betriebsart SEND/RECEIVE empfehlen.
    http://support.automation.siemens.com/WW/view/de/17853532
    Als Verbindung eine UDP-Verbindung.
    Das ist besser zu handeln als eine TCP-Verbindung (Bei einer TCP-Verbindung muss der Empfangspuffer
    genauso groß sein, wie die Daten, die gesendet werden)

    Bei der Fetch / Write Verbindung und auch bei Libnodave muss man, wenn man die Anwendung schließt
    eine weile warten, bis man die Anwendung wieder starten kann. Ansonsten gibt es einen Socket Fehler.
    Irgendwie braucht es lange, bis die Socket Verbindung (Port102) wieder frei wird.
    Wieso weiß ich auch nicht.

    Gruß
    Eleu


  6. #16
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe es endlich geschafft Daten auszutauschen zwischen dem socket und der SPS (PC-->SPS) dies habe ich mit dem G_Resv Baustein gemacht.
    Jetzt möchte ich das ganze mit dem G_Send Baustein in die andere Richtung machen (SPS-->PC) aber leider weiß ich nicht genau wo ich anfangen soll
    Habt ihr vielleicht einen Tip für mich.

  7. #17
    Registriert seit
    13.11.2011
    Beiträge
    48
    Danke
    7
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Moin,

    wo kneift es denn genau ?
    Ein Schuß ins blaue: Hast Du vergessen das Taktmerkerbyte in der HW-Konfig zu konfigurieren ? Wäre der Klassiker
    Mit welchem Tool willst Du denn die Daten zyklisch empfangen ?

    Gruß
    Eleu

  8. Folgender Benutzer sagt Danke zu Eleu für den nützlichen Beitrag:

    Energie85 (08.12.2011)

  9. #18
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Morgen,

    Danke für den Tipp Eleu J
    ich habe es hinbekommen Daten von der SPS zum Socket (SPSàSocket) zu verschicken. Das Problem ist das ich die verschickten Werte auf Variablen im C++ Programm verteilen möchte. Muss ich da mehrere Datenbausteine erstellen um dies zu erreichen?

    Mein Ziel ist es einfach mehrere Variablen im Socket Programm zu kontrollieren.
    Dies natürlich auch umgekehrt.

    Meine nächste Frage wäre: Wenn ich etwas vom Socket zur SPS verschicke (SocketàSPS) z.B. verschicke ich eine Variable mit dem Wert 1234 diese Werte werden im Datenbaustein abgelegt.

    Beispiel:

    DB222.DBB 0 Zeichen 1
    à
    DB222.DBB 1 Zeichen 2-à
    diese sollen im Programm einen Wert ergeben (1234)
    DB222.DBB 2 Zeichen 3-
    à
    DB222.DBB 3 Zeichen 4-à


    Mein Problem ist das ich mit den Wert den ich verschickt habe arbeiten möchte. Mit den Werten im Datenbaustein weiß ich nichts anzufangen L Gibt es eine Möglichkeit die Werte im Datenbaustein als einen Wert zu erstellen?

  10. #19
    Registriert seit
    13.11.2011
    Beiträge
    48
    Danke
    7
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Also ich bin kein C++ Programmierer
    In C wäre das ein Char - Array was übertragen wird, aber ich glaube in C++ geht auch ein String als Variable.
    Der DB sollte genauso groß sein wie der String der Übertragen wird.
    Wenn Du in Step 7 eine Variablentabelle aufmachst, kannst Du Dir die einzelnen Byte etweder in HEX oder als Zeichen anzeigen lassen.

    Was soll in der SPS damit gemacht werden ?

  11. #20
    Registriert seit
    27.11.2011
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich will mit den Werten z.B. einen Motor steuern. z.B. der wert 120. Aber wenn die Werte auf verschiedenen Datenbausteinen liegen kann ich nichts damit anfangen Das die Werte auf der Variablentabelle abgelegt werden weiß ich. Es ist nicht mein Ziel die Werte zu beobachen. Mein Ziel ist es die Variablen einzusetzen.

Ähnliche Themen

  1. daten über PN senden und empfangen
    Von Servernexus im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 04.08.2011, 16:43
  2. XML-Daten senden und lesen, aber wie?
    Von tigger im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 03.12.2009, 13:19
  3. Antworten: 0
    Letzter Beitrag: 05.03.2008, 17:43
  4. Antworten: 8
    Letzter Beitrag: 06.02.2008, 18:19
  5. Daten über DB senden
    Von bigannang im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 08.11.2007, 22:50

Stichworte

Lesezeichen

Berechtigungen

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