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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

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

  1. #1
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Pfeil


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    eins vorweg: Mein Technikerprojekt ist abgeschlossen und wurde schon von den Lehrern bewertet.
    Als Visu habe ich mir etwas in VB.net und libnodave zusammengebaut und läuft auch echt problemlos!

    Jetzt habe ich Urlaub und im Moment auch keinen Schulstress, darum möchte ich nun versuchen libnodave auf einem ATMega8 oder größer zum Laufen zu bringen.
    Die Sprache C werde ich nach den Ferien intensiv bekommen, jedoch ist mir schon einiges vertraut, da ich für mein Projekt Mikrocontroller in ANSI-C programmiert habe.

    Als Schnittstellenumsetzer soll ein ausgedienter RS232/MPI-Adapter verwendet werden. Demnach muss der ATMega nur RS232 beherrschen.

    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.

    Hat jemand schon mal probeweise versucht libnodave auf einem AVR lauffähig zu machen?
    Ich werde mir mal die Sache nochmals annehmen, denn Zottel hat mir vor längerer Zeit mal kurz geholfen, jedoch aber nicht mit Quellcodes.
    Aus Zeitmangel kam das Thema in die unterste Schublade und nun bin ich wieder daran interessiert.

    Gruß,
    poppycock
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.
    Zitieren Zitieren libnodave und AVR von Atmel, kann man beides verheiraten?  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Hallo poppycock,

    warum willst Du per LibNodave mit dem ATMega kommunizieren? Dann müßtest Du
    auf dem ATMega das nicht offengelegte S7-Protokoll als Server implementieren.
    Denke Dir doch ein eigenes Protokoll aus oder implementiere ein dokumentiertes
    Standard-Protokoll wie RK512 oder besser Modbus-Slave.

    Gruß
    Harald
    Zitieren Zitieren Warum LibNodave?  

  3. #3
    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!

    Zitat Zitat von PN/DP Beitrag anzeigen
    warum willst Du per LibNodave mit dem ATMega kommunizieren? Dann müßtest Du
    auf dem ATMega das nicht offengelegte S7-Protokoll als Server implementieren.
    Das nicht offengelegte S7-Protokoll muss ich doch gar nicht kennen, libnodave macht doch brav seinen Dienst.

    Zitat Zitat von PN/DP Beitrag anzeigen
    Denke Dir doch ein eigenes Protokoll aus oder implementiere ein dokumentiertes
    Standard-Protokoll wie RK512 oder besser Modbus-Slave.
    In meinem Projekt bin ich den Weg über RS485 (nicht PB) gegangen, funktioniert super! Die Kommunikation mit den AVR-Teilnehmern hat ein selbstprogrammierter Baustein in der CPU übernommen.

    Mein Vorhaben:
    Der AVR-Master soll mit dem MPI-Adapter an die S7 angeschlossen werden.
    An dem Master hängen Slaves, die vom Master abgefragt werden.
    Hat der Master die benötigten Daten, soll dieser mittels UART die Daten über den MPI-Adapter an die CPU weitergeben.

    Wenn du aber meinst, dass das nicht so sinnvoll ist, wie wäre dann der Weg über TCP/IP?
    Ein CP343-1 ist vorhanden, ein Switch auch, jedoch kein Mikrocontroller mit Ethernetschnittstelle.
    Bei diesem Weg weiß ich jedoch nicht, wie ich der CPU die Daten übermitteln kann. Ist das genau so wie eine Kommunikation mit RS232?

    So könnte ich wohl auf libnodave verzichten, aber dann ist mir unklar, wie man eine Verbindung zwischen Ethernet-AVR und CP343-1 aufbaut.

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

  4. #4
    Registriert seit
    20.10.2003
    Ort
    Biberach
    Beiträge
    5.068
    Danke
    959
    Erhielt 1.459 Danke für 922 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen

    warum willst Du per LibNodave mit dem ATMega kommunizieren? Dann müßtest Du
    auf dem ATMega das nicht offengelegte S7-Protokoll als Server implementieren.
    Hallo,

    ich denke es soll vom ATMega aus auf eine S7 zugegriffen werden.
    Beste Grüße Gerhard Bäurle
    _________________________________________________________________
    Hardware: the parts of a computer that can be kicked. – Jeff Pesis

  5. #5
    Registriert seit
    20.10.2003
    Ort
    Biberach
    Beiträge
    5.068
    Danke
    959
    Erhielt 1.459 Danke für 922 Beiträge

    Standard

    Zitat Zitat von poppycock Beitrag anzeigen
    ...
    Ein CP343-1 ist vorhanden, ein Switch auch, jedoch kein Mikrocontroller mit Ethernetschnittstelle.
    ...
    Hallo,

    es gibt ja Möglichkeiten, mit dem Atmega an Ethernet zu kommen:

    http://www.mikrocontroller.net/topic/105851
    Beste Grüße Gerhard Bäurle
    _________________________________________________________________
    Hardware: the parts of a computer that can be kicked. – Jeff Pesis

  6. #6
    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.

    Zitat Zitat von Gerhard Bäurle Beitrag anzeigen
    ich denke es soll vom ATMega aus auf eine S7 zugegrifffen werden.
    Ja, das ist richtig, und zwar über den MPI-Umweg!
    Man müsste doch "nur" die Quellcodes für C auf einem ATMega lauffähig machen.
    Den Rest kann man doch vorerst über Makros realisieren, quasi:

    if antwort(Teilnehmer_a)
    {
    libnodave_uart(Daten,Teilnehmer_a);
    }

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

  7. #7
    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

    Zitat Zitat von Gerhard Bäurle Beitrag anzeigen
    es gibt ja Möglichkeiten, mit dem Atmega an Ethernet zu kommen:

    http://www.mikrocontroller.net/topic/105851
    Danke, mir würde spontan dieses in den Sinn kommen:
    http://www.pollin.de/shop/dt/NjI5OTg...rtigmodul.html
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von poppycock Beitrag anzeigen
    Mein Vorhaben:
    Der AVR-Master soll mit dem MPI-Adapter an die S7 angeschlossen werden.
    An dem Master hängen Slaves, die vom Master abgefragt werden.
    Hat der Master die benötigten Daten, soll dieser mittels UART die Daten über den MPI-Adapter an die CPU weitergeben.
    OK, das habe ich so nicht aus Deinem Eröffnungsbeitrag 'rausgelesen.
    Ich hab' da leider was falsches hineininterpretiert.

    Zitat Zitat von poppycock Beitrag anzeigen
    Wenn du aber meinst, dass das nicht so sinnvoll ist, wie wäre dann der Weg über TCP/IP?
    Mein Vorschlag beruhte auf einer Fehlinterpretation Deines Vorhabens.

    Trotzdem finde ich den alternativen Weg über Ethernet besser.
    1. Ich schätze, das ist leichter zu programmieren, als LibNodave für den AVR umzusetzen, auch wenn der C-Quelltext
    vorliegt. Zumindest die Socket-Dienste mußt Du so oder so selber implementieren.
    2. Du wärst nicht mehr auf die Zielplattform S7 festgenagelt und könntest den AVR-Master auch mit anderen Geräten
    und Steuerungen koppeln.

    Zitat Zitat von poppycock Beitrag anzeigen
    Bei diesem Weg weiß ich jedoch nicht, wie ich der CPU die Daten übermitteln kann. Ist das genau so wie eine Kommunikation mit RS232?
    Wenn erst einmal die Verbindung zur S7 aufgebaut ist, dann ist der eigentliche Datenaustausch nicht komplizierter
    als eine RS232-Kommunikation. 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.)

    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.

    Der TCP-Verbindungsaufbau ist relativ einfach, ich würde aber der SPS den aktiven Verbindungsaufbau überlassen:
    http://de.wikipedia.org/wiki/Transmission_Control_Protocol
    Wenn Du nur Einweg-Daten zur SPS übertragen willst, wäre auch das einfache UDP-Protokoll geeignet:
    http://de.wikipedia.org/wiki/User_Datagram_Protocol
    Was in der S7-SPS zu tun ist siehe hier (besonders den Abschnitt Vergleich Protokolle):
    Linkliste SIMATIC-Kommunikation über Ethernet

    Dein Projekt klingt übrigens sehr interessant. Hut ab!
    Und wenn ich das AVR-NET-IO - Fertigmodul von Pollin sehe, da bekomme ich fast Lust, mich selber mal mit den
    modernen Mikrokontrollern zu beschäftigen. Von dem ATMega habe ich bis jetzt so gut wie null Ahnung.

    Gruß
    Harald

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

    Standard

    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. Und es ist ziemlich weit unten im Thread auch eine Version für AVR enthalten.
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Mhhm...  

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    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...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Avr  

Ä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
  •