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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Anleitung libnodave verbindung zum S7 SPS

  1. #11
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von stblme01 Beitrag anzeigen
    ...
    Unbehandelte Ausnahme: System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
    at test.Main(String[] args)
    ...
    Sorry, ich weiß nicht ob ich das richtig sehe aber:
    Der Quelltext ist dabei. Wenn du Main(String[] args) siehst, schaust du nach Main(String[] args). Sieht man dann, daß es sich um die dem Programm übergebenen Parameter handelt? Woher sonst bekäme Main Werte übergeben?

    Wenn nicht: Jemand, der schon mal öfter versucht hat, ein fremdes Programm zu verstehen, könnte nun suchen, wo args überall verwendet wird. Wenn es trotz Suche im Text zu mühsam ist, einfach auskommentieren ;Der Compiler zeigt's dir dann.
    Erkenntnis: 5 Zeilen weiter wird args[0] an openSocket übergeben. Also mal Definition von openSocket anschauen. Mußt du für eigene Programme sowieso kennen. doc/openSocket.html erklärt die Parameter. Wenn du dann nicht darauf kommst, wo args[] herkommt, mal eine feste IP einsetzen...
    Zitat Zitat von stblme01 Beitrag anzeigen
    Ich übergebe der Datei beim Starten keine Parameter.
    Warum eigentlich nicht? Bei diesem Fall...
    Zitat Zitat von stblme01 Beitrag anzeigen
    ..win\testISO_TCP.exe arbeiten und auf meine SPS zugreifen.
    ...ging es doch auch nur mit Parameter.

  2. #12
    stblme01 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.01.2008
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Es sieht so aus dass meine Verbindung zur SPS per C# code steht.
    Ich habe die Datei ...Dot.Net\CS\SimpleISO_tcp.cs nachvollzogen und den Connect zur SPS hinbekommen.

    Also ich kann meine SPS jetzt per Code in zustand STOP und RUN befördern.
    Als nächstes wollte ich jetzt mal die Inputs auslesen.

    Aus den Beispielen im Code fande ich diese Zeilen:

    int saveDebug = libno.daveGetDebug();

    Console.WriteLine("Trying to read a single bit from E0.2\n");
    res = dc.readBits(libno.daveInputs, 0, 2, 1, null);
    Console.WriteLine("function result:" + res + "=" +libno.daveStrerror(res));

    Diese passen auf meinen Versuch ganz gut, ich will den Input E 0.2 auslesen um einfach zu sehen welches Potenzial dort anliegt.

    Doch ich kriege immer das selbe ergebniss, egal ob dort ein Singnal anliegt oder nicht.

    Diese Ergebnis sieht wie folgt aus:

    function result:0=ok
    ______________________________________________________________
    Die SPS ist korekt konfiguriert.

    Meine frage wäre halt ob am Code etwas flasch ist oder ob ich insgesamt einen Gedanken fehler drin habe.
    Zitieren Zitieren Hallo Leute  

  3. #13
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Da hast etwas nicht richtig verstanden.
    Vergleiche folgenden Ausschnitt aus simpleISO_TCP.cs:
    Code:
    		    res=dc.readBytes(libnodave.daveFlags, 0, 0, 16, null);
    		    if (res==0) {
        			a=dc.getS32();	
        			b=dc.getS32();
        			c=dc.getS32();
    			d=dc.getFloat();
    			Console.WriteLine("FD0: " + a);
    			Console.WriteLine("FD4: " + b);
    			Console.WriteLine("FD8: " + c);
    			Console.WriteLine("FD12: " + d);
    		    } else 
    			Console.WriteLine("error "+res+" "+libnodave.daveStrerror(res));
    readBits funktioniert genauso. Ich würde aber NIE readBits verwenden. Warum nicht? Steht auch irgendwo im README oder im FAQ.

  4. #14
    stblme01 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.01.2008
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Zottel

    Frage an dich, welche bytes werden von deiner Funktion gelesen?


    res=dc.readBytes(libnodave.daveFlags, 0, 0, 16, null);
    if (res==0) {
    a=dc.getS32();
    b=dc.getS32();
    c=dc.getS32();
    d=dc.getFloat();
    Console.WriteLine("FD0: " + a);
    Console.WriteLine("FD4: " + b);
    Console.WriteLine("FD8: " + c);
    Console.WriteLine("FD12: " + d);
    } else
    Console.WriteLine("error "+res+" "+libnodave.daveStrerror(res));

    und wie müsste ich die Funktion umschreiben das ich meine Eingänge z.b von E 0.0 bis E1.7 lesen kann?
    Zitieren Zitieren Zottel  

  5. #15
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Die gelesenen Bytes werden von dem Programm doch als FD0 bis FD12 ausgegeben. "FD" ist nur Englisch für "MD". Also welche Bytes gehören zu MD0 bis MD12? Wieviele sind es? Welche Parameter erwartet die Funktion readBytes() ? Siehe doc/daveReadBytes.html.

    Du merkst wohl an der Art meiner Antwort, daß ich meine, du solltest ein bischen mehr lesen und ausprobieren. Natürlich könnte ich dir mit weniger Worten den modifizierten Programmcode hier hinschreiben.
    Sieh mal meine Lage: Ich bekomme viele Anfragen wegen Libnodave.
    Es kostet auch Zeit, alle zu beantworten. Es ermüdet, wieder das Gleiche zu schreiben. Ich habe Libnodave "verschenkt", aber bin ich deswegen verpflichtet, Zeit und Mühe in die Unterstützung von Anwendern zu stecken?
    Vielleicht sollte ich eine kostenpflichtige Hotline einrichten...

  6. #16
    stblme01 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.01.2008
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für euere Hilfe.

  7. #17
    Registriert seit
    29.07.2010
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich möchte mich da auch mal einklinken. Wo muss in einem C# Projekt die IP eingetragen werden?

    Gruß
    Gindamo

  8. #18
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von Gindamo Beitrag anzeigen
    Ich möchte mich da auch mal einklinken. Wo muss in einem C# Projekt die IP eingetragen werden?

    Gruß
    Gindamo
    Wie ist denn das gemeint? bei dem Beispielprogramm Testiso, oder wo?
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  9. #19
    Registriert seit
    03.10.2005
    Beiträge
    160
    Danke
    17
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo zusammen,
    was haltet ihr davon wenn man dieses Wiki
    http://www.activevb.de/cgi-bin/apiwi...orie:Libnodave
    mit den Usern hier aus dem Forum mal etwas ausarbeiten ?

    Gruß
    Ronnie

  10. #20
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von ronnie.b Beitrag anzeigen
    Hallo zusammen,
    was haltet ihr davon wenn man dieses Wiki
    http://www.activevb.de/cgi-bin/apiwi...orie:Libnodave
    mit den Usern hier aus dem Forum mal etwas ausarbeiten ?

    Gruß
    Ronnie
    Ich denke wenn dann sollte man die Api von libnodave.net.cs beschreiben, dem .NET Wrapper. Die VB6 Deklarationen der C Funktionen fänd Ich unnütz, da VB6 ja eh nicht mehr weiterentwickelt wird. Wenn man das macht, kann man ja gleich die C -Funktionen im Quellcode beschreiben...

    Ich würde dann eher Vorschlagen, bei den Funktionen der libnodave.net.cs XML Kommentar mit /// einzufügen, so das die Funktionen beschrieben sind!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

Ähnliche Themen

  1. Libnodave + Verbindung CPU
    Von Proxy im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 19.03.2011, 18:04
  2. LibNoDave Verbindung trennen
    Von noeppkes im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.11.2008, 10:43
  3. libnodave Verbindung
    Von Mike1972 im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 30.01.2008, 16:54
  4. Libnodave as511 Verbindung
    Von saurugst im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 21.12.2007, 09:49
  5. Anzeige von Libnodave-Verbindung
    Von Human im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 20.07.2007, 22:11

Lesezeichen

Berechtigungen

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