S7 Libnodave und Excel

uz71

Level-1
Beiträge
100
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo wer kann mir sagen wie ich mit Libnadave die Daten aus einem DB in Excel inportieren kann

Die Verbindung soll über TCP/IP erfolgen
CPU ist eine S7 315 2PN/DP

Daten liegen im DB84 ab byte 0 bis byte 200

Die Testprogramme habe ich schon ausgeführt und die Verbindung wird auch mit dem Testprogramm aufgebaut. Leider bekomme ich das ganze nicht mit MS Excel zum laufen.
Gruss
uz
 
in dem ordner ist ne readme datei dabei wo alles beschrieben ist, habe das programm gerade mal getestet mit (s7online) und wenn ich versuche daten auszulesen, kracht mir das programm nach jedem 3. durchlauf zusammen.
hat da vielleicht jemand ne erklärung?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich bekomme das einfach nicht hin ( bin kein VB Freund) mit dem Libnodave und Excel, ich weis nicht wo ich die Parameter wie zb. IP Adresse und zu lesender Datenbereich übergeben muss.

Ich denke, dass Libnodave für die 10 bis 20 Daten die ich aus der S7 lesen will die Günstigste Lösung ist.
Gruss
uz
 
ich hänge mich mal mit meiner Frage, passend zum Thema Exel dran!


Ist es möglich auf ein Panel das unter dem Betriebssystem Windows CE läuft eine entsprechende Version von Exel zu installieren? dieses dan in ein SPS programm einbindet und dadurch eine Verbindung zu einem externen PC/PG sparen kann?
Ich könnte dan eine Verbindung über USB zu einem Drucker aufbauen ...

Verbessert mich wenn ich falsch liege! müsste aber doch möglich sein!
 
uz71 schrieb:
Hallo
Ich bekomme das einfach nicht hin ( bin kein VB Freund) mit dem Libnodave und Excel, ich weis nicht wo ich die Parameter wie zb. IP Adresse und zu lesender Datenbereich übergeben muss.uz

Hallo,
dann einfach mal direkt bei Zottel fragen:
http://www.sps-forum.de/member.php?u=30

uz71 schrieb:
Ich denke, dass Libnodave für die 10 bis 20 Daten die ich aus der S7 lesen will die Günstigste Lösung ist. uz

Nur bezogen auf die Lizenzkosten - ja. Ist aber
unabhängig von der Datenmenge.


Viele Grüße

Gerhard Bäurle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einstein schrieb:
ich hänge mich mal mit meiner Frage, passend zum Thema Exel dran!

Ist es möglich auf ein Panel das unter dem Betriebssystem Windows CE läuft eine entsprechende Version von Exel zu installieren? dieses dan in ein SPS programm einbindet und dadurch eine Verbindung zu einem externen PC/PG sparen kann?
Ich könnte dan eine Verbindung über USB zu einem Drucker aufbauen ...

Verbessert mich wenn ich falsch liege! müsste aber doch möglich sein!

Hallo,

ja, ich Excel schon auf einem WinCE 3.0-Rechner gesehen.
Hat das Panel eine S7-Anbindung mit offener
Schnittstelle?

Falls nicht, in Kürze gibt es das oben erwähnte AGLink
für Linux und Windows CE. :)

Viele Grüße

Gerhard Bäurle
 
@uz71

Da ich alles mit Delphi mache und auch kein VB-Fan bin, kann ich dir leider nicht viel mehr helfen, was Excel betrifft. Es wird sicher noch jemand anderes in Forum damit gearbeitet haben.
 
Hat denn wirklich keiner erfahrung mit Libnodave und Excel?

Ich habe jetzt nochmals den gaanzen Tag versucht einen Weg zu finden allerdings nochmal ohne Erfolg.......

Gruss
uz
 
Zuviel Werbung?
-> Hier kostenlos registrieren
uz71 schrieb:
Hat denn wirklich keiner erfahrung mit Libnodave und Excel?
Doch, gibt es einige hier. Besser wäre die Frage in "Hochsprache & OPC"
aufgehoben. Bitte Sie doch Markus oder Lorenz den Beitrag dort hinzuschieben.

Oder Sie Fragen direkt das Mitglied Zottel.

uz71 schrieb:
Ich habe jetzt nochmals den gaanzen Tag versucht einen Weg zu finden allerdings nochmal ohne Erfolg.......

Haben Sie schon mal AGLink ausprobiert?

uz71 schrieb:
Ich denke, dass Libnodave für die 10 bis 20 Daten die ich aus der S7 lesen will die Günstigste Lösung ist.
uz

Ihre Arbeitszeit kostet ja auch was.

Viele Grüße

Gerhard Bäurle
 
Funktioniert doch prima.
Habs ebend mal mit Excel2000, S7Online, und CP5511 gestestet, nach 15 Minuten gings.

Zuerst mal, sieh in das Verzeichnis 'Excel AND VB'. Lies die readme.vb.
Mach ein neues Excelsheet auf, öffne den VB-Editor, importiere Modul12.bas.
In der Funktion initialize mßt du die für dich richtigen Initialisierungen auskommentieren, die falschen als Kommentar markieren.

Makro 'InitTable' laufen lassen. Dei richtigen Daten in die Zellen eintragen (IP etc.).
Danach sollte es gehen.
 
