Sunday, February 12, 2017

001 The Smart Industry X-Change System (SIXS) - Concept and Theory

For those that don't know me, my profession is that of a Supply Chain Specialist.  When a big corporation designs a new widget for public sale, they call me.  I help figure out how to make it, and then where to make it, then I set up the factory,  then figure out how to get it to the warehouse so it can  be shipped.  Supply Chain.  You have a product in your home that I have worked on.  Moving freight from one point to the other is part of the supply chain.  Railroads move goods from here to there, also a supply chain.

So that got me thinking about how our model railroads run.  Often we stage a train either in a yard, or better yet in an offsite staging area, thanks to Frank Ellison and the legendary Delta Lines.  From off-site staging the train comes on to the layout and we delivery empty or full rolling stock to industries across the layout.  We pretend that the cars we set out, often with a car card/way bill system, is now the opposite (full or empty) of what we pretended it to be and we take it off the layout by train and run it to off site storage which we pretend is a town.  Lots of pretending.  Lots of fun.

When analyzing what we do on our model railroad, we should first look at the real railroad shouldn't we?  So the Union Pacific has a pile of cars in a big yard in Salt Lake City.  The pick a bunch of cars they feel like shipping and take them to industries everywhere, and just drop them off.  Then they pretend a car card is flipped over, go pick it up, and bring it back to the empty yard.  Oh, and they get money for it.  We'll that's not how that really happens.

What really happens is United Grain needs 20 hoppers full of grain to sell to their customers.  Their buyer purchases it from Heartland Grain, and Heartland loads the hoppers.  They call Union Pacific who arranges for a train to go by Heartland and pick up the cars.  By way of interconnected tracks they bring to the customer United Grain and they drop them off.  The customer unloads the hoppers, sells the grain and pays the railroad for their trouble.

Our model railroads, if you use Supply Chain terminology, are using Demand Push Logistics.  We "push" cars to the industry, whether they need them or not.  This is often used by retail companies like Walmart who send tons of Christmas items to every store, whether they want them or not, and make them sell them for the season. This is why you get cheap wrapping paper the first week of January.  Its not very efficient.

Real railroads work on a Demand Pull Logistics system.  The industry determines what it needs and its requirements for the railroad.  It takes no more cars than it needs, and ships no more cars than it can fill.  Very reasonable and effective.

So, how do we get our "customers" to draw rolling stock instead of just shipping it to them?

Let me introduce you to the Smart Industry X-Change System or SIXS concept.  Using modern and inexpensive technology we can make our industries on the layout "smart" and let them generate their requirements.  This is VERY backward from our current thinking, but I see huge opportunities here.

An example...let's meet our newest layout industry Chemical Product Solutions!

Chemical Product Solutions or CPS is a sprawling chemical plant complex with three significant production areas and several spurs.  A plant complex like this would be larger than your house in HO, so naturally we have to scale it down to a size we can fit in the basement.

Here we have reduced the size to something that is still very large on a modest basement layout.  Here we have reduced the plant to three main areas; the powder products plant, the liquids plant and the raw materials plant.  So now we have constructed plastic and wood structures, added plastic tanks, lights and track.  It is a static model.

Ok, Igor...go get me a brain!  How does our empty plastic factory with no insides, no machines, and not real people going to actually go to work?  Ah, with a computer.  We can make a simple program or even a macro driven spreadsheet to calculate the inputs and outputs of our plant.  We know for instance that our factory takes in certain chemicals by the train load.  It takes tankers, covered hoppers and box cars.  Then it takes these chemical "inputs" of raw materials and using plant processes turns then into specialty chemicals for its customers.  By setting parameters such as how much material it demands, how long it would take to make chemicals, and what products in what form it would ship.  Then it ships tankers, hoppers and box cars out.  Because it is a large industry it will draw and ship a lot of cars.

Ok, we have a "business" and its brain calculates what it needs and what it ships.  Now we need to make it part of the environment.  Let's look at the micro-controller.  A micro-controller is a small circuit board with a sophisticated and programmable controller that manages inputs and outputs in its environment.  Your brain is wonderful, but if you don't have the ability to touch, taste, smell, see or hear, your brain can't really do anything.  Thus the micro-controller is the senses for the brain.

Currently I'm playing with an Arduino board.  It is a development platform that has an array of digital and analog configurable inputs and outputs.  We can take the Arduino board and program it to read and respond to the environment.  Let's look at an example.

On Thursday at 7:35 am the CSX Conductor instructs the engineer to remove a cut of cars and head down the switching lead toward Chemical Products Solutions.  As the cars get close to the gate, a sensor picks up the moving cars using a light sensor.  It sends a signal to the Arduino and all of a sudden the Conductor hears a phone dial, and the shipping and receiving manager from CPS answers the phone!  He hear's him tell the conductor that a person is coming to unlock Gate A for him to allow the train to pass.  Car 11072 is to go to the Powder Plant.  Tank car 3387 is to be put at position B at the storage track.  Hopper car 99331 must be taken to Plant 1, but you need to blow your horn three times so the crew unlocks the car that is unloading so you can move it out of the way.  Tanker 656690 is to be picked up and take to Atlanta.  Oh, you forgot what the customer asked you to do?  Say "head's up" and a pop up visual projection has your instructions up on the backdrop!

Wait, what?  Was that just a recording?  Yes and no.  Here is what is going on in the background.  The smart industry is calculating the use of raw materials and the production of finished goods.  The Arduino board read the tracks by use of a sensor.  It knows there is a hopper car at Plant 1 and its record shows that it has been there since the last session.  It calculated how fast the chemical might be unloaded and consumed and it calculates that it is half full. The tank cars at Plant 2 are sensed and timed as well, so one is empty and needs to go back to be cleaned and refilled.  The storage tracks are also monitored and may tell the Conductor to move one into a new location.  The Arduino can grab different audio signals and chain them together to make it seem like a conversation.

Arduino Board

After the right amount of time has past, the Arduino sends a signal to two servo motors and the gates magically swing open for the train.  We move the hopper car over to Plant 1 and blow the horn three times.  The Arduino picks up the audible signal and rolls up the freight door by use of a servo.  A red light near the track turns green indicating we can pull the car.  Moving the cars sends more signals back to the computer that we have more input raw materials.

The Conductor moves the tank car but we accidentally drop it off at the wrong siding.  The Arduino detects the car in the spot, but when it checks its transponder signal it reads the car is incorrect.  A phone rings and the receiving manager yells at the both of you for putting the car in the wrong spot.  he politely tells you just where you can put it!

Once we are done with our moves the board detects our locomotive leaving the facility.  Again the gates move and the security lights go off.  The job is done, but the plant is still thinking.  How much did I receive?  How fast am I producing?  When do I need to ship more goods?  All of this independent of the layout.  When the factory gets hungry, it calls for more cars!

"Ok, Scott, why is this a good thing?  I spend a ton of money on electronics and lots of time designing the Smart Industry.  What's in it for me?

I'm glad you asked...

Now we have a layout with a true purpose.  We have a customer driven, demand pull system that generates traffic for the railroad.  No more staging.  No more car cards.  No more REAL work at pre-staging that is not fun, and not value added.  No having to plan to have an operating session!  Now the layout is doing the work and we are reacting just like a real railroad.  You just come downstairs and run the trains.

Twenty industries from small to large are thinking, making calculations, and telling the railroad what to do.  When a few guys want to run trains, you just turn the power on.  We start where we left off.  Each industry reads its zone and any cars that were pulled out, moved or added are put into the calculation within seconds.  We no longer have staging so instead of pulling and flipping car cards the computer sends a screen to the the engineer to pick up the cars he needs in a yard and get them moving on the railroad's schedule.  The computer routes the train over the road, still using Dispatching if you like.  The engineer's smart phone will have the list of rolling stock for easy reference.  Each industry will call the shots, whether is a coal mine, a small warehouse, or the locomotive shop at the railroad.  The SIXS can even figure out when there are too many or not enough cars in a zone and request a solution.

Ok, a bit backwards from our normal way of thinking.  My thought is that this gets us closer to prototype railroads, and removes some of the burdensome work we have to do to run trains. SIXS mean more really prototypical running and less work.

What do YOU THINK??


  1. Hi Scott,

    (Thanks to Rick Wade for cross-posting to the Model Railroad Hobbyist Forum.)

    I've been thinking along similar lines, although paper-based because, well, I model 1905. It's a small layout, though, so I won't need an army of clerks like the real thing had.

    One of the things that you wind up wanting is a way to order empties, and to simulate the time it takes for that empty to get to the industry. In my case, if there is no empty in the local area, then the agent would have to call the division point to try to get one. It might not show up on the layout for a couple of days (hopefully your Arduino plant can think ahead).

    The other thing I thought about was simulating actual usage. For example, the railroad consumes coal in relation to the number of miles the engines run. So, if we run extra trains, we should need coal delivered to the engine facilities sooner. The motive power department (I presume) would monitor the amount of coal left in the bin, and order more before they run out; again, it's going to take a couple of days to get here.

    Well, I look forward to seeing how your idea develops.


  2. Scott,

    Very interesting ideas here. I really like your way of thinking... sort of a justification of our desire to deliver pretend shipments to static model industries.
    My experience is similar in that throughout the 1990's I had developed a complex software program I used to printout daily switchlists for both of my yards & interchange points. All 40 or so industries & customers (including team track tenants such as the Town Highway Dept-road salt,gravel, tar,guardrails) were already entered in a data file which kept track of maximum number of car spots, seasonal upswings, load type, and other characteristics. Also, I had all 160 or so freight cars & their individual data entered as well. At the entering of the date & a press of a button, a randomly selected industry switchlist would be generated, based on the season and frequency of carloadings.
    The program would cycle through the entire car roster in the same order each time, so you wouldn't keep seeing the same car again & again, but the industries would be randomly picked each time based on "demand". For example, lumberyards would have a 30% probability of needing a load delivered anytime of the year, except during the Spring & Summer when it went up to 60% chance. Or rock salt would only be delivered during late Autumn to the Town Hiway Dept. at the team track.
    Some days one local turn could handle the 3 cars on the carlist, and other days 26 cars would be handled by a turn from each yard. It all worked great until I graduated from college & had to move across country for work.

    Unfortunately, the programming language is no longer supported on typical operating systems, so the software is out of date. And I'm still being tossed around from state to state at every hiccup in the economy.

    Can't wait to see more progress on your "nomad" style apartment layout. I'm again out of work for over 6 months, so I may have to pack & leave again, so no sense in me setting up a small layout yet.

    Bill March
    Mechanical Engineer
    (Western NY Native)
    Birmingham, Alabama


Thanks for your comment!