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

Ergebnis 1 bis 7 von 7

Thema: Nur TCP/IP bei Libnodave und Ubuntu Linux

  1. #1
    Registriert seit
    13.01.2010
    Beiträge
    28
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin.

    Hardware: S7-300 313(C), CP 343-1 Lean.

    Betriebsystem: Ubuntu 9.10

    Und zwar ich möchte mit Libnodave arbeiten, aber nur über TCP/IP, also keine MPIAdapter. Das heisst ich brauche die Dateien testISO_TCP.c, testISP_TCPload.c, nodavesimple.h, openSocket.h

    1) Kann ich dadurch den kompleten Zugriff auf der SPS haben, natürlich wenn ich die Programme bearbeite.
    2) Heisst das dass ich die restlichen Dateien wegwerfen kann? Wenn ja, können nicht manche Funktionen da nützlich sein?

    Erstmal nur die zwei Fragen. Danke im voraus.
    Zitieren Zitieren Nur TCP/IP bei Libnodave und Ubuntu Linux  

  2. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Mir ist nicht so ganz klar, wo Dein Problem ist aber ich versuche mal eine Antwort:

    Ich gehe davon aus, dass Du in C arbeiten möchtest und einen Compiler und Linker dafür hast (GNU Linux?).

    Dann mach eine kleine Applikation dazu, binde die gewünschten Files ein und Übersetze und Linke das Ganze.

    Wenn der Compiler sich beschwert, fehlen Dir wahrscheinlich weiter *.h File in Deinen Include Anweisungen.

    Wenn der Linker sich nach erfolgreichem Compiler Lauf meldet, dass ihm zum Auflösen der Verweise was fehlt, dann musst Du die Files mit den fehlenden Verweisen ebenfalls compiliert anbieten.

    Und jetzt Werbung: Ich habe unter "Werbung und Produktneuheiten" hier im Forum vor ein paar Tagen einen Kurs zur Programmierung der Ankopplung angeboten, allerdings C# und .NET.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Einfacher Test  

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Am einfachsten ist folgende Vorgehensweise:
    Wenn du libnodave heruntergeladen und entpackt hast, in das Verzeichnis wechseln und
    Code:
    make all
    make install
    Mit "make all" wird die libnodave.so (Shared Object) erzeugt.
    Mit "make install" wird diese Datei zusammen mit der nodave.h in dein include (/usr/include) und Bibliotheks-Verzeichnis (/usr/lib) kopiert.

    Jetzt schreibst du dein C-Programm, includierst "nodave.h". Damit machst du dem Compiler die Funktionen in der libnodave Shared library bekannt.

    Mal angenommen du hast eine einzelne C-Datei "my_libnodave_test.c" kannst du diese mit:

    Code:
    gcc -Wall -DLINUX -DDAVE_LITTLE_ENDIAN my_libnodave_test.c -lnodave -o my_libnodave_test
    Übersetzen.
    Mit dem Schalter "-lnodave" sagst du dem Linker dass er die Funktionen in der Bibliothek libnodave.so findet.
    Wenn mehr als eine Datei übersetzt und gelinkt werden mache ich das immer mit einem kleinen makefile.

    Wenn du das so machst, kannst du so gesehen die restlichen Dateien von libnodave löschen.
    Geändert von Thomas_v2.1 (27.01.2010 um 19:12 Uhr)

  4. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    jomatic (16.09.2016)

  5. #4
    Registriert seit
    22.06.2003
    Beiträge
    242
    Danke
    9
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Zitat Zitat von Alexandr Beitrag anzeigen
    Moin.

    Hardware: S7-300 313(C), CP 343-1 Lean.

    Betriebsystem: Ubuntu 9.10

    Und zwar ich möchte mit Libnodave arbeiten, aber nur über TCP/IP, also keine MPIAdapter. Das heisst ich brauche die Dateien testISO_TCP.c, testISP_TCPload.c, nodavesimple.h, openSocket.h

    1) Kann ich dadurch den kompleten Zugriff auf der SPS haben, natürlich wenn ich die Programme bearbeite.
    2) Heisst das dass ich die restlichen Dateien wegwerfen kann? Wenn ja, können nicht manche Funktionen da nützlich sein?

    Erstmal nur die zwei Fragen. Danke im voraus.
    Hallo
    zu 1): Ja, soweit eben die Funktionen vorhanden sind. Bspw. lässt sich mit testISP_TCPload.c' natürlich kein Programm wie in Step7 erstellen

    zu 2): Im Prinzip ja, das Meiste davon. Etwas fummelig ist jedoch immer das zugehörige 'makefile' mit entsprechend einzukürzen damit es noch durchläuft. Nach einigen Versuchen benötigt man aber wirklich nur noch 3 oder 4 Dateien 'of all'

    >>> Wenn ja, können nicht manche Funktionen da nützlich sein?
    Das ist eher 'philosphisch' - nämlich auf welche Header man sich stützt. 'NoDaveSimple.h' ist nicht so unbedingt das 'Ding' für S7-300 und wenn ich mich richtig erinnere war für den Lean-Cp eh nodave.h & nodave.c von Nöten. Ist aber schon ewig her wo ich mit den Leans werkelte.

    Alle anderen Dateien (eg. setport.c) besitzen erst wieder Relevanz beim einbinden von Schnittstellen - da gibts so einige denkbare Konstrukte wo die ganz nützlich sind mit (in vielleicht auch leicht geänderter Form) mit zu benutzen und einzubinden.

    Für mich war immer die dickste Hürde in Minimalkonfiguration das Makefile zusammenzubekommen - wenn man das raushat sieht man ja auch was alles über ist

    Gruss
    tobias

  6. #5
    Alexandr ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.01.2010
    Beiträge
    28
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal für eure Antworten.
    Noch eine Frage.
    Ich arbeite in Linux mit C. Ich soll auch später mit PHP und SQLite arbeiten. Ich muss die Prozessdaten von der SPS auslesen, in Datenbank abspeichern im Netz ausgeben.
    Wir bleiben erst mal bei C. Das mit dem make und make install habe ich schon lange gemacht. Die Makefile funktioniert bei mir auch. Ich kann sogar mit dem testISO_TCP.c und IP Adresse meine SPS in Stop und Run setze. Ich mochte die datei isotest4.c testen. In der accepter.c sind die ganze funktionen definiert wie z.B. bind() und listen(). Dort habe ich meine IP Adresse eingegeben. In der Konsole gebe ich die Datei und 80 für port 80. Dann kommt den folgenden Text raus:

    CP-Simulation for ISO over TCP
    Assuming rack 0, slot 2 for simulated device. There's currently no way to change that.

    Main serv: port: 80
    Main serv: Accepter pipe fd: 4
    Main serv: about to select on 3
    accepter.cAccepter : My pipe is:4
    accepter.cAccepter : port 80
    accepter.cAccepter : setsockopt Success
    accepter.cAccepter : bind Cannot assign requested address
    accepter.cAccepter : listen: Cannot assign requested address
    accepter.cAccepter : before accept

    Warum bei bind kommt die Meldung "Cannot assign requested address" raus. Die Adresse ist korrekt und gültig.

    Bitte um Hilfe.

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

    Standard

    isotest4.c ist KEIN Programm, um mit einer S7 zu kommunizieren, sondern um eine S7 teilweise zu simulieren.
    Damit es läuft, muß das Program das Recht haben, den Port [port]zum Hören zu öffnen. Für Ports <1000 braucht es root-Rechte.
    Wenn du mit einer SPS sprechen willst, brauchst du testISO_TCP.
    Lerne erst mal die fertige Version zu benutzen.
    Lerne sie zu kompilieren.
    Ändere sie, wenn du willst.
    Schreiben dein eigenes Programm.

  8. #7
    Registriert seit
    22.06.2003
    Beiträge
    242
    Danke
    9
    Erhielt 19 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    vielleicht passt es hier hin, vielleicht auch nicht. Ubuntu hat da nur insofern zu mit zu tun, weil es für den Prozessor auf den ich hinausmöchte für einen Ubuntu-PC ein fertiges Image für die Entwicklungsumgebung gibt (arv32-linux-gcc ....)
    Ich versuche schon seit gut 1 Jahr (wie üblich erstmal erfolglos ...) für den AP7200(0) im Evalution Board des NGW1000 des AVR32 eine lauffähige 'testISO_TCP' im Verbund des NGW1000 mit einer CPU224XP zu basteln.
    Der erste dicke Hänger war (prinzipbedingt der AVR Entwicklungsumgebung) das riesen Problem überhaupt eine auf dem PC lauffähige GCC-AVR32-Version zu erstellen. Die gelieferte in Ubuntu tat/tut es nicht - aber einem Selbstbaukonstrukt mit SuSe10.3 gelang es dann lauffähige Programme auf dem NGW1000 zu 'fabrizieren'.
    In vielen hunderten Vergleichen mit den Programmen (und Kompilaten) der typischerweise bei uns benutzten ARM-DilNetPC's gelang es nach und nach auch aus libnodave zur CPU224XP via RS485-PPI kommunizierende Progrämmchen zusammenzupfriemeln. Bei dto. über TCP/Ethernet ( via CP243-1xx) bleibt das NGW1000 jedoch üblicherweise stecken und brät dann im eigenen Saft ...
    ... allerdings: Manchmal gehts auch. Jedoch jedesmal, wenn, irreversibel anders
    a) Gibt es noch jemanden der sich zufällig so ganz nebenbei mit dem NGW bzw. Grashopper und 'l_dave' beschäftigt ?
    b) Da NGW und Grasshopper recht günstige und sehr leistungsstarke Linux-Embeddeds und wohl auch full_open_Source sind, wäre das vielleicht auch ein schönes Thema es einmal im (seit gut einem Jahr kostenlos erscheinenden) 'Embedded-Journal' vorzustellen. Ich denke aber dazu sollte es wirklich funktionierende Beispiele geben und letztendlich sollte 'Zottel' das entscheiden. Weil ich mich gerade freue mal wieder druckfrische Beiträge von dir entdeckt zu haben, hänge ich das mal so an diesen Thread an
    Grüsse
    tobias
    Zitieren Zitieren Wenn hier grad das Thema 'Linux-Derivate' auftaucht ...  

Ähnliche Themen

  1. libnodave - linux
    Von waschtl im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 15.12.2010, 17:12
  2. LibNodave 64bit write error on Linux
    Von 3electrons im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 23.04.2010, 19:42
  3. Libnodave, S7-222, Linux, Hilfe?
    Von jestal im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 31.10.2008, 20:41
  4. OPC und Linux
    Von Reto Hasler im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 10.07.2008, 06:32
  5. Antworten: 5
    Letzter Beitrag: 22.11.2006, 21:26

Lesezeichen

Berechtigungen

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