Autor Thema: XC200 mit 32718 Byt, wo sind die?  (Gelesen 6768 mal)

Offline BertholdSW

  • Jr. Member
  • **
  • Beiträge: 62
XC200 mit 32718 Byt, wo sind die?
« am: Dezember 07, 2008, 11:04:09 Vormittag »
Hallo aus dem Sauerland.
Mit Codesys komme ich jetzt so einigermassen klar.
In die XC200 habe ich genau 32718 Byt übertragen.
Abzulesen bei: "Bootprojekt erzeugen"  "Online" dann ablesbar.
Grob 200 Befehle (in StrucText)  habe ich programmiert. Keine Schleifen.
Wozu sind dafür 32718 Byte nötig?
Sei dem ich die Oscat.lib benutze habe ich das Gefühl, das die Datenmenge rapiede angewachsen ist.
Ich habe ca 20% von dem programmiert (alles bis jetzt Bool), was ich am Ende benötige.
Wie langsam soll das Teil denn am Ende werden?
In die PLC_PRG habe ich einen Zähler eingebaut.
Zähler + 1 genau eine Sekunde. Um 100 Zyklen/Sekunde bekomme ich angezeigt.
Also eine jetzige Zykluszeit von 10 ms.
Angestrebt hatte ich ein 1ms Zykluszeit im Endausbau.
Dies XC200 soll erheblich schneller sein als die PS4/150...er Serie.
In der PS4 Programmierung hätte ich grob eine Zykluszeit von geschätzen
1ms. Über eine schnelle Analogeingabe, Wandelzeit 1ms/14Bit, wollte ich eigentlich  (+ XC200) sehr schnell werden. Diese Analog-Teil ist aber nocht gar nicht benutzt.
Da mache ich aber bestimmt noch etwas falsch, oder?
Eigentlich müsste ich doch auch direkt in der SPS die aktuelle Zykluszeit ablesen könnte.
Wo kann ich das ablesen?
Danke für Eure Hilfen.
Gruss Berthold

Offline Knodelpa

  • easy god
  • *****
  • Beiträge: 1410
  • I love easy-Forum.net
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #1 am: Dezember 07, 2008, 17:01:46 Nachmittag »
Hallo Berthold,

sobald du eine Bibliothek einbindest springt die Programmgröße sprunghaft an, danach nur sehr langsam. Bei der Speichergröße der XC200 sollte dies grundsätzlich kein Problem darstellen.

Zykluszeit
Die XC200 hat ein WinCE Laufzeitsystem mit Multitasking. Die Task können in der Taskkonfiguration eingestellt werden. Die standardmäßig eingestellte Zykluszeit für das PLC_PRG ist 10ms. Ich hoffe dies bringt dir etwas Licht ins Dunkel.
 
:) ;) :D
Viele Grüße
Paul

Offline BertholdSW

  • Jr. Member
  • **
  • Beiträge: 62
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #2 am: Dezember 07, 2008, 17:13:28 Nachmittag »
Danke Paul, Du bist die Sonne in meinem Leben!!!
10ms Task ist genau die Antwort, auf die ich gehofft habe.
Mit SrucText als Programmiersprache fühle ich mich so langsam  auch "sau-wohl".
Also DANKE Dir und dem Forum.
Gruss Berthold

Offline Knodelpa

  • easy god
  • *****
  • Beiträge: 1410
  • I love easy-Forum.net
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #3 am: Dezember 07, 2008, 17:56:53 Nachmittag »
Hallo Berhold,

um die Tasks schön beobachten zu können musst du eine zusätzliche LIB einbinden, bin im Moment nicht an meinem PC, daher kann ich den Namen der lib nicht sicher sagen. Ich "glaube" die  Lib heißt syslibtask.lib oder so ähnlich. Wenn du dann Online bist und in die Taskkonfiguration schaust, dann siehst du die Taskzeiten, auch grafisch  :D
 
:) ;) :D
Gruß Paul

Offline BertholdSW

  • Jr. Member
  • **
  • Beiträge: 62
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #4 am: Dezember 07, 2008, 20:57:12 Nachmittag »
Hallo Paul.
Geklappt hat:
"Ressoursen" "Taskkonfiguration" "Task anhängen" "Zyklisch"  "Taskzeit 1ms"
"Programmaufruf anhängen" mein bereits programmiertes "PLC_PRG" auswählen.
Eine Taskzähler (Zähler := + 1) eingebaut zeigt jetzt 989 Zyklen/sek in der PLC_PRG.
Also sollte die Taskzeit mal zu knapp werden, wird sich das System schon melden.
Ich war also nicht in der Lage, den alten originalen Standart PLC_PRG von Zyklischem 10ms-Task auf freilaufend umzustellen.
Den neuen Task konnte ich auch nicht auf "freilaufend" umstellen. Aber diese Lösung scheint wohl zu laufen.
Danke
Berthold Jochheim

Offline Softwerker59

  • Jr. Member
  • **
  • Beiträge: 48
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #5 am: Dezember 07, 2008, 21:34:36 Nachmittag »
Hallo Berthold,

