TwinCat, LREAL und Zeitdifferenz

o-bi-wan-knobi

Level-1
Beiträge
23
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Nicht jedes Target unterstützt den Typ LREAL (ein 128Bit langes Real) bist Du sicher das Du die richtige Lib zu dem Target hast?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm! Wie gesagt: Anfänger.
Definiere Target :confused:
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
 
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
4001:persistand_Data: Variable F_GENERIC nicht deklariert.
4263:persistand_Data: Zahl, 'END' oder 'END_CASE' erwartet.

Wie bekomme ich denn heraus, ob die BC5250 mit einer Bibliothek zusammenarbeitet?
Mathias
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
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).
 
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).
 
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.
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
Zurück
Oben