TIA DC Motor ansteuern

Kehrer

Level-2
Beiträge
380
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte mit einer S7-1200 mit einem externen inkremental Geber (1000 Striche) über HSC Zähler einen DC Motor (Getriebemotor--kein Synchro oder Schrittmotor!) steuern.

d.h. ich gebe im HMI 50mm vor, dann soll der Motor solange drehen bis der Geber den Wert zurückmeldet.



Sehe aber folgende probleme:
1. beim Inkrementalgeber muß ich immer neu referenzieren damit der 0 hat oder?
2. Kann ein DC Motor (Scheibenwischermotor) über PWM überhaupt angesteuert werden ohne Antriebsmodul?

oder was blicke ich gerade nicht?
 
> beim Inkrementalgeber muß ich immer neu referenzieren damit der 0 hat
ja, immer nach Netztaus, bzw. wenn die SPS die Position verliert.

> ohne Antriebsmodul
ein Scheibenwischermotor zieht schon ein paar Ampere, je nach Last.

Ich steuere z.B. 24V DC-Motoren mittel PWM und einem dicken MOSFET an. (nur für eine Richtung)
Je nach Motor ist die PWM-Frequenz für die Kraft entscheidend.
Für 2 Richtungen gibt es H-Brücken.
Ausserdem kann es je nach PWM-Frequenz piepsen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu 1: Wenn einmal referenziert wurde, bleibt's referenziert, solange die SpannungsVersorgung des Gebers und des HSC-Zählers eingeschaltet bleibt.
Zu 2: Kann denn Dein SPS-Ausgang einen direkten Anschluss des Motors verkraften und wie sieht es mit seiner LebensDauer aus beim häufigen Ein- und Ausschalten (PWM)?
3. Meinst du mit "ich gebe 50 mm vor" eine lineare Position bzw. Distanz und hast Du ein lineares MessSystem?
Ich vermute, Du meinst einen rotatorischen InkrementalGeber, der 1000 Striche für 1 komplette Umdrehung hat?
Wieviele Umdrehungen des Gebers benötigst Du für z.B. 50 mm? Wie willst Du referenzieren? Mit der ReferenzMarke des Gebers und . . . ?

Ich hoffe wir sprechen hier von einer Bastelarbeit, mit der Du Dich mit der Materie vertraut machen willst.

PS:
GeheimTipp: alle 4 Flanken der GeberSignale (A und B) auswerten! Wertet man nur 1 oder 2 (oder 3) aus, so lauert ein Problem, das leicht übersehen wird.
Um alle 4 Flanken auszuwerten, müssen die HSC-Eingänge nicht "schneller" sein, als für 1, 2 oder 3 Flanken.
 
Zuletzt bearbeitet:
Man kann auch den aktuellen Wert des Gebers remanent speichern und beim Neustart der PLC, mit den gesicherten Wert Referenzieren.
Du meinst mit "aktuellen Wert des Gebers" den ZählerStand in der SPS! Ja, wenn sichergestellt ist, dass sich die mechanische Position nicht verändern kann, während die "Elektronik" schläft. Spätestens, wenn der WartungsTechniker dran herum geschraubt hat, nützt die Remanenz nichts.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du meinst mit "aktuellen Wert des Gebers" den ZählerStand in der SPS! Ja, wenn sichergestellt ist, dass sich die mechanische Position nicht verändern kann, während die "Elektronik" schläft. Spätestens, wenn der WartungsTechniker dran herum geschraubt hat, nützt die Remanenz nichts.

Das ist richtig, selbst ein Absolutgeber verliert die richtige Position.
wenn der Wartungstechniker die Mechanik zerlegt.

Ich würde einfach mal die Kirche im Dorf lassen.
 
