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

Ergebnis 1 bis 6 von 6

Thema: DotNetSiemensPLCToolBoxLibrary - array lesen / schreiben

  1. #1
    Registriert seit
    29.09.2008
    Beiträge
    68
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Werte Kollegas - Werte Jochen

    Arbeite mich immer weiter in die DotNetSiemensPLCToolBoxLibrary ein. Ich kann auch schon einige Erfolge verzeichnen
    Bin gerade dabei mir ein paar Code-Snippets zu basteln damit ich später mal nicht mehr suchen muss.

    "Normale" Schreib und Lesezugriffe von Bits,Ints,Reals,Strings usw. funktionieren schon recht gut.

    Aktuell suche ich nach einer Lösung wie ich beispielsweise ein gesamtes Real-Array aus einem DB einlesen und in einem Float-Array in C# ablegen kann.
    Und natürlich auch in die andere Richtung -> von C# in den DB schreiben.

    Bitte höflich um Hilfe
    Besten Dank!

    Echt ein tolles Tool diese Library!!!
    Zitieren Zitieren DotNetSiemensPLCToolBoxLibrary - array lesen / schreiben  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Also, du hast verschiedene möglichkeiten...

    1.) Du übergibts eine Liste von PLCTag Objekten, und liest diese auf einmal,
    2.) Du Konfigurierst das Objekt als array:

    Code:
                var tag = new PLCTag();
                tag.TagDataType = TagDataType.Float;
                tag.ArraySize = 10;
                myConn.ReadValue(tag);
    3.) Du nutzt einen Struct:

    Code:
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]        public struct TestStruct
            {
                public Int16 aa;
                public Int16 bb;
                public Int16 cc;
                public Int32 ee;
                public UInt16 ff;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)] 
                public string test;
            }
    
                PLCTag<TestStruct> tst = new PLCTag<TestStruct>() {DataBlockNumber = 97, ByteAddress = 0};
                myConn.ReadValue(tst);
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. #3
    Registriert seit
    29.09.2008
    Beiträge
    68
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    wow - du bist echt schnell mit den Antworten - DANKE!


    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Also, du hast verschiedene möglichkeiten...

    2.) Du Konfigurierst das Objekt als array:

    Code:
                var tag = new PLCTag();
                tag.TagDataType = TagDataType.Float;
                tag.ArraySize = 10;
                myConn.ReadValue(tag);
    ist tag dann ein array auf das ich mit tag[0] tag[1] usw. zugreifen kann?
    -> nö - habs grad probiert...

    Frage: wie greif ich auf die arrayelemente zu?

    lg,
    Geändert von voni_1 (09.12.2013 um 15:27 Uhr)

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    nö, tag.value sollte dann ein array sein! musst du aber casten!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. #5
    Registriert seit
    29.09.2008
    Beiträge
    68
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    musst du aber casten!
    Oje, Ich hab echt keine Ahnung wie ich das machen könnte - ich bitte meine zunehmend wachsenden C# Kenntnisse zu erweitern

    Vielen Dank!

  6. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ungetestet... :

    Code:
    var tag = new PLCTag();
                tag.TagDataType = TagDataType.Float;
                tag.ArraySize = 10;
                myConn.ReadValue(tag);
    var wr = ((Single[])tag.Value) 
    
    //nun kannst du wr[x] nutzen...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  7. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    voni_1 (10.12.2013)

Ähnliche Themen

  1. Step 7 Bereichslaengenfehler Schreiben/Lesen
    Von Studiologe im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.09.2013, 18:53
  2. DB über PN schreiben/lesen
    Von hoeckaelstroem im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 08.01.2013, 13:10
  3. DotNetSiemensPLCToolBoxLibrary Hardwareconfig lesen
    Von Senator42 im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 06.09.2011, 12:17
  4. Fernzugriff schreiben/lesen
    Von Blackforest im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.06.2009, 13:07
  5. In DB schreiben / lesen
    Von mariob im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.12.2008, 16:54

Lesezeichen

Berechtigungen

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