Initiator U. Sacklowski
Version: 07.11.01
Es sind folgende Angaben je Parameter zu machen:
- Wertebereich bzw. Werte. Form: [ ... ]
- Einheit
- repraesentiert durch "variable"
- inhaltliche Beschreibung, gegebenenfalls mit Bezug zu Fenstern
- Autor
Kommentare:
- zu einzelnem Parameter: nachfolgend eingerueckt und ohne Kennung.
- zu mehreren Parametern: vorangestellt mit #-Kennung
- Originalkommentare aus der Steerng.ini - Datei: ##-Kennung
Ergaenzungen/Aenderungen durch andere Projektmitglieder sind mit Namen
und
Datum zu kennzeichnen.
[Motor i]
Name=Beugung fein
Unit=Sekunden
repräsentiert durch "eUnit"
Einheit des Koordinatensystems. Die Korrekturfaktoren
sind
i.A. für Winkelsekunden berechnet. Der
Nutzer hat bei
einigen Antrieben die Wahl zwischen [Grad,Minuten,Sekunden,
Millimeter,Mikrometer,Channel,None]
Die Winkel werden dann entsprechend umgerechnet.
Ansonsten können beliebige Einheiten
angegeben werden.
TUnitType in comhead.h
(-> Hepp, Freund)
Type=TMotor
IOAddr=
repräsentiert durch "wBaseAddr"
gibt den I/O-Port für C-832 Controller
an
(z.B. 0x210)
(-> Hepp, Freund)
DeathBand=1
Regelung setzt innerhalb dieses Bereichs aus
repräsentiert durch "wDeathBand"
(-> Hepp, Freund)
Digits=3
Anzahl der Nachkommastellen die in den Dialogen
und Koordi-
natensystemen für die Anzeige der Positionen
benutzt werden
(z.B. bei Winkelangaben)
repräsentiert in DFmt und SFmt
(-> Hepp, Freund)
RamAddr=0xD000
BoardId=1
ordnet dem logischen Motor einen Kanal auf
der Controller-
karte zu
repräsentiert durch "nOnBoardId"
(-> Hepp, Freund)
SpeedScale=188.200
repräsentiert durch "fSpeedScale"
Faktor zur Angabe der Geschwindigkeit in verständlicherer
Form "Einheiten je Sekunde"
(-> Hepp, Freund)
##Kontrollparameter
##Koennen im Fenster Einstellungen/Motor/Motorbew.optimieren
##veraendert werden
##Warnung kann zu Kriechbewegung des Motors fuehren !
##Effekt der Aenderungen kann per Scan ueberprueft werden
MaxVelocity=8000
repräsentiert durch "dwMaxVelocity"
Geschwindigkeit in Encoderimpulsen pro Sekunde
(-> Hepp, Freund)
Torque=80
Beschränkung des maximalen Motorstromes
-> "wTorque"
(-> Hepp, Freund)
Gain=210
Statische Verstärkung -> "wKP"
(-> Hepp, Freund)
DynamicGain=110
Dynamische Verstärkung -> "wKD"
(-> Hepp, Freund)
Acceleration=7000
repräsentiert durch "dwAcceleration"
Bestimmt die Beschleunigung des Antriebes
Einheit: Motorencoderschritte / Sekunde^2
Range: T812 -> 0 bis 8.388.608 ( 8000000
hex.)
T832 -> 0 bis 67.108.863 (3FFFFFFF hex.)
(-> Hepp, Freund)
Velocity=7999
im Programm repräsentiert durch "dwVelocity"
Geschwindigkeit in Encoderimpulsen pro Sekunde
Range: TC812 -> 1 bis 8.388.608 ( 8000000
hex.)
TC832 -> 0 bis 67.108.863 (3FFFFFFF hex.)
(-> Hepp, Freund)
DeccelerationPoint=20
RemoveLimit=4000
repräsentiert durch dwRemoveLimit
Strecke die Motor bei Erreichen der Endlage
zurückfährt.
Sollte so gewählt werden, dass Endlagenschalter
entspannt
wird.
Einheit: Motorencoderschritte
(-> Hepp, Freund)
##Referenzpunkt
InitialMove=1
[0,1]
repräsentiert durch "bInitialMoveReady"
Gibt an, ob mit dem Antrieb die Grundstellung
programm-
gesteuert angefahren werden kann.
(-> Freund, Hepp)
InitialAngle=0.0
repräsentiert durch "dInitialAngle"
Gibt an, welche Stellung der Antrieb bei Feststellung
der
Indexposition anfahren soll ???
Wird nicht berücksichtigt bei Ref.pkt.lauf.
Einheit: Winkel(sekunden)
(-> Hepp, Freund)
IndexLine=0
[0,1]
repräsentiert durch "bIndexLine"
Gibt an, ob extra Index-Signal durch Motorsteuerung
empfangen werden kann. (Antriebe Omega &
Theta)
(-> Hepp, Freund)
MoveFirstToLimit=1
[0,1]
repräsentiert durch bMoveFirstToLimit
Angabe, ob Antrieb bei Existenz einer Index-Leitung
erst die
Endlagen anfahren soll.
(Antriebe Omega & Theta besitzen Indizes
für Ref.Pkt.Läufe)
Damit wird gewährleistet, dass Referenzpunkt
immer von
definierter Seite angefahren wird.
(-> Hepp, Freund)
DistanceToZero=220038
repräsentiert durch "lDistanceToZero"
Abstand des Nullpunkts zum Referenzpunkt (durch
Messen von
Kalibrierungskurven festgelegt bzw. durch
Referenzpunkt-
läufe)
Einheit: Motorencoderschritte
(-> Hepp, Freund)
##Interne Motorparameter
##Fenster Einstellungen/Motor/Parameter
PositionMin=-215000
Linke Softwareschranke
repräsentiert durch "lPositionMin"
(-> Hepp, Freund)
PositionMax=215000
Rechte Softwareschranke
repräsentiert durch "lPositionMax"
beide haben als Einheit die Position,d.h.
mögliche
Motorencoderschritte nach links (z.B.PositionMin)
oder
rechts (z.B.PositionMax)
Anmerkung: Es gibt semantische Unterschiede
zwischen
Schritten betrachtet im Programm oder betrachtet
vom
Motorcontroller aus. Die Schrittweite wird
im Programm mit
Hilfe von Winkelmassen beschrieben, d.h. man
kann je nach
verwendeter Einheit festlegen wie gross ein
Schritt wird.
Diese Schritte haben aber in keinster Weise
etwas mit den
Schritten des Motors (betrachtet vom Controller
aus) zu tun.
MOTOR: Schritte immer einen Encoderimpuls
PROGRAMM: Schritte durch Schrittweite festgelegt
Einheit: Motorencoderschritte
(-> Hepp, Freund)
PositionWidth=30
Schrittweite zum Messen des Anfahrverhaltens
repräsentiert durch "wPositionWidth"
Einheit: Motorencoderschritte
(-> Freund, Hepp)
MinimalWidth=4
im Programm repräsentiert durch "wPositionMinWidth"
legt eine kleinste Schrittweite fest, um ein
sicheres
Anfahren des Motors zu gewährleisten.
benutzt in SetAngleWidth (Schrittweite setzen)
Einheit: Winkelsekunden bzw. einfach nur Sekunden
(-> Hepp, Freund)
MaximalWidth=1000
im Programm repräsentiert durch "wPositionMaxWidth"
Beschränkung der maximalen Schrittweite,und
um zu grosse
Schrittweiten zu verhindern
benutzt in SetAngleWidth (Schrittweite setzten)
Einheit: Winkelsekunden bzw. einfach nur Sekunden
(-> Hepp, Freund)
AngleMin=-1255.600
repräsentiert durch "dAngleMin" bzw.
"dAngleMax"
(-> Hepp, Freund)
AngleWidth=2.0000
repräsentiert durch "dAngleWidth"
Nutzereinstellung zur Beschränkung der
Winkelschrittweite
Verwendung in TMotor::SetAngleWidth()
Einheit: Winkelsekunden
(-> Hepp, Freund)
AngleBias=0.000
AngleMax=1255.600
Nutzereinstellung für linke/ rechte Schranke
Verwendung in TMotor::Translate() als Softwareschranken
Einheit: Winkelsekunden
(-> Hepp, Freund)
## Korrekturen fuer Nichtlinearitaet der Antriebe
## nicht aendern !!
Orientation=1
Direction=1
Hysteresis=50
Correction=1
[0,1]
repräsentiert durch "bCorrection"
Bei der Korrektur werden Koeffizienten noch
höherer Ordnung
verwendet. Diese fließen dann bei der
Polynomkorrektur ein.
Gebrauch in TMotor::SetCorrectionState()
(-> Hepp, Freund)
Koeff_3=-2.1463e-16
Korrekturkoeffizienten 3. Ordnung repräsentiert
"dKoeff_3"
Koeff_2=-1.53884e-09
Korrekturkoeffizienten 2. Ordnung repräsentiert
"dKoeff_2"
Koeff_1=5.38e-03
Korrekturkoeffizienten 1. Ordnung repräsentiert
"dKoeff_1"
wichtig zur Unrechnung der Encoder-Positionen
in
Nutzerkoordinatensystem
(-> Hepp, Freund)
Koeff_0=0.0
Upwards=1
##Restart
RestartPosible=0
[0,1]
bestimmt abhängig von "bInitialMoveReady"
den Wert von
"bIsCalibrated" [TRUE,FALSE]
Gibt an, ob das Programm ordnungsgemäß
verlassen wurde,
d.h. die Kalibrierungsdaten im Ini-File sind
korrekt.
(-> Hepp, Freund)
MaxFailure=4
fließt in dwInterval ein
dwInterval = (DWORD)(3.0 * MaxFailure / dKoeff_1);
Verwendung in TMotor::Translate() bei Korrekturpolynom
Einheit: Winkelsekunden
(-> Hepp, Freund)
DeltaPosition=0
repräsentiert durch "lDeltaPosition"
Abspeicherung der aktuellen Position für
Neustart
(unter Berücksichtigung von "dwHysteresis"
und
"bUpwards" [Richtung])
Deltaposition muss zwischen den Softwareschranken
Pos.Min u. Pos.Max. liegen
Einheit: Motorencoderschritte
(-> Freund, Hepp)