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

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 43

Thema: Datenbereich konsistent lesen

  1. #31
    Avatar von Larry Laffer
    Larry Laffer ist offline Super-Moderator
    Themenstarter
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Axel,

    ich kann dir da jetzt (leider) nicht mit den korrekten Namen der Dinge aufwarten. Ich versuche es mal mit Synonymen :
    Ich konnte mit InTouch (7.x) mittels des IO-Servers zur gleichen Steuerung mehrere Zugriffe anlegen (sogar mit unterschiedlichem Basistakt). Für jeden Zugriff (unter ProTool würde das vielleicht Steuerung heißen) gab es ein Systembit das sinngemäß hies "Transfer_Complete". Das hatte ich damals (vor ca. 7 Jahren) auch für eine ähnliche Aufgabenstellung gebraucht. Dieser "Transfer_Complete" war immer dann TRUE wenn alle Variablen des Zugriffs aktualisiert waren. Ich hatte das auch als Bedingung für das Speichern-Script hergenommen.

    Wie das genau war müßte sich eigentlich über Wonderware herausbekommen lassen ...

    Ich hoffe, ich konnte dir weiterhelfen ...

    Gruß
    LL

  2. #32
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ich hoffe, ich konnte dir weiterhelfen ...
    Einen akuten Problemfall hab ich ja nicht, bin nur neugierig ...

    Wir setzen ja Intouch auch gar nicht mehr ein, aber das Thema S7-Kommunikation interessiert mich, seit ich mich recht intensiv mit libnodave auseinandergesetzt habe, um meine Delphi-Komponente dafür zu entwickeln. Seit einigen Jahren setzen wir zur Kommunikation mit der SPS auch einen eigenen OPC-Server ein, den ich ebenfalls auf der Basis von libnodave entwickelt habe.

    Was den von Dir beschriebenen Fall angeht, bin ich immer noch skeptisch. Wenn der IO-Server von Intouch mit der S7-Kommunikation arbeitet, dann kann er AFAIK nur melden, daß er alle Daten einmal komplett von der CPU gelesen hat. Ob die Daten konsistent sind, hängt aber IMHO zusätzlich davon ab, was die CPU mit den gelesenen Daten zur gleichen Zeit gemacht hat. Und da die S7-Kommunikation völlig asynchron zum CPU-Zyklus abläuft (jedenfalls soweit ich das beurteilen kann), liegt genau da der Hund begraben.

    Nehmen wir mal an, Du willst von einer 300er CPU einen zusammenhängenden Block von 400 Bytes lesen. Das muß dann in zwei Anfragen aufgeteilt werden, da die 300er nur gut 200 Bytes auf einmal liefern kann. Also werden die ersten 200 Bytes angefordert, und bei einer flotten Verbindung nach etwa 10 ms von der CPU geliefert. Währenddessen läuft das SPS-Programm ja weiter und manipuliert jetzt den gesamten Block von 400 Bytes (z.B. per Blockmove). Dann kommt vom PC die Anforderung für die nächsten 200 Bytes, dabei werden aber schon die neuen Daten gelesen. Sobald die von der SPS geliefert wurden, ist der PC der Meinung, er hat jetzt alle Daten vollständig gelesen, aber das was er hat stand so nie (am Stück) in der SPS.

    Umgekehrt kann es genausogut passieren, daß die SPS gerade angefangen hat, die Daten zu verändern, und dann vom PC währenddessen ein halb bearbeiteter Datenbereich gelesen wird, da das Lesen ja mitten im SPS-Zyklus erfolgen kann.

    Mich interessiert nun, ob solche Fälle vermieden werden können, ohne im SPS-Programm irgendeinen Mechanismus zum Sicherstellen der Konsistenz implementieren zu müssen (Handshake oder ähnliches).


    Gruß Axel
    Man muß sparn wo mn knn!

  3. #33
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von afk Beitrag anzeigen
    Mich interessiert nun, ob solche Fälle vermieden werden können, ohne im SPS-Programm irgendeinen Mechanismus zum Sicherstellen der Konsistenz implementieren zu müssen (Handshake oder ähnliches).


    Gruß Axel
    gute nacht axel,

    ich glaube nicht daran, dass es möglich ist konsistente datensätze ohne einwirkungen/überprüfungen der gegenstelle zu übertragen. das problem welches sich stellt ist, wie du in deinem beitrag richtig bemerkt hast, dass die CPU nicht aufhört zu arbeiten und die abgefragten datensätze zu beeinflußen. IMHO ist es nur möglich konsistent zu lesen und zu schreiben, wenn das ziel- bzw. quellsystem nicht darüber informiert ist, dass gerade jemand mit geringerer lese-/schreib-zeit zugreift und die daten bitte schön erst nach erfolgreicher übertragung zu verwenden sind. dazu bedarf es kommunikation àla "daten gelesen?" - "jopp - daten gelesen!" ... leider ist es so, aber für alles andere müßte eine zyklusgenaue kommunikation zustande gebracht werden...

    gruß
    4L
    Geändert von vierlagig (13.08.2008 um 01:55 Uhr) Grund: linksschreibfehler
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #34
    Avatar von Larry Laffer
    Larry Laffer ist offline Super-Moderator
    Themenstarter
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Zitat Zitat von afk Beitrag anzeigen
    Was den von Dir beschriebenen Fall angeht ...
    Hallo Axel,
    bezüglich der Kommunikation mit der SPS hast du sicher Recht. So tief (wie du) stecke ich da auch nicht drin. Der von dir beschriebene Fall ist sicherlich auch etwas, das sich so gar nicht relaisieren läßt. So gesehen ist "Konsistenz" da auch gar nicht zu Erreichen.
    Für mich war (und ist) interessant, dass ich weiß, wann alle interessanten Variablen ab Trigger-Zeitpunkt zur Visu aktualisiert worden sind. In meinem Programm entsteht an dieser Stelle schon funktionsbedingt eine Wartezeit in der die Variablen-Inhalte sich nicht mehr ändern (Ablauf starten - Messwerte aufnehmen - Messwerte zur Visu und parallel nächsten Ablauf vorbereiten). Um den Vorgang abzusichern habe ich (aktuell) auch noch einen Handshake (Visu setzt Bestätigung - ohne Bestätigung geht es nicht weiter) mit eingebaut.

    Gruß
    LL

  5. #35
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Eine weitere möglicheit wäre Send/Receive anstatt polling zu verwenden.
    Dies geht bei Flexible/Protool nur mit OPC.
    Mit Flexible glaube ich das es geht ein "normalen" S7 verbindung, und gleichzeitig ein OPC verbindung zu projektieren. Dies geht nicht mit Protool. Und mit Flexible PC RT bekommt man Simatic Softnet IE Lean womit man ein OPC verbindung realisieren kann. Also, mit Flexible in verbindung mit Ethernet kostet es nicht mehr.
    Jesper M. Pedersen

  6. #36
    Avatar von Larry Laffer
    Larry Laffer ist offline Super-Moderator
    Themenstarter
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Mit Flexible glaube ich das es geht ein "normalen" S7 verbindung, und gleichzeitig ein OPC verbindung zu projektieren.
    Hallo Jesper,
    das ist im Augenblick keine Option - interessiert mich aber trotzdem.
    Kann man (wie ?) eine zusätzliche OPC-Verbindung zu einer Runtime projektieren ? Lassen wir Flex und ProTool dabei jetzt mal außer Acht ...

    Gruß
    LL

  7. #37
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Habe probiert ein PC Station mit IE General + WinCC Flex RT + OPC Server einzurichten.
    Dann kan man die zwei verbindungsarten parallel projektieren.
    Und man kann OPC Items über Send/Recieve projektieren. Siehe Anhang.

    Leider "kostet" Send/Receive ein CP343-1.
    In die Zukunft werde ich ausschließlich die Onboard PN Schnittstelle verwenden.
    Also werde ich das Trick verwenden, das Wertänderungs-Tag nach die Nutzdaten zu stecken.
    Angehängte Grafiken Angehängte Grafiken
    Jesper M. Pedersen

  8. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    Larry Laffer (14.08.2008)

  9. #38
    Avatar von Larry Laffer
    Larry Laffer ist offline Super-Moderator
    Themenstarter
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo Jesper,
    dein Beispiel zeigt im Prinzip so etwas ähnliches, wie ich es schon vorher beschrieben habe. Du hast einen 2. Zugriffsweg "gebaut", den du eigenständig behandeln kannst. Sobald ich wieder "etwas Luft habe" werde ich mich damit mal auseinandersetzen. Mal sehen, was sich damit anstellen läßt.

    Danke auf jeden Fall schon einmal ...

    Gruß
    LL

  10. #39
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard

    Bin jetzt auch nur drübergeflogen...

    Wie wär's mit nem Bildbaustein - klingt auf Anhieb komisch aber dem kannst du eine Struktur zuweisen und ja deine Werte übergeben. Der BB ist quasi die HMI --> SPS Schnittstellen. Hab mal sowas in Klein gemacht um Daten zu übertragen. Das einzige was du brauchst ist einen Refresh Takt für das Skript im BB.

  11. #40
    Avatar von Larry Laffer
    Larry Laffer ist offline Super-Moderator
    Themenstarter
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von xhasx Beitrag anzeigen
    Bin jetzt auch nur drübergeflogen....
    Schade ...
    Bildbausteine gibt es in ProTool nicht und ich bezweifle (nach vorliegenden Erkenntnissen) auch, dass das (bei Anwendung von Flex) etwas bringen würde ...

    Gruß
    LL

Ähnliche Themen

  1. Libnodave konsistent DB ?
    Von eloboy im Forum Hochsprachen - OPC
    Antworten: 17
    Letzter Beitrag: 03.03.2011, 12:49
  2. Profibus Zugriff auf PEW/PAW oder konsistent?
    Von Züttu im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.11.2010, 15:25
  3. Antworten: 1
    Letzter Beitrag: 10.04.2008, 22:11
  4. Datenbereich Typ Any im FB auslesen
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.01.2006, 18:44
  5. Datenbereich LED OP15/ S5
    Von spsbroesel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 14.12.2004, 08:35

Lesezeichen

Berechtigungen

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