mit libnodave komplette Bausteine sichern

Zuviel Werbung?
-> Hier kostenlos registrieren
Tupo13 schrieb:
Also ich habe das mit dem Makefile nicht hinbekommen
keine ahnung an was es liegt. Er bringt mir jedesmal Fatal Error
w e l c h e n ? a n w e l c h e r S t e l l e ?
Tupo13 schrieb:
In der openSocket.c verbindest du dich zu einem Socket oder?
Ja. Wenn es windows ist, allerdings opensocketw.c
 
Er bringt mir diese Fehlermeldung

"e:\programme\microsoft visual C++ Toolkit 2003\bin\cl" -I"e:\programme\
microsoft visual C++ Toolkit 2003\include" -I"e:\programme\microsoft platform sd
k\include" -c -DBCCWIN -DLITTLE_ENDIAN -TC -DDOEXPORT setportw.c
Das System kann den angegebenen Pfad nicht finden.
NMAKE : fatal error U1077: '"e:\programme\microsoft visual C++ Toolkit 2003\bin\
cl"' : Rueckgabe-Code '0x1'
Stop.

Sagt das dir was?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tupo13 schrieb:
Er bringt mir diese Fehlermeldung

"e:\programme\microsoft visual C++ Toolkit 2003\bin\cl" -I"e:\programme\
microsoft visual C++ Toolkit 2003\include" -I"e:\programme\microsoft platform sd
k\include" -c -DBCCWIN -DLITTLE_ENDIAN -TC -DDOEXPORT setportw.c
Das System kann den angegebenen Pfad nicht finden.{/b]
NMAKE : fatal error U1077: '"e:\programme\microsoft visual C++ Toolkit 2003\bin\
cl"' : Rueckgabe-Code '0x1'
Stop.

Sagt das dir was?

Ja:Das System kann den angegebenen Pfad nicht finden.
Du mußt die Pfade an deine Installation anpassen, z.B. Wenn dein Compiler eben nicht auf Laufwerk E: sonder C: oder sonstwo ist. Und die Namen der Unterverzeichnisse müssen auch stimmen...
 
Er bringt immer noch diesen Fehler, obwihl der Pfad jetzt passt


NMAKE : fatal error U1077: '"c:\programme\microsoft Visual Studio\VC98\bin\cl
 
Tupo13 schrieb:
Er bringt immer noch diesen Fehler, obwihl der Pfad jetzt passt
NMAKE : fatal error U1077: '"c:\programme\microsoft Visual Studio\VC98\bin\cl
Das ist ein bischen wenig. Du mußt mal schauen, ob du den Compiler cl im angegebenen Pfad "ohne alles" aufrufen kannst.
Das dumme ist, daß in der Zeile, die du im letzten Posting aufgeführt hast, schon 4 Pfade vorkommen: Der zum Compiler, 2 zu include-Dateien und der zum Quellcode. Sie müssen alle simmen und die include-Dateien kommen ja aus dem Platform-SDK. Wenn du den Compiler aufrufen kannst, schreibe dir 3 Zeilen C-Code, der nur jeweils eine header-Datei von denen benutzt, die auch in libnodave gebraucht werden und schau, wo du sie findest und daß der Compiler sie findet. Irgendwie erinnere ich mich, daß irgendwelche altvertrauten Windows-Header beim PSDK nicht mehr dabei waren. Kann sein, daß ich sie aus einer älteren Installation rüberkopiert habe, um es selbst zum Laufen zu kriegen.
 
Hi Zottel

das mit dem Makefile habe ich jetzt mal auf nächste Woche verschoben - ist für mich auch nicht unbedingt nötig die DLL kompilieren zu können.
Danke aber für deine Uterstützung

Eine Frage habe ich da noch
In deiner Doku steht ja der Aufbau des PDU Protocols. Dieses Dokument ist in Blöcke unterteilt - oder?

Es fängt ja immer wieder bei Position 0 an.
Was ist der unterschied zwischen length of parameters und length of Data?
Egal wie ich zähle ich komme auf keinen zusammenhang

Kannst du dazu vielleicht ein paar Sätze sagen?
Sieht das ganze mögliche Werte... auch so aus wenn ich einen ganzen Baustein schießen will?


Gruß Tupo13
 
Tupo13 schrieb:
Hi Zottel

das mit dem Makefile habe ich jetzt mal auf nächste Woche verschoben - ist für mich auch nicht unbedingt nötig die DLL kompilieren zu können.
Danke aber für deine Uterstützung

Eine Frage habe ich da noch
In deiner Doku steht ja der Aufbau des PDU Protocols. Dieses Dokument ist in Blöcke unterteilt - oder?

Es fängt ja immer wieder bei Position 0 an.
Was ist der unterschied zwischen length of parameters und length of Data?
Egal wie ich zähle ich komme auf keinen zusammenhang

Kannst du dazu vielleicht ein paar Sätze sagen?
Sieht das ganze mögliche Werte... auch so aus wenn ich einen ganzen Baustein schießen will?


Gruß Tupo13
Ein Auszug aus den Sachen die du mir geschickt hast, etwas leserlicher aufbereitet und kommentiert. Bis zum des Datenbausteins bin ich nicht gekommen (keine Zeit):

16:32:05.236579 192.168.17.166.1237 > 192.168.17.111.102: P 95:128(33) ack 131 win 65405 (DF)
4500 0049 f95f 4000 8006 5ce9 c0a8 11a6
c0a8 116f 04d5 0066 e37f 249c 8ab0 2f5e
5018 ff7d 1bf6 0000 0300 0021 02f0 80
Begiin der PDU:
32 07 00 00 04 00 00 08 00 08
Die erste 8 ist die Länge der Parameter, die zweite die Länge der Daten.
Die Parameter selbst (8 Byte):
00 01 12 04 11 44 01 00
Bekannt ist mir die Funktion 44, Unterfunktion 1 der PG-Funktionen, PG fordert den Inhalt einer SZL an.
Die Daten, wieder 8 Byte:
ff 09 00 04
01 32 00 02
Innerhalb der Daten sagt das "ff 09 00 04": es folgen Datenbytes, und zwar 4
01 32 ist die Nummer (132h) der SZL
00 02 der Index

Antwort der CPU:
16:32:05.255221 192.168.17.111.102 > 192.168.17.166.1237: P 131:212(81) ack 128 win 560
4500 0079 48bf 0000 3c06 915a c0a8 116f
c0a8 11a6 0066 04d5 8ab0 2f5e e37f 24bd
5018 0230 48c1 0000 0300 0051 02f0 80
Begiin der PDU:
32 07 00 00 04 00 00 0c 00 34
Die 0c (12) ist die Länge der Parameter, die 34 (52) die Länge der Daten.
Die Parameter selbst (12 Byte):
00 01 12 08 12 84 01 05 00 00 00 00
84, 1 ist die Antzwort zu PG-Funktion 44,1
Die Daten, diesmal 52 Byte:
ff 09 00 30
Innerhalb der Daten sagt das "ff 09 00 30": es folgen Datenbytes, und zwar 48.
SZL-Nummer und Index werden wiederholt
01 32 00 02
Ab hier folgen die Bytes der SZL:
00 2800
0100 0200 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 00
 
@Zottel

hallo, komme hier irgendwie nicht weiter. Würde mich sehr freuen, wenn du mir nochmal weiterhelfen könntest.

Ich habe das Problem, dass wenn ich die Anforderung an die SPS schicke
Funktionstyp 0x0A
Bausteinnr 0x03
Bausteintyp 0x0A also DB

Dann beendet die SPS die Verbindung und Antwortet nicht richtig

Gibt es außer den oben genannten noch andere Parameter, die ich bei dieser Funktion noch beachten muss?

vielen Dank im voraus
 
Tupo13 schrieb:
Sorry

Natürlich Funktion 0x1A

Brauche ich für diese noch zusätzliche Parameter?
Nicht das ich wüßte. Aber ich müßte selbst erst in den Code gucken. Was klappt denn nicht? Wie sieht die Antwort von der CPU denn aus?
 
In der Antwort schickt die SPS keine Daten, sie schickt nur das FIN Flag

Vielleicht könntest du mir diese Fragen noch kurz beantworten:

- Der Header (vor der PDU) lautet ja immer so
03 00 00 XX 02 f0 80
was ist denn in dem XX drin?

