Go Down

Topic: ME-Systeme GSV-6CPU (Read 322 times) previous topic - next topic

fh-project

Hallo zusammen,

Ich habe ein kleines Problem mit der Kommunikation zwischen den arduino UNO und dem Messverstärker GSV-6CPU von ME-Systeme. Mit der programmiereinheit GSV-DEV habe ich den Verstärker bereist konfiguriert und mit dem Programm Docklight bereits getestet, er sendet. Doch wenn ich nun mit dem Arduino die startTransmission AA 90 24 85 ausführen möchte (wie über docklight über USB) stoße ich auf Probleme:
Auf gut deutsch gesagt, ich habe keinen Plan wie ich die Kommunikation über arduino bewerkstelligen soll. Ich habe bereits versucht die HEX-Folge über Bytes zu "senden" aber ohne Erfolg.

Kann mir jemand Tipps und Hilfestellungen/Lösungen geben?

Gerne sende ich nachher auch noch Bilder der möglichen Anschlüsse des Messverstärkers, vllt liegt auch da schon ein Problem..
Aktuell ist es meine ich über UART2_RX und UART2_TX angeschlosse

Vielen Dank im Voraus!

Freundliche Grüße

Tommy56

Dann wäre auch Dein Sketch sehr hilfreich.
Setze ihn bitte in Code-Tags(oben links </> im Foreneditor oder [*code] davor und [*/code] dahinter - ohne die *).

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

fh-project

#2
Jan 23, 2017, 05:24 pm Last Edit: Jan 23, 2017, 05:30 pm by fh-project
das ist mein Code für das Problem, leider kann ich meinen ersten versuch nicht mehr ganz rekonstruieren, da ich den schon mehrfach überschreiben habe.. das auskommentierte ist ein anderer versuch gewesen

Code: [Select]

#include <SoftwareSerial.h>
SoftwareSerial gsvSerial(10, 11);

gsvSerial.begin(9600);
gsvSerial.print(AA902485, HEX);

// byte message[] = {0xAA, 0x90, 0x24, 0x85};
// gsvSerial.write(message[],size(message[]);

if(gsvSerial.available()){
    Serial.println(gsvSerial.read());
}


anbei habe ich auch noch aus der Beschreibung des Messverstärkers die verfügbaren Ports eingefügt.

Tommy56

Du solltest Dir als erstes einige Grundlagen zum Arduino anschauen, sonst wird das nichts.
Die Sketche in der Arduino-IDE (ich vermute, dass Du die benutzt) haben einen festgelegten Aufbau.
Code: [Select]

// Libs einbinden
#include <eineLib.h>
// evtl. globale Variablen deklarieren

// setup und loop müssen immer da sein
void setup() {
  // hier kommt das rein, was einmalig am Anfang gemacht werden soll
}

void loop() {
  // das wird immer wieder aufgerufen
}

Dann läßt Du den Code kompilieren und der Kompiler sagt Dir, was formal falsch ist.
Das kannst Du dan korrigieren oder auch hier fragen (mit der genauen Fehlermeldung).

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

fh-project

#4
Jan 23, 2017, 05:41 pm Last Edit: Jan 23, 2017, 05:49 pm by fh-project
das Sketch von mir ist mehrere hundert Zeilen lang und in diverse Unterklassen unterteilt, das hochladen würde den umfang der frage nur komplizierter machen, da das dort aufgeführte weder mit dem GSV kommuniziert noch auf die Daten zurück greift. ich kann dir gerne noch den Loop und das Setup drumrum schreiben wenn dir das weiterhilft

Code: [Select]

#include <SoftwareSerial.h>
SoftwareSerial gsvSerial(10, 11);

void setup()
{
  Serial.begin(9600);
  pinMode(7,OUTPUT);

  byte message[] = {0xAA, 0x90, 0x24, 0x85};

  gsvSerial.begin(9600);
  gsvSerial.write(message, sizeof(message));
  Serial.println("GSV geht");
}

void loop()
{
  if(gsvSerial.available()){
    Serial.println(gsvSerial.read());
  }
}


zentrales Problem:
KEINE FEHLER seitens des Compilers (zumindest bei dem auskommentierten nicht)

michael_x

#5
Jan 23, 2017, 06:24 pm Last Edit: Jan 23, 2017, 06:42 pm by michael_x Reason: Noch ein Tip
Quote
zentrales Problem: KEINE FEHLER seitens des Compilers
Na, das ist doch schonmal was.
Lässt sich wohl auch hochladen und starten und schreibt jedesmal nach Reset GSV geht aus.
( was natürlich nur Spass ist ).

Wo ist jetzt dein Problem?
Vermutlich kommt nichts an, sonst würdest du je empfangenem Zeichen eine Zeile mit einer Dezimalzahl sehen.

Quote
Aktuell ist es meine ich über UART2_RX und UART2_TX angeschlosse
Das verstehe ich nicht, gibt es auf dem Uno nicht. Du verwendest Pin 11 und 10 mit 9600 8N1.
Stimmt die Baudrate, simmen die Pins? Verwendet dein GSV TTL Logik ?
Dann müsste der Arduino seine Sende-Leitung (Pin 11) im Normalfall (Idle) OUTPUT HIGH schalten und seinen Empfangspin (10) vom SendePin des GSV auf 3..5V gesetzt bekommen.

Mit jedem ersten Wechsel des Empfangspins HIGH -> LOW erkennt der Arduino ein Startbit und zeigt dir irgendetwas an. ( 0 .. 255 )


Noch ein Tip: Verbinde Pin 10 und 11 mit einer Büroklammer und lass deinen Sketch laufen.

Die Ausgabe ist vermutlich
GSV geht
170
144
36
133

Das hast du jedenfalls so programmiert.
Der Rest ist jetzt ausserhalb von Pin 10 und 11.

Keine Ahnung was dein "docklight über USB" ist, und wie/was du am USB Port alternativ für deinen Test anschliesst. Kann/Darf jedenfalls nicht das sein, was du am Arduino Pin 10/11 hast.

fh-project

danke für deine antwort Michael.

das Programm Docklight hat mir der Support von ME-Systeme ans herz gelegt um zu überprüfen ob der verstärker in Kombination mit unserem sensor überhaupt etwas überträgt... ich kann ja mal einmal versuchen zu erklären was docklight macht:

für den verstärker (GSV-6CPU) gibt es eine Development-Einheit (GSV-DEV) welche das pin-Raster vergrößert und gleichzeitig einen Mirco-USB-Port zur verfügung stellt (zum Programmieren und auslesen).
Dieser ist mit dem COM4-Port meines PCs verbunden und wird über das Programm Docklight "überwacht" bzw. es wird der Transfer von Daten abgebiltet. In dem Programm (so sagte es mir der Support) solle ich eine neue Sequenz anlegen und einen HEX-Code als Transmission-Begin senden, sodas der Verstärker auch etwas über den COM-Port sendet... gemacht getan, der "Startcode" wurde an den verstärker gesendet und es laufen Munter 8Bit-HEX-Codes auf dem PC ein (das dürften die MEsswerte sein).
jetzt zu dem Problem. ich habe die in dem Eingangspost genannten Pins (siehe Bild) am Verstärker zur verfügung und brauche nun einen Möglichkeit genau wie Über den COM-Port werte zu empfangen und dies vermutlich mit dem startcode zu beginnen.

ich hoffe es ist einigermaßen zu verstehen was bisjetzt über die USB-Verbindung gemacht wird, was nun vom  arduino über seine Pins vollzogen werden soll.

michael_x

Hab mir jetzt auch mal dein Bild aus #2 angesehen. Und dort UART2_TX/ UART2_RX gefunden.

Dein docklight-USB wird aber vermutlich an X1 Pin 1..4 angeschlossen.

Oder hast du einen USB-Seriell Adapter, und das ganze auch über die Pins X2 15/7/8 (GND+UART2) schon getestet?

Keine Ahnung, was du machen musst, damit dein Teil auf seinen UART2 Pins so reagiert wie du es erwartest.

Die Chance, jemand zu finden, der sowohl dein GSV-6CPU wie auch Arduino kennt, ist vermutlich bei GSV Community/Support größer als hier.



Go Up