# Einarbeiten in TwinCAT



## Golden Egg (12 Januar 2009)

Ich bin gerade dabei mich mit TwinCAT auseinander zusetzten. Dazu soll ich einfacher weise als erstes mal einen Blinktakt in jeder Programmiersprache generieren. 
Ich habe jetzt das Problem das meine AS nicht starten will. 
Das Testprojekt findet ihr im Anhang.

Ich hoffe ihr könnt mir helfen.
MfG. Golden Egg


----------



## Golden Egg (12 Januar 2009)

Andere Frage.
Gibt es von Beckhoff auch so etwas wie eine Ausbildungsunterlage zu TwinCAT, wie sie Siemens zu Step7 zur Verfügung stellt?


----------



## Brro87 (12 Januar 2009)

ftp://ftp.beckhoff.com/Document/Software/TwinCAT/Einleitung_IEC1131-3_Programmierung.pdf

Meinst du so etwas..?


----------



## Brro87 (12 Januar 2009)

Oder schau mal hier rein! SIt zwar für CoDeSys.. doch TwinCat ist einfach eine Beckhofversion, dieser Software... das meiste ist gleich!

Im Kapitel 3, hat es ein Beispielprogramm...

Viel Spass!


----------



## Golden Egg (12 Januar 2009)

Danke....da schau ich mal rein.


----------



## Golden Egg (13 Januar 2009)

Hi. Noch ne Frage

Wenn ich jetzt Online simuliere und mir den sekunden Takt anschau laufen die Milisekunden fast im Sekundentakt, also nicht wirklich fix.
Ich arbeite mit einer Demoversion. Könnte es daran liegen?


----------



## Cerberus (13 Januar 2009)

An der Demo-Version kann das sicher nicht liegen. Der Großteil von uns arbeitet mit der Demo-Version (wird sogar von Beckhoff empfohlen) und dieses Phänomen hatte ich noch nie.


----------



## Golden Egg (13 Januar 2009)

Cerberus schrieb:
			
		

> dieses Phänomen hatte ich noch nie


Das sagt mein Meister auch.

Kann das irgendwie mit der Echtzeiteinstellung zusammenhängen oder bring ich da was durch einander?


----------



## trinitaucher (13 Januar 2009)

Golden Egg schrieb:


> Hi. Noch ne Frage
> 
> Wenn ich jetzt Online simuliere und mir den sekunden Takt anschau laufen die Milisekunden fast im Sekundentakt, also nicht wirklich fix.
> Ich arbeite mit einer Demoversion. Könnte es daran liegen?


Du nutzt entweder ein Notebook oder einen "nicht-Beckhoff-PC"...
Das wurde hier im Forum schonmal diskutiert. Die Echtzeit-Basis wird anhand der Prozessorfrequenz berechnet. Wenn der Prozessor jedoch munter Speedstepping veranstaltet (Takfrequenz ändert sich), ist die Zeitbasis natürlich für die Tonne.
Schau mal im System Manager unter "System-Konfig. => Echtzeit-Einstl. => Online" auf den Jitter. Sieht bei dir vermutlich ziemlich wild aus


----------



## Golden Egg (13 Januar 2009)

Hmm eigentlich nicht also er macht jetzt nicht riesige Sprünge. Oder reichen etwa die kleinen Unebenheiten schon aus?
Das Phänomen verschwindet auch nicht bzw. ändert sein Verhalten wein ich die Zeitbasis ändere...
*Siehe Anhang


----------



## trinitaucher (13 Januar 2009)

Generier mal zum Testen in deinem MAIN einen TON mit langer Zeitspanne und starte den. Wie zählen die Sekunden?


----------



## Golden Egg (13 Januar 2009)

....genauso lam:sad:...hab mal t#120m genommen


----------



## Golden Egg (13 Januar 2009)