- Wenn ich einen Baustein hochgeladen habe, dann kann ich aus ihm ja
Bausteinnr, Bausteintyp, Bausteinlänge, Datenlänge, Autor, Version....
auslesen.
zwischen Byte17 und Byte32 müssen zwei Daten stehen
Änderungsdatum und noch ein Datum
ich bin nicht dahintergekommen in welchem Format, und wie ich es
wandeln kann - weißt du darüber vielleicht mehr?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tupo13 schrieb:
In der Antwort schickt die SPS keine Daten, sie schickt nur das FIN Flag
Das mit dem FIN Flag hat mich nie interessiert; das macht ja das OS...
Das hieße jetzt, daß eine Anwendung, die auf socket level ließt, einfach keine Antwort bekommt?
Vielleicht könntest du mir diese Fragen noch kurz beantworten:

- Der Header (vor der PDU) lautet ja immer so
03 00 00 XX 02 f0 80
was ist denn in dem XX drin?
Möglicherweise die Länge, aber das kannst du auch in RFC1006 oder im Quellcode von libnodave nachlesen.
[/quote]
- Wenn ich einen Baustein hochgeladen habe, dann kann ich aus ihm ja
Bausteinnr, Bausteintyp, Bausteinlänge, Datenlänge, Autor, Version....
auslesen.
zwischen Byte17 und Byte32 müssen zwei Daten stehen
Änderungsdatum und noch ein Datum
ich bin nicht dahintergekommen in welchem Format, und wie ich es
wandeln kann - weißt du darüber vielleicht mehr?[/quote]
Nein, weiß ich nicht. Bausteine aus der SPS lesen geht ja wohl, oder? Also kannst du die betreffenden Parameter ändern, den Baustein wiederum auslesen und im Hex-Editor oder so vergleichen.
Noch etwas: Wenn du einen DB3 mit testISO_TCPload -d DB3.mc7 übertragen willst, was kriegst du da von der CPU zurück? Ich sehe keinen Sinn darin, hier lauter Detailfragen zu Dingen zu beantworten, die ich ad acta gelegt habe, in der Meinung daß sie funktionieren oder Hilfe dabei zu leisten, Code der dir zur Verfügung steht noch einmal zu schreiben.
 
Hi Zottel

Danke für deine Antwort.

Ich benütze Libnodave zum Auslesen der Bausteine. Ich benütze Libnodave wo es nur geht weil es ein sehr gutes Tool ist.

Ich wollte dein Beispielprogramm verwenden um die Bausteine wieder auf die SPS zu schießen. Leider gab es da Probleme.(416 CPU)

Beim ersten mal als ich das gemacht habe habe ich die SPS zerschossen.
nach Urlöschen ging wieder alles.

Beim zweitenmal ging garnichts mehr - ich habe ein Firmwareupdate draufgeladen.......
Sie läuft einfach nicht mehr - kaputt

Ein drittes mal will ich es nicht unbedingt versuchen.



Was ich jetzt machen will ist, das ganze soweit zu verstehen, dass ich die Bausteine wieder auf die SPS bringe.


Ich kann verstehen, dass du nicht die Zeit und den Willen hast jedem alles ins kleinste Detail zu erklären.

Trotzdem vielen Dank, du hast mir in letzter Zeit sehr viel geholfen und ich bin Dank deiner Hilfe sehr gut voran gekommen.


Gruß Tupo13
 
Tupo13 schrieb:
Beim ersten mal als ich das gemacht habe habe ich die SPS zerschossen.
nach Urlöschen ging wieder alles.
Wie sah der "zerschossene" Zustand vor dem Urlöschen aus? Soweit ich verstehe, befindet sich ja die Netzwerk-Schnittstelle auf einem CP. Damit das geht, muß sicherlich einen passende HW-Konfig da sein?
MPI könnte funktionieren,auch wenn mit dem CP nichts mehr geht.
Beim zweitenmal ging garnichts mehr - ich habe ein Firmwareupdate draufgeladen.......
Sie läuft einfach nicht mehr - kaputt
Das klingt natürlich erschreckend. Aber wenn es so ist, würde ich Folgendes erwägen:
1. Informier dich mal, was man nach einem gescheiterten Firmware-Update machen kann.
2. Falls man so eine CPU tatsächlich durch ein paar Datenpakete "killen" kann, sind alle deine jetzigen Versuche genauso gefährlich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na ja das erste mal war es noch relativ harmlos
ich habe ein ganz normales S7 Projekt genommen
mit deinem Testtool den OB1 gespeichert.
Dann habe ich ihn mit deinem Tool wieder hinuntergeschossen
Die SPS ging nicht in Stop soweit ich mich erinnern kann.
Als ich dann mit Step7 die Bausteine Online anschauen wollte war kein einziger zu sehen keine DBs,FCs,SFCs..... das Programm war aber noch auf der Steuerung und ist auch gelaufen - richtigen Werte an den Ausgängen.