. . . selbst ein Absolutgeber verliert die richtige Position.
wenn der Wartungstechniker die Mechanik zerlegt.
Der WartungsTechniker hat nicht den AbsolutGeber zu zerlegen und ein "richtiger" AbsolutGeber weiss beim Einschalten ganz genau, wo er steht.
Nur beim indirekten Messen - also wenn mechanisch zwischen der AbsolutGeberStellung und der daraus abgeleiteten mechanischen Position - etwas verändert wurde, dann muss der Offset neu ermittelt werden.
Die von Dir genannte Kirche passt sicherlich besser zum heutigen Sonntag als eine Diskussion über direkt, indirekt, inkrementell mit und mit ohne DistanzCodierung, absolut mit und mit ohne MultiTurn u.s.w. also auch diverse Kombinationen aus inkrementell und absolut. Also gebe ich mich geschlagen und OK, die Kirche darf im Dorf bleiben ;)

PS:
Hatte mal mit einem RetroFit zu kämpfen, da gab's einen ServoMotor mit AbsolutGeber, eine RutschKupplung(!!!) und dann kam erst die Mechanik, deren Position relevant war.
Aber auf solche Ideen kommen zum Glück die Konstrukteure nicht allzu oft.
Es gibt aber häufiger Konstellationen, da kann sogar ein Bediener
im ausgeschalteten Zustand
durch MuskelKraft eine mechanische Position verändern (oder z.B. die Schwerkraft gegen eine verschlissene Bremse), so dass man schon unterscheiden muss, ob's ein real existierender AbsolutGeber ist oder nur eine "SoftwareSimulation" per InkrementalGeber und Remanenz.
 
Zuletzt bearbeitet:
3. Meinst du mit "ich gebe 50 mm vor" eine lineare Position bzw. Distanz und hast Du ein lineares MessSystem?
Ich vermute, Du meinst einen rotatorischen InkrementalGeber, der 1000 Striche für 1 komplette Umdrehung hat?
Wieviele Umdrehungen des Gebers benötigst Du für z.B. 50 mm?
Das kann ich ja dann verrechnen lassen.

Ich hoffe wir sprechen hier von einer Bastelarbeit, mit der Du Dich mit der Materie vertraut machen willst.
hja dass ich mir mal ein Bild davon machen kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der WartungsTechniker hat nicht den AbsolutGeber zu zerlegen und ein "richtiger" AbsolutGeber weiss beim Einschalten ganz genau, wo er steht.
Nur beim indirekten Messen - also wenn mechanisch zwischen der AbsolutGeberStellung und der daraus abgeleiteten mechanischen Position - etwas verändert wurde, dann muss der Offset neu ermittelt werden.

Ich kann den Absolutgeber ja immer neu Nullen, wenn der nicht ausgebaut wird.
Beim Inkrementageber ist das ja so nicht möglich, der braucht immer nen Nulldurchgang neu oder?
 
Zu 2: Kann denn Dein SPS-Ausgang einen direkten Anschluss des Motors verkraften und wie sieht es mit seiner LebensDauer aus beim häufigen Ein- und Ausschalten (PWM)?

ich könnte doch auch ohne PWM arbeiten und einfach nach einer gewissen Strecke (50mm o.ä.) mit Verrechnung des Gebers dann über nen Schütz den Motor an- und abschalten
 
Wieviele Umdrehungen des Gebers benötigst Du für z.B. 50 mm? Wie willst Du referenzieren? Mit der ReferenzMarke des Gebers und . . . ?
Das kann ich ja dann verrechnen lassen.
Um das Verrechnen ging es mir dabei nicht. Klar kannst Du verrechnen.
Ich kenne Deine Mechanik nicht. Wenn Du z.B. von 0 mm bis 200 mm positionieren willst und der Drehgeber dafür mehr als 1 Umdrehung machen muss, dann ist das Referenzieren allein mit der ReferenzMarke des Gebers witzlos, weil nicht eindeutig.

Ich kann den Absolutgeber ja immer neu Nullen, wenn der nicht ausgebaut wird.
Beim Inkrementalgeber ist das ja so nicht möglich, der braucht immer nen Nulldurchgang neu oder?
AbsolutGeber: "neu nullen"? Wie meinst Du das?
InkrementalGeber: Kommt drauf an, was Du mit "immer" meinst! Was der rostige Nagel und ich gemeint haben, das haben wir schon versucht zu erklären.

