LibNoDave kompilieren auf raspberry pi?

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo!

Mein Anliegen steht eigentlich schon im Titel.
Ich bekomme nächste Woche (hoffentlich) meinen raspberry pi geliefert und möchte ihn nutzen um verschiedene Daten aus der SPS (315 2PN/DP) auszulesen und zusammen mit ein paar Temperaturwerten als Auswertung auf einem Webserver darzustellen. Ähnlich zu http://www.notdefine.de/projects.php?project=heizungssteuerung-mit-linux-ubuntu-arm
Nur möchte ich nichts steuern, sondern nur Werte protokollieren und im Heimnetzwerk darstellen können.

Hat schon mal jemand versucht libnodave auf einem ARM-Prozessor zu kompilieren?

Über Erfahrungen würde ich mich freuen!

Bernhard
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Ich habs schon mal für einen AVR compiliert, aber nie verwendet (da Ich kein Serielles Interface hatte!).
Abe runter Linux läufts, und mit dem IOS Sdk lässts sich auch kompilieren und unter einem IPhone verwenden!
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
Hat geklappt! :D Verbindung mit testISO_TCP war möglich.
Man muß nur im Makefile eine Zeile aktivieren und schon klappt es wie auf einem normalen Linux Rechner!
Das neu kompilieren von testISO_TCP.c war aber nicht so einfach möglich - ging aber nach etwas Recherche dann auch.
Hat es jemand schon mal unter PHP oder Python zum laufen gebracht?
 

phyrexianer

Member
Beiträge
13
Punkte Reaktionen
0
Super... ich bekomme meinen pi auch in den nächsten Tagen und wollte auch was von der CPU lesen....

kannst du mir vielleicht im Vorfeld sagen auf was ich da achten soll bzw. wie ich das ganze hinbekomme, vielleicht ein kleines Tutorial ?

gruß
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Super... ich bekomme meinen pi auch in den nächsten Tagen und wollte auch was von der CPU lesen....

kannst du mir vielleicht im Vorfeld sagen auf was ich da achten soll bzw. wie ich das ganze hinbekomme, vielleicht ein kleines Tutorial ?

gruß

Sorry für die späte Antwort, bin leider nicht früher dazu gekommen.

Ich wollte am Wochenende sowieso die SD-Karte nochmal neu aufsetzen und die Schritte protokollieren.
Alles in allem hat es gut geklappt. Bin allerdings weder ein Linux, noch ein C oder Script Spezialist ;-)
Werde mich dann hier melden.

Bei direkten Fragen einfach nochmal melden!

Bernhard
 

phyrexianer

Member
Beiträge
13
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Das ist ok.... ich bin auch kein Programmiergenie, aber wenn einer schon mal was grobes vorgeben kann, kann man ja hier und da vielleicht auch zusammen arbeiten bzw. die Erfahrungen teilen *ggg*
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Hallo,

hier nochmal kurz die Vorgehensweise. Ich lese im Moment über einen cronjob alle 10 Minuten Werte aus der SPS und schreibe sie in eine rrd Datenbank und syncronisiere 1x am Tag die Uhr des raspberry mit der SPS.
Außerdem ist noch ein Webserver mit php installiert. Die von rrd erzeugten Grafiken werden im Webserver eingebunden und sind so abrufbar.
Im Moment werden Gas und Außentemperatur (DS18S20) geloggt, die Bauteile für einen Lesekopf am Stromzähler liegen schon im Keller.

libnodave auf raspberry kopieren nach /home/pi/sps



Datei Makefile öffnen
nano /home/pi/sps/Makefile


Zeile 24 enablen

CFLAGS+=-DARM_FIX


#
# The following is needed to enable workarounds for statements that do
# not work on (some?) ARM processors:
# It also helped on some machine running HP-UX.
#
CFLAGS+=-DARM_FIX

Kompilieren:

make



sudo make install



Testen von libnodave durch:

./testISO_TCP 192.168.1.100



Ausgabe sollte ähnlich aussehen:

Connected.

Trying to read 64 bytes (16 dwords) from data block 1.

DB1:DW0: 0

DB1:DW1: 1

...

DB1:DW32: 1

Trying to read 16 bytes from FW0.

FD0: 43384832

FD4: 0
FD8: 0
FD12: 0.000000
Finished.


C Programm umschreiben nach Bedarf kompilieren durch den Befehl:
gcc -Wall -DLINUX -DDAVE_LITTLE_ENDIAN programm.c -lnodave -o programm
 

tomatensaft

Well-known member
Beiträge
159
Punkte Reaktionen
5
Hallo scrolllock,

das klingt ja wirklich super.

Kannst du mal den Teil posten mit der Kommunikation SPS <-> Rdd DB ?
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

