Ein gutes Neues Jahr.

Mit den Überlegungen zu dem universal einrichtbaren Programm auf den Microcontrollern ist es etwas weiter gegangen. Das Konzept steht und sobald der neue Kopf fertig realisiert ist bekomme ich Unterstützung bei der Programmumsetzung.

Microcontroller-Variablen:
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_1.jpg
Hits:	6
Größe:	63,9 KB
ID:	35862
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_2.jpg
Hits:	6
Größe:	103,9 KB
ID:	35863
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_3.jpg
Hits:	5
Größe:	42,4 KB
ID:	35864

Auf dem Microcontroller sollen drei Programmschleifen laufen, die je nach Bedarf auf einzelne Unterprogramme zugreifen:

Main-Programm:

Mit dem Main-Programm findet die Initialisierung statt. Im Normalzustand hält es sich in Zyklus 3 auf und regelt somit immer auf den Sollwert, der von der Benutzeroberfläche aus neu beschrieben werden kann.
Wird die Geschwindigkeit geändert, so muss Zyklus 2 aufgerufen werden um diese in den Timer_Schritte zu schreiben.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_4.jpg
Hits:	3
Größe:	36,6 KB
ID:	35865

LS-Interrupt:

Wird ausgelöst, wenn sich das Signal eines Lichtschrankenpins ändert.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_5.png
Hits:	2
Größe:	9,6 KB
ID:	35866

Timer_Schritte: Beinhaltet das Programm für die Schrittsteuerung

Unterprogramme:

Lichtschrankenzuordnung initialisieren:

Zuordnung der Lichtschranken um die Steckplätze softwareseitig untereinander austauschen zu können.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_6.png
Hits:	2
Größe:	17,4 KB
ID:	35867

Bereichsinitialisierung:

Zusammensetzung der Bereichskennung
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_7.png
Hits:	2
Größe:	3,0 KB
ID:	35868

Istposition setzen (am Übergang der Lichtschranken):

Beim Eintreten eines LS-Interrupts soll die Istposition mit dem jeweils hinterlegten LS-Übergangswertes beschrieben werden. Hierdurch werden zwischenzeitlich auftretende Schrittverluste kompensiert.
Ein Schreiben findet nur statt, wenn die Lichtschranken aktiv sind. Hierdurch lassen sich bei inaktiven Lichtschranken einfach die Zuordnungen der Lichtschrankeneingänge herausfinden.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_8.jpg
Hits:	3
Größe:	45,9 KB
ID:	35869

Sollgeschwindigkeit als Intervall in Timer_Schritte schreiben:

Die Geschwindigkeit (n) soll als Umdrehungen pro Sekunde übergeben werden. Das Intervall (t) gibt an, alle wie viele Millisekunden der Timer einmal durchlaufen wird. Es sind 400 Schritte pro Umdrehung notwendig.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_9.png
Hits:	2
Größe:	3,7 KB
ID:	35870

Richtungssteuerung:

Mit der Richtungssteuerung wird der CQ/CCW-Pin gesetzt. Des Weiteren werden die Endpositionen überprüft und verhindert, dass diese überfahren werden können.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_10.png
Hits:	2
Größe:	21,7 KB
ID:	35871

Schrittsteuerung (auf dem Timer_Schritte):

Die Schritte werden entsprechend des eingestellten Timerintervalls weiter geschalten, solange der Enabled-Pin gesetzt ist.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_11.png
Hits:	2
Größe:	18,3 KB
ID:	35872

Bereichszählung (ausgelöst vom LS-Interrupt):

Mit der Bereichszählung wird ermittelt, wie viele Schritte in einem Bereich liegen. Hierdurch kann der entsprechende Maßstab des jeweiligen Aktors einfach rekonstruiert werden.
Im Anschluss lassen sich die hierdurch festgelegen LS-Übergangspositionen (X1-X7) über die Einrichtadresse beschreiben.
Klicke auf die Grafik für eine größere Ansicht

Name:	Ablauf_12.jpg
Hits:	4
Größe:	46,1 KB
ID:	35873

Da nicht mehr als 12 Anhänge pro Beitrag möglich sind kommt hier eine Unterbrechung.