# Diverse Fragen zu Wago und Codesys - SysLibFile - ProjektDownload - retain



## MandiNice (21 Juli 2013)

Bin nun in meinem ersten Projekt schon sehr weit fortgeschritten.
Wago 750-880 + WebPanel
 Es haben sich nun aber ein paar kleinere Probleme / Fragen ergeben.


*) Ich Speichern Daten auf die SD-Karte mit SysLibFile.lib.
Gibt es dafür eine Doku ?

Wie kann ich auf Fehler prüfen ?

Die Daten auf der Speicherkarte werden unter \plc gespeichert.
Kann ich einen anderen Datenpfad angeben ?



*) Ich habe eine Speicherkarte mit einem älteren Projekt.
Ich kann mein Programm in die Steuerung runterspielen.
Aber nach den Aus.- und Einschalten ist es wieder weg ?
Habe auch "Bootprojekt erstellen" ausgeführt.
Habe nun einen neue leere Speicherkarte eingesetzt, diese Formatiert und extrahiert
und mein Projekt runtergeladen.
Da habe ich nun das volle neue Projekt drauf.

Aber was muss ich machen damit ich auf eine Speicherkarte mit einem alten Projekt 
mein neues Projekt draufbekommen ?



Warum steht auf der Speicherkarte in der WebVisu.htm unter "CurrenzVisu = False" 
obwohl ich unter Hardwareeinstellungen "CurrentVisu verwenden" markiert habe.
( Ich verwende die Web-Visualisierung )



*) 
Ich habe die Oscat.lib eingebunden. Nun jammerd er laufend das zuviele Objekte im Projekt vorhanden sind.
Ok. Das kann ich ja unter "Zielsystem - SPeichereinstellungen - Max Anzahl Bausteine" einstellen ( Wert 1023 erhöhen ).
Dann jammerd er aber beim Einspielen das zuviele Daten verwendet werden :-(
Zur Zeit bin ich am entfernen von Funktionen aus der Oscat.lib.
Das ist aber doch sehr mühsam - von wegen abhängigekeit der Funktionen voneinander :-( 


 *) 
Kann ich den Retain-Datenbereich vergrößern ?
( habe zur Zeit 14kB - bräuchte aber min 20kB )
Wenn ich die Daten auch als persistent definiere wird die Projektdatei riesen groß und lässt sich nicht mehr einspielen



Danke für Eure Hilfe

Beste Grüße
Mandi


----------



## Dr.MirakulixX (21 Juli 2013)

Kann dir leider nicht viel helfen jetzt aus dem Stehgreif. Bekomme unsere 880er erst die Tage. Aber bei der Oscat... Das Problem kenne ich zu gut. Es gibt die Möglichkeit das du alle nicht verwendeten Objekte automatisch ausschließen kannst. Das klappt ganz gut


----------



## MandiNice (22 Juli 2013)

Hallo

Dr.MirakulixX : danke für Deine Antwort.
Aber wie geht das ?

bG
Mandi


----------



## Dr.MirakulixX (22 Juli 2013)

Kann ich die morgen gerne beschreiben, gerade nix passendes zubr Hand und schon ein paar Tage nicht mehr gemacht


----------



## MandiNice (23 Juli 2013)

Hallo

Dr.MirakulixX : Danke hab's gefunden :-(

Es gibt noch zwei wichtige Fragen für mich :

*) Ich Speichern Daten auf die SD-Karte mit SysLibFile.lib.
 Gibt es dafür eine Doku ?
 Wie kann ich auf Fehler prüfen ?
 Kann ich einen anderen Datenpfad angeben ?

*) Wie kann ich die Zeitdauer von Programmteile messen ?
Ich möchte feststellen wie lande Berechnungen dauern um diese falls nötig auf mehrere Programmzyklen aufteilen zu können.

Danke und 
Beste Grüße
Mandi


----------



## Joerg_M (26 Juli 2013)

Hallo MandiNice,



MandiNice schrieb:


> *) Ich Speichern Daten auf die SD-Karte mit SysLibFile.lib.
> Gibt es dafür eine Doku ?
> Wie kann ich auf Fehler prüfen ?
> Kann ich einen anderen Datenpfad angeben ?



Für die SysLibFile gibt es eine Doku. Die solltest Du im Programmverzeichnis von CoDeSys finden, z.B. unter:

C:\Programme\3S Software\CoDeSys V2.3\Documents\German

