BeneluxSpoor.net forum
Vraag en antwoord => Digitaal => Topic gestart door: bask185 op 31 August 2021, 13:25:03
-
Ik weet dat multimausen een adres offset van vier heeft, Ik weet niet waarom dit zo is. En ik vraag het me wel af ???
Weet iemand per toeval dit?
Mvg,
Bas
-
Omdat de programmeur van de MMaus zich 100% aan de NMRA richtlijn heeft gehouden en dus in principe de enig correcte implementatie heeft gemaakt.
Alle (!!) anderen hebben Lenz gevolgd in hun 0-1 waanzinsstrijd, waardoor module adres 1, poortnummer 0 is gebruikt als "wissel 1" ( terwijl dit volgens de NMRA specs wissel 5 zou zijn )
Grtzz,
Karst
-
Dat verklaart dan waarschijnlijk ook dat als je met de MMaus een wissel via een Lenz wisseldecoder schakelt, je het getal 4 moet optellen bij het wisseladres.
Groet, Bas
-
Ik begrijp het niet helemaal.
Lenz is de ontwerper van DCC. Dat heeft de NMRA als norm overgenomen, dus dat kan pas NA het ontstaan van DCC. Dan heeft de NMRA toch de DCC norm niet gevolgd en niet andersom ?
-
De NMRA stelt de norm die is gebaseerd op de Lenz standaard, maar niet precies hetzelfde dus...
-
Er is geen verschil tussen de Lenz DCC specs en de NMRA norm.
Dat schrijf ik ook helemaal niet. ;)
Ik zeg alleen, en dat is ook zo, dat Lenz grote verwarring heeft gesticht met hun opvatting over wat het eerste wisseladres is.
Dat is m.i. Een typisch Lenz „trekje“: iedereen in de Elektro-/Low-level programmeerwereld benoemt bits in een byte van 0-7…. Zo niet Lenz, daar is het 1-8.
Grtzz,
Karst
-
Juist en begrepen.
En niet alleen verwarring stichten, maar dat ook blijven doorzetten.
Misschien voor de onduidelijkheid: ze geven ook nog eens de officiële nummering erbij. Maar dat moet je dan wel snappen, anders raak je nog meer de weg kwijt.
Heel jammer en voor mij ook onbegrijpelijk, dat ze er zo mee begonnen zijn.
-
Alle (!!) anderen hebben Lenz gevolgd in hun 0-1 waanzinsstrijd, waardoor module adres 1, poortnummer 0 is gebruikt als "wissel 1" ( terwijl dit volgens de NMRA specs wissel 5 zou zijn )
Hallo
Ik kan me er iets bij voorstellen. De meeste modelspoorders hebben geen kennis van hoe digitaal werkt; het hoeft alleen maar logisch te zijn.
Logisch is in dit geval dat de eerste wissel met nummer 1 begint en niet met nummer 5.
Bart
-
Een typisch Lenz „trekje“: iedereen in de Elektro-/Low-level programmeerwereld benoemt bits in een byte van 0-7…. Zo niet Lenz, daar is het 1-8.
Lenz gerelateerd aan Beckhoff? Dat is ook zo ongeveer de enige die zijn PLC I/O 1-8 nummert ... ;D
-
Dat is precies de enige reden Bart !
Op het eerste gezicht is 1-based simpeler/logischer.
Het is nu recent vastgelegd in een norm, RCN 213 dacht ik.
-
De logica van de 0 tot 7 nummering is dat het bitnummer de exponent is van 2.
Dus:
bit 0 betekent 20 = waarde 1
bit 1 betekent 21 = waarde 2
bit 2 betekent 22 = waarde 4
bit 3 betekent 23 = waarde 8
bit 4 betekent 24 = waarde 16
bit 5 betekent 25 = waarde 32
bit 6 betekent 26 = waarde 64
bit 7 betekent 27 = waarde 128
Als alleen bit 0 "aan" staat krijg je de waarde 1, dus het eerste adres.
-
(y) (y)
-
Rare rariteiten soms.
( terwijl dit volgens de NMRA specs wissel 5 zou zijn )
Ik vind het wel een beetje raar dat ze bij het maken van deze afspraken dat ze er maar mee akkoord gingen om geen wissel 1 t/m 4 in te bouwen. Konden ze niet gewoon ergens een +1 achter een module adres tikken? als ze perse niet met 0 willen werken. In code kan je immers doen en laten wat je wilt.
Lenz gerelateerd aan Beckhoff? Dat is ook zo ongeveer de enige die zijn PLC I/O 1-8 nummert ...
Onze eigenmaak machine besturingen hebben daar ook 'last van'. Die zijn genummerd 1X1 t/m 8X1 en 1X2 t/m 8X2 etc. Ze zijn ook nog eens contra met de hardware, elke pin 1 is bij mij bit 7 en pin 8 is bit 0. Ik vind het ergste nog dat de pinnummers voor de portnummers staan ::)
Maar is dit wel een DCC fenomeen en geen XpressNet ding? Zowel DR5000 en z21 hebben geen moeite met het aansturen van wissels 1-4. Alleen met de z21 moet ik er bij de maus 4 bij op tellen. De DCC pakketten moeten hetzelfde zijn. Het werkt immers.
XpressNet is volgens wel 0 geindext. Op mijn zelfbouw handregelaar kon ik aanvankelijk wissel 1 stellen door een 0 in te voeren. Dus voor zover XpressNet is wissel 1 eigenlijk wissel 0. En ik kon op die dag mijn 'nulde' wissel aansturen ;D. Toen heb ik het opgelost door in code een -1 te tikken
XpressNet.SetTrntPos( pointAddress - 1, state, 1 ) ;
En bij het ontvangen moet ik weer eentje bij op tellen
void notifyXNetTrnt( uint16_t address, uint8_t Pos )
{
address ++ ;
..
Nog zo'n rariteit is die module adressen. Ik had laatst de terugmelders op Xnet aan de praat gekregen, maar mr Gahtow had dat volgens mij nog niet helemaal gedecodeerd.
Ik was aan het puzzelen en ik las het Xnet protocol beschrijving nog eens door. Maar dat adres wat je terug krijgt, moet je delen door 4 (of shiften naar rechts met 2 :P)
address >>= 2 ;
Er zit dus blijkbaar informatie in bit 0 en 1, die je niet nodig heb. Zal vast ook wel een goede rede hebben.. ::)
Mvg,
Bas
-
Er zit dus blijkbaar informatie in bit 0 en 1, die je niet nodig heb. Zal vast ook wel een goede rede hebben.. ::)
Als je me jouw e-mail in een PB stuurt, stuur ik jouw de XpressNet specificatie waarin het antwoord op je vraag staat ;)
Grtzz,
Karst
-
Mijn E-mail staat onder mijn class 37 plaatje, maar ik denk niet dat het nodig is, want we hebben het waarschijnlijk over hetzelfde document.
Ik heb het over deze docu (https://wiki.rocrail.net/lib/exe/fetch.php?media=xpressnet:xpressnet-v2.pdf)
Waarin de mysterieuze reden minder mysterieus van wordt als ik het nog een keer doorlees ;)
Data Byte1: AAAA AAAA : For a turnout accessory decoder, the address in Data Byte 1 is the
turnout address divided by 4. For X-Bus V1 and X-bus V2 systems, the address has a range of 0 to
63, which equals 6 bits. XpressNet based systems have the possibility to use all 8 bits for this group
address which provides a range for turnout address from 0.1023 (256 * 4 = 1024). For example, for
accessory decoders, when ADR =0x00, (turnout group 0) the information is about turnouts 0, 1, 2 or
3 (accessory decoders are marked in the coding bits TT). Please note that XpressNet commands
use addresses from 0 to 1023 while the operator interface commonly uses addresses from 1-1024.
This difference needs to be considered in program development.
For a feedback module, the address can be in the range of 0..127 (7 Bit) and is directly the address
of the module.
Mvg,
Bas
-
Ik heb het over deze docu (https://wiki.rocrail.net/lib/exe/fetch.php?media=xpressnet:xpressnet-v2.pdf)
Nee, ik heb een duitse versie uit 2012
-
Hier ontspoort de discussie een beetje. In mijn vorige bericht heb ik al aangegeven waarom de telling van de bits bij 0 begint. En Karst heeft die uitleg goedgekeurd, dus wat wil je nog meer?
De telling van bits is wat anders dan de telling van sinaasappels.