# TwinCat, LREAL und Zeitdifferenz



## o-bi-wan-knobi (20 März 2008)

Huhu!
Ich benutze eine BC5250 mit nachgeschaltetem KL2542 (Motorklemme). Die Motorklemme zählt nur die Impulse, die vom Motor-Impulsgeber kommen. Die möchte ich natürlich in eine Drehzahl umwandeln. Zu diesem Zwecke will ich die Impulse pro abgelaufener Zeit messen.
So weit so gut 

Um an eine Zeitdifferenz zu kommen, wollte ich den Befehl GetSystemTime aus der Bibliothek TCbase.lib nutzen. Binde ich die allerdings ein, erscheinen beim Übersetzen mehrere Fehlermeldungen _Fehler 3610: FW_...: 'LREAL' wird nicht unterstützt.

_Ist wahrscheinlich ein Anfänger-Fehler, aber immerhin bin ich das ja auch.
Sollte mir jemand helfen können, wäre ich sehr dankbar.
Mit freundlichen Grüßen
Mathias


----------



## zotos (20 März 2008)

Nicht jedes Target unterstützt den Typ LREAL (ein 128Bit langes Real) bist Du sicher das Du die richtige Lib zu dem Target hast?


----------



## o-bi-wan-knobi (20 März 2008)

Hm! Wie gesagt: Anfänger.
Definiere Target 
Hab auch mal versucht, den SysTick auszulesen, um da was zu erreichen... Klappt auch nicht, da bei Einbinden der Bibliotheken eine Variable nicht definiert ist :-(

Mathias


----------



## zotos (20 März 2008)

Ist die Lib auch für den BC5250 gedacht?


----------



## o-bi-wan-knobi (20 März 2008)

Hm, die Bibliotheken, die ich für GetSysTick eingebunden habe, heißen TCBaseBCxx50.lbx und TCSystemBCxx50.lbx. Hört sich also danach an. Bekomme aber die Fehlermeldungen 
4001ersistand_Data: Variable F_GENERIC nicht deklariert.
4263ersistand_Data: Zahl, 'END' oder 'END_CASE' erwartet.

Wie bekomme ich denn heraus, ob die BC5250 mit einer Bibliothek zusammenarbeitet?
Mathias


----------



## zotos (20 März 2008)

o-bi-wan-knobi schrieb:


> ...
> Um an eine Zeitdifferenz zu kommen, wollte ich den Befehl GetSystemTime aus der Bibliothek TCbase.lib nutzen.
> ...



Ich glaube nicht das Du GetSystemTime aus der TCbase.lib hast, eher aus der TCSystem.lib im Infosys von Beckhoff habe ich auf die Schnelle auch nur GetSystemTime für PC und CX Systeme gefunden (das würde dann nicht auf den BC passen).


----------



## trinitaucher (21 März 2008)

Soweit ich weiß unktionieren auf BCxxxx nur die Biblheken mit der Endung .lb6.
Zu den Fehlermeldungen:
Die erste deutet auf einen fehlenden Datentyp oder eine fehlende Funktion (wahrscheinlich, weil die passende Bibliothek fehlt oder das gesuchte nicht enthält).
Die zweite Meldung ist ein Programmierfehler (CASE-Schleife).


----------



## Jush (22 März 2008)

Hallo,

hier ein Alternative:

wie oft willst Du eine neue Drehzahl haben, und wie viele PPR hast Du?
Wenn Du eine stabile Zykluszeit hast, und hohe PPR, kannst Du Impulse zwischen jedem Zyklus zaehlen, und dann die Drehzahl ausrechnen.
Alternativ mit einem Timer.


----------



## ge_org (22 März 2008)

Bei einem BC9000 kannst Du über %MB4088 bis 4091 Zykluszeitmessung durchführen. Auflösung 1ms/digit.
Proboers mal bei Dir, vielleicht hauts hin.
Georg


----------



## o-bi-wan-knobi (25 März 2008)

Ich glaube, mir fehlen da einige Grundkenntnisse! Anfänger, halt. Aus Dortmund auch noch 
Zum Thema lb6: Die Standard-Bibiliothex ist doch auch eine lbx.
Und wegen %MB4088: Hast du da ein (Mini) Beispielprogramm, wie ich das einbinde? Leider steht dazu nix in der Hilfe.
Oder habt ihr ein Tutorial, wie man als Autodidakt etwas mehr über TwinCat lernen kann? 
Aber danke erstmal bis hierhin für die nette Hilfe!
Mathias


----------



## drfunfrock (25 März 2008)

Hol dir das Info-System herunter (120Mb) und installier dir das. Dann nimm dir ein bisschen Zeit und lese....


----------



## ge_org (25 März 2008)

Einbinden von PLCSystemBC.lb6 müsste reichen für GetSysTick. Für alle BC ist .lb6 nötig. Information System ist auch hilfreich. Timer und ET (Elapsed Time für die Zeitdifferenz) auslesen ist auch hilfreicher Vorschlag.
%MB einfach einbinden in Globale Variablen   zyklusdigits AT% MD4088, wenn sich Online beim Beobachten was ändert an zyklusdigits funktioniert es nicht nur bei einem BC9000 sonder auch bei deinem BC (MD deshalb weil beginnend ab MB4088 4 Bytes belegt werden).
Georg


----------



## drfunfrock (26 März 2008)

1) Man kann im Library-Manager sehen, was aus der Bibliothek exportiert wird. 
2) Ich würde auch einen FB vom Typ TON instanzieren und ET auslesen. Das dürfte bei weitem, die einfachste Lösung sein.


----------