Zusätzliche Frage:
*Visu
Kann man ein Rechteck so formatieren das es abhängig von einer Variable mit Farbe gefüllt wird (Tank)? Oder geht das nur über die Balkenanzeige?


----------



## trinitaucher (13 Januar 2009)

Stichwort: "Farbvariablen" .... gibt es 

Wegen der Echtzeit:
Das muss an deinem PC liegen. Probiert's testweise mal an einem anderen aus.


----------



## Brro87 (13 Januar 2009)

Schau doch mal hier rein.. ist die Visu-Ergänzung zum Handbuch!

In deiner Hilfe... also vom TwinCat, sollte es eigentlich auch zu finden sein.
Unter Visualisierungselement konfigurieren, oder so...


----------



## Golden Egg (13 Januar 2009)

Das wäre irgendwie doof wenn´s an meinem Rechner liegt. Ich hab den vor einer Woche erst neu aufgesetzt bekommen und soll damit ersmal arbeiten.
Es ist ein ASUS A3V, Intel Pentium M, 1,73 GHZ, 1 GB RAM

Es muss doch irgendeine Möglichkeit geben das mit der Echtzeit hin zu bekommen.:sm9:


----------



## Golden Egg (14 Januar 2009)

Ich bin jetzt im System Manager auf folgendes Fenster gestoßen. Lassen sich irgendwie die Zyklusticks beeinflussen? Oder haben die keinen Einfluss auf mein Problem


----------



## trinitaucher (14 Januar 2009)

Golden Egg schrieb:


> Ich bin jetzt im System Manager auf folgendes Fenster gestoßen. Lassen sich irgendwie die Zyklusticks beeinflussen? Oder haben die keinen Einfluss auf mein Problem


die haben keine Einfluss. Dabei geht's nur um Auffrischungen des Prozessabbilds.


----------



## Golden Egg (14 Januar 2009)

Ich habe jetzt mal auf einem anderen Rechner der im Netzwerk hängt TwinCAT installiert und nutze ihn als PLC. 
Siehe da die Sekunden laufen im Sekundentakt...*ROFL*
Unverständlich.....
*Problem nicht behoben sondern umgangen

PS: Ich will einen neuen Rechner und der hier...:sw10:

Danke nochmal das Ihr mir geholfen habt.

MfG. Golden Egg


----------



## Golden Egg (14 Januar 2009)

Gab es hier im Forum nicht ein Thema in dem jede menge Übungsaufgaben gepostet wurden? Ich finde das irgendwie nicht mehr.


----------



## Cerberus (14 Januar 2009)

Golden Egg schrieb:


> Gab es hier im Forum nicht ein Thema in dem jede menge Übungsaufgaben gepostet wurden? Ich finde das irgendwie nicht mehr.


 
Probiers mal *hier*


----------



## Golden Egg (14 Januar 2009)

Das ist schon nicht schlecht. Ich bräuchte nur etwas was ich in ST üben kann.


----------



## Cerberus (14 Januar 2009)

Golden Egg schrieb:


> Das ist schon nicht schlecht. Ich bräuchte nur etwas was ich in ST üben kann.


 
Probiers doch mal mit ner simplen Ampelschaltung.

Folgendes Szenario:
Du hast eine gerade Straße mit einem Fußgängerüberweg. An diesem steht eine Ampel. Solange kein Fußgänger über die Straße will, bleibt die Ampel für den Verkehr grün. Wenn nun ein Fußgänger über den berühmten gelben Taster an der Ampel signalisiert dass er über die Straße will, dann springt die Ampel für den Verkehr auf rot und die Fußgängerampel auf grün. Dies bleibt für 2 Min erhalten. Danach springt die Fußgängerampel wieder auf rot und nach einer kurzen Verzögerung die Verkehrsampel auf grün.


----------



## Golden Egg (15 Januar 2009)

