STEP7 / Zähler - Impulsauswertung von Servomotor

F

FireBlade

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal und ein Danke jetzt schonmal die den Text lesen und helfen wollen. Die Suche hat mich leider nicht weiter gebracht.
Ich bin absoluter SPS-Neuling und wurde soz. "ins kalte Wasser geworfen".
Ich muss das Projekt (Uni) nächste Woche abgeben und bin am Verzweifeln :-(

Ich versuche mal möglichst detailliert das Problem zu beschreiben:

Ein Greifarm dreht über ca. 180 Grad. Die Bewegung soll über ein Zählermodul erfolgen. Dieses zählt Impulse, die es vom Motor erhält (ca. 650 Impulse), vergleicht die Impulsanzahl mit einem Vergleichswert, und setzt ein Digitalsignal bei Erreichen des Vglwertes auf "1".
Programmtechnisch muss dazu "lediglich" dem Zählermodul der Anfangswert "0" und der Vglwert "650" übergeben werden. Anschliessend wird das Digitalsignal auf "1" abgefragt und dann der Arm gestoppt.

Soweit zur Aufgabenstellung.
Zählermodul 1COUNT40khz ist in HW-Konfig und konfiguriert. (vorwärtszählen, usw.)

Handshake Verfahren das programmiert werden soll:
zum Zähler übertragen:
Ladewert = 0
Vglwert = 650
Tor stoppen
Digitalausgang sperren
Ladewert übernehmen: ja
Vglwert übernehmen: ja
Steuerbits gültig: ja
Dann: Steuerbyte auslesen, warten auf Quittungen

Wenn: Quittung für Ladewert: quittiert UND Quittung für Vglwert: quittiert
Dann zum Zähler übertragen:
Ladewert übernehmen: nein
Vglwert übernehemn: nein
Tor: starten
Digitalausgang: freigeben


Nach viel probieren und lesen will der Zähler nicht so recht.
Ich denke mal ich habe irgwo einen grundlegenden Versteh-/Denkfehler drin.....

1.) was sagt mir der high- bzw- lowbyte zählerstand?
2.) ich habe im awl-code kein "FP" benutzt. Der Zähler zählt trotzdem. Muss das benutzt werden?
3.) Der Zähler zählt, jedoch lowbyte ca. 3 mal von -128 bis +128 und highbyte wert ändert sich nur um ca. +-3
4.) Lade- und Vergleichswert habe ich reingeladen mittels
Code:
U "Bed"
L 0
T "LowByte_Ladewert"

U "Bed2"
L 650
T "LowByte_Vglwert"

... kann es aber nicht wirklich auslesen.


Ahje, ich seh schon, wenn man selbst nichts von SPS versteht, fällt sogar die Problembeschreibung schwer.
Also wer jetzt noch einigermassen mitgekommen ist und mir helfen kann, bitte :)

Gruss Blade (ein verzweifelter Student)

PS: Wir hatten keinerlei SPS-Einführung noch sind wir sonst noch nie mit Automatisierung o. Ä. in Berührung gekommen.
*sich für sein Unwissen und Doofheit versucht zu rechtfertigen*

PS: Wellenreuther liegr vor mir. Ich steig trotzdem nicht durch.
 
Hallo, ist schon etwas spät- ich bin mal im "Halbschlaf" :? über Deinen Thread "geflogen".

Was mir direkt aufgefallen ist, ist Dein Listung.

U "Bed"
L 0
T "LowByte_Ladewert"

U "Bed2"
L 650
T "LowByte_Vglwert"

Mit U "Bed" bzw. U "Bed2" wird das Verknüpfungsergebnis (VKE), je nach Zustand von "Bed" bzw. "Bed2" auf TRUE oder FALSE gesetzt.
Die darauf folgenden Ladebefehle arbeiten ohne Auswertung dieses Verküpfungsergebnisses, d.h. diese Ladeanweisungen werden immer ausgeführt, egal was in "Bed" oder "Bed2" drin steht.

Eine Form (es gibt mehrere Möglichkeiten) ist z.B.:


UN "Bed" // Bedingung nicht erfüllt,
SPB M001 // .... dann Lade- / Transferaktion überspringen
L 0
T "LowByte_Ladewert"

M001: UN "Bed2" // Bedingung nicht erfüllt,
SPB M002 // .... dann Lade- / Transferaktion überspringen
L 650
T "LowByte_Vglwert"
M002: NOP 0
 
Zurück
Oben