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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: libnodave und AVR von Atmel, kann man beides verheiraten?

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.327
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von poppycock Beitrag anzeigen
    Mein Problem liegt darin, dass libnodave eine dll benötigt, die ich nicht auf den AVR dynamisch verlinken kann, da auf dem µC kein OS laufen soll.
    Gruß
    Harald
    Zitieren Zitieren Der Compiler ist nicht das Problem ...  

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

    Standard

    Ah so....

    Aber welche DLL braucht den Libnodave? Man müsste sich halt eine Version von setport schreiben, welche irgenwie die avr schnitstelle benutzt und vielleicht noch was an den seriellen verbindungen anpassen, oder? Die ganze TCP/IP geschichte kann man ja weglassen...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Ah...  

  3. #13
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Hallo.

    @PN/DP:
    Danke für die Links, die sind sehr informativ!
    Was meinst du mit "Der Compiler ist nicht das Problem ..."?
    Bin ich das Problem oder die dll?
    Man müsste die Befehle aus der dll rausschreiben und "statisch" einbinden.

    @Jochen Kühner:
    Könntest du mir dabei helfen?
    Ich brauche nur die MPI-Schnittstelle (original Siemens MPI-Adapter).
    Es wird die libnodave.dll benötigt.

    Zitat Zitat von PN/DP Beitrag anzeigen
    OK, das habe ich so nicht aus Deinem Eröffnungsbeitrag 'rausgelesen.
    Ich hab' da leider was falsches hineininterpretiert.
    Macht nichts, bin doch auch für jeden Denkanstoß dankbar!

    Zitat Zitat von PN/DP Beitrag anzeigen
    Allerdings geht das Daten-Empfangen der S7 nicht ohne deren Zutun. In der Ziel-SPS
    muß der Daten-Empfang programmiert werden. (Bei LibNodave müßte in der S7 nichts programmiert werden.)
    Jetzt, nachdem ich eine Nacht darüber geschlafen habe, möchte ich doch nicht in die Hardwarekonfig der S7 eingreifen.
    Es soll nach dem Motto: "Anstöpseln und freuen" funktionieren.
    Eine Kommunikation ist nur mit einer S7 vorgesehen.
    Es ist weder eine Schulaufgabe noch eine betriebliche. Ich interessiere mich halt dafür, wie die Daten von A nach B geschoben werden können.
    Der Weg, wie das passiert, ist im Grunde egal. Dabei muss man aber Vor- und Nachteile der Wege beachten.
    Habe halt gedacht, wenn ein PC diesen libnodave-MPI-Datenaustausch hinbekommt, könnte doch auch ein AVR eingesetzt werden.

    Zitat Zitat von PN/DP Beitrag anzeigen
    Um der S7 die Auswertung der Empfangsdaten einfacher zu machen, würde ich zyklisch ein Telegramm fester Länge mit den Daten von den Slaves senden. Eventuell noch ein kleines "Verwaltungs-Protokoll" in die Telegramme legen, falls ein einziges Telegramm mit dem festen Aufbau für Dein Vorhaben nicht geeignet ist.
    Für den S7-Programmierer ist es einfacher, wenn die Telegramme alle die gleiche Länge haben.
    Das stimmt! Habe ich selber gemerkt und musste im SPS-Programm eine Art "Verwaltungsprotokoll" (ist aber sehr einfach gehalten) entwickeln.

    Zitat Zitat von PN/DP Beitrag anzeigen
    Dein Projekt klingt übrigens sehr interessant. Hut ab!
    Danke! Weiter unten beschreibe ich den Datenaustausch in meiner Projektarbeit.

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Da könnt Ich noch diesen Thread empfehlen:
    http://www.mikrocontroller.net/topic/106174
    Dort gehts zwar um einen pprofibus Slave an der S7 CPU, aber so kann man ja auch daten austauschen.
    Danke für den Link, werde mir das Thema reinziehen.
    Zu beachten ist aber, dass ich dann die PB-Schnittstelle nicht auf "highspeed" laufen lassen kann, wenn die AVR-Slaves "nur" mit 19,2k senden.
    Hier im Forum gibt es auch einen sehr guten Thread, der das Thema "Profibusteilnehmer selber bauen" behandelt.

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Und ist in der libnodave nicht schon irgendwas für den AVR ausgelegt??
    Zumindest gibt es AVR als Compilerschalter in der nodave.h und nodave.c...
    Habe ich eine veraltete libnodave-Version?
    Ich finde den Compilerschalter nicht. Außerdem habe ich mit diesen Schaltern noch nichts gemacht.
    Muss man da etwas einstellen? Ich hatte mal probiert den Source im AVR-Studio zu kompilieren, da kam aber die Meldung, dass das OS nicht bekannt sei.

    ------------------------------

    Nun aber zu der Datenübertragung in meiner Projektarbeit...
    Die Arbeit wurde zwar schon bewertet, aber ich kenne das Ergebnis noch nicht.
    Allerdings gingen bei den Lehrern alle Daumen nach oben, von daher kann ich wohl mit mindestens einer 3 rechnen!
    Darum kann ich noch nicht das Gesamtergebnis mitteilen, will ja auch nicht, dass ich Konkurrenz aus meiner Klasse bekomme!
    Anbei ist ein handgezeichneter Schaltplan, der den AVR mit der Beschaltung für die Kommunikation zeigt.
    In meinem Projekt verwende ich keinen Stromsensor mehr, aber die Beschaltung habe ich für jeden Slave übernommen.
    Die AVR-Slaves arbeiten als RS485-Teilnehmer, an der S7 hängt aber ein CP340 (RS232).
    Darum musste ich einen RS232/RS485-Umsetzer selber bauen. Funktioniert ohne Probleme.
    Da der Umsetzer relativ einfach gehalten wurde und die Datenleitungen nicht umschalten, musste ich darauf das Protokoll anpassen.
    Schlimm ist die Anpassung nicht, die kommt mir sogar entgegen:
    Die S7 spricht den ersten Teilnehmer an und sendet ein a auf den Bus.
    Das a wird wegen der fehlenden Umschaltung der Datenleitung sofort an die S7 zurückgegeben.
    Wenn nun der Teilnehmer a antwortet, sendet dieser seine Busadresse 'a' mit Daten in 'ASCII' und einem Stopzeichen '#'.
    In der SPS liegt dann z.B. folgendes vor: aa1023#
    Die S7 prüft das erste gesendete Zeichen mit dem zweiten. Stimmen diese überein, wird der Wert ab dritter Stelle bis zur Raute übernommen und in einen DB als Integer gespeichert.
    Sollte, nachdem das erste Zeichen empfangen wurde, innerhalb von 20ms keine Antwort vom angesprochenen Busteilnehmer erfolgen, wird der nächte Busteilnehmer angesprochen.
    Somit kann ich prüfen, ob der angesprochene Slave antwortet oder dieser gar ganz fehlt.
    Der Master ist einzig und allein der CP340.

    Gruß,
    poppycock
    Angehängte Grafiken Angehängte Grafiken
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

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

    Standard

    Zitat Zitat von poppycock Beitrag anzeigen
    @Jochen Kühner:
    Könntest du mir dabei helfen?
    Ich brauche nur die MPI-Schnittstelle (original Siemens MPI-Adapter).
    Es wird die libnodave.dll benötigt.
    Hab das eigentlich nur mal als Idee gebracht, um auf Reaktionen zu warten ob das so gehen könnte... Hab in letzter Zeit nicht so viel mit den AVRs gemacht, denke nicht das Ich dir da im Moment weiterhelfen kann.

    ich denke du musst halt dafür sorgen das was in libnodave in den seriell funktionen mit
    di->ifwrite(di, (char*)target, targetSize);
    geschrieben wird über die serielle SChnitstelle des AVRs geht.

    Und genau so das was mit
    i=di->ifread(di, &res,1);
    halt vom AVR gelesen wird.

    Ich weis nicht ob das alles machbar ist, sind nur Ideeen..

    Zitat Zitat von poppycock Beitrag anzeigen
    Habe ich eine veraltete libnodave-Version?
    Ich finde den Compilerschalter nicht. Außerdem habe ich mit diesen Schaltern noch nichts gemacht.
    Muss man da etwas einstellen? Ich hatte mal probiert den Source im AVR-Studio zu kompilieren, da kam aber die Meldung, dass das OS nicht bekannt sei.
    So wies aussieht (und Ich den Kommentar von PN/DP richtig verstanden habe) sind die Defines mit AVR nur dafür da wenn auf dem AVR ein OS läuft!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. #15
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Hallo Jochen Kühner,

    danke für deine Ideen.

    Die Hardware kann ich doch schon mal aufbauen.
    Habe einen AVR mit zwei UART's, der könnte als intelligenter RS485/RS232-Umsetzer werkeln.
    Somit müsste ich NICHT in die bestehenden AVR-Slaves eingreifen und kann alles so lassen, wie es ist.
    Das Protokoll in der SPS muss ich dann aber auf den Umsetzer portieren.
    Würde dem Umsetzer auch ein Display spendieren, auf dem der Status der Slaves zu sehen ist. Außerdem soll mit dem Display eine Datenbaustein-Einstellung vorgenommen werden können.
    Der intelligente Umsetzer kann dann die Daten von den Slaves aufbereiten und in den DB übertragen.

    Aufbau des Datenbausteins:
    DBW0: Status (welche Teilnehmer aktiv vorhanden sind)
    DBW2: Daten Teilnehmer 1 'a'
    DBW4: Daten Teilnehmer 2 'b'
    ...
    DBW52: Daten Teilnehmer 26 'z'

    Was wäre dann intelligenter, erst alle Daten von den Teilnehmern sammeln und gemeinsam in einen DB schieben oder die Daten der Slaves sofort in einen DB schreiben?

    Gruß,
    poppycock
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

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

    Standard

    Also Ich habs jetzt geschaft mit ein paar ifndef libnnodave mit dem avr-gcc zu kompilieren. Ich denke dann müssen vieleicht nur noch stdread und stdwrite so angepasst werden das sie den AVR seriell Port verwenden... Kann da aber für nichts garantieren. Und kann dir auch nicht sagen wie du die funktionen anpassen musst... Aber wenn du willst lad Ich die meine libnodave und die Anweisungen zum kompielieren mal hoch...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  7. #17
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Hallo Jochen.

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Also Ich habs jetzt geschaft mit ein paar ifndef libnnodave mit dem avr-gcc zu kompilieren. Ich denke dann müssen vieleicht nur noch stdread und stdwrite so angepasst werden das sie den AVR seriell Port verwenden... Kann da aber für nichts garantieren. Und kann dir auch nicht sagen wie du die funktionen anpassen musst... Aber wenn du willst lad Ich die meine libnodave und die Anweisungen zum kompielieren mal hoch...
    Es wäre super, wenn du deine Version für den AVR hochladen würdest.
    Denn um die Software habe ich mich noch nicht gekümmert, werde ich aber bald wieder tun (müssen)!

    Vielen Dank schonmal,
    poppycock
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

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

    Standard

    Zitat Zitat von poppycock Beitrag anzeigen
    Hallo Jochen.



    Es wäre super, wenn du deine Version für den AVR hochladen würdest.
    Denn um die Software habe ich mich noch nicht gekümmert, werde ich aber bald wieder tun (müssen)!

    Vielen Dank schonmal,
    poppycock
    Also mach heut im laufe des Tages... Aber wie gesagt, Ich weiss nicht ob das dann geht, und du musst auf jeden fall die 2 genannten Funktionen anpassen, da Ich diese nur als leere Funktionen implementiert habe. Und noch was, kompiliert ist das ganze bei mir 116kb groß, aber man kann bestimmt noch ein paar funktionen ausklammern...
    ---------------------------------------------
    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
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.759
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    So hier mal. Kompiliert, aber ob man damit was anfangen kann, kann Ich dir nicht sagen. Du musst den Include Pfad im Makefile noch abpassen! und die 2 Funktionen in nodave.c für serielles senden und empfangen müssen auf jeden fall noch implementiert werden! (Die 2 welche zwischen dem define avr_noos liegen)
    Angehängte Dateien Angehängte Dateien
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    poppycock (01.07.2010)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Von http://www.mikrocontroller.net/artic..._.28Strings.29
    kann man sich vielleicht die sende und empfangsfunktion klauen...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Nochwas...  

Ähnliche Themen

  1. Moeller XC 201 mit C# Visualisierung verheiraten
    Von TTNK im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 26.04.2011, 16:34
  2. S7-315 mit Fanuc R-I3IB verheiraten
    Von chrismey im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.07.2007, 21:10
  3. Libnodave Versuch scheiterte wer kann Helfen
    Von Otto im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 22.03.2007, 08:43

Lesezeichen

Berechtigungen

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