Als ich mit dem ersten Projekt fertig war habe ich dieses als Bibliothek in meinen folge Aufgaben mit eingebunden, damit ich den dort generierten Taktbaustein nutzen kann. Jetzt ist das Problem wenn ich normal einen FB einfüge werden immer bei VAR_IN, OUT,...die Zuordnungen von diesem Taktbaustein eingetragen.
Macht er auch nachdem ich die Bibliothek wieder aus dem Projekt entfernt habe.


----------



## Golden Egg (15 Januar 2009)

Ich will jetzt auch mal ne Variablenstruktur anlegen und habe dazu folgenden Code geschrieben.

```
VAR_GLOBAL

TYPE PER:
    STRUCT
    RM_KS_DT_REF        :BOOL(*    Rückmeldung Kontaktschalter Drehtisch in Referenzposition*) ;
    RM_KS_PRES        :BOOL(*    Rückmeldung Kontaktschalter Teil in Pressstaion*);
    RM_KS_UEST        :BOOL(*    Rückmeldung Kontaktschalter Teil in Übergabestation*);
    RM_LS_AST            :BOOL(*    Rückmeldung Lichtschranke Aufgabestation*);
    RM_LS_BF            :BOOL(*    Rückmeldung Lichtschranke an Bandförderer*);
    RM_MS_BF            :BOOL(*    Rückmeldung Motorschutz Bandförderer*);
    RM_MS_DT            :BOOL(*    Rückmeldung Motorschutz Motor Drehtisch*);
    RM_MS_KOMP        :BOOL(*    Rückmeldung Motorschutz Motor Komperssor*);
    RM_NOT_AUS        :BOOL(*    Rückmeldung Not Aus hat ausgelöst*);
    RM_SI_LAST            :BOOL(*    Rückmeldung Sicherung Laststrom*);
    RM_SI_SEN            :BOOL(*    Rückmeldung Sicherung Sensorik*);
    RM_SI_V_AST        :BOOL(*    Rückmeldung Sicherung Ventile Aufgabenstation*);
    RM_SI_V_PRES        :BOOL(*    Rückmeldung Sicherung Ventil Presse*);
    RM_SI_V_UEST        :BOOL(*    Rückmeldung Sicherung Ventil Übergabestation*);

    A_M_BF                :BOOL(*    Ansteuerung Motor Bandförderer Ein*);
    A_M_DT_L            :BOOL(*    Ansteuerung Motor Drehtisch Links Ein*);
    A_M_DT_R            :BOOL(*    Ansteuerung Motor Drehtisch Rechts Ein*);
    A_M_KOMP            :BOOL(*    Ansteuerung Motor Kompressor*) ;
    A_V_AST_AS        :BOOL(*    Ansteuerung Ventil Aufgabestation Arbeitsstellung Ein*);
    A_V_AST_GS        :BOOL(*    Ansteuerung Ventil Aufgabestation Grundstellung Ein*);
    A_V_PRES            :BOOL(*    Ansteuerung Ventil Presse Ein*);
    A_V_UEST_AS        :BOOL(*    Ansteuerung Ventil Übergabestation Arbreitsstellung Ein*);
    A_V_UEST_GS        :BOOL(*    Ansteuerung Ventil Übergabestation Grundstellung Ein*);
    END_STRUCT
END_TYPE;
END_VAR
```
Aber ich bekomme immer noch Fehlermeldungen. Ich hoffe ihr könnt mir helfen.

In der Hilfe hab ich nur folgendes Beispiel zur Struktur gefunden.

```
TYPE <Strukturname>:
    STRUCT
 <Variablendeklaration 1> . .  <Variablendeklaration n>
    END_STRUCT
END_TYPE
```


----------



## Cerberus (15 Januar 2009)

Aber ich bekomme immer noch Fehlermeldungen. Ich hoffe ihr könnt mir helfen.[/quote]

Kannst du die Fehlermeldungen mal posten?


----------



## Golden Egg (15 Januar 2009)

