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

Problem mit Vernetzung und Übertragung Klöckner und Möller

Dennish23
2008-09-12
2008-09-19
  • Dennish23 - 2008-09-12

    Hallo liebe Forum Gemeinde

    Ich habe in der Schule ein Projekt bekommen. Ich soll von Klöckner und Möller ein TouchScreen MFD4-5-XRC-30 und drei

    SPS XC-CPU201-EC256K-8DI-6DO miteinander über TCP vernetzen mit einer dauernden Abfrage vom Touchscreen ob die SPS

    noch im Netz ist. Das ganze soll im struktuiertem Text erfolgen. Meine bisherigen Erfahrungen reichen leider nur

    bis zur S5 programmierung in AWL. Weiter soll ich die Zustände der Eingänge an den Server übermitteln und die

    Ausgänge der SPS sollen vom TouchScreen bedienbar sein über eine Visualisierung, die im Touchscreen selber sichtbar

    sein soll aber auch gleichzeitig per Webserver der allerdings per Login in verschiedene Zuständigkeitsbereiche greifen

    soll d.h. der Chef darf die Ausgänge steuern und der Besucher darf nur sehen.

    Als Software habe ich CoDeSys und steh da im Moment wirklich auf dem Schlauch.

    Vielleicht könnt ihr mir da unter die Arme greifen um das Problem irgendwie zu packen. Hab mir auch schon das

    empfohlende Buch "Steuerungstechnik mit SPS" von Zastrow bestellt als Hilfe.

    MFG Dennis[/b]

     
  • Knodelpa - 2008-09-15

    Hallo Dennis,

    du hast grundsätzlich je Steuerung ein eigenes CoDeSys Projekt. Daten zwischen den Steuerungen kannst du über CAN oder Ethernet übertragen. Da dir beides zur Verfügung steht würde ich Ethernet verwenden. Zunächst musst du in der Zielsystemeinstellung die Netzwerkvariablen über UDP aktivieren. Dann kannst du globale Netz Variablenlisten anlegen. Damit wird die Datenübertragung zum Kinderspiel.

    Schau mal hier:

    ftp://ftp.moeller.net/AUTOMATION/DOWNLO ... open_D.zip

    Hier ist das ganze mit CAN beschrieben. Über UDP ist das Prinzip das Gleiche.

    Gruß Paul

     
  • Dennish23 - 2008-09-15

    Hallo Paul.

    Danke erstmal für deine Antwort. Ich habe dein Vorschlag bereist in die Tat umgesetzt und es funktioniert. Ich kann Werte über die Sterungen an mein Touchpanel senden.

    Nun ist für mich noch unklar wie ich zum ersten die Geschichte mit der Uhrzeit (das Panel soll seine Uhrzeit an die SPS senden damit beide immer auf dem gleichen Stand sind) und zum anderen wie ich es realisieren kann, das das Panel mitbekommen wenn die SPS nicht mehr im Netz angeschlossen sein sollte.

     
  • Belacqua - 2008-09-16

    Hi!

    Wenn du generell Daten übertragen kannst, sollte der Rest kein Problem mehr sein. Für den Uhrzeitabgleich liest du einfach die Systemuhr z.B. über den Funktionsblock RTC aus, sendest die erhaltene DT-Variable an die Steuerung und stellst dort die Uhr neu wenn die beiden Zeiten über 1s von einander abweichen.

    Die Erkennung der aktiven SPS kann man über ein selbsterzeugtes Sicherungstelegramm erledigen. z.B. soll jede Steuerung jede Sekunde ein Telegramm mit einem Byte an das Touchpanel senden. In dem Byte wird immer ein Bit (z.B. Bit 0) invertiert (also mal 0 und mal 1 senden). Im Touchpanel schaust du nun ob mindestens alle z.B. 2 Sekunden dieses Sicherungstelegramm mit dem wechselnden Byte empfangen wird. Wenn nicht ist die betreffende Steuerung nicht mehr am Netz.

     
  • Dennish23 - 2008-09-17

    HI Belacqua

    Kannst du mir das mal erklären wie du das meinst mit dem Telegramm?Ich hatte das ganze versucht mit einer IF und Else Schleife aber das funktz leider nicht.

     
  • Knodelpa - 2008-09-18

    Hallo Dennis,

    du hast ja die Übertragung am laufen oder ? Allerdings wird die Übertragung nicht überwacht, du merkst also nicht wenn das Kabel gezogen wird oder aus einem anderen Grund die Übertragung ausfällt. Daher macht es Sinn ein toogelndes Bit oder gar einen Zähler mit zu übertragen. Solange sich das Bit, bzw. der Zähler beim Empfänger ändert ist alles OK. Die Uhrzeit und das Datum kannst du wie beschrieben übertragen. Wenn du die RTC LIB eingebunden hast kannst du Uhrzeit und Datum lesen und schreiben und natürlich auch überertragen.

    Gruß Paul

     
  • Dennish23 - 2008-09-18

    Ja Paul genau das ist mein Problem. Welchen baustein muss ich verwenden der den Eingang immer nach einer änderung abfragt und einen Ausgang setzt wenn keine Änderung da ist. Mit der Uhrzeit das läuft alles soweit allerdings nur über ein Task da der Watch Dog angegangen ist.

     
  • Knodelpa - 2008-09-19

    Hallo Dennis,

    du kannst z.B. in der XC200 einen einfachen Zähler in ST programmieren, Z.B. Zaehler:=Zaehler+1;

    Dieser Zähler wird dann an das Panel übertragen. Dort machst du einen Alt- / Neuwertvergleich.

    in ST

    If Altzaehler <> Zaehler then

    Hier einen Rückfallverzögeren Timer mit Retriggerung starten. Sollange sich der Zähler andert wird der Timer immer wieder neu gestartet. Ändert sich der Zähler nicht mehr, dann läuft der Timer ab und setzt ein Fehlerbit"!! Timer findest du z.B. in der easy800_d.lib im Verzeichnis EC4p_LIB.

    .

    .

    .

    END_IF

    Altzaehler:=Zaehler;

    Gruß Paul

     

Log in to post a comment.