Keyboard Shortcuts
Likes
Search
Locked Dispatcher - SML - auto-allocation problem
Hello everyone again. Sorry to spam the group.
i have a location on my layout that can be a little troublesome. i have a double crossover/scissor (4 turnouts) with a 5th on one of the legs that bring two lines together to enter the scissor. im finding if I have two trains, both wanting to allocate the same block after the scissor but coming from seperate blocks before the scissor (one train from main line, one from the fiddle yard) that the train with higher priority gets allocated, but the train with lower priority allocates I¡¯ve the top. This clash then has some behaviour that seems like dispatcher has no idea what to do. both trains are allocating 3 sections ahead, one is at priority 7 and the other is at priority 4. this problem can be resolved by only allowing one of the trains to allocate 2 sections ahead however this means the train will slow down a lot with the size of my layout and blocking. It¡¯s only happening ONE way, not the other. or rather it¡¯s always train 2 that allocates over the top, train 1 is always the victim. im happy to provide my file or a video of it happening, just let me know how you¡¯d like to see it.. im not sure how to edit the default ICF file to debug dispatcher.? -- Thanks Mitch |
Hi Mitchell
toggle quoted message
Show quoted text
The scissor it self needs to be a separate section containing one block. Most dispatcher conflicts are done at section not block. Steve G. On October 29, 2018 5:07:53 PM EDT, "Mitchell via Groups.Io" <mitchell.scott93@...> wrote: Hello everyone again. Sorry to spam the group. --
Sent from my Android device with K-9 Mail. Please excuse my brevity. |
Hi Steve,
At the moment, one side of the scissor is wired for one block, the other side for another block, and then the centre crossover part is it's own block on an auto-reverser (Live frog) Are you saying that the centre crossover should be it's own section? or should the whole crossover mechanism (4x turnouts) be one section, with some LOGIX making the 3 separate sensors one internal sensor for the block to reference for the section? -- Thanks Mitch |
Hi Steve,
I have uploaded some photos to explain my situation a little better as I'm not sure I've done a good job of it. Mitchell Scott Examples First photo shows where the trains are trying to allocate when they clash (Sorry, it's rough) Step 1 = Started all 3 auto trains (70000, 50037, 37254). 70000 is running a cont circle around clockwise on the outer. 50037 is a cont circle running anti-clockwise on the inner. 37254 is a train running between two reversing loops via both of the up and down lines (around the world) 37254 waits for the S01 > S6 to clear before proceeding. S06 is end of platform, and start/finish for up/down line transits. 37254 is sitting in the "around the world" transit start position. All trains set to allocate 3 sections ahead. Step 2 = 70000 & 50037 halfway through one cycle. Step 3 = 70000 & 50037 allocated back to starting position. Step 4 = 70000 clears crossover area, and 50037 has allocated to signal S02 but not across the crossover area yet. 37254 has "right of way" due to higher priority, and will allocate to S06 across the crossover. Step 5 = 37254 allocates to S06, but before the turnouts can finish moving, 50037 allocates over the top and switches one of the turnouts back to allow it to S06 instead. Both trains stop at the crossover and wait for me to cancel both transits. The above situation is avoided if I only set 50037 to allocate 2 sections ahead, forcing it to take longer for it to allocate, when 37254 is already occupying the crossver/turnouts. Blocking example also provided for track cirtcuits to better describe what sections are made up of. My panel file is also here:? ?Panel File I hope this gives a better detailed explination of my situation. Also, if you notice any other silly things, please let me know. This is probably the only automation bug I have left before it's running flawlessly for my needs, and I do feel it is something like the way my sections are set out as you mentioned above. I'm just not sure if it's the crossover or the turnout that is the issue. -- Thanks Mitch |
Hi Mitchell
toggle quoted message
Show quoted text
You are using the auto generate, this it creates multiple section names containing the same block, even fwd and rev. The dispatcher only uses the sections for allocating. Basically "Is the section free" yes - allocate and use. First try "Lock Turnouts when Signal Mast Logic Active". If you had signals at the crossover then the allocation would not be a problem as only one signal could be go, as the, diamond, switches would show occupied. If you manually created the sections, then you would only have one name for a block, but you would have to add the signal mast logic manually as it wants only one section between masts, in the layouts I am involved in, we do all manual and it works really well. I will look at in more detail later as I have a rain free day.... Steve G. ---------- Original Message ---------- |
Hi Steve, |
Hi Mitchell
toggle quoted message
Show quoted text
As far as I can tell the only thing that I can see is that there is a stopping sensor that never gets fired for 50037 so it rolls on into the crossover. Try removing the stopping sensors from the sections. I tried emailing you last week but it was returned as undeliverable. Steve G. On November 5, 2018 8:28:00 AM EST, "Mitchell via Groups.Io" <mitchell.scott93@...> wrote: Hi Steve, --
Sent from my Android device with K-9 Mail. Please excuse my brevity. |
Hi steve,
I think I have witnessed this once before. I have IR relays for stop sensors. Whenever this odd re-allocate thing happens I hear the relay fire but it doesn¡¯t stop the loco because it has a yellow. By the time it reaches?the crossover the turnout has changed back to closed to allow it through, even though 37254 was already allocated across the crossover and through that turnout. my email Mitchell.scott93@... I might try and make a video of the situation occurring from both a panel perspective and a layout perspective. i still dont know how to get a detailed log of how dispatcher is allocating, what¡¯s the best way to log that? ive heard of adding a debug line into a default file of some kind.. -- Thanks Mitch |
Hi Mitchell
toggle quoted message
Show quoted text
For debugging messages you are looking for a default.lcf file. In Linux its in your home directory /.jmri (~/.jmri) under windows if think its in home/JMRI. If its not there first copy it from the jmri program directory and put it there, then it wont get overwritten during an update. Having got that far add the line, without the quotes, "log4j.category.jmri.jmrit.dispatcher=DEBUG". The messages will be displayed on the console and written to the session log (in that jmri directory in home). The signals should be at stop/danger/red/halt by default, also all sensors need to be active/ inactive state rather than an "unknown", else some funny stuff can happen. I would first try removing the sensors from the sections and running with a train length greater than the largest block. This causes a halt as soon as the train enters the block when stopping. It makes seeing the train try and stop a lot easier. Using the simulator I cannot get the trains to allocate over one another. You do have all wheel resistors, or is the block going active/inactive/active as a train goes thru a short block? Steve G. ---------- Original Message ---------- |
Thanks Steve,
is there any particular program I can use on Windows to edit the file? I seem to remember notepad gives a very weird format. I will take out all the stop sensors from the sections and see how the layout reacts. My trains are varying between block length and half block length of the main running lines, excluding smaller turnout blocks etc obviously. usually loco + 4-5 coaches. all wheel are resistance wheels, track is cleaned regularly. i don¡¯t think the sensors are going active/inactive/active, however I do have one block that goes inactive even though the BDL168 sensor is still active (I suspect one of my Logix has a mis-informed conditional, even my turnout controlled turntable moves occasionally). This block is no-where near the problem area, though. I feel it¡¯s unrelated because I don¡¯t see sensors change state when the overlap occurs, I¡¯ve repeated it every time I¡¯ve run dispatcher watching sensors, blocks etc to see any oddities and I¡¯ve been dumbfounded trying to find evidence of why, which is what I¡¯m sure you¡¯re experiencing too. I will also try a ¡°disconnected¡± version of my panel file. Loconet simulator and panel sensors to emulate blocks being occupied, and attempt to cause it manually. Failing that, I¡¯ll edit the default file, however I do that, and debug it and do a video as well just to prove I¡¯m not crazy although we are all a little crazy, let¡¯s be honest. thanks! Sorry this has been such a pain. -- Thanks Mitch |
As I recall notepad should work, turning off line wrap helps.
toggle quoted message
Show quoted text
Otherwise there is notepad++ that can be found here Steve G. On November 9, 2018 9:27:23 AM EST, "Mitchell via Groups.Io" <mitchell.scott93@...> wrote: Thanks Steve, --
Sent from my Android device with K-9 Mail. Please excuse my brevity. |
Yep, just worked it out as you replied.. haha
Okay, I added sensors to my panel for simulating trains running around the inner circle and coming across the crossover into the inner circle. Setting starting sensors to active, creating auto-active trains for each train, and then clicking through the route of 50037 from block 01 to block 05 As soon as block 01 goes in-active, 37254 allocates to S06. And then 50037 allocates over the top. If I keep 50037 going, the both legs of a turnout that they depart using the same route, both go allocated for their seperate transits, showign that they are both deffinitely allocating at the same time and continuing on to their seperate destintions. When the initial overlap happens at LT5, JMRI system console spits out the following: ?
118089 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Allocation request section does not match active train next section to allocate
118102 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Section to allocate S01:S06
118105 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Active Train expected S06:S09
118309 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Allocation request section does not match active train next section to allocate
118310 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Section to allocate S01:S06
118311 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Active Train expected S06:S09
118313 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Allocation request section does not match active train next section to allocate
118315 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Section to allocate S01:S06
118316 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Active Train expected S06:S09
118317 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Allocation request section does not match active train next section to allocate
118318 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Section to allocate S01:S06
118319 [AWT-EventQueue-0] ERROR jmri.jmrit.dispatcher.AutoAllocate? - Active Train expected S06:S09
I think this is telling me that it was EXPECTING 37254 but 50037 allocated anyway, or the other way around.. either way it is logging the conflict we are seeing. In a way, I am relived I'm not crazy! Thanks Mitch |
¿ªÔÆÌåÓýNotePad doesn't work well with many JMRI files. It doesn't understand the Mac/UNIX style LF line terminators we use, expecting the Windows CRLF style. As a result, all the file may show on a very long first line. WordPad is fine, but I'm sure NotePad++ has better features for JMRI work. --? Dave in Australia On 10 Nov 2018, at 12:12 PM, Steve_G <RailRodder@...> wrote:
As I recall notepad should work, turning off line wrap helps. |
Hi Mitchell
toggle quoted message
Show quoted text
I cannot get these messages. When the anti clockwise train reaches the stop signal, it stops when I fire the stopping sensor. I don't hit any more occupied sensors until the signal is not red, which doesn't happen until the ramp train clears the next section. The basic problem is that the conflicting blocks are in 2 different sections. Tomorrow, which could be Sunday, Monday or Tuesday depending on the earth's rotation relative to where you are....you have to love Antarctica, 24 time zones all the same time. I will endeavour to set up some manual sections/transits based on 1 section per block to see if that helps. Steve G. On November 9, 2018 8:32:50 PM EST, "Mitchell via Groups.Io" <mitchell.scott93@...> wrote: Yep, just worked it out as you replied.. haha --
Sent from my Android device with K-9 Mail. Please excuse my brevity. |
Hi Steve,
Wow! Maybe I should just transport my layout to your computer haha Some of my block sensors are internal sensors, and from a logixs are triggered by the actual sensor. This was more about timing and ¡°if sensor is active turnout is closed, set internal sensor to inactive¡± to smoothen out or delay dispatcher allocation. The only thing I haven¡¯t tried is disabling the Logix associated with that crossover. But then again, you have the same file so in theory they are working as expected rather than causing issues. I have two computers running the same panel via drop box (one for editing in the office and one in the garage running the layout, 3 screens in the office makes editing much easier. I only run one at a time though) both computers exhibit the same errors, one with PR3 into a DCS200 and the other only using Loconet simulator. I might also try a brand new panel from scratch (it¡¯s an export from Anyrail from years ago, and since there¡¯s been new block assignment updates to the anyrail> JMRI import I might give it a go and then import my Logix. please do let me know if adjusting the sections work out! -- Thanks Mitch |
Hi Mitchell
toggle quoted message
Show quoted text
It didn't rain today. Its been a couple of weeks since that happened. When people pray for rain they should be very specific about where they want it delivered....:) I am working on the assumption that sensor LS74 (user name 10) is a real sensor for Block user name 06, and all the other around about the cross over are just, well, real. I have every confidence that it can be solved by only messing with sections around that spot. I can solve the problem programatically but the collateral damage to anyone running a single line with passing places would be pretty messy. Steve G. ---------- Original Message ---------- |
Hi steve,
Cheering! If you could send some of your missing rain this way, that would be fabulous.. haha I deleted all of my SML and sections, auto-regenerated and then deleted sections S01:S06 and S02:S06. I then created a sections S01:BLOCK40 (Blocks 08B & 40) S02:BLOCK6 (Block 06) BLOCK6B:S06 (Block 06B & 01) In theory this is seperating the LT5 turnout from both of the blocks coming into it. This solved the problem of overlapping, however now the train at S01 allocates to across the crossover TO LT5 (BLOCK6:S06 boundary) and prevents the outer circle train allocating, even though the S01 train has a red signal. Am I on the right track but havent gone deep enough yet? or am I skewing away from what you beleive could be the answer? In a perfect world, the two up and down lines would allocate freely, and then when 37254 sees an "opening" or free path to S06 it allocates across and the other two trains wait for the crossover and anything head to be clear. I'd have thought choosing a Priority in auto train creation would decide which train gets the allocation when they want the same section, But I've never seen it come into effect. I do feel like if we are having opposite experiences while testing the same file with the same sequence of events and sensors, there has to be an inconsistancy between us that could be the clue to the problem, maybe I have an issue with my JMRI that you do not? -- Thanks Mitch |