Siehe Anhang
Hab jeweils Doppelklick darauf gemacht


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Siehe Anhang
> Hab jeweils Doppelklick darauf gemacht


 
Nimm mal den Strichpunkt nach END_TYPE weg!!


----------



## Golden Egg (15 Januar 2009)

Hmm das bringt dann auch nichts. Du kannst ja mal zu Testzwecken einfach den Code von mir in ein leeres Projekt in die Globalvariablen einfügen und testen.


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Hmm das bringt dann auch nichts. Du kannst ja mal zu Testzwecken einfach den Code von mir in ein leeres Projekt in die Globalvariablen einfügen und testen.


 
Der Strichpunkt ist auch ein Fehler. Nur mag er noch andere Dinge nicht. Habs grad selber erlebt. Bin noch am Suchen, was ihm nicht passt.


----------



## Golden Egg (15 Januar 2009)

Aber von Grund auf ist es schon möglich eine Struktur in den Globalvariablen anzulegen? Oder ist das einfach nicht Möglich?


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Aber von Grund auf ist es schon möglich eine Struktur in den Globalvariablen anzulegen? Oder ist das einfach nicht Möglich?


 
Ich würde mal vermuten, dass er das nicht mag. Schieb doch dein STRUCT in den Reiter "Datentypen". Dort kannst du dann ein neues Objekt einfügen, dem du dann den Namen deiner STRUCT gibst. Dann erscheint auch sofort der STRUCT-Rumpf.


----------



## Golden Egg (15 Januar 2009)

Den hab ich erfolgreich ignoriert. Danke


----------



## Cerberus (15 Januar 2009)

Kein Problem. Freu mich wenn ich helfen kann!


----------



## Golden Egg (15 Januar 2009)

Aber die dort generierte Struktur muss dann schon noch in den Globalvariablen aufgerufen werden oder ist das dann nicht unbedingt nötig?


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Aber die dort generierte Struktur muss dann schon noch in den Globalvariablen aufgerufen werden oder ist das dann nicht unbedingt nötig?


 
Also normalerweise ist es so, dass du irgendwo (egal ob Programm oder Globale Variablen) eine Variable deklarierst, die dann als Datentyp dein STRUCT hat.


----------



## Golden Egg (15 Januar 2009)

Und was ist dann der Unteschied wenn ich die Struktur z.B. anstatt in den Globalen Variablen in Main aufrufe? Oder besser gesagt welche Variablen sollte man alsGlobale Variablen anlegen?
Kann das sein, das dann andere Geräte nur auf diese zugreifen bzw. abfragen können?


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Und was ist dann der Unteschied wenn ich die Struktur z.B. anstatt in den Globalen Variablen in Main aufrufe?


 
Deine ganze Datei kann mehrere Programme, FBs und FUNs enthalten. Wenn du die Variable vom Typ Struktur im Main deklarierst, dann kannst du die Variable nur dort verwenden. Eine Variable vom Typ Struktur, die in den Globalen Variablen deklariert wurde kann in allen Bausteinen verwendet werden.


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Oder besser gesagt welche Variablen sollte man alsGlobale Variablen anlegen?


 
Du solltest nur solche Variablen als Globale Variablen deklarieren, die du auch wirklich in mehreren Programmen bzw. FBs bzw. FUNs benötigst (z.B. Initialisierungsvariablen, Logger-Variablen, Debug-Variablen, etc.).



Golden Egg schrieb:


> Kann das sein, das dann andere Geräte nur auf diese zugreifen bzw. abfragen können?


 
Was meinst du mit "andere Geräte"?


----------



## Golden Egg (15 Januar 2009)

Cerberus schrieb:
			
		

> Was meinst du mit "andere Geräte"?


Externe Peripherie die über ein Bussystem Zugriff auf bestimmte Variablen benötigt.


----------



## Cerberus (15 Januar 2009)

Golden Egg schrieb:


