TIA TM Count 1x24V

Sorry das ich jetzt immer so blöd Frage, aber ich bin Lehrling im 1. Lehrjahr und ich bin jetzt zu dem TM_Count Modul gesetzt worden und soll jetzt die Impulse mit dem Zählen und bei einem Endtaster dann anschließend auf 0 setzen. Hättest du da vielleicht Tipps die für mich leichter verständlich sind. Ich kann mich leider in Handbüchern noch nicht so leicht zurechtfinden :( . Ich würde nur gerne wissen welchen von den 4 Betriebsmodis ich jetzt genau verwenden sollte. Das Rücksetzen funktioniert ja anscheinend, wenn man den richtigen Ausgangswertebereich hat mit den Byte 8 Bit 0-3 (soweit ich das jetzt aus dem Forum hier entnehmen kann). Aber nicht jeder Modi kann den Ausgang bis Byte 8 beschreiben also bin ich mir da relativ unsicher welchen ich benutzen soll. Würde mich sehr freuen, wenn mir hier geholfen werden könnte :).
 
@FelixMaurer
@Matteo Fuchs
Ich muss zugeben, dass das Handbuch Siemens-typisch jetzt nicht der Burner ist - dennoch kann man, wenn man denn will, darin die gewünschten Info's bekommen. Aber ganz generell : wenn ihr dort weiterkommen wollt dann lest erstmal das Handbuch und wenn etwas unklar ist dann kommt mit speziellen Fragen zurück. Das bisherige hört sich von der Fragestellung her ein bisschen so an wie : macht es mir mal gerade fertig ...

An Matteo: wenn du zählen willst dann wird der Modus Frequenzmessung nicht der richtige für dich sein ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mich jetzt für diesen Modus entschieden:
1691567228527.png
Dann hab ich dieses Technology Objekt hinzugefügt:
1691567282134.png

Da sollte ja jetzt bei CountValue ein Wert kommen wenn ich meinen Motor bewege, aber kommt nichts. (Ich habe den Baustein auch schon mit meinem TM_Modul gelinked)
Was hab ich falsch gemacht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich für Positonserfassung mit Inkremental-Encodern mit schnellen Hardware-Zählern hantieren muss, dann tue ich mir meistens nicht die ganzen komplizierten Spezialfunktionen an, sondern lasse Mathematik für mich arbeiten :cool:

Ich lasse die Zählkanäle frei vorwärts/rückwärts laufen über den gesamten 32-Bit-Zählumfang. An der Stelle, wo ich meinen Nullpunkt (Referenz) haben will, merke ich mir den Zählerstand (Count Value) bzw. setze da eine DINT-Variable "relative_Position" auf 0 (*). Ab da arbeite ich nur noch relativ zur gemerkten Referenzposition: in jedem Zyklus hole ich den Zählerstand, bilde die Differenz zum Zählerstand im Zyklus vorher und addiere die Differenz zur relativen Position. Das Bilden der Differenz vorwärts/rückwärts/über Zählumfang hinweg ist dank der Zweierkomplement-Darstellung von INT/DINT eine simple Subtraktion. :cool: Wenn man das in jedem Zyklus macht, dann reichen auch die unteren 16 Bit des Zählerstands (falls man Mehrkanal-Zählerbaugruppen hat und E/A-Adressen sparen muss).
Falls nötig kann ich dann noch die relative Position auf z.B. eine Wegstrecke in mm skalieren.

(*) Da geht das Referenzieren/Nullsetzen sogar während der Bewegung, ohne daß Encoder-Inkremente verloren gehen.

Für die "TM Count 1x24V" bedeutet das:
• Betriebsmodus: Manueller Betrieb (ohne Technologieobjekt)
• Betriebsart: Zählen/Positionserfassung
• keine Prozessalarme
• Zähleingänge Signalart: Inkrementalgeber (A, B phasenversetzt)
• Signalauswertung: Vierfach (Einfach und Zweifach verwende ich fast nie, die verschlechtern nur die Auflösung)
• Sensortyp: P-Schalter
• Zählverhalten: alles Standardeinstellung
• Digitaleingänge (DI0 .. DI2): ohne Funktion (**)
• Digitalausgänge: (DQ0 ,, DQ1): Nutzung durch Anwenderprogramm (**)

