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 

SGL zu Byte



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!

20.03.2009, 19:49
Beitrag #11

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
SGL zu Byte
' schrieb:Ein Telegramm ist grob gesagt ein Datensatz.
@Beginner: Laß Dich von der Begriffsvielfalt nicht irre machen. In Deinem Bild heißt es "Datenblock". Die Bezeichungen "Telegramm" oder "Datensatz" werden hier als Synonyme dafür benutzt - mehr steckt da nicht dahinter. Damit der Text nicht so trocken ist, muß man eben auch einem Ingenieur einen gewissen literarischen Spielraum gönnen.

So würde jetzt die 4-byte Übertragung eines Single-Values mit Vor- und Rück-Konversion aussehen. Es gibt dabei keinerlei Einschränkungen im Zahlenbereich des Singles:

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.03.2009, 14:06
Beitrag #12

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
SGL zu Byte
Ooooooookay Leute,

langsam habe ich es raus. Mit eurem Spürsinn habt ihr erahnt, was ich einfach nicht erkannt hatte. -_-

Ich habe unten mal das ganze Blatt als jpg drangehängt. Da erkennt man, wie ihr geschrieben habt, dass der Wortwert 275 im Hexadezimal in 4 Byte umgewandelt wird und als zwei Mal 2 Byte Pakete in den Befehl hineingeschrieben wird.

Jetzt macht das auch langsam Sinn, warum diese Wortadressen immer eine Differenz von 2 zur nächsten Wortadresse haben. ^_^


Und jetzt kommt natürlich die Masterfrage: Es gibt auch den Befehl Schreiben von n Worten. Ich habe wieder die Erklärung des Manuals als jpg drangehängt und habe dabei eine konkrete Frage.
Ich verstehe in dem Beispiel nicht, warum an der Stelle Wortanzahl, max. 127 eine 02 steht. Huh

Es wird doch nur ein Befehl gegeben. Nämlich mit der Wortadresse 0x3014.

Was ist an dieser Stelle die Bedeutung des Begriffs Wort ?!?

Helft mir bitte Telegramme schreiben zu können. ^_^

Herzlichen Dank im Voraus.
Lv-B


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2009, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2009 15:57 von Lucki.)
Beitrag #13

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
SGL zu Byte
' schrieb:Und jetzt kommt natürlich die Masterfrage: Es gibt auch den Befehl Schreiben von n Worten. Ich habe wieder die Erklärung des Manuals als jpg drangehängt und habe dabei eine konkrete Frage.
Ich verstehe in dem Beispiel nicht, warum an der Stelle Wortanzahl, max. 127 eine 02 steht. Huh

Es wird doch nur ein Befehl gegeben. Nämlich mit der Wortadresse 0x3014.

Im engeren, fast ausschließlich gebrauchten Sinn ist ein (Daten)Word eine 16bit-Zahl, die aber nicht als Zahlenwert, sondern als Adresse verwendet wird und dementsprechend das Format U16 und nicht I16 hat. Für eine 32bit lange Adresse wird meist die Bezeichnung Doppelword verwendet, aber ich habe auch schon die Bezeichnung 32bit-Word dafür gesehen. Ist aber selten, und vielleicht wußten die Schreiber nicht was sie taten, man kann es praktisch vergessen.

Also, ich verstehe nicht was es da nicht zu vertehen gibt. Das Kommandoword ist redundant: Die Datenlänge wird hier doppelt vorangekündigt, einmal als Anzahl Words (02) und im nächsten byte noch mal als Anzahl von Bytes (04), also dem Doppelten des ersten Eintrages.

Im Beispiel werden also 2 Word, bzw 4 Bytes übertragen, und diese 4 Bytes (00 00 42 A0) folgen doch auch prompt nach der Ankündigung. Was ist daran schwierig?

