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

Ergebnis 1 bis 9 von 9

Thema: S7-mEC mit TCP/IP

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen.

    Ich muss im Rahmen meiner Abschlussarbeit ein kleines Programm schreiben, das per TCP/IP Kommunikation Integer Variablen an eine S7-mEC schickt. Dort sollen diese verarbeitet werden und anschließend direkt wieder an das Programm zurück gesendet werden.

    Jetzt hänge ich allerdings an dem Punkt eine Verbindung erfolgreich aufzubauen. Dabei weiß ich nicht, ob ich irgendwas grundlegendes vergessen habe oder es nur an der Konfiguration liegt und hoffe, dass hier einer Erfahrung damit hat und mir weiter helfen kann:

    Folgendes ist schon erledigt:
    -Programm mit C++/Qt geschrieben, welches letzt endlich den aktiven Verbindungsaufbau durchführen soll. Hierfür wird QTcpSocket genutzt.
    -S7-mEC in Step7 als PCStation mit WinAC RTX projektiert
    -Mit Open Communication Wizard die Verbindungsdatenbank erstellt.
    -Versuch sowohl mit eigenem S7-Programm als auch mit dem Beispiel-Programm OpenTCP eine Verbindung zwischen S7 und Programm aufzubauen. Hierfür beim OpenTCP-Beispiel die Verbindungseinstellungen geändert und eine neue Instanzdatenbank erstellt.
    -Genutzt werden die Funktionsbausteine FB63-66

    Wenn ich jetzt mit einem TCP-Client Test-Programm versuche eine Verbindung aufzubauen, wird diese jedes mal von der S7 zurück gewiesen. Nutze ich das angepasste OpenTCP Beispiel ändert sich am Status vom FB65 aber nichts.
    Somit habe ich die Vermutung, dass das ganze garnicht ohne weiteres funktioniert. Habe jetzt schon desöfteren von libnodave gelesen. Nutze ich mein eigenes Programm, erhalte ich einen Error-Code am Status, den ich in der Tabelle aber leider nicht finden kann.

    Somit stellen sich mir folgende Fragen:
    -Ist so eine Bibliothek wie libnodave nötig oder reicht auch die von Qt? Dachte die von Qt reicht aus, da sowohl S7 und als auch Qt TCP-Sockets nutzen.
    -Weiß jemand wo ich die komplette Status-Tabelle des FB65 finde?
    -Sind FB63-FB66 überhaupt die richtigen Bausteine für die S7-mEC oder bin ich da evtl völlig falsch?

    Sofern ihr mehr Informationen braucht oder evtl Tipps habt was man gerne mal falsch macht, immer her damit

    Viele Grüße
    Philipp
    Zitieren Zitieren S7-mEC mit TCP/IP  

  2. #2
    gorny ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.07.2014
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Auch wenn ich keine Antwort bekommen habe, gibt es von mir eine Rückmeldung

    1. Nein, libnodave ist nicht nötig. Das Programm lässt sich problemlos mit der S7 verbinden.
    2. Status-Tabelle nicht gefunden, allerdings ist das Problem "von alleine" verschwunden, somit zZ kein Bedarf
    3. Ja, es sind die richtigen Bausteine.

    Senden von Daten von Programm zu S7 funktioniert soweit problemlos, zurücksenden so wie es aussieht auch. Jetzt brauche ich nur einen passenden Datentyp mit dem ich auch vernünftig arbeiten kann. Vielleicht hat da jemand Erfahrung und kann meine Suche ein wenig beschleunigen.
    Nochmal anders gefragt: Welcher Datentyp eignet sich um Daten zwischen S7 und Programm hin und her zu schicken?! Nutze ich zb einfach Integer, kommt was völlig anderes an als geschickt wurde.

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Eine S7 besitzt eine andere Endianess als z.B. ein x86 System. Bei einem Zwei-Byte Wert wie Integer müsstest du High- und Low-Byte vertauschen um den identischen Wert zu erhalten. Der Real-Datentyp in der SPS ist vom Prinzip her identisch mit einem float auf einem PC, aber auch hier muss die Bytereihenfolge angepasst werden.

    Bei libnodave sind diese Funktionen alle schon integriert, außerdem musst du mit libnodave auf SPS-Seite nichts mehr programmieren, weil das Handling der Daten das Betriebssystem der SPS übernimmt.

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

    Standard

    Ok, danke für die Antwort erst einmal.
    Das heißt also entweder Byteorder verdrehen oder aber den kompletten Clienten nochmal mit libnodave aufsetzen. Ist die Frage was weniger Aufwand ist.
    Gibt es zu libnodave irgendwo eine Dokumentation? Habe da auf die schnelle nichts gefunden..

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Bei libnodave sind Beispielprogramme dabei, damit sollte man relativ schnell zu einem Ergebnis kommen.
    Wenn du C++ verwendest kannst du dir auch mal Snap7 ansehen. Das macht prinzipiell das Gleiche wie libnodave, aber mit einer objektorientierten Schnittstelle. Ebenfalls Opensource unter der LGPL.

  6. #6
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Oder du kommunizierst über die TCP-Verbindung mit ASCII zeichen.

    Dann steht dort ASCII Kodiert 12345.
    Damit hast du dann nur den Aufwand die Zahlen jeweils in ASCII zu konvertieren und zurück.
    Auf der Siemens-Seite geht dies mit I_STRING und STRING_I ganz gut (falls es DI sind schreibt statt I DI).

    Grüße

    Marcel
    Stell Dir vor es geht, und keiner kriegts hin!

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

    Standard

    Das mit den ASCII Zeichen hört sich auf Anhieb am besten an, da müsste ich nämlich nichts neu programmieren und könnte alles bisher programmierte weiterhin nutzen. Werde ich gleich direkt mal testen.
    Ansonsten werde ich mich mal mit Snap7/libnodave ausprobieren.

    Kurze Frage noch dazu: Werden dann weiterhin FB63&FB64 genutzt oder muss ich dann wieder andere Kommunikationsbausteine nutzen?!

  8. #8
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Lies den Beitrag vom Thomas, der hat schon gesagt das du bei Libnodave auf der SPS Seite nichts programmieren musst.

    Du kannst dann in deinem C# Programm angeben was du lesen/schreiben willst (Eingänge, Ausgänge, Merker, DBs, etc)

    Grüße

    Marcel
    Stell Dir vor es geht, und keiner kriegts hin!

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, dann kommt das aber für mich wohl nur im Notfall in Frage. Das angesprochene Programm soll eine kleine Simulation sein, welche nur gewisse Temperatur-Sensoren simuliert und die Daten an die SPS weiter gibt und von der SPS Daten erhält wie die dazugehörigen Ventile zu stellen sind. Somit soll so wenig wie möglich von dem Programm gesteuert werden.

    Der Ansatz mit den ASCII Zeichen funktioniert soweit schonmal. Zumindest in die Richtung von Simulation zu SPS. Jetzt muss ich nur noch die andere Richtung hinbekommen und es ist fertig.

    Vielen Dank bis hier hin

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 07.08.2014, 08:19
  2. Step 7 ProfiNet Kommunikation S7 mEC und ST 315T
    Von Karabullo im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 16.12.2013, 16:09
  3. TIA S7-mec 6ES7677-1DD10-0BA0
    Von stricky im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 01.08.2013, 10:47
  4. S7-meC Backup auf ersatzgerät zurückspielen
    Von vollmi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.12.2010, 10:26
  5. Antworten: 10
    Letzter Beitrag: 17.06.2008, 18:30

Lesezeichen

Berechtigungen

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