libnodave: Verbindung PC mit CPU 300/400

Zuviel Werbung?
-> Hier kostenlos registrieren
Die links funktionieren irgendwie nicht, weiß auch nicht wieso
ich weiß ja was ich will: einen unbekannten DB auslesen
wenn ich die werte in eine csv Datei schreibe, muss ich die ja jedes mal neu erzeugen wenn sich Werte verändern.
Mein Ziel ist es nämlich den DB1 auszulesen und dann die Werte an ein anderes Programm (XMAT) weiterzuleiten. Dafür brauche ich halt immer die aktuellen werte
 
Nein du sollt nicht die Werte aus der CSV nehmen, sondern nur die Struktur des DB, damit du keinen unbekannten DB hast, sondern einen bekannten. Wir reden gerade aneinander vorbei. Du musst doch die Adressen in dem DB errechnen, oder irgendwie bekommen. Und das könntest du über die CSV machen!

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Achso ja cool, jetzt habe ich verstanden.
Gut und die Struktur/Aufbau, den DB's kann ich also mit einen csv-Parser auslesen ja?
Und im nächsten Schritt würde ich dann die csv auslesen und dann eine Fallunterscheidung machen, wie ich auslesen möchte oder wie? (also ob BOOL, INT, REAL etc.)
 
Du hast ja meine angehängten Grafiken.

Es werden dann in etwa solche Einträge kommen

DBARRAY[0,0]= INT1
DBARRAY[0,1]= INT

Das heißt für dich das erste element heißt INT1 (kann auch Test, ABC, ... heißen)... und ist von Typ Integer.
Damit weist du, dass es 2 Byte lang ist etc... und so hangelst du dich da durch!

Wichtig ist: Wenn du einen Programmierer hast der nicht aufpasst kann es passieren das er bei geraden Bytes im DB aufhört. Entweder Programmierer schlagen, oder mit viel Aufwand abfangen.

(Hierzu mache ich kurz nen Beispiel und hänge es an!)

So das Beispiel ist dabei! Du siehst das die neue INT-Variable bei 20 und nicht bei 19 beginnt. Neue Variablen eines anderen Dateityps beginnen immer bei geraden Adressen!

Grüße

Marcel
 

Anhänge

  • DB1_ACHTUNG.png
    DB1_ACHTUNG.png
    14,6 KB · Aufrufe: 8
Zuletzt bearbeitet:
Danke das du so geduldig mit mir bist.
Bin was Programmierung angeht noch nicht so erfahren. Also jetzt nochmal für mich.
Wie erzeuge ich jetzt die CSV-Datei? Mit einem Parser lese ich sie aus richtig?
Und in meinem Programm überprüfe ich, um was für einen Datentyp es sich handelt und rufe dann die entsprechenden Methodenb von libnodave auf, richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist ja kein Problem ;) Wir haben alle mal klein angefangen!

Wie ich die CSV erzeuge, habe ich dir schonmal erzählt.

Ich öffne den DB1 in Step7. Markiere ihn (Strg + A) kopiere (Strg + C) und füge
das in Excel ein. Dann mache ich bei Excel Datei -> Speichern unter -> (Unten Datenformat CSV(MS-DOS)).

Mit allem weiteren hast du Recht!

Grüße

Marcel
 
Achso gut, also hab ich das doch richtig verstanden. Muss die csv. Datei also per Hand erzeugen.
Kann man das nicht irgendwie automatisch machen?
Weil mein Programm soll ja auch etwas benutzerfreundlich werden und wenn der Benutzer jedesmal erst die .csv selber erzeugen muss ist das etwas unglücklich.
Sorry nichts für ungut... :)
 
Wie gesagt. In der CPU sind die Symbolkommentare nicht vorhanden.
D.H. da steht nur

VAR0 INT
VAR1 INT
VAR3 INT
VAR4 REAL
VAR5 REAL
...

Kannst du daraus ableiten wo du deine Infos zuordnen musst?

Grüße

Marcel
 
ja aber das reicht doch oder? Die Symbolkommentar brauch ich ja eigentlich auch nicht
habe dann ja auch die reihenfolge der vorhandenen Datentypen...
Jetzt halt nur die Frage ob das geht diese Struktur auszulesen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh das wird ne schwere Geburt :-D

Ok nehmen wir an du konntest jetzt die Variablen so auslesen. Wie weist du was du mit den Variablen machen musst?
Oder speicherst du die nur weg? Du musst ja irgend nen Bezug haben, um mit den Variablen etwas anfangen zu können.

Grüße

Marcel
 
Mir reicht es die Adressen mit Zuständen zu wissen (Beispiel: DB1.DBD34 hat den Wert: 1234,56) und den will ich an ein anderes Programm (XMAT) weitergeben.
XMAT ist alternatives Programm zu Erzeugung von S7-Bausteinen. Das bedeutet die Adresse DB1.DBD34 gibt es auch in XMAT. Ich muss also die einzlnen Wert nur weitergeben.
 
@Derik87

Schau dir doch mal meine ConnectionLib an.

Da gibts eine Applikation "WPFToolBox", mit der kannst du die Online DBs auflisten, und deren Struktur auslesen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Jochen

Danke schonmal für deinen Beitrag. Deine Applikation ist echt gut. Kann ich eigentlich dann auch die ausgelesene Struktur weiterverarbeiten?
Ich muss ja die Struktur haben um dann in meinem C-Programm die entsprechenden Funktionen aufrufen muss (BOOL, REAL usw.).
Weil jedes mal per Hand das Programm an die neue Addressenstruktur anpassen ist ja auch etwas mühsam
 
@Jochen

Danke schonmal für deinen Beitrag. Deine Applikation ist echt gut. Kann ich eigentlich dann auch die ausgelesene Struktur weiterverarbeiten?
Ich muss ja die Struktur haben um dann in meinem C-Programm die entsprechenden Funktionen aufrufen muss (BOOL, REAL usw.).
Weil jedes mal per Hand das Programm an die neue Addressenstruktur anpassen ist ja auch etwas mühsam

Kapier nicht ganz was du meinst! Du bekommst ein Objekt, mit dem kannst du machen was du willst...
 
Zurück
Oben