INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serieller Mess-Bus (DIN Mess-Bus)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.08.2009, 15:53
Beitrag #1

Oeric Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Nov 2008

8.6
2008
de

60388
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
Hallo Zusammen,

ich habe ein kleines Problem mit meinem Lambda-Meter LA4 von ETAS.
Ich bekomme einfach die Kommunikation mit meinem Mess-PC nicht hin.
Ich hänge mal die Informationen aus dem User-Guide an:

_______________________________________

6.3Kurzbeschreibung Serieller Meß-Bus (SMB)

Über den seriellen Meßbus können bis zu 16 Meßmodule an die serielle
Schnittstelle eines PCs angeschlossen werden. Die Übertragungsrate beträgt
38.400 Baud und es wird das Format 1 Startbit, 8 Datenbits, 1 Stopbit, keine
Parität benutzt.
Die Kommunikation wird immer vom PC eingeleitet. Jede Nachricht enthält die
Adresse des anzusprechenden Meßmoduls und den Befehlscode. Alle angeschlossenen
Meßmodule prüfen diese Anforderung d.h. sie dekodieren diese
und vergleichen den Adressteil mit der am jeweiligen Modul eingestelltenModuladresse. Nur das selektierte Modul verarbeitet die Nachricht, alle anderen
ignorieren die Nachricht. Die Verarbeitung der Kommandos ist modulspezifisch
definiert.

6.3.1Anforderung PC ⇒ Lambda Meter:

Jede Nachricht ist 1 Byte lang. Sie besteht aus Adreßteil für das anzusprechende
Modul und einem Kommandoteil für den modulspezifischen Kommandocode
von jeweils 4 Bit.
Jede Moduladresse (0 bis F) darf nur einmal vorkommen.

6.3.2Antwort Lambda Meter ⇒ PC:

Die vom Modul gesendete Information enthält keine Angaben über ihren Aufbau
und ihre Normierung. Es wird nach Anfrage immer nur 1 Byte, <CR> und
<LF> an den PC übertragen.
Der PC muß immer zuerst das HIGH-Byte und dann das zugehörige LOW-Byte
abfragen. Das LOW-Byte ist erst nach Abfrage des HIGH-Byte gültig!

6.3.3Codetabelle Lambda Meter

Bei Abfrage des PC über folgende Codes sendet das Lambda Meter maximal
1 Byte, das folgende Informationen enthält:
Code Beschreibung Wertebereich und
Umrechnungsvorschrift:

0 reserviert, exit aus Testmodus

1 LA4 sendet λ-Wert in 8 Bit-
Darstellung
0,744 ≤ λ ≤ 1,746

2 LA4 sendet High-Byte des
λ-Wertes in 16 Bit-Darstellung
0,7 ≤ λ ≤ 32,767

3 LA4 sendet Low-Byte des
λ-Wertes in 16 Bit-Darstellung

4 LA4 sendet High-Byte des
Ri-Wertes in 16 Bit-Darstellung
0,0 ≤ Ri ≤ 250,0 Ω

5 LA4 sendet Low-Byte des
Ri-Wertes in 16 Bit-Darstellung

6 LA4 sendet High-Byte des
O2-Wertes in 16 Bit-Darstellung
0,0 ≤ O2 ≤ 24,41 %

7 LA4 sendet Low-Byte des
O2-Wertes in 16 Bit-Darstellung

8 LA4 sendet High-Byte des
A/F-Wertes in 16 Bit-Darstellung
10,29 ≤ A/F ≤ 327,67

9 LA4 sendet Low-Byte des
A/F-Wertes in 16 Bit-Darstellung

ah LA4 sendet High-Byte des
internen Statuswertes (16 Bit)
noch nicht definiert

bh LA4 sendet Low-Byte des
internen Statuswertes (16 Bit)
noch nicht definiert

ch LA4 sendet High-Byte des IP
Wertes (16 Bit)
–3 mA ≤ IP ≤ 3 mA

dh LA4 sendet Low-Byte des IP
Wertes (16 Bit)

eh reserviert, Testmodus noch nicht definiert

fh reserviert, Umschaltung in
Testmodus
_________________________________ (die Umrechnungsvorschriften habe ich weggelassen, die Endwerte werden jeweils durch Verrechnung des high- und des low-wertes bestimmt)

