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

Ergebnis 1 bis 9 von 9

Thema: (Datencrash) Wie kommuniziert WinCC?

  1. #1
    Registriert seit
    14.05.2008
    Beiträge
    195
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Folgendes Szenario:

    DB Variable X wird über WinCC mit einem externen Tag Y verknüft.

    Zum zeitpunkt 0 wird die Variable X auf der PLC verändert, exakt zum gleichen zitpunkt wird auf WinCC Y Variable verändert.

    WinCC prüft zyklisch auf änderung der Daten, nun sind beide verändert? wie verhält sich winCC? Blockiert WinCC die Variable xauf der SPS wenn Y bearbeitet wird?

    Es kann ja sein das während der Übertragung von X nach WinCC über den Bus die variable Y verändert wird, und dann bei der ankunfst von X überschriebven wird, und andersherrum???

    wie wird das syncronistiert?
    Zitieren Zitieren (Datencrash) Wie kommuniziert WinCC?  

  2. #2
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Hi,

    ich stelle mir das so vor:

    WinCC holt sich zyklisch die benötigten Variablenund und verändert sie wenn nötig. Beim nächsten Polling wird die veränderte Variable in die Steuerung geschrieben.
    WinCC wird es reichlich wenig interessieren ob die Variable in der Steuerung zwischenzeitlich verändert wurde. Es kennt ja nur den Zustand des letzten "Holens".

    Ich denke hier hat immer WinCC die Hoheit und wird bei Veränderungen dominieren.

    Wenn du dieses Verhalten verhindern möchtest solltest du zwei Werte in der Steuerung halten, einen der in der Steuerung verändert wird und einen der von WinCC verändert wird, und diese in der Steuerung abgleichen.


    Gruß, Centi
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... ohne jetzt die internen Funktionen von WinCC zu kennen würde ich dennoch folgendes annehmen :
    - eine gleichzeitige Änderung einer Variablen in der SPS und der Visu ist quasi unmöglich (das müßte dann ja schon auch die Mikrosekunde passen).
    - Eine Eingabe hat m.E. immer Vorrang vor einer Änderung in der SPS (persönlich halte ich es aber auch für unsauber, eine Variable in der SPS und der Visu ändern zu wollen - außer vielleicht Zähler Reset).

    Nach welchen Spielregeln würdest du denn den von dir geschilderten Fall behamdelt haben wollen ... Du hättest ja die Möglichkeit, dies wahlweise in der SPS (per Baustein) oder in der Visu (als Script) zu behandeln, wenn du mit 2 verschiedenen Variablen arbeitest ...

    Gruß
    LL

  4. #4
    BorisDieKlinge80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2008
    Beiträge
    195
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Jepp ich weis, das dieser Fall evtl. nie oder sehr selten auftretten würde das beide gleichzeit daten ändern, wobei es nich auf ne mircosekunde ankommt.. die datenübertragung dauert ja zeit, datenaufbereiteung auf verscheiden netzwerklayer etc. d.h. änderungen könnten schon unterwegs sein von SPS zu WinCC und WinCC will in dem moment daten ändern.

    Ich könnte mir vorstellen das SetTagWait oder GetTagWait evtl. prüfen oder kurz warten um sicherzugehen das keien daten unterwegs sind etc.

    Naja ich würde natürlich danten von WinCC zu PLC vorrangig behandeln..

  5. #5
    Registriert seit
    14.05.2008
    Beiträge
    23
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    hi,

    das ist wie bereits erwähnt wurde ein rein hypothetischer fall, denn das kann in der konstellation gar nicht passieren.

    wenn X (auf AS) geändert wird und der externe tag Y (auf HMI) ebenfalls, gleichzeitig, würde das trotzdem nicht gleichzeitig ankommen, denn es gibt Polling zyklen und auch laufzeiten über den bus, und es muss auch noch alles über die die kommunkationstreiber gehen.

    dann ist noch zu beachten, welcher bus? denn das telegramm "tag auf AS geändert" an die OS und das telegramm "ändere tag auf AS" kann nicht gleichzeitig abgesendet werden und ankommen.

    ansonsten kommts natürlich auch auf den tag an. wenn alles frei überschreibbar ist, gewinnt eben FiFo, wie in einem progamm eben auch - wer den wert als letzter setzt

    EDIT: gettagwait und settagwait unterscheiden sich anderweitig von gettag und settag. bei gettagwait wird gnadenlos auf den tag gewartet, bis das script weiterbearbeitet wird (soweit ich weiß 10 sekunden pro anfrage als timeout), und zwar bis er von der AS geliefert wird (in welchem zustand ist ja erstmal egal), was bei zB großer busauslastung dein ganzes HMI mit runterziehen kann. konkret heißt das, wenn du mit gettagwait 20 tags abfragst und es besteht maximale auslastung am bus, und im worst case wird jeder timeout durchlaufen, sind das 200 sekunden wartezeit in denen sich die nachfolgenden scripte auch schon in der queue anstauen.....

    ansonsten holt sich gettaigwait den wert immer explizit von der AS, das heißt insofern kann das nicht auftreten (der datencrash), denn es muss alles immer FiFo durchlaufen werden.
    Geändert von Kwyjibo (15.05.2008 um 09:07 Uhr)

  6. #6
    BorisDieKlinge80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2008
    Beiträge
    195
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    ok ,nehmen wir an Y wird geändert und an WinCC geschickt, gleichzeitg wird X (was Y auf der anderen Seite repräsentiert) geändert und an die SPS geschickt.

    nehmen wir an es wäre integer variable und auf beiden seite würde der wert um eins erhöhr und übertragen was käme raus?

    würde dann die übertragung von WinCC zur SPS verworfen?

  7. #7
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Hallo Boris,

    diese was wäre wenn-Diskussion ist ziemlich unfruchtbar. Das Verhalten der Visu könnte sich mit der nächsten Softwareversion ändern, wenn sich die Anbindung (DP-PN) ändert, ist wieder alles anders ...

    damit man weiss, was passiert, mach es so wie von centipede vorgeschlagen:
    Wenn du dieses Verhalten verhindern möchtest solltest du zwei Werte in der Steuerung halten, einen der in der Steuerung verändert wird und einen der von WinCC verändert wird, und diese in der Steuerung abgleichen.

  8. #8
    BorisDieKlinge80 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.05.2008
    Beiträge
    195
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    ja die option mit dem Doublebuffering werd ich auch tun

    damit ich weis aus welcher richtung die ändung kommt, zudem werd ich die richtugn prioritätisieren

    ich hab keine ahnung von SPS , wie lange würde es dauern, um zwei 20kbyte blöcke zu vergleichen (416-2DP CPU

  9. #9
    Registriert seit
    30.04.2005
    Beiträge
    908
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von BorisDieKlinge80 Beitrag anzeigen
    prioritätisieren

    Das Wort finde ich gut, kannte ich noch gar nicht
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

Ähnliche Themen

  1. Visu kommuniziert nicht mit SPS
    Von Sepp1301 im Forum HMI
    Antworten: 33
    Letzter Beitrag: 21.03.2011, 20:07
  2. CPU315-2 kommuniziert überhaupt nicht mehr!
    Von BHeiser71 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.12.2008, 17:42
  3. s7-200 kommuniziert plötzlich nicht mehr
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.01.2006, 21:14
  4. EIB kommuniziert mit CAN
    Von iceland im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 14.09.2003, 23:28

Lesezeichen

Berechtigungen

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