First, since Auran already uses "Waybill" for "model railroad" operating mode, I propose we adopt the name "switchlist" for prototype operating mode.
Lets consider a very simple route. This route has a single industry, a contract packaging plant, which receives products in bulk (dry in private owner hoppers, or liquid in tank cars), and ships the repackaged product in 70 ton boxcars. For the purposes of this discussion, the railroad serving the industry has one interchange, and owns twenty 50 foot, 70 ton boxcars. We'll assume that the plant has the theoretical capacity to process 45,000 gallons of liquid product, or 12,000 cubic feet of dry product per shift. We'll further assume that the weight of 45,000 gallons, or 12,000 cubic feet are both about 360,000 pounds (180 tons). Thus, theoretically, the plant can handle about 2 23,000 gallon modern tank cars, or two 6000 cubic foot covered hopper cars, and for each two cars unloaded, produces about two and a half loads of outbound product a day. Now, we will further define that the repackager does not manufacture its own empty containers, but buys these, and we'll assume that the shipper of the containers insists on using high-cube equipment, so as to maximize the amount of containers per carload. We can assume therefore, that the repackager will receive about five loads--four loads of product, and one load of containers--every two days, and will generate about five outbound loads every two days. For the purposes of this discussion, we'll assume that the repackager has four tracks in the plant; two are set up for inbounds, one with equipment unloading of hopper cars, and one with equipment for handling of tank cars, with the capacity for as many as four cars on each track, depending upon the length of the car. We'll also assume that on the shipping side, there are two tracks, one capable of handling four cars, and one capable of five; empty containers are received on the "shipping" track with five spots, deepest from the switch. We will also assume that the management of the plant is prudent, and in an effort to protect themselves from the occasional disruptions in transportation, has several days worth of inbound loads in the area most of the time. Finally, we'll assume that the railroad has one interchange with one connecting railroad.
Now, for us, the operators of the railroad serving this plant, the information that we are most interested in is the answers to these question: "What cars do we move?", "When do we move them?", and "Where do they go?". The transportation manager of the repackager will give us this information; he will call, fax, or send an email instructing us what inbound loads have been emptied and should be pulled, and which inbound loads should be spotted for unloading. He will also tell us which of the outbound shipments have been loaded, and are to be pulled, and what shipments he has for which he needs empties for loading. If it matters, the transportation manager will also advise us where to spot the inbound loads and empties. For the longer term, we're going to need a storage track for the extra days worth of inbound loads, and for the empties for loading.
So, let's assume it's a Monday morning, and we have reported to work. When we left on Friday, there were nine loaded cars on the hold track for the repackager, four tank cars (Tank1, Tank2, Tank3, and Tank4), and five hoppers (CH1, CH2, CH3, CH4, and CH5), and six empties for prospective loading (Box 1, Box 2, Box 3, Box 4, Box 5, and Box 6). In the plant, were CH 10, CH 11, and CH 12 on the hopper track, and Tank 10, and Tank 11 on the Tank track. There was a partial load in the empty container receiving spot (5) on one of the shipping track (BIG 65), behind three cars that were being loaded with outbounds (Box 23, Box 24, and Box 25), and two other cars on the other shipping track, (Box 31 and Box 32). When we did the yard check, we found that the outbound loads and empties left on the interchange track on Friday afternoon were gone, but there were a dozen cars there this morning, set out over the weekend: Tank 45 and Tank 46, CH 55, 56, and 57, and BIG 68 (all inbound loads) and Box 84, Box 85, Box 86, Box 87, Box 88, and Box 89, all empties. On the fax machine, is a switchlist from the transportation manager, containing instructions to pull CH 10 and place CH 5 in the spot it had been in, and to pull CH 12 and place CH 56 in the spot it had been in. CH 11 is to be returned for finishing of unloading. Tank 10 and 11 are both to be pulled, and replaced with Tank 1 and Tank 45. Big 65 is to be pulled, and replaced with Big 88. Box 23 is still empty, because the door was defective; Box 24 is a partial load, but Box 25 is an outbound load going to Miami FL, and Box 31 is going to Portland, OR, and Box 32 is going to Minneapolis, MN. Four empties are needed for loading, three to Minneapolis, and one to Miami. The Transportation manager also has faxed us a car order, that he is going to need three more empties to load to this week, and five to load to Miami next week, ten cars for Portland next week, and four more cars for Minneapolis this week.
Now, to summarize, the first step in a more realistic operations is defining more precisely what the industries do. This can be as little, or as highly detailed as one wishes; at one extreme, one can say that Acme industries consumes raw material A obtained from some origin point, and for each quantity of raw material consumed, requires a certain quantity of supply B, and produces a specified quantity of quantity C. When one establishes the rate at which material A is processed, on therefore has established how often a load of B is required, and how much, and how often loads of C are produced, and to where they are shipped. When this is done for all of the industries on the route, it then becomes possible to provide the traffic generators. I see the need for three of these.
I see the need for a couple of traffic generators and a status modifier. The status modifier analyzes cars spotted at an industry, and under the influence of a randomizer, changes the status. Most (85%) loads will be emptied on the first pass of the status modifier, most of the rest (90%) will be emptied on the second pass, and a few (1.5%) will be emptied on the third pass. Similarly with empties: most will be loaded on the first pass, though occasionally one will be rejected, and most of the rest will be loaded on the second. Rarely, a car will not be loaded until the third pass. When it has completed its run, the status modifier produces a list of cars (loads and empties) to be pulled from each industry. The first generator produces switch lists. It processes the industries in the route, it checks to see how many empty places, both those at which there is not now presently a car spotted, and those at which there is a car spotted whose status is changed. It then evaluates the loads consigned to that industry, and empties available for prosective loading, and generates a switchlist of cars to be pulled, and cars to be spotted. A second generator produces interchange receipt lists, a list of cars returning home empty, and inbound loads, and additional empties ordered by the car clerk. Finally, the third generator will produce car orders for loading.
Ideally, the status modifer and traffic generators can be made into "helper" applications. I don't think they need to be plug-ins as such, but they do need to process the Auran data file to be able to evaluate the industries and cars on a route. Eventually, I envision an editor not unlike CMP, where you open a route, are stepped through the industries, and define materials, supplies, and products, and optionally define origin and destination points, and proportions; you are also stepped through equipment on the route, and given the option of defining your home route roster. After initial set up, pre session processing before the session would generate initial interchange and switch lists, and place the necessary equipment on an interchange track, and change the status of cars at industries as required. Until the helper applications are developed, it would not be difficult or very time consuming to develop applications that will use the IBM [NB: "It's Better Manual"] method.
ns