oder Goggle mal nach "SysLibFile.pdf"
Die gleichen Informationen findest Du aber eigentlich auch in der CoDeSys Hilfe unter 

CoDeSys Bibliotheken -> CoDeSys Protokoll- und Systembibliotheken

Zur Fehlerprüfung kann man die Rückgabewerte der Funktionen auswerten.
Ob man einen anderen Pfad angeben kann weiß ich nicht (es gibt zumindest auch eine Bibliothek für Verzeichnisoperationen: SysLibDir).




MandiNice schrieb:


> *) Wie kann ich die Zeitdauer von Programmteile messen ?
> Ich möchte feststellen wie lande Berechnungen dauern um diese falls nötig auf mehrere Programmzyklen aufteilen zu können.



Dafür gibt es mindestens 2 Möglichkeiten.

1. Mit der SYSTEM.LIB. Diese Bibliothek stellt verschiedene Funktionen für die Zykluszeit-Messung bereit (nur Anwenderprogramm, kompletter SPS-Zyklus, Max, Min, usw.)
    Ich bin mir nur nicht sicher, ob die bei jeder normalen CoDeSys-Installation dabei ist. Bei mir gibt es die Bibliothek unter:

    C:\Programme\3S Software\CoDeSys V2.3\Targets\WAGO\Libraries\16_Bit


2. Durch direkte Zeitmessung im Programm, oder in Programmteilen mit der Funktion TIME():

(* Zykluszeit kompletter Zyklus, irgendwo im Hauptprogramm platziert*)
time_new:= TIME();
cycle := time_new - time_old;
time_old:= time_new;


oder:

(* Zykluszeit für Programmteile oder auch einzelne Funktionsaufrufe *)
time_old:= TIME(); (* Als erstes merken wir uns mal die Zeit *)



a= b+c; (*hier kommen die Teile vom Programm, die wir messen wollen *)

FUNCTION1();
...
FB_INSTANZ_A(X:=0,Y:=1);
...
FB_INSTANZ_B(Z:=2);
...
PROGRAMM_X();
...............................

time_new:= TIME(); (* Wir schauen wieder mal auf die "Uhr" *)

wasted_time:= time_new - time_old;   (* Nun rechnen wir aus, wieviele ms vergangen sind *)

******************************

Alle Variablen sind vom Typ TIME.



Viele Grüße und ein schönes WE.

Jörg


----------



## MandiNice (27 Juli 2013)

Hallo 

und Danke.

Zeitmessung : mit Time () 

Die Zeitauflösung ist mir zu ungenau. Beträgt nur 1msec.
Bei einer Gesamtzykluszeit von wenigen Millisekungen müsste die Auflösung schon im Mikrosekundenbereich liegen.

bG
Mandi


----------



## KingHelmer (28 Juli 2013)

> *)
> Ich habe die Oscat.lib eingebunden. Nun jammerd er laufend das zuviele Objekte im Projekt vorhanden sind.
> Ok. Das kann ich ja unter "Zielsystem - SPeichereinstellungen - Max Anzahl Bausteine" einstellen ( Wert 1023 erhöhen ).
> Dann jammerd er aber beim Einspielen das zuviele Daten verwendet werden
> ...



Hi!
Nachdem du die Bausteinanzahl erhöht hast, kannst du das Projekt übersetzen.
Nach dem Übersetzen kannst du bei den "Übersetzungsoptionen" die "unbenutzen Objekte ausschließen".
Dann werden automatisch alle Bausteine, die du in deinem jetztigen Programm nicht brauchst, ausgeschlossen.
Bevor du dann das Programm überträgst, musst du wieder die max. Anz. Bausteine auf 1023 zurücksetzen, sonst kannst du es nicht laden.

Kannst natürlich auch manuell ausschließen, dass sparst du dir das erhöhen der Bausteinanzahl und das anschließende zurücksetzen.
Aber dann musst du eben wissen,welche genau du ausschließen kannst.

Ich persönblich habe mir eine eigene .lib gebaut, in welcher alle Abhängigen Bausteine aus den .libs, die ich brauche, enthalten sind.
So habe ich eben keine überladene Oscat.lib sondern eine eigene mit sehr wenigen Bausteinen.

Noch ein Tip für die Visu: Aktiviere immer den Haken "komprimieren" dadurch werden alle Visu-Elemente ca. 10 mal kleiner und du hast mehr platz für anderes.
Die Visu wird meiner meinung nach nicht langsamer dadurch!

Grüße, 
Flo


----------

