running trains with more than on CS

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

running trains with more than on CS

Post by MacBarfuss » 24.09.2010, 07:34

Hi!

This is a duplicate entry to my question in German subboard "Basisfunctionalität", but I think my problem is global.

I try to create a standard for my modules a may be create in the next 60 years. The plan is to have a "scalable" module configuration with no limitation for the size of the final layout. Only DCC-adresses should be the bottleneck (and this is software so we can alter this later).

Maybe I'm megalomaniac (a bit), but I don't want to stop at roundabout 30 running trains if there is the possibility for 10000 adresses. And IMHO is the limit of 30 trains not that large for a bigger club.

Following problem is not solved for me:
How can trains controlled by more then one CS?
Rocrail has to send the commands for one loco to the CS which has the train on its controlled part.
What has to be managed for module connections?

Or am I completely wrong and this all is not possible, or even better: there is no problem? Just run!?

rjversluis
Site Admin
Posts: 42306
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Post by rjversluis » 24.09.2010, 07:41

Hi,

you can only solve this by using R2RNet. This means you will have one Rocrail server and one CS per module.

http://wiki.rocrail.net/doku.php?id=networking-en

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

Post by MacBarfuss » 24.09.2010, 08:25

Many thanks for this fast and helpful answer.

I have just a few descriptions in own words and question to qualify my understanding:

Does "A roaming train will be set to zero velocity if it has left a system." means each server uses one copy of the train database and the velocity on the module the train left is set to zero as the train is not moving on this part of the layout. Is the velocity set to the current value on the entered module then?

Is there one "master" server starting up with global routes and what else?

If using iRoc, can I connect to all servers with one instance and how can I switch between the server instances? (I have my phone here, but i'm no in the net my server is in, so testing is pain.)

To avoid the need of routing tables between each module, is it possible to keep a train running if it left the route? So if each module ends in a two track main line there is no need for routing this.

rjversluis
Site Admin
Posts: 42306
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Post by rjversluis » 24.09.2010, 08:46

MacBarfuss wrote: Does "A roaming train will be set to zero velocity if it has left a system." means each server uses one copy of the train database and the velocity on the module the train left is set to zero as the train is not moving on this part of the layout. Is the velocity set to the current value on the entered module then?
The properties of the train are handed over to the next system. Velocity will remain the same.
MacBarfuss wrote: Is there one "master" server starting up with global routes and what else?
Just one with the globals.
MacBarfuss wrote: If using iRoc, can I connect to all servers with one instance and how can I switch between the server instances? (I have my phone here, but i'm no in the net my server is in, so testing is pain.)
You can only connect to one system a time.
MacBarfuss wrote: To avoid the need of routing tables between each module, is it possible to keep a train running if it left the route? So if each module ends in a two track main line there is no need for routing this.
No.

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

Post by MacBarfuss » 08.10.2010, 13:37

hey,

many thanks for all your answers. It is all clear for me now ... but:

I think to use this there really should be a possibility to send commands to locos independent from their current position.

If I have iRoc running and walking down the arrangement and there is a switch between RocRail-Server instances at a module switch. It is not good if I have to turn off iRoc, step over to Settings, change to the other IP (and have the correct IP at hand) and go Back to iRoc, select the loco and ... do the necessary break.
This sounds like the old Windows joke about what it will look like if windows will run cars. You hit the break. The car says: "Do you really want to break now or do you want to break later?" and all you can do is hit "Yes" or "No" or wait for the next wall to come.

Hmm, what if there would be another server instance called something like "LocoProxy". Controller can connect to this service and stay there. The iRoc/andRoc GUI will get reduced to loco controls only and the device sends all commands to the proxy. LocoProxy will send the command to whatever seems appropriate. This could be a broadcast to all RocRail server instances or the proxy can try to figure out where one loco is at the moment and send the command to the responsible server only.

Just an idea but I look forward to any comments.

M

Edit: Typo
Last edited by MacBarfuss on 08.10.2010, 21:48, edited 1 time in total.

rjversluis
Site Admin
Posts: 42306
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Post by rjversluis » 08.10.2010, 17:37

Hi,

I think the better approach is to use only one CS and the module support of Rocrail.
It makes no sense to dedicate a Rocrail server to every module.

R2RNet is for connecting big segments together, not modules of 1 or 2 meter in length.

The common way at Fremo is the LocoNet bus and every module or group provides its own (SPAX)booster.

The way you are planning would need at least 30 computers running Rocrail for a common modular layout presented by the Dutch MGV club.

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

Post by MacBarfuss » 08.10.2010, 21:48

hmm, I do not only see "module < arrangement" but "module < segment < arrangement"

In the first case you are right. A full srcpd on a small Single-Board-Computer and DDL with a 1 A Booster was an idea I though of ... but that is not a really good solution.

But we need to speak about three layers (second case): modules, segments and the arrangement. Each segment has its own CS. This allows completely seperate parts of the layout .... pardon, the arrangment.

tuxlover
Posts: 60
Joined: 04.11.2008, 12:38

Post by tuxlover » 08.10.2010, 23:10

hi,

the problem is, what to do when you have a lot of locos running, so you get a bottleneck, when you would drive only with one CS.

R2RNet can handle this situation as i see. In automatic mode there is no problem, because each PC can handle his segment and interacts through global routes with his neighbors.

But what to do in manual mode, as MacBarfuss wrote switching manually with a loco control client to the Rocrail server of the actual segment the loco is in, is not handy. But it is not easy to do this by the system because the system must know where the loco is. If you monitor your complete layout/arrangement so each movement is monitored by the system a global Locoproxy could do this job.
If you have wired loco controls like Freds this could be done by monitoring the connection boxes near the borders between to segments as it is done in FREMO. The people will follow their trains, so you can detect the time when they will cross a boarder between two CS.
The big problem is, what to do if you have wireless loco control clients and don't monitor train movements on the layout/arrangement? You can hold all wireless controlled locos active in all CS but then you can't solve the bottleneck problem. You can try to make the changing procedure between two R2Rnet servers as easy as possible but it will not stay handy. And people have to know when the are leaving the area controlled by one CS.
The best solution i thing would be if you have the possibility to detect a loco punctually. Perhaps with Railcom, barcodes or something similar. Then you can detect when a loco is crossing a border and the Locoproxy can connect the client to the next server.

Michael

rjversluis
Site Admin
Posts: 42306
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Post by rjversluis » 09.10.2010, 07:18

Hi,

this is all very theoretical, and before I give this a thought someone should demo his layout with a Rocrail server dedicated to each module.

You can use many Command Stations with one Rocrail instance and distribute tons of loco on them by IID.

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

Post by MacBarfuss » 09.10.2010, 16:59

Tanks to Michal for his comments, he seems to be the first person who understood my problem... *g* I discussed this with my older brother too and he also didn't get it because of the very theoretical level.

We don't have to talk about rocrail + CS on each module, but we have to discuss more than one rocrail server + CS per arrangment. This is possible using R2RNet but with the limitation of adressing the locos only over the server which is currently having them active.

One step back: we have to find a way to use more then one CS for addressing locos because reaching an not that large amount of locos on one arrangment the signal gets overloaded. As one rocrail server can only use one CS for sending loco commands we have to use more then one rocrail server with R2RNet. Now back again we have the issue of server dependend access to the loco.

And using LC-IID does not resolve that for roaming trains.

I hope this help make things clearer.

tuxlover
Posts: 60
Joined: 04.11.2008, 12:38

Post by tuxlover » 09.10.2010, 18:55

Hi,

Rob I think you are in mind still at the point: one Rocrail instance per module. It's clear that this make not really sens and that was not that what MarcBarfuss had really in mind.

But let us stay in the theoretical example that you have an arrangement with more then one CS. The first thing physical you need are what German Teppichbahner call "Schleusengleis". A segment of track, longer than your train, where you can switch the track power to CS A or to CS B. Otherwise you will get a short circuit when the train cross the border between the two CS.
I thing synchronizing this with the train movement could be done by routes, actions and global routes, this shouldn't be a problem. To transfer the Loco seamless from one CS to the other, Rocrail instance A has to announce the loco an instance B, when entering the global route. When the loco is leaving the global route Rocrail instance A can deactivate the loco by setting the speed to zero. In the meantime all loco commands from clients connected to instance A or B should raised on both instances. If you can trigger a special event by the action that switches the track power, then you perhaps can use this also to roam the loco from one instance to the other. This event should be also announced over the network.
If there is such a event, a client can determinate that his loco has changed the server / CS and connect to the new server.

As far my theoretical minds. What doe's this mean for your specifications MarcBarfuss?
First you must be able to install "Schleusengleise" between your segments. Longer than your longest train and isolated from the rest of the arrangement. No real problem, when you use a normal electric as other modular railroads.
You need an electronic which can supply the "Schleusengleis" by CS A or CS B. This can be done by a simple relay and an decoder output.
The most important thing is, that you need a monitoring system for this area, so you get feedback signal for the global routes. If you monitor your hole layout then it is no problem just place the locos in the right block at the beginning of the session. If not, then you have do this placement by hand when you enter the block of global route or you need an identification system at these points as I have mentioned in my last post.

In conclusion MarcBarfuss, don't worry about that topic. The backend of the Rocrail architecture should be powerful enough to handle this. And when you will run in this problem in real life, I thing also the user interface will have this feature and will handle this handy. Otherwise raise then a feature request. But I think especially the "Teppichbahner" will be faster then you, not necessarily because of a bottleneck in controlling locos by one CS, but because of their heterogeneous control electronic.


Rob the problem with the IID is, as I see, that it is static. It don't solve it when you want to roam a train from one CS to another. If he do so you, it would be necessary to change his IID.

Michael

tuxlover
Posts: 60
Joined: 04.11.2008, 12:38

Post by tuxlover » 09.10.2010, 19:06

@mobear: Now our last posts have overlapped. Yes such an action could be a solution. As I have mentioned in the last paragraph. But keep in mind, that then all CS have to be physical connected to this Rocrail server PC.
So this doesn't seem to be useful. When you want to drive with multiple CS, normally you also have bigger distances between these CS. So better an event over R2Rnet when a train is roaming and an option that clients can follow their trains automatically to the next server. (Only useful for mobile clients and in dependency with the active loco)
If you want to use only one PC, then u can start multiple instances of Rocrail on that PC, each for one CS.

Michael

tuxlover
Posts: 60
Joined: 04.11.2008, 12:38

Post by tuxlover » 09.10.2010, 20:10

Hi Jochen,

let's say driving with multiple CS is a very special problem. On a "normal" home layout you will not run into this problem and you can first divide mobile and stationary decoder to different CS.

This feature is only needed when let's say roundabout 30 to 50 locos are driving similar or you have heterogeneous electronic control equipment as the "Teppichbahner", where each station want to use his own CS mainly as control input device.
If you then want to centralize the connections to one central server PC, I can't imagine that. Keep in mind, that their could be distance up to 100m or more. With Ethernet no problem but with serial or USB I wouldn't do it.
For these situations R2Rnet and separate servers would be the better solution, I think.

Michael

MacBarfuss
Posts: 12
Joined: 21.12.2009, 12:14

Post by MacBarfuss » 10.10.2010, 00:53

Thanks again to Michael for participating, and also for Jochen.

I fully agree to use only one Computer and one CS on a "normal sized" home layout, but in the case of the large distances Teppichbahner can have I would suggest to use one computer for each room and one CS. This refers to the segments I mentioned before.

For a translation of "Schleusengleise" lets call it something like "conveying track"? As I understood Rob something like a conveying track would not be necessary. But I think Michael is right, whats about shorts?

tuxlover
Posts: 60
Joined: 04.11.2008, 12:38

Post by tuxlover » 10.10.2010, 12:18

As I see this discussion was about which hardware requirements for the modules and the module electric are needed to drive with multiple CS and what software requirements and how Rocrail support this.
By the way I don't thing "conveying track" would be a suitable translation for "Schleusengleis". What about "handover track"?

As we see Rocrail supports this operation method, I think, very well and scalable enough even for very big layouts. Jochen yes, I also would implement handover tracks with actions. The only thing which is not handy, that you have reconnect your client manually to the new server if a train is roaming.
A solution could be, that the server (of the leaving or the entering CS) raises a network message about this event. So a client could decide if he wants to reconnect to the new server.

How this is done technically has to be cleared in detail in further discussions. Perhaps as network wide broadcast or only to all connected clients of these servers.
The feature that a client follow his train should be optional and make for me only sense by clients, which control only one loco. Otherwise it could be that you loose the control of another loco when the client reconnect to another server.
And separate question, is there a need for a global "loco proxy", who tracks on which server each loco of the arrangement is at the moment. This could be used as entry gate for new clients, so that they can choose their loco from a global list and then reconnect to the specific server. Or this server is used as proxy so that one client can control locos which are registered on different servers.

King regards
Michael

Post Reply

Return to “Modular Layout Support”