¿ªÔÆÌåÓý

Ghost Block Issue? #signalmasts #autotrain #blocks


 

I have an issue I can't track down and think it might have something to do with ghost block. It's repeatable. Every car in both trains is detectable. (I use BDL716 and tests show it very sensitive and reliable.)
?
Amtrak (top left in screenshot), FEC (bottom right in screenshot)
Amtrak has higher priority
Waits about half a block west of the turnout for it to close before proceeding thru eastbound
FEC stops at beginning of block
Turnout closes and Amtrak proceeds eastbound
Dispatcher throws turnout as soon as preceding block clears and before last passenger car clears causing short
?
Here's a screenshot and some logs:
?
Dispatcher allocated the turnout and threw it while a car was on the turnout.
It shouldn't matter for this but my blocks are all longer than the train and have accurate dimensions as well as the train has accurate dimensions. I also check full train in autotrain. I don't believe an intermittent bounce would matter since the BDL716 has debounce and I've never seen the test LEDs on BDL flicker.
?
Here's a log snippet of the action.

DEBUG - FEC: handleBlockStateChange to OCCUPIED section B10:B10 (IY:AUTO:0030), block B10 (IB:AUTO:0010), length 1117 [Allocated Section Block Change on B10]

DEBUG - FEC: new current signalmast B10-B16 (IF$vsm:basic:one-low($0076))(Approach) for section B10:B10 (IY:AUTO:0030) [Allocated Section Block Change on B10]

DEBUG - FEC: B10-B16 (IF$vsm:basic:one-low($0076))(Approach) Medium(50), Dest: T6TD-B2 (IF$vsm:basic:one-low($0037)), path max: 100 [Allocated Section Block Change on B10]

DEBUG - FEC: Signal B10-B16 (IF$vsm:basic:one-low($0076)) setting speed to 50.0 for next [Allocated Section Block Change on B10]

DEBUG - FEC: setTargetSpeedValue: Speed[50.0] [Allocated Section Block Change on B10]

DEBUG - setTargetSpeed: Set Speed[0.5] adjusted to TargetSpeed[0.5]? [Allocated Section Block Change on B10]

DEBUG - RampToTarget[0.5]current[0.5] [Allocated Section Block Change on B10]

DEBUG - Remove TransitSection[IY:AUTO:0007( B11:B11 )] [AWT-EventQueue-0]

DEBUG - FEC: releasing section [B11:B11 (IY:AUTO:0007)] [Auto Allocator ]

DEBUG - FEC: handleBlockStateChange to UNOCCUPIED - Section B11:B11 (IY:AUTO:0007), Block B11 (IB:AUTO:0011), speed 0.5 [Allocated Section Block Change on B11]

DEBUG - Remove TransitSection[IY:AUTO:0008( T4:T4 )] [AWT-EventQueue-0]

DEBUG - FEC: handleBlockStateChange to UNOCCUPIED - Section T4:T4 (IY:AUTO:0008), Block VBT4 (IB:AUTO:0016), speed 0.5 [Allocated Section Block Change on VBT4]

DEBUG - FEC: releasing section [T4:T4 (IY:AUTO:0008)] [Auto Allocator ]

DEBUG - Adding TransitSection[IY:AUTO:0034( B16:B16 )] [AWT-EventQueue-0]

DEBUG - FEC / B10Loop:Next Section Expected[true] [AWT-EventQueue-0]

DEBUG - FEC: handleBlockStateChange to OCCUPIED section B16:B16 (IY:AUTO:0034), block B16 (IB:AUTO:0026), length 914 [Allocated Section Block Change on B16]

DEBUG - FEC: new current signalmast T6TD-B2 (IF$vsm:basic:one-low($0037))(Stop) for section B16:B16 (IY:AUTO:0034) [Allocated Section Block Change on B16]

DEBUG - FEC: StopInCurrentSection called for B16:B16 (IY:AUTO:0034) task[0] targetspeed[0.5] [Allocated Section Block Change on B16]

DEBUG - FEC: train will fit in [B16:B16 (IY:AUTO:0034)] (914>=609), stop when prev block clears. [Allocated Section Block Change on B16]

DEBUG - setTargetSpeed: Set Speed[0.0] adjusted to TargetSpeed[0.0]? [Allocated Section Block Change on B16]

DEBUG - RampToTarget[0.0]current[0.5] [Allocated Section Block Change on B16]

DEBUG - FEC / B10Loop:Set Stop [Allocated Section Block Change on B16]

DEBUG - Adding TransitSection[IY:AUTO:0004( B2a:B2a )] [AWT-EventQueue-0]

DEBUG - Amtrak / B3Loop:Next Section Expected[true] [AWT-EventQueue-0]

ERROR - [Amtrak / B3Loop]direction[false] Section[B15Crossing (IY:AUTO:0006)]Error in turnout check/set request - initial Block[B1] and Section[B1 (IB:AUTO:0001)] mismatch [Auto Allocator ]

DEBUG - Amtrak: handleBlockStateChange to OCCUPIED section B2a:B2a (IY:AUTO:0004), block B2a (IB:AUTO:0028), length 1117 [Allocated Section Block Change on B2a]

DEBUG - Amtrak: Allocated section [B15Crossing (IY:AUTO:0006)] [Auto Allocator ]

