s5 und libnodave

dirk-t

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

ich möchte gerne den inhalt eines DB aus einer S5 (115) auslesen und in einem perl-programm weiterverarbeiten.

ich habe libnodave erfolgreich auf ubuntu 8.04 (gcc 4.2) übersetzt.
ich habe einen DB1 mit dem PG in einer S5-100, cpu 102 angelegt und werte vorbelegt.
wenn ich auf der kommandozeile (mit einer S5-100, cpu102)
"testAS511 --readDB=1 /dev/ttyS0" eingebe, bekomme ich als ausgabe lediglich

"IO Possible" zurück.
diese Meldung bekomme ich auf jede option, die ich angebe.

ändere ich beim aufruf testweise die schnittstelle in /dev/ttyS1 bekomme ich eine fehlermeldung (na logisch).
also ist irgendeine kommunikation da.

wie muss ich jetzt das testprogramm erweitern/ändern, wenn ich den DB auf STDOUT
bekommen will ? wie ich die länge einstelle, habe ich schon gefunden.

(ohne ein C-Kurs belegen zu müssen):confused:


grüsse
dirk t.
 
Zu Linux kann ich nichts sagen, aber als Vorschlag. Probier doch erstmal mit der mitglieferten test.exe und Dos/windows aus, ob die Verbindung funktioniert und du Daten auslesen kannst. Dann weißt du, ob deine Umsetzung Probleme macht oder die Verbindung im Allgemeinen.

Mußte man die CPU102 nicht erst in einen speziellen Online-Modus bringen?

/Edir Hab den Link gefunden. Schau mal hier: http://www.sps-forum.de/showpost.php?p=96485&postcount=5
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe libnodave erfolgreich auf ubuntu 8.04 (gcc 4.2) übersetzt.
Im Zweifelsfall benutze lieber die vorkompilierten Testprogramme (testAS511) und Bibliothek (libnodave.so). Die sind alle auch für Linux dabei.
ich habe einen DB1 mit dem PG in einer S5-100, cpu 102 angelegt und werte vorbelegt.
mit der 102 weiß ich nicht Bescheid, aber weil Ralle was dazu schreibt, mein ich auch, da war was...
Im Übrigen ist es immer einfache, erstmal ein paar Merker auszulesen, die hat jede CPU.
wenn ich auf der kommandozeile (mit einer S5-100, cpu102)
"testAS511 --readDB=1 /dev/ttyS0" eingebe, bekomme ich als ausgabe lediglich
"IO Possible" zurück.
Das scheint mir keine Meldung von Libnodave zu sein. Schau mal, ob du Rechte genug hast, um /dev/ttyS1zu lesen und zu schreiben. Führe testAS511 als root aus.

wie muss ich jetzt das testprogramm erweitern/ändern, wenn ich den DB auf STDOUT
bekommen will ? wie ich die länge einstelle, habe ich schon gefunden.
(ohne ein C-Kurs belegen zu müssen):confused:
Wenn du Perl verwenden wills, schau dir das Perl-Beispiel an, dann brauchst du kein C!
Deine Baustein kriegst du nach STDOUT entweder so wie du es willst und programmierst oder gar nicht. Soll heißen, es gibt keine direkte Methode dafür. Libnodave stellt dir die Abfolge von Bytes im DB (oder einen Teil davon) als Kopie im Speicher deines Programms zur Verfügung.
Wenn du diese Bytes (als Zahlen, Zeichen,int, word, real ?) nach STDOUT schreiben möchtest, kannst und mußt du das selber erledigen. Libnodave hilft dir noch, häufig benutzte Variablentypen in PC-Darstellung zu wandlen.
 
hallo,

mit der testAS511 funzt es unter winxp, auf einem field-pg, an einer cpu 100 (nicht 102 sorry).

werde es morgen mal mit nem esternen rs232<>tty adapter versuchen.

zu Perl:
im perl-test scheint man das AS511 weggelassen zu haben, braucht vielleicht keiner mehr ?

bis dann
dirk t.
 
erfolgreich getestet

hallo,

habe einen wesentlichen fehler herausgefunden:
es liegt an der distribution, oder zumindest an den voreinstellungen.
ich habe auf einer freien partition debian (etch) installiert.
und schon laufen die programme libnodave und libnodave-s5 wie erwartet, bzw. beschrieben. habe es sowohl mit einem usb<>tty als auch rs232<>tty adapter am laufen.

mfg
dirk t.

ps: habe noch einen beitrag über rk511-server von emig gelesen und hatte auch ein wenig erfolg damit.
 
Zurück
Oben