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

Ergebnis 1 bis 3 von 3

Thema: String von C# über OPC zu S7, Längenproblem

  1. #1
    Registriert seit
    07.07.2008
    Beiträge
    20
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Kollegen,

    habe bereits das Forum durchforstet, aber nichts passendes gefunden.
    habe folgendes "Problem":

    Zunächst mal foglende Konfiguration:

    - S7 CPU-315 2PN/DP

    - OPC Server IBH

    - C# Programm von einem externen Programmierer

    Ich habe mit OPC-Server und TCP/IP Telgrammverbindung schon einige Projekte realisiert, bin jetzt aber auf ein neues unerwartetes Problem gestoßen.
    Zwischen der S7 und der C# Anwendung gibt es in meinem aktuellen Projekt das erste mal Strings, die von der C# Anwendung über den OPC-Server an die SPS kommen.

    Nun ist ja bekanntlich String nicht gleich S7-String, da dort ja noch diese 2 Bytes für max. Länge/tatsächliche Länge vorweg gestelt sind.
    Die C# Anwendung schickt mir jetzt einen "normalen" String, der natürlich auch in mein Datenfeld des S7 Strings geschrieben wird aber natürlich nicht die tatsächliche Länge.
    Gibt es da einen Trick/Möglichkeit das ganze seitens C# oder von mir aus auch S7 auf einfachem Wege zu realisieren?!

    Vielen Dank im Voraus für Eure Beiträge

    Grüße
    Lars
    Zitieren Zitieren String von C# über OPC zu S7, Längenproblem  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    so wie ich das sehe hast du 2 Möglichkeiten :
    - das C-Programm stellt dem eigentlichen Nutzdaten-String die beiden Header-Bytes als Charakter vor.
    - Du nimmst die Daten als Array_of_Byte entgegen, scannst nach Empfang nach dem String-Ende (bei C wird m.E. der String mit Chr(0) terminiert) und generierst dir daraus die beiden Header-Bytes.

    Gruß
    Larry

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn es über einen OPC Server geht, solltest du dieses Problem nicht haben. Der OPC Server ist dafür "verantwortlich". Im OPC Server gibt es einen VT_BSTR einen VariantTyp. Wenn der OPC Server mit einer S7 Steuerung spricht MUSS er das für die S7-Steuerung entsprechend aufbereiten und für den S7 String die beiden "Führungsbytes" mit Gesamt-Länge und Benutzte-Länge entsprechend befüllen.

    Das klappt natürlich nur dann wenn es in der S7 auch tatsächlich ein S7-String ist und kein Byte-Array. Ich habe das mit dem Simatic OPC Server probiert und es klappt einwandfrei. Könnte mir vorstellen das dies beim "Reverse-Engineering" mancher OPC Drittherrsteller "vergessen" wurde, übrigens nicht nur String sondern gerne auch VT_DATE, denn die Datumsformate einer S7 sind noch schräger als die Strings (ich sag nur: TOD und Teufel).

    Um sicher zu gehen empfehle ich daher immer zu prüfen ob der eingesetzte OPC Server:
    a) spezifikationskonform getestet wurde
    b) bei diesem Test alle Datentypen verwendet worden sind.

    Die Ergebnisse eines solchen Tests sind "öffentlich" einsehbar bei der OPC Foundation:
    http://www.opcfoundation.org/Product...ctVendors.aspx

    Hersteller auswählen, Produkt auswählen und Testergebniss anzeigen lassen "Test Result" in grün ganz unten auf der Seite.

Ähnliche Themen

  1. String über RS232 senden
    Von Syntaxfehler im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 07.02.2009, 17:10
  2. String über DP / DP Koppler
    Von AndreasH im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.07.2007, 09:05
  3. B&R String über RS 232 an Drucker ausgeben
    Von Heppo im Forum Sonstige Steuerungen
    Antworten: 9
    Letzter Beitrag: 08.04.2007, 10:51
  4. Zugriff auf DB(String) über Pointer
    Von Thomas R im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 21:04
  5. String über RS232 in DB auslesen????
    Von Madface im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.04.2004, 10:06

Lesezeichen

Berechtigungen

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