Schleife im Strukturierten Text

mueller-m

Level-1
Beiträge
31
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen Community,

ich bin gerade dabei einen LKW per CAN-Bus über einen ifm-Controller zu steuern.

Mit zwei Tastern möchte ich die Drehzahl erhöhen bzw. verringern. Die Geschwindigkeit soll dann immer entsprechend gehalten werden, wenn ich den Taster nicht mehr betätige.
Eigentlich eine einfach Darstellung aber ich habe so meine Probleme dies im strukturierten Text wiedergeben zu können.

Mein Ansatz war bei betätigtem Taster alle 500ms die Drehzahl um 50 Umdrehungen zu erhöhen. Wie implementiere ich diese Zeitfunktion in eine Schleife.


Ich hoffe mir kann da jemand weiterhelfen.

Gruß
Matthias
 
Hallo,
eine Zeit solltest du generell nicht in eine Schleife oder eine andere indirekte Bearbeitung mit hinein nehmen ...
Wie wäre es denn so :
Du baust dir einen Taktgeber, der die Impulse in der von dir gewünschten Frequenz liefert.
Ist deine Taste länger gedrückt dann erhöhst du eine Zähl-Variable mit dem Taktgeber (Überprüfung des Max.-Wertes nicht vergessen) bzw. du verringerst ihn.
Bei kurzen Tastendruck erhöhst bzw. verringerst du direkt ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Allgemein sollte man sich beim Erstellen von SPS Programmen darüber im klaren sein, dass diese immer (99%) zyklisch ablaufen und somit für die meisten Anwendungen Schleifen überflüssig sind.
Schleifen verwendet man dann, wenn man z.B. innerhalb eines Zyklus durch große Datensätze iterieren will (z.B. Sortieralgorithmen).

Für dein spezielles Problem reicht, wie Larry schon geschrieben hat, ein normaler Timer (der sich selbst beim Auslösen selbst resettet) als Taktgeber.
 
Mein Ansatz war bei betätigtem Taster alle 500ms die Drehzahl um 50 Umdrehungen zu erhöhen. Wie implementiere ich diese Zeitfunktion in eine Schleife.
Das SPS-Programm ist schon eine Schleife.
Mal angenommen, Deine Zykluszeit liegt bei 20ms. Dann kommt Dein Programm in 500ms 25x an dieser Abfrage vorbei. Du brauchst also an der Stelle nur noch abzufragen: Taster=gedrückt, dann erhöhe (verringere) Geschwindigkeit um 2 und Du kommst auf Deine 50 in 500ms.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin moin,

mit den FB R_Trig kannst du auf die steigende Flanke des Tasters triggern, so hast du das Signal nur für einen Zyklus und erst bei erneuten Tastendruck.

MFG
 
Zurück
Oben