Handrad mit PLC auswerten?

Boxy

Level-3
Beiträge
1.440
Reaktionspunkte
138
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hätte einmal ein kleines Problem und mir fehlt gerade echt der Ansatz. Manchmal sind ja die kleineren Dinge die welche die größen Probleme machen.

Also folgendes Problem:

Ich muss ein Handrad verbauen zum manuelen verfahren eines Rundtisches. Kleine Anmerkung, zweites Meßsystem ist mit direktem Meßsystem schon belegt.
Daher der Gedanke, das Handrad in einer PLC auszuwerten und dann über die Schnittstelle die Achse verfahren!

So nun das Problem wo ich mir gerade die Haare grau werden lässt.

Ich würde ein Handrad der Firma EBE (das CS100) einsetzen, welches mit 24 V betrieben werden kann. Dieses liefert die Rechteck Signale A, /A, B, /B wobei B um 90° verschoben sein soll.

Gut mittels den 100 Imp. pro Umdrehung kann man ja die Pulse auswerten. Nur wie kann ich Drehrichtung +/- erkennen :confused:

Ist jetzt zwar nicht für ne Siemens SPS sondern für einen Exoten, aber Siemens verstehe ich wenigsten. Also falls einer da nen Bsp. hätte ...

Danke schon mal vorab ;)
 
Hallo

Werte doch den Flankenwechsel der einzelnen Spuren aus. (Wenn deine Steuerung das so schnell auswerten kann)
Je nachdem welchen Zustand die andere Spur hat kannst du dann sagen, ob + oder -

A --__--__--
B -__--__--_

z.B.
Spur "A" neg.Flanke & Spur "B" =0 => +
Spur "A" neg.Flanke & Spur "B" =1 => -


oder
vergleiche zwei Zählerstände ob diese sich vergrößern oder verkleinern.
(diese Auswertung kommt aber erst verzögert, da erst ein Zählerunterschied erkannt werden muß)

mfG
Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit der Auswertung per Flanke, ist mir im Anschluß auch eingefallen :cool:
Das Horner Display hat ja ne Zyklusszeit von 0,2ms/K, da sollte einiges ja reichen.

Aber könntest Du mir das mit den Zählern genauer erklären? Ich stehe da auf dem Schlauch ...
 
Zuletzt bearbeitet:
Spur "A" neg.Flanke & Spur "B" =0 => +
Spur "A" neg.Flanke & Spur "B" =1 => -
Andreas
Für eine Handradauswertung mag das noch funktionieren, so lange das Handrad eine Rasterung hat, die Impulse ohne Betätigung (durch Erschütterung) zuverlässig verhindert. Im Allgemeinen sollte man aber mindestens die positive Flanke von A zusätzlich auswerten, sonst läuft Dir bei Vibrationen die Achse weg. Noch besser ist es, alle vier Flanken auszuwerten.
 
Für eine Handradauswertung mag das noch funktionieren, so lange das Handrad eine Rasterung hat, die Impulse ohne Betätigung (durch Erschütterung) zuverlässig verhindert. Im Allgemeinen sollte man aber mindestens die positive Flanke von A zusätzlich auswerten, sonst läuft Dir bei Vibrationen die Achse weg. Noch besser ist es, alle vier Flanken auszuwerten.

Danke auch für diesen Hinweis, aber ich dachte eh daran das man das Handrad mittels ner Funktion aktivieren muss und dies nur im Jog-Modus aktiviert ist. Bei Anwahl Auto bzw. Manu-Jog via Taste wird die Anwahl des Handrades deaktiviert!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mal einen SCL Code hier im Forum veröffentlicht.

Code:
        ___     ___
Ch_A  _|   |___|   |_ 
          ___     ___
Ch_B  ___|   |___|
      0 1 3 2 0 1 3 2

BA
00 = 0 
01 = 1
11 = 3
10 = 2
Code:
SIG := 0;
IF Ch_A THEN 
    SIG := SIG + 1;
END_IF;

IF Ch_B THEN 
    SIG := SIG + 2;
END_IF;
    
IF (SIGold = 0 AND SIG = 1) 
OR (SIGold = 1 AND SIG = 3) 
OR (SIGold = 3 AND SIG = 2) 
OR (SIGold = 2 AND SIG = 0) THEN
    myValue := myValue + 1;