Edit: Man beachte den Widerpruch in meiner eigenen Erklärung. Ich habe gesagt, daß die Bezeichnung Word meist im Zusammenhang mit Adressen verwendet wird. Hier sind aber im Eintrag "Wortanzahl" einfach Doppelbytes mit beliebigem Verwendungszweck gemeint. Man darf alles nicht so genau nehmen, die erwähnte literarische Freiheit der Ingenieure kommt auch hier zum Ausdruck. Wenn es nach mir ginge, hätte ich an dieser Stelle den Audruck "Word" besser vermieden. Überhaupt ist ja dieser ganze Eintrag überflüssig, wenn anschießend noch die Bytezahl genannt ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2009, 16:22
Beitrag #14

Labview-Beginner Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 114
Registriert seit: Oct 2007

6.1
2007
kA

67705
Deutschland
SGL zu Byte
Lucki schrieb:Also, ich verstehe nicht was es da nicht zu vertehen gibt.

Lucki schrieb:Edit: Man beachte den Widerpruch in meiner eigenen Erklärung. Ich habe gesagt, daß die Bezeichnung Word meist im Zusammenhang mit Adressen verwendet wird. Hier sind aber im Eintrag "Wortanzahl" einfach Doppelbytes mit beliebigem Verwendungszweck gemeint. Man darf alles nicht so genau nehmen, die erwähnte literarische Freiheit der Ingenieure kommt auch hier zum Ausdruck. Wenn es nach mir ginge, hätte ich an dieser Stelle den Audruck "Word" besser vermieden. Überhaupt ist ja dieser ganze Eintrag überflüssig, wenn anschießend noch die Bytezahl genannt ist.

^_^

Aber mal im Ernst, ich als Laie bin dahingehend eben schnell zu verwirren. Ich hatte mir genau diese Frage gestellt, welche Bedeutung die Wortanzahl hat.
Mir war klar, dass die Größe der Wortadresse durch die Angabe von 4 Bytes erledigt war. Also wozu noch die Anzahl der Worte angeben.

Ich dachte in meiner Naivität, dass ich damit mehrere Wortadressen in ein Telegramm packen kann. Dass ich also eine Art Befehl schreiben kann:
01 10 3014 3016 00 02 04 00 00 41 A0 00 00 41 A5 9779
_____WA1__WA2___________WW1______WW2

Soll heißen zuerst gebe ich die Wortadressen (WA1, WA2) ein, die ich gerne als Befehl übermittelt haben möchte und anschließend eben die zugehörigen Wortwerte.
Nur das funktioniert eben nicht. Dry

Ich dachte eben mit n Worten könnte ich n Wortadressen in ein Telegramm schreiben. Sprich nicht für jede Wortadresse einen eigenen Befehl generieren, sondern das ganze kompakter - in ein Telegramm - fassen.

Denn wozu sonst die Unterscheidung zwischen Schreiben eines Wortes und Schreiben von n Worten?

Ich checks net. -_-

Gruß,
Lv-B
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2009, 17:25
Beitrag #15

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
SGL zu Byte
' schrieb:Ich verstehe in dem Beispiel nicht, warum an der Stelle Wortanzahl, max. 127 eine 02 steht. Huh
2 bedeutet hier: In dem Telegramm sind diese beiden (also 2) Bytes vorgesehen für die Übertragung von Werten.
127 bedeutet, dass der maximale Wert, der übertragen werden kann, eben 127 ist.

127 ist also der Wert, den z.B. ein Parameter wie Temperatur o.ä. haben soll. 2 ist die Größe des Speicherbereiches innerhalb des Telegramms, in den der zu übertragende Wert passen muss.

Das eine, nämlich die 2, bezieht sich auf den Aufbau des Telegrammes. Das andere, nämlich die 127, ist der Inhalt des Telegrammes.

Das eine, nämlich den Aufbau, musst du als Programmierer kennen, damit du eine an sich funktionierende Schnittstelle programmieren kannst. Das andere, nämlich der Inhalt, muss halt nur passen, damit dein Temperatur-Schrank nicht überhitzt (sag ich jetzt mal so als Beispiel).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2009, 19:11 (Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2009 19:21 von Lucki.)
Beitrag #16

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
SGL zu Byte
' schrieb:Denn wozu sonst die Unterscheidung zwischen Schreiben eines Wortes und Schreiben von n Worten?

Also es wird hier (in dieser Doc) in der Terminologie unterschieden zwischen "Wordadresse" und "Word". Wenn hier nur von "Word" gesprochen wird, dann ist ein "Datenwort" gemeint. Ein Datenwort ist einfach ein U16-Wert, verteilt auf zwei Bytes (U8). Die Bezeichnung "Datenwort" statt Zahl wird hier deshalb verwendet, weil es keine reinen Zahlenwerte sind. Es handelt sich z.B um Gleitkomma-Single-Zahlen, die in zwei Datenworten (4bytes) übertragen werden, und die, gewissermaßen verschlüsselt, den Zahlenwert der Single Zahl zwar enthalten, aber selbst nicht diese Zahlenwerte sind. Deshalb die Bezeichnung Wort (Bytes) statt Wert oder Zahl.

Mit "Schreiben von n Worten" kann ich in einem einzigen Telgramm bis zu 127 Wortwerte übertragen. Daß die "Wortanzahl" auf 127 beschränkt ist, ist ja logisch und muß sein: Denn im anschließenden byte "Bytezahl" , was das Zweifache davon ist, läßt sich ja nur 0..255 reinschreiben. Auf die berechtigte Frage, warum für die Übertragung eines Zahlenwertes 0..127 zwei Bytes reserviert sind, ist die Antwort: "Da ist eben so - das erste Byte ist immer Null"

Abwandlung des Beispiel "Schreiben von n Worten"

Der Proportionalbereich Pb1 = 20 soll - sinnloserweise. ist aber hier egal - 5 mal hintereinder in einem Telegramm übertragen werden:

Der Gleitkommawert 20.0 entpricht codiert diesen 4 bytes: 00 00 41 A0.
Dann lautet das Telegramm:

01 10 30 14 00 0A 14 00 00 41 A0 00 00 41 A0 00 00 41 A0 00 00 41 A0 00 00 41 A0 XXXX

XXXX ist die Prüfsumme, weiß nicht wie die berechnet wird.

Und die Antwort ist:
01 10 30 14 00 0A yyyy

Was auch nicht aus dem DOC-Fragment hervorgeht, ist, warum überhaupt immer außer dem Wert eine Adresse mit übertragen wird. Anscheinend ist der Empfänger der Nachricht nicht intelligent genug selbt zu wissen, wo z.B. der Wert "Proportionalbereich" zu speichern ist.
Beim Senden eines (Daten-)Wortes wird es sich um die Adresse selbst handeln. Beim Senden von mehreren Worten wird es sich um die Anfangsadresse handeln, die Speicherung geschieht dann fortlaufend.

@IchSelbst: Entschuldige, Daß ich Deine Antort nicht erwähne. Veilleicht meinen wir beide das das Gleiche, ich habe nur auf die Schnelle nicht alles richtig verstanden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2009, 19:38
Beitrag #17

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
SGL zu Byte
Ich habe es schon mal gefragt, in der Hoffnung, Antwort zu erhalten: Welches Kommunikationsprotokoll willst/musst du implementieren? Sieht nämlich genauso wie Modbus aus, dafür gibt es bei NI eine schöne Library:
http://zone.ni.com/devzone/cda/epd/p/id/4756

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
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
  String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer hansi9990 9 7.139 16.07.2015 14:25
Letzter Beitrag: hansi9990
  Datenstring Byte/Wordweise umdrehen LabviewRoland 5 5.391 18.10.2013 07:32
Letzter Beitrag: LabviewRoland
  float wert in 4 byte konvertieren könnes 6 6.415 06.01.2012 13:11
Letzter Beitrag: eb
  Byte-Array konvertierung nach Byte olby2 3 5.645 21.11.2011 14:34
Letzter Beitrag: unicorn
  Konvertierung Byte Array nach Hex Nickylotta 2 7.501 15.07.2011 12:34
Letzter Beitrag: Rene_B
  2 Byte in ein Wert mit Vorzeichen Sebbo 3 5.148 13.09.2010 12:50
Letzter Beitrag: Sebbo

Gehe zu: