Railmaster - running on its own box
Our "In House" developed software package for overall control
Steps Needed to Install and Use The Model Railway Control Program
These are the steps required to install our software on a new computer :-
Denkovi Relay Boards
Install the Denkovi drivers using the exe install program – The computer should then recognise the board – make a note as to which COMs are allocated as these will need to be input to the control program
Mini Maestro Servo Control Board
The Mini Maestro is a USB attach board that enables us to control 12 servos on the layout
1. Run the Maestro setup to set up the software etc…
2. Plug the board in to a USB Socket (and windows should do the rest)
3. Try the Maestro Control Program to ensure the drivers are all in place (NOTE :- this needs to be run as admin !!)
DigiBee ++ I/O Control Board
1. Plug the DigiBee++ board into a USB Socket (Windows should install the drivers)
2. Run the DigiBee setup to install the LogicLab program
3. Run LogicLab (as admin again) and use auto/run to check board is being recognised
4. Copy the MyDLLs directory to the local C Drive (DLLs needed to support VB on the DIGIBEE)
The Executable Program The program is “published” from VBNet and simply copied to wherever it is to be used from. The executable can then be run locally
The Program Modules
There are four main sections to the control program :-
1. Relay Control – This simply enable all the individual relays to be switched on and off – it does not have any logic within this module but is the main module accessed at startup. The COM Ports can be allocated and settings initialised at this time.
2. Layout Relay Control – This displays the train layout and allows MANUAL control of the railway functions (such as lights, track sections, signals etc…). This is aimed to be the main form used when controlling the layout by hand.
3. Servo Control – This enables servos to be operated on the layout (creating moving objects) – at this time there is no clever logic around the layout but the most likely will be at a later date
4. Tracking and Motion Automation – This module is designed to monitor the movement of trains and also automate reality by allowing trains to be semi-scheduled at the main station – This is the main Logic Module as it interacts with the real train movements and, in its way, is the inverse of the Layout Relay Control module in that it is designed to replace manual control with automation.
The Tracking and Automation Logic The logic within the Automation Module is built around two timers
1. A FAST Timer which keeps a track of current sensor readings and simply stores them in an array
2. A SLOW Timer which uses the current array of sensor readings to control the layout
I initially tried to do it all with one timer but the amount of logic was slowing the loop down to much for up to date sensor reporting (it takes about 0.2 secs for a train to pass a sensor at speed)
It soon became apparent that this two timer approach would be necessary
The FAST Timer needs to run as fast as possible to keep track of train sensor hits and not miss the fact that a train has crossed a sensor point.
The SLOW Timer can run at around 1 second per hit – ½ a second might be feasible but may start to affect the responsiveness of the fast timer.