Welkom,
Gast
. Alsjeblieft
inloggen
of
registreren
.
1 uur
1 dag
1 week
1 maand
blijvend
Login met gebruikersnaam, wachtwoord en sessielengte
Forum
Zoeken
Encyclopedie
Help
Kalender
Inloggen
Registreren
Doel:
€250.00
Donaties:
€88.00
Per saldo:
€-162.00
Steun ons nu!
Laatst bijgewerkt
op 03-06-2025
Vacature:
secretaris bestuur
Algemeen
Plaatje uploaden
Vraag en aanbod
Fotowedstrijd
Modelspoorwinkels
Youtube kanaal
Modelspoorkaart
De stichting
De stichting en team
Contact
Financieel
Algemene voorwaarden
Commerciële accounts
Forumregels
Disclaimer
F.A.Q.
Recente berichten
BeneluxSpoor.net forum - Recente berichten
Abonneer op Webslice
Ervaringen met EVA (Ethylene-vinyl acetate) foam/rubber als rail-underlayment.
door
Thai-Bundesbahn
Vandaag
om 01:07:55
4 oktober modelspoorbeurs Houten
door
Wilma1970
Vandaag
om 00:57:18
Mallnitzer Tauernbahnstrecke ÖBB N Spoor
door
Schachbrett
09 October 2025, 23:47:48
Wat vindt AI van jouw baan?
door
RobVille
09 October 2025, 23:42:04
Piko NS 5/600 Hippel 2025
door
sneek
09 October 2025, 23:17:34
Hoe een schaduwstation automatiseren
door
Dirk
09 October 2025, 23:12:09
De Projecten van RetroJack
door
RetroJack
09 October 2025, 23:11:00
Een nieuw baantje op Micromodules
door
Huup
09 October 2025, 23:03:04
Tickets Modelspoordagen 2026
door
Klaas Zondervan
09 October 2025, 22:57:43
Raadplaatje
door
chrvdv37402
09 October 2025, 22:57:42
Spoorwegmuseum krimpt collectie in
door
spoorijzer
09 October 2025, 22:29:12
Vervangen wissels flm profi
door
spoorijzer
09 October 2025, 22:20:09
Het bouwen van een Philotrain 2400 kit
door
Casmir
09 October 2025, 21:46:55
Toon hier je nieuwe (model-) spooraanwinst(en)...
door
MichielB
09 October 2025, 21:34:44
De bouw van mijn modelbaan in Thailand
door
wob
09 October 2025, 21:27:30
Modelbaan Beltheim.
door
basjuh1981
09 October 2025, 20:52:39
Bouw spoor nul modulebaan, Bahnhof Königshofen, tijdperk III
door
BartvD
09 October 2025, 20:16:47
Ombouw/Pimpen Bolle neuzen
door
BartvD
09 October 2025, 20:11:57
Blokken, isoleren en bezetmelders. Help!
door
janvanbemmel
09 October 2025, 20:10:25
Station Roodeschool
door
Torikoos
09 October 2025, 19:43:53
De dingen die je kan maken uit een plaat.
door
hmmglaser
09 October 2025, 19:29:58
Project X......
door
Ivo tB
09 October 2025, 19:27:32
Decals, witte NS logo's en cijfers voor plan E
door
Frans Peeters
09 October 2025, 16:22:02
Materieel verzameling van Michiel(NDS)
door
neudalhausenstadbahn
09 October 2025, 12:26:50
Modulebaan.nl - kleine keerlussen µMh0UB's
door
NS264
09 October 2025, 12:23:34
MODELSPOOR by MTD - 2025 - 18 & 19 oktober 2025 in Edegem (B)
door
Frans Peeters
09 October 2025, 12:18:23
UP Mikado. Messing model schaal-0. De zaag er in.
door
FritsT
09 October 2025, 11:59:38
Show je werkplek
door
neudalhausenstadbahn
09 October 2025, 11:58:26
Mijn eerste H0-modeltreinbaan in aanbouw
door
Wim Vink
09 October 2025, 11:16:31
Nahmertaler Kleinbahn
door
spoorijzer
09 October 2025, 11:06:43
Je bent hier:
BeneluxSpoor.net forum
|
Vraag en antwoord
|
Digitaal
|
P50x commando's
« vorige
volgende »
Print
Pagina's: [
1
]
Omlaag
Auteur
Topic: P50x commando's (gelezen 4348 keer)
**Jelle**
Offline
Berichten: 331
P50x commando's
«
Gepost op:
15 February 2007, 23:43:13 »
Vandaag bezig geweest met een (mislukt)
experiment. Ik gebruik eigen in Visual Basic geschreven software in combinatie met MrDirect.
De dekoders stonden in MrDirect op 14 snelheidsstappen (type NB), vandaag heb ik dat overgezet naar type N1, dus met 28 snelheidsstappen. Alle dekoders zijn ook omgeprogrammeerd naar 28 snelheidsstappen, dus CV29 op 2 gezet.
Vanuit MrDirect werkte alles weer direkt zonder problemen, maar vanuit mijn besturingsprogramma krijg ik er niet een meer in beweging. Het gekke is dat het omkeren van rijrichting wel werkt, (binnen)verlichting aan en uit werkt ook, maar de snelheidsinformatie komt niet aan in MrDirect. Terwijl dat voorheen wel werkte.
De commando's worden binair doorgegeven aan MrDirect volgens het volgende format:
*** XLok (080h) - length = 1+4 bytes
1st low byte of Lok address
2nd high byte of Lok address
3rd speed (0..127: 0 = Stop, 1 = Stop/Em.Stop)
N.B. bit #7 is reserved for future use!
4th this byte has the following format:
bit# 7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
|ChgF |Force| Dir | FL | F4 | F3 | F2 | F1 |
+-----+-----+-----+-----+-----+-----+-----+-----+
Is iemand wel eens vaker tegen dit probleem aangelopen?
Jelle.
Gelogd
NS, DDW, Edits booster, LocoNet met LbServer, besturing met eigen geschreven software in VB
Wim Ros
BHV
Offline
Berichten: 7819
Alleen de waarheid ligt in het midden.
Re: P50x commando's
«
Reactie #1 Gepost op:
15 February 2007, 23:57:14 »
Jelle,
Zend je dan ook de snelheids stappen volgens die 28 stappen.
0.127. Als je stap 127 zend zal hij op volle snelheid moeten gaan rijden.
De waardes voor de tussen stappen verschillen met de waardes voor 14 stappen.
Mvg
Wim.
DEFINT A-Z
FUNCTION P50_Speed% (P50X_Speed AS INTEGER)
SELECT CASE P50X_Speed
CASE 0, 1
P50_Speed = 0
CASE ELSE
P50_Speed = INT((P50X_Speed * 2) / 19) + 1
END SELECT
END FUNCTION
(Obvioulsy, it cannot ever happen that P50_Speed() = 15.)
The opposite conversion is performed using a table, indexed by the
P50 speed:
0, 2, 10, 19, 29, 38, 48, 57, 67, 76, 86, 95, 105, 114, 127, 1
The speed conversion routines for the other protocols/speed steps are:
Speed_15:
(FMZ protocol: 0 = Stop, 1..15 = non-stop speed steps)
IF (P50X_Speed = 0) OR (P50X_Speed = 1) THEN
Speed_15 = 0
ELSE
Speed_15 = INT((P50X_Speed + 1) / 9) + 1
ENDIF
Speed_27:
(DCC 27 protocol: 0 = Stop, 1 = Em. Stop, 2..28 = non-stop speed steps)
IF (P50X_Speed = 0) OR (P50X_Speed = 1) THEN
Speed_27 = P50X_Speed
ELSE
IF (P50X_Speed <
THEN
Speed_27 = 2
ELSE
nTemp = P50X_Speed * 2
nTemp1= INT(nTemp / 9)
nTemp2= nTemp - (nTemp1 * 9)
IF (nTemp2 >= 7) THEN
nTemp1 = nTemp1 + 2
ELSE
nTemp1 = nTemp1 + 1
ENDIF
IF nTemp1 > 28 THEN
Speed_27 = 28
ELSE
Speed_27 = nTemp1
ENDIF
ENDIF
ENDIF
Speed_28:
(DCC 28 protocol: 0 = Stop, 1 = Em. Stop, 2..29 = non-stop speed steps)
IF (P50X_Speed = 0) OR (P50X_Speed = 1) THEN
Speed_28 = P50X_Speed
ELSE
Speed_28 = INT(((P50X_Speed - 2) * 2) / 9) + 2
ENDIF
Speed_31:
(Selectrix protocol: 0 = Stop, 1..31 = non-stop speed steps)
IF (P50X_Speed = 0) OR (P50X_Speed = 1) THEN
Speed_31 = 0
ELSE
IF (P50X_Speed < 4) THEN
Speed_31 = 1
ELSE
Speed_31 = INT(P50X_Speed / 4)
ENDIF
ENDIF
«
Laatst bewerkt op: 16 February 2007, 00:02:10 door Wim Ros
»
Gelogd
Intellibox via LocoNet-Interface met s88 via een s88 naar LocoNet adapter.Of L.NET-S88SD16-N Marklin 6021 via een 63820, LocoNet-Interface en een s88 naar LocoNet adapter. Lenz Digital Plus via LI101F of s88XPressNetLi s88SD16-n.
http://rosoft.boards.net
**Jelle**
Offline
Berichten: 331
Re: P50x commando's
«
Reactie #2 Gepost op:
16 February 2007, 00:20:39 »
Hallo Wim,
bedankt voor je reaktie. Ik heb net even rechtstreeks in de regel die de lokcommando's verzendt de snelheid op 127 gezet, geen reaktie. In MrDirect bleef de snelheid gewoon 0.
Groetjes, Jelle.
Gelogd
NS, DDW, Edits booster, LocoNet met LbServer, besturing met eigen geschreven software in VB
Wim Ros
BHV
Offline
Berichten: 7819
Alleen de waarheid ligt in het midden.
Re: P50x commando's
«
Reactie #3 Gepost op:
16 February 2007, 00:47:14 »
En hoe ziet die regel er dan verder uit?
Mvg
Wim.
Gelogd
Intellibox via LocoNet-Interface met s88 via een s88 naar LocoNet adapter.Of L.NET-S88SD16-N Marklin 6021 via een 63820, LocoNet-Interface en een s88 naar LocoNet adapter. Lenz Digital Plus via LI101F of s88XPressNetLi s88SD16-n.
http://rosoft.boards.net
**Jelle**
Offline
Berichten: 331
Re: P50x commando's
«
Reactie #4 Gepost op:
16 February 2007, 17:09:09 »
Goedendag,
De aanstuurregel om loks aan te sturen vanuit Visual Basic ziet er als volgt uit:
MDIForm1.MrDirectAanst.Output = "X" + Chr$(&H80) + Chr$(DekAdres(LokNo) And &HFF) + Chr$(DekAdres(LokNo) \ 256) + Chr$(AanstSnel) + Chr$(&H80 + &H40 * Force + &H20 * Ri + F14)
Chr$(DekAdres(LokNo) And &HFF), low byte of Lok adress
Chr$(DekAdres(LokNo) \ 256), high byte of Lok adress
Chr$(AanstSnel), snelheid
Chr$(&H80 + &H40 * Force + &H20 * Ri + F14), hierin zit de richting, funkties etc.
Aan deze regel is niets veranderd sinds het omzetten naar 28 rijstappen. De waarde AanstSnel bevat de gewenste snelheid, en deze heeft allerlei waarden tussen 0 en 127 gehad, maar in MrDirect gebeurde niets.
Omzetten rijrichting, funkties etc werkt wel.
Jelle.
Gelogd
NS, DDW, Edits booster, LocoNet met LbServer, besturing met eigen geschreven software in VB
Wim Ros
BHV
Offline
Berichten: 7819
Alleen de waarheid ligt in het midden.
Re: P50x commando's
«
Reactie #5 Gepost op:
16 February 2007, 18:38:45 »
Dit is een onderdeel van een werkend voorbeeld programma te vinden op
http://groups.yahoo.com/group/IBX/files/Simple_VB6_Program/
Misschien dat je even lid moet worden van de group.
P50XCmd Chr(XLok) + Chr(Adresse% And &HFF) + Chr(Adresse% \ 256) + Chr(Vitesse%) + Chr(&HC0 + (Direction% And &H1) * 32 + (Lumiere% And &H1) * 16 + (F14% And &HF))
De juiste waardes voor Vitesse%
staan in spd
Case "28", "28ADR", "28DAC"
Select Case spd
Case 0: spd = 0
Case 1: spd = 2
Case 2: spd = 7
Case 3: spd = 11
Case 4: spd = 16
Case 5: spd = 20
Case 6: spd = 25
Case 7: spd = 29
Case 8: spd = 34
Case 9: spd = 38
Case 10: spd = 43
Case 11: spd = 47
Case 12: spd = 52
Case 13: spd = 56
Case 14: spd = 61
Case 15: spd = 65
Case 16: spd = 70
Case 17: spd = 74
Case 18: spd = 79
Case 19: spd = 83
Case 20: spd = 88
Case 21: spd = 92
Case 22: spd = 97
Case 23: spd = 101
Case 24: spd = 106
Case 25: spd = 110
Case 26: spd = 115
Case 27: spd = 119
Case 28: spd = 124
'Function to send a P50Xa (P50X ASCII) or P50Xb cmd.
'It returns the ASCII reply to the cmd
Public Function P50XCmd(s As String)
If Programmer.Port.PortOpen Then
send = IIf(Asc(Left(s, 1)) < &H80, s + vbCr, s)
If P50 Then
send = "x" + send
End If
While Programmer.Port.OutBufferCount > 0: Wend
With Programmer.Port
j = Len(send)
For i = 1 To j
Tmp = Left(send, 1)
send = Mid(send, 2)
.Output = Tmp
Next
End With
If Asc(Left(s, 1)) >= &H80 Then
Call Events(s)
else
r$ = ""
Do
t% = WaitRx%()
If t% = -1 Then 'I.e. if rx timeout
Debug.Print (t%)
P50XCmd = ""
Exit Function
Else
r$ = r$ + Chr$(t%)
End If
Loop While t% <> Asc(IB_OK_Prompt): '"]"
P50XCmd = r$
End If
End Function
«
Laatst bewerkt op: 16 February 2007, 18:55:29 door Wim Ros
»
Gelogd
Intellibox via LocoNet-Interface met s88 via een s88 naar LocoNet adapter.Of L.NET-S88SD16-N Marklin 6021 via een 63820, LocoNet-Interface en een s88 naar LocoNet adapter. Lenz Digital Plus via LI101F of s88XPressNetLi s88SD16-n.
http://rosoft.boards.net
Print
Pagina's: [
1
]
Omhoog
« vorige
volgende »
Je bent hier:
BeneluxSpoor.net forum
|
Vraag en antwoord
|
Digitaal
|
P50x commando's