Nach Urlöschen war alles wieder in Ordnung

Beim zweiten mal stoppte die SPS, ich habe Sie dann Urgelöscht und wollte über MPI die Hardwarekonfiguration schießen.
Das lässt er aber nicht mehr zu, er will irgendein Passwort
ich habe nie ein Passwort parametriert gehabt

Auch müssten laut Support alle Passwörter nach dem Urlöschen... entfernt sein....
Danach Firmwareupdate.....
Es geht nichts mehr
 
Tupo13 schrieb:
Na ja das erste mal war es noch relativ harmlos
ich habe ein ganz normales S7 Projekt genommen
mit deinem Testtool den OB1 gespeichert.
Dann habe ich ihn mit deinem Tool wieder hinuntergeschossen
Die SPS ging nicht in Stop soweit ich mich erinnern kann.
Als ich dann mit Step7 die Bausteine Online anschauen wollte war kein einziger zu sehen keine DBs,FCs,SFCs..... das Programm war aber noch auf der Steuerung und ist auch gelaufen - richtigen Werte an den Ausgängen.
Online anschauen über CP oder MPI?
Welche anderen Funktionen gingen oder gingen nicht mehr?
Kommuniziertee die CPU über MPI? Wenn ja, was stand im Diagnosepuffer?
Nach Urlöschen war alles wieder in Ordnung
So sollte es sein...
Beim zweiten mal stoppte die SPS, ich habe Sie dann Urgelöscht und wollte über MPI die Hardwarekonfiguration schießen.
Das lässt er aber nicht mehr zu, er will irgendein Passwort
ich habe nie ein Passwort parametriert gehabt
Mal versucht, das Urlöschen zu wiederholen?
Auch müssten laut Support alle Passwörter nach dem Urlöschen... entfernt sein....
Ja müßten. Mit dem Urlöschen von S7 habe ich keine großen Erfahrungen, aber bei S5 habe ich mir irgendwann angewöhnt, immer zweimal zu löschen...
Danach Firmwareupdate.....
Es geht nichts mehr
Ein Firmwareupdate kann natürlich schon an sich schiefgehen.
Wie sieht das Im Detail aus? Kommunikation? LEDs? Versuch, vorige Firmware wieder einzuspielen? Was hast du mit dem Ding vor?
 
Versucht habe ich so ziemlich alles schon
bestimmt 50mal Urgelöscht,
sie vom Rack geschraubt (dann müsste normalerweise auch alles weg sein)
Firmwareupdate 1x das empfohlene Update (Das ist ziemlich umständlich auf Eprom schießen...)

LED's brennen keine Fehler nur die Stopp LED, beim Anlaufversuch geht die Stopp LED nicht aus und er schafft den Anlauf auch nicht.

Ich kann mir nicht Vorstellen, dass man auf Speicherbereiche des Betriebsystems... schreiben kann - das könnte ja teoretisch auch bei Bitfehlern passieren, das hat Siemens bestimmt irgendwie geschützt.
Auch hast du ja gemeint dass es bei den 300ern noch nie Probelme gegeben hat.

Es kann natürlich auc sein, dass es ein Hardewarefehler ist und nichts mit dem laden des Bausteins zu tun hat.
Das halte ich allerdings für ziemlich unwarscheinlich
1. gehen SPSen sehr sehr sehr selten kaputt
2. und dass es dann auch noch genau nach dem laden passiert

Momentan steht das Ding bei mir auf dem Schreibtisch, ich hoffe, dass ich sie wieder zum laufen bringe

Gruß Tupo13
 
Zurück
Oben