END_IF;

IF (SIGold = 2 AND SIG = 3) 
OR (SIGold = 3 AND SIG = 1) 
OR (SIGold = 1 AND SIG = 0) 
OR (SIGold = 0 AND SIG = 2) THEN 
    myValue := myValue - 1;
END_IF;

SIGold := SIG;
Der Trick dabei ist dem Signalzustand einen Wert zuzuordnen und dann diesen Wert mit dem aus dem letzten Zyklus zu vergleichen.

Diese Methode ist auch mit KOP/FUP/AWL/usw. umsetzbar.
 
Jetzt habe ich aber doch das Problem, das der Hersteller für den Geber (EBE) nur ein Mindestbestellwert von 1000€ hat und ich nur einen Handradgeber für ca. 200€ benötige :twisted:

Kennt da einer noch ne andere Bezugsquelle für solche Teile?
Also mit 24V für Anschluß direkt an die SPS ...
Ist halt ne billig SPS und nix mit Profibus und Co.
 
Ich möchte diese Thema nochmal her ziehen.

Habe dies nun einmal via normale Eingaänge und der Methode

U Spur A
U FP Spur B
= Vor

U Spur B
U FP Spur A
= Zurück

versucht und irgendwie verschluckt die Steuerung (leider keine Simens) Impulse oder bekommt diese nicht mit (Zyklus ca. 10ms).

Die Steuerung bietet mir auch die Möglichkeit von HighSpeedCounter (HSC).

Da ich noch nie mit Countern in dieser art gearbeitet habe, fehlt mir gerade total der Plan wie man nun hier eine Auswertung machen könnte.

Hat da einer eine Lösung für mich?
Am liebsten AWL :wink:, das kann ich einfacher auf die "fuck" Horner umsetzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
leider keine Lösung, aber mein Gefühl sagt mir dass es besser wäre eine Hardware-Lösung anszustreben.

Bei B&R z.B. haben wir extra Encoder-Karten welche die beschriebenen Encoder-Signale aufbereiten und als DINT zur Verfügung stellen. Drehrichtung usw. braucht man sich nicht zu kümmern. Hast du bei deiner Steuerung schon geschaut ob das geht ?

Wenn das Teil 100 Imp / Umdrehung hat kann man schon mal mit 200-400 Imp Pro Sekunde rechnen wenn der Bediener mal fleissig dreht... ich denke eine normale Bearbeitung (10 ms) kannst du vergessen.

Kenne aber auch die Horner bzw. den High-Speed Counter nicht, vielleicht bietet der ja diese Möglichkeit...

bg
bb
 
denk mal darüber nach:
http://www.motron.de/index.php?article_id=46

Das ist ein Frequenzteiler mit 3 Kanäle, deren Teilerverhältnis kannst du über Jumper einstellen.
Was das Ding kostet, weiss ich aber nicht. Ansonsten kannst du dir so einen F-Untersetzer selber zusammenlöten.

Gruß
Sailor

PS: Die Genauigkeit setzt du dann selbstverständlich auch runter!
 
Wenn das Teil 100 Imp / Umdrehung hat kann man schon mal mit 200-400 Imp Pro Sekunde rechnen wenn der Bediener mal fleissig dreht... ich denke eine normale Bearbeitung (10 ms) kannst du vergessen.
Das kann ich aus Erfahrung bestätigen. Ich setze ähnliche Handräder ein. Mit einem Abtast-Intervall von 1ms ist komfortables Arbeiten möglich. Bei 10ms Abtast-Intervall muss man langsam und gleichmäßig drehen, komfortables Arbeiten ist damit nicht möglich.
Lösungen für die Auswertung der Drehgeber-Signale findest Du im Programmierwettbewerb, zweite Aufgabe.
Gruß
Erich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Thx, das es mit 10ms nicht geht habe ich ja selbst angedeutet :rolleyes:
Daher die Frage nach etwas über Zähleingänge ...


@LargoD, hast Du Deine Lösung mal bei 10ms versucht?
 
Hallo,