Das mit der neuen Tabelle und das Importieren mit dem Modul12 habe ich verstanden, aber beim Rest hörts dann bei mir auf.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Folgendes steht in der Initialisierungs-Funktion:

Code:
Private Function initialize(ByRef ph As Long, ByRef di As Long, ByRef dc As Long)
ph = 0
di = 0
dc = 0
Rem uncomment the daveSetDebug... line, save your sheet
Rem run excel from dos box with: excel yoursheet >debugout.txt
Rem send me the file debugout.txt if you have trouble.
Rem call daveSetDebug(daveDebugAll)
initialize = -1
baud$ = Cells(3, 5)
If (baud$ = "") Then Call initTable
Cells(12, 2) = "Running"
res = -1
port = Cells(2, 5)
baud$ = Cells(3, 5)
parity$ = Cells(4, 5)
peer$ = Cells(7, 5)
acspnt$ = Cells(8, 5)
Rem ph = setPort(port, baud$, Asc(Left$(parity$, 1)))
' Alternatives:
[B]ph = openSocket(102, peer$)    ' for ISO over TCP
[/B]Rem ph = openSocket(1099, peer$)' for IBH NetLink
Rem ph = openS7online(acspnt$) ' to use Siemes libraries for transport (s7online)
Cells(2, 1) = "port handle:"
Cells(2, 2) = ph
If (ph > 0) Then
'    di = daveNewInterface(ph, ph, "IF1", 0, daveProtoMPI, daveSpeed187k)
' Alternatives:
'di = daveNewInterface(ph, ph, "IF1", 0, daveProtoPPI, daveSpeed187k)
'di = daveNewInterface(ph, ph, "IF1", 0, daveProtoMPI_IBH, daveSpeed187k)
[B]di = daveNewInterface(ph, ph, "IF1", 0, daveProtoISOTCP, daveSpeed187k)
[/B]'di = daveNewInterface(ph, ph, "IF1", 0, daveProtoS7online, daveSpeed187k)
'
'You can set longer timeout here, if you have  a slow connection
'    Call daveSetTimeout(di, 500000)
    res = daveInitAdapter(di)
    Cells(3, 1) = "result from initAdapter:"
    Cells(3, 2) = res
    If res = 0 Then
        MpiPpi = Cells(6, 5)
'
' with ISO over TCP, set correct values for rack and slot of the CPU
'
        dc = daveNewConnection(di, MpiPpi, Rack, Slot)
        res = daveConnectPLC(dc)
        Cells(4, 1) = "result from connectPLC:"
        Cells(4, 2) = res
        If res = 0 Then
            initialize = 0
        End If
    End If
End If
End Function

Die Fett geschrieben Zeilen mußt du auf jeden Fall aktivieren, die anderen entsprechend auskommentieren. Außerdem das Macro InitTable aufrufen und die richtige IP-Adresse angeben. Zu dem Teil mit Slot-und Rack-nummer kann ich nicht sagen, mußt du mal ausprobieren.

Die Macros lesen und schreiben erstmal Testbytes, du mußt das dann (wenn die Mestbytes funktioniern) auf deinen Anwendungsfall DBx, 200 Worte etc. anpassen.
 
Ralle schrieb:
Zu dem Teil mit Slot-und Rack-nummer kann ich nicht sagen, mußt du mal ausprobieren.
Rack ist fast immer 0, Slot ist bei 300er CPUs meistens 2 und bei 400er CPUs meistens 3. Wenn das nicht funktioniert, dann muß man in der HW-Config des SPS-Projekts nachschauen.


Gruß Axel
 
afk schrieb:
Rack ist fast immer 0, Slot ist bei 300er CPUs meistens 2 und bei 400er CPUs meistens 3. Wenn das nicht funktioniert, dann muß man in der HW-Config des SPS-Projekts nachschauen.


Gruß Axel
Rack ist bei der 300er immer 0, bei der 400er immer 0 wenn die CPU im ersten Rack steckt (ist eigentlich fast immer der Fall). Slot ist bei der 300er immer 2, bei der 400er mit 4A (schmalem) Netzteil 2 ansonsten bei breitem Netzteil 3.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja danke, das ist schon klar, ich meinte, ob die Rack-und Slotnummer in der Initialisierungs-Funktion korrekt eingetragen wird, bzw. ist. Das kann man im Debug-Modus direkt in der Funktion vielleicht am Besten überprüfen.
 
Zuerst einmal Danke für die Arbeit
Ich habe es dann geschaft die Verbindung aufzubauen und mir ReadFromPLC Daten aus der S7 in Excel zu schreiben, es werden mit dem Makro MD0 MD4 MD8 und MD12 gelesen.
Jetzt muss ich nur noch das ganze anpassen auf meinen DB, ich hoffe dass es funktioniert.
Gruss
uz
 
Nun funktioniert es auch bei mir, allerdings habe ich jetzt noch ein Problem bei unterschidlichen S7 CPU's

ohne Probleme läuft das ganze auf einer 315 "PN/DP
wenn ich dann auf eine 315 2DP mit CP 343-1 oder 343-1 IT zugreifen will läuft es nicht mehr.
Ich glaube das ligt an der Rack bzw Slot Nr.. evt. muss man die Slotnummer des CP angeben.
Wo kann ich die Slotnummer ändern

Gruss
 
Zurück
Oben