WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Datenübertragung VA 18B Multimeter

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.02.2008, 14:48     Titel: Datenübertragung VA 18B Multimeter
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 16.02.2008, 15:35     Titel:
  Antworten mit Zitat      
..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: ---
     Beitrag Verfasst am: 17.02.2008, 18:56     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 18.02.2008, 19:38     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 20.02.2008, 00:18     Titel:
  Antworten mit Zitat      
..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: ---
     Beitrag Verfasst am: 21.02.2008, 17:02     Titel:
  Antworten mit Zitat      
ist dieser thread unsichtbar? Shocked
 
Babel42
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 05.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2008, 12:56     Titel:
  Antworten mit Zitat      
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.

Code:

fscanf(B510, '%c' ,B510.BytesAvailable)
 


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.“
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2008, 14:34     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 22.02.2008, 19:42     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 26.02.2008, 12:41     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 29.04.2008, 10:11     Titel: VA18B
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 23.08.2008, 10:38     Titel: Dekodieren des Protokolls
  Antworten mit Zitat      
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 Smile )

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
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.