falls sich das Problem noch nicht gelöst hat, ich habe bei uns in der Firma eine Fräsbank stehen wo es folgendermaßen gelöst wurde: statt einen Impulsgeber wurde ein einfacher gleichstromgenerator für die Handradfunktion verwendet.
Das Signal geht allerdings sofort auf den Regler sein Sollwert.Über eine umschaltung mittels Poti und ein Relais wird hierbei zwischen Eil- und Schleichgang umgeschaltet.
Das Ding funktioniert einfach klasse, wenn du willst scanne ich es mal als PDF ein.

Gruß, Ronald.
 
Hi,

ne danke ... Das Handrad hängt ja in einem Handpanel und ist halt ein Elektronisches Handrad. Soll ne SW Lösung sein ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
100 Impulse/Umdrehung = 400 Signalflanken/Umdrehung. Bei 10 ms Taskzyklus wird das schon bei 1/4 Umdrehung/Sekunde kritisch. Das wirst Du dem Bediener kaum zumuten können.
Du brauchst entweder
eine schnelle Zählerbaugruppe,
zwei Interrupteingänge
oder eine zusätzliche SPS-Task mit z. B. 1 ms Zyklus.
Ich weiss aber nicht, was Deine SPS in dieser Richtung bietet.
 
Die 100 Impulse pro Umdrehung bei 10ms Abtastintervall solltest Du vergessen, das ist nicht brauchbar.
Entweder wesentlich schneller abtasten oder ein Handrad mit deutlich weniger Pulsen pro Umdrehung.
Wenn das Handrad nicht änderbar ist und das Abtastintervall auch nicht, muss Du einen Vorteiler einsetzen. Für eine andere Anwendung habe ich so was schon mal gebraucht. Falls erforderlich kann ich Dir einen Hersteller raussuchen.

Gruß
Erich
 
100 Impulse/Umdrehung = 400 Signalflanken/Umdrehung. Bei 10 ms Taskzyklus wird das schon bei 1/4 Umdrehung/Sekunde kritisch. Das wirst Du dem Bediener kaum zumuten können.
Du brauchst entweder
eine schnelle Zählerbaugruppe,
zwei Interrupteingänge
oder eine zusätzliche SPS-Task mit z. B. 1 ms Zyklus.
Ich weiss aber nicht, was Deine SPS in dieser Richtung bietet.

Hi,

also Interrupteingänge hat die nicht, ist zu billig *ROFL*
SPS-Task mit 1ms wäre toll, ist aber net möglich da nicht vorhanden :cool:

Also was gehen würde und ja auch mein Gedanke ist, schnelle Zähler!
Da hat das Teil zwei Counter wir glaube schon oben beschrieben.

Mir fällt da halt gerade keine Strategie bzw. nen Code ein.
Da sehe ich den Wald vor lauter Bäumen gerade nicht mehr :cool:!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und die Zählerbaugruppe in Deinem System kann auch das Signal aus dem Handrad dekodieren? (Also zwei Eingänge um 90 Grad versetzt?)
Wenn nicht, musst Du noch einen Quadraturdekoder vorschalten.
Gruß
Erich
 
Noch eine Idee, wie es vielleicht doch per Software geht.
Wenn Du mit dem restlichen Programm eine deutliche Zykluszeitverlängerung vertragen kannst und wenn sich das Timing Deines zyklischen Programmes einigermaßen vorhersagbar verhält, könntest Du den Software-Dekoder an vielen Stellen im Zyklus aufrufen.
Die Aufrufe musst Du so verteilen, dass ausreichend kurze Auslese-Intervalle entstehen. Vorher natürlich immer das PAE aktualisieren.
Ist nicht schön, so könnte es aber gehen.
Gruß
Erich
 
Hi,

Ich hab ja schon angeboten, über einen Untersetzer die Signale für die SPS verarbeitbar zu machen.
Wenn du die untersetzen Signale in der SPS wieder "hochsetzt", bzw. aus der untersetzten Frequenz in Abhängigkeit von der Zykluszeit, die ja die kürzeste messbare Zeit der "Normalo"-SPS ist (bei Siemens S7 im OB1 temporäre Variable OB1_PREV_CYCLE) dir einen Messwert bildest?
Man müßte halt etwas rechnen und 100% genau wirds auch nicht. Ausserdem wirds wahrscheinlich bei Stoppen/Drehrichtungswechsel des Rades zum Übersteuern kommen.


Gruß
Sailor
 
Zuletzt bearbeitet:
Zurück
Oben