> Externe Peripherie die über ein Bussystem Zugriff auf bestimmte Variablen benötigt.


 
Verstehe ich das richtig, dass du Variablen hast, die du über den System Manager mit der externen Peripherie verknüpfen willst?
Das machst du so, dass du die Variablen wieder dort anlegst wo du sie brauchst: Brauchst du sie nur in einem Programm, FB oder FUN, dann deklarierst du sie in diesem; brauchst du sie in mehreren, deklarierst du sie unter den globalen Variablen.

Diese Variablen, die mit der Peripherie verknüpft werden, werden wie folgt deklariert:

```
Eingang: BOOL AT %I*; (*digitaler Eingang*)
Ausgang: BOOL AT %Q*; (*digitaler Ausgang*)
```
In diesem Fall brauchst du dich nicht um die Adress-Vergabe kümmern.

Wenn du dann nach dem Übersetzen des Projekts die .tpy-Datei im System-Manager einfügst, dann werden genau diese Variablen dort angezeigt und du kannst sie mit der entsprechenden Peripherie verknüpfen.


----------



## Brro87 (15 Januar 2009)

Hallo zusammen

Strukturen gehören nicht ins Ressourcenregister, sondern unter das Datentypenregister!
(Im Anhang, hab ich das Register gekennzeichnet...)

Das VAR_GLOBAL und END_VAR kannst du dann weglassen.
Da Datentypen immer global verarbeite werden!

Von wo hast du den das mit der Abkürzung Per und dem : 
Also wenn du Persistente Variablen hast, muss das so aussehen


```
TYPE <Strukturname>:
    STRUCT PERSISTENT
    <Variablendeklaration 1> . .  <Variablendeklaration n>
    END_STRUCT
END_TYPE
```

Das mit dem Punkt-Strich nach der Variablendeklaration stimmt schon, doch ich würde erst nachher den Kommentar dazu schreiben, dann wird der Punkt-Strich weniger schnell vergessen.


```
Testvariable : Bool := TRUE; (* Das ist mein Beispiel *)
```
Gruess Roman


----------



## Cerberus (15 Januar 2009)

Brro87 schrieb:


> Von wo hast du den das mit der Abkürzung Per und dem :


 
Das PER ist in diesem Fall der Name der Struktur!


----------



## Brro87 (15 Januar 2009)

Stimmt.. Sorry!

Ganz klar mein Fehler!


----------



## Golden Egg (16 Januar 2009)

Hab da mal wieder ein kleines Problem. 
Also als ich mein erstes Projekt fertig hatte habe ich mir das zusätzlich als Bibliothek abgelegt um den darin enthaltenen FB Taktgenerator nutzen zu können. 
Wenn ich jetzt einen neuen FB anlege, schreibt der mir in die Variablendeklaration genau die Variablen von dem Taktgenerator rein. 
Das macht der nur beim FB, ruf ich einen neuen FC oder PROG auf ist alles leer wie es sein sollte. Das macht der auch in neuen Projekten wo die Bibliothek nicht eingebunden ist.
Das Phänomen ist auch unabhängig von der Programmiersprache in der der neue FB erstellt wird.
Hab bereits TwinCat schon einmal drüber installiert. Hat auch nichts gebracht.

Ich hoffe ihr könnt mir helfen. Mein Vorarbeiter ist da auch ganz ratlos. 

MfG. Golden Egg


----------



## Cerberus (19 Januar 2009)

Also jetzt mal zum Verständnis, dass ich dein Problem nicht falsch verstehe:

Du hast dein Programm mit dem FB Taktgenerator als .lib abgelegt. Nun machst du ein neues Programm auf und erstellst einen neuen FB. Tritt in diesem der beschriebene Fehler auf? Hast du davor die .lib als Bibliothek eingefügt?


----------



## Golden Egg (19 Januar 2009)

Das tritt auch auf wenn die Bibliothek nicht im Projekt integriert ist. 
"Rechtsklick-->Objekt einfügen-->FB (Programmiersprache ist egal)"
Wenn ich dann oben in die Variablendeklaration des neuen FB´s schau stehen dann die von dem Taktbaustein drin.


----------



## Cerberus (19 Januar 2009)

Also das ist echt ein ganz komisches Phänomen. Hab selber auch schon mehrere Libs programmiert, aber bei mir ist es noch nie aufgetreten.

Tritt dieses Problem auch nach einem Neustart des Rechners auf?


----------



## Golden Egg (19 Januar 2009)

Jup das bleibt.


----------



## Golden Egg (19 Januar 2009)

Als ob ich die "Grunddatei" für den FB aus versehen überschrieben habe...


----------



## Cerberus (19 Januar 2009)

Golden Egg schrieb:


> Als ob ich die "Grunddatei" für den FB aus versehen überschrieben habe...


 
D.h. dass es auch so ist, wenn du mehrere FBs erstellst?

Mit welcher SW-Version arbeitest du?


----------



## Golden Egg (19 Januar 2009)

Cerberus schrieb:


> D.h. dass es auch so ist, wenn du mehrere FBs erstellst?
> 
> Mit welcher SW-Version arbeitest du?



Jup ich kann mehrere erstellen und es kommt immer wieder. Was meinst du mit SW-Version?
Vielleicht das *Siehe Anhang?


----------



## Cerberus (19 Januar 2009)

Nicht ganz. Du hast doch in deiner Startleiste rechts das TwinCAT-Symbol. Wenn du da draufklickst und dann auf Eigenschaften gehst, bekommst du ein Fenster wie im Anhang. Was steht da für ein Build drin?


----------



## Golden Egg (19 Januar 2009)

Das sieht bei mir so aus.
"Allgemein"


----------



## Cerberus (19 Januar 2009)

Wechsel doch mal bitte in den Reiter "Allgemein".


----------



## Cerberus (19 Januar 2009)

Ok, das ist die neueste Software-Version. Die hab ich auch. Habs grad nochmal bei mir probiert. Kann den Fehler nicht nachvollziehen. Komisch!


----------



## Golden Egg (19 Januar 2009)

Weis selber auch nicht wie ich das nun angestellt hab.....:sad:

Naja dann steht halt wenigstens immer was drin in meinen neuen FB´s. Wird´s nicht so langweilig...


----------



## Cerberus (19 Januar 2009)

Kannst du den Fehler mit einer anderen Lib reproduzieren? Sprich eine neue Lib erstellen und schauen, ob der Fehler mit der neuen auch auftritt.


----------



## Golden Egg (19 Januar 2009)

Nein. Hab grad mal ein neues Projekt mit einem FB erstellt, als Bibliothek gespeichert und in einem neuen Projekt eingebunden. Erstellt immer noch die FB´s mit der Variablendeklaration vom Taktgenerator.
Kein Plan wie ich das angestellt habe.


----------



## Cerberus (19 Januar 2009)

Hast du schon mal den Beckhoff-Support nach diesem Problem befragt? Was anderes fällt mir auch nicht mehr dazu ein.


----------



## Golden Egg (20 Januar 2009)

Also gelesen wurde meine E-Mail schon aber die Antwort lässt noch auf sich warten.


----------



## Cerberus (20 Januar 2009)

Kannst es auch mal telefonisch versuchen.


----------



## Golden Egg (9 Februar 2009)

Hi. Das Problem mit der Echtzeit ist gelöst. Ich hab letzte Woche eine neue Festplatte für meinen Laptop bekommen. Seit dem läuft die Zeit normal.

MfG. Golden Egg


----------



## trinitaucher (9 Februar 2009)

Golden Egg schrieb:


> Hi. Das Problem mit der Echtzeit ist gelöst. Ich hab letzte Woche eine neue Festplatte für meinen Laptop bekommen. Seit dem läuft die Zeit normal.
> 
> MfG. Golden Egg


