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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Direkte Auswertung von Digitalen Zuständen mit OPC

  1. #21
    bloodymichael ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2010
    Beiträge
    21
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nach langem probieren bin ich leider nicht viel schlauer geworden. Wenn ich pErrors in S_OK ändere kommt exact der selbe Fehler. Wenn ich aber S_FALSE einsetze, lässt es sich nicht mal mehr debuggen. Braucht man diesen pErrors überhaupt? Was sagt der eigentlich aus?
    gruß
    Michael

  2. #22
    Registriert seit
    27.10.2009
    Beiträge
    317
    Danke
    0
    Erhielt 64 Danke für 54 Beiträge

    Standard

    Nein, da scheint es ein Verständnisplroblem zu geben.

    Bei AddItems werden die Items in die OPC Gruppe hinzugefügt. Die Funktion gibt als HR entweder S_OK oder S_False zurück. Wenn S_OK kommt ist alles gut gegangen, wenn S_False zurückkommt, ist es "teilweise" gut gegangen und dann musst du dir den pErrors anschauen (den bekommst du zurück es ist ein OUT Parameter). Da du mehrere Items in einem AddItems aufruf hinzufügen kannst, ist der pErrors ein Array mit Fehlercodes für jedes einzelne Item, das du hinzugefügt hast. Es könnte ja sein das von 20 Items, die du hinzufügst 18 funktioniert haben aber bei 2 hast du versehentlich eine falsche ItemID reingegeben, dann wäre für 18 Items der pErrors = S_OK aber für die zwei falschen ist der pErrors[i]= E_OPC_InvalidItemID (falsche Syntax) oder für pErrors[i]=E_OPC_UnknownItemID (richtige Syntax aber das Item gibt es nicht).

    Tatsächlich wurden dann nur 18 und nicht alle 20 Items in die Gruppe hinzugefügt.

    Und natürlich bekommst du dann für die 2 "defekten" Items auch keinen DataChange. Für welche Items ein DataChange gekommen ist, erkennst du anhand des ClientHandles. Das legst du bei AddItems selber fest (IN-Parameter) und beim DataChange gibt dir der Server dieses ClientHandle zurück (OUT-Parameter) damit du weißt welche deiner 18 Items sich geändert haben, denn es müssen sich ja nicht unbedingt alle Items gleichzeitig geändert haben (vielleicht nur 3, 7 und 15).

  3. Folgender Benutzer sagt Danke zu Dr. OPC für den nützlichen Beitrag:

    bloodymichael (03.11.2010)

  4. #23
    bloodymichael ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2010
    Beiträge
    21
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal.
    Ich denk die ganze Zeit, dass das ahrErrors das Array für die Fehler ist, da das ja auch das Array ist, das mit den Arrays (ClientHandle,ServerHandle..) an AddItems übergeben wird. Aber wofür ist denn jetzt das ahrErrors?
    Und wieso stürzt das Programm immer an der Stelle des Aufrufes von pErrors ab? Der Rückgabewert hr ist bei Aufruf laut Debugger S_OK. Also rührt der Fehler, wie Dr. OPC vermutet hatte, nicht daher.


    Vielleicht kann man dieses Thema auch in den Hochsprachen & OPC verschieben. ICh glaub da ist es besser aufgehoben.
    Geändert von bloodymichael (27.10.2010 um 16:12 Uhr)

  5. #24
    bloodymichael ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2010
    Beiträge
    21
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!
    Erst mal dicken Dank für Eure Hilfe. Besonders an Dr. OPC. Ich hab es jetzt geschafft mir einen kleinen Client zu schreiben, der auf Änderungen der Eingangsvariablen reagiert. Alles was jetzt kommt sollte nur noch C++ Mfc sein. Wenn nicht, weiß ich ja wo ich Euch finde

    Gruß Michael

Ähnliche Themen

  1. Direkte Adresse aus dem FB benutzen
    Von Rici im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.10.2011, 07:07
  2. Direkte Flankenauswertung eines Eingangs
    Von Paule im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 11.10.2011, 00:12
  3. Antworten: 25
    Letzter Beitrag: 05.01.2011, 07:47
  4. Backupsoftware für direkte Datenübertragung
    Von Chriz im Forum PC- und Netzwerktechnik
    Antworten: 6
    Letzter Beitrag: 18.02.2007, 07:21
  5. direkte Adressierung in einer Multiinstanz
    Von psum im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.08.2006, 13:16

Lesezeichen

Berechtigungen

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