ich könnte doch auch ohne PWM arbeiten und einfach nach einer gewissen Strecke (50mm o.ä.) mit Verrechnung des Gebers dann über nen Schütz den Motor an- und abschalten
Einfacher wäre das. Wenn Dir der Motor dann nicht zu schnell läuft.
Ich vermute Du willst den Motor in beiden Richtungen drehen können?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
AbsolutGeber: "neu nullen"? Wie meinst Du das?
in der 840D mußte man nur einen Parameter auf 1 setzen und dann Ref drücken. dann war an dieser Stelle 0
Einfacher wäre das. Wenn Dir der Motor dann nicht zu schnell läuft.
Ich vermute Du willst den Motor in beiden Richtungen drehen können?

ne, würde mir reichen wenn er nur vorwärts läuft.

Gedanke: Als Abschneidevorrichtung--> 50mm vor --> schneiden --> 50mm vor --> schneiden usw.
 
würde mir reichen wenn er nur vorwärts läuft.
Gedanke: Als Abschneidevorrichtung--> 50mm vor --> schneiden --> 50mm vor --> schneiden usw.
D.h. Du positionierst immer nur relativ (einfach 50 mm weiter - die absolute Anfangs- und EndPosition sind Dir egal) und dafür musst Du überhaupt nicht referenzieren!
Eher dafür sorgen, dass beim Überfahren der ReferenzMarke der ZählerStand nicht beeinflusst wird.
 
Zuletzt bearbeitet:
Ich nehme das Thema mal wieder auf:
Ich habe im Tia Portal nun den CRTL_HSC Technologie genommen.
Habe die schnellen Zähler auf ID1000 und die Spuren A und B auf I0.0 und I0.1 genommen und parametriert.
Dann gebe ich bei
HSC ID1000 --> Der Datentyp DInt passt nicht zum Datentyp HW_HSC des Formalparameters.
NEW_CV Wert 0 (wie auch immer)

hat mal jemand einen Tipp wie ich da anfangen kann?
 
Zuletzt bearbeitet:
In Deinem Link finde ich ...

13. Parametrieren Sie den Parameter "HSC" mit der Systemkonstanten der Hardware-Kennung (HW-ID). Öffnen Sie dazu den Dialog "Alle Variablen anzeigen" und wählen Sie das Register "Systemkonstanten.

Hinweis
Wenn Sie den Editorbereich aufteilen und die beiden Dialoge "Main [OB1]" und "Systemkonstanten" nebeneinander auf dem Bildschirm haben, können Sie die Konstante "Local~HSC_1" per Drag&Drop zum Parameter "HSC" ziehen.

… aber nichts darüber, was ich mir unter "Datentyp HW_HSC" vorstellen soll. Int sollte reichen?

 
Wenn Sie den Editorbereich aufteilen und die beiden Dialoge "Main [OB1]" und "Systemkonstanten" nebeneinander auf dem Bildschirm haben, können Sie die Konstante "Local~HSC_1" per Drag&Drop zum Parameter "HSC" ziehen.

Das ist kein Problem. Aber #Busy und #Status?
Den Rücksetzbaustein finde ich so nicht. ist der nicht -(R)-?
 
vielleicht kann mir dabei einer was helfen


Ich habe den Inkrementalgeber an I0.1 und I0.0 angeschlossen und mit HSC_1 parametriert

Zählen, A/B Zähler und vorwärts Zählen

EA sind 1000-1003
Dann im OB1 DB1 CRTL_HSC aus den Technologietypen geholt.
in der DB CRTL_HSC _0_DB sollte ich doch nun bei HSC etwas beobachten können.



Tut bei mir aber nichts obwohl I0.0 und I0.1 abwechselnd kommen
hsc.JPGhsc1.JPGhsc2.JPG



Was mache ich falsch?
 
Zuletzt bearbeitet:
Tut bei mir aber nichts obwohl I0.0 und I0.1 abwechselnd kommen
Abwechselnd? Die Signale müssen sich "überschneiden":
Code:
I0.0  I0.1
   0     0
   0     1
   1     1
   1     0
bzw.
___|=====|______
______|=====|___
Der Zähler "weiss" dann zu unterscheiden, ob vorwärts oder rückwärts zu zählen ist.

Wo gibt's eine Beschreibung des Bausteins?
 
Zuletzt bearbeitet:
Zurück
Oben