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

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

Thema: B&R: Sys. Werte (Datenobjekte, rem. Variable)

  1. #11
    fighter ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.09.2008
    Beiträge
    29
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wie definiert man VT Speicher bzw. NT Speicher?

    mfg

  2. #12
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    VT = Vorteil
    NT = Nachteil
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

  3. #13
    Registriert seit
    19.12.2007
    Beiträge
    10
    Danke
    2
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Maxl Beitrag anzeigen
    Der Nachteil des nicht unbeträchtlichen Programmieraufwandes ist unübersehbar. Ich hab mir daher eine Library zusammengestöpselt, welche die Verwaltung von Datenobjekten komplett erledigt. (Doppelte Datenhaltung, automatische Vergrößerung/Verkleinerung, Speichern/Laden, Fehlerauswertung)

    Zum Abspeichern von Maschinendaten (Positionen, Geschwindigkeiten usw.), Rezepturverwaltung, usw. kommen bei mir fast ausschließlich Datenobjekte zum Einsatz.
    Im Permanentspeicher sind i.d.R. nur Daten abgelegt, welche sich ständig ändern können (Servo-Kalibrierdaten, Zähler, ...)

    mfg Maxl
    Hallo Maxl,

    sorry dass ich diesen alten Beitrag aus dem keller hole, aber eine solche Library wäre für mich sehr interessant

    Grüße

    Klaus

  4. #14
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    Zitat Zitat von Klaus Knechtskern Beitrag anzeigen
    Hallo Maxl,
    sorry dass ich diesen alten Beitrag aus dem keller hole, aber eine solche Library wäre für mich sehr interessant
    Hast Du ein konkretes Projekt, bei dem Du sowas benötigst, oder möchtest Du einfach mal vorsorglich eine solche lib haben??
    Das Problem dabei ist, dass die lib dem Copyright meines ehemaligen Arbeitgebers unterliegt, und ich sie deshalb nicht so mir nix dir nix aus der Hand geben kann.

    mfg Maxl
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

  5. Folgender Benutzer sagt Danke zu Maxl für den nützlichen Beitrag:

    Klaus Knechtskern (29.05.2009)

  6. #15
    Registriert seit
    19.12.2007
    Beiträge
    10
    Danke
    2
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Maxl Beitrag anzeigen
    Hast Du ein konkretes Projekt, bei dem Du sowas benötigst, oder möchtest Du einfach mal vorsorglich eine solche lib haben??
    Das Problem dabei ist, dass die lib dem Copyright meines ehemaligen Arbeitgebers unterliegt, und ich sie deshalb nicht so mir nix dir nix aus der Hand geben kann.

    mfg Maxl
    Ein konkretes Projekt dafür habe ich im Moment nicht, nur könnte ich damit einige Dinge die ich auf meiner TODO Liste für zukünftige Softwareversionen habe, Deiner Beschreibung nach, bequem realisieren.

    Programmierung ist nur eine meiner Aufgabe und von C hab ich bis jetzt noch sehr wenig Ahnung, was mir die Erstellung von Libraries doch deutlich erschwert...

    Aber Danke trotzdem für eine prompte Antwort! Das Problem mit dem Copyright kann ich absolut nachvollziehen..

    Ich sollte mich doch auch mal mit C auseinander setzen (wenn der Tag 40 Stunden hat)


    Grüße

    Klaus

  7. #16
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Library hab ich (soweit ich mich erinnern kann) sogar noch in Automation Basic geschrieben, bin erst im Laufe des dann folgenden Projektes nach und nach auf C umgestiegen (weil's für die CNC notwendig war). Ein paar Grundgedanken zum Thema dieser Library kann ich Dir aber gerne geben:

    1. Prinzip der Uploadbarkeit von Datenmodulen
    Ein generelles Problem bei Datenobjekten ist, dass man diese zwar uploaden kann, ein upgeloadetes Datenobjekt aber nicht mehr verändern kann. Das Uploaden ist aber wünschenswert, um Damit Rezepturdaten usw. zu sichern.

    2. Prinzip der doppelten Module (Deklaration / Datenhaltung)
    Um dennoch uploaden und nachträglich die Deklaration (speziell die Kommentare) verändern zu können, ist jedes Datenobjekt doppelt am Zielsystem vorhanden. Das offline deklarierte Modul wird zwar aufs Zielsystem geladen, allerdings wird darin keine Datenhaltung vorgenommen. Für die eigentliche Datenhaltung legt die lib online eine Kopie des originalen Datenobjektes an, auf das die eigentlich lese- und schreibzugriffe erfolgen - dieses Objekt kann nun zur Datensicherung hochgeladen werden

    3. Funktion der Library
    Die Library enthält im wesentlichen 3 Eingangsparameter
    - Name des Deklarations-Datenobjektes
    - Name des Datenhaltungs-Datenobjektes (welches dann online erzeugt wird)
    - Zeiger auf den Speicherbereich, über den dann das Anwenderprogramm zugreift
    zusätzlich gibt es noch eine Reihe weitere Parameter zum lesen/schreiben/neu initialisieren/Fehlerauswertung usw.

    Beim Hochlauf der CPU läuft im wesentliches folgendes Schema ab:
    - Prüfung, ob Deklarations-Datenobjekt vorhanden
    - Prüfung, ob Datenhaltungs-Datenobjekt vorhanden (wenn nein: neu erzeugen und Daten aus Deklarations-Datenobjekt in Datenhaltungs-Objekt kopieren)
    - alle Daten aus Datenhaltungs-Objekt in den Bereich im RAM kopieren, der über einen Zeiger übergeben wurde (ob dies nun eine Datenstruktur oder ein freier Bereich im DRAM ist obliegt dem Programmierer)

    Der Zugriff des Anwenderprogramms erfolgt ganz normal per Datenstruktur oder Zeiger - mit einem boolschen lib-Eingangsparameter wird das Schreiben auf das Datenobjekt angestoßen. Zusätzlich hab ich noch Mechanismen eingebaut, die mir erlauben, nur Teile des Datenbereiches aufs Datenobjekt zu schreiben bzw. Teile vom Datenobjekt wieder nachzuladen.

    Noch ein sehr wichtiger Punkt war mir die Möglichkeit, Datenobjekte im nachhinein zu vergrößeren/verkleinern (weil z.B. statt 200 plötzlich 500 Rezepte gebraucht werden). Dies wird ebenfalls beim Hochlauf der CPU überprüft: unterscheiden sich die Längen des Deklarations-Datenobjektes und des Datenhaltungs-Objektes, wird zuerst online eine Sicherung des Datenhaltungs-Objektes angelegt (um nicht allzu kreativ bei der Namensgebung sein zu müssen, kann man den Umstand ausnutzen, dass online Objektnamen eine Länge von 10 Zeichen haben dürfen), anschließend wird das ursprüngliche Datenhaltungs-Objekt gelöscht und mit der neuen Länge wieder angelegt, schlussendlich werden die zuvor gesicherten Daten wieder aufs Datenhaltungs-Objekt kopiert und die Sicherzungskopie gelöscht.
    Warum der Aufwand mit dem Sicherungs-Objekt: man stelle sich vor, man kopiere die original-Daten "nur" ins RAM und während dem löschen und neu Anlagen des Datenhaltungs-Objektes fällt die Versorgungsspannung aus....
    Auch bei der Variante mit Sicherheitskopie muss man sich überlegen, welche Zustände auftreten können, wenn während dem herumsichern/-kopieren die Versorgungsspannung ausfällt, und was man alles ausprogrammieren muss um dennoch immer konstistente Zustände zu erhalten.

    mhm, was hab ich vergessen?
    Ach ja, die lib immer in Taskklasse 8 anwenden, und bei der Programmierung darauf acht geben, dass nicht zu viele Aufrufe gleichzeitig laufen (wobei: ich habs mal auf einem APC620 mit AR106 getestet, da gabs bei ca. 35 gleichzeitig beim Hochlauf aktiven Instanzen keinerlei probleme), die größten Datenobjekte die ich damit verwaltet habe sind 96k groß - hier war es allerdings notwendig, für den Zugriff aus dem Anwenderprogramm heraus mit des lib ASMem eigene Speicherblöcke zu allokieren, bevor ich die Datenobjekt-Library anwenden konnte.

    mfg Maxl


    edit:
    Ach ja: Zeitaufwand für die lib ca. 4-5 Tage (3 Tage 2005 fürs Grundkonzept, und nochmals 1-2 Tage letztes Jahr zum Verfeinern)
    Geändert von Maxl (29.05.2009 um 15:49 Uhr)
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

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

    Klaus Knechtskern (29.05.2009)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 06.01.2011, 14:03
  2. S7 Variable in Java Variable umwandeln
    Von maxi81 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.11.2010, 17:55
  3. B&R Datenobjekte
    Von Sera im Forum Sonstige Steuerungen
    Antworten: 7
    Letzter Beitrag: 11.03.2010, 07:21
  4. Antworten: 7
    Letzter Beitrag: 05.03.2008, 07:38
  5. CP 340 / 2 Werte vom PC in ein DB der SPS
    Von maxi im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 16.08.2006, 12:18

Lesezeichen

Berechtigungen

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