Wie sieht das Protokoll des M4660 Multimeter aus

Antworten
john.kennedy
Beiträge: 2
Registriert: Montag 6. Mai 2013, 21:18

Wie sieht das Protokoll des M4660 Multimeter aus

Beitrag von john.kennedy » Dienstag 7. Mai 2013, 11:27

Hallo

Wie sieht das Uebertragungsprotokoll dieser DVM aus, die mehrere Messwerte auf einmal senden?
Z.B. das M4660 ( aber auch alle anderen mit z.B. 2 Displays )

Hab das mal in Bascom so emuliert:

Do
Print "DC-123.45mV " ;
Print "DC-234.56mV " ;
Print "DC-345.67mV " ;
Print "DC-456.78mV " ;
Printbin 13 ; ' CR
loop

Sind bis jetzt nur feste Werte, aber das PL DVM M4660 Modul gibt keine Werte aus.
Im Seriell Monitor sieht es bei 9200Bd 7N2 gut aus. Der MC gibt folgenden String raus:

DC-123.45mV DC-234.56mV DC-345.67mV DC-456.78mV

Welches Format erwartet PL am eingang ?
Wie muss es korrekt aus sehen ?
Hat das schon mal jemand gemacht?

Gruesse und Dank im vorraus

abacom
Site Admin
Beiträge: 3925
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Wie sieht das protokoll der Mehrfach-Display Multimeter aus

Beitrag von abacom » Mittwoch 8. Mai 2013, 08:03

Das Protokoll ist (mehr oder weniger gut) im Datenblatt des Gerätes beschrieben.
Bei einer "Protokoll-Emulation" muss man sich natürlich strikt an das "Originalgerät" halten,
insbesondere u.a. auch bei den Einheiten. Ohne eine Originalgerät mit dem man vergleichen kann,
wird man kaum auskommen, da sonst besteht die Gefahr, dass fehlerhafte Messwerte entstehen.

http://www2.produktinfo.conrad.de/daten ... _4660M.pdf

Code: Alles auswählen

"Ein Datenformat ist 14 Byte lang. Die Zusammensetzung lautet wie folgt:"
BYTE 1 2 3 4 5 6 7 8 9 A B C D E
Bsp.1 DC -3 .9 9 9 V CR
Bsp.2 3 .9 9 9 Mo h m CR
(Zwischen zwei Kanälen würde ich also ein CHR(13) annehmen!)
ABACOM support

john.kennedy
Beiträge: 2
Registriert: Montag 6. Mai 2013, 21:18

Re: Wie sieht das Protokoll des M4660 Multimeter aus

Beitrag von john.kennedy » Mittwoch 8. Mai 2013, 21:03

Danke fuer die Antwort.

Ich werde das mal mit je einem CR nach jedem Kanal ausprobieren.
Aber wie werden dann die Kanaele dann von einander unterschieden?
Ist das Timing auch im Protokoll festgelegt?

Wegen der Genauigkeit und der Interpretation mache ich mir weniger Sorgen.
Ich kann ja Dummys schicken und Vergleichen.

Aber zur Zeit kommt aus dem PL modul noch garnichts raus.

abacom
Site Admin
Beiträge: 3925
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Wie sieht das Protokoll des M4660 Multimeter aus

Beitrag von abacom » Montag 13. Mai 2013, 08:37

Dass DMM sendet nur nach Request! Hier die PL-Auswertung...
Mehr kann ich nicht machen.

Code: Alles auswählen


Procedure TSerialMultimeter.Request_DMM_Data;
begin
   Comm.Write('D', 1);
end;


procedure TMetex.CreateMesswert;
var p,dummy,i: integer;
    WertString: string[8];
    EinheitString: String[5];
    RealMesswert: Real;
    Daten: String[14];
    Dek: extended;
begin
   if length(DatenPuffer)=14*(KanalAnz-1) then
   begin
      Dek:=1;
      for i:=0 to KanalAnz-2 do
      begin
         MesswertString:=Copy(DatenPuffer,1,14);

         {*** schön machen ***}
         if (Pos('TM',MesswertString)>0) or
            (pos('TE',MesswertString)>0) then
         begin
            p:=pos('C',MesswertString);
            if p>0 then MesswertString[p-1]:='°';
         end;
         while (Pos('DB',MesswertString)>0) do
         begin
            p:=pos('D',MesswertString);
            if p>0 then MesswertString[p]:='d';
         end;
         {***}
         if i=0 then
         begin
            if (Pos('OL',MesswertString)>0) or (Pos('O.L',MesswertString)>0) then
               PMesswert(MesswertListe.Items[KanalAnz-1])^:=5 else PMesswert(MesswertListe.Items[KanalAnz-1])^:=0;
         end;
         if PMesswert(MesswertListe.Items[KanalAnz-1])^<2.5 then {*** nicht bei OL *** }
         begin
            Daten:=Copy(DatenPuffer,i*14+1,14);
            EinheitString:=TrimString(Copy(Daten,10,4));
            WertString:=TrimString(Copy(Daten,3,7));
            if length(EinheitString)>0 then Dek:=Dekade(EinheitString); {keine Einheit? dann nimm die vom Kanal vorher}
            Val(WertString,RealMesswert,dummy);
            RealMesswert:=RealMesswert*Dek;
            PMesswert(MesswertListe.Items[i])^:=RealMesswert;
         end;
      end;
   end;
end;


ABACOM support

Antworten

Zurück zu „Thema Multimeter“