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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: SPS Variablen über eigenes ActivX lesen/schreiben?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da müsste ich unsere SPS Gurus fragen:

    glaube Siemens Step 7
    CPU 416-20P
    CP400
    Zykluszeit 20ms

    Kan LibNoDave auch via Industrial Ethernet kommunizieren? oder Muss es TCPIP ssein?
    Geändert von BorisDieKlinge80 (15.05.2008 um 05:01 Uhr)

  2. #12
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Also für WinCC hat ein Kollege von mir ein ActiveX-Control geschrieben, mit welchem er aus/in Rohdatenvariablen (max. 204 Byte Länge) beliebige Daten (Byte, Word, DWord, String, Bool etc.) und in interne Variablen einsortiert. Das hat also einiges an Tags gespart. Allerdings gibt es dabei einige Probleme. Das betrifft zum Einen das Verhalten beim Hochlaufen von WinCC (man muß immer zuerst von der SPS lesen!) und andererseits gibt es Probleme, wenn man die gleiche Variable von der SPS liest und von WinCC aus schreiben will. Insgesamt wurde einiges an Zeit und Arbeit investiert, der Aufwand lohnt sicher erst nach einigen WinCC-Applikationen, bei welchen dann Tags und somit Lizensekosten gespart werden.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Standard

    Eben Ralle, das ist das problem die wollen hier von ner 8K WinCC lizens auf ner 128 Lizens...! Die meinten haja mit dem rohdaten prinzip wäre es "kein" poblem.

    Aber die gesamte kommunikation hängt dann von dem ActiveX ab, performance technisch kommt man nich an winCC ran.

  4. #14
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Warum das? Wenn sich eine Rohdatenvariable ändert, löst WinCC einen Trigger aus, daraufhin wird ein Script abgearbeitet, daß die Variablen separiert, umgekehrt das Gleiche, die Rohdaten werden immehnoch normal von WinnCC als Block gelesen und geschrieben. Unser WinCC-Server versorgt 8 WebNavigator-Clients. wir nutzen eine 256-er Lizense (für manche Dinge nehme ich dann schon eine direkte Variable, zumal nicht alles fein in Blöcken auf der SPS liegt und ich auch mal faul bin). Der Server ist bei weitem nicht ausgelastet, bis wohin WinCC problemlos mitspielt muß man bei dieser Menge Variablen eh austesten. Die Webclients und die Triggerzeiten bei WinCC sind ohnehion nicht so superschnell, ich finde es immer etwas träge, wenn man auf einem Bild die Trigger zu schnell wählt, werden manchmal die Variablen nicht mehr gelesen, aber das ist schon bei normalen Variblen so.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #15
    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 an sowas hab ich auch schon gedacht...

    1. Müssen alle DB der SPS zu rohdatneblöcke zusammengepackt werden (bzw. kopiert und gelesen werden)

    2. ich muss alles externen 8000 Tags in internte Tags protieren..

    3. Scripte einbauen, welche ablaufen wenn sich ein interen tag ändert, und dann das entsprechende rowhdatentag auf die sps schreiben?

    aber wie bekommen meine scripte mit welches interne tag geändert wurde? kann ja nich auf jedes Tag triggern oder.. wäre doch umständlich? sorry bin nich so involvieert mit wincc

  6. #16
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich hab mal nachgeschaut.
    Die meisten Daten werden zu Anzeigezwecken nur aus der SPS-ausgelesen und niemals zurückgeschrieben. Es mach absolut Sinn diese separat zu behandeln, mit einer Funtion (RAWREAD) aus einem ActiveX-Control. Getriggert wird dabei auf die Rohdatenvariable. Außerdem sind im ActiveX-Control Funktionen ausprogrammiert, die das korrekte Separieren indie Internen Variablen machen, da sind z.Bsp. die Bytes verdreht etc. Spezielle Daten (Parameter werden gelesen und geschrieben, dabei triggert man ein Script auf die Rohdatenvariablen, eines auf die "enthaltenen" interen Variablen). Buttons etc. haben wir direkt über Wordvariablen genutzt, da das "gleichzeitige" Schreiben und Lesen am Anfang Probleme gemacht hat und wir mit den Tags auch so ganz gut hin kamen. Also von 8000 auf 128 halte ich für unrealistisch, ich würde mal mit allen nur anzuzeigenden Variablen beginnen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Standard

    eben, glabu auch das dies nich gehen wird.. wenn ich nen button drücke... könnte ich ja diese aktion auf eine property event des activx Triggern oddr?

  8. #18
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Das mit dem ActiveX haben wir anders gelöst. Das AxtiveX stellt Funktionen zur Verfügung, eigentlich wie eine DLL, aber das ActiveX ist halt in VBA leicht einzubinden, weiß gar nicht, on das mit einer "reinen" DLL ginge. Der Button löst über seine Variable ein Action-Script in WinCC aus, dieses ruft dann ein fertiges GlobalScript auf, in welchem mit Hilfe des ActiveX die Rohdaten geschrieben werden. Es ist ja kein visuelles ActiveX auf der Oberfläche!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Standard

    hey ralle genau so hab ich mir das auch grad gedacht.. ne gute idee.. ich leg ei ntrigger an welcher auf änderung der interen tags wartet , und ein funktion des Active X aufruft...

    Wenn ich eine Aktion in winCC scripte, kann ich ja unter "Trigger/Info" Tag anfügen.. aber immer nur einzlen.. Kann man keine tag gruppen auswählen.. oder wie könnte ich es machen damit ein trigger bspw. auf 1000 tag hört? Zudem gibt es ne möglichkeit das ich sogar rausbekommen, welches dieser tausend tag sich geändert hat? was eigentlich egal wäre, weil die 1000 Tag ja ehh komplett in den rohdatenbock geschrieben werden...
    Geändert von BorisDieKlinge80 (16.05.2008 um 12:48 Uhr)

  10. #20
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von BorisDieKlinge80 Beitrag anzeigen
    hey ralle genau so hab ich mir das auch grad gedacht.. ne gute idee.. ich leg ei ntrigger an welcher auf änderung der interen tags wartet , und ein funktion des Active X aufruft...

    Wenn ich eine Aktion in winCC scripte, kann ich ja unter "Trigger/Info" Tag anfügen.. aber immer nur einzlen.. Kann man keine tag gruppen auswählen.. oder wie könnte ich es machen damit ein trigger bspw. auf 1000 tag hört? Zudem gibt es ne möglichkeit das ich sogar rausbekommen, welches dieser tausend tag sich geändert hat? was eigentlich egal wäre, weil die 1000 Tag ja ehh komplett in den rohdatenbock geschrieben werden...
    Nein, bloß nicht so. Wenn du einen Button drückst, willst du dann 8000 Variablen aktualisieren und als Rohdatenpakete zur SPS schicken? Das wäre übertrieben. Du solltest jeden Rohdatenblock triggern zum Lesen und die Variablen im Rohdatenblock, welche von der Visu geändert werden können, zum Schreiben triggern. Somit wird es für jede Rohdatenvariable ein Script zum lesen geben und, wenn nötig, ein Script zum Schreiben.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. C#-Variablen in TwinCAT lesen und Schreiben
    Von kcirtap im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 29.11.2010, 10:18
  2. Antworten: 2
    Letzter Beitrag: 08.11.2010, 07:21
  3. In DB schreiben / lesen
    Von mariob im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.12.2008, 16:54
  4. Antworten: 10
    Letzter Beitrag: 19.06.2008, 17:10
  5. DB lesen/schreiben über Ethernet
    Von merlin im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 12.04.2007, 10:29

Lesezeichen

Berechtigungen

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