Außer diesen Informationen, dem Gerät mit Lambda-Sonde und einem RS232-auf-USB-Adapter habe ich nichts. VISA erkennt den Adapter, es passiert jedoch nichts.
Zunächsteinmal möchte ich den Sauerstoffgehalt messen. Was muss ich als Schreibpuffer in "Visa: Schreiben" eintragen? Die andern Messgrößen sind ja analog erhebbar.

Ich danke euch schonmal für eure Hilfe.

(Anbei findet ihr meinen ersten Ansatz, erstellt mit LabVIEW 8.6)


Angehängte Datei(en)
Sonstige .vi  TEST1.vi (Größe: 18,42 KB / Downloads: 260)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.08.2009, 16:59
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
1. Deine Baudrate ist mit 38400000 wohl etwas zu groß. Wink
2. Von Sauerstoffgehalt sehe ich in Deiner Anleitung leider nicht viel. Ich bin sowieso durch die (nett ausgedrückt) etwas dürftige Anleitung nicht ganz durchgestiegen. Hast Du nichts ausführlicheres?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2009, 09:26
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Serieller Mess-Bus (DIN Mess-Bus)
Die Information ist tatsächlich rudimentär. Das Byte das Du senden musst enthält 4 Bits für die Adresse und 4 Bits für das Kommando. Aber da fehlt zum Beispiel die Information ob die Addresse die oberen oder unteren 4 Bits sind.

Der Rest wäre dann einfach. Einfach das Kommandobyte senden, entweder indem Du die Geräteaddresse zwischen 0 und 15 mit 16 multiplizierst und das Kommando hinzuaddierst, oder umgekehrt das Kommando mit 16 multiplizierst und die Geräteaddresse hinzuaddierst. Danach sicherstellen dass diese Zahl ein 8 bit unsingned Integer ist, diesen in ein Array verwandeln (Build Array) und dann mit Byte Array to String in einen String um an die VISA Funktion zu senden. Danach zwei Bytes zurücklesen und das erste Byte davon analysieren. Das wird noch eine lustige Bitschieberei aber das schaffst Du schon.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2009, 10:42 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2009 11:05 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
Das Manul ist klar und eindeutig. Der Einwand von rolfk ist zwar richtig, aber rein akademsch. Denn man kann, zumal wenn nichts dazu gesagt ist, doch wohl darauf vertrauen, daß die Reihenfolge der 4-bit-Werte "Adresse" und "Kommando" der Reihenfolge innerhalb des Bytes von links nach rechts, d.h. von High nach Low entspricht. Das Gegenteil wäre Verarschung des Anwenders.

Auch würde ich keinesfalls einen String mit mehreren Bytes an das Gerät senden. Es ist überhaupt nicht gesagt, daß das vom Gerät aus funktioniert. Also immer nur 1 byte senden und die Antwort des Gerätes abwarten.

Als Beispiel hier das Auslesen des 16bit Lambda-Wertes.(Kommandos 2 und 3).
    Lv86_img
Sonstige .vi  TEST1w.vi (Größe: 19,71 KB / Downloads: 253)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2009, 08:09
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Serieller Mess-Bus (DIN Mess-Bus)
Die Tatsache ist dass viele Manuals grundsätzlich Dinge sehr rudimentär beschreiben und da ist dieses Manual keine Ausnahme. Es mag als "Verarschung" klingen wenn die Dinge sich anders herausstellen als der erste intuitive Gedanke sie einem als logisch erscheinen lässt, aber in diesen Dingen wurde ich schon zu oft "verarscht" als dass ich auf diese Unterlassung hier nicht hätte hinweisen wollen Wink

Ich nehme an dass die Warnung mit dem String mit mehreren Bytes nich auf meinen Post gemünzt war. Da steht nämlich nirgends sowas drin. Wenn man die Anleitung genau befolgt kommt immer ein String mit genau einem Byte heraus.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2009, 09:32 (Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2009 13:15 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
@Rolf Kabermatter:
Hast schon reicht, die Reihenfolge der beide Halbbytes im Byte hätte man schon benennen müssen. Recht eindeutig ist es nur für jemanden, der bereits Erfahrungn mit RS485 hat und weiß, daß vor jeder gesendeten Nachricht erst eine Adresse kommt und dann erst das Kommando. Aber davon darf das Manual nicht ausgehen.

Warnung mit dem String: Entschuldige vielmals, es war - zu Unrecht - auf Dich gemünzet. Habe mich durch Deinen Text verwirren lassen. Natürlich kann "Byte array to string" auch einen 1byte-String als Resultat haben.
Zu meiner Entlastung muß ich aber sagen, daß
Zitat:Danach sicherstellen dass diese Zahl ein 8 bit unsingned Integer ist, diesen in ein Array verwandeln (Build Array) und dann mit Byte Array to String in einen String um an die VISA Funktion zu senden.
eine etwas umständliche - und von daher missverständliche - Vorgehensweise/Beschreibung von dem hier ist:
   
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2009, 09:44
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Serieller Mess-Bus (DIN Mess-Bus)
' schrieb:eine etwas umständliche - und von daher missverständliche - Vorgehensweise/Beschreibung von dem hier ist:
[attachment=48977:Clip.png]

Ich verstehe, aber in meiner Erfahrung löst das erwähnen des Typecast bei Anfängern mehr Unklahrheiten aus, dann es erklärt. Big Grin

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2009, 11:25
Beitrag #8

Oeric Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Nov 2008

8.6
2008
de

60388
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
Ich danke euch für eure Hilfe.

Jedoch erscheint der Timout-Fehler 1073807339...
Hab auch schon die Timout-Zeit hochgesetzt, hilft jedoch nicht.

Ist es überhaupt möglich mit einem Gerät zu kommunizieren, dass über einen din mess-bus verfügt, wenn ich es mit einem RS232 converter an mein USB anschließe...
Im Gerätemanager wird nämlich nur der COM-Port aufgelistet, mein Lambda-Meter jedoch nicht...
Ich habe mit derartigen Messgeräten noch keine Erfahrungen machen dürfen und die Anleitung, wie ihr schon gemerkt habt, ist sehr dürftig. Es ist auch keine Treiber-CD vorhanden und der Hersteller lässt sich auch Zeit mit seiner Antwortmail.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2009, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2009 14:17 von Lucki.)
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
' schrieb:Ist es überhaupt möglich mit einem Gerät zu kommunizieren, dass über einen din mess-bus verfügt, wenn ich es mit einem RS232 converter an mein USB anschließe...
Der Din-Messbus basiert auf der RS485-Schnittstelle, nicht auf RS232. Ein USB-RS485 Konverter sollte es schon sein, und kein USB-RS232 Konverter. Sicherheitshalber solltest du auch noch mal die Anschußbelegungen der 9pol. SubD-Buchsen von Gerät und Kabel überprüfen. Auf der sicheren Seite liegst Du nur, wenn Du von der Herstellerfirma das zum Gerät passende Konverterkabel für den PC-Anschluß bestellst, bzw. deren Empfehlung beachtest.
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2009, 14:30
Beitrag #10

Oeric Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Nov 2008

8.6
2008
de

60388
Deutschland
Serieller Mess-Bus (DIN Mess-Bus)
' schrieb:Der Din-Messbus basiert auf der RS485-Schnittstelle, nicht auf RS232. Ein USB-RS485 Konverter sollte es schon sein, und kein USB-RS232 Konverter. Sicherheitshalber solltest du auch noch mal die Anschußbelegungen der 9pol. SubD-Buchsen von Gerät und Kabel überprüfen. Auf der sicheren Seite liegst Du nur, wenn Du von der Herstellerfirma das zum Gerät passende Konverterkabel für den PC-Anschluß bestellst, bzw. deren Empfehlung beachtest.

Im Lieferumpfang des Gerätes war das passende Kabel dabei, es ist jedoch nicht aufzufinden...
Ja, die Pin-Belegung ist anders, das habe ich auchs schon festgestellt. hab mir auch ein passendes Kabel zusammengelötet, bei dem ich einfach nur die kabel vertauscht habe, es funzt trotzdem nicht...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  FTDI Serieller Port machfax 3 6.562 21.12.2017 17:51
Letzter Beitrag: Ratio

Gehe zu: