|
|
Datenübertragung VA 18B Multimeter |
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.02.2008, 13:48
Titel: Datenübertragung VA 18B Multimeter
|
 |
|
 |
|
Hallo!
Ich wollte gerne mit Matlab daten meines V&A 18B Multimeters auslesen, RS232 USB port, bisher leider ohne erfolg. Nachdem ich den (japanischen?) Hersteller kontaktiert habe, erhielt ich folgende Informationen zum Datei-format de gerätes:
"1 Direct: unilateralism to PC
2 Baud rate: 2400 bps
3 Data bit: 8 bit
4 Parity check: no
5 Data system: Hexadecimal
6 Data length: 14 bytes
7 Data information: LCD table on-off information
8 Data format: 1st byte → 1X (X is seg1, 4 bits represent the data on the LCD table)
2nd byte → 2X (X is seg2, 4 bits represent the data on the LCD table)
3rd byte → 3X (X is seg3, 4 bits represent the data on the LCD table)
1X → 4 bit, 2X→ 4 bit, 3X→ 4 bit
9 X expression: Bit3~Bit 0→ sign (COM4―COM1)
10 Sample rate: 40 KHz
11 ADC output frequency: 40Hz
12 ADC average value output frequency: 10Hz
13 Auto-Zero output frequency: 4Hz
Note:
If (MEA4, MEA3, MEA2, MEA1) = (0, 0, X, X), the ADP1 will light.
If (MEA4, MEA3, MEA2, MEA1) = (0, 1, 1, 0), the ADP2 will light."
Ein Bildchen war noch anbei woraus ersichtlich wurde, dass Segment 1-14 die LCD felder des Display sind.
Leider kam mit folgendem code nur Mist heraus:
s=serial('Com3');
set(s,'BaudRate',2400);
fopen(s);
s.ReadAsyncMode = 'continuous';
fread(s,20,'double') oder 'single' oder 'float' etc..
Ich schätze mir fehlt noch der Terminator string?
Vielen dank für jede Hilfe!
Markus
|
|
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.02.2008, 14:35
Titel:
|
 |
..ich seh gerade: Punkt 7 soll mir sagen, dass alles was gespeichert/gesendet wird sind On/Off informationen bezgl. des LCD display segmentes. Das wird das Aulesen natürlich etwas umstädnlich gestalten.
Wie dem auch sei, dennoch: Wie bekomm ich die 14 oder mehr Nullen und Einsen? Jedes Segment besteht ja aus mind. 6 weiteren? Wie ist das in 4 bits geschrieben?
Hier mal das Bild / LCD Table:
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.02.2008, 17:56
Titel:
|
 |
mhh.. keiner eine Idee?
Ich schätze, die 14 byte sind die daten die ich lesen muss, 4 bit für die zeile (X?), und 4 bit für 1 oder 0 (On Off), also 1 byte (8bit), und das ganze 14 mal für die 14 spalten...
Aber wie sag ich das Matlab? Vor allem irritiert mich noch das "hexadecimal"?
Würde mich über jede Hilfe freuen!
Markus
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2008, 18:38
Titel:
|
 |
mhh..kann mir vielleicht wenigstens jemand helfen und verraten, was mir in der Daten-Protokoll beschreibung das "hexadecimal" sagen soll?
Muss ich das beachten?
Wäre für jede Hilfe nach wie vor sehr dankbar!
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.02.2008, 23:18
Titel:
|
 |
..ok, da es kein fread(s,16,'binary') gibt, muss ich wohl mit dec2bin() arbeiten, aber woher weiss ich, wo meine daten beim continious stream anfangen damit die x-y zuordnung passt?
Weiss jemand, wie man den Terminator character herausbekommt?
Sonst irgendwelche ideen?
Hilfe wäre super..
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2008, 16:02
Titel:
|
 |
ist dieser thread unsichtbar?
|
|
|
Babel42 |

Forum-Fortgeschrittener
|
 |
Beiträge: 51
|
 |
|
 |
Anmeldedatum: 05.10.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.02.2008, 11:56
Titel:
|
 |
Nein, unischtbar ist er nicht...
bekommst du denn überhaupt schon Daten aus deinem Messgerät? Ich hatte mit fread keinen Erfolg bei meinen Messungen (mußte ein Beleuchtgsmessgerät abfragen.)
versuch erst mal etwas der Art.
Ansonsten: Bemüh mal die Forensuche, RS232-Probleme wurden des öfteren schon diskutiert.
Grüße
_________________
„I think the problem, to be quite honest with you, is that you've never actually known what the question is.“
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.02.2008, 13:34
Titel:
|
 |
Hallo!
Danke für die Antwort! Daten bekomme ich, aber die sehen in etwa so aus:
fscanf(s, '%c' ,s.BytesAvailable)
ans =
'=@Uau °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~ °ÀÐâ'=@Ug~
Wobei die Doppelausrufezeichen Quadrate in der Matlab-Ausgabe sind, und noch ein paar andere merkwürdige Characters auftauchen die hier mit Pfeilen dargestellt werden...
Scheint ja periodisch zu sein, aber wie finde ich heraus, wo die daten anfangen?
Wenn ich int8 abfrage bekomme ich:
>> fscanf(s,'int8',16)
Warning: Matching failure in format.
ans =
~ °ÀÐâ'=@Ug~
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.02.2008, 18:42
Titel:
|
 |
Ich habe mir nun sowohl den SerialWatcher als auch den Free Serial Port Monitor 3.31 installiert.
Der SerialWatcher hängt sich auf, ohne mir irgendetwas anzuzeigen und lässt sich erst abschießen, nachdem ich den USB stecker gezogen habe.
Der Serial Monitor zeigt mir leider auch fast nix:
Port geöffnet durch Vorgang "Device Monitor.exe" (PID: 2884)
Port geschlossen
Port geöffnet durch Vorgang "Device Monitor.exe" (PID: 2884)
Port geschlossen
Port geöffnet durch Vorgang "Device Monitor.exe" (PID: 2884)
Port geschlossen
..ist alles was ich an infos bekomme. mhh: Schon merkwürdig, mit der mitgelieferten Freeware funktioniert alles einwandfrei, bei Matlab erhalte ich irgendeine Form von daten, aber diese Freeware Analyse Tools geben mir nix?
Hat jemand eine Idee woran das liegen könnte oder ob das vielleicht mein Problem in Matlab ist?
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.02.2008, 11:41
Titel:
|
 |
Tjoa... weiß jemand wie ich aus dem kryptischen Salat Nullen und Einsen machen kann, bzw. wie ich den Terminator String finden kann?
Hab mir die andere Beiträge zu RS232 angeschaut, aber nix gefunden..
Danke.
|
|
|
kpa |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.04.2008, 09:11
Titel: VA18B
|
 |
Hallo,
ich versuche mit dem VA38 zu kommunizieren habe aber dabei ein Programm für das VA18B entdeckt.
Das ist für Linux aber vieleicht kannst Du mit dem C-Code etwas anfangen.
http://multimeter.schewe.com
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.08.2008, 09:38
Titel: Dekodieren des Protokolls
|
 |
|
 |
|
Hallo,
falls es noch jemand braucht, ich konnte das Protokoll anhand der hier gelieferten Informationen entschlüsseln !
Alle 14 Byte werden die Informationen des Displays gesendet.
Der Empfang muss als Datenbytes (Binär), nicht als Text erfolgen.
Schreibt man die Bytes Hexadezimal so sieht das zum Beispiel so aus.
0x1B 0x27 0x3D 0x4D 0x5B 0x63 0x7E 0x81 0x95 0xA0 0xB0 0xC0 0xD4 0xE0
Wie man erkennen kann ist die Zahl in den ersten 4 Bits die Durchnummerierung der Bytes. So kann man auch die empfangenen Bytes syncronisieren. Man muss also erst einmal eine Reihe mit den Nummern 1 bis E was Dezimal 1 bis 14 entspricht empfangen.
Nimmt man nun das hier gepostete Bild, so entsprechen die untersten 4 Bits des erste Byte der Info "SEG1" in der Tabelle. Die untersten 4Bit des zweiten Bytes entspribt der Information von "SEG2" usw.
"SEG2" und "SEG3" ergeben den Inhalt der ersten 7 Segmentanzeige
"SEG4" und "SEG5" ergeben den Inhalt der zweiten 7 Segmentanzeige usw.
Die Info aus byte 2 und 3 ist also die Anzeige des 1. Segmentes und des Minuszeichens.
Die Info aus byte 4 und 5 ist also die Anzeige des 2. Segmentes und des Dezimalpunktes P1.
Die Info aus byte 6 und 7 ist also die Anzeige des 2. Segmentes und des Dezimalpunktes P2.
Die Info aus byte 8 und 9 ist also die Anzeige des 2. Segmentes und des Dezimalpunktes P3.
Am Beispiel von Byte 2 und 3 zeige ich nun wie das Funktioniert.
0x27 0x3D
Die unteren 4 Bist haben also die Werte 0x7 und 0xD. Das Oberste Bit aus Byte 2 würde anzeigen, das das Minuszeichen gesetzt ist. Da das Bit nicht gesetzt ist, ist das Minuszeichen nicht an.
Wenn man sich nun die Segmente der 7-Segmentanzeige anschaut, so ergeben siech folgende Zahlen für die 10 möglichen Dezimalzahlen:
(Da hab ich auch einige Zeit verbraten, bis ich das raushatte )
Anzeige, Zahlenwert im Protokoll
0 0x7D
1 0x05
2 0x5B
3 0x1F
4 0x27
5 0x3E
6 0x7E
7 0x15
8 0x7f
9 0x3F
Im Beipiel ergebne Sich die Zahlen 0x7 und 0xD was dann 0x7D ergibt und der Ziffer 0 entspicht.
Alle Sonderzeichen der Anzeige können entsprechend der Tabelle im Bild auch dekodiert werden.
Gruß
Schuggi
Falls ihr noch Fragen habr, so schreib mir ne Mail an INFO[AT]Schuggi.de
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|