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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: MODBUSPN - OB100 neu aufrufen

  1. #11
    Registriert seit
    12.11.2007
    Beiträge
    92
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    also dass der Verbindungsaufbau nur im OB100 funktioniert, stimmt nicht. Man kann den Baustein so parametrieren, dass er im OB100 schon die Verbindung aufbaut, aber man muss nicht.
    Wenn mit ENQ_ENR = TRUE ein Telegramm gestartet wird und die Verbindung noch nicht aufgebaut ist, dann wird intern erst ein TCON initiiert und danach dann der TSEND/TRCV.
    Wenn der Partner also alle 24 Stunden einen Reboot macht und somit die Verbindung abbaut, bekommt die PN-CPU das erstmal nicht mit. Erst wenn wieder ein Telegramm gestartet wird und der TSEND einen Verbindungsfehler meldet, bekommt die PN-CPU mit, dass der Partner die Verbindung abgebaut hat. Wenn das nächste Telegramm gestartet wird, wird dann aber wieder von der PN-CPU automatisch die Verbindung neu aufgebaut und die Daten gesendet. Das muss funktionieren.

    Snape

  2. #12
    drng ist offline Benutzer
    Themenstarter
    Registriert seit
    02.07.2013
    Ort
    Ostfriesland
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Naja, laut OpenModbus "Bedienungsanleitung" MUSS die Verbindung im OB100 Initialisiert werden. Wenn ich nun einen FC erstelle, in diesem den Verbindungsaufbau Initialisiere und ihn vom OB100 aufrufe klappt das ganze auch. Natürlich nur bei einem Neustart, nicht aber wenn die Verbindung abbricht und neu aufgebaut werden muss. Ich müsste eigentlich nur eine Bedingung für den erneuten Aufruf dieses FC's im OB1 haben. Ein abfallendes "CONN_ESTABLISHED" Signal scheint da nicht zu reichen.

  3. #13
    Registriert seit
    12.11.2007
    Beiträge
    92
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Der Baustein muss natürlich in OB100 initialisiert werden. Da werden die Modbusparameter überprüft und die T-Bausteine mit 0 durchlaufen, damit der Verbindungsaufbau überhaupt funktioniert. Das ist aber nur die Initialisierung. In dem Parameter-DB wird mit connect_at_startup festgelegt, ob die Verbindung schon im OB100-Durchlauf aufgebaut werden soll oder nicht. Wenn der Parameter FALSE gesetzt ist, wird nur alles initialisiert und erstmal keine Verbindung aufgebaut. Die wird dann beim 1. Telegramm aufgebaut.
    Aber nach einem Abbruch der Verbindung ist auch ein neuer Verbindungsaufbau möglich ohne das der OB100 aufgerufen werden muss.

    Hast Du mal mit Wireshark geprüft, was bei und nach dem Reboot über das Netz gesendet wird? Da müsste ja der Abbau und Wiederaufbau der Verbindung aufgezeichnet werden.

  4. #14
    drng ist offline Benutzer
    Themenstarter
    Registriert seit
    02.07.2013
    Ort
    Ostfriesland
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der Verbindungsaufbau startet komischerweise bei mir unabhängig davon, ob ich CONNECT_AT_STARTUP setze oder nicht. Bedingung dafür ist aber weiterhin das ich die CPU neu starte.
    Wenn ich nun einen der Partner in rebooten lasse will dieser sich aber beim besten willen nicht wieder verbinden.
    Wireshark meldet in dem moment das die S7 als Broadcast fragt WHO IS "192.168.2.21" TELL "192.168.2.180"
    Zwischendurch fragt dann währrend, bzw nach, dem Reboot der Partner als Broadcast "192.168.2.22" TELL "192.168.2.21"
    Dazu sollte ich sagen, dass die CPU die IP 192.168.2.180 und der Partner die IP 192.168.2.21 hat.
    Die 192.168.2.22 kommt im Netz eigentlich garnicht vor und ich kann mir nicht erklären was er von dieser IP will.

  5. #15
    Registriert seit
    12.11.2007
    Beiträge
    92
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Die S7 ist Client und wenn Du ENQ_ENR = TRUE setzt, wird ein Auftrag losgeschickt. Wenn die Verbindung nicht aufgebaut ist, dann wird sie aufgebaut und das Telegramm gesendet. Was wird denn am STATUS-Ausgang angezeigt, wenn Du ein Telegramm losschickst?

  6. #16
    drng ist offline Benutzer
    Themenstarter
    Registriert seit
    02.07.2013
    Ort
    Ostfriesland
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Genau so sollte es aussehen. Aber wenn die Verbindung nicht aufgebaut ist baut er sie auf ein ENQ_ENR hin einfach nicht auf. Ich bekomme auch garkeine 1 mehr am CONN_ESTABLISHED und die sollte vorraussetzung dafür sein Daten zu Senden. Wenn CONN_ESTABLISHED eine 1 führt und ich eine 1 auf ENQ_ENR lege bekomme ich das Telegramm übertragen und somit Daten zurück. Wenn CONN_ESTABLISHED aber garnicht 1 ist scheint er garnicht erst zu versuchen das Telegram zu starten.

    Der MODBUS_STATUS sagt:

    S7 ist Client: Es ist ein Auftrag angestoßen worden,
    während der vorherige Auftrag noch läuft. Der Auftrag wird
    nicht ausgeführt.

    Kann es sein das er versucht einen Auftrag auszuführen, obwohl er noch garkeine Verbindung aufgebaut hat?

  7. #17
    Registriert seit
    12.11.2007
    Beiträge
    92
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Diese Fehlermeldung kommt, wenn der Baustein denkt, dass er noch was tut, was aber nicht der Fall ist.
    Welche Version hast Du denn? Aktuell ist die V2.4. Wenn Du eine ältere hast, dann lad Dir die V2.4 runter (www.siemens.de/s7modbus, Tab "Downloads"). Es gab mal eine Version, die blieb in einer bestimmten Fehlerkonstellation hängen.

  8. #18
    drng ist offline Benutzer
    Themenstarter
    Registriert seit
    02.07.2013
    Ort
    Ostfriesland
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Momentan werden die Daten über einen 2 Sekunden takt abgefragt, also wird ENQ_ENR alle 2 Sekunden "1" gleichzeitig ist aber "BUSY" auch noch True und somit wird er versuchen eine neue verbindung herzustellen, wäre das möglich? Dann ist das aber denke ich nicht das Hauptproblem

    //EDIT:

    Version ist bereits V2.4
    Geändert von drng (03.07.2013 um 12:37 Uhr)

  9. #19
    Registriert seit
    12.11.2007
    Beiträge
    92
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Also ENQ_ENR darf definitiv nicht gesetzt werden, wenn BUSY noch ansteht. Dann ist klar warum der Fehler kommt. Das musst Du abfangen.

    Welche Version hast Du denn nun?

  10. #20
    Registriert seit
    22.05.2005
    Ort
    sonniges Maifeld
    Beiträge
    1.067
    Danke
    77
    Erhielt 205 Danke für 159 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    2 Sekunden für einen Response ist viel zu lange. Wie viele Daten fragst du denn ab ?
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

Ähnliche Themen

  1. OB100-Fehler
    Von siegener19 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.01.2013, 18:39
  2. OB100 im PLCSIM ?
    Von sk1rie im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.05.2011, 13:34
  3. OB100 verstehen
    Von snowpanter im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 01.10.2010, 17:19
  4. SFC12 in OB100
    Von M4RKU5 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 03.07.2008, 15:30
  5. Ob100
    Von tino2512 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 24.09.2007, 09:47

Stichworte

Lesezeichen

Berechtigungen

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