Addr. (LOW) und Addr. (HIGH)

Spendel

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum Beschreiben eines mobilen Datenspeichers soll ich als Addresse an der die Daten gespeichert werden sollen eine Addr. (LOW) und eine Addr. (HIGH) angeben. An anderer Stelle soll ich die Datenlänge angeben. Besteht der Zusammenhang Addr. (LOW) + Datenlänge = Addr. (HIGH). Das würde wiederum nicht mit dem Beispielprogramm in der Anleitung übereinstimmen. Später in der Beschreibung des Telegramms werden diese Daten als MSB=höherwertiger Adressteil und LSB= niedrigwertiger Adressteil. Es handelt sich hierbei im Übrigen um ein MOBY der Firma SIEMENS.

Was ist nun mit diesen Angaben gemeint?
 
Hallo,
MOBY kenne ich nicht aber was diese Beschreibung sagen will ist...

Die Adresse besteht aus 2 Teilen (egal ob jetzt 4 Byte oder 2 Byte)

Code:
HB          LB             (für 2 Byte Adresse)

oder 

HHB HB    LB LLB           (für 4 Byte Adresse)
-------    ------

wobei das hier so interpretiert wird.

HIGH       LOW
MSB        LSB
High / Low kann auch noch mal vertauscht sein (also links/rechts) , abhängig ob little oder big endian...


MSB = Most significant bit
LSB = Low significant bit (oder so ähnlich halt)
 
Ja, ok so richtig zum Verständnis hat das bei mir leider noch nicht geführt.


Im Siemens Beispiel ist gegeben

W#16#4711

wobei die 47=HIGH
und die 11=LOW

Was für ein Addressbereich ist das auf meinem MDS?
 
Ohne mehr von deinem Programm gesehen zu haben ist das nicht ganz einfach.
Ich kenne Siemens-Moby (Moby-E, Moby-I, RF300) soweit, dass ein Moby-Kommando aus
1. command (Lesen, Schreiben, Init, ...)
2. sub_command (für bestimmte commands nötig)
3. length (Länge)
4. address_MDS (Adresse auf dem Keks)
besteht.
Demnach wäre deine MDS-Adresse (W#16#4711) wohl 18193.

Grüße von HaDi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok 18193dez=4711h. Soviel weiß ich auch. Die Adresse macht doch aber keinen Sinn wenn der größte mobile Datenspeicher 752Byte hat. Und 18193 ist viel, viel größer als 752.
 
AUF DB 100 verwendeten FBDB aufrufen
RESET: DBW 0.0
Start lesen/Schreiben DBW 0.1
Rückmeldung:
Fertig DBW 0.15
Fehler DBW 0.14
DATDB/DATDW DBW 2
Fehlerart/ANZ DBW 4
CALL FC 44
ADR : = 256
BEDB : = 100
MOBY : = 0
ANW : = 1
ABTA : = B#16#00
OPT : = B#16#00
OPT2 : = W#16#0000
L DBW 0 BEST laden
T MW 250 und zwischenspeichern
UN M 250.7 Ready?
BEB FC 44 nochmals aufrufen
U M 250.6 Abfrage auf Fehler
BEB Bei Fehler erfolgt kein neuer Befehlsstart
U M 0.0 MOBY-Befehl neu starten?
BEB " Nein
L W#16#0A00 DATDB = 10 und DATDW = 0
T DBW 2
L W#16#0114 Befehl = 1 " schreiben ohne ECC.Länge = 20 Byte
T DBW 6
--> L W#16#4711 Ab der Adresse 4711HEX auf dem MDS
T DBW 8 einstellen
UN M 0.0
S M 251.1 Starte den MOBY-Befehl neu im BEST
R M 0.0 MOBY-Befehl ist gestartet
L MW 250 ... und bringe das Startbit in
T DBW 0 ... den BEDB zurück
BE

Der Pfeil markiert die Stelle, die mir Kopfzerbrechen bereitet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was passiert denn, wenn du einen Befehl ausführst?
Kommt eine Fehlermeldung in ANZ(DBW4), wenn ja, welche?
Gib doch an der fraglichen Stelle mal eine Adresse ein, die bei deinem MDS auch existiert!

Grüße von HaDi
 
Eine Fehlermeldung hab ich im ANZ nicht. Es wird auch ein Telegramm an die MDS übermittelt, dass ich mit der Anlöeitung auf die Einstellungen zurückführen kann. Nur Daten werden nicht übermittelt. Auch dann nicht wenn ich die Addresse kleiner mache.
 
Nur Daten werden nicht übermittelt. Auch dann nicht wenn ich die Addresse kleiner mache.
Wie stellst du das fest?
Wenn dein MDS 752 Bytes kann und die Adresse auf W#16#4711 steht muss m.E. eine Fehlermeldung kommen, oder dein Problem ist grundlegender.
Welches ASM hast du im Einsatz?
Blinkt da irgendwas dran?
Was steht im DB10 drin?
Magst du mal dein Projekt hier reinstellen?

Grüße von HaDi
 
Zurück
Oben