TIA CPU Stop wenn PG Online

Genau 2727,811 ms. Hätte gerne das Bild reingestellt, bekomme aber keine Auswahlmöglichkeit.
Aber, wie gesagt, nur mit der Menge an Technologieobjekten. Wenn ich die verringere wird's auch weniger.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das liegt eben daran, das der bei Jedem online gehen, die ganze blöde Doofnudel einmal runter läd um zu schauen, ob alles Synchron zum Offlineprojekt ist.

Bei den 300/400 läuft die Firmware selbst ja weiter, auch wenn die CPU sich im stop befindet. Der große Unterschied ist aber, das beim Programmstart die einzelnen Bausteine abgerufen werden und die neuen 1200/1500 nun einmal Compiler-Maschinen sind, die einen Binärblob verarbeiten. Hier wird also eine Datei beim online Verbinden von der Firmware durch den Äther gestopft, was scheinbar nicht sonderlich Geschwindigkeitsbegrenzt ist.
Folge: verhältnismäßig große Datenmenge in sehr kurzer Zeit an einem Stück, bearbeitet die Firmware einfach das Anwenderprogramm nicht mehr ab für diese Zeit.

Hast du jetzt Tech-Objekte drin, sind die als Binärblob natürlich entsprechend groß und in Summe kommt da schon einiges zusammen...

MfG Fabsi
 
Das liegt eben daran, das der bei Jedem online gehen, die ganze blöde Doofnudel einmal runter läd um zu schauen, ob alles Synchron zum Offlineprojekt ist.

Bei den 300/400 läuft die Firmware selbst ja weiter, auch wenn die CPU sich im stop befindet. Der große Unterschied ist aber, das beim Programmstart die einzelnen Bausteine abgerufen werden und die neuen 1200/1500 nun einmal Compiler-Maschinen sind, die einen Binärblob verarbeiten. Hier wird also eine Datei beim online Verbinden von der Firmware durch den Äther gestopft, was scheinbar nicht sonderlich Geschwindigkeitsbegrenzt ist.

Ein wirklicher 1:1 Codevergleich wie noch bei den 300/400ern findet soweit ich das analysiert habe nicht statt. Bei der alten 1200er und TIA V12 wurde sogar nur der Zeitstempel eines Bausteins und ein Änderungszähler verglichen, nicht einmal ein Hashwert. Bei V14 und einer aktuellen 1500er werden beim Online verbinden Zeitstempel und die Hashwerte (was bei einer aktuellen Hashfunktion nach Stand der Technik ausreichend ist) des Codes als XML-Datei abgefragt, zwar in komprimierter Form aber sonderlich bandbreitensparend ist das trotzdem nicht.
 
Ein wirklicher 1:1 Codevergleich wie noch bei den 300/400ern findet soweit ich das analysiert habe nicht statt. Bei der alten 1200er und TIA V12 wurde sogar nur der Zeitstempel eines Bausteins und ein Änderungszähler verglichen, nicht einmal ein Hashwert. ..
Bei der 300er findet der Codevergleich aber auch nur statt, wenn der Zeitstempel abweicht, oder?

Ich hatte einmal einen sehr merkwürdigen Fall, da war bei einer S7-300 bei einem Baustein der Zeitstempel exakt gleich, im Code war jedoch ein kleiner Unterschied. Wie das zustande kam, weiß ich bis heute nicht. Beim Bausteinvergleich wurde es jedenfalls nicht erkannt! Es war daher auch gar nicht so einfach, die Fehlerstelle zu finden. Der Freundliche vom FirstLevel-Support konnte es auch nicht wirklich erklären und schob es auf einen Speicherfehler, naja immerhin irgendwie denkbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der 300er findet der Codevergleich aber auch nur statt, wenn der Zeitstempel abweicht, oder?

Ich habe es gerade nochmal selber nachgeprüft, weil ich meine, dass ich schon mal ein ähnliches Phänomen hatte wie du es beschreibst. Aber wenn ich mir das jetzt ansehe, dann wird wirklich jeder Baustein komplett heruntergeladen, auch wenn der Zeitstempel identisch ist. Ob dann Step7 auch wirklich den Codevergleich durchführt mit dem was da heruntergeladen wurde, auch wenn Zeitstempel gleich sind, entzieht sich (noch) meiner Kenntnis.
Das ließe sich aber durch eine entsprechende "Anpassung" des Offline-Zeitstempels ausprobieren. Es gibt im Bausteinkopf aber auch noch eine Prüfsumme, welche schon mit den Zeitstempeln heruntergeladen wird. Wobei die Prüfsumme trivial ist, und sich ein Code konstruieren lässt der trotz Änderung wieder die identische Prüfsumme aufweist.
 
Ich müsste den Tatbestand noch irgendwo gesichert haben. Falls Interesse besteht, kann ich dir das Programm bzw. die Bausteine zukommen lassen.
 
Stimmt doch nicht ganz.
Es werden erst nur die Zeitstempel verglichen, und wenn wirklich alles identisch ist, dann wird auch überhaupt kein Codevergleich durchgeführt, also auch nicht heruntergeladen. Da scheint noch eine weitere Logik dahinterzustecken. Wenn ich nur 2 Bausteine habe (OB1, FC1) und FC1 ist unterschiedlich, dann wird auch nur der Code von FC1 verglichen. Bei einem größeren Programm mit vielen FBs, DBs usw. wird bei 2 unterschiedlichen Bausteinen (typisch DBs mit Aktualwerten) später noch viel mehr verglichen. DBs werden so wie es aussieht immer komplett verglichen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das liegt eben daran, das der bei Jedem online gehen, die ganze blöde Doofnudel einmal runter läd um zu schauen, ob alles Synchron zum Offlineprojekt ist.

Bei den 300/400 läuft die Firmware selbst ja weiter, auch wenn die CPU sich im stop befindet. Der große Unterschied ist aber, das beim Programmstart die einzelnen Bausteine abgerufen werden und die neuen 1200/1500 nun einmal Compiler-Maschinen sind, die einen Binärblob verarbeiten. Hier wird also eine Datei beim online Verbinden von der Firmware durch den Äther gestopft, was scheinbar nicht sonderlich Geschwindigkeitsbegrenzt ist.
Folge: verhältnismäßig große Datenmenge in sehr kurzer Zeit an einem Stück, bearbeitet die Firmware einfach das Anwenderprogramm nicht mehr ab für diese Zeit.

Hast du jetzt Tech-Objekte drin, sind die als Binärblob natürlich entsprechend groß und in Summe kommt da schon einiges zusammen...

MfG Fabsi

Klasse. Das heißt, ich muss jetzt entweder die Zykluszeitüberwachung hoch eingestellt lassen oder die CPU geht beim verbinden immer in Stopp? Der OB80 hilft ja bei dem Problem auch nicht weiter.
 
Was ich jetzt noch nicht so ganz verstanden habe, die Zykluszeit geht bei dir annähernd auf 3 Sekunden. Wie soll dass den funktionieren,
wenn man z.B. eine schnelle Verpackungsmaschine hat? Vor jedem "beobachten ein" Maschine leerfahren, beobachten einschalten und weiterfahren?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vor jedem "beobachten ein" Maschine leerfahren, beobachten einschalten und weiterfahren?

Die Zykluszeit geht lediglich beim Online-Verbinden so hoch. Ist man verbunden und drückt die CPU wieder in Run, so denn sie das auch schafft dann anzulaufen, kann man munter beobachten, Änderungen laden und wieder beobachten. Zumindest ist es mir so ergangen ;)

@Thomas: ich hab mir den Netzwerktraffic bisher nicht genau angesehen, es kann auch sein das er diese nicht ganz runter zieht. Dann würde aber durch die XML-Erstellung so dermaßen viel Zeit in der "Grundfirmware" benötigen, in der er das Anwenderprogramm nicht weiter abarbeitet, das dadurch der Stop kommt...
Was die Jungs da jetzt genau machen, ist ja quasi Wurst. Nur ist es so eben totaler Müll :D

MfG Fabsi
 
Zurück
Oben