29.10.2008, 10:44
|
Duffman2
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Sep 2008
8
2008
de
73547
Deutschland
|
Anbindung ohne Treiber
' schrieb:Du kannst ja auch mal das gescante Beispiel nachbauen.
Die VI findest du in GPIB 488.2
Habe das Bsp. mal nachgebaut aber da hab ich ebenfalls das Problem das ich eine Zahl aus dem Befehlsatz im Hex Format als Befehl senden muss.(Auf dem Bild: value in Hex format).
|
|
|
29.10.2008, 13:15
|
Duffman2
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Sep 2008
8
2008
de
73547
Deutschland
|
Anbindung ohne Treiber
' schrieb:und was ist das Problem?
rechte Maus-Taste als Hex-Display, und Zahl eingeben.
Mein Problem ist die richtige Hexzahl aus dem Datenblatt rauszubekommen. Ich bräuchte da ein Beispiel wie z.B. die Hexzahl zur Einstellung der Sprache aussieht und sich zusammensetzt.
|
|
|
29.10.2008, 13:23
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Anbindung ohne Treiber
' schrieb:Mein Problem ist die richtige Hexzahl aus dem Datenblatt rauszubekommen. Ich bräuchte da ein Beispiel wie z.B. die Hexzahl zur Einstellung der Sprache aussieht und sich zusammensetzt.
Dein Problem ist vielschichtig.
Das Byte für die Sprache lautet 0x00 bis 0x03 - siehe Seite C-6 ganz oben. Das Byte ergibt sich aus "U8 nach String". Mach also ein U8, der 0x00, 0x01, 0x02 oder 0x03 enthält. Mit dem entsprechendem Element kannst du den dann in ein String umwandeln.
Nächstes Problem: Die Sprache befindet sich im ID-Telegramm Nummer 4. Siehe Überschrift Seite C-6.
Zusätzlich zu diesem einen, dem ersten Byte aus ID4, kommen noch weitere 12, also insgesamt 13 Byte, die zum Telegramm Nr. 4 gehören.
Du musst also, wenn die die Sprache einstellen willst, ein Telegramm aus ID + 13Byte + BCC erstellen. Wie die 13 Byte aussehen, steht auf Seite C-6.
Soweit klar?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
29.10.2008, 14:43
|
Duffman2
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Sep 2008
8
2008
de
73547
Deutschland
|
Anbindung ohne Treiber
' schrieb:Dein Problem ist vielschichtig.
Das Byte für die Sprache lautet 0x00 bis 0x03 - siehe Seite C-6 ganz oben. Das Byte ergibt sich aus "U8 nach String". Mach also ein U8, der 0x00, 0x01, 0x02 oder 0x03 enthält. Mit dem entsprechendem Element kannst du den dann in ein String umwandeln.
Nächstes Problem: Die Sprache befindet sich im ID-Telegramm Nummer 4. Siehe Überschrift Seite C-6.
Zusätzlich zu diesem einen, dem ersten Byte aus ID4, kommen noch weitere 12, also insgesamt 13 Byte, die zum Telegramm Nr. 4 gehören.
Du musst also, wenn die die Sprache einstellen willst, ein Telegramm aus ID + 13Byte + BCC erstellen. Wie die 13 Byte aussehen, steht auf Seite C-6.
Soweit klar?
Aller Anfang ist in dem Fall ja ganz schön schwer!!!:-(
1. Frage: Wenn das Byte für die Sprache 0x00.... heißt wieso muss ich das Byte in einen String umwandeln?
2. Frage: Das mit dem Telegramm hab ich auch nicht ganz kappiert. Ich hab mir das jetzt so gedacht zum Bsp. Sprache umstellen
ID=254
SIN=0 ( Master->Slave)
ID=00000100 (Master->Slave und ID Nummer 4)
Data= 1 (uc)
BCC=??
Sorry bin halt noch ein Anfänger was LabVIEW angeht.
Danke für die Mühen!!!!
|
|
|
29.10.2008, 15:36
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Anbindung ohne Treiber
' schrieb:Aller Anfang ist in dem Fall ja ganz schön schwer
Ja, sag ich doch. Protokoll selber machen ist nicht mehr Stand der Technik.
Zitat:1. Frage: Wenn das Byte für die Sprache 0x00.... heißt wieso muss ich das Byte in einen String umwandeln?
Weil 0x00 eine Zahl ist und über die Schnittstelle ein Stream in Form eines Strings geht. Es geht auch so: Alle 15 Bytes (1xID, 13xDaten, 1xBCC) in einen Array of Byte. Dieses sann in String umwandeln und senden.
Frage zwischendurch: verwendest du jetzt RS232 oder GPIB?
Zitat:2. Frage: Das mit dem Telegramm hab ich auch nicht ganz kappiert. Ich hab mir das jetzt so gedacht zum Bsp. Sprache umstellen
ID=254
SIN=0 ( Master->Slave)
ID=00000100 (Master->Slave und ID Nummer 4)
Data= 1 (uc)
BCC=??
1. Laut Beschreibung erwartet das Endgerät 13 Datenbytes, wenn es ID 4 bekommt. Also müssen zwischen ID und BCC 13 Datenbytes erscheinen.
2. Laut Beschreibung ist BCC die XOR-Verbindung aller Datenbytes. In deinem Beispiel hier, das ich für falsch halte, wäre BCC also 1.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
29.10.2008, 16:02
|
Duffman2
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Sep 2008
8
2008
de
73547
Deutschland
|
Anbindung ohne Treiber
' schrieb:Ja, sag ich doch. Protokoll selber machen ist nicht mehr Stand der Technik.
Weil 0x00 eine Zahl ist und über die Schnittstelle ein Stream in Form eines Strings geht. Es geht auch so: Alle 15 Bytes (1xID, 13xDaten, 1xBCC) in einen Array of Byte. Dieses sann in String umwandeln und senden.
Frage zwischendurch: verwendest du jetzt RS232 oder GPIB?
1. Laut Beschreibung erwartet das Endgerät 13 Datenbytes, wenn es ID 4 bekommt. Also müssen zwischen ID und BCC 13 Datenbytes erscheinen.
2. Laut Beschreibung ist BCC die XOR-Verbindung aller Datenbytes. In deinem Beispiel hier, das ich für falsch halte, wäre BCC also 1.
Ok jetzt ist es mir schon um einiges klarer geworden. Ich hab ne RS232 Verbindung welche auch richtig konfiguriert sein sollte da das Gerät bis heute mit Diadem gesteuert wurde.
Dann muss ich mir jetzt noch mal Gedanken machen wie ich die 13 Bytes zwischen ID und BCC Beschreibe.....
Ich muss das auf jeden fall hinbekommen :-) !!
|
|
|
30.10.2008, 16:38
|
Duffman2
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Sep 2008
8
2008
de
73547
Deutschland
|
Anbindung ohne Treiber
So ich denke jetzt weiß ich wie es theoretisch auszusehen hat, das ist jetzt mal ein Beispiel wozu ich mir jetzt ziemlich sicher bin:
________________________________________________________________________________
________________________
Bsp.: Ausgabe der Sollwerte:
254 0 3 0 0 1 0%BSW 0
B1 B2 B3 B4 B5 B6 B7B8-B9B10
B1: RS_COM =254
B2: Sin = 0 00 => TX/RX = 0=> master zu slave (sendemodus)
Adresse 00=> alle slaves
B3:ID =003 Auswahl der Befehlsgruppe Ausführung DCU-Funktion
B4: Data1 =000 Reserve
B5: Data2 =000 automatischer Test
B6: Data3 =001 Taste Aktualisierung der Alarme
B7: Data4 =000 Modus Vorgabe Moment
B8: Data5 =Var Sollwert
B9: Data6 =Var Sollwert
B10: BCC =000 BCC:Blockcheck-deaktiviert:Wert0 ( Blockcheck ist manuel am Gerät deaktivierbar)
________________________________________________________________________________
__________________________
Könnte das die richtige Lösung sein um einen Sollwert vorzugeben?
Wie muss ich jetzt weiter vorgehen ich hab versucht den Befehl (254 0 3 0 0 1 0%BSW 0) in allen möglichjen Variationen zum Gerät zu schicken aber nichts funktioniert.
|
|
|
| |