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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: Rezeptur-Datensatzelemente im Script auslesen

  1. #21
    Registriert seit
    17.10.2007
    Beiträge
    286
    Danke
    5
    Erhielt 56 Danke für 52 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Draco,

    die Werte eines Datensatzes werden in die Rezeptvariablen geschrieben, richtig. Die in einer Rezeptur projektierten Variablen sind jedoch quasi temporär von der Steuerung abgeklemmt, d.h. die Werte werden NICHT DIREKT zur Steuerung übertragen. Du kannst also die Rezeptvariablen beliebig manipulieren (Werte ändern), erst mit dem Befehl "SchreibeDatensatzvariablenInSteuerung" (Beachte: nicht "SchreibeDatensatzInSteuerung"!!) bekommt die Steuerung die neuen Werte mit.

    Für die Anzeige von Rezepturvariablen kannst du auch alle verfügbaren Controls verwenden, erst mit den entsprechenden Systemfunktionen (siehe oben) gibt es dann quasi ein "Go live" auf der Steuerung.


    Gruß, Fred


    PS: Gerade noch eingefallen -> Such mal nach Schlagwörtern wie "Rezepturanzeige" und "Rezepturbild" (auch in Siemens-Doku)

  2. #22
    Registriert seit
    23.06.2009
    Ort
    Sassnitz
    Beiträge
    12.754
    Danke
    1.038
    Erhielt 3.753 Danke für 3.031 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Also mein Ansatz funktioniert(e) bisher auf einem 677 IPC und FlexibleRuntime folgendermaßen: Es gibt ein Script "ReadPage" der 10x das Script "ReadLine" aufruft. ReadLine greift wiederum auf die CSV-Datei anhand vom Index, der mitgeschickt wird, und liest die relevanten Daten aus die dann in Lokalvariablen kopiert werden. ReadPage setzt daraus dann die aktuelle Anzeige zusammen.
    Funktioniert das so wie Du es jetzt auch auf dem Comfort Panel willst? Dann brauchst Du die Skripte doch nur an die Runtime-Hardware anpassen, sprich die Datei-Operationen durch die Pendants von Windows CE ersetzen. (und hoffen daß das Panel nicht zu langsam ist) Siehe die VBScript_WinCE.pdf im Anhang von Beitrag #1 der FAQ

    Ich schreibe meine Skripte so, daß sie über eine Variable umschaltbar auf Windows-PC und WinCE-Panel funktionieren, weil ich will die Skripte ja auch mal auf den Engineering PC testen (also das WinCE-Panel auf dem Windows-PC simulieren). Wie ich das mache ist in der genannten FAQ in Beitrag #2 beschrieben.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #23
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    853
    Danke
    52
    Erhielt 42 Danke für 35 Beiträge

    Standard

    Zitat Zitat von faust Beitrag anzeigen
    Hallo Draco,

    die Werte eines Datensatzes werden in die Rezeptvariablen geschrieben, richtig. Die in einer Rezeptur projektierten Variablen sind jedoch quasi temporär von der Steuerung abgeklemmt, d.h. die Werte werden NICHT DIREKT zur Steuerung übertragen. Du kannst also die Rezeptvariablen beliebig manipulieren (Werte ändern), erst mit dem Befehl "SchreibeDatensatzvariablenInSteuerung" (Beachte: nicht "SchreibeDatensatzInSteuerung"!!) bekommt die Steuerung die neuen Werte mit.

    Für die Anzeige von Rezepturvariablen kannst du auch alle verfügbaren Controls verwenden, erst mit den entsprechenden Systemfunktionen (siehe oben) gibt es dann quasi ein "Go live" auf der Steuerung.


    Gruß, Fred
    Hi Fred

    Damit wir uns nicht missverstehen - wenn ich einen Befehl "LadeDatensaz" absetze. Wo liegen dann meine Daten ?
    Wenn ich zum Beispiel in der Rezeptur ein Daum "Werkzeugbezeichnung" habe. Und dieses guckt in der Projektierung der Rezeptur auf die Variable "Rezeptur\Werkzeugbezeichnung", die aber als Steuerungsvariable angelegt ist (DBxxx.DBWyyy). Wenn ich dann mit dem Befehl SmarTags ("Rezeptur\Werkzeugbezeichnung") den Wert dieser Variablen auslese - bekomme ich dann das geliefert was in der CPU liegt, oder das, was im Rezepturdatensatz steht den ich soeben geladen habe ?

    Funktioniert das so wie Du es jetzt auch auf dem Comfort Panel willst? Dann brauchst Du die Skripte doch nur an die Runtime-Hardware anpassen, sprich die Datei-Operationen durch die Pendants von Windows CE ersetzen. (und hoffen daß das Panel nicht zu langsam ist) Siehe die VBScript_WinCE.pdf im Anhang von Beitrag #1 der FAQ
    Nein Harald, s. oben. Das kann ja auf einem Comfort Panel unter TIA gar mehr nicht funktionieren. Denn auf dem Panel im TIA liegt die Rezeptur nicht in Form einer CSV Datei vor, auf die ich mittels "CreateObject" zugreifen könnte. Selbst auf einem IPC nach der Migration auf TIA wird es nicht mehr funktionieren weil das Ablageformat sich gravierend geändert hat.

    Das Script zerlegt ursprungs die .CSV Datei und sucht sich dort die charakteristischen Variablen (Werkzeugbezeichnung, Werkzeugnummer etc.) zusammen.

  4. #24
    Registriert seit
    17.10.2007
    Beiträge
    286
    Danke
    5
    Erhielt 56 Danke für 52 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    ...
    Damit wir uns nicht missverstehen - wenn ich einen Befehl "LadeDatensaz" absetze. Wo liegen dann meine Daten ?
    Wenn ich zum Beispiel in der Rezeptur ein Daum "Werkzeugbezeichnung" habe. Und dieses guckt in der Projektierung der Rezeptur auf die Variable "Rezeptur\Werkzeugbezeichnung", die aber als Steuerungsvariable angelegt ist (DBxxx.DBWyyy). Wenn ich dann mit dem Befehl SmarTags ("Rezeptur\Werkzeugbezeichnung") den Wert dieser Variablen auslese - bekomme ich dann das geliefert was in der CPU liegt, oder das, was im Rezepturdatensatz steht den ich soeben geladen habe ?
    ...
    Hi Draco,

    die Werte des geladenen Datensatzes liegen IMMER in den projektierten Rezepturvariablen, unabhängig davon, ob diese Variablen eine Anbindung zur Steuerung haben oder nicht.
    Und dann die Unterscheidung:
    1. Wenn deine Rezeptur offline ist (ist die AKTIVIERTE Einstellung "Synchronisation - Manuelle Übertragung einzelner geänderter Werte (Teach-In-Betrieb)"), dann würdest du mit Smarttags... den gerade geladenen Wert erhalten. Erst mit "SchreibeDatensatzvariablenInSteuerung" wird dieser Wert dann zur Steuerung transferiert.
    2. Wenn deine Rezeptur online ist, dann würdest du mit Smarttags... ebenfalls den geladenen Wert erhalten. Gleichzeitig mit dem Ladevorgang wird dieser Wert sofort zur Steuerung transferiert.



    Gruß, Fred

  5. #25
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    853
    Danke
    52
    Erhielt 42 Danke für 35 Beiträge

    Standard

    @Ferd: Vielen Dank.

    Mal sehen, ob mir das weiter hilft. Die Voraussetzung dafür wäre, daß der Befehl "Rezeptur laden" ohne Schreiben in die Steuerung ehrblich schneller ist, als mit Schreiben in die Steuerung.

  6. #26
    Registriert seit
    23.06.2009
    Ort
    Sassnitz
    Beiträge
    12.754
    Danke
    1.038
    Erhielt 3.753 Danke für 3.031 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Nein Harald, s. oben. Das kann ja auf einem Comfort Panel unter TIA gar mehr nicht funktionieren. Denn auf dem Panel im TIA liegt die Rezeptur nicht in Form einer CSV Datei vor, auf die ich mittels "CreateObject" zugreifen könnte.
    Mit der Systemfunktion ExportDataRecords kann man Rezepturen/Datensätze ins csv-Format exportieren/speichern. Hatte ich schon in #2 erwähnt, aber wohl nicht prominent genug.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #27
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    853
    Danke
    52
    Erhielt 42 Danke für 35 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Mit der Systemfunktion ExportDataRecords kann man Rezepturen/Datensätze ins csv-Format exportieren/speichern. Hatte ich schon in #2 erwähnt, aber wohl nicht prominent genug.

    Harald
    Harald, nicht wahr

    Ich habe es wohl gelesen und auch ausprobiert. Ist aber sinnfrei weil elend langsam. Ich kann nicht darauf warten bis er mir 10 Datensätze bei jedem Bildwechsel lädt, das ist zu langsam und wenn man das parallel machen will dann unterbindet das System weitere Versuche wenn 1x Export schon läuft und bricht ab. Das Problem ist, daß die Rezeptur an sich nicht im .CSV gelagert wird. Man könnte wohl die Rezepte beim Anlegen exportieren und direkt mit den Exporten arbeiten. Dann würde ich beim Versuch ein Rezept zu laden so zusagen erst Import machen und dann in die CPU laden. Das wäre möglicherweise ein Ansatz.
    Geändert von Draco Malfoy (06.12.2018 um 17:53 Uhr)

  8. #28
    Avatar von Draco Malfoy
    Draco Malfoy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.10.2012
    Beiträge
    853
    Danke
    52
    Erhielt 42 Danke für 35 Beiträge

    Standard

    Nächste Frage: diese Unterschiede, zwischen Datenzugriff unter CE und unter richtig Windows.

    Wenn ich eine Simulationsumgebung aufmache, sprich mein Panel simuliere. Wird der Datenzugriff dort auch simuliert oder erwartet die Simulation daß die Befehlssyntax wie unter unter richtig Windows aussieht ? Also CreateObject("Scripting.FileSystemObject") dürfte dann eigentlich nicht laufen, oder doch ?

    Kann das vielleicht mal jemand ausprobieren ? Bin mir gerade nicht ganz sicher ob ich möglicherweise genau da dran stolpere. Thx.

  9. #29
    Registriert seit
    23.06.2009
    Ort
    Sassnitz
    Beiträge
    12.754
    Danke
    1.038
    Erhielt 3.753 Danke für 3.031 Beiträge

    Standard

    Zitat Zitat von Draco Malfoy Beitrag anzeigen
    Ist aber sinnfrei weil elend langsam.
    Ach, sind die Comfort Panels wirklich sooo schwach auf der Brust? Oder sind Deine Rezepturen so riesig? Wie lange ist "elend langsam"?

    Um aus 10 Datensätzen jeweils ein paar interessierende Werte auszulesen braucht man gar nicht (den Umweg über) csv, man muß das Datei/Speicherformat auch gar nicht kennen, man braucht nur die 10 Datensätze nacheinander vom Speicher in die Rezepturvariablen einlesen und die interessierenden Werte auf andere HMI-Variablen umspeichern. Wie lange dauert das? (dabei werden die Datensätze nicht in die SPS geladen)

    Ansonsten: so ein Comfort Panel ist nicht für Massendatenverarbeitung ala Excel ausgelegt. Kannst Du das Rezeptur-Inhaltsverzeichnis/Index nicht zu einer anderen Zeit erstellen, und evtl. nur aktualisieren beim Speichern von Datensätzen? Um wie viele Datensätze von wie großen Rezepturen geht es bei Dir?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #30
    Registriert seit
    23.06.2009
    Ort
    Sassnitz
    Beiträge
    12.754
    Danke
    1.038
    Erhielt 3.753 Danke für 3.031 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Panel-Simulation läuft unter Windows, es müssen die Befehle für die PC-Runtime verwendet werden. Auf das Panel geladen laufen die Skripte unter WinCE und es müssen die Befehle für WinCE verwendet werden.
    Es empfiehlt sich eine Meldeanzeige für die Meldungsklasse "System" in einem Bild zu haben, um die Runtime-Errors lesen zu können.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. WinCC c script Objekt variablenanbindung auslesen
    Von zernix im Forum HMI
    Antworten: 4
    Letzter Beitrag: 19.04.2017, 14:10
  2. Antworten: 5
    Letzter Beitrag: 10.12.2013, 22:12
  3. Antworten: 0
    Letzter Beitrag: 11.07.2012, 12:13
  4. C Script mit VBA auslesen
    Von Adenauer im Forum HMI
    Antworten: 6
    Letzter Beitrag: 10.01.2012, 17:18
  5. Antworten: 2
    Letzter Beitrag: 13.10.2010, 12:11

Lesezeichen

Berechtigungen

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