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

Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 37

Thread: Rezeptur-Datensatzelemente im Script auslesen

  1. #21
    Join Date
    17.10.2007
    Posts
    298
    Danke
    5
    Erhielt 60 Danke für 55 Beiträge

    Default


    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
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,539
    Danke
    1,088
    Erhielt 3,996 Danke für 3,229 Beiträge

    Default

    Quote Originally Posted by Draco Malfoy View Post
    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
    Draco Malfoy's Avatar
    Draco Malfoy is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    16.10.2012
    Posts
    908
    Danke
    56
    Erhielt 51 Danke für 40 Beiträge

    Default

    Quote Originally Posted by faust View Post
    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
    Join Date
    17.10.2007
    Posts
    298
    Danke
    5
    Erhielt 60 Danke für 55 Beiträge

    Default

    Quote Originally Posted by Draco Malfoy View Post
    ...
    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
    Draco Malfoy's Avatar
    Draco Malfoy is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    16.10.2012
    Posts
    908
    Danke
    56
    Erhielt 51 Danke für 40 Beiträge

    Default

    @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
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,539
    Danke
    1,088
    Erhielt 3,996 Danke für 3,229 Beiträge

    Default

    Quote Originally Posted by Draco Malfoy View Post
    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
    Draco Malfoy's Avatar
    Draco Malfoy is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    16.10.2012
    Posts
    908
    Danke
    56
    Erhielt 51 Danke für 40 Beiträge

    Default

    Quote Originally Posted by PN/DP View Post
    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.
    Last edited by Draco Malfoy; 06.12.2018 at 15:53.

  8. #28
    Draco Malfoy's Avatar
    Draco Malfoy is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    16.10.2012
    Posts
    908
    Danke
    56
    Erhielt 51 Danke für 40 Beiträge

    Default

    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
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,539
    Danke
    1,088
    Erhielt 3,996 Danke für 3,229 Beiträge

    Default

    Quote Originally Posted by Draco Malfoy View Post
    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
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,539
    Danke
    1,088
    Erhielt 3,996 Danke für 3,229 Beiträge

    Default


    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

Similar Threads

  1. WinCC c script Objekt variablenanbindung auslesen
    By zernix in forum HMI
    Replies: 4
    Last Post: 19.04.2017, 12:10
  2. Replies: 5
    Last Post: 10.12.2013, 20:12
  3. Replies: 0
    Last Post: 11.07.2012, 10:13
  4. C Script mit VBA auslesen
    By Adenauer in forum HMI
    Replies: 6
    Last Post: 10.01.2012, 15:18
  5. Replies: 2
    Last Post: 13.10.2010, 10:11

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •