Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Verbindung einer Siemens S7 mit einer CoDeSys-Steuerung

2012-03-02
2012-03-06
  • FeigeFilling - 2012-03-02

    Hallo liebe Gemeinde,

    ich hoffe ich bin in der richtigen Rubrik für meine Anfage.

    Ich schreibe im Moment meine Bachelorarbeit über das Thema CoDeSys. Dabei ist ein Kapitel der Verbindung ziwschen einer Siemens S7 und einer CoDeSys-Steuerung über Ethernet gewidmet.

    Es soll keine direkte HW beschrieben werden, sondern viel mehr ob es technisch möglich ist und welche Einstellungen getroffen werden müssen bzw. welche Bausteine aufgerufen werden müssen.

    Die Einstellungen bei Siemens habe ich soweit gefunden und weiss wie ich dort das Ethernet ansprechen und beschreiben kann.

    Nun suche ich schon eine Zeit nach den Einstellungen, die ich in CoDeSys V3.4 vornehmen muss um einmal die Anbindung an ein Ethernet zu realisiern und vorallem wie ich empfangene Daten aufbereite und Daten vorbereite um diese über das Ethernet zu schicken.

    Da ja fast jeder Hersteller CoDeSys-konformer Steuerungen eigene Programmtools schreibt, will ich das auf der Programmierumgebung von 3S vorstellen, wie es möglich ist. Allerdings habe ich bisher keine direkten Infos gefunden wie ich über Ethernetkelmmen in CoDeSys auf die Daten zugreife, die geschickt worden sind oder wo ich diese abspeichern kann bzw. in welchen Adressbereich ich diese wiederfinde.

    Könnt Ihr mir dabei helfen bzw. Auskünfte geben wo solch eine Ethernetverbindung zwischen 2 unterschiedlichen Systemen beschrieben ist?

    Ich hoffe ich habe mich verständlich ausgedrückt was mein Problem ist.

    Mit freundlichen Grüßen

    Feige

     
  • J Schohaus - 2012-03-02

    Hallo

    Möchtest Du ein einfachen Weg für Codesys ?
    Dann schau dir mal die Hilfe zu Netzwerkvariablen an.
    Dieses ist eine UDP Kommunikation wo zu beachten ist das noch ein Vorkopf übertragen wir.
    Informationen zum Vorkof kann ich dir wenn nötig geben.

    Hatte ich mit Codesys 2.3 geteste sollte genauso in Codesys 3.4 möglich sein.

     
  • FeigeFilling - 2012-03-02

    Hallo,

    danke für die schnelle Antwort. Die Netzwerkvariablen habe ich mitlerweile auch schon gefunden. Aber wie Du schon schreibst basieren die ja auch UDP und da sind nur 2084 Byte zum Übertragen vorhanden. Ich würde schon gerne das TCP-Protokoll nutzen um auch größere Datenmengen zu übertragen.

    Ob der Weg in CoDeSys einfach oder schwerer ist, ist mir eigentlich ziemlich egal. Ich denke, ich kann mich in alles einarbeiten

    Was eig noch viel wichtiger ist, dass ich noch nicht verstanden habe, wie ich an die zu empfangenden Daten ran komme bzw wo die abgespeichert werden. Bei Siemens gibt es zum Vergleich ja einen Recieve-Baustein, der dann die Daten aus dem Protokoll in einen Datenbereich ( bei Siemens der DB) schreibt. Wie funktioniert das Ganz bei CoDeSys?
    Und das Gleich natürlich auch beim Senden. Wie kommen meine Daten in das Ethernetprotokoll hinein. Irgendwie muss das ja beschrieben werden

    Vielleicht ist es noch interessant zu wissen, dass die Kommunikation zwischen zwei Mastern erfolgen soll und ich gehe mal davon aus, dass das Fetchen wie untern 2 Siemenssteuerungen nicht geht?! Sind ja meinem Wissen nach zwei verschiedene Datenstrukturen, sodass man nciht direkt aus die DAten zugreifen könnten über entsprechende Get- und Put-Funktionen.
    MfG

     
  • J Schohaus - 2012-03-02
    1. die befehle für eine Ethernet kommunikation sind in einer Bibloteck zusammengefast.
      Also die passende Bibloteck einbinden. Muß zu deiner Hardware passen.
    2. Aus der lib benötigst du
      ein Baustein mit dem du ein Socket erzeugst
      ein Baustein mit dem Du deine Socketverbindung öffnets
      ein Baustein zum Senden
      ein Bausrein zum Empfangen
      ein Baustein um die Socketverbindung wider zu trennen
    3. Beim Baustein zum senden und empfagen wird ein Pointer übergeben wo die Daten sein sollen.
      Dieses kann jede Belibige Variable sein. z.B. aData ARRAY [0..1000] of BYTE
     
  • FeigeFilling - 2012-03-06

    Hallo,

    danke für diese Antwort. Hat mir schon gut weiter geholfen und ich weiß nun wo ich weiter suchen muss.

    Grüße

     

Log in to post a comment.