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

Ergebnis 1 bis 9 von 9

Thema: Simatic Net V7.1.1 - OPC Server - Syntax

  1. #1
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Pfeil


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich habe gerade ein kleines Problem mit der Variablensyntax.
    Also ich lese mittels Simatic Net OPC Server Variablen aus einer S5. Dies funktioniert bei Bool und Word einwandfrei.
    Der Dateityp Byte möchte allerdings nicht so wie ich es möchte. Soweit ich es Verstanden habe teilt ein Byte ein Wort in links und rechts (bzw. 0 und 1) ein.
    Die Syntax beim INAT Server ist z.B. für den DB 61, Wort 2 -> (links, 0) DB61,DL2 bzw. (rechts, 1) DB61,DR2
    Kann mir jemand auf die Sprünge helfen wie es sich mit der Syntax bei Siemens verhält?

    Hier einmal die funktionierende Syntax.

    TagType;Level;ShortName;RTName;DataType;AccessRights;102;103
    L;1;Verbindung:ZMS1_Bild:Zuweisung_,X-Ray_Name:,X-Ray_Belegung_1;SR:[ZMS 1 FETCH]DB61,X81.15;B;R;0;0 \\BOOL
    L;1;Verbindung:ZMS1_Bild:Zuweisung_x-Ray_Name:Zähler_x-Ray;SR:[ZMS 1 FETCH]DB61,W70;12;R;0;0 \\WORD
    L;1;Verbindung:ZMS1_Bild:Ausdruck_mit_Rücksetzen_1_Name:1_Stillstand_DW_11;SR:[ZMS 1 FETCH]DB15,D11;3;R;0;0 \\DINT


    MfG

    Andreas

    Edit: Ich sollte noch erwähnen, dass ich die Variablen mittels .csv Datei erstelle und dann mit der Hilfe des Symboldatei-Konfigurators in den OPC-Server einfüge.
    Geändert von Rosenberger (11.09.2012 um 14:29 Uhr)
    Zitieren Zitieren Simatic Net V7.1.1 - OPC Server - Syntax  

  2. #2
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich steh etwas unter Zeitdruck, bin deswegen für jede noch so kleine Anregung offen.
    Kann ich dies evtl. lösen indem ich das komplete Wort auslese und dies dann in WinCC flexible 2008 "teile"?

    MfG

    Andreas
    Geändert von Rosenberger (12.09.2012 um 08:58 Uhr)

  3. #3
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    Hat denn noch niemand Bytes aus einer S5 ausgelesen?

    MfG
    Andreas

  4. #4
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    kann mir jemand die Schiebe und Maskiere Funktion in WinCC Flexible 2008 erklären. Bekomme es gerade nicht gebacken .
    Wie stelle ich aus einem Word die ersten 8 Bit getrennt von den letzten 8 Bit dar?

    Vielen Dank schon mal im Voraus!

    Andreas

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Hast du schonmal die Adressangabe B also ",B0" für Byte 0 versucht? Das ist beim Simatic Net OPC Server normalerweise die Syntax für Bytes. Ich weiß aber nicht ob es da bei einer S5 irgendwelche Einschränkungen beim Fetch/Write bzw. Send/Receive gibt. Aber vielleicht 'popelt' dir der OPC Server die Bytes automatisch aus den Wörtern.

    WinCCflexible hat auch einen S5 Treiber on Board. Über AS511 kannst du direkt aus WinCCflexible mit einer S5 Daten austauschen.

  6. #6
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Thomas_v2.1,

    Danke für die Antwort. Sobald mit der Adressangabe Byte gearbeitet wird, kommt die Rückmeldung vom OPC Server, dass dieser Itemname nicht im Adressraum vorhanden ist .

    Die Daten müssen über Ethernet abgefragt werden, da es sich um eine "antike" Maschine handelt, die eine ganze Halle belegt, also von mehrern S5en gesteuert wird. Das WinCC 4.xx Programm aus dem die Variablen mittels Rückdokumentation ausgelsesen wurden gibt die Itemdefinition "0 in Word DBx,DWy" bzw, "1 in Word DBx,DWy" aus.

    MfG,

    Andreas

  7. #7
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich muss das Wort ja nicht unbedingt in der Symboltabelle schon in Bytes aufteilen, es würde mir auch schon helfen wenn mir jemand sagen kann ob das mit WinCC flexible prinzipiell möglich ist.

    MfG

    Andreas

  8. #8
    Registriert seit
    22.09.2011
    Beiträge
    37
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich habe das Problem jetzt mit Schieben und Maskieren gelöst, dann bekomm ich halt ca. 300 variablen mehr. Naja fällt bei knapp 2500 Stück auch nicht mehr ins Gewicht.

    Wenn trotzdem noch jemandem etwas dazu einfällt. Bitte trotzdem noch Antworten.

    MfG

    Andreas

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es scheint etwas Verwirrung zu geben was die Adressierung betrifft. Beim SR-Protokoll gibt es wortweise und byteweise Adressierung, und das hängt vom Datenbereich ab, der adressiert werden soll. DBs werden wortweise adressiert (und um die geht es hier anscheinend)

    Wenn also der Offset ein Wort ist kann man nur immer 2 Byte = 1 Wort weiter springen in der Adressierung.
    Beispiel wortadressiert:
    SR:[ZMS 1 FETCH]DB61,W70
    SR:[ZMS 1 FETCH]DB61,W71

    entspricht byteadressiert:
    S7:[S7Connection1]DB61,W140
    S7:[S7Connection1]DB61,W142

    Wenn man wortadressiert nun aber zwei einzellne Bytes haben möchte, kann man das nicht adressieren, da man den "Offset" nicht angeben kann. Es entsteht also eine nicht adressierbare "Lücke".
    SR:[ZMS 1 FETCH]DB61,B70 \\ an das zweite Byte kommt man nicht ran
    SR:[ZMS 1 FETCH]DB61,B71 \\ an das zweite Byte kommt man nicht ran

    byteadressiert geht das ab sehr wohl:
    S7:[S7Connection1]DB61,B140
    S7:[S7Connection1]DB61,B141
    S7:[S7Connection1]DB61,B142
    S7:[S7Connection1]DB61,B143

    Den einzigen Trick den man nun anwenden kann, ist ein Array-of-Byte mit 2 Elementen an die wortadressierte Anfangsadresse zu legen (denn das entspricht "zufälligerweise" der Länge von einem Wort). Somit wäre das "linke" und "rechte" Byte im Wort entsprechend im Array das erste bzw. das zweite Element.
    SR:[ZMS 1 FETCH]DB61,B70,2
    SR:[ZMS 1 FETCH]DB61,B71,2

    Nun muss der Client allerdings mit einem Array klarkommen und sich das Element rauslösen das er benötigt (also ähnlich wie das Schieben und Maskieren bei WinCC). Es gibt allerdings auch noch die Möglichkeit Array-Elemente "automatisch" von der Symboldatei auflösen zu lassen "[x]"-Notation.

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 11.05.2012, 18:03
  2. OPC Server mit .NET
    Von mertens2 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.09.2011, 12:20
  3. Simatic NET OPC Server
    Von The-Cook im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 07.07.2009, 11:49
  4. Simatic NET OPC-Server - Schreiben von OPC-Items ist zu langsam
    Von christian_a im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 28.02.2009, 11:13
  5. Delphi Zugriff auf Simatic Net OPC Server
    Von marco195 im Forum Simatic
    Antworten: 32
    Letzter Beitrag: 29.08.2006, 11:58

Lesezeichen

Berechtigungen

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