(**) DI0, DI1, DI2, DQ0, DQ1 können dann wie zusätzliche normale Digitaleingänge/Ausgänge im Programm benutzt werden, z.B. für "dezentrale VorOrt" Taster, Schalter, Sensoren, Lichtschranken, Leuchten, Pneumatikventile am Antrieb (z.B. Transportband) im selben Kabel wie die Encodersignale, oder die Ausgangs-LED am Modul als zusätzliche Status/Diagnose-LEDs.

Wenn ich den Zählerstand aus dem Zählkanal auslese, lese ich normalerweise aus der Periepherieadresse vom Modul (z.B. %ID20:P ) anstatt aus dem Prozessabbild ( %ID20 ). Wenn man nur im OB1 den Zählerstand liest, dann kann man auch den Wert aus dem Prozessabbild lesen, dann erhält man den Zählerstand vom Beginn des OB1-Zyklus.

Harald
 
Zuletzt bearbeitet:
Wenn ich den Zählerstand aus dem Zählkanal auslese, lese ich normalerweise aus der Periepherieadresse vom Modul (z.B. %ID20:p ) anstatt aus dem Prozessabbild ( %ID20 ). Wenn man nur im OB1 den Zählerstand liest, dann kann man auch den Wert aus dem Prozessabbild lesen, dann erhält man den Zählerstand vom Beginn des OB1-Zyklus.
Wir haben jetzt alles so eingestellt wie du gesagt hast, aber wenn wir den Zählerstand aus dem Zählkanal auslesen wollen bekommen wir einfach keinen Zählerstand raus
 
- richtige Eingangsadresse verwendet?
- flackern die A- und B-LED am Modul, wenn der Encoder bewegt/gedreht wird?
- ist in der Projektierung noch das Software-Tor oder ein Hardware-Tor aktiviert?
- gibt es Fehlermeldungen, z.B. im CPU-Diagnosepuffer? Oder rote LEDs?
- Hardware Konfig ist übersetzt und in die CPU geladen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
- richtige Eingangsadresse verwendet?
- flackern die A- und B-LED am Modul, wenn der Encoder bewegt/gedreht wird?
- ist in der Projektierung noch das Software-Tor oder ein Hardware-Tor aktiviert?
- gibt es Fehlermeldungen, z.B. im CPU-Diagnosepuffer? Oder rote LEDs?
Eingangsadresse haben wir die ID5, weil ja dort die Zählwerte geschrieben werden.
Am Modul flackern bei Bewegung die LEDs
Die Tore sind deaktiviert
Und es gibt keine Fehlermeldungen
 
Siehe im Gerätehandbuch des Moduls ET 200SP TM Count 1x24V (2019) die Erläuterungen zu Steuerschnittstelle und Rückmeldeschnittstelle.
4.3 Manueller Betrieb (ohne Technologieobjekt)
4.3.5.1 Belegung der Steuerschnittstelle
4.3.5.2 Belegung der Rückmeldeschnittstelle

Seite 56 Steuerbit SW_GATE
Mit diesem Bit öffnen und schließen Sie bei Verwendung eines Inkremental- oder Impulsgebers das Software-Tor. (...) Das Software-Tor kann nicht deaktiviert werden.
Also muß das Steuerbit SW_GATE (Q-Adresse + 9.0) auf 1 gesteuert werden. Ich würde das wahrscheinlich dann machen, wenn das Modul angelaufen und parametriert ist, also wenn das Statusbit STS_READY (I-Adresse + 13.4) = 1 ist.
SW_GATE := STS_READY;

Beobachte auch mal die Statusbits:
I-Adresse + 13.4 : STS_READY
I-Adresse + 13.5 : STS_SW_GATE
I-Adresse + 14.2 : STS_GATE
I-Adresse + 14.1 : STS_CNT
und den Zählwert I-Adresse + 0: COUNT_VALUE (DINT)

Tipp: lege die I- und Q-Anfangsadressen des Moduls jeweils auf eine gerade Adresse. Dann kann man für die Steuerschnittstelle und die Rückmeldeschnittstelle eine Struktur (besser UDT) deklarieren und dann leichter symbolisch auf die Schnittstellensignale zugreifen.

Harald
 
Zurück
Oben