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

Ergebnis 1 bis 2 von 2

Thema: OPC Timestamp überschreiben

  1. #1
    Registriert seit
    14.06.2010
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ein S7 OPC Server soll 2 Tags auf der SPS auslesen. 1. Datum & Time 2. Value. Nach erfolgreichem lesen soll dieser zudem ein Bit auf True/False stellen und das Lesen zu quittieren.
    Dem gelesenen Value soll dabei nicht der Zeitstempel des OPC (Lesevorgang) zugeordnet sein, sondern der 1. Tag aus der SPS. Der OPC Zeitstempel soll sozusagen mit dem Tag der SPS überschrieben werden.

    Mir fehlt passende Software mit der ich mein Vorhaben realisieren kann. Gerne nehme ich auch schon ein erfundenes Rad....

    Bisher habe ich bei Matrikon und Softing geschaut, allerdings ohne erfolgt. Google leider auch nicht.
    Zitieren Zitieren OPC Timestamp überschreiben  

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die OPC Funktion, die dafür erforderlich ist, heißt IOPCItemIO::WriteVQT und ist erst ab OPC DA3.0 verfürgbar. Leider darf der Server auch "not_supported" zurückgeben und daher ist sie nicht bei allen Herrstellern implementiert.
    Code:
    HRESULT WriteVQT (
    [in] DWORD dwCount,
    [in, sizeis(dwCount)] LPCWSTR *pszItemIDs,
    [in, sizeis(dwCount)] OPCITEMVQT *pItemVQT,
    [out, sizeis(,dwCount)] HRESULT **ppErrors
    );
    Also es könnte passieren das der Server das ablehnt
    OPC_E_NOTSUPPORTED
    If a client attempts to write any value, quality, timestamp combination and the server does not support the requested combination (which could be a single quantity such as just timestamp), then the server will not perform any write and will return this error code.
    Und weiter heisst es in der Spec
    Note: There is no way to validate the writing of the timestamp. If writing the timestamp is supported by the server, then the timestamp will be updated on the device as opposed to the cache. Writing timestamps is generally expected to be used for values which are in some sort of manual override mode or for values which are in some form of holding register. In general it is not useful to write timestamps for values which are actually being generated or scanned by the device since the device will generally re-stamp the data each time it is generated or scanned.
    was soviel bedeutet wie: selbst wenn er das unterstützt heisst das noch lange nicht das es dir hilft, denn wenn du Pech hast, wird der TS beim nächsten Scan-Zyklus wieder drübergebügelt.

    Also ich kenne keinen Server der das für TimeStamp unterstützt.

    Dein Ansatz mit zwei Variablen (bzw. drei wenn du das Quittierbit mitrechenen möchtest) scheint mir der einzige Weg zu sein. Du legst den "Wert" und die "Zeit" in zwei unterschiedlichen OPC Items (die dann jeweils einen OPC-TimeStamp haben) und dann setzt du das Flag um zu zeigen das die beiden OPCItems gültig sind und zusammenghören. Natürlich muss der Client das auch genau so verstehen und die "Logik" richtig interpretieren. Und genau an der Stelle wird es schwierig, ein standard Client (von der Stange) kann das nicht, den müsstst du selber schreiben.

Ähnliche Themen

  1. Zählerwert überschreiben
    Von Elektrosly im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 29.08.2010, 20:24
  2. Antworten: 0
    Letzter Beitrag: 15.07.2010, 19:01
  3. S7 und UNIX-Timestamp
    Von argv_user im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.10.2009, 10:28
  4. Antworten: 3
    Letzter Beitrag: 15.03.2006, 19:04
  5. Baustein überschreiben
    Von Unregistriert im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.02.2006, 09:55

Lesezeichen

Berechtigungen

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