General Mechatronics GM6-PCI-Kartenbasiertes Bewegungssteuerungssystem (engl. Motion-Control-System)
Eine ausführliche Beschreibung finden Sie im Systemintegrationshandbuch.
Die GM6-PCI-Bewegungssteuerungskarte basiert auf einem FPGA und einem PCI-Bridge-Interface-ASIC. Eine kleine automatisierte Fertigungszelle kann mit einem kurzen Systemintegrationsverfahren gesteuert werden. Die folgende Abbildung zeigt den typischen Anschluss von Geräten im Zusammenhang mit dem Steuerungssystem:
-
Er kann bis zu sechs Achsen steuern, jede davon kann eine Schrittmotor- oder CAN-Bus-Schnittstelle oder ein analoger Servo sein.
-
GPIO: Vier bzw. acht E/A-Pins sind auf Standard-Flachkabelsteckern untergebracht.
-
RS485 E/A-Erweiterungsmodule: Der RS485-Bus wurde für den Anschluss von kompakten Erweiterungsmodulen für die DIN-Schienenmontage entwickelt. Ein 8-Kanal-Digitaleingang, ein 8-Kanal-Relaisausgang und ein analoges I/O-Modul (4x +/-10 Volt Ausgang und 8x +/-5 Volt Eingang) sind jetzt verfügbar. Insgesamt können bis zu 16 Module an den Bus angeschlossen werden.
-
20 optisch isolierte Eingangspins: Sechs mal drei für den direkten Anschluss von zwei Endschaltern und einem Referenzierungssensor für jedes Gelenk. Und zusätzlich zwei optisch isolierte Notaus-Eingänge.
Installation:
loadrt hal_gm
Während des Ladens (oder versuchten Ladens) gibt der Treiber einige nützliche Debugging-Meldungen in das Kernel-Protokoll aus, die mit dmesg eingesehen werden können.
Es können bis zu 3 Karten in einem System verwendet werden.
Die folgenden Anschlüsse befinden sich auf der GM6-PCI-Karte:
1. I/O-Anschlüsse
9 | 7 | 5 | 3 | 1 |
---|---|---|---|---|
IOx/7 |
IOx/5 |
IOx/3 |
IOx/1 |
VCC |
10 | 8 | 6 | 4 | 2 |
---|---|---|---|---|
GND |
IOx/6 |
IOx/4 |
IOx/2 |
IOx/0 |
Jeder Pin kann als digitaler Eingang oder Ausgang konfiguriert werden. Die GM6-PCI-Bewegungssteuerungskarte verfügt über 4 GPIO-Anschlüsse (General Purpose I/O) mit jeweils acht konfigurierbaren E/A. Jeder GPIO-Pin und Parametername beginnt wie folgt:
gm.<card_no>.gpio.<gpio_con_no>
wobei <gpio_con_no> zwischen 0 und 3 liegt.
gm.0.gpio.0.in-0
HAL Pins werden aktualisiert durch Funktion
gm.<card_no>.read
1.1. Pins
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, Out) |
Input-Pin (wörtlich Eingabe-Pin) |
|
(bit, Out) |
Negierter Eingangspin |
|
(bit, In) |
Ausgangspin. Wird nur verwendet, wenn GPIO auf Ausgang eingestellt ist. |
1.2. Parameter
Pins | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(bit, R/W) |
Bei True wird der entsprechende GPIO auf Totem-Pol-Ausgang gesetzt, andernfalls auf hochohmigen Eingang. |
|
(bit, R/W) |
Wenn True, wird der Wert des Pins invertiert. Wird verwendet, wenn der Pin als Ausgang konfiguriert ist. |
2. Achsen-Anschlüsse
1 |
Encoder A |
2 |
+5 Volt (PC) |
3 |
Encoder B |
4 |
Encoder-Index |
5 |
Fehler |
6 |
Stromversorgung aktiviert (engl. power enabled) |
7 |
Schritt/gegen Uhrzeigersinn/B |
8 |
Richtung/Uhrzeigersin/A |
9 |
Masse (PC) |
10 |
Serielle DAC-Leitung |
2.1. Achsen-Schnittstellenmodule
Kleine, auf DIN-Schienen montierte Schnittstellenmodule ermöglichen den einfachen Anschluss verschiedener Servomodule an die Achsanschlüsse. Sieben verschiedene Systemkonfigurationen werden im Systemintegrationshandbuch vorgestellt, um typische Anwendungen zu evaluieren. Auch die detaillierte Beschreibung der Achsmodule ist im Systemintegrationshandbuch zu finden.
Zur Ermittlung der geeigneten Servoantriebsstruktur sind die Module wie im folgenden Blockschaltbild dargestellt zu verbinden:
2.2. Encoder
Die GM6-PCI-Bewegungssteuerungskarte verfügt über sechs Encoder-Module. Jedes Gebermodul hat drei Kanäle:
-
Kanal-A
-
Kanal-B
-
Kanal-I (Index)
Es ist in der Lage, Quadratur-Encoder-Signale oder Schritt-/Taktsignale zu zählen. Jedes Encoder-Modul wird an die Eingänge des entsprechenden RJ50-Achsenanschlusses angeschlossen.
Jeder Encoder-Pin und Parametername beginnt wie folgt:
gm.<card_no>.encoder.<axis_no>
wobei <axis_no> zwischen 0 und 5 liegt. Beispielsweise bezieht sich „gm.0.encoder.0.position“ auf die Position des Encodermoduls von Achse 0.
Die GM6-PCI-Karte zählt das Gebersignal unabhängig von LinuxCNC. HAL-Pins werden nach Funktion aktualisiert:
gm.<card_no>.read
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, In) |
Wenn True, setzt Anzahl und Position auf Null zurück. |
|
(s32, Out) |
Die "raw counts" ist dieselbe Zählung, aber unbeeinflusst von der Rückstellung oder dem Indeximpuls. |
|
(s32, Out) |
Position in Encoder-Zählungen (engl. counts). |
|
(float, Out) |
Position in skalierten Einheiten (=.counts/.position-scale). |
|
(bit, IO) |
Wenn True, werden Zählerstände und Position bei der nächsten steigenden Flanke von Kanal-I gerundet oder zurückgesetzt (abhängig vom Index-Modus).
Jedes Mal, wenn die Position aufgrund von Index zurückgesetzt wird, dann wird der |
|
(float, Out) |
Geschwindigkeit in skalierten Einheiten pro Sekunde. Der GM-Encoder verwendet einen Hochfrequenz-Hardware-Timer zur Messung der Zeit zwischen den Encoderimpulsen, um die Geschwindigkeit zu berechnen. Dadurch wird das Quantisierungsrauschen im Vergleich zur einfachen Differenzierung des Positionsausgangs erheblich reduziert. Wenn die gemessene Geschwindigkeit unter der geschätzten Mindestgeschwindigkeit liegt, ist der Geschwindigkeitsausgang 0. |
Parameter | Typ und Lesen/Schreiben | Parameterbeschreibung |
---|---|---|
|
(bit, R/W) |
Bei True zählt der Zähler jede ansteigende Flanke des Kanal-A-Eingangs in die durch Kanal-B bestimmte Richtung. Dies ist nützlich für die Zählung des Ausgangs eines Einkanal- (Nicht-Quadratur-) oder Schritt-/Differenzsignalsensors. Wenn False, zählt er im Quadraturmodus. |
|
(bit, R/W) |
Wenn True und .index-enabled ebenfalls True ist, werden .counts und .position gerundet (basierend auf .counts-per-rev) bei der steigenden Flanke von Kanal-I. Dies ist nützlich, um durch Rauschen verursachte Fehler bei wenigen Impulsen zu korrigieren. Im Rundungsmodus ist es wichtig, dass der Parameter .counts-per-rev korrekt eingestellt ist. Wenn .index-mode auf False und .index-enabled auf True steht, werden .counts und .position beim Kanal-I-Impuls zurückgesetzt. |
|
(s32, R/V) |
Bestimmt, wie viele Zählungen zwischen zwei Indeximpulsen liegen. Er wird nur im runden Modus verwendet, d.h. wenn die Parameter .index-enabled und .index-mode beide auf True stehen. GM-Encoder verarbeiten das Encodersignal im 4x-Modus, d.h. im Falle eines 500 CPR Encoders sollte er auf 2000 gesetzt werden. Dieser Parameter kann leicht gemessen werden, indem man .index-enabled True und .index-mode False setzt (so dass .counts bei Kanal-I-Impuls zurücksetzt), dann die Achse von Hand bewegen und die maximale Größe des .counts-Pins im Halmeter sehen. |
|
(bit, R/W) |
Wenn True, tritt das Kanal-I-Ereignis (Reset oder Round) bei der fallenden Flanke des Kanal-I-Signals ein, andernfalls bei der steigenden Flanke. |
|
(float, R/W) |
Legen Sie den minimalen gemessenen Geschwindigkeitswert fest, bei dem .velocity als ungleich Null gesetzt wird. Wird dieser Parameter zu niedrig eingestellt, dauert es sehr lange, bis die Geschwindigkeit auf Null geht, nachdem keine Encoderimpulse mehr ankommen. |
|
(float, R/W) |
Skala in Zählungen pro Längeneinheit. .position=.counts/.position-scale. Wenn z. B. der Positionsmaßstab 2000 ist, dann ergeben 1000 Zählungen des Encoders eine Position von 0,5 Einheiten. |
setp gm.0.encoder.0.counter-mode 0 # 0: quad, 1: stepDir setp gm.0.encoder.0.index-mode 1 # 0: reset pos at index, 1:round pos at index setp gm.0.encoder.0.counts-per-rev 2000 # GM-Prozess-Encoder im 4x-Modus, 4x500=2000 setp gm.0.encoder.0.index-invert 0 # setp gm.0.encoder.0.min-speed-estimate 0.1 # in Positionseinheit/s setp gm.0.encoder.0.position-scale 20000 # 10 Geberumdrehungen bewirken, dass sich die Maschine um eine Positionseinheit bewegt (10x2000)
net Xpos-fb gm.0.encoder.0.position => joint.0.motor-pos-fb
2.3. StepGen Modul
Die GM6-PCI-Bewegungssteuerungskarte verfügt über sechs StepGen-Module, eines für jedes Gelenk. Jedes Modul hat zwei Ausgangssignale. Es kann Schritt/Richtung-, Auf/Ab- oder Quadraturimpulse (A/B) erzeugen. Jedes StepGen-Modul wird an die Stifte des entsprechenden RJ50-Achsenanschlusses angeschlossen.
Jeder StepGen-Pin und Parametername beginnt wie folgt:
gm.<card_no>.stepgen.<axis_no>
wobei <axis_no> zwischen 0 und 5 liegt. Zum Beispiel bezieht sich gm.0.stepgen.0.position-cmd auf den Positionsbefehl des StepGen-Moduls der Achse 0 auf Karte 0.
Die GM6-PCI-Karte erzeugt unabhängig von LinuxCNC Schrittimpulse. Die HAL-Pins werden geupdatet durch die Funktion
gm.<card_no>.write
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, In) |
StepGen erzeugt nur dann Impulse, wenn dieser Pin "true" ist. |
|
(s32, Out) |
Positionsrückmeldung in Zähleinheiten. |
|
(float, Out) |
Positionsrückmeldung in Positionseinheit. |
|
(float, In) |
Die befohlene Position in Positionseinheiten. Wird nur im Positionsmodus verwendet. |
|
(float, In) |
Geforderte Geschwindigkeit in Positionseinheiten pro Sekunde. Wird nur im Geschwindigkeitsmodus verwendet. |
Parameter | Typ und Lesen/Schreiben | Parameterbeschreibung |
---|---|---|
|
(u32, R/W) |
Bei 0 erzeugt das Modul ein Step/Dir-Signal. Wenn 1, erzeugt es Auf/Ab-Schritt-Signale. Und bei 2 erzeugt es Quadratur-Ausgangssignale. |
|
(bit, R/W) |
Wenn True, wird .velocity-cmd als Referenz verwendet und velocityvcontrol berechnet die Pulsfrequenzausgabe. Bei False wird .position-cmd als Referenz verwendet und die Lageregelung berechnet den Impulsratenausgang. |
|
(bit, R/W) |
Invertieren des Ausgangs von Kanal 1 (Step-Signal im StepDir-Modus) |
|
(bit, R/W) |
Invertierung des Ausgangs von Kanal 2 (Dir-Signal im StepDir-Modus) |
|
(float, R/W) |
Maximale Geschwindigkeit in Positionseinheiten pro Sekunde. Wenn er auf 0,0 gesetzt ist, wird der Parameter .maxvel ignoriert. |
|
(float, R/W) |
Maximale Beschleunigung in Positionseinheiten pro Sekunde zum Quadrat. Wenn er auf 0,0 gesetzt ist, wird der Parameter .maxaccel ignoriert. |
|
(float, R/W) |
Skala in Schritten pro Längeneinheit. |
|
(u32, R/W) |
Länge des Schritt-Pulses (engl. step pulse) in Nanosekunden. |
|
(u32, R/W) |
Mindestzeit zwischen zwei Schrittimpulsen in Nanosekunden. |
|
(u32, R/W) |
Mindestzeit zwischen Schrittimpuls und Richtungswechsel in Nanosekunden. |
Zur Ermittlung der entsprechenden Werte siehe die nachstehenden Zeitdiagramme:
setp gm.0.stepgen.0.step-type 0 # 0:stepDir, 1:UpDown, 2:Quad setp gm.0.stepgen.0.control-type 0 # 0:Pos. Kontrolle, 2:Geschw. Kontrolle setp gm.0.stepgen.0.invert-step1 0 setp gm.0.stepgen.0.invert-step2 0 setp gm.0.stepgen.0.maxvel 0 # do not set maxvel for step # generator, let interpolator control it. setp gm.0.stepgen.0.maxaccel 0 # do not set max acceleration for # step generator, let interpolator control it. setp gm.0.stepgen.0.position-scale 1000 # 1000 step/position unit setp gm.0.stepgen.0.steplen 1000 # 1000 ns = 1 µs setp gm.0.stepgen.0.stepspace1000 # 1000 ns = 1 µs setp gm.0.stepgen.0.dirdelay 2000 # 2000 ns = 2 µs
net Xpos-cmd joint.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd net Xen joint.0.amp-enable-out => gm.0.stepgen.0.enable
2.4. Freigabe- und Fehlersignale
Die GM6-PCI-Bewegungssteuerungskarte verfügt über einen HAL-Pin als Freigabeausgang und einen als Fehlereingang , die beide mit jedem RJ50-Achsenanschluss und dem CAN-Anschluss verbunden sind.
HAL Pins werden durch Funktion aktualisiert:
gm.<card_no>.read
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
gm.<card_no>.power-enable |
(bit, In) |
Wenn dieser Pin True ist, |
gm.<card_no>.power-fault |
(bit, Out) |
Stromausfall-Eingang. |
2.5. Achsen-DAC
Die GM6-PCI-Bewegungssteuerungskarte verfügt über sechs serielle Achsen-DAC-Treibermodule, eines für jedes Gelenk. Jedes Modul wird an den Pin des entsprechenden RJ50-Achsenanschlusses angeschlossen. Jeder Achsen-DAC-Pin und Parametername beginnt wie folgt:
gm.<card_no>.dac.<axis_no>
wobei <axis_no> zwischen 0 und 5 liegt. Zum Beispiel bezieht sich gm.0.dac.0.value auf die Ausgangsspannung des DAC-Moduls der Achse 0.
HAL Pins werden durch Funktion aktualisiert:
gm.<card_no>.write
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, In) |
Aktiviert (engl. enables) den DAC-Ausgang. Wenn diese Freigabe auf falsch gesetzt ist, beträgt der DAC-Ausgang 0,0 V. |
|
(float, In) |
Wert des DAC-Ausgangs in Volt. |
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(float, R/W) |
Der Offset wird zu dem Wert addiert, bevor die Hardware aktualisiert wird. |
|
(float, R/W) |
Maximale Ausgangsspannung der Hardware in Volt. |
|
(float, R/W) |
Minimale Ausgangsspannung der Hardware in Volt. |
|
(float, R/W) |
Die GM6-PCI-Karte kommuniziert mit der DAC-Hardware über schnelle serielle Kommunikation, um die Zeitverzögerung im Vergleich zur PWM stark zu reduzieren. Es wird empfohlen, das DAC-Modul zu isolieren, wodurch die serielle Kommunikationsleitung negiert wird. Im Falle einer Isolierung lassen Sie diesen Parameter auf dem Standardwert (0), während Sie diesen Parameter im Falle einer Nicht-Isolierung auf 1 setzen. |
3. CAN-Bus-Servoverstärker
Die GM6-PCI Motion Control Karte verfügt über ein CAN-Modul zur Ansteuerung von CAN-Servoverstärkern. Die Implementierung von Protokollen auf höherer Ebene wie CANopen ist für eine zukünftige Entwicklung. Derzeit haben die von GM hergestellten Leistungsverstärker Treiber der oberen Ebene, die Pins und Parameter nach HAL exportieren. Sie empfangen Positionsreferenzen und liefern Encoder-Feedback über den CAN-Bus.
Die Frames sind Standard-ID-Frames (11 Bit) mit einer Datenlänge von 4 Byte. Die Baudrate beträgt 1 Mbit/s. Die Positionsbefehls-IDs für Achse 0..5 sind 0x10..0x15. Die Positionsrückmelde-IDs für Achse 0..5 sind 0x20..0x25.
Diese Konfiguration kann mit der Änderung der hal_gm.c und Neukompilierung LinuxCNC geändert werden.
Jeder CAN-Pin- und Parametername beginnt wie folgt:
gm.<card_no>.can-gm.<axis_no>
wobei < axis_no > zwischen 0 und 5 liegt. Zum Beispiel bezieht sich gm.0.can-gm.0.position
auf die Ausgangsposition der Achse 0 in Positionseinheiten.
HAL Pins werden durch Funktion aktualisiert:
gm.<card_no>.write
3.1. Pins
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, In) |
Aktivieren das Senden von Positionsreferenzen. |
|
(float, In) |
Befohlene Position in Positionseinheiten. |
|
(float, In) |
Rückmeldung der Position in Positionseinheiten. |
3.2. Parameter
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(float, R/W) |
Maßstab in Längeneinheiten. |
4. Watchdog-Timer
Watchdog-Timer wird zurückgesetzt bei Funktion:
gm.<card_no>.read
4.1. Pins
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, Out) |
Gibt an, dass der Watchdog-Zeitgeber abgelaufen ist. |
Das Überschreiten des Watchdog-Timers führt dazu, dass das Power-Enable in der Hardware auf Low gesetzt wird.
4.2. Parameter
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(bit, R/W) |
Aktiviert den Watchdog-Timer. |
|
(float, R/W) |
Zeitintervall, in dem die Funktion gm.<card_no>.read ausgeführt werden muss. Die gm.<card_no>.read wird typischerweise dem Servo-Thread hinzugefügt, daher wird der Watch-Timeout typischerweise auf das 3-fache der Servoperiode gesetzt. |
5. End-, Referenzpunkt- und Notaus-Schalter
25 | 23 | 21 | 19 | 17 | 15 | 13 | 11 | 9 | 7 | 5 | 3 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GND |
1/End- |
2/End+ |
2/Hom-ing |
3/End- |
4/End+ |
4/Hom-ing |
5/End- |
6/End+ |
6/Hom-ing |
Notaus 2 |
V+ (Ext.) |
26 | 24 | 22 | 20 | 18 | 16 | 14 | 12 | 10 | 8 | 6 | 4 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GND |
1/End+ |
1/Hom-ing |
2/End- |
3/End+ |
3/Hom-ing |
4/End- |
5/End+ |
5/Hom-ing |
6/End- |
Notaus 1 |
V+ (Ext.) |
Die GM6-PCI-Bewegungssteuerungskarte hat zwei Endschalter- und einen Referenzschaltereingang für jedes Gelenk. Die Namen dieser Pins beginnen wie folgt:
gm.<card_no>.joint.<axis_no>
wobei <axis_no> zwischen 0 bis 5 liegt. Beispiel: "gm.0.joint.0.home-sw-in" gibt den Zustand des Home-Schalters der Achse 0 an.
HAL Pins werden durch Funktion aktualisiert:
gm.<card_no>.read
5.1. Pins
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, Out) |
Eingang des Referenzschalters |
|
(bit, Out) |
Negierter Referenzschaltereingang |
|
(bit, Out) |
Negativer Endschaltereingang |
|
(bit, Out) |
Negierter negativer Endschaltereingang |
|
(bit, Out) |
Positiver Endschaltereingang |
|
(bit, Out) |
Negierter positiver Endschaltereingang |
5.2. Parameter
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(bit, Out) |
Notaus0 Eingang |
|
(bit, Out) |
Negierter Notaus 0-Eingang |
|
(bit, Out) |
Notaus 1 Eingang |
|
(bit, Out) |
Negierter Notaus 1-Eingang |
6. Status-LEDs
6.1. CAN
Farbe: Orange
-
Blinken während der Datenkommunikation.
-
Ein, wenn einer der Puffer voll ist - Kommunikationsfehler.
-
Aus, wenn keine Datenkommunikation stattfindet.
6.2. RS485
Farbe: Orange
-
Blinken während der Initialisierung von Modulen auf dem Bus
-
Ein, wenn die Datenkommunikation zwischen allen initialisierten Modulen hergestellt ist.
-
Aus, wenn eines der initialisierten Module aufgrund eines Fehlers ausgefallen ist.
6.3. EMC
Farbe: Weiß
-
Blinken, wenn LinuxCNC läuft.
-
Sonst aus.
6.4. Booten
Farbe: Grün
-
Ein, wenn das System erfolgreich gebootet wurde.
-
Sonst aus.
6.5. Fehler
Farbe: Rot
-
Aus, wenn keine Störung im System vorliegt.
-
Blinkt, wenn ein PCI-Kommunikationsfehler vorliegt.
-
Ein, wenn der Watchdog-Timer übergelaufen ist.
7. RS485 E/A-Erweiterungsmodule
Diese Module wurden für die Erweiterung der E/A- und Funktionsfähigkeit entlang einer RS485-Linie der GM6-PCI Motion Control Karte entwickelt.
Verfügbare Modultypen:
-
8-Kanal-Relaisausgangsmodul - bietet acht NO-NC-Relaisausgänge an einem dreipoligen Klemmenanschluss für jeden Kanal.
-
8-Kanal-Digitaleingangsmodul - bietet acht optisch isolierte digitale Eingangsstifte.
-
8-Kanal-ADC- und 4-Kanal-DAC-Modul - bietet vier Digital-Analog-Wandler-Ausgänge und acht Analog-Digital-Eingänge. Auch dieses Modul ist von der GM6-PCI-Karte optisch isoliert.
Jeder an den Bus angeschlossene Knoten wurde von der GM6-PCI-Karte automatisch erkannt. Beim Start von LinuxCNC exportiert der Treiber automatisch Pins und Parameter aller verfügbaren Module.
Wenn ein Modul nicht regelmäßig antwortet, fährt die GM6-PCI-Karte das Modul herunter. Wenn ein Modul mit Ausgang nicht regelmäßig Daten mit korrektem CRC erhält, schaltet das Modul in den Fehlerzustand (grüne LED blinkt), und schaltet alle Ausgänge in den Fehlerzustand.
Die Module auf dem Bus müssen in serieller Topologie angeschlossen werden, mit Abschlusswiderständen am Ende. Der Anfang der Topologie ist die PCI-Karte, und das Ende ist das letzte Modul.
Jeder Knoten am Bus hat eine eindeutige 4-Bit-Adresse, die mit einem roten DIP-Schalter eingestellt werden kann.
Eine grüne LED zeigt den Status des Moduls an:
-
Blinkt, wenn das Modul nur mit Strom versorgt, aber noch nicht erkannt wird, oder wenn das Modul fallengelassen wird.
-
Aus, während der Identifizierung (Computer ist eingeschaltet, aber LinuxCNC nicht gestartet)
-
Ein, wenn es kontinuierlich kommuniziert.
7.1. Relais-Ausgangsmodul
Informationen zu Pinbelegung, Anschluss und elektrischen Eigenschaften des Moduls finden Sie im Systemintegrationshandbuch.
Alle Pins und Parameter werden durch die folgende Funktion aktualisiert:
gm.<card_no>.rs485
Es sollte dem Servo-Thread oder einem anderen Thread mit größerer Periode hinzugefügt werden, um eine CPU-Überlastung zu vermeiden. Jeder RS485-Modul-Pin und Parametername beginnt wie folgt:
gm.<card_no>.rs485.<module ID>
wobei <Modul-ID> zwischen 00 und 15 liegt.
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, Out) |
Ausgangspin für Relais |
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(bit, R/W) |
Relais-Ausgangsstift negieren |
gm.0.rs485.0.relay-0 # Erstes Relais des Knotens.
#gm.0 # Bedeutet die erste GM6-PCI-Bewegungssteuerungskarte (PCI-Kartenadresse = 0)
#. .rs485.0 # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus
#. .relay-0 # Auswahl des ersten Relais
7.2. Digitales Eingangsmodul
Informationen zu Pinbelegung, Anschluss und elektrischen Eigenschaften des Moduls finden Sie im Systemintegrationshandbuch.
Alle Pins und Parameter werden durch die folgende Funktion aktualisiert:
gm.<card_no>.rs485
Es sollte dem Servo-Thread oder einem anderen Thread mit größerer Periode hinzugefügt werden, um eine CPU-Überlastung zu vermeiden. Jeder RS485-Modul-Pin und Parametername beginnt wie folgt:
gm.<card_no>.rs485.<module ID>
wobei <Modul-ID> zwischen 00 und 15 liegt.
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(bit, Out) |
Input-Pin (wörtlich Eingabe-Pin) |
|
(bit, Out) |
Negierter Eingangspin |
gm.0.rs485.0.in-0 # Erster Eingang des Knotens.
# gm.0 # Bedeutet die erste GM6-PCI-Bewegungssteuerungskarte (PCI-Kartenadresse = 0)
# .rs485.0 # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus
# .in-0 # Wählt das erste digitale Eingangsmodul
7.3. DAC & ADC-Modul
Informationen zu Pinbelegung, Anschluss und elektrischen Eigenschaften des Moduls finden Sie im Systemintegrationshandbuch.
Alle Pins und Parameter werden durch die folgende Funktion aktualisiert:
gm.<card_no>.rs485
Es sollte dem Servo-Thread oder einem anderen Thread mit größerer Periode hinzugefügt werden, um eine CPU-Überlastung zu vermeiden. Jeder RS485-Modul-Pin und Parametername beginnt wie folgt:
gm.<card_no>.rs485.<module ID>
wobei <Modul-ID> zwischen 00 und 15 liegt.
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(float, Out) |
Wert des ADC-Eingangs in Volt. |
|
(bit, In) |
Aktivieren Sie den DAC-Ausgang. Wenn enable false ist, wird der DAC-Ausgang auf 0,0 V gesetzt. |
|
(float, In) |
Wert des DAC-Ausgangs in Volt. |
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(float, R/W) |
Die Eingangsspannung wird mit der Skalierung multipliziert, bevor sie an den .adc-Pin ausgegeben wird. |
|
(float, R/W) |
Der Offset wird von der Hardware-Eingangsspannung subtrahiert, nachdem der Skalenmultiplikator angewendet wurde. |
|
(float, R/W) |
Der Offset wird zu dem Wert addiert, bevor die Hardware aktualisiert wird. |
|
(float, R/W) |
Maximale Ausgangsspannung der Hardware in Volt. |
|
(float, R/W) |
Minimale Ausgangsspannung der Hardware in Volt. |
gm.0.rs485.0.adc-0 # Erster Analogkanal des Knotens.
# gm.0 # Bedeutet die erste GM6-PCI-Bewegungssteuerungskarte (PCI-Kartenadresse = 0)
# .rs485.0 # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus
# .adc-0 # Wählt den ersten Analogeingang des Moduls
7.4. Teach Pendant Modul
Informationen zu Pinbelegung, Anschluss und elektrischen Eigenschaften des Moduls finden Sie im Systemintegrationshandbuch.
Alle Pins und Parameter werden durch die folgende Funktion aktualisiert:
gm.<card_no>.rs485
Es sollte dem Servo-Thread oder einem anderen Thread mit größerer Periode hinzugefügt werden, um eine CPU-Überlastung zu vermeiden. Jeder RS485-Modul-Pin und Parametername beginnt wie folgt:
gm.<card_no>.rs485.<module ID>
wobei <Modul-ID> zwischen 00 und 15 liegt. Beachten Sie, dass sie beim Teach-Pendant-Modul nicht geändert werden kann und auf Null vorprogrammiert ist. Auf Anfrage kann das Modul mit einer anderen, von der Firmware vorprogrammierten ID geliefert werden.
Pins | Typ und Richtung | Pin-Beschreibung |
---|---|---|
|
(float, Out) |
Wert des ADC-Eingangs in Volt. |
|
(bit, In) |
Wenn True, setzt Anzahl und Position auf Null zurück. |
|
(s32, Out) |
Position in Encoder-Zählungen (engl. counts). |
|
(s32, Out) |
Die rohen Zähldaten (engl. raw counts) ist die Zählung, die durch das Zurücksetzen nicht beeinflusst wird. |
|
(float, Out) |
Position in skalierten Einheiten (=.enc-counts/.enc-position-scale). |
|
(bit, Out) |
Input-Pin (wörtlich Eingabe-Pin) |
|
(bit, Out) |
Negierter Eingangspin |
Parameter | Typ und Richtung | Parameterbeschreibung |
---|---|---|
|
(float, R/W) |
Die Eingangsspannung wird mit der Skalierung multipliziert, bevor sie an den .adc-Pin ausgegeben wird. |
|
(float, R/W) |
Der Offset wird von der Hardware-Eingangsspannung subtrahiert, nachdem der Skalenmultiplikator angewendet wurde. |
|
(float, R/W) |
Maßstab in Längeneinheiten. |
gm.0.rs485.0.adc-0 # Erster Analogkanal des Knotens.
# gm.0 # Bedeutet die erste GM6-PCI-Bewegungssteuerungskarte (PCI-Kartenadresse = 0)
# .rs485.0 # Auswahl des Knotens mit der Adresse 0 auf dem RS485-Bus
# .adc-0 # Wählt den ersten Analogeingang des Moduls
8. Errata
8.1. GM6-PCI-Karte Errata
Die Revisionsnummer in diesem Abschnitt bezieht sich auf die Revision des GM6-PCI-Kartengeräts.
-
Fehler: Die PCI-Karte bootet nicht, wenn der Schalter Axis 1. END B aktiv (low) ist. Gefunden am 16. November 2013.
-
Grund: Dieser Schalter ist mit einem Boot-Setting-Pin des FPGA verbunden
-
Problemlösung/Workaround: Verwenden Sie einen anderen Schalterpin, oder schließen Sie nur einen normalerweise offenen Schalter an diesen Schaltereingangspin an.