BeneluxSpoor.net forum
Vraag en antwoord => Digitaal => Topic gestart door: PaulRoman op 05 April 2021, 15:03:50
-
Beste digitalisten,
Ik constateer een merkwaardig fenomeen bij de communicatie van mijn laptop met de Intellibox Basic via USB (plaatje configuratie 1). Het probleem heb ik onderstaand beschreven. Daarnaast heb ik eenzelfde serie testen uitgevoerd waarbij de communicatie van de laptop met de Intellibox Basic loopt via een tussengeschakelde Hans Deloof LocoBuffer. (plaatje configuratie 2). Hierbij treedt het beschreven probleem niet op.
Mijn conclusie is dan ook dat er in de Intellibox soms een probleem optreedt, wat me doet denken aan een buffering probleem. Kent iemand dit fenomeen, en weet iemand een oplossing ? Misschien te verhelpen met een (mij onbekende) setting van een of andere Special Option (SO)?
Hier dan de probleemomschrijving:
Situatie schets:
1) Laptop Dell Inspiron, Vista 64-bit sp2
2) Koploper 9.4.9 draaiend op Laptop
3) Intellibox Basic
4) Arduino Uno rev 3
5) Zelfbouw LocoNet-shield voor Arduino Uno
6) LocoNetMonitorExtended programma, gelinkt met LocoNet library versie 1.1.4 draaiend op Arduino
Conmmunicatie:
Laptop (Koploper) en IB Basic communiceren via LocoNet (COM4, 115200 baud)
Arduino communiceert met PC via Serial Port (COM3, 115200 baud)
IB Basic communiceert met Arduino via LocoNet-T uitgang naar LocoNet-shield op
Arduino pin 6 (TX) en 8 (RX), 16667 baud
(https://images.beneluxspoor.net/bnls/Dell-Koploper-IntelliboxBasic-Configuration-606b043ff11bd.png) (https://images.beneluxspoor.net/bnls/Dell-Koploper-IntelliboxBasic-Configuration-606b043ff11bd.png)
Instellingen:
IB-Basic: SO[13] = 4 (200ms); SO[14] = 5 (250 ms);
Koploper: Wisselactivatietijd = 300ms; Pauzetijd = 300 ms;
Tests:
- Koploper-GO button schakelt IB-GO button aan, en Arduino Serial Monitor toont een ontvangen OPC_GPON. Dus OK.
- Ingeven van een wissel-commando in de Arduino Serial Monitor dat verwerkt wordt door het gemodificeerde LocoNetMonitor programma levert twee keer een OPC_SW_REQ. Een keer voor On en een keer voor Off, precies zoals geprogrammeerd.
Het wissel in het IB-Basic display gaat om en het wissel in Koploper gaat om. Dit gaat altijd goed.
- Drukken op een wisselknop op de IB-Basic levert twee of drie keer een OPC_SW_REQ op de Arduino Serial Monitor display, een keer On, en een of twee keer Off, afhankelijk van hoe lang de knop ingedrukt is gehouden. Het wissel gaat om in de IB-Basic display, en het wissel gaat om in Koploper. Dit gaat altijd goed.
- Clicken op een wissel in Koploper. In Koploper gaat het wissel om, op de IB-Basic display gaat het wissel om. Dit gebeurt altijd. MAAR op de Arduino Serial monitor zou drie keer een OPC_SW_REQ moeten worden ontvangen. Een keer voor On, en twee keer voor Off. Want de IB time-out voor het zenden van een Off staat op 250ms, en Koploper zendt een Off na 300ms.
Meestal is dat zo, maar soms ontbreekt de OPC_SW-REQ voor On, en soms die voor een Off. Dit is dus NIET GOED.
Gebruik ik de onderstaande configuratie en voer ik dezelfde tests uit dan heb ik geen enkel communicatie probleem.
(https://images.beneluxspoor.net/bnls/Dell-Koploper-LocoBuffer-Configuration-606b08088407a.png) (https://images.beneluxspoor.net/bnls/Dell-Koploper-LocoBuffer-Configuration-606b08088407a.png)
Wie kent het fenomeen en weet de oorzaak en een oplossing ?
Groet,
Paul
-
Hallo,
Veel respons had ik op mijn vraag niet verwacht :(. Maar is er dan helemaal niemand die mij iets meer kan vertellen ?
In ieder geval heb ik een goed werkende configuratie (2) met de HDL Locobuffer, maar ik had graag geweten waardoor het probleem in de oorspronkelijke configuratie (1) wordt veroorzaakt.
Groet,
Paul
-
De seriële poort van de IB is niet helemaal lekker. (op een of andere manier minder stabiel) Daarom wordt vaak al aangegeven dat voor een stabielere communicatie via een loconet-adapter beter is. Er zal wel wat over die brakke poort geschreven zijn :)
Groet Ronald.
-
Ik heb niet veel verstand van Arduino maar het lijkt me niet handig om het hele spul 2 keer op je pc aan te sluiten. Op deze manier komt data dubbel binnen en dat kan verwarrend werken. Ik zou persoonlijk altijd geen voor een situatie met 1 communicatie middel voor de PC.
En zoals Ronald schrijft is de RS232 poort van de intellibox niet heel fris.
Gr. Roy
Verstuurd vanaf mijn SM-G970F met Tapatalk
-
Kan bovenstaand antwoord alleen maar bevestigen.
De intellibox gebruiken met communicatie poort geeft problemen.
Ik heb dit opgelost door een usb-loconet interface nr 63130 van het zelfde merk.
Maar dit moet ook met de Locobuffer zoals op plaatje 2 opgelost zijn.
-
Heren,
@Ronald, Anton en Roy: De conclusie is blijkbaar dat rechtstreeks gebruik van de communicatiepoort van de Intellibox Basic instabiel kan zijn. Dat heb ik dus ook ervaren. Verder is hier geen oplossing voor te vinden. Nu gebruik ik de HDL Locobuffer voor de connectie met de PC, en tot nu toe werkt dit vlekkeloos. Verder niets meer aan doen dus en de directe seriele communicate met de Intellibox Basic laten voor wat die is.
@Roy: De Arduino verzorgt niet de communicatie tussen het treinbesturingsprogramma (Koploper) op de PC en het LocoNet. De Arduino is gewoon een LocoNet-module die LocoNet-commando's naar en van de Loconet-bus schrijft resp. leest. Hij pikt gewoon commando's van het LocoNet op en laat deze via de Serial Monitor op de PC verschijnen. Ook kan ik via de Arduino Serial Monitor zelf LocoNet-commando's genereren, die dan weer door de Intellibox, en Koploper worden opgepikt. Dit werkt vlekkeloos.
Ik geef bijvoorbeeld een commando om een bezette bezetmelder op LocoNet te gooien, en ik zie dat dan op de Intellibox en in Koploper verschijnen. En Koploper doet daar verder mee wat ik in Koploper heb gespecificeerd. Zie plaatje.
(https://images.beneluxspoor.net/bnls/Communicatie-60951d05b1646.png) (https://images.beneluxspoor.net/bnls/Communicatie-60951d05b1646.png)
Allen bedankt,
Groet,
Paul
-
Verder niets meer aan doen dus en de directe seriële communicatie met de Intellibox Basic laten voor wat die is.
Helemaal correct, scheelt een hoop frustratie ;D