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

Kommunikation S7-300 mit Wago 750-833 über Profibus

EFA-Gepard
2008-04-09
2008-06-17
  • EFA-Gepard - 2008-04-09

    Guten Morgen,

    ich stehe vor einem kleinen (??) Problem, bei dem ich einfach nicht weiterkomme.

    Folgendes : Ich muß zwischen einer S7-314C-2DP und einem Wago 750-833 eine Profibus-Verbindung aufbauen. Soweit noch kein Problem, die im Wago-Knoten eingesteckten I/O's kann ich mittlerweile direkt über deren Hardware-Adresse lesen / schreiben.

    Aber : Im Wago-Knoten werden einige Werte erst im Programm gebildet, die ich ebenfalls auslesen muß. Meine Frage ist nun, wie ich an diese Werte (z.B. Zählerstände) rankomme.

    Eventuell ist es ja ganz einfach. Ich hab schon alle zur Verfügung stehenden Doku's gelesen, aber der passende Tip war noch nicht dabei

    Vielen Dank im voraus,

     
  • debug - 2008-04-09

    Du kannst auch eine beliebige word variable an einer beliebigen Hardware adresse abbilden.

    Zaehler_01 at %OW2 : WORD;
    

    Dann sollest Du von der S7 aus wie auf eine Zählerklemme zugreifen können.

     
  • EFA-Gepard - 2008-04-09

    Hallo debug,

    erstmal vielen Dank für die Antwort, komme damit aber noch nicht richtig weiter.

    Konfiguration ist so, daß ich die Wago 750-833 habe, daran ein 2-fach Input und 2 Stück RS-485 Klemmen zum lesen von Meßdaten. Diese Meßdaten werden in der Wago umgewandelt usw. und stehen mir z.B. als Word Variable zur Verfügung.

    Wenn ich diese Word-Variable nun wie angegeben mit Zaehler_1 at %QW2:WORD; deklariere (das %OW ist nur ein Tippfehler, oder ??), dann wird diese Variable im Wago-Controller nicht mehr hochgezählt.

    In der S7 (Profibus-Master) muß ich ja angeben, welche Hardware auf der Wago-Seite (Slave) vorhanden ist. Und hier finde ich nun keine Möglichkeit, auf solche Variablen zuzugreifen, die ja keine "richtige" Hardware darstellen. Bisher kann ich nur auf all das zugreifen, was in der Hardware Konfiguration der Wago eingetragen ist. Wie komme ich denn auf der S7-Seite an diese Werte ??

    Hoffe es verständlich ausgedrückt zu haben

    Vielen Dank,

     
  • debug - 2008-04-09

    Du tust einfach so, als hättest Du nach Deiner RS485-klemme noch eine 16 Bit Out-Klemme. Die Zahl hinter %QW legst Du in den von Deiner Steuerung nicht genutzten Bereich.

    Sollte übrigens auch mit Merker gehen %MW0..4095.

     
  • EFA-Gepard - 2008-04-10

    So, jetzt hatte ich wieder Zeit für das Projekt.

    Also, der Wert des Zählers wird in der Wago jetzt wieder hochgezählt, da hatte ich nur eine Adreßüberschneidung. Ich deklariere also den Zähler als Counter_2 AT %QW20:WORD; Diese Adresse taucht sonst in der Hardware Konfiguration nicht auf.

    Problem für mich ist vor allem, was ich auf der S7-Seite als "virtuelles" Steckmodul eintragen muß. Ich hab da schon mit 2-Byte PFC Ein- und Ausgang im Adressbereich 20 experimentiert, aber die entsprechenden Variablen bleiben in der Variablen-Sicht immer auf Null. Der Zählerwert ist in der S7 einfach nicht sichtbar

    Wer kennt sich denn hier mit der S7-Seite aus und kan mir den entscheidenen Tip geben ??

    Vielen Dank an alle,

     
  • progressive - 2008-04-11

    vielleicht bringen dir die beiden SFCs 13 und 14 in diesem fall etwas. damit können daten unter profibus-teilnehmern ausgetauscht werden...ansonsten ist eigentlich die online-hilfe von step7 zu diesem thema recht ausführlich

     
  • EFA-Gepard - 2008-04-18

    Jetzt läuft es bei mir , eigentlich ganz einfach, wenn man weiß wie

    Zu beachten ist, daß der WAGO Controller die Werte generell Wort-weise übergibt, auch wenn nur Bytes übertragen werden. Dadurch verschiebt sich natürlich für jede Byte-Variable der Adressbereich in der Siemens. Also, das was in der Wago als "at %QW256" angegeben wird, erscheint bei der S7 als PEW 256, aber z.B. "at %QW260" kommt bei Siemens bereits als PEW 264 an.

    Außerdem hatte ich in der Hardware-Konfiguration auf der Siemens-Seite den Controller mit 2-Byte Prozeßdatenkanal gewählt, das hat auch nicht funktioniert. Erst das einsetzen des Controllers ohne Prozeßdatenkanal in der HW-Konfig brachte endlich alles zum laufen.

    Nun kann ich also alle Daten sehen und auswerten, vielen Dank an alle für die Mithilfe.

     
  • Anonymous - 2008-05-26

    Originally created by: /Matthias/

    wie hast du das problem denn gelöst?

    ich stehe vor dem gleichen und kriege meine variablen nicht ausgelesen...

     
  • Anonymous - 2008-06-16

    Originally created by: /Matthias/

    Um das Problem bei der Übertragung noch einmal aufzugreifen.

    Ich übertrage z.B. |4Byte|2Byte|4Byte|. Jetzt habe ich das ebenfalls das Problem, dass nach der "2Byte-Variable" die nachfolgenden Bytes um 2 Byte verschoben sind.

    Bsp.: Ich übertrage 1|1|1.

    Das kommt dann bei der S7 wie folgt an:

    0000.0000_0000.0000_0000.0000_0000.0001
    0000.0000_0000.0001
    0000.0000_0000.0001_0000.0000_0000.0000
    

    Wie liegt mein Fehler bzw. wie kann man diese Verschiebung umgehen?

     
  • debug - 2008-06-17

    Sieht so aus, als ob die Variable für den Zugriff auf das 2. 4Byte Paket falsch deklariert wurde.

     

Log in to post a comment.