Ne neue Festplatte beeinflusst die Echtzeit 
Hätte ich jetzt nicht gedacht. Aber wer weiß, was "moderne" PCs so alles mit der Hardware veranstalten.

Zumindest kann ich sagen, dass die Echtzeit auf "normalen" PCs oder auch Industrie-PCs wesentlich stärker jitters (um die 5µs) als bei den Beckhoff Hutschienen-PCs (CX-Reihe). Da ist bei mir zumindest trotz ähnlicher Programme aber Auslastung um die 40% der Jitter nie größer als 2µs.


----------



## Golden Egg (9 Februar 2009)

Oder doch nicht....kaum öffne ich ein "altes" Projekt läuft die Zeit wieder langsam. 
Was aber lustig ist wenn ich während der Online-Ansicht mit dem Mausrad scrolle läuft die Zeit normal:sb10:...komisch, komisch


----------



## Golden Egg (9 Februar 2009)

Gibt es bei TwinCAT zufällig auch eine Systemvariable wie im OB1 bei Siemens wo die Zykluszeit des letzten Zyklus steht?


----------



## Cerberus (9 Februar 2009)

Was meinst du mit "Zykluszeit"?


----------



## Golden Egg (9 Februar 2009)

```
OB1_PREV_CYCLE "Cycle time of previous OB1 scan (milliseconds)"
```

Das Programm wird doch bei Beckhoff auch zyklisch abgearbeitet?! Oder


----------



## Cerberus (9 Februar 2009)

Liefert er dir bei Siemens die Zeit zurück, wie lange der letzte Zyklus gedauert hat? Kenn mich mit Siemens nicht so aus.


----------



## Golden Egg (9 Februar 2009)

Jup. So hab ich da immer meine Zeitmessungen gemacht. Einfach die Zykluszeiten addiert.

Ich muss eine Zeitmessung machen die auf Millisekunden genau ist.


----------



## Cerberus (9 Februar 2009)

Also bei TwinCAT dauert ein Zyklus immer gleich lang und zwar genau so lang wie in der Taskkonfiguration eingestellt ist (siehe Anhang).

Sollte dein Programm zu lang sein, um in einem Zyklus abgearbeitet zu werden, dann wird dafür einfach mehrere Zyklen in Anspruch genommen.


----------



## Golden Egg (9 Februar 2009)

Also wenn ich dann ne genaue Zeitmessung machen will, einfach einen Taktgenerator starten mit hoher Frequenz. Die Takte für den Zeitraum Zählen und dann auswerten.


----------



## Cerberus (9 Februar 2009)

Eine andere Möglichkeit wäre, dass du jeden Zyklus die Systemzeit deines PCs ausliest und die Differenz zur letzten Auslesung berechnest. Zum Auslesen kannst du den Baustein "FB_LocalSystemTime" aus der Bibliothek "TcUtilities.lib" nehmen.

Edit:
Nachteil dieser Variante ist allerdings, dass die Systemzeit nur mit der Genauigkeit von einer Millisekunde arbeitet.


----------



## Golden Egg (9 Februar 2009)

Eine Millisekunde ist ausreichend. 

P.S.:Gibt es zufällig eine Pdf oder so wo mal die ganzen Bibliotheken mit Bausteinen aufgelistet sind+Beschreibung was diese können?

In der Hilfe finde ich unter dem Stichwort Bibliothek nur "Bibliothek (TcSimManager.lib)".


----------



## Cerberus (9 Februar 2009)

Schau mal im InfoSystem. Da findest du links die Ordnerstruktur. Unter TwinCAT -> TwinCAT PLC -> TwinCAT SPS Bibliotheken findest du verschiedene Bibliotheken unterteilt nach PC-basierenden und BC-basierenden Systemen.


----------



## asci25 (17 Februar 2009)

War wohl nix - hab mich vertan


----------