da gibt es nicht viel zu posten.
Ich lese mit einem C-Programm über libnodave die Werte aus der SPS aus und lege sie in eine lokale Datei.
Von hier holt sie ein script ab und schreibt sie in eine rrd Datenbank.
Beides geschieht über Cronjobs.

Nicht sehr elegant. Vielleicht ändere ich das noch, damit alles in einem python Programm läuft.
 

emilio20

Well-known member
Beiträge
825
Punkte Reaktionen
20
Hallo
was für eine Datei Kopiert Ihr aud das Pi ? Ich habe den Ordner libnodave-0.8.5
in diesem befindet sich der ordner usb2mpi-Linux-2.6,

Welche Datei muss kopiert werden ?
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10

emilio20

Well-known member
Beiträge
825
Punkte Reaktionen
20
Hallo scrolllkock

Ich versuche auf einen Arduino Yun auf der Linux seute Libnodave einzurichten. Ich habe den Ordner Libnodave nach root kopiert und die Datei CFLAGS+=-DARM_FIX in Makefile abgeändert. Jetzt kommten die Punkte make, sudo make install . Was muss ich da genau machen ?




Hallo,

hier nochmal kurz die Vorgehensweise. Ich lese im Moment über einen cronjob alle 10 Minuten Werte aus der SPS und schreibe sie in eine rrd Datenbank und syncronisiere 1x am Tag die Uhr des raspberry mit der SPS.
Außerdem ist noch ein Webserver mit php installiert. Die von rrd erzeugten Grafiken werden im Webserver eingebunden und sind so abrufbar.
Im Moment werden Gas und Außentemperatur (DS18S20) geloggt, die Bauteile für einen Lesekopf am Stromzähler liegen schon im Keller.
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Zuviel Werbung?
->Hier kostenlos registrieren
make clean, damit die x86-linux-files gelöscht werden-
make.
Es gibt kein make install.
Wenn du die neueste Version 0.8.5 nimmst, kannst du dir auch das CFLAGS+=-DARM_FIX sparen.
 

emilio20

Well-known member
Beiträge
825
Punkte Reaktionen
20
Hallo
ich verstehe das noch nicht so ganz.

Wie genau muss ich mit der Date 0.8.5 vorgehen ?

Was muss ich wohinKopieren ? Muss ich irgentetwas Installieren ?


Es gibt für Linux in Python Programm.

https://github.com/netdata/python-libnodave

Wäre super wenn mir jemand genau erklären könnte wie ich vorgehen muss damit Libnodave auf dem Linux System richtig istalliert ist.
 

Anhänge

  • Arduino yun.JPG
    Arduino yun.JPG
    53 KB · Aufrufe: 38
Zuletzt bearbeitet:

aticio

Member
Beiträge
12
Punkte Reaktionen
0
Hallo.
Habe versucht libnodave nach der Anleitung auf Seite 1 dieses Threads auf einem Raspberry zu builden.
Leider bekomme ich bereits beim "make" folgende Fehlermeldungen:
cc -m64 -Wall -Winline -DLINUX -DDAVE_LITTLE_ENDIAN -fPIC -DARM_FIX -m64 -Wall -Winline -DLINUX -DDAVE_LITTLE_ENDIAN -fPIC -c -o openSocket.o openSocket.c
cc1: error: unrecognized command line option â-m64â
cc1: error: unrecognized command line option â-m64â
make: *** [openSocket.o] Fehler 1

Ein Ändern der option -m64 auf -m32 bringt nichts.

Hat hier irgendjemand eine Idee und könnte mir Tipps geben was zu tun ist?
Vielen Dank schon mal im Vorhinein!
LG
 
OP
S

scrolllkock

Well-known member
Beiträge
112
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

leider kann ich nur wiederholen was auf Seite 1 steht - bei mir hat das genau so funktioniert.
Welche Version von libnodave nimmst du? Wo ist libnodave abgelegt? Evtl. mal eine ältere Version probieren.
 

aticio

Member
Beiträge
12
Punkte Reaktionen
0
Hallo.
Danke für Deine Antwort.
Ich habe die aktuelle Version von libnodave versucht.
(Welche hast du in Verwendung?)
Muss man den Gnu Compiler am Raspberry ev. installieren oder ist der bereits installiert?
(ich nehme an er ist installiert sonst würde make gar nix tun oder?)
Muss man das #define für Linux irgendwo einstellen?
LG
 

volker

Supermoderator
Teammitglied
Beiträge
5.483
Punkte Reaktionen
940
... die Bauteile für einen Lesekopf am Stromzähler liegen schon im Keller.
Jetzt wo der etwas ältere Thread nach oben gerutscht ist.

Kannst du mal eine Bauteilliste und das layout von dem ding posten?
Ich nehme an, daß du den roten Streifen auf der Scheibe damit erfaßt.

Falls jmd ein fertiges Teil kennt welches das macht immer her mit der Info.

Also für mich wäre am besten was mit 24V. soll halt in eine sps.
 
Oben