Mit vb.net ( libnodave ) Analogwerte aus LOGO!8 lesen bzw. in LOGO! schreiben

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von wolfi_bayern.

    Mit vb.net ( libnodave ) Analogwerte aus LOGO!8 lesen bzw. in LOGO! schreiben

    Guten Abend,

    nach Langer Suche habe ich viel gefunden aber nichts was mir wirklich weiter geholfen hat.
    Ich hoffe ich bin hier in der richtigen Abteilung gelandet.

    Folgendes Problem:

    Ich habe ein Programm in vb.net geschrieben und will darüber mit Hilfe der libnodave Bibliothek Werte aus der Logo lesen bzw. in die Logo schreiben.
    Verbindung zur Logo bekomme ich aufgebaut und auch das lesen und schreiben von Digitalwerten ist kein Problem.
    Allerdings bekomme ich Analogwerte weder gelesen noch geschrieben.
    Kann mir jemand sagen wie ich daran komme? Ich habe eine Liste mit Adressen gefunden aber das habe ich nicht wirklich verstanden.
    Mit welcher Libnodave-Event Lese ich z.B. einen Analogmerker aus der Logo? Geht das auch über "...daveFlags..."?

    Ich hoffe mir kann jemand Helfen!! :?: :?:

    Vielen Dank und Gruß
    Servus!
    Ich weiss es grad nicht auswendig.

    Auf jeden Fall kommt es drauf an ob Du die werte direkt aus dem IO-Bereich liesst oder ob Du die werte vorher auf ein Merkerwort legst und dann dieses liesst.
    Du musst in jedem Fall ein Wort und kein Bit lesen.
    Falls Du nicht weiter kommst schau ich morgen mal nach.

    Gruss Wolfgang
    PS.: Kennst Du die PLC TOOLBOX von Jochen Kühner? Zu finden im SPS Forum bzw. Auf seiner Homepage
    Der Beitrag wurde aus 100% wiederverwendbaren Elektronen erstellt!

    sepp702 schrieb:

    wie ich daran komme
    Was sagt denn die Bedienungsanleitung?
    Gibt es da keine Beispielprogramme?
    Hat der Hersteller eine Web-Präsenz?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin!

    Ein oder mehrere Bytes in einen Datenbaustein schreiben bzw. lesen:

    VB.NET-Quellcode

    1. dim writeBuf() as byte={&H01,&H02,&H03,...} 'Data to write
    2. dim length as integer=buf.count-1
    3. dim dbNumber as Integer=12 'DB12
    4. dim offset as Integer=14 'Begin write DB-Byteadress 14
    5. dc.writeBytes(libnodave.daveDB, dbNumber, start, length, writeBuf) 'Write data to PLC
    6. dim readBuf() as byte
    7. length=4 'Want to read 4 bytes
    8. dc.readBytes(libnodave.daveDB,dbNumber,start,length,readBuf) 'Read data from PLC

    Der Beitrag wurde aus 100% wiederverwendbaren Elektronen erstellt!

    wolfi_bayern schrieb:

    sollte auch wörter lesen gehen...

    @sepp702

    RodFromGermany schrieb:

    Was sagt denn die Bedienungsanleitung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok... ich hätte jetzt gedacht Du hast schon alles am laufen

    sepp702 schrieb:

    Verbindung zur Logo bekomme ich aufgebaut und auch das lesen und schreiben von Digitalwerten ist kein Problem.


    Hierfür siehe:

    RodFromGermany schrieb:

    Was sagt denn die Bedienungsanleitung?



    Der Beitrag wurde aus 100% wiederverwendbaren Elektronen erstellt!

    wolfi_bayern schrieb:

    Bedienungsanleitung gibt's nicht... Nur vereinzelt beispiele


    Es gibt keine wirkliche Bedienungsanleitung.

    Das einzige was ich gefunden habe, habe ich mal als Anhang beigefügt.
    Aber das hat mir nicht wirklich geholfen. Hoffe mir kann jemand helfen. Wäre wichtig!

    Vielen Dank!
    Dateien
    Sorry, hat etwas länger gedauet aber jetzt mal dazu wie es funktioniert.

    Also, erst die Variablen die man benötigt in der LOGO!Soft mappen.
    Unter Extras >> Parameter-VM-Zuordnung. Dann öffnet sich das Fenster (Screenshot im Anhang).
    Dort die Parameter auswählen und Adressen vergeben oder einfach die voreingestellten Adressen eingestellt lassen.

    in vb.net:

    VB.NET-Quellcode

    1. res = daveReadBytes(dc, daveDB, 1, 8, 2, Food1(0))
    2. Food1Temp = daveGetS16from(Food1(0))


    res=DaveReadBytes(dc,daveDB, "Datenbaustein Nr.", "VM-Adresse", "Anzahl der zu lesenden Bytes", "Speicher in den geschrieben werden soll")


    1 = Datenbaustein 1 (aus dem muss in der LOGO scheinbar immer gelesen werden)
    8 = die programmierte VM-Adresse
    2 = die Anzahl der Bytes die gelesen werden soll (In der LOGO ist ein Word fest eingestellt. Also 2 Bytes, d.h 16Bit)
    Food1(0) = Der Speicher in den der gelesene Wert geschrieben werden soll (Food1(0) ist als Speicher mit 2 Bytes deklariert)

    Wenn jetzt aus einer der fest programmierten Adressen aus der LOGO gelesen werden soll (Tabelle in der pdf im Anhang), dann muss die VM-Adresse noch berechnet werden.

    Man will z.B. den AI1 lesen (AI`s gehen von 1024 bis 1031) dann muss man 1024*8+0=8192 rechnen. VM-Adresse=8192

    Wenn man den AI5 lesen will muss man 1024*8+4=8196 rechnen. VM-Adresse=8196

    Hoffe man kann es verstehen was ich sagen will.

    Gruß
    Bilder
    • Konfiguration des variablen Speichers.jpg

      68,54 kB, 501×506, 442 mal angesehen
    Dateien
    Ich kenn die LOGO nicht so genau.
    Offenbar ist hier dann alles an Adressen einfach hintereinander mit festen Bereichen angelegt im Unterschied zu den grossen CPUs wo man ja seine Daten hinlegen kann wo man will ( z. B. DB17).
    Schön dass es jetzt klappt. Danke für die Info.
    Der Beitrag wurde aus 100% wiederverwendbaren Elektronen erstellt!