mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GBIP Prob.


Autor: toddoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute

Wollte mal fragen, ob es möglich ist GPIB Geräte mit altem Standard
488.1 anzusteuern mit  GPIB Karten der neuen Generation 488.2.
Wo gibt es da Probleme ?

G. Tobi

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probleme gibt es da keine IEEE488.2 ist eine Erweiterung (um
grundlegende Protokollfunktionen) und kompatibel zu 488.1

Autor: toddoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal Ich versuche einen alten Dos Rechner der als
Motorcontroller (Bindeglied zwischen GBIP Karte und Motorsteuerung)
fungiert an neue Technik anzupassen, dazu existiert zwar
schon ein uraltes Dos Programm, welches nun angepasst werden soll.
Leider funktioniert die Kommunikation nicht. Das Programm fragt den
Bus ab mit ibrd(addr, lpstring, längestring) und gibt als Adresse
(addr) die eigene Adresse an und nicht den Master. Da das Programm aber
mal funktionierte habe ich mir dabei nichts gedacht, sollte ich als
Adresse mal die 0 (Master) angeben ? Ja blöde Frage aber wie gesagt das
DOS Programm sollte ja mal funktioniert haben. Wie gesagt das Programm
bleibt bei ibrd hängen, und ich weiss nicht, was ich beim Master für
ein Befehl senden muss, damit es beim Slave auch gelesen werden kann.
ibwr habe ich schon getestet , es kam eine Fehlermeldung zurück. Wäre
auf jede Antwort erfreut.

G. Tobi

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ich werde aus deiner Beschreibung nicht wirklich schlau. Beim GPIB
unterscheidet man eigentlich zwischen Talker (=Master?), Listener
(=Slave?) und Controller.
Erzähl mal, was mit welcher Adresse am Bus hängt und was passieren
soll.  Was dein Befehl "ibrd" macht, solltest du in der Dokumentation
nachschlagen... wir können es nämlich nicht erraten...
Und wenn du nicht weißt, welche Befehle du senden musst, um dein System
zu initialisieren => Handbücher! Wie ich schon sagte, erweitert
IEEE488.2 den alten Standard um grundlegende Protokollfunktionen, die
vorher gar nicht vorhanden waren. Du wirst also nicht drum herum
kommen, die Befehle nachzuschlagen.

Autor: toddoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht einfacher:

DOS         Rechner mit GPIB Karte = Slave  = Listener
Windows     Rechner mit GPIB Karte = Master = Talker

Master Adresse =  0 ;
Slave  Adresse = 21 ;

Ein uraltes Dos Programm läuft auf dem DOS Rechner und fragt ständig
den Bus ab. Da wir uns ja jetzt im 21. Jahrhundert befinden weiß keiner
mehr so richtig, welche Kommandos der Master absenden muss, damit am
Slave etwas ankommt. Der Quellcode des DOS Programms liegt vor. Ich
habe aber keine Ahnung davon, welche Kommandos und mit welchen
Parametern vom Master übergeben wurden, damit die Kommunikation
zustande kommt. Der Dos Rechner = Slave = Listener Wertet die
ankommenden Daten aus und übergibt Kommandos an Motorsteuerungskarten.


Oberstes Ziel ist eine Kommunikation zustande zu bringen zwischen dem
Dos und dem Windows Rechner. Ich habe eigentlich gedacht, dass die
Befehle ibrd ( ib read ) und so weiter denjenigem bekannt sind, der mir
antwortet. Normalerweise fungieren Ja Messgeräte u.s.w als Slave und der
PC mit der Karte als Master. Nun soll aber ein Rechner als Slave
fungieren irgendeiner eine Ahnung oder ein Tip wie das Normalerweise
gemacht wird ?

G. Tobi

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für eine Karte hast du da eingebau ? ist es eine PC2A-Karte von
NI ??, wenn ja dann kannst du über das Program IBCONF.EXE im Fenster
GBIP0, Zeile: Board is System Controller = yes oder = no einstellen ob
die jeweilige Karte Master oder Slave ist.

Gruß Walter

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

> DOS         Rechner mit GPIB Karte = Slave  = Listener
> Windows     Rechner mit GPIB Karte = Master = Talker
> Master Adresse =  0 ;
> Slave  Adresse = 21 ;

aha...
Gewöhnlich ist die 21 die Adresse vom Controller. Aber da auch mehrere
Controller möglich sind, sollte das kein Problem sein.

> Das Programm fragt den Bus ab mit
> ibrd(addr, lpstring, längestring) und gibt als Adresse
> (addr) die eigene Adresse an und nicht den Master.

Auf dem Bus wird nur die Ziel- nicht die Quelladresse übertragen.

> Da wir uns ja jetzt im 21. Jahrhundert befinden weiß keiner
> mehr so richtig, welche Kommandos der Master absenden muss,
> damit am Slave etwas ankommt. Der Quellcode des DOS Programms
> liegt vor. Ich habe aber keine Ahnung davon, welche Kommandos
> und mit welchen Parametern vom Master übergeben wurden, damit
> die Kommunikation zustande kommt.

Im Quellcode deines DOS-Programms sollten sich alle Befehle die
irgendetwas bewirken finden; z.B. in Vergleichen mit den Werten, die
vom Bus gelesen werden.

> Wie gesagt das Programm bleibt bei ibrd hängen

Und wieder: Dokumentation... wartet die Funktion solange, bis
irgendwann Daten für deinen Rechner am Bus anliegen?

> Ich habe eigentlich gedacht, dass die Befehle ibrd ( ib read )
> und so weiter denjenigem bekannt sind, der mir antwortet.

Ist das dein Ernst? Du hast nicht ein Wort darüber verloren, welche
Hardware, welche Bibliotheken, welche Programmiersprache... du
verwendest. Soll ich das aus den Eingeweiden meiner Goldfische lesen?
;-)

Gruß
Christian

Autor: toddoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist eine ISA Karte von NI habe auch IBCONF gefunden als Adresse war
dort die 5 eingestellt, vielleicht lag es daran, habe mal die Adresse
auf 21 eingestellt. Hoffe das jetzt mal irgendwann was Passiert.

G. Tobi

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> DOS         Rechner mit GPIB Karte = Slave  = Listener
> Windows     Rechner mit GPIB Karte = Master = Talker
> Master Adresse =  0 ;
> Slave  Adresse = 21 ;
Ich verstehe deine Hardware nicht ?? Du hast einen DOS-Rechner mit
eigener GPIB-Karte, einen Windows-Rechner mit eigener GBIP-Karte und
eine Motorsteuerung mit GPIB-Anschluß. Was möchtest Du überhaupt machen
??
Gruß Walter

Autor: toddoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Motorsteuerung besteht aus ISA Steckkarten, diese haben !keinen!
eigenen GPIB Controller. Deswegen wurde ein Programm geschrieben welche
die GPIB Kommandos einer anderen GPIB Karte umwandelt in Kommandos, die
die Motorsteuerung versteht. Der Dos Rechner fungiert also als
Bindeglied zwischen der Motoransteurung und dem GPIB Bus.

Ich habe es inzwischen endlich geschafft eine Kommunikation
zustandezubringen.

Danke an alle, die sich Beteiligt haben. Ganz besonders Walter, der den
entscheidenden Tip gab. Den Rest, das Dos- Programm zu dischiffrieren (
Rechtschreibkorrektur erwünscht ) muss ich alleine durchboxen.


G. Tobi

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rechtschreibkorrektur: "dechiffrieren" ;-)
Hauptsache, du kommst weiter. Viel Erfolg noch

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.