gerade als ich meinen Beitrag absenden wollte, ist ein neuer von Dir dazwischen gekommen. Also hier noch mal ein neuer Versuch:
die von Paul erwähnte Lib heißt "SysTaskInfo.lib" und befindet sich im Lib_CPU201-Verzeichnis. Zu sehen ist aber erst etwas, wenn du in der Taskkonfiguration eine Task manuell angelegt hast. Danach kann man Online die wirklichen Abarbeitungszeiten in der Taskkonfiguration sehen.
Der (relativ) große Programmcode ergibt sich in der Tat aus den eingebundenen Bibliotheken. Die meisten Libs in der XC201 sind im Betriebssystem codiert, sodass sich daraus kein zusätzlicher Programmcode ergibt. Ist eine Lib in ST geschrieben (oscat..), so werden alle Bausteine übersetzt und als Programm in die Steuerung geladen. Selbst wenn Du diese nicht benutzt, existieren diese Bausteine als "toter" Code in der Steuerung.
Abhilfe schafft ein Modifizieren der Übersetzung. In Projetkt->Optionen->Übersetzungsoptionen kann man Bausteine ausschließen (sofern diese nicht von anderen abhängig sind). Dies reduziert den Programmcode. Die XC201 hat allerdings genug davon!
Zur Taskverwaltung: Der Scheduler der XC201 (das ist der, der die Tasks umschaltet) läuft im 1ms Takt. Es ist deshalb nicht ratsam, eigene Tasks anzulegen, die mit 1ms laufen sollen. Dadurch steigt die Auslastung bis an die Grenze der Steuerung! Außer der PLC_PRG-Task (o.ä.) laufen noch parallel  diverse Kommunikationstasks (TCP, Seriell), die aufgrund ihrer niedrigen Priorität nicht mehr zum Zuge kommen. Im Extremfall geht die Verbindung zur Steuerung verloren!
Für schnelle Ereignisse würde ich mir die externen Interrupts zu Nutze machen, falls dies möglich ist.
Ich hoffe, das bringt etwas mehr Licht ins Dunkel. Ein Blick ins XC201-Manual hilft übrigens auch.

Gruß
 Klaus

PS: freilaufende Tasks werden von der XC201 nicht unterstützt, da diese nur quasi freilaufend wären und ebenfalls mit 1ms im Scheduler landen würden.

Offline BertholdSW

  • Jr. Member
  • **
  • Beiträge: 62
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #6 am: Dezember 08, 2008, 09:19:09 Vormittag »
Hallo Klaus-Danke.
Alles von Dir habe ich ausgedruckt. Das muss ich mir langsam noch erarbeiten.
Meine Taskzeit werde ich erhöhen und auf 2ms legen, dann ist wohl einiges in dem Zeit-Ablauf der Rest-CPU entschärft.
Mit 2ms käme ich so gerade mit der Analogverabeitung noch klar. Meine 2 Analogeingänge werden von meinem Modul in 1ms in 14Bit eingelesen.
Also alles noch im grünen Bereich.
Meine nächste Hürde: "Daten zum Panel" werde ich jetzt angehen und versuchen sie zum Leben erwecken. (5,7" TFT-Display)
Fußangeln kommen da bestimmt auch noch.
Das habe ich doch richtig gelesen?
Die programmiere ich auch mit dem selben Codesy-Programm.
Benötigt das Panel auch erst wieder ein eigenes Betriebssystem, das zuvor hineingeladen werden muß?
Da habe ich an der XC200 ganz schön gesucht, bis mir klar wurde, ohne runtergeladenes Betriebssystem geht da gar nichts.
Aber notfalls habe ich ja Euch noch.
Danach kommt dann die Feinarbeit der kompletten Programmierung.
Ostern soll alles Laufen, da ist noch lang hin.
Danke und Gruß an alle Berthold aus dem Sauerland.
PS
Zur Arbeit:
Nichts ist so eckig wie runde Ketten.
Zum Hobby:
Mein schwarzweiße Fotohobby ist doch um maches einfacher!!!
www.hachener.de



Offline Softwerker59

  • Jr. Member
  • **
  • Beiträge: 48
Re: XC200 mit 32718 Byt, wo sind die?
« Antwort #7 am: Dezember 08, 2008, 11:27:26 Vormittag »
Hallo Berthold,

wenn Du mit easySoft CoDeSys V2.3.9 arbeitest, musst Du neue Betriebssysteme verwenden.
Diese sind in der Installation enthalten. Für das TFT-Panel empfehle ich Dir allerdings, das aktuelle vom MOELLER-FTP zu holen, wenn es nicht schon drauf ist. Die Version ist glaube ich V02.01.03.
Für den Datenaustausch zwischen beiden Geräten würden sich Netzwerkvariablen über UDP anbieten. Die Konfiguration dafür ist recht simpel, man muss nur eine Bibliothek einbinden (NetvarUdp_LIB_V23.lib) und das ganze in den Zielsystemeinstellungen aktivieren.

Gruß
 Klaus

PS: Das mit den neuen Betriebssystemen steht übrigens im Readme der Installation, aber wer liest die schon...