DEBUG - Amtrak: new current signalmast B2b (IF$vsm:basic:one-low($0072))(Clear) for section B2a:B2a (IY:AUTO:0004) [Allocated Section Block Change on B2a]

DEBUG - Amtrak: B2b (IF$vsm:basic:one-low($0072))(Clear) Normal(100), Dest: Crossing B2-B11 (IF$vsm:basic:one-low($0007)), path max: 100 [Allocated Section Block Change on B2a]

DEBUG - Amtrak: Signal B2b (IF$vsm:basic:one-low($0072)) setting speed to 100.0 for previous [Allocated Section Block Change on B2a]

DEBUG - Amtrak: setTargetSpeedValue: Speed[50.0] [Allocated Section Block Change on B2a]

DEBUG - setTargetSpeed: Set Speed[0.5] adjusted to TargetSpeed[0.5]? [Allocated Section Block Change on B2a]

DEBUG - RampToTarget[0.5]current[0.5] [Allocated Section Block Change on B2a]

DEBUG - Remove TransitSection[IY:AUTO:0017( B1:B1 )] [AWT-EventQueue-0]

DEBUG - Amtrak: releasing section [B1:B1 (IY:AUTO:0017)] [Auto Allocator ]

DEBUG - Amtrak: handleBlockStateChange to UNOCCUPIED - Section B1:B1 (IY:AUTO:0017), Block B1 (IB:AUTO:0001), speed 0.5 [Allocated Section Block Change on B1]

DEBUG - Remove TransitSection[IY:AUTO:0003( T6:T6 )] [AWT-EventQueue-0]

DEBUG - Amtrak: releasing section [T6:T6 (IY:AUTO:0003)] [Auto Allocator ]

DEBUG - Amtrak: handleBlockStateChange to UNOCCUPIED - Section T6:T6 (IY:AUTO:0003), Block VBT6 (IB:AUTO:0013), speed 0.5 [Allocated Section Block Change on VBT6]

DEBUG - FEC: auto allocating Section T6:T6 (IY:AUTO:0003) [Auto Allocator ]

DEBUG - FEC: setting turnout 6-Beach (LT6) to Thrown [Auto Allocator ]

DEBUG - FEC: setting turnout 6-Beach (LT6) to Thrown [Auto Allocator ]

DEBUG - FEC: stopping for signal [T6TD-B2 (IF$vsm:basic:one-low($0037))]? [Auto Allocator ]

DEBUG - FEC: StopInCurrentSection called for B16:B16 (IY:AUTO:0034) task[0] targetspeed[0.0] [Auto Allocator ]

DEBUG - FEC: train is already stopped or stopping. [Auto Allocator ]

DEBUG - FEC: Allocated section [T6:T6 (IY:AUTO:0003)] [Auto Allocator ]

DEBUG - Adding TransitSection[IY:AUTO:0005( B2b:B2b )] [AWT-EventQueue-0]

DEBUG - Amtrak / B3Loop:Next Section Expected[true] [AWT-EventQueue-0]

DEBUG - Amtrak: handleBlockStateChange to OCCUPIED section B2b:B2b (IY:AUTO:0005), block B2b (IB:AUTO:0049), length 736 [Allocated Section Block Change on B2b]

DEBUG - Amtrak: new current signalmast Crossing B2-B11 (IF$vsm:basic:one-low($0007))(Approach) for section B2b:B2b (IY:AUTO:0005) [Allocated Section Block Change on B2b]

DEBUG - Amtrak: Crossing B2-B11 (IF$vsm:basic:one-low($0007))(Approach) Medium(50), Dest: T4F (IF$vsm:basic:two-low($0016)), path max: 100 [Allocated Section Block Change on B2b]

WARN? - count of 2 ACTIVE neighbors with proper direction can't be handled for block BYE but maybe it can be determined when another block becomes free [AWT-EventQueue-0]

DEBUG - Amtrak: Signal Crossing B2-B11 (IF$vsm:basic:one-low($0007)) setting speed to 50.0 for next [Allocated Section Block Change on B2b]

DEBUG - Amtrak: setTargetSpeedValue: Speed[50.0] [Allocated Section Block Change on B2b]


 

Steve
It's working as designed. Ghost blocks were never intended for anything other than the short blocks you have to add to get block routing working. If you can use then for something else fine, but you are going to have to work round it's foibles. Try adding a debounce on going inactive of 5 to 10 seconds.
Steve G.
?


 

I built a scheme prior to "Ghost Block" with a virtual block and debounce timing that works the same way.
I had the same issue.
I solved at "safe section" meeting points using a virtual sensor for "Allocation Hold" specified in the current transit step of the waiting train.
I used LogixNG to control the "Allocation Hold" sensor.
Whenever the "Ghost" or my "turnout occupied" sensor is active, the "Allocation Hold" is set active.
When the "Ghost" or my "turnout occupied" sensor goes inactive, LogixNG makes "Allocation Hold" inactive after a five second delay.
"Allocation Hold" will prevent allocation and thus the turnout action until cleared.
The caveat is that "don't stop the train with the last car within the turnout's fouling point".
--
Ken
NYNH&H, Old Colony Division, Cape Cod Branch (1949-1959)
Loconet * JMRI 5.11.5 * OSX,Win10,Ubuntu
Blog: ?
Youtube: