Hallo zusammen, ich habe einen Funktionsgenerator Agilent 33210A mit GPIB/LAN/USB Schnittstelle. Der Generator hat eine PC Software dabei, über die ich dann SCPI Befehle schicken kann und damit den Generator steuern kann. Jetzt möchte ich das ganze aber per microcontroller z.B. Arduino Uno machen - habt ihr eine Idee, wie das funktionieren könnte? Ich habe schon das USB Shield für den Arduino entdeckt - kann ich über dieses Shield dann den Generatir per USB verbinden und dann über die serielle Schnittstelle schon direkt SCPI Kommandos im ASCII Format schicken? Besten Dank schon im Voraus für Eure Einschätzungen/Ideen/Lösungen dabreaka
Claus H. schrieb: > das USB Shield Welches? Eines, das USB Host ist? Und wenn du so eines hast,dann brauchst du einen Treiber für die richtige Geräteklasse...
:
Bearbeitet durch Moderator
Claus H. schrieb: > kann ich über dieses > Shield dann den Generatir per USB verbinden und dann über die serielle > Schnittstelle schon direkt SCPI Kommandos im ASCII Format schicken? Ja, und ganz im Ernst, das ist die übliche Vorgehensweise. Dem SCPI-Parser im Zielgerät ist es im Allgemeinen vollkomen wurscht woher er die Befehle bekommt. Das geht sogar soweit dass mehrere Teilnehmer über verschiedene Schnittstellen (oder über mehrere TCP-Verbindungen) quasi gleichzeitig kommandieren können/dürfen.
Da hast du dir gerade das komplizierteste ausgesucht. Da das Arduino USB Host Shield laut Dokumentation die USBTMC-Geräteklasse nicht unterstützt, wird das aller Voraussicht nach nicht ohne Weiteres funktionieren. Soweit ich weiß, kannst du auch über LAN SCPI-Kommandos absetzen. Das dürfte einfacher sein. Außerdem gibts es auch GPIB-Implementationen für Arduino.
Lothar M. schrieb: > Eines, das USB Host ist? Ja das mit dem Host habe ich gedanklich unterschlagen ....
Lothar M. schrieb: >> das USB Shield > Welches? > Eines, das USB Host ist? Es gibt tatsächlich USB Host Shields für Arduino. Dann müsstest Du aber den USB Treiber für den USB Chip im Agilent Gerät auf dem Arduino nachbauen, was nicht ganz trivial sein dürfte. Eine "Serielle Schnittstelle" gibt es bei USB nur in Software.
Hallo zusammen, hatte das Shield bei reichelt gesehen http://www.reichelt.de/ARDUINO-SHD-USB/3/index.html?&ACTION=3&LA=446&ARTICLE=162314&artnr=ARDUINO+SHD+USB&SEARCH=arduino+usb+shield Aber soweit verstehe ich das schon mal aus Euren Antworten, dass ich da einen Treiber nachbauen müsste auf dem Arduino - kann ich nicht. Wäre es per LAN einfacher? D.h. soll ich über ein LAN Shield nachdenken und dann Kommnandos per LAN versuchen abzusetzen? GRüße dabreaka
Claus H. schrieb: > Aber soweit verstehe ich das schon mal aus Euren Antworten, dass ich da > einen Treiber nachbauen müsste auf dem Arduino - kann ich nicht. Da wäre die Gretchenfrage ob für USB man extra ein Protokoll vorgesehen hat das - abweichend von LAN (TCP) oder GPIB - nicht auf ASCII (SCPI) aufbaut. Ich weiss es nicht aber kann mir das schwer vorstellen ..... Die Antwort wäre einfach zu bekommen: man sendet über die USB- Schnittstelle eines PC und mit Hilfe eines Terminal-Programms einen einfachen SCPI-Befehl der eine Antwort des Geräts erfordert.
Rufus Τ. F. schrieb: > Claus H. schrieb: >> Wäre es per LAN einfacher? > > Definitiv. nicht für jeden! ich glaube ich täte mich leichter mit GPIB Georg aus Wien schrieb: > Außerdem gibts es auch GPIB-Implementationen für Arduino schliesslich hatte ich GPIB schon auf dem PC1500 und apple2 nachgebaut aber für andere dürfte LAN wirklich einfacher sein.
Hallo Frickelfritze, das kann ich gern ausprobieren - aber wenn ich z.B. putty verwende als Terminalprogramm, dann muss ich doch eine COM Schnittstelle wählen zum senden - krieg ich über USB denn einen COM Port zugewiesen? Ich versuchs auf jeden Fall und berichte. Viele Grüße dabreaka
Also ich finde keinen Weg, wie ich mit einem Terminalprogramm den mit USB angeschlossenen Generator anspreche. Klar, mit der Agilent IO Library Suite, die dabei war und installiert ist, kann ich SCPI Kommandos schicken. Aber ich möchte halt über einen microcontroller mit dem Generator reden. Habt ihr noch Ideen? Grüße dabreaka
Hallo zusammen, jetzt war ich zunächst auf der GPIB Schiene unterwegs und hab folgendes Projekt gefunden http://egirland.blogspot.de/2014/02/arduino-uno-as-usb-to-gpib-adapter.html Allerdings fehlt mir ein GPIB Kabel zum basteln und die Dinger kosten ja gleich mal jenseits der 100€. Dann hab ich mir die LAN Schnittstelle angeschaut und gefunden, dass man hier ganz einfach mit telnet auf dem PORT 5025 das Instrument connecten kann. Und siehe da: ich kann frisch fröhlich SCPI Kommandos absetzen und der Generator spricht mit mir. Jetzt finde ich nur keinen Arduino mit LAN Schnittstelle, meine aber, so einen schon mal bei pollin gesehen zu haben. Wisst Ihr was dazu? Vielen Dank schon mal und Grüße dabreaka
Claus H. schrieb: > Allerdings fehlt mir ein GPIB Kabel zum basteln und die Dinger kosten ja > gleich mal jenseits der 100€. es gibt diese Stecker billig für 24-pol Flachkabel Lötkelch https://www.kab24.de/computer/sub-d-centronics-stecker-24-polig-d-sub.html oder Schneidklemm http://beta.b2b-trader.de/pline.b2b-trader.de/images/pPool-5556070001-655607A006/text/F132500.htm Claus H. schrieb: > Jetzt finde ich nur keinen Arduino mit LAN Schnittstelle, meine aber, so > einen schon mal bei pollin gesehen zu haben Pollin NETIO Bausatz kann auf atmega1284p aufgerüstet werden, ohne 7805 mit Recom R785 1A für die 5V und etwas Umbau für den LM317 mit Recom R78333 für den 3,3V Regler, spart die Kühlkörper. OK ist kein Arduino, aber geht auch.
Hallo Joachim, vielen Dank für die super links! Auf die Idee, nur den Stecker zu nehmen, bin ich nicht gekommen. Den NETIO Bausatz schau ich mir gleich mal an. In welcher Programmierumgebung kann ich da dann arbeiten? Beim Arduino gehts halt so bequem. Besten Dank nochmal und viele Grüße dabreaka
Arduino/8bit AVR & Ethernet ist doch eine einzige Qual (wegen des begrenzten RAM) Für sowas würde ich eine Raspberry Pi nehmen. Ist viel, viel einfacher! Harry
:
Bearbeitet durch User
Harry L. schrieb: > Arduino/8bit AVR & Ethernet ist doch eine einzige Qual (wegen des > begrenzten RAM) nun ja für die Arduinos gibt es shields https://www.google.de/search?q=Arduino+net+shield&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=dLs1V5jWLcPj8we_w6_gAQ und der mega2560 hat mit 256KB flash genug nur die 8KB sram sind echt dünne deswegen nehme ich mieber den mighty mini 1284p mit 16KB RAM https://www.google.de/search?q=mighty+mini+1284p&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=zbs1V434Cs_j8weX6oGYBQ http://www.ebay.de/itm/Mighty-Mini-ATMega1284p-compatible-with-Arduino-/331463717483 nur dann wird die Verdrahtung nicht einfach > Für sowas würde ich eine Raspberry Pi nehmen. > Ist viel, viel einfacher! ach was, empfindliche GPIO, brechende SD Halter, wacklige Karten, abschmierendes OS wenn der Strom mal weg war, alles am Pollin NETIO noch nie passiert, läuft bei mir seit 5 Jahren, mit einem Y-Kabel aus dem verstärkten FB Netzteil mit 12V ich will denjenigen sehen der wirklich einen PI 5 Jahre hat durchlaufen lassen ohne OS Probleme. Mein ältester PI lief 2 Jahre durch und bei einer neuen SSH Verbindung kam dann die Meldung open SSH Zertifikat abgelaufen, ich musste mich fernab von daheim erst mal auf die Suche nach Updates machen und das zu Hause wieder einspielen.
Joachim B. schrieb: > ach was, empfindliche GPIO, Braucht man nicht, wenn es darum geht via Ethernet was fernzusteuern Joachim B. schrieb: > brechende SD Halter, wacklige Karten, Ist bei neueren RPis mit Micro-SD überhaupt kein Problem mehr Und eigentlich war es das schon mit SD-Karten auch nicht, wenn man nicht gerade Grobmotoriker ist. Joachim B. schrieb: > abschmierendes OS wenn der Strom mal weg war, Dann nimmt man ein OS, bei dem die Speicherkarte ReadOnly gemountet wird Bsp.: OpenWRT oder man baut sich sowas selber. Joachim B. schrieb: > Mein ältester PI lief 2 Jahre durch und bei einer neuen SSH Verbindung > kam dann die Meldung open SSH Zertifikat abgelaufen, ich musste mich Wieso Zertifikate? RSA-Keypairs heben kein Verfalldatum Joachim B. schrieb: > fernab von daheim erst mal auf die Suche nach Updates machen und das zu > Hause wieder einspielen. Regelmässige Updates sind ohnehin Pflicht
Harry L. schrieb: > Joachim B. schrieb: >> Mein ältester PI lief 2 Jahre durch und bei einer neuen SSH Verbindung >> kam dann die Meldung open SSH Zertifikat abgelaufen, ich musste mich > Wieso Zertifikate? > RSA-Keypairs heben kein Verfalldatum und trotzdem war es so, ich bin aber kein Netzprofi und es war nur das serienmäßige Raspbmc was da zickte, vielleicht ne faule Config, aber woher soll ich das wissen? Ist aber bei meinem AVR nie vorgekommen. Harry L. schrieb: > Dann nimmt man ein OS, bei dem die Speicherkarte ReadOnly gemountet wird > Bsp.: OpenWRT oder man baut sich sowas selber. klar kann man alles machen, aber so wie der TO schrieb er auch? Harry L. schrieb: > Und eigentlich war es das schon mit SD-Karten auch nicht, wenn man nicht > gerade Grobmotoriker ist. nun ja bei OC und das wird am PI gerne gemacht haben die microSD die schlechtern Karten weil weniger Chipfläche weniger Wärme los wird und hochkapazitive microSD haben ja noch mal kleinere Strukturen, so ganz doof bin ich ja nicht und ich habe schon in warmen Sommern etliche PI Abstürze durch Temperatur gehabt, es konnte leider nie die echte Ursache gefunden werden, beim SoC weiss ich das ich unter 50°C bleiben sollte also OC möglichst aus. Harry L. schrieb: > Regelmässige Updates sind ohnehin Pflicht ja nee is klar, so dachte ich auch mal bis ich lernte das neues update nicht gerade fehlerfrei heisst, es können auch einige Fehler beseitigt werden die nie auftreten mussten und dafür andere reinkommen die sehr wohl beim User in der entsprechenden Umgebung stören.
Joachim B. schrieb: > und trotzdem war es so, ich bin aber kein Netzprofi und es war nur das > serienmäßige Raspbmc was da zickte, vielleicht ne faule Config, aber > woher soll ich das wissen? Dann hast du das eben vermurkst! Ich hab noch nie irgendwo gesehen, daß für SSH X509-Zertifikate benutzt werden Joachim B. schrieb: > und trotzdem war es so, ich bin aber kein Netzprofi und es war nur das > serienmäßige Raspbmc was da zickte, vielleicht ne faule Config, aber > woher soll ich das wissen? > > Ist aber bei meinem AVR nie vorgekommen. Das ist kein Argument gegen den RPi, sondern dafür, daß da gepfuscht wurde. Joachim B. schrieb: > nun ja bei OC und das wird am PI gerne gemacht haben die microSD die > schlechtern Karten weil weniger Chipfläche weniger Wärme los wird und > hochkapazitive microSD haben ja noch mal kleinere Strukturen, so ganz > doof bin ich ja nicht und ich habe schon in warmen Sommern etliche PI > Abstürze durch Temperatur gehabt, es konnte leider nie die echte Ursache > gefunden werden, beim SoC weiss ich das ich unter 50°C bleiben sollte > also OC möglichst aus. Das ist Quatsch! Wenn deine Speicherkarten warm werden, hast du sowieso was verkehrt gemacht. Mein ältester RPi steht auf meinem Dachboden als DNS/DHCP-Server, und da wird es im Sommer auch gene mal fast 50° warm. Meist ist sowas auf schlechte/billige Speicherkarten zurück zu führen. Joachim B. schrieb: > ja nee is klar, so dachte ich auch mal bis ich lernte das neues update > nicht gerade fehlerfrei heisst, es können auch einige Fehler beseitigt > werden die nie auftreten mussten und dafür andere reinkommen die sehr > wohl beim User in der entsprechenden Umgebung stören. Linux ist kein Windows, und im stable-Zweig von debian und Verwandten ist mir in vielen Jahren nicht ein Einziges Update untergekommen, das mein System lahm gelegt hätte. "Wenn" sowas passiert, dann i.d.R. weil jemand zentrale Bestandteile des Systems vorher verbastelt hat, und das Update nicht mehr die Situation vorfindet, die man bei einem korrekt aufgesetzten System erwarten würde.
Harry L. schrieb: > Joachim B. schrieb: >> und trotzdem war es so, ich bin aber kein Netzprofi und es war nur das >> serienmäßige Raspbmc was da zickte, vielleicht ne faule Config, aber >> woher soll ich das wissen? > > Dann hast du das eben vermurkst! du musst ne Leseschwäche haben was ist an raspbmc orginal download nicht zu verstehen? Harry L. schrieb: > Wenn deine Speicherkarten warm werden, hast du sowieso was verkehrt > gemacht. du schreibst komische Sachen, wenn ich nicht weiss woran es liegt, ich kann nur spekulieren wenn microSD mit SD Adapter eben schneller im Pi B abschmierten als SD und beide von Samsung waren, ich muss davon ausgehen das die microSD die Wärme schlechter loswerden weil sie nicht überstehen und so weniger Abstrahlfläche haben, OS und Config identisch. Harry L. schrieb: > Meist ist sowas auf schlechte/billige Speicherkarten zurück zu führen. meist ist nicht immer, ich hatte verschiedene (mit Absicht keine oft gefälschten SanDisk)und am stabilsten liefen bei mir Samsung 8GB SD am PI B Die neuen microSD sind nun doch SanDisk am Pi2. Es bleibt doch beim PI mehr Unsicherheit jedenfalls für mich als beim Atmel, klingt komisch ist aber so da ich nicht das ganze OS in voller Schönheit überblicke, es ist definitiv auch überladen und wird serienmäßig mit viel Murks ausgeliefert. Der Debianprofi schmeisst erst mal alles irrelevante raus, der Normaluser lässt i.d.R. die Finger davon. Harry L. schrieb: > Linux ist kein Windows, und im stable-Zweig von debian und Verwandten > ist mir in vielen Jahren nicht ein Einziges Update untergekommen, das > mein System lahm gelegt hätte. was beweisst das?
Joachim B. schrieb: > du musst ne Leseschwäche haben was ist an raspbmc orginal download nicht > zu verstehen? Ich habs verstanden - du auch? Wenn du für ssh Zertifikat, die ein Ablaufdatum haben nutzt, hast du das vermurkst und nicht verstanden- Joachim B. schrieb: > Es bleibt doch beim PI mehr Unsicherheit jedenfalls für mich als beim > Atmel, klingt komisch ist aber so da ich nicht das ganze OS in voller > Schönheit überblicke, es ist definitiv auch überladen und wird > serienmäßig mit viel Murks ausgeliefe Dafür gibts minibian, und da ist nur das Nötigste drin. Wenn du das für "überladen" hälst, dann nur deshalb, weil du offenbar keine Ahnung von Linux hast, und scheinbar auch keine Lust hast, das zu lernen. Dann laß die Finger davon, und bleib bei deinen geliebten 8bit-CPUs, aber versuch nicht Anderen zu erklären, warum der RPi deiner Meinung nach Murks ist. Joachim B. schrieb: > Der Debianprofi schmeisst erst mal alles irrelevante raus, der > Normaluser lässt i.d.R. die Finger davon. s.o.: minibian nutzen! Da muß man gar nichts entschlacken. Joachim B. schrieb: > was beweisst das? Das bedeutet, daß debian mit aktuellen Updates sauber funktioniert, wenn man das System nicht "verbastelt" Du kannst auch nicht beweisen daß dein Atmel-Programm fehlerfrei läuft.
Harry L. schrieb: > Das bedeutet, daß debian mit aktuellen Updates sauber funktioniert, wenn > man das System nicht "verbastelt" Debian ist nicht Raspbian auch wenn das gerne in einem Atemzug genannt wird. > Du kannst auch nicht beweisen daß dein Atmel-Programm fehlerfrei läuft. Du auch nicht für den PI, beim AVR bin ich halt dichter am OS und da ich viel selber programmiere glaube ich dem mehr und kann mehr überblicken. Bist du PI Kernelprogrammierer oder was macht dich beim PI so sicher? Ich bin ja bereit anzuerkennen das Debian gut ist, Linux generell, aber erzähle mir nix vom funktionierenden Distributionen. Fedora firmiert unter v23 oder schon höher? Die Netzwerkgeschichten unter Nautilus sind nur grottig. Am PI sind sie auch nicht viel weiter auf SMB Ebene wird der freie Speicherplatz von Samba Laufwerken auch nie richtig angezeigt. Aber als "Spezialist" weisst du das sicher :)
Joachim B. schrieb: > Debian ist nicht Raspbian auch wenn das gerne in einem Atemzug genannt > wird. Falsch! Raspbian basiert auf den Debian-Quellen mit RPi-spzifischen Erweiterungen. Joachim B. schrieb: > beim AVR bin ich halt dichter am OS Ach, auf deinem AVR läuft ein OS? - interessant Joachim B. schrieb: > Bist du PI Kernelprogrammierer oder was macht dich beim PI so sicher? Nö, aber ich hab schon mal Linux Kernel-Module programmiert, und kenne daher den Kernel recht gut. Joachim B. schrieb: > Die Netzwerkgeschichten unter Nautilus sind nur grottig. > Am PI sind sie auch nicht viel weiter auf SMB Ebene wird der freie > Speicherplatz von Samba Laufwerken auch nie richtig angezeigt. Gähn! Zum Einen ist Nautilus auch nur einer von vielen Dateimanagern, und zum Anderen ist Samba nichts RPi spezifisches. (der selbe Quellcode wie bei allen Distributionen) Da vergleichst du Äpfel mit Birnen.
Kommt zur Sache, oder tauscht Eure Email-Adressen aus, um diese hochwichtige Diskussion woanders weiterzuführen.
Rufus Τ. F. schrieb: > Kommt zur Sache OK Claus H. schrieb: > ich habe einen Funktionsgenerator Agilent 33210A mit GPIB/LAN Claus H. schrieb: > Besten Dank schon im Voraus für Eure Einschätzungen/Ideen/Lösungen > dabreaka ich würde auf GPIB und Atmel setzen http://www.rudiswiki.de/wiki9/GPIBtoUSB_Nano3 andere eben auf PI und LAN
Hallo jar, danke für deinen Link. Kannte ich noch nicht. Hab mit jetzt aber heute erstmal bei reichelt http://www.reichelt.de/index.html?ACTION=3;ARTICLE=155770;SEARCH=ARDUINO%20ENET2 den Arduino mit LAN Modul bestellt, und schau, wie weit ich damit komme. Wenn ich in eine Sackgasse laufe, dann schwenke ich wieder zurück auf GPIB und nutze Deine Tips. Dank Euch allen - wenn ich weiterkomme, melde ich mich Viele Grüße dabreaka
Rufus Τ. F. schrieb: > Kommt zur Sache Harry L. schrieb: > aber versuch nicht Anderen zu erklären, warum der RPi deiner Meinung > nach Murks ist. ich doch nicht, habe selbst 5 PI, aber für ernstes sicher nicht! Harry L. schrieb: > Das bedeutet, daß debian mit aktuellen Updates sauber funktioniert Beitrag "Raspberry Pi bootet nach Update nicht mehr"
:
Bearbeitet durch User
Hallo zusammen, endlich sind das Arduino Shield und der Arduino NET2 angekommen. Zunächst habe ich mit der Kombi Arduino Uno und Ethernet Shield losgelegt. Erstmal ging gar nichts, bis ich merkte, dass ich das Shield Version 2 habe und hierzu muss die library ethernet2 eingebunden werden. Ab da war es kein Problem mehr - als Vorlage habe ich das telnet example genommen und jetzt quatscht mein Arduino mit meinem Agilent schönes SCPI vor sich hin. Unten noch der Beispielcode, in dem ich an den Agilent Generator "FREQ" Kommandos schicke zum setzen der Frequenz. Vielen Dank Euch allen nochmal für Eure Hilfe und beste Grüße dabreaka
1 | #include <SPI.h> |
2 | #include <Ethernet2.h> |
3 | |
4 | // Enter a MAC address and IP address for your controller below. |
5 | // The IP address will be dependent on your local network: |
6 | |
7 | byte mac[] = { |
8 | 0x90, 0xA2, 0xDA, 0x10, 0x53, 0x33 |
9 | }; |
10 | |
11 | |
12 | IPAddress ip(192, 168, 1, 100); |
13 | // Enter the IP address of the server you're connecting to: |
14 | |
15 | IPAddress server(192, 168, 1, 101); |
16 | // Initialize the Ethernet client library |
17 | // with the IP address and port of the server |
18 | // that you want to connect to (port 23 is default for telnet; |
19 | // if you're using Processing's ChatServer, use port 10002): |
20 | |
21 | EthernetClient client; |
22 | |
23 | int rndnr; |
24 | int retcode; |
25 | int potpin=0; |
26 | |
27 | int val; |
28 | |
29 | String cmd; |
30 | |
31 | char c; |
32 | |
33 | |
34 | void setup() { |
35 | // start the Ethernet connection: |
36 | Ethernet.begin(mac,ip); |
37 | // Open serial communications and wait for port to open: |
38 | Serial.begin(9600); |
39 | while (!Serial) { |
40 | ; // wait for serial port to connect. Needed for Leonardo only |
41 | } |
42 | |
43 | // give the Ethernet shield a second to initialize: |
44 | |
45 | Serial.println("connecting..."); |
46 | delay (1000); |
47 | // if you get a connection, report back via serial: |
48 | |
49 | retcode=client.connect(server, 5024); |
50 | |
51 | if (retcode==1) |
52 | { |
53 | Serial.println("connected"); |
54 | } |
55 | else { |
56 | // if you didn't get a connection to the server: |
57 | Serial.println(retcode); |
58 | Serial.println("connection failed"); |
59 | } |
60 | } |
61 | |
62 | void loop() |
63 | { |
64 | // if there are incoming bytes available |
65 | // from the server, read them and print them: |
66 | if (client.available()) |
67 | { |
68 | do |
69 | { |
70 | c = client.read(); |
71 | if (c!=-1) |
72 | Serial.print(c); |
73 | |
74 | } while (c>=0); |
75 | |
76 | } |
77 | |
78 | // as long as there are bytes in the serial queue, |
79 | // read them and send them out the socket if it's open: |
80 | |
81 | |
82 | val=analogRead(potpin); |
83 | Serial.println(val); |
84 | |
85 | //rndnr=random(1,1000); |
86 | cmd=String("FREQ " + String(val+1) + "\r\n"); |
87 | |
88 | if (client.connected() && val<1023) |
89 | { |
90 | |
91 | client.print(cmd); |
92 | delay(1000); |
93 | |
94 | } |
95 | else |
96 | { |
97 | Serial.println(); |
98 | Serial.println("disconnecting."); |
99 | client.stop(); |
100 | // do nothing: |
101 | while (true); |
102 | } |
103 | } |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.