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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 11 von 11

Thema: Globalen DB an SCL übergeben ...

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von nutellahase Beitrag anzeigen
    Es gäbe noch den Umweg über die Lokaldaten! Wenn man es wirklich mit Block_DB symbolisch haben möchte könntest du dir im temp. Bereich deinen UDT anlegen dann kopierst du am Anfang vom Baustein deine Daten in deine UDT-Struktur und am Ende nach der Bearbeitung kopierst du die UDT-Struktur wieder zurück in den DB! Somit könntest du innerhalb des Bausteins symbolisch zugreifen. Ist zwar ein ziemlicher Aufwand aber soweit ich jetzt gelesen habe, sind UDTs im In Out Bereich sowieso Zykluszeitfressend da hier ja auch nur ein Pointer übergeben wird (ich bitte um Korrektur falls diese Aussage falsch ist!)
    Der Zugriff eine Struktur im In-Out erzeugt mehr Code. Wobei hier SCL hier effizienteren Code erzeugt als es in direktem AWL möglich ist, weil der Inhalt der Adress- und Datenbausteinregisters nicht wie in AWL bei jedem Zugriff neu geladen werden, sondern nur wenn es notwendig ist.

    Das Umkopieren auf Temp-Variablen hat nur eine Tücke. Nämlich wenn aus einem "nebenläufigen" Interrupt auch auf diese Daten zugegriffen wird, dann geht das unter Umständen in die Hose (FB kopiert auf Temp-UDT, OB35 Interrupt schreibt in Global-UDT, FB kopiert seinen alten Temp-UDT wieder in den Global-UDT -> Daten kaputt).
    Bei der PC-Programmierung gibt es zu diesem Zweck das Mutex Konzept, also eine Variable die atomar d.h. in einem Programmschritt ununterbrechenbar geschrieben werden kann, und die anzeigt dass jemand gerade Zugriff auf einen Datenbereich hat und der andere Prozess/Thread warten muss. Sowas will man sich in einer SPS aber nicht unbedingt antun wenn es auch anders geht.

    Ich habe das mit dem Umkopieren selber auch schon gemacht, und mir ist die Problematik die entstehen kann erst später bewusst geworden. Man sollte es nur im Hinterkopf behalten, da es Fehler erzeugen kann die nur sehr schwer nachzuvollziehen sind.

  2. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    nutellahase (18.05.2013)

Ähnliche Themen

  1. Array an DWORD übergeben (SCL)
    Von MatthiasH24 im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 30.01.2014, 20:04
  2. SCL symbolischer Name übergeben
    Von dentech im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 09.11.2012, 10:53
  3. DB in SCL übergeben
    Von Felse im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 11.09.2012, 19:50
  4. DB-Nummer in FB übergeben in SCL
    Von Der Bithirte im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 10.08.2010, 13:15
  5. Instanz-DB an SCL übergeben
    Von hub im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 14.05.2010, 12:13

Stichworte

Lesezeichen

Berechtigungen

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