IHB / I
NBETRIEBNAHME
5.3 Einsatz mehrerer xPCI-800x-Controller in einem PC
Die im Lieferumfang enthaltene Treibersoftware erlaubt es, auch mehrere xPCI-800x-Controller in einem PC
zu betreiben. Hierbei sind folgende Eigenschaften zu beachten:
•
Die im System vorhandenen Karten werden automatisch mit fortlaufenden Nummern, bei 0 beginnend
durchnummeriert. Wenn sich nur ein Gerät im System befindet, wird diesem immer die Nummer 0
zugewiesen. Diese Nummerierung wird vom Plug & Play-Bios oder Betriebssystem vorgenommen und
ist vom jeweiligen Steckplatz im PC abhängig.
•
Ein xPCI-800x Controller kann mit der dll-Funktion CardSelect() (siehe Handbuch PHB) angewählt
werden. Bei erfolgreicher Selektion wird die Nr. der Karte zurückgeliefert (= Parameter). Wenn keine
Anwahl erfolgt ist beim Start einer Applikation immer das Gerät 0 aktiv. Nach der Anwahl eines Gerätes
mit CardSelect wird genau Dieses so lange über die DLL-Funktionen angesprochen, bis ein anderes
Gerät selektiert wird.
•
Wenn die angewählte Karte im System nicht existiert wird –1 zurückgeliefert. Auf diese Weise kann
ermittelt werden, wie viele Systeme real im PC installiert sind. Nach einem nicht erfolgreichen Aufruf von
CardSelect ist das Gerät 0 angewählt.
•
Die Nummer der Karte ist vom Slot abhängig, in dem die jeweiligen Geräte installiert sind, aber nicht von
der Karte selbst. Die Einbauposition muss also jederzeit erhalten bleiben, da sich ansonsten die
Zuordnung ändern kann.
•
In der Anwendersoftware ist zunächst, wie üblich das Kommando InitMcuSystem3 () aufzurufen. Danach
kann mit CardSelect ein beliebiges, im PC installiertes Gerät angewählt werden. Dann muss für dieses
Gerät und alle folgenden das Kommando InitMcuSystem3() erneut aufgerufen werden. Ggf. muss auch
jede Steuerung für sich gebootet werden. Hierbei ist zu beachten, dass für jedes Gerät im System die
globalen Datenstrukturen (z.B. tsrp[]) getrennt deklariert werden müssen.
•
Beim Ansprechen eines jeden Geräts müssen die für das jeweilige Gerät deklarierten Datenstrukturen
(insbesondere TSRP) verwendet werden.
•
Im Programm mcfg kann im Fenster „Projekt Parameter" auf der Registerkarte „Environment" eine Karte
ausgewählt werden. Diese Information wird beim Beenden von mcfg gespeichert und ist nach erneutem
Aufruf automatisch wieder aktiv.
Besondere Vorsicht ist geboten, wenn in mcfg Achsbewegungen durchgeführt werden sollen. Es muss
jederzeit gewährleistet sein, dass auch das gewünschte Gerät angewählt ist.
•
Im Programm fwsetup kann auf der Registerkarte „Tools" eine Karte ausgewählt werden. Diese
Information wird beim Beenden von fwsetup jedoch nicht gespeichert.
•
Um zu gewährleisten, dass mit einer entsprechenden Gerätenummer, tatsächlich auch immer das
gewünschte Gerät angesprochen wird, z.B. entsprechend der Steckerbeschriftung jedoch unabhängig
vom Steckplatz, kann jedes Gerät mit einer kennzeichnenden Environment-Variablen ausgestattet
werden. Diese Variable kann dann mit getEnvStr() abgefragt werden. Mit dieser Vorgehensweise ist es
möglich die Verwendung der Gerätenummern variabel zu gestalten. Hierbei ist Kapitel 3.12 ff und PHB /
Kapitel 4.4.12 zu beachten.
Besondere Vorsicht ist bei Multi-Threading-Anwendungen geboten, weil durch einen Thread-Wechsel
jederzeit die Ausführung des Programmcodes umgeschaltet werden kann. Eine Thread-Umschaltung
während Zugriffen auf die APCI-8001 / APCI-8008 muss verhindert werden, falls die Möglichkeit besteht,
dass nach dem Thread-Wechsel ein Anderes als das derzeit selektierte Gerät angesprochen werden soll.
-H
ANDBUCH
47