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

Ergebnis 1 bis 6 von 6

Thema: S7-Verbindung - Senden/Empfangen auf selben Datenbereich?

  1. #1
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe eine CPU's 315-PN/DP und eine CPU 319-PN/DP mit je einem Panel MP377. In der CPU319 habe ich eine S7-Verbindung zur 315 eingereichtet. Der aktive Verbindungsaufbau wird durch die 319 realisiert. In beiden CPU's gibt es je einen Sende-/ und Empfangs-DB. Mit dem FB12_BSEND und dem FB13_BRCV in der CPU319 werden die Daten zur CPU315 gesendet/gelesen. Das funktioniert einwandfrei.

    Nun habe ich folgende Situation, wie ich nicht weiß wie ich das realisieren soll:

    Ich habe auf dem Panel der CPU319 ein Integer Ein-/Ausgabefeld in die Adresse DB1.dbw0. Diese Variable ist ein Parameter der Maschine mit der CPU319. (--> ist jetzt nur ein konstruiertes Beispiel für mein Problem). Diese Variable wird durch den Bediener am Panel der CPU319 als auch von der CPU319 geändert und am Panel319 angezeigt.
    Nun erfordert es die Aufgabenstellung das man auch vom Panel der CPU315 diesen Parameter Adresse DB1.dbw0 der CPU319 in einem Ein-/Ausgabefeld ändern kann. Und andersherum muss auch der Aktualwert dieses Parameters (Adresse DB1.dbw0 der CPU319) am Panel der CPU315 angezeigt werden. Also sozusagen ist das Panel315 eine Fernanzeige/Ferneingabe für eine Variable in der CPU319.
    Wie kann ich das realisieren?

    Meine erste Idee war, noch eine zweite S7 Verbindung einzurichten und dann auch mit dem FB12_BSEND und dem FB13_BRCV für die neue Variable zu arbeiten. Das geht aber nicht, da hier die Kommunikationswege für Senden/Empfangen getrennt sind und nicht auf den selben Datenbereich zugreifen können.

    Ich hoffe ihr habt mich verstanden und habt eine Idee. Bin für jeden Hinweis dankbar.

    Gruß
    HarryH
    Zitieren Zitieren S7-Verbindung - Senden/Empfangen auf selben Datenbereich?  

  2. #2
    Registriert seit
    05.06.2008
    Ort
    Hessen
    Beiträge
    19
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo HarryH,

    Ich gehe jetzt einfach mal davon aus, das auf den Paneln WinCCflexible Läuft.
    Wenn du in flexible ein E/A Feld anlegst wird es auch auf dem Bild immer nur gelesen, Erst wenn du eine Eingabe machst wird das Write Ereignis ausgelöst und der Wert wird in die Steuerung geschrieben.
    Ich hatte mal so einen ähnlichen fall, wo über WEB-Connectoren Werte von einer SPS über eine Andere angezeigt und geändert werden sollen.

    Ich hatte das Problem damals so gelöst, dass ich den Wert in einem Ausgabefeld angezeigt habe und über dieses Ausgabefeld ein unsichtbaren Button gelegt habe als Ereignis beim Klicken habe ich eine binäre Variable negiert und diese hat wiederum ein Popupfenster Sichtbar geschaltet, wo man dann den gewunschten Wert in ein E/A Feld eingetragen hat ( welches mit einer Zwischenspeichervariable in der Steuerung verknüpft ist).
    Mit einem "Enter" Button hat man dann in der Steuerung ein bit gesetzt und das Popup wieder unsichtbar geschaltet.
    Die Zwischenspeichervariable und das bit habe ichZyklisch in die Steuerung übertragen, wo der Wert her kommt und mit dem bit dann den Überschreibebefehl für die Variable ausgelöst.
    Danach das bit wieder Kaputtgeschrieben, also auf false gesetzt.
    Somit stellst du sicher dass die Daten sicher geschrieben werden.

    Ich hoffe ich habe es einigermaßen verständlich geschrieben
    vieleicht hilft es dir ja

    Gruß
    burns848

  3. #3
    Registriert seit
    09.06.2008
    Beiträge
    138
    Danke
    16
    Erhielt 13 Danke für 13 Beiträge

    Standard

    Na das ist doch recht einfach
    Das ganze muss erstmal etwas aufgesplittet werden.
    Du hast letztendlich die zwei EA-Variablen (Felder) auf den CPUs ich nenne sie mal EA319 und EA315. Darüber hinaus wird eine weitere Variable benötigt wo diese beiden Wert hin sollen. Ich nenne sie mal ZielDW.
    Wie Du die Daten(EA319 oder EA315) zwischen den SPSen tauschst weist Du bereits. Daher werde ich auf diesen weg nicht eingehen.
    Letztendlich bleiben somit zwei Variablen(EA-Felder) und ein ZielDW übrig.
    Um in das ZielDW immer den aktuell neuesten Wert zu schreiben, wird ein Alt-/Neuwertvergleich benötigt.
    ->Immer wenn der Altwert von EA319 nicht dem Neuwert(von EA319) entspricht, wird dieser Neuwert in EA315, ZielDW und in den Altwert geschrieben.
    ->Immer wenn der Altwert von EA315 nicht dem Neuwert(von EA315) entspricht, wird dieser Neuwert in EA319, ZielDW und in den Altwert geschrieben.
    Fertig.
    Hoffe es noch halbwegs verständlich hinbekommen zu haben. Wenn nicht einfach nachfragen
    Geändert von ich988 (21.02.2012 um 17:23 Uhr)

  4. #4
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Hi,
    wenn das alles über Ethernet verbunden ist, also das Panel der 315er auch die 319er erreichen kann, dann ist es am einfachsten im Panelprojekt der 315er ne Verbindung zur 319er zu projektieren.
    Variable und EA Feld wären dann gleich wie im 319er Panelprojekt.
    "arbeite klug, nicht hart" - deutsches Sprichwort

  5. Folgender Benutzer sagt Danke zu SPSKILLER für den nützlichen Beitrag:

    HarryH (22.02.2012)

  6. #5
    Avatar von HarryH
    HarryH ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Danke für eure Antworten!

    @SPSKILLER
    JA das ist es! Gute Idee! So müßte es gehen! Bin ich garnicht drauf gekommen! Es stimmt, das alle CPU's und Panels über Ethernet verbunden sind, und damit jeder jeden kennt.

    Habe dazu aber nochmal ne Frage:
    Reicht es aus im 315er-Projekt NUR die CPU319 (ohne Programmbausteine) mit anzulegen und im NetPro mit dem Ethernet-Netz zu verbinden? Vielleicht kann jemand noch etwas dazu sagen.

    Meiner Meinung nach müsste das gehen, weil man damit dann in WinCCflex die zweite Verbindung zur 319 einrichten kann. Man kann dann zwar nicht die Variablen direkt aus dem DB der 319 anwählen/anlegen, sondern muss die Variablen von Hand anlegen. Aber das wäre OK.

    Gruß HarryH

  7. #6
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hei,

    ich denke du musst im NetPro gar nix machen.

    Es sollte ausreichen im 315er Projekt eine zweite Verbindung anzulegen.
    Knoten und Partner usw. bleibt leer.

    Unten im Bildchen der Steuerung trägst du die IP Adresse ein.
    Variablen kannst dann halt nur absolut anlegen.

    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

Ähnliche Themen

  1. Can Nachrichten senden / empfangen
    Von fdisk im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 10.08.2011, 12:14
  2. Can Nachrichten senden / empfangen
    Von fdisk im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 09.08.2011, 16:30
  3. UDP-senden/empfangen
    Von Vbxler im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 07.07.2011, 19:27
  4. Antworten: 3
    Letzter Beitrag: 06.03.2010, 08:35
  5. Antworten: 0
    Letzter Beitrag: 23.09.2003, 13:20

Lesezeichen

Berechtigungen

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