hardware.ini:   Sektion: Motor

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)