Locations can have spurs, yards, staging and classification/interchange tracks. Spurs are used to service industries, and can optionally have schedules assigned to them which allows for very fine and realistic control over car movement and loads. Trains can be configured to require a caboose or car with Flashing Rear End Device (FRED). The program generates Manifests for each train and switch lists for any location. A switch list for a location shows the work for all of the trains that will visit that location. The program can also place icons representing trains on a JMRI panel. The icon can be taught to move in the panel along with the train from location to location.
OperationsPro™ lets you create realistic prototypical car movements through the optional use of railroad divisions. Cars are returned to their home division when their loads are removed, or when a new load is provided by an industry in a foreign division.
OperationsPro™ is included in the JMRI suite of Tools and can be found under the main menu heading "Tools⇒OperationsPro".
After playing with the demo files, you can reset the database and begin entering your own data. We strongly recommend that you get your trains to build to your liking without the use of staging tracks, classification/interchange tracks, and especially schedules and custom loads. We find that users attempting to use the advanced features before they understand how the program works tend to need a lot of help getting the car movement they desire. So start off small and get your trains to build correctly, read the build reports in the very detailed mode for your trains, even if they build to your liking. You need to get proficient with the build reports before you begin using the more advanced features of the OperationsPro™. Once you get your trains to build correctly, you can add staging tracks if you've designed staging into your layout. The other three advanced features are completely optional and aren't needed for good car movement. The next track type to experiment with could be Classification/Interchange Tracks. Once you get classification/interchange tracks to work correctly, you could then introduce Schedules for your industries and custom loads for your cars. If you do decide to use schedules, the first thing to understand is that you don't need schedules for all of your industries. So again start off small and only do a couple of industries and see what the results are. Adding schedules can not increase car movement, and in most cases will reduce car movement! So our advice is start off using the basic features of the program and later once you get good car movement, try the more advanced features.
One question that comes up often, is whether to enter the arrival and departure tracks into the operations program, and the simple answer is that you don't need to enter them into the program. Although it is possible to specify the A/D tracks in the program, it complicates the car movement by requiring an "extra" session to move the car from arrival track to the car's destination, and from the car's origin track to the departure track. Most find that allowing the program to pull a car directly from a train sitting on the "arrival" track and eventually spot the car to its destination, is the best method when using the program. Same goes when building a train using the "departure" track, car pulls directly into the train rather than to a specific departure track makes the operations run more smoothly. By not specifying the A/D tracks, you're letting your crew, and not the program, decide which tracks to use when servicing a train.
Most JMRI windows have as part of the menu bar the "Help" option. Select "Window Help.." to get information about the window you're using. Detailed step by step JMRI Operations How-To Instructions are available on the JMRI.org site.
The program automatically loads the necessary files when you open one of the six major operations windows found under the menu bar "OperationsPro".
File Name | Contains |
Operations.xml | Settings |
OperationsCarRoster.xml | Car database |
OperationsEngineRoster.xml | Locomotive database |
OperationsLocationRoster.xml | Location database |
OperationsRouteRoster.xml | Route database |
OperationsTrainRoster.xml | Train database |
The demo program also supplies a simple panel to show how the train icons work. Load the panel before building the trains by selecting from the main JMRI menu, "File⇒Load table content and panels..." a window should appear and open the "operations" directory and then select the "Operations Demo Panel.xml" file.
So let's begin with the Settings window. Enter a name for your railroad, the scale that you're modeling, and decide of you're are going to use descriptive names or AAR codes for your rolling stock. You can also optionally select which directions your railroad travels. You also have the option to add the OperationsPro™ menu to the main window. Select "Add Operations Menu to Main Menu" if you want this option. The next time you start PanelPro the OperationsPro™ menu will appear. Leave the rest of the fields in the Settings window alone for now, you can always come back and change them later. Now press the "Save" button in the lower right corner and close the window by pressing the "X" in the upper right corner.
Now open the locations window. This window will allow you to enter the locations or stations that your trains will visit. If this is your first time using a computer generated car forwarding program, it is best to start off small and gradually work your way through the various options and features available. Start by entering only three or four locations with each location having only two or three tracks. You only need to specify tracks that will be worked by your crew. For example you might start with tracks that service your industries, this type of track is called a spur. The spur's length determines how many cars can be spotted there. For example a 44 foot long spur can hold one 40 foot car. Keep things simple and don't modify the location and track defaults by making them restrictive with regards to the type of cars or locomotives that they will service. Also, the track and location default is to allow a train to service the location and track by trains traveling in any direction. Don't change the defaults until you can successfully build trains to your liking. We also recommend that when creating your locations that you first use spur and yard tracks, and try staging and classification/interchange tracks when you're more comfortable with how the program operates.
The next window to try is the cars window. This is where you enter or import from a file the non-powered rolling stock for your railroad. Press the "Add" button at the bottom of the cars window and the add car window will allow you to enter cars into your operations database. Be sure to place the cars on a track using the "Location and Track" field found in either the add / edit car or set car window. The program works best if you keep at least 20% of your tracks empty, so don't place too many cars on tracks until you understand how the program builds trains.
The locomotives window is similar to the cars window and allows you to enter or import locomotives for your trains. Entering and requiring locomotives for your trains is completely optional, and locomotives are not needed for the program to operate correctly. So if you want to manually assign your locomotives to your trains, don't bother entering the locomotive data into the program.
Now create a simple route for your first train to follow by pressing the "Add" button in the Routes window. Enter each of your locations in the route by selecting them from the menu and pressing the "Add Location" button in the Add Route window. Try and keep it simple by only entering each of your locations once in the route. For now don't modify the route in any way, later you can come back and modify how many cars are serviced at each location by adjusting the move count.
Now you're ready to create your first train by pressing the Add button at the bottom left of the Trains window. Be sure to select the route you created for your first train. Leave all of the train checkboxes alone which means the train will service all car and locomotive types. Leave the Optional locomotive requirements and Optional last car in train requirements for locomotives and caboose area alone for now. Save the train, close the window, and return to the Trains window. Press the Build button for the train. It should build. Now pressing the "Print" or "Preview" button will produce a Manifest for your train depending on the state of "Preview" checkbox at the bottom of the Trains window. Review the Manifest and you should see that the train serviced all car types. If you examine the Cars window you can see that cars are now assigned to your train. Once cars are assigned to a train, they are no longer available to other trains until the cars are delivered to their new location.
OperationsPro™ when building a train also produces a Build Report. The build report provides details on how the program built the train. It shows the available locomotives and cars found along the train's route, and how the program attempted to find destinations for them. When the program fails to build a train due to requirements requested by you, the build report can help determine what the issue was and how to correct.
Now try limiting the car types that the train will service by modifying some of the car types checkboxes in the Edit Train window. Use the train reset to release the cars that were assigned to the train so you can build it again without moving the train. With the new car types restriction in place, you should see that the train will only pick up and set out car types that are selected in the Edit Train window.
Now try restricting your tracks to only certain types of cars by modifying the car types serviced for a track. Now when you build the train, the train will only set out cars to tracks that are willing to accept them.
Press the Move button located in the Trains window and you will see that the train's location will change to the next in the route. You will also see that the Cars window will update to show the cars serviced by the train moving to their new location as the trains moves from location to location.
Now enter some locomotives into the operations database if you want the program to assign locomotives to your trains. Place some of your locomotives on a track located at the start of the route. Note that if you want two or more locomotives servicing your train, that the locomotives must be in a consist. Note that the last location in your route must have a track that will service the locomotive type or the build will fail. Now change the train requirements to require one or more locomotives.
If you want a caboose or car with FRED for your train, first configure some of the cars to be the last car in the train by selecting the "Caboose" or "FRED" checkbox in the Edit Car window. Now change the Optional last car in train requirements radio button to "Caboose" or "FRED" in the Edit Train window. Place the caboose on a track at the first location in your train's route. Be sure that the last location in your train's route has a track that will accept the caboose or the train will not build properly.
If you keep building your first train and moving it, eventually all of your cars will end up at the last location in your route! Create another route that is the inverse of your first train. Go to the Routes window and under the "Tools" menu select Copy Route. Select your original route, check the "Invert" checkbox, enter a name for this route, and then the "Copy" button. Now create a second train that uses this route to move cars in the opposite direction of your first train.
The OperationsPro™ default mode for building trains is to pick up and set out cars to empty tracks. If you want to perform car swaps, pull cars from a track and replacing them with new ones, you need to change the Build Options to aggressive.
You should now be well on your way with regards to JMRI operations. Each window in OperationsPro™ has a "Help" item on the menu bar which will direct you to the section in this document that covers that window's capabilities. Many of the OperationsPro™ buttons and controls have popup tool tips, just hover your mouse pointer over the button to see the tool tip. Detailed step by step JMRI Operations How-To Instructions are available on the JMRI.org site. There's also OperationsPro Wiki that contains some useful information and insight into how the program works.
Help is also available at the JMRI users which is part of the Groups.io. Another good source for help is a series of articles written by David Haynes http://rcairgallery.com/stuff/Using-JMRI-Operations-A-Worked-Example.pdf. You can also view two excellent NMRA YouTube videos by Robert J Thomas Introduction to JMRI OPs For A Small Layout and Steve Todd - JMRI Operations with No Paper. There's also an excellent set of videos https://www.youtube.com/@dhtrainz4798 produced by David Hall using the Trainz Simulator and OperationsPro.
If you want to know more on how OperationsPro™ builds trains see the section on Build Reports.
And finally under the "Tools" item on the menu bar, you will find many useful functions, like the ability to print the contents of the window.
If you want to determine which trains can service a location or track, use the the Show Trains Servicing this Location or Show Trains Servicing this track tools. The "Show trains Serving this track" tool can be found under "Tools" in the edit track menu bar. The tool also allows you to see how a specific car type will be serviced.
To understand which car types a train can service, and which tracks will accept those car types, use the Show Car Types Serviced tool.
If you wish to see or modify which trains can service a car type, use the Modify Trains by Car Type tool found under "Tools" in the Trains window. Select the car type and you can quickly see and modify which trains can service that car type.
To review and modify which routes can service a location, you can use the Show Routes Servicing Location tool found under "Tools" in the Locations window.
You can see or modify which locations or tracks can service a car type, use the Modify Locations by Car Type tool found under "Tools" in the Locations window.
There are several Print or Preview options under Location Tools that can be very useful. The first is "Print Location Details". This option will list each track for a location, and then details which car types, loads, roads, and trains can service that track. The "Track Analysis" option lists each car type, and then shows which tracks can service that car type. The analysis includes the total length of each car type, and then the percentage of track that can be consumed by that car type. To check for track configuration issues, select "Track Error Analysis" option. This option will check each track and determine if there's a train that will service the car types selected for that track.
If you decide to use schedules, the Show Schedules by Car Type and Load tool can show you which car types and loads will be serviced by your spurs. You can also see which loads will be generated out of staging to your spurs by using the Show Staging and Schedules by Car Type and Load tool.
To determine why a car isn't being routed correctly, you can use a train build report with the router set to "Detailed" or "Very Detailed". You can also use the Set Car tool found in the Cars window. You'll need to set the car's final destination to get a mini-build routing report.
If you restrict your classification/interchange tracks to specific destinations, there's a Check Destinations button that will confirm that your setup will not strand cars.
OperationsPro™ will send messages to the system console when there are errors or problems with the program. You can access the system console from any menu bar under "Help".
When you close the "Settings" window you will be prompted to make whatever railroad name you've entered to be the JMRI railroad name. You should answer "Yes" to the dialog window, this way all of the other applications in JMRI will reference the same railroad name. You can also change the railroad name by going to the JMRI: Preferences Pane found under "Edit⇒Preferences..." from the main menu bar.
Note that if you increase the "Maximum Train Length" that it doesn't affect train routes that you've already created. Once you increase the maximum train length, you can manually increase the departure length of a train by editing the train's route. See Edit Route for more details.
If you decrease the "Maximum Train Length" the program will prompt you to modify your existing routes, and you can optionally have the program reduce all of your train's routes to the new shorter train length.
You can also automatically open any of the six operations windows when you start JMRI. From the main menu, under "Edit⇒Preferences..." select Start Up, and add a "Perform action" startup item for the desired window.
The "Enable Icon SetX&Y" when selected allows you to teach the OperationsPro™ where to place the train icon on your panel when moving your train from location to location. Deselect this feature after your done teaching the program to prevent accidentally changing the train icon's position on your panel. If you also want the lead locomotive number as part of your train icon text and switch lists, select the "Append Loco Number" box. You can select the background color of your train icon depending on the train's direction. Select the color desired for each direction using the pull down menus. A switcher is a train with only one location in its route.
You can quickly set the train icon coordinates for your panel using "Tools" in the Routes and Edit Route windows.
The train icon menu allows you to "Move" a train to the next location in the train's route. You can also quickly move a train to any location in the train's route by selecting "Route" followed by any location in the route. The text for the move action becomes "Terminate" when the train arrives at the last location in the train's route. You would Terminate the train when all of the cars have been spotted to their specified tracks.
Manual backups are done only when the user requests it by either clicking the "Backup" button on the Settings window, or by selecting the "Backup" option from the "Tools" menu of the Operations Settings window. The Backup button will copy the files to the Manual Backup Store under the user's JMRI home directory as described above, while the Backup menu option will allow the user to specify any directory. This can be useful when making an archive copy that you want to move somewhere else for safekeeping.
All backup sets have a default name based on the date the backup was done, plus a sequence number, but this name can be changed to anything the user wants for Manual Backups. It is recommended that the names of backup sets made for archive purposes be given a meaningful name, especially if you are managing data for more than one railroad. For example, if today is August 29, 2012, the program will create a backup directory named "2012_08_29_00".
You can also select which directory to use for backups by selecting "Backup" from the "Tools" Menu.
There are many OperationPro directories and files that aren't backed up using the methods described above. You can find all of the directories and files not backed up inside the "operations" directory. Here's the list with the file types and directory names:
File Type | Directory |
Train Build Reports | buildstatus |
Old Train Build Reports | buildStatusBackups |
CSV Manifests | csvManifests |
CSV SwitchLists | csvSwitchLists |
json Manifests | jsonManifests |
Log Files | logger |
Train Manifests | manifests |
Old Train Manifests | manifestBackups |
SwitchLists | switchLists |
Old SwitchLists | switchListsBackups |
Note that restoring a Backup Set will overwrite the current operations files, therefore an Automatic Backup is done just before the restore copies the files, "just in case".
Backup Sets can be restored from either the Automatic Store or the Manual Store using the "Restore" button on the Settings window. Alternatively, the "Restore" menu option in the "Tools" menu of the Operations Settings window allows you to navigate to any directory, and would be used to restore an archived Backup Set.
The date and time that the Backup Set was made is displayed along with the set name to help distinguish the correct Backup Set.
You must quit and restart JMRI to complete the restoration of the operation files.
Aggressive builds makes the car's track space available as soon as a car is scheduled for a pick up. Therefore there can be instances where a train was to pick up a car to vacate the track, but a "later" train arrives early with a set out to that track and the car hasn't been picked up. However, more often than not the same train will perform the pick up and set out thus minimizing the number of conflicts. Aggressive also performs a multiple pass determination of car movements. The net effect is that more cars are moved within a given train, and complete car swaps can occur. Aggressive also tends to deliver cars to all of the available spurs. The smaller the spur, yard, or interchange the more likely that the program will assign cars to that track.
One serious consideration when using aggressive mode is that you can cause your tracks to be overloaded by selectively resetting your trains or building them and running them in a different order. Here's a simple example showing how it's possible to overload a track using the aggressive mode. Say you have two trains that will service the same track. The track has several cars on it, you build the first train and the Manifest shows to pull all of the cars from the track. You now build a second train, the program finds that the track will be vacated by the first train, so it schedules new cars to be spotted on to track by the second train. You later decide that you don't want to run the first train, and reset the train. Now the original cars on still sitting on the track, and you now run and terminate the second train. The program will deliver the new cars, while the old cars are still sitting there, which unfortunately will overload the track. You could also overload the track if you ran the second train before the first, the second train would try and deliver cars to the track that still has cars sitting on it.
To avoid overloading in aggressive mode, you also need to build, run, and terminate your trains in the same order. And do not use the train reset after you've built or terminated other trains! However, if you need to reset a train, you should also reset all of the trains built after the train that you want to reset, or live with possible track overloading. And never reset a train built before a train that you've already terminated. Normal mode will never overload a track, so you might consider using this mode if you find yourself having to reset trains or you want to build and run your trains in any order. The recommendation is not to use train reset in aggressive mode once you've built or terminated additional trains. And if you do reset a train, there isn't a guarantee that building the train again will pull the same cars, each train build can be different depending on the car movements created by the other trains.
Note that once you've built a train, the build option can not be changed until all trains are terminated or reset.
You should note that schedules and custom loads can override the switcher options. So if you need certain car movements for a switcher, it's best to use schedules to define them. Also see Allow local moves when a car has a custom load or FD.
If you specify a certain train or route to be accepted by a staging track, this option is ignored, and you can then control which car types, loads, and road are to be accepted by the staging track.
It is recommended that you leave this option disabled, as it's also available on a per train basis. See Train Build Options. Note that when this option is enabled, the program may have difficulties swapping cars from staging and the layout as the program must assume that all cars in staging could return to staging.
You can also request to build a specific train in normal mode, see Train Build Options.
You would allow routing through staging to create a virtual world outside of your layout. Now when you create a schedule, you can ship a car to a location and spur that exists outside of your layout. Staging is this case is the gateway to the virtual world. You can create one or several virtual trains to service the virtual world and the program will route cars to the industries you've created outside of your layout. You also have the option to only allow cars that are being routed to use the staging track.
You can find the CSV Manifest files created by OperationsPro™ in the operations directory in a directory called "csvManifests". Each line of the file starts with a two to five letter code, followed by the code's description, and then any parameters associated with the code. Here's a list of the current codes and descriptions:
Code | Description | Parameters |
AH | Add Helpers | |
AT | Arrival Time | Time |
CC | Change Caboose | |
CL | Change Locos | |
DT | Departure Time | Time |
DTR | Departure Time Route | Time |
EDT | Estimated Departure Time | Time |
HOLD | Hold Car | See PC or SC below, and note below |
LC | Location Comment | Comment |
LN | Location Name | Name |
LOGO | Path name to logo | URL |
NW | No Work | |
PC | Pick up car | See below |
PL | Pick up loco | See below |
PRNTR | Printer Name | Name |
RC | Route Comment | Comment |
RLC | Route Location Comment | Comment |
RH | Remove Helpers | |
RN | Railroad Name | Name |
SC | Set out car | See below |
SL | Set out loco | See below |
SMC | Search for Missing Car | See below |
SMCM | Missing Car Message | Message |
TKCB | Track Comment | Comment |
TKCP | Track Comment Pick Up | Comment |
TKCS | Track Comment Set Out | Comment |
TC | Train Comment | Comment |
TD | Train Departs | Name |
TL | Train Length | Length, Empties, Number of cars |
TM | Train Manifest Description | Description |
TN | Train Name | Name |
TRUN | Truncate | Appears if there's a switch list for the location and the "Truncate" checkbox is selected in the Manifest Print Options |
TT | Train Terminates | Name |
TW | Train Weight | Weight |
VT | Valid | Month/Day/Year Time |
Time uses the format Hour:Minute.
The car parameters for pick up car (PC) and set out car (SC) are: road, number, type, length, load, color, location name, track name, destination name, destination track name, owner name, kernel name, car comment, pick up comment, set out comment, C, F, H, IDTag, RWE location name, RWE track name, U, utility car count, final destination name, final destination track name, load type, RWL location name, RWL track name, route path.
Where C = Caboose, F = FRED, H = Hazardous, and U = Utility.
The Search for Missing Car (SMC) parameters are identical to the above for (PC) or (SC).
The loco parameters for pick up loco (PL) and set out loco (SL) are: road, number, model, length, type, hp, location name, track name, destination name, destination track name, owner name, consist name, is lead loco in consist, loco comment, IDTag, DCC address.
The program will include "Hold Car" for spurs and C/I tracks that are only serviced by one train. Configure the spur or C/I track option Select trains or routes for car pick ups to "Trains" and only select one train.
Code | Description | Parameters |
SWL | Switch List | |
DL | Departure Location Name | Name |
ETA | Expected Time Arrival | Time |
ETE | Estimated Time En route | Time |
HOLD | Hold Car | See PC or SC above |
NCPU | No Car Pick Up | |
NCSO | No Car Set Out | |
TA | Train Arrives | Direction |
TDC | Train changes direction, departs | Direction |
TIR | Train En Route | |
TDONE | Train has already serviced this location | |
VN | Visit Number | Number |
END | End Switch List |
The program will also store a copy of each train's build report in a directory called "buildStatusBackups" also located in the "operations" directory. You can access old build reports from the Edit Train window under "Tools" Print or Preview Saved Build Report.
This option also makes backup copies of any switch list that you create. They are stored in a directory called "switchListBackups" located in the "operations" directory. A separate directory is created for each location's switch list that you create.
There are three options with regards to how your Manifests and switch lists are formated. "Standard" provides one line for each car pick up or set out. The "Two Column" format creates Manifests with two major columns, the left column shows the car pick ups for a location, and the right column shows the set outs. The "Two Column" only uses half the page for the car information, so you might have to limit the number of car attributes (see Message Formats below) in order get the data to fit. The next format available is "Two Column (Track)". This format prints the track name in both columns in a header format.
The "Tabular" and "Two Column" formats use equally spaced fonts like "Courier New" or "Monospaced" so only equally spaced fonts are shown in the font selection box when either option is selected.
After selecting "Tabular" and pressing the "Save" button, you will find three additional "Tab" options at the end of the Message Format drop down menus. Use these three tabs to space out the Manifest or switch list to your liking. You can change the length of the tab characters if you wish, see Tools. Go to Printing Manifests to see examples of Manifests and switch lists using the described options.
For locomotive or car pick ups, the "Location" or "Track" attribute provides the track name where the rolling stock is currently residing. For set outs, the "Destination" or "Track" attribute specifies the track name where the rolling stock is to be eventually placed. The "Local Move Message Format" requires both the "Location" (where the car is) and "Destination" (where to spot the car) attributes. For local moves, you can substitute the "Track" attribute for the "Destination" attribute.
The program allows you to optionally display a pick up (PickUp Msg) or set out (SetOut Msg) message based on the car type and load. See Edit Car Loads "Optional Load Messages" for more info.
You can include in your switch lists the train's route location comments by selecting the "Route Location" checkbox.
Each location and the train's route can have an optional comment. The program will print these comments on your Manifest if the "Location" and "Route" checkboxes are selected respectively.
The Manifest normally shows the estimated arrival time for the train at each location worked by the train, selecting the "Departure Time" checkbox changes the format to showing the departure time. You can if you wish, print your Manifest without departure and arrival times. See Train Manifest Options for details.
The next option is "Truncate" and when selected will cause the program to reduce the amount of information printed when setting out or picking up a car at a location that also has a switch list. The idea here is that you have a location that is staffed by a crew member with a switch list and he or she will be doing the actual car pick up and set out for the train. Since the switch list contains all of the needed information with regards to where the cars are and eventually where they need to be, the train Manifest only shows which cars are being removed and added to the train.
The "Print Valid" checkbox causes the program to print date and time the train was built, which isn't the same as when the Manifest was printed. The print time is always shown at the top right of the Manifest or switch list.
If you want the Manifest and switch list to show how many car loads and empties are in the train, select the "Loads and Empties" checkbox.
If you want your local car moves to be grouped together for a location, select the "Group Moves" checkbox. Otherwise the program will list and mix the car set outs and local moves by the Track Blocking Order.
The default is not to show load names for caboose or passenger cars on your Manifests and switch lists, if however you want to see load names for those cars select the appropriate "Print Caboose Load" or "Print Passenger Load" checkboxes.
You can decide to use a 12 hour AM/PM rather than a 24 hour clock format for your Manifests and switch lists.
Selecting the "Show Train Schedule" prints which Train Train Schedule you are using when building your trains.
The next option is "Sort by Track". The program when creating a train Manifest normally lists the cars in the order they need to be placed into the train for proper blocking. The normal format is to list the cars in the order they will be set out as determined by the train's route, and then by the location's Track Blocking Order. If you would rather have the cars listed by the track name rather than blocking order, select the option "Sort by Track".
The next option is "Print Headers". When this option is selected, the train Manifests and switch list will include a header showing all of the car attributes that you've selected in the above message formats. You can customize all of the header text by selecting "Edit Manifest Header Text" under the Tools menu.
The last option is "Print Page Header". When this option is selected, the train Manifests and switch list will have on the top of each page the train description, page number, and date the page was printed.
Some of the text messages allow substitutions using the format "{number}". The program provides a tool tip when hovering over the text box which shows the available substitutions for that particular message.
You can also modify the color of the text by adding the color control text <FONT color="red"> at the start of the line, where "red" is the color text you want. Complete the color change by placing </FONT> at the end of the line.
The program when building a train produces a build report for that train. The report contains details with regards to how the train was built and the various choices the program made when assigning cars to the train.
You can adjust the amount of information that the build report will show. Select one of the four levels using the radio buttons in the Build Report Options window. The program when generating the build reports stores the "Very Detailed" information to a file. The radio buttons control how much of that data is actually printed. The "Minimal" radio button provides the least amount of information and "Very Detailed" provides the most. If you're only interested why a train won't build, the "Minimal" setting might provide you with this information. The "Normal" setting shows the train's route and requirements, along with the choices the program makes for setting out locomotives and cars. The "Detailed" provides additional comments about the build and shows which cars were added to the train. The "Very Detailed" setting produces the most pages, and will show why cars are excluded from the train, and why they are not picked up or set out. Be sure and press "Save" after changing the build report selection.
For most users, the "Very Detailed" setting is the most appropriate when reading a train's build report and "Normal" for the router detail level. For information on the content of the build report please see Build Reports.
You also have the option of using a text editor to view your build report. A text editor can make trouble shooting a problem much easier for you. For example, say you have a car that isn't moving. Using the editor's find feature, you could search the build report using the car's road number and quickly find why the car isn't being picked up by the train. One of the tricks when using a text editor is to increase the number of characters per line by reducing the font size specified in the Build Report Options window.
The build report options window can also control the amount of information provided with regards to routing a car with a custom load or final destination. If you're not using schedules, leave the "Router Detail Level" option set to "Normal". You can change this option from "Normal" to "Detailed" or "Very Detailed" when you want to understand why a certain train or trains won't route a car. This set of radio buttons works differently than the "Detail Level" radio buttons in that it controls the amount of information created during the train build process. You will quickly find that the "Detailed" and "Very Detailed" modes can create many extra lines of text in the build report, and unless you have a routing issue, it is best to keep the "Router Detail Level" set to "Normal".
The "Locations" window shows all of the places that your trains can work. For each location the window shows the type of tracks at that location, the number of tracks, the total length of all tracks at that location, the amount of track used by your rolling stock, the quantity of rolling stock, and the number of pick ups and set outs of your rolling stock that are scheduled for that location. The Yardmaster button produces a window (Switch List) that allows you to see the scheduled pick ups and set outs by train. Only trains that have work for the location are available.
If the Enable ID Tag option has been selected, an additional column for "Reporters" will be displayed.
In the "Add Location" window, enter the name of the location in the field labeled "Name". The location name must be unique; the program will not allow two locations with identical names. However, if you want more than one location to have the "same" name for your Manifests and switch lists, add a hyphen and a number to the locations name, or a hyphen and a left parenthesis. For example, "Boston-1", "Boston-2" and "Boston-(example)" will print as "Boston". The program will remove the hyphen and number, and hyphen and text when there's a left parenthesis when printing Manifests and switch lists. Note that the "hyphen" feature also works for track names.
Now press the "Add Location" button at the bottom of the window. The various fields that were disabled should now appear.
Each location can have several yard, spur, classification/interchange or staging tracks. Yards are where cars and locomotives are placed for temporary storage. A spur can be an industry or any place where a car is loaded or unloaded. A classification/interchange track is used to exchange cars between trains, or to create a classification yard which is used to build trains. Staging tracks represent distant locations where trains can travel between to service the layout.
For a train to service a location, there must be at least one track for that location. See below for more information on how to add tracks to your location. Once you've created a track for a location, you can use the "Edit" button in the table to modify the track.
The tables show the length of the tracks, the amount of track that is occupied (Used) by cars and locomotives, the amount of track that is reserved, the total number of cars and locomotives (Rolling Stock) at each location, the number of cars and locomotives that will be picked up (Pick ups) by trains, and the number of cars and locomotives that will be delivered (Set outs) by trains. When the program is building a train, the reserved value shows the amount of track that is going to be consumed by set outs. In aggressive mode, the reserved value also shows the amount of track that is going to be released by pick ups. Therefore a positive value means that track space is going to be consumed by set outs, and a negative number means that track space is going to be freed up by pick ups.
When setting up railroad divisions, it is best if there's at least one division yard for empty cars to migrate to, and at least one industry (spur) to service cars loaded outside of the division. Staging can be used as a substitute for industries. Cars that have been assigned a division are routed and this allows them to perform local moves, for example empty cars from a yard to a spur at the same location. Spur to spur moves are also allowed if the car's load is accepted by the receiving spur. The switcher control for local moves does not apply to cars with a division. However the train build option to allow local moves for cars with a custom load or final destination (FD) does apply. It is recommended that you leave this option for a train enabled when dealing with cars that have been assigned a division.
Adding divisions to locations and home divisions to cars creates prototypical movement, but it can also reduce car movement since the rules for car movement have to be enforced by the program. It is recommended that you start off by only providing a home division to a limited number of cars and then determine if the restricted car movements meet your expectations. Prototypical car movement doesn't necessarily mean better for model railroads.
You can quickly determine which routes are using a location by using the location tool Show Routes Servicing Location
The Yardmaster "Tools" provides another window called "Yardmaster by Track". This window lists the work for each track at the location. The other two tools are "Print" and "Preview" which provide switch lists for the location but are only available when running in Real Time.
When using the copy track feature, it is recommended that you reset or terminate any built trains as the copy track will not transfer rolling stock from a track that has a scheduled pick up or set out from a built train. This restriction also applies to deleting the original track.
Note that this feature controls the set outs for a location. Car pick ups at a location are blocked by their next destination and then alphabetically by track name or by the track blocking order at the destination if one was created for that destination.
The "Reset" button returns the blocking order to the original defaults which is an alphabetical listing of tracks at a location. The "Set Order" button gives each track a unique order number, and will also reorder existing order numbers if there are any that aren't unique. The "Up" and "Down" buttons in the table require unique track blocking numbers for them to work.
This feature is disabled if the Manifest Print Option Sort by Track is enabled.
The "Id Tag Reader at this Location" dropdown allows you to add a Reporter that returns IdTags that may be associated with a car or locomotive. See Options to enable this feature.
Now enter the name of the yard along with the length of the track in scale feet or in actual inches. Append a double quote (") to the length when entering actual inches and the program will convert the length into scale feet. Append cm if you want to convert from centimeters to scale meters. If you don't want the program to load your yard to capacity with cars or locomotives, enter a smaller value for the track length. This can be useful for large yards where track space for switching cars is needed. Press the "Add Yard Track" button at the bottom of the window and the disabled fields should now appear.
When using FIFO or LIFO modes, the program uses the car's date and time when delivered to the track to determine order. You can review the date and time for a car in the Cars window by selecting the "Last" radio button. If you would like to see the order cars would be pulled from a track, you can go the Locations, edit the track you want to review, and under tools in the edit track window, select "Show Cars". Again select the "Last" radio button to see the pull order.
When a car is placed at a spur the car's load status is modified. The program provides two load names for all cars, the default empty or "E", and the default load or "L". If a car has one of these loads when it arrives at a spur, the load name will change to the other, i.e. "E" becomes "L" and "L" becomes "E". If a car has a custom load, it too will be replaced by the default empty "E" when the program sets a car out to a spur. You can also configure your car to return to a specific location or track when the car's load is removed, and optionally change the car's default "E" load to a custom empty load. See Return When Empty and Return When Loaded for more details.
You can control which loads a spur can receive and disable the load change for a spur. See Load Options for more information.
A spur needs a schedule to receive a car with a custom load, unless the car is shipped from another spur that has a schedule. A schedule also allows you to the order the car types that will be delivered to a spur, or demand cars with certain loads. See Schedules below for more information.
Note that if you do restrict which trains or routes can pull cars from a track, you must also restrict the track's car types, loads, and roads to the same ones that your trains can service, otherwise you can have cars stranded on the track.
If you restrict a track to certain trains or train routes, the table in the Edit Location window for that track will have an additional column called "Restrictions". If you've built a list of trains or routes that can only set out rolling stock to the track, you will see "SO" followed by the number of trains or routes that are allowed to place rolling stock onto that track. For rolling stock pickup restrictions, you will see "PU" followed by the number of trains or routes that are allowed to pull rolling stock from that track. A small "x" appears before the number if you built of list of train or route exclusions for that track.
You should note that adding schedules and custom loads is an optional feature and isn't needed for good car movement, and in most cases will reduce car movement. So if you want the most car movement don't use schedules or custom loads. This feature is here for those that want specific car movement and custom loads. You also don't have to have schedules for all of your spurs / industries, you can be selective and only add them to the spurs that you believe need them.
You can also control how cars with custom loads move to your spurs with schedules, see Hold cars with custom loads when spurs are full under "Spur Option" for more information. The "Hold" checkbox in the "Edit Location" for spurs shows selected when the option to hold cars is enabled.
To create a schedule press the "Add" button next to "Optional Schedule" pull down menu in the Edit Spur Track window. Pressing the "Add" button should create the "Add Schedule" window.
Enter a name for your schedule and press the "Add Schedule" button at the bottom of the window. Now add your first delivery for this spur by selecting a car type in the menu box found in the lower left corner of the window and pressing the "Add car type" button. A new item should appear in your schedule containing the type of car, pull down menus for random, delivery, road, loads, destinations, and pickup. The schedule item also includes "Count" of 1 in sequential mode, and a wait of 0. Leave the pull down menu item blank for any field you don't care about.
Repeat selecting the car types and pressing to "Add car type" until your have a delivery schedule you like. Press "Save Schedule" and close the schedule window when you are done. Note only car types that are serviced by this spur are available. If a car type isn't shown, check the car types serviced for the spur and location.
Match mode eliminates the sequential aspects of a schedule. In match mode, the program when building a train will search the entire schedule to find a car type, delivery day, and receive load that matches the car that the program is trying to place. In match mode the pointer shows the last car type that the program found acceptable for the spur. To change the schedule to match mode, select "Match" in the edit schedule window and press "Save". Match mode is useful when the order cars arrive isn't important, but you still want to receive or ship cars with a specific load, provide the car's final destination, or have the car wait for a specific number of trains or pickup day. In match mode the schedule item "Count" is ignored as it isn't used. Instead, a "Hit" count is provided. The program increments the hit count for a schedule item each time it finds a match, and plans on sending the car to that spur because of the match. In match mode, all of the schedule item fields are available, and you can have the same type of car several times, with each item in the schedule looking for a specific receive load or delivery date. Also in match mode the car type selection box advances automatically to the next car type when adding a car type. This makes it easy to quickly add car types to the table.
Reading the entire schedule line for the two SP boxcars, it also states that there isn't a random delivery for the cars, the cars can be delivered any day of the week. The load received selection is blank meaning any load is accepted, including the default "E" and "L" loads, and all boxcar custom loads. The load shipped is also blank, therefore the ship load for the boxcars can be the default empty "E" or default load "L", or the car's Return When Empty or Return When Loaded load if specified. There isn't a destination for the cars, so the program can send them anywhere that is willing to accept the boxcars with their new load. And finally the cars can be picked up at any time.
The next line in the schedule is requesting a tank car with a custom load of "Oil". Reading the entire schedule line for the tank car, there isn't an random value, the car is only delivered on Mondays, the tank car's road name doesn't matter, only tank cars with "Oil" are allowed, and the new load will be the default empty or "E" or the car's Return When Empty load since the car arrived with a custom load. And finally the car is to be sent to "Susanville", but only on Fridays.
After the tank car is delivered the schedule starts from the beginning, again requesting two SP boxcars followed by a tank car with oil.
The schedule controls when and what cars will be delivered and the car order. It makes the spur more restrictive, only cars demanded by the schedule will be delivered to the spur. Looking at the schedule you will see a pointer in the table under the heading "Current", the pointer shows the next car type that the program wants to place at the spur in sequential mode. When the program finds that car and sets the car's destination to this spur, the pointer will move the next item in the schedule. After servicing the last item in the schedule, the pointer will return to the first item in the schedule.
If you want custom loads for your cars, you can create them using the Edit Car Loads. Each new load name is associated with the car type. For example you can have "Freight" for a boxcar, and "Oil" for a tank car. The program will deliver cars with a custom load to a spur that has a schedule that also requests that particular load. However, cars with a custom load can still be placed at yards, staging, and interchanges.
You can optionally use your staging tracks to empty cars with a custom load, and you can also optionally have the program place custom loads into cars departing staging tracks. If you want to specify staging as the car's destination, you can't select a track, the program will determine which is the appropriate track in staging to use. To prevent overloading a spur with cars with custom loads from staging, the program will normally limit the number of cars "en route" to a track with a schedule to the available track space. So if you have space for three cars, the most the program would normally generate for you from staging is three cars.
A very useful tool is the show schedules by car type and load which can be found under "Tools" in the Schedules window. This tool allows you to select a car type and the car's load to quickly see which spurs with schedules will ship and receive cars with those loads.
OperationsPro™ provides every car with two loads, an "L" and "E". These are called the default load and empty respectively. You can't delete them, but you can rename them if you wish. For every car type, you can create additional loads. For example, let's say you have an industry that needs paper loaded in boxcars. You could create this custom load for your boxcars and name it "L(paper)" or just "paper". Now at the spur that serves your paper industry, you need to create a schedule. In this schedule, the first item you enter is a boxcar, and then select as the receive load, L(paper). If the train that services this industry departs from staging, you're basically done. The program when building a train from staging, will search for an empty boxcar, and if found, will create the load L(paper) for you. Once the car's load is created for that industry, the program will set the car's destination to that industry. When the car gets delivered, the program will remove the paper load, and the car's load status will become empty or "E".
That was easy, so let's make things more interesting and have the industry ship some printed materials. We'll create and call this load "L(print)". Now in the first schedule item, instead of leaving the menu under "Ship" blank, select L(print). Next to the ship menu are destination and track menus. We could select a destination that is staging. No need to select the track, just the staging location. Now when a train returns to pick up the boxcar, its load will be L(print) and when the car gets to staging, the load will be removed and the car's load status will return to empty or "E".
We could have instead of sending the car with print to staging, decided to send the car to a spur servicing a paper industry. Just select the destination and the spur/industry that you want the car go to. Even if it takes several trains to get the car there, the program will figure out the best route. Note that when the schedule specifies the ship to destination and spur, that the spur doesn't need a schedule to accept the car with the custom load "L(print)".
Now, if you created another schedule at the destination spur, you could forward the car again. By stringing a series of schedules and loads together you can create any car sequence you want.
Another interesting way to move cars is to ship a custom load, but not specify a destination. The program when it finds a car with a custom load, but no destination, will check every spur to see if there's a schedule demanding that car type with that specific load. And if there is a spur that meets the requirements, the program will route the car to that industry. But once a schedule sets up a car with a custom load without a ship to destination, that car can only move to yards, classification/interchanges, staging, and spurs with schedules. Spurs are only considered if the spur has a schedule demanding the car's type and custom load.
Another variation is to create a schedule that provides a custom load for the car, and a destination, but without the track assignment. The car will be accepted by yards, classification/interchange tracks, staging, and spurs at the destination that have a schedule that is demanding that car type and custom load. Spurs without a schedule can not service a car with a custom load, unless the car is sent directly to that spur.
One more consideration is empty cars. The program doesn't route cars with the default loads "E" or "L". So if your schedule is requesting an car with the empty default "E", it can take awhile before that car shows up. An alternative is to handle empty cars like cars with custom loads. You could create the custom load "E(mpty)" and use this load to signify an empty car. Now cars with this load will be routed and will have the same characteristics as cars with the "other" custom loads. One other option is to ask the program use a custom empty load instead of the default "E" load when removing a car's load. See Return When Empty for more information.
The examples above used custom loads to help understand car movement, you could if you wish just forward cars using schedules without the use of custom loads. Custom loads are optional and not necessary if you want to create a simple car sequence.
You can access this useful tool from the Schedules window. The Schedules window can be found under "Tools" in the Locations window. It allows you to select a car type, and then any load that you've created for the that type of car. The window then shows which schedules by location are receiving or shipping that specific car load. Selecting the "All Loads" checkbox will show you every schedule for the car type selected. Selecting the "All Types" checkbox allows you to see which loads are being serviced by your schedules. And selecting both checkboxes will list all of the schedules by car types, along with the loads received and shipped.
If you want a list of custom car loads for each of your car types, you can use the "Print Car Loads" or "Preview Car Loads" found under the "Tools" menu in the "Show Schedules by Car Type and Load" window. You can create or edit any car load using the "Edit Car Loads" tool.
This tool allows you to see which loads your staging tracks will generate for a type of car, and which spurs with schedules will receive them. You can access this tool from the Schedules and schedule windows. The Schedules window can be found under "Tools" in the Locations window. The tool allows you to select a car type, and then any load that you've created for the that type of car. The window then shows which spurs and schedules are receiving that specific car load from staging. The "Generated Loads" checkbox will only list spurs and schedules that will cause the program to generate a custom load out of staging. The program will route a car with a custom load to spurs with schedules demanding the car type with the receive load specified. The program will not create a custom load out of staging to a schedule with the receive load blank (any load accepted). When the "Generated Loads" is unselected, the window will show which schedules will receive the default loads. Note that the program doesn't route the default empty or load out of staging. Selecting the "All Loads" checkbox will show you every schedule for the car type selected.
The tool also show which car load options have been selected for the staging tracks. The abbreviations are listed below:
SWP | Swap default loads and empties |
EDL | Empty cars with default loads |
ECL | Empty cars with custom loads |
GEN | Generate custom loads for spurs serviced by this train |
ANY | Generate custom loads for any spur (multiple trains) |
STG | Generate custom loads for any staging track |
If you want a list of custom car loads for each of your car types, you can use the "Print Car Loads" or "Preview Car Loads" found under the "Tools" menu. You can create or edit any car load using the "Edit Car Loads" tool.
OperationsPro allows you sort cars to C/I tracks by any combination of destination, train, route, road, type, load, and arrival order. In the above image, only two road names are accepted by the C/I track, and only train BB is allowed to spot cars onto the interchange track, and train BLX is the only train allowed to pull cars off the interchange.
The car's load status does not change when placed at a classification/interchange track.
You can if you wish control which destinations your C/I track can service. You can access Track Destinations from the "Tools" menu. The track destinations tool also allows you to restrict the C/I track to cars that are being routed. The "Routed" checkbox when selected in the "Edit Location" window means only cars that are being routed can use the C/I track.
You can optionally specify which trains or train routes can pick up or set out cars. If you restrict which trains or routes can pull cars from a classification/interchange track, you must also restrict the track's car types, loads, and roads to the same ones that the train services, otherwise you can have cars stranded on the classification/interchange track. Once you specify which trains or routes can pull cars, all cars that the train can service are available to the train, even cars that were delivered by the same train or route.
Since you can specify that a train can set out and pull cars from a C/I track, it can be used to capture a set of cars for a specific train. For example if you had a set of cars that you only wanted a "turn" to use, you could create a C/I track that can only be accessed by the turn.
The build report will provide a list of rolling stock on the C/I track that were previously set out by a train using the same route, or aren't allowed to be pulled due to restrictions that you've added. The build report uses the term "Excluded" when detailing which rolling stock can't be pulled from the C/I track.
Given the complexity of this type of track, it is strongly recommended that you not use classification/interchange tracks until you get comfortable with how the program builds trains and you've read and can understand the train build reports.
To create a classification yard sorted by trains, you need to assign a classification/interchange track to each of the trains that will depart your yard. For each track, allow any train to set out cars, but assign only one train to pick them up. You should configure the classification track to service the same car types, loads and roads that the train services, otherwise you could end up with stranded cars. When sorting cars in a yard by train, some use the label "Cars for train XYZ" as the track name.
You can also create a classification yard that sorts cars by destinations. Again using the C/I track type, there's an option under "Tools" in the edit track window to set Track Destinations. So for example if your classification yard serviced four destinations, you could create four tracks, one for each destination, and the program would sort cars in your yard to each of those destinations for you. With regards to the track name, some folks would use a track name similar to "Cars to Boston" for cars going to Boston. You can if you wish break down any destination to trains that serve that destination, really up to you how you want to sort your cars.
Note that it is okay to create more classification tracks or "virtual tracks" then there are physical tracks in your classification yard. The cars can share common tracks until it's time to finally sort them into their various destinations or trains. You can also use the Track Pools feature to share the track space in your yard.
Due to the complexity of staging tracks, it is strongly recommended that you not use staging tracks until you become comfortable with how the program builds trains including the ability to read the train's build report.
If this is your first time using a computer program to create car movements, it is recommended that you enter a minimum of two staging locations for your operations, and have your train depart from one and terminate into the other. For example, say your trains run east and west. It is best if you create "East Staging" and "West Staging" and have your trains travel from say west staging, on to your layout, do some work, and then terminate into east staging, and vice versa. It is also better to name your staging after real locations. So for example, you might want to model the cities of Springfield and Worcester and have trains come from New York and Boston to service your layout. In this case, New York and Boston are west and east staging respectively. Note that the staging tracks for New York and Boston can be the same physical location on your layout, we just need the two staging names so our train Manifests look more prototypical. Note that if you use only one staging location that the program doesn't normally allow cars to travel from staging and return to the same staging location. If you want the program to allow this type of operation, see Settings⇒Tools⇒Options
A staging track allows you to have all cars and locomotives in a train delivered to one track. When terminating a train into staging, the program will search for a completely empty track, one with no locomotives or cars. The staging track by default must also service all of the train's car and locomotive types and roads. Trains can not share staging tracks; the program will only place one train per track. When departing a location with a staging track, all cars and locomotives on one track will be assigned to the train. A location can have multiple staging tracks, but can't have any other types of tracks, spurs, yards, etc. Staging tracks can be at the start of a route, the end of the route, or both. Staging tracks in the middle of a route are ignored by the program, and are regarded as pass-through tracks.
Note if you are running a train to and from the same staging location using the normal build mode, you must define two staging tracks for the program, one to depart on and one to return on. Physically the two staging tracks can be the same one. If you want to use the same name for your staging tracks, the program allows you to name the staging tracks using a hyphen and a number as a suffix. The hyphen and number are not printed on the switch lists or Manifests. If you're using aggressive mode for building trains, you can configure the program to allow the train to return to the same staging track that the train departed on.
If you require a train leaving staging to have a certain number of locomotives, locomotive model, or road; the program will search all staging tracks at the departure location for a train meeting those requirements. If you set the locomotive requirements to 0, the program will select the next available train from staging; and will ignore the number of locomotives leaving that staging track. See Optional locomotive requirements for more info.
You can also control the number of cars and the train's length when departing staging. You can also request an empty track when departing staging. See Departing Staging Route for more info.
You can if you wish, optionally control which staging tracks a train will arrive on and depart. Note that the default "Any" allows any train to arrive or depart on the staging track, so if you want to restrict a train to a specific track or tracks, you must configure all of the staging tracks at that location.
You can as an option, have the program ask you which track you want to use when departing from, or arriving into staging.
When naming the tracks in the pool, it is best to use "same" names using the "hyphen" feature. For example if you had one large staging track and wanted three trains in staging, you might name the staging tracks, Track 1-1, Track 1-2, Track 1-3, and pool the three tracks together. The train Manifest paperwork would show the departure track name as "Track 1" by dropping the hyphen and number. If you wanted all three tracks to hold the same length of trains, you would set the minimum track lengths in the pool window the same for all three tracks. For example if the staging track was 900 scale feet long, you would set the minimums to 900 divided by 3 or 300 scale feet.
Note that when using this feature you need to correctly terminate trains in the order they arrive into staging. The program uses the car's last moved date and time to determine the order trains arrived into staging.
OperationsPro™ provides three options for placing custom loads into empty cars when they depart staging. The first option is called "Generate custom loads for spurs serviced by this train". If this option is selected, the program will only check spurs with schedules along the departure train's route. If the second option is selected, "Generate custom loads for any spur (multiple trains)", the program will check all spurs with a schedule for a request, and try to route the car with a custom load to that spur. For a spur to request a custom load, the spur must have a schedule. The program when determining how many car loads to generate, will consider the value in the Percentage of custom loads generated by staging. Also, if the spur is full or becomes full, the program will send cars to the spur's Alternate Track if there's one specified, and then to any yard tracks at the spur's location.
Both spur options work the same with regards to placing custom car loads into empty cars, only the number of spurs considered by the program changes. If a schedule demands a certain car type and custom load, and that car type is departing staging, and the car's load is default empty, the program will place the custom load into that car if one of the two options is selected. Note that the program will not create a custom load out of staging to a spur / schedule with the receive load blank (any load accepted).
The third option "Generate custom loads for any staging track" will try and place custom loads into your empty cars by searching for destinations that are staging tracks. The program will randomly search for a staging track that isn't located at the train's departure location. If the program does find a staging track, it will then randomly assign a custom load that is serviced by the train, the train's staging departure track, and the car's destination staging track. Next the program will determine if the car can be routed to destination staging track using the assigned custom load. If the staging track is reachable, the program will in addition to placing the custom load in the car, set the car's final destination to the location where the staging track resides.
To restrict which car loads the program will generate for you when departing staging, use the Load Options under "Tools" in the "Edit Staging Track" window, and adjust the "Select loads shipped from this track" to your liking. You can also control which types of loads the program will place in your cars by restricting the types of loads the train departing from staging is allowed to service. To control which loads a train will service, select under the "Edit Train" window menu "Tools" then Train Load Options.
You can also control which loads your staging tracks will accept. Again use the Load Options for a staging track, and adjust the "Select loads serviced by this track" to control which car loads are allowed into staging.
You can control which destinations are valid out of staging by using the Track Destinations window found under "Tools".
There's also a tool Show Staging and Schedules by Car Type and Load that allows you to review your staging load generation selections and which spurs and schedules will receive the car loads.
This feature is disabled if you've decided to generate custom loads for your cars out of staging.
You can automate the restaging of a train by creating a script that is activated when the train is terminated into staging. You can also create an automation.
When using staging tracks for A/D you need to consider the following. To prevent any changes to a car's load, deselect all of the load options for the staging track. If you want additional track types for the "same staging" location to break down or build trains on your arrival or departure tracks, you will need to create a second location using the hyphen feature. Normally you would also create a local switcher to break down or build your arrival or departure trains. For the local switcher, you would combine the "same" locations in the switcher's route. You would only allow the switcher to pull cars from the arrival track, and only allow the switcher to set out cars on the departure track. If breaking down the arrival track, the first location in the switcher's route has to be the location with the arrival staging track. And if the switcher is also building the departure train, the staging departure track location has to be the last location in the switcher's route. If you're using custom loads or final destinations when placing cars on your "staging" departure track, you'll need to Enable Car Routing through Staging. If you only want cars that are being routed by the program to use your arrival track, select the option to only allow cars with final destination in the Track Destinations tool.
If you decide to restrict a track to certain loads, the table in the Edit Location window for that track will have an additional column called "Loads". If you've built a list of loads that can be accepted by the track, you will see "A" followed by the number of loads that are accepted by that track. If you've built a list of loads that the track will not allow, you will see "E" and the number of loads that you want to exclude from this track.
Note that load restrictions for a spur will not create demand for that type of car and load. Other than the default car loads of "E" and "L", you'll need Schedules for your spurs to create demand for cars with custom loads.
You can have the program ignore the "Hold cars with custom loads when spurs are full" feature described above by selecting the Send cars with custom load to staging option for a train.
If you decide to restrict a track to certain roads, the table in the Edit Location window for that track will have an additional column called "Roads". If you've built a list of roads that can be accepted by the track, you will see "A" followed by the number of roads that are accepted by that track. If you've built a list of roads that the track will not service, you will see "E" and the number of roads that you want to exclude from this track.
You can also select the color of the text for each of the comments using the color selector to the right of the text message.
A "pool" can be used to share track space with two or more industries. For example, let's say you have a spur that services two industries, and it can hold four 50' cars, or is roughly 220' feet long. Now you could enter into operations a track length of say 110' for industry 1, and another 110' for industry 2. The program could set out up to two cars on each of the tracks serving each industry.
But let's say you want to have up to four cars sent to either industry. If you "pool" the two industry tracks, the program can borrow space from the other industry if needed. So now the program could set out up to four cars at each industry, but no more than four cars total.
If you don't set a minimum, then one industry could hog all of the track. By entering a minimum of say 55' for each industry, it means that the most any one industry is going to get is three cars. There will always be space available for at least one car at each industry. Note that the maximum number of cars in all cases is four. It is only how the cars are distributed that changes when entering a minimum.
Pooling staging tracks allows you to have multiple trains per physical staging track. The program only allows one train per staging track, but you can pool your staging tracks to have multiple trains residing on one physical track. When pooling tracks in staging, the pool window provides three train departure modes, Normal, FIFO, and LIFO. "Normal" selects a departure track based on usage, tracks with the least use are selected first. You would not use "Normal" when there are two or more trains on one physical track. "FIFO" selects the first train to arrive into staging for departure, and "LIFO" selects the last train to arrive for departure. The program uses the car's last moved date and time to determine the order trains arrived into staging, so the order you terminate the trains is very important if you use FIFO or LIFO modes.
Note that the program normally selects a departure track out of staging by usage. If you prefer to have your trains depart staging based on the order they've arrived, you would use the staging pooling feature for your set of staging tracks. If you're only interested in the order train depart staging (FIFO or LIFO) and not sharing track space, you would set the minimums for each staging track to their actual length.
Another use of a "pool" is with regard to schedules. For the power user, you might find that a single schedule assigned to a spur doesn't quite do what you want. But if the track could have several schedules, it would do what is needed. By entering multiple spurs with schedules shared via a pool, you can create any car sequence imaginable for your industry.
During the train build process in aggressive mode, the program will check the alternate track for cars after assigning cars from the spur to the train being built. This way cars on the alternate are used to keep the spur full. Note that the Planned Pick Ups feature can defeat the movement of cars from the alternate to the spur, so it is recommended that you don't use both features for a spur.
Adding an alternate track will normally increase the number of cars that the program routes to a spur / schedule. The train build report refers to routed cars as "inbound" to the spur/industry. The maximum number of inbound cars to a spur with an alternate track is determined by the length of the spur and the alternate track. So if the spur could hold 6 cars, and the alternate track 5, then the program would allow a maximum of 11 cars to be sent to the spur.
You can see all "inbound" cars by using the sort by "FD" or Final Destination in the Cars window.
The program will also use the spur's alternate track as an outbound track when routing a car from a spur involving three or more trains. The car in this case is being routed and has a final destination assigned to it, and the program finds that all of the first hop interchanges and yards are full, and the alternate track has room, the program will redirect the car to the spur's alternate track. This is done to free up space at the spur, allowing the program to move inbound cars from the alternate to the spur. Once the first hop interchanges or yards get cleared, the program will assign the outbound car to the available interchange or yard and the car will continue to its final destination.
If you want the program to ignore some number of cars currently sitting on the track, you can use this feature to specify how many cars to ignore. The choices are 25%, 50%, 75% and 100%, which means you can tell the program to ignore 25 to 100 percent of the cars sitting on the track. For example, if you chose 100%, the program will ignore all of the cars sitting on the track, and will set out new cars up to the length of the track. This also means that the program can overload the track up to 100%. So if the track could hold 10 cars, the program could send another 10 cars to the track. Now the track could be overloaded until this train or a later train arrives and picks up the original 10 cars. Therefore you might need some temporary track space available to hold the new cars. So if you don't have "extra" space for cars, you might not want to use this feature! Note that it is your responsibility when using planned pickups and not the programs to build and terminate a train that eliminates the potential overloading.
The following is an example using planned pickups to get a desired set of car moves. Say you only have two tracks at a location that can hold exactly three cars each. You place three cars on each track for a total of six cars. You've configured the program to allow a local switcher to swap the cars on each track. Without planned pickups, when you build the switcher the program would find both tracks full and the build report will state that there isn't any space available to move cars to either track. The program needs to find an empty spot for a car before it can plan a move. With planned pickups set to 100% for both tracks, it allows the program to plan three car set outs to the full track, because with planned pickups the space consumed by the cars sitting there is ignored. This allows for a complete car swap between the two tracks.
Now using the example above we'll show how easy it is to overload a track using planned pickups. If we set the number of moves for the switcher to an odd number the program could overload one of the two track. Let's try 5 moves for the switcher, with 5 moves the program would pull three cars from one track and set them out to the other, and then pull two cars from the other track and set them out to the other. Once the switching is complete, one track will have two cars, and the other four! But there's only room for three! The track is overloaded by one car. So in this example using even numbers for the switcher moves doesn't overload the tracks, but odd number moves can.
Guaranteeing that cars will be picked up from a track can be a bit tricky, so it is recommended that you not use this feature until you become an expert with regards to using this program, otherwise you will most likely overload your tracks when using this feature.
Also recommended is that you not use the Alternate Track feature and planned pickups at the same time for a spur. It can defeat car movement from the alternate track to the spur.
For both C/I and staging tracks there's an option to only accept cars with a final destination. This prevents cars without a final destination from using the track. This is useful when you only want routed cars to use the interchange or staging. Tracks that only accept routed cars have the "Routed" checkbox selected in the "Edit Location" window for C/I and staging tracks. Note that cars without a final destination (placed randomly on the track) could be stranded on the track if there isn't a train that directly services at least one of the track destinations.
After you've selected the destinations that you want the track to service, you can use the "Check Destinations" button to verify that all of the destinations you've selected can also service the same car types, roads, and loads as the track. The program will report each problem it encounters, you can continue checking by pressing the "OK" button, or "Cancel" if you want to abort the checking. The "Check Destinations" can take awhile to complete as it will test all combinations of car types, roads, and loads that the track can service. The program also checks to see if there's a train that can carry the car from the track to the selected destinations.
You might find that the "Check Destinations" will report bogus issues when you've configured your C/I track to service several car types, roads, and loads, but have destinations that can only service a subset of these. In this case, it is best to break the C/I track into several tracks each servicing the same car types, roads, and loads that the destinations can service, and then pool the C/I tracks together if you want to use the same track space.
First select the car type you wish to modify. The window will then show which locations and tracks can service that car type. Select or deselect the locations and tracks you want to service, and press the "Save" button to modify your locations and tracks. You can also copy how an existing car is serviced by your locations and apply those rules to another car. To make a car type behave like another, select the car type you would like to copy using the right side "Copy Type" menu. Then select the "Copy" checkbox, and press "Save".
Prints the information found in the Locations window.
Lists the schedules and the information found in the edit schedule window.
Prints the location comments
This option will list each track for a location, and details which car types, loads, roads, and trains can service that track.
Lists each car type, and shows which tracks can service that car type. The analysis includes the total length of each car type, and then the percentage of track that can be consumed by that car type.
This option will check each track and determine if there's a train that will service the car types selected for that track.
If the Enable ID Tag option has been selected, a check box for "RFID" will appear in the bottom box on this page. If that is checked, additional columns for "Reported Location", "Reported Date", and "RFID" will be displayed.
336 GCR Flat 40
655578 UP Boxcar 40
Each line can start with a space and multiple spaces between fields is okay. Optionally you can include additional attributes in the following order; weight, color, owner name, date built, and location. The weight is the car's weight in ounces which can be 0 if you want the program to automatically calculate it. The location can have two fields, the location name followed by the location's spur or yard name separated by a hyphen. The following shows two examples of the correct format:
336 GCR Flat 40 3.8 Black AT 1930 Home Town USA - George's Oil Terminal
655578 UP
Boxcar 40 3.8 Yellow DB 1934 York - York Freight
If you prefer to use comma delimiters (comma separated values) instead of spaces, use a file with a .csv extension or place the word "comma" at the start of your import file and use commas instead of spaces. You can also have the program create a comma separated values file for you by selecting the Export to file under the "Tools⇒Car Roster" menu in the "Cars" window. The following are two examples of importing cars with comma delimiters.
comma
336,GCR,Flat Car,40,3.8,Black,AT,1930,Home Town USA,-,George's Oil Terminal
655578,UP,Tank Car,40,3.8,Yellow,DB,1934,York,-,York Freight
When importing a comma separated values (.csv), the program will delete leading and trailing spaces if they exist between the commas.
A comma separated values file can also import a car's load and kernel name, just add them after the track name field.
If you enter 0 for the car's weight, the program will automatically calculate the car weight for you based on the car's length and the scale you've selected.
To import a file, use the "Tools" menu in the upper left hand corner of the Cars window. Then select "Tools⇒Car Roster⇒Import from file". Note that the program will only add cars that don't exist in the program's car roster. If the car already exists, the import will be skipped by the program.
During the import, if a car's location or track doesn't exist in the program's database, the program will prompt you to create them. This way not only are you importing your cars, but also the car's locations and tracks. The program will set new track to a length of 1000', and will set the track type to yard. After the import you can edit the track and set the track's correct length and type.
To improve the speed of the car import, you can close the cars window. It takes significantly more processor cycles to update the cars window than to actually import the cars. The program will report to the system console information and warnings during the import. You can access the system console from any menu bar under "Help"
After importing your cars, you must save them if you want to keep them as part of your roster. Use the Cars "Save" button or select any car by pressing the edit button and then press the "Save" button that can be found at the bottom right of the Edit Car window.
kernel
21455 UP kernel_name
When the passenger checkbox is selected, a new field called "Car Blocking Order" will appear. The text box allows you to enter a number between -100 and 100 and this gives you control where in the train's Manifest a car will be placed. Lower numbers will place the car at the front of the train, and higher numbers towards the rear. We recommend that you start off using numbers cleanly divisible by 10. For example, you might what to place an observation car at the end of the train, a value of "90" would be appropriate. If you wanted a baggage car to be the first car in the passenger train, a value of "10" would be a good value, cars in the middle of the train could use "50". Later you can fine tune your passenger trains by using the other numbers that are available.
The passenger option is also useful for any car that needs to ride a train. For example MOW, milk, and buffer cars can use the passenger option to ride and return to their original track.
The program can optionally add, remove, or swap a caboose in a train's route. See Locomotive or Caboose Changes en Route for more information.
The program allows passenger cars, cabooses, and cars with FRED to return to their original location and track.
If you use the utility feature, it is strongly recommended that you select the utility feature for all cars of a given type. Since the car's road and number isn't displayed on the Manifests and switch list, any car of that type can be placed into a train. Later if you try and find a car by its road number, it could very well have been shipped out on an earlier train. So you have to decide, use road numbers or not for a given type of car.
Some operators don't want the default empty or "E" load for a car when the car's load flips from the "L" load or when a car's custom load is removed. To set a custom empty load for car, see Set Car and the Return When Empty fields. You can tell the program which custom empty load you want each car to have.
The same goes the the car's default load or "L" load, you can use the Return When Loaded feature to set a custom load rather than the "L" load when a car's load status changes from empty.
Kernels are shown on Manifests and switch lists in the order they are entered, with the lead car being the first one entered. You can modify the order the cars in a kernel are printed by changing their blocking order in the Edit Car window. A negative blocking number will place the car before positive numbers.
Press "Save" to store the car's attributes after you've made changes. The program will create a file named "OperationsCarRoster.xml". You can find this file in JMRI⇒ "profile name" ⇒ operations. A backup file "OperationsCarRoster.xml.bak" with the last settings for all of your cars is also created each time the "Save" button is pressed.
You can also use the "hyphen" feature when creating new car type, road, and load names. The program will drop the characters after the hyphen when printing a Manifest or switch list.
Note that spurs normally require a schedule to service cars with custom loads. See car Load and Purposely Moving Cars Using Schedules and Loads for more information.
In addition to the Add, Delete, and Replace buttons and fields described above in the Car Edit Attributes section, the edit car loads window allows you to set the load's type, priority, is hazardous, pick up and set out messages.
Normally the car's destination and assigned train are generated by the program, but you can use the optional fields to force a car to a specific destination using the specified train.
You can remove a car that has been assigned to a train by simply pressing the "Save" button. You can also add a car to an already built train that hasn't departed its first location. Select a destination, track and train for the car, then press the "Save" button.
The "Out of Service" checkbox when selected instructs the program to ignore the car when building new trains. Many operators have a RIP (Repair In Place) track and use this feature to hold the car there until repairs have been made.
Note that manually changing the load name will not cause the Return When Empty (RWE) destination to become active, only when the car is set out by the program will the RWE destination and RWE load become active.
Note that manually changing the load name will not cause the Return When Loaded (RWL) destination to become active, only when the car is set out by the program will the RWL destination and RWL load name become active.
Use the "Edit" button to modify an existing division or if a division isn't selected to create a new one.
When selecting a final destination, you don't have to specify a track. And when selecting a destination that is staging, you shouldn't select a destination track, let the program do that for you. The program will confirm after pressing "Save" that the program can route the car from the car's current location to the final destination that you've specified. You can review a "mini" build report for the car by using the Set Car tool "Preview or Print car routing report". The program when creating the report uses the settings in the Build Report Options window. It is recommended that you set the router level to "Detailed" or "Very Detailed" when trying to determine why a route fails.
You can if you wish only preview or print cars for a specific location or track. In the "Edit Location" and "Edit Track" windows the "Tools" menu provides a "Show Cars" selection which will bring up the "Cars" window but only listing the cars for that location or track. Use the roster print or preview features of the "Cars" window to print out a list of the cars for that location or track. In addition to only printing the cars shown, the export cars tool will only export the cars shown in the cars window for a location or track. When viewing cars for a specific track, you can delete the cars on that track by selecting "Car Roster ⇒ Delete Cars on Track track name".
If you want to change the status, location, return when empty, return when loaded, home division, load, kernel, destinations or train assignment for a group of cars use the "Set Cars" tool found under "Tools" in the Cars window. The tool works the same way as the Set Car as described above, except that multiple cars are modified. Select the cars you want to change in the table by highlighting them, and then select "Set Cars". Note that you can use the "Control" or "Ctrl" key on your keyboard to select individual cars in the table, and the "Shift" key allows you to select a range of cars. Use "Ctrl A" to select all of the cars in the table. The first car in the table becomes the default, and when you press the "Apply" button, all of the other selected cars will have the same settings as the default car.
When using the "Set Cars" tool, all cars selected in the Cars window will have the same values once you press the "Apply" button. However, if you want to change only one or two of the fields shown in the Set Cars window, select the ignore checkbox for the fields you don't want changed by the "Apply" button. Only the fields that don't have the "ignore" selected will change. For example, in the "Set Cars" image above, all the cars selected will have their return when empty set to "Bakersfield" track "#68 Heritage Furn" with a load of "E".
After making your changes, be sure to press "Save" in the Cars window if you want to keep your changes.
If the Enable ID Tag option has been selected, a check box for "RFID" will appear in the bottom box on this page. If that is checked, additional columns for "Reported Location", "Reported Date", and "RFID" will be displayed.
236 UP RS4 40
5578 SP SW1200 42
Each line can start with a space and multiple spaces between fields is okay. Optionally you can include additional attributes in the following order; owner name, date built, and location. The location can have two fields, the location name followed by the location's spur or yard name separated by a hyphen. The following shows two examples of the correct format:
If you prefer to use comma delimiters instead of spaces, use a file with a .csv extension or place the word "comma" at the start of your import file and use commas instead of spaces. The following are two examples of importing locomotives with comma delimiters.
comma
236,UP,RS 4,40,AT,1930,Home Town USA,-,Engine Terminal
5578,SP,SW
1200,42,DB,1934,Town of York,-,York Engine Yard
When importing a comma separated values (.csv) file, the program will delete leading and trailing spaces if they exist between the commas.
To import a file, use the "Tools" menu in the upper left hand corner of the Locomotives window. Select "Tools⇒Locomotive Roster⇒Import from file. Note that the program will only add locomotives that don't exist in the program's locomotive roster. If the locomotive already exists, it will be skipped by the program.
After importing your locomotives, you must save them if you want to keep them as part of your roster. Press the "Save" button located at the bottom of the Locomotives window, or select any locomotive by pressing the edit button and then press the "Save" button that can be found at the bottom right of the "Edit Locomotive" window.
Now set the locomotive's location on the layout. If the locomotive is off the layout, set the location to none (blank space). You can also enter the built date, owner and a comment for this locomotive. The built date can be in the format of a two or four digit year, or month-year (mm-yy), where a two digit year will be converted to a loco built in the 1900s.
Consists are shown on Manifests and switch lists in the order they are entered, with the lead locomotive being the first one entered. The lead locomotive in a consist will have an asterisk appended to the consist name in the Locomotives window.
The alternative to assigning locomotives manually to a consist, is to allow the program to build loco consist from single locos.
When using the "Set Locomotives" tool, all locomotives selected in the Locomotives window will have the same values once you press the "Apply" button. However, if you want to change only one or two of the fields shown in the Set Locomotives window, select the ignore checkbox for the fields you don't want changed by the "Apply" button. Only the fields that don't have the "ignore" selected will change.
After making your changes, be sure to press "Save" in the Locomotives window if you want to keep your changes.
nce_xxx
where xxx is the consist number. To synchronize your Consists, select "Synchronize with NCE
Consists" under the "Tools" from the "Locomotives" menu.
The "Routes" window shows for every route created the id, name, comment, the shortest train length between any two locations, the longest train length between any two locations, and status of the route. If there's a problem with the route, the status will be reported as "Error". If the route hasn't been assigned to a train, the status for the route is reported as "Orphan". If a route has been assigned to a train or trains, and one of the trains is built, the status becomes "Train Built". You can not modify a route that is assigned to a built train. Reset or terminate a built train if you want to modify the route. Use the "Edit" button to modify a route.
Enter the route name and an optional comment. This comment is shown in the Routes window, and optionally on your Manifests. Each route must have unique name. Then press the "Add Route" button located at the bottom of the window. Now select the location the train will depart by selecting the location in the menu box located at the left bottom side of the window. Press "Add Location". You should now see the train's departure location in the table along with the train's departure direction, the requested number of car moves, whether car set outs or pick ups are allowed, the train's travel time, the maximum train length departing the location, and the track grade between this location and the next location in the train's route. The X and Y values are where to place the train icon on a panel. The Edit Route below provides additional details about a location in a route.
Now select the correct departure direction for your train when using this route, along with the number of moves you wish, and the train's maximum length. In the simple case, a move at the departure location would equal a car in the train. So if you want 10 cars in your train when it departs, enter 10 moves. Later if you create kernels or allow local moves at the departure location, the number of moves could mean something slightly different. A local move is the act of moving a car from one track to another at the same location, the car isn't added to the train, but moving the car is part of the train's work at that location. Double click on the cell in the table to change the car moves or train length. The program remembers the last train direction, car moves, and maximum train length when adding new locations to your train's route. Now build your route by selecting the next location the train will visit and again adjust the number of cars your train will work by changing the move count for that location. Continue building the train's route by entering all locations that the train will pass through even if the train will not work the location. This way your train's engineer will know when reading his Manifest the towns he will be traveling through. Each time you add a location to the route, the table shows the order in which the train will visit. You can move a location up or down in the sequence if needed.
Each route location has the train's departure direction, number of desired car moves, and whether car pick ups and or car set outs are allowed at that location.
You can use the route location move counts to control how many cars are set out or picked up along your train's route. If you want more cars to be set out at the middle locations, decrease the move count for the last location (terminal) in the train's route, and if needed increase the move count for the departure location. Conversely, if you want to pick up more cars along the train's route, increase the move count for the last location, and decrease the move count for the departure location.
You can also request that the program randomly reduce the number of desired car moves for a location. Use this feature if you find that the program is consistently generating the same amount of work for your train, and you want some variety. It is recommend that not use this feature until you find that is is needed. The "Random" column allows you to select a value between 10 and 100 and has a default of "Off" which disables this feature. The value is the percentage you want the move count reduced. For example, if you requested 20 moves for a location, and selected a random value of 10%, the program could reduce the desired move count by 2, which works out to desired car moves of 18, 19 or 20. A random value of 50% would reduce the moves by up to 10, or 10 to 20 desired car moves, and a value of 100% would generate desired car moves between 0 and 20. Note that small car moves need large random values to work properly. For example a desired car move of 1 will always be 1 unless you select 100% in the random column. A desired move count of 2 needs a random value equal or greater than 50% to reduce the move count by one, and 100% if you wanted the move count to be reduced by 2.
The "Switch Time" and "Travel Time" found on the Settings page determines the time it takes for your train to service a location and travel to the next. If you want to adjust the train's travel time, enter the number of minutes desired in the "Travel" cell. Another choice is to specify the train's departure time from a location by selecting the "Departure Time" radio button in the lower right hand corner of the Edit Route window. Note that when the first location of a route has a departure time that it disables the ability to adjust the Train's Departure Time.
You can also adjust the maximum train length using (feet or meters) that can depart each location. For example, if you limited the train's departure length to 500 feet, then approximately 10 cars would depart in the train from that location. When first starting out, it is recommended that you leave the departure train lengths to the maximum and adjust the number of cars in the train by changing the car move counts in the train's route. Later if you find that your train is too long, you should first reduce the car move counts and then the maximum train lengths to get your trains to build to your liking.
The grade is optional and is used to determine how many locomotives the train will require for that segment when using the train Auto locomotive assignment feature. Enter the maximum grade that the train will encounter between the two locations. The program when determining the required HPT for a grade uses the prototypical formula "HPT = Speed x % Grade / 12". The speed when determining the HPT is set to 36 MPH, which means that a 1% grade will require 3 HPT.
The X and Y are the coordinates on your dispatcher's panel for the optional train icon. You can set the coordinates directly in the table by double clicking on the X or Y cells, or use the Set Train Icon Coordinates tool if you want to change all of your routes at once, or use the "Set Train Icon Coordinates for this Route" tool if you only want to adjust one route, or use the "SetX&Y" train icon pop-up menu to teach the program where you want the train icon placed when the train is at the specified location. Leave the X and Y coordinates at zero if you want to manually move the icon or you're not using the icon feature.
Each location in the route can also have an optional comment that will appear in the train's Manifests. Press the "Add" button under the table heading "Comment" to add a comment to a location.
Notice that "Hillsboro" appears twice in the route. The first "Hillsboro" provides the arrival direction for the train, and the amount of work for tracks that can only be accessed by an Eastbound train. The second "Hillsboro" provides the departure direction for the train, and the amount of work for tracks that can only be access by a Westbound train. Even though "Hillsboro" appears twice in the route, it will only appear once on your Manifests and switch lists. Also when you enter a location twice in a row in the route with a change in direction, the location's switch list will add a note that the train's departure direction has changed.
There are also several Train Build Options available when departing staging.
For example, you can control if there are set outs or pick ups at any location in the route. Therefore if you wanted to only set out 3 cars, you could specify only set outs and 3 moves. But what if you wanted to set out 3 cars and pick up 7 cars. If you specify 10 moves for a location it can be any combination of 10 pick ups and set outs. Using "Danville" as our location, we can in our route specify "Danville" twice, back to back. In the first "Danville" we can specify 7 pick ups only. In the second "Danville" we can specify 3 set outs only. Now the program will "try" and meet your request by picking up to 7 cars and dropping off up to 3 cars.
Another example, the program will not allow you to have staging tracks and other types of tracks (spurs, yards, interchanges) at the same location. But using the names above, we could assign yard and spur tracks to "Danville", and then as long as "Danville-1" (staging) was the last or first location in a route, assign staging tracks to "Danville-1". Now when the train terminates at Danville, the yard and spur tracks are serviced, and then the train terminates into staging at "Danville-1".
Another example. Let's say we have a mainline train that will service Danville. At Danville we have a yard and several spurs. We want the mainline train to service Danville's yard, but not the spurs. We don't want to use a switcher to service the spurs at Danville. However, we do want locals to service them! We need to tell the program which tracks in Danville are service by which trains.
Solution, we create a yard in "Danville", and create spurs in "Danville-1". The mainline train has "Danville" in its route. The locals will service "Danville" and "Danville-1". Now the dilemma, do the locals service "Danville-1" or "Danville" first? Not an issue, we create a route for the locals that services "Danville-1", then "Danville", and then "Danville-1". At the first "Danville-1" we request only pick ups at the spurs, at "Danville" we specify both pick ups and set outs to the yard, and at the second "Danville-1" we specify only set outs. Another solution is to simply use the spur's ability to select which trains can service the track. See Restricting Track to Certain Trains or Routes.
You can also modify the order cars are set out for a location, see Track Blocking Order.
The Trains window shows all of your trains. For each train, there's a checkbox in the "Build" column used to select which trains to build, print, and terminate. The middle buttons on the bottom of the page will build, preview/print or terminate the trains selected. You can adjust which trains to build using the Train Schedules tool. You can if you wish build each train independently by pressing the "Build" button under the "Function" column for a train. After a train is built the button becomes "Print" or "Preview" depending on the function "Preview" checkbox located at the bottom of the Trains window.
You can modify an existing train using the "Edit" button for that train. For each train there's also an action button. You can select one of four actions for your train using the radio buttons. The 'Move" action causes a built train to depart its current location and move to the next location in the train's route. The "Conductor" action opens a window that provides the train's Manifest for each location in the train's route. The last two actions are Terminate and "Reset", pressing "Terminate" moves a built train to the last location in the train's route, and completes the work assigned to the train. Reset is used to release all cars assigned to a built train. You can only reset a train that hasn't moved.
There are several checkboxes along the bottom of the Trains window. The "Show All" when selected shows all trains in your roster. When deselected, only trains that have the "Build" checkbox selected are shown.
The function "Preview" checkbox when selected, allows you to preview rather than printing your train's Manifest or build report.
The "Messages" checkbox when selected will present a dialog box whenever a train build failure occurs explaining why the train didn't build.
The "Build Report" checkbox when selected provides a Build Report detailing how the train was built by the program. Use the "Print" or "Preview" button for a built train to see the train Manifest and optional build report. The program always provides a "Report" button under the "Action" column for a train that fails to build.
If you select the "Generate CSV Manifest" from the Options window found under "Tools" in the Settings or Trains window, two additional checkboxes will appear labeled "Open" and "Run". If the "Open" checkbox is selected the function button for a built train will become "Open" rather than "Print" or "Preview". Pressing a train's "Open" button will allow you to examine the train's comma separated values file. If you select the "Run" checkbox, the function button for a built train becomes "Run". Pressing a train's "Run" button will start the Excel program configured by the Setup Excel Program (Manifest Creator) window found in the Trains "Tools" menu .
One of the most important buttons is the "Save Builds" button. When pressed, the program saves all the files that have been modified by building and moving your trains. Pressing this button allows you to shut down the program and resume exactly where you left the program. If you attempt to close the Trains window before pressing the "Save Builds" button, a warning will pop up asking you to save your files. Note that if you enabled Auto Save no warning will appear and the program will automatically save your files.
Enter the train's name and optional description, and then press the "Add Train" button. Both will show up in the train's Manifest. The train's name will also appear on the train icon, so short names work best. If you want the train's lead locomotive number and departure direction as part of the train's description when printing, enter {0} and {1} respectively for the number and direction. This allows you to create a train description like "Extra 1234 East" for your Manifests and switch lists. You can also include the locomotive's reporting mark (road) by entering {2} in the description.
Next select the route that this train will travel. There's an "Edit" button to the right of the route that allows you to directly edit the selected route. If you haven't created a route for your train, select a blank route and then press the "Edit" button to create a new route. Once a route is selected a list of locations that the train will visit should appear. You can deselect any location that you don't want the train to work. The build report and train tools will refer to unselected locations as being skipped.
The maximum number of locomotives that the program can assign to a train is controlled by the Settings window Maximum Number of Locomotives.
The Train Road Options can be used to limit which locomotive roads a train is allowed to use.
"Auto HPT" is useful when you want to assign a locomotive or consist to a train based on the train's tonnage, route grades, and locomotive/consist horsepower. You can if you wish use this option along with the Build loco consist from single locos option. The program will first assign a locomotive or consist at the start of the train build process, and at the end of the build, determine if the assigned locomotive or consist has the appropriate HP for the train's tonnage and grades. If a locomotive or consist can't be found that meets the HP requirements, the build will fail. You can if you wish also select the option to Build loco consist from single locos which could allow the train to build correctly. The feature "Auto HPT" isn't available for a train departing staging.
The Train Road Options can be used to limit which caboose roads a train is allowed to use.
There are many counters used when building a train and they are NOT restored when using the train reset feature. This includes track use counts, schedules, and car wait values. Therefore new train builds can be different after using the train reset function.
In the upper left side of each "Edit Train" window is the "Tools" menu for that train.
You can also configure the program to always try building a train in normal mode when there's a build failure in a aggressive mode when departing staging. See Try Normal Mode if Build Failure from Staging.
You have the option of either leaving the cars in staging or having the cars ride the train and return to the same staging track. If you want the cars to remain in staging, in the train's route at the departure location allow set outs. If you want the cars to ride the train, disable set outs at the departure route location.
Note that when this option is enabled, the program may have difficulties swapping cars from staging and the layout as the program must assume that all cars in staging could return to staging. When this option is disabled (recommended), the program can ignore the cars in staging and can send cars from the layout to staging without regard to the cars sitting there since the expectation is that all cars in staging will be sent to the layout. The recommendation is to leave this option disabled unless you need your train to carry cars from and to the same staging track.
If you want the program to also consider the required horsepower per ton (HPT) along with the train's grades when determining the number of locomotives to assign to a consist, enter a non-zero value in the Settings window under Horsepower per Ton. A value of "1" HPT is prototypical and increasing the value will cause the program to assign more locomotives to the consist based on the tonnage of the train. If you've entered grades in your train's route, the program also considers the HPT needed for the grade. However, if you assign helpers to the train, the HPT for that part of the route is ignored. The program when determining the required HPT for a grade uses the prototypical formula "HPT = Speed x % Grade / 12". The speed when determining the HPT is set to 36 MPH, which means that a 1% grade will require 3 HPT. If you find that the program isn't assigning the "right" number of locos based on grade, simply increase or decrease the grade entered as it isn't shown on the train's Manifest, it is only used for calculating the HPT.
When using this feature, you should enter the minimum number of locos that you want the train to depart with in the option train requirements section of the edit train window. This will cause the program the assign the locos to the train at the start of the build process. This helps keep the train length in check as the HPT calculation is done at the end of the build process, and ignores the route's length restrictions. So it is best if the HPT adjustment adds only one or two locos to your train, thus keeping the train length close to the maximums you specified in the route. You could of course reduce the train lengths in your route if you find that the program is consistently adding one or two locos to the train, and also exceeding the maximum train lengths.
Note that the program will attempt to assign locos to your train if this option is enabled, and the HPT value is greater than zero, even if the requested number of locos in the Edit Train window is also zero.
There's also the option to add or remove locomotives in the train's route. Select "Add Locomotives" if you want to add locomotives to your train. Select "Remove Locomotives" if you want to remove locomotives from your train. Select the location and number of locomotives you want added or removed, and optionally the model and road. The program will add locomotives at the location selected. When using the "Remove Locomotives" option, the program will assign additional locomotives at the start of the train's route and drop them off at the selected location. The "Remove Locomotives" option isn't available when the train departs staging.
OperationsPro™ also gives you three options with regards to the train's caboose. The first option, "Remove caboose", will set out the caboose if one was assigned to the train. The train will then depart the specified location without a caboose. The second option, "No caboose change", either keeps the caboose if one was assigned to the train, or departs without a caboose if there wasn't one assigned to the train. The third option, "Change caboose", will set out the caboose if one was assigned to the train, and then add a new one to the train. This last option becomes "Add caboose" if the train was traveling without a caboose.
You can also request helper locomotives for those long up hill battles that your train might experience. The current code only adds a comment to the Manifest requesting helper service starting at the location you select, and removes the helper service at the second location specified by you.
If the train will service any load name, select the "Accept all" radio button. If you want the train to service only some load names, select "Accept only" radio button. To build a list of load names that the train will not service, select the "Exclude" radio button.
There are two pull down menus, the first one is the type of car, and the second the type of load serviced by the car type selected. Use the "Add Load" button to build a list of loads that the train will either service or exclude. The "Delete All" button will remove all loads from the list. You can also associate a load with a particular car type, select the "Use car type and load" checkbox if you want this feature.
If the train will service any road, select the "Accept all" radio button. If you want to accept only some roads, select "Accept only" radio button. Then use the menu of roads and "Add Road" button to make a list of roads that the train will service. To remove a road from your list, select the road from the menu and use the "Delete Road" button.
To build a list of roads that the train will not service, select the "Exclude" radio button. Then use the menu of roads and the "Add Road" button to build a list of roads that this train will not service.
You can use the "hyphen" feature to create unique road names. For example, say you wanted a certain SP boxcars to only ride this train. You could create a new road name, for example "SP-special", assign that road name to the boxcars, and exclude the road name from the other trains. Your Manifest would continue to show the boxcar road name as "SP".
Included in the jython directory are several examples of operation oriented scripts. These scripts are included in the JMRI download and can be found in the jmri⇒jython⇒operations directory.
To remove a car from the train, press the "Set" button, and the "Set Car" window should appear. Pressing the set car "Save" button will ask you if you really want to remove the car from the train.
In the upper left side of the Trains window is the "Tools" menu. The first three items; Options, Manifest Print Options, and Build Report Options can also be accessed from the Settings Tools menu.
First select the car type you wish to modify using the left menu. The window will then show which trains can service that car type. Select or deselect the trains you want to service, and press the "Save" button to modify your trains. You can also copy how an existing car is serviced by your trains and apply those rules to another car. To make a car type behave like another, select the car type you would like to copy using the right side "Copy Type" menu. Then select the "Copy" checkbox, and press "Save" to have both car types serviced by the same trains.
To change which day of the week is active, select the appropriate radio button and then press the "Activate" button. The day selected is then used by your schedules (Delivery and Pickup) when building trains. For each day of the week, you can add a comment. Enter the comment, then press the "Save" button. You can also add or change the days of the week by using the "Edit Train Schedule" window found under "Tools". You can change the order by dragging the column with your mouse pointer. Press the "Save" button to complete your changes.
When the "None" radio button is selected, cars with a scheduled pick up day will not be serviced. The "Any" radio button allows you to service all cars, even ones those that have a scheduled pick up day.
There are four buttons labeled "Build", "Print/Preview", "Print Switch Lists/Update Switch Lists", and "Terminate". These buttons facilitate the building of trains, printing the Manifests and switch lists, and terminating the selected trains. Very useful if you're running the program in Consolation mode.
If you've selected the "Preview" checkbox in the Trains window, the "Print/Preview" button becomes "Preview" which allows to you review your train Manifest and switch lists before printing them. The "Print Switch Lists/Update Switch Lists" button becomes "Update Switch Lists" when you deselect the "Real Time" checkbox in the Switch Lists by Location window.
To create an new automation select "Automation" from the Trains Tools menu, and then press the "Add Automation" button at the bottom of the automations page. This will open a new window called "Add Automation". Give the automation a name and an optional comment, and then press the "Add Automation" button to create the automation. Each automation must have a unique name.
To add your first action to the table, press the "Add" button in the lower left part of the window in a section labeled "Add Item". This should add a line to the table, with four pull down menus labeled "Action", "Train", "Route Location", and "Automation / Other". The three pull down menus after "Action" are enabled if the action selected requires them. For example to build a train, you need to select under the "Action" column "Build Train" and under the "Train" column which train you want to build. If the desired action is to wait for a train to arrive at a certain location in the train's route, you would select the action "Wait for Train", then the name of the train from the "Train" menu, and then finally the location in the train's route from the "Route Location" menu.
In addition to the four pull down menus, there's a checkbox under the column called "HIAF" (Halt If Action Fails) and a button labeled "Add" under the column called "Messages". The "Add" button allows you to enter a message that will pop up when the action is completed. Some actions have two messages, one will show when the action succeeds and another when it fails. Once you enter text into the message areas and press "OK", the "Add" button for that action becomes "Edit". If it's possible for an action to fail, in addition to the extra failure message text area, there's a checkbox labeled "Halt if action fails". When selected the automation will halt in the event that the action fails to complete. The "Create Default Messages" button will automatically create a success and failure message for you if the text window is empty.
The messages can be useful when debugging your automation, or if you need to pause the automation as it will wait until you press either the "Halt" or "OK" button. If you press the "Halt" button, you can continue from where you were in the automation by pressing the "Resume Automation" button.
If you want more than one action for your automation, press the "Add" button in the "Add Item" area for each action you want to perform. The automation action sequence is from top to bottom. You can if you wish add actions to the middle or end of your sequence by selecting the "Middle or Before Selected Row" or "End" radio buttons respectively. If you select the "Middle or Before Selected Row" radio button you can add an action to the middle of the table, or above a row you've selected in the automation table. You can adjust the order the actions run by using the "Up" or "Down" buttons available for each action. The "Delete" button will remove that action from the automation.
Once you've entered all of the actions you want, you can either step through your actions one at a time using the "Step Automation" button, or run through the entire action sequence using the "Run Automation" button. To stop the action or sequence of actions, you can press the "Stop Automation" button. The "Current" column shows where in the sequence the automation is executing. Pressing the "Resume Automation" button continues running the actions from where the current pointer is. The "Run Automation" button always restarts the automation at the top of the table. If you want to manually reset the current pointer to the start of the table, find under "Tools" "Reset Automation". Useful if you're stepping through the various actions and want to begin at the start of the table. You can also move the current pointer to any action by double clicking the "Current" cell for that action followed by the enter key.
And finally press the "Save Automation" button to make your menu selections valid and save your automation to the OperationsTrainRoster.xml file. The next section provides the details for some of the available actions.
The program also allows you to wait for more than one train. Just enter each of the trains you want to wait for in consecutive rows. The program will then continue when all of the trains either move or arrive at the selected locations.
This is the end of the automation section.
You can enable the creation of the comma separated values (.csv) files needed for an external Excel program from the Train's "Tools" menu "Setup Excel Program" or from the Options "Generate CSV Manifests".
You can also create custom switch lists. Place the programs in the JMRI/Your_Profile_Name.jmri/operations/csvSwitchList directory. You can configure the name of the Excel program by opening the "Switch List by Location" window using the "Switch Lists" button at the bottom of the Trains window. Then under "Tools" in the "Switch List by Location" window, select "Setup Java or Excel Program (Manifest Creator)". You must also enable the creation of CSV switch list files, see Options "Generate CSV Switch Lists" for more information.
During the export, the program will calculate the maximum work times at each train's location based on the move counts in the train's route for trains that aren't built, and the actual work time for built trains. The work time is referred to as "Duration" in the Timetable application stop sequence.
Only trains that are selected in the build column are exported. Each export will create a new schedule based on the date of the export. The export works best if the travel time in the Settings window is between 1 and 4 minutes.
The window shows the train's route along with every location and track that can be serviced by the train. To the right of each track is the current status for the car type currently selected in the drop down menu. If the status is "OK" then this train can pick up and set out this type of car to that specific track. If the status is "Pick Up Only" or "Set Out Only" then the train can only pick up or set out cars to that particular track. A status that begins with an "X" means that the train will not service the track. The following table provides a summary of the various statuses.
Status | Description |
---|---|
OK | Selected car type can be picked up or set out |
Pick Up Only | Selected car type can only be picked up from this track |
Set Out Only | Selected car type can only be set out to this track |
X (Train Type) | Selected car type is not serviced by this train |
X (Train Built) | Selected car's built date is not serviced by this train |
X (Train Load) | Selected car's load is not serviced by this train |
X (Train Owner) | Selected car's owner is not serviced by this train |
X (Train Road) | Selected car's road is not serviced by this train |
X (Train Skips) | The train doesn't service this location |
X (Train Pick up) | The train can't pick up cars from this track |
X (Train Set out) | The train can't set out cars to this track |
X (Train Local Move) | The train option to allow local moves for cars with custom loads or FD is disabled |
X (Local Move) | The train won't perform a local move for cars with a default load |
X (Route) | The route doesn't allow pick ups or set outs for this location |
X (Route Moves) | The number of requested car moves for this location is zero |
X (Location Type) | The location doesn't service the selected car type |
X (Track Type) | The track doesn't service the selected car type |
X (Track Load) | The track doesn't service the selected car's load |
X (Track Road) | The track doesn't service the selected car's road |
X (Track Train) | The track doesn't service this train |
X (Track Route) | The track doesn't service the train's route |
X (Track Destination) | The track doesn't service the car's final destination |
X (Track Custom Load) | The track can't service a car with a custom load (FD can override) |
X (Dir Loc) | Based on the train's departure direction, the location doesn't allow set outs or pick ups |
X (Dir Trk) | Based on the train's departure direction, the track doesn't allow set outs or pick ups |
X (Train Schedule) | The spur's schedule train schedule selection prevents the car from being serviced. |
X (Schedule Type) | The spur's schedule does not allow the car's type to be serviced. |
X (Schedule Load) | The spur's schedule does not allow the car's load to be serviced. |
X (Schedule Road) | The spur's schedule does not allow the car's road to be serviced. |
X (Schedule) | The spur's schedule does not allow the combination of the car's type, load, and road. |
X (Division) | The car's division and load will not allow set outs. |
FD = Final Destination
Since a local switcher only services a single location, the program ignores the train direction control in the switcher's route, and therefore the location and track service direction controls for a train are also ignored by the program. If you only want a track to be serviced by a switcher, deselect all the train direction controls for that track. Only a switcher will service a track that doesn't have any direction boxes selected.
If a train fails to build, the "Action" button will change its text to "Report". Pressing "Report" will print or preview the build report for this train. Whenever a train fails to build, a build failure message will appear. If you want to disable this feature deselect the checkbox "Build Messages".
You can manually remove or add cars to a built train, see Set Car.
You can also control which trains are shown in the Trains window. When the "Show All" checkbox is deselected, only trains that have the "Build" checkbox selected are shown.
When a train fails to build the status becomes "Build Failed" see Build Reports to understand how to troubleshoot a build failure.
After successfully building a train, you can have the train depart and travel to the first location in your train's route by pressing the "Move" button. The train's status would then become "en route", and the status will also show the number of cars in the train, along with the train's current length and weight. Once the train reaches the last location in the train's route, pressing the "Move" button again causes the program to terminate the train, and the train's status becomes "Terminated" along with the date and time of when the train was terminated.
You can also find a copy of the train build report file in the "operations" directory in a subdirectory called "buildstatus". Each train build report has its own file with the .txt extension and the name of the train as part of the file name. You can if you wish use a text editor to view the train build report file.
When a train build fails for any reason, the train action button becomes "Report" which allows you to access the build report for that train. The program will send the report to your printer if the "Preview" isn't selected, or to a preview window or text editor if the "Preview" is selected. The build report can print out different levels of detail, from minimal to very detailed. See the Settings section Build Report Options for more information on how to change the build report detail level.
The next common reason for a build failure is requesting a certain number of locomotives for the train, and the locos aren't at the start of the train's route. If you request more than 2 locos for a train, they must be part of a consist, or you've selected the option for the program to build a consist from individual locomotives. Again, the program must find the requested number of locomotives at the start of the route, and must also find track that can service the locos at the end of the train's route.
The third most experienced reason for a build failure is when a train is departing staging and the program can't find destinations for the cars. It is a requirement that a train must depart with all cars on the staging track, no cars can be left behind in staging. A build failure will occur if the program can't find destinations for all of the cars departing staging.
Reading the build report can detail exactly why the train failed to build allowing you to correct the problem. When reading the build report, use the "Very Detailed" option as it provides the most information with regards to how the program works and why the failure occurred.
You can if you wish use a text editor instead of the print preview window. A text editor allows you to search the report for a specific car or issue. You can select this option from the Build Report Options under "Tools" in the Setup or Trains window.
The program can create car movement in one of two ways, "random" and "routing". Cars that haven't been assigned a division, or don't have a final destination or custom load are found destinations using the random method. Cars assigned to a division, or with a final destination or a custom load are routed. The term "random" is used to describe car movement from session to session, as using this method causes cars to move but not in a deterministic way. Whereas cars that are "routed" are moved from session to session in a predictable way, closer to their final destination.
The random method uses a series of counters to determine which cars should travel to which tracks. These counters and the restrictions you place on the trains and tracks determine the possibilities that the program can choose from. Each time a locomotive or car is assigned to a train during the build process, a count associated with them is incremented. The program uses this count, called "Moves" in the "Cars" and "Locomotives" windows, to determine which rolling stock hasn't moved recently and tries to place rolling stock with the least number of moves first when building new trains. Each time a car or locomotive is sent to a track, the program increments a count associated with that track. The program tries to move cars and locos to tracks that have experienced the least use.
The routing method also uses the car's move count to determine which cars to look at first. A car needs to be routed when it has a final destination (think ship to address). The program will try and route the car to its final destination using up to seven trains. If the car has a custom load and no final destination, the program will search for a spur with a schedule that is demanding that car's load, and then will then give the car a final destination that is the spur, and then route the car to that spur.
Cars assigned to a division are always routed. Divisional cars are assigned a final destination when the program determines that the car is needed by a industry (spur), or if the car is empty and needs to return to its division's home yard.
Cars that are routed move with a purpose, they will travel from location to location using the most efficient route the program can find. Most of the time cars are routed though classification or interchange (C/I) tracks, but the program can optionally use yard tracks if needed.
When building a train only rolling stock at locations that are part of the train's route are used. Rolling stock already assigned to trains are ignored when building new trains. With regards to cars, in addition to the number of moves a car has experienced, the car's load priority is also considered. The program will try and find destinations for cars with higher priority loads before low priority loads.
The next step in the build process is to optionally assign a caboose or car with FRED to the train. If the program finds the required caboose or car with FRED at the start of the route, the program tries to find a track at the termination location that will accept it. If successful, all other cabooses and cars with FRED are removed from the available car list.
Next the program will assign cars to the train starting from the departure location. Each car goes through the process of searching for a track at each location along the train's route that will accept the car. Another count assigned to a track is used to determine if the track has been serviced recently. Tracks with the least amount of service get priority. Once the program finds a track at a location, the search continues until all locations in the train's route are checked. If the program finds more than one location for the car, it will use the number of moves requested in the train's route and the number of cars already assigned to a location to determine which destination is the most appropriate. The process continues until the number of car moves requested by a location is met, or the available cars being processed by the program is used up. Once the car moves requested for a location is met, the next location in the route is examined. This continues until all locations in a train's route have been processed.
The program can build trains in one of two modes, Normal or Aggressive. In normal mode, the program sends cars to tracks that have physical space for the new cars. In aggressive, the program can send cars to tracks that are full as long as one or more of the cars on that track is scheduled to be picked up. A car can be scheduled to be picked up by a previously built train, or by the one being built.
In aggressive mode , the program when figuring out destinations for cars, will perform multiple passes when determining where to place cars. Using the default value of two passes, the first pass uses 50% of the available moves for each location when determining the number of cars to pick up, and the second pass does the remainder. By doing multiple passes, the program can "free" up some tracks that already have cars there, thus increasing the number of cars that the train can service. Once a car has been scheduled for a pick up by a train in aggressive mode, the car's current track space is available for other trains to use.
There is an exception when departing staging in aggressive mode, the program will skip searching for destinations for cars out of staging on the first pass unless the Use normal mode when building this train is selected. The thinking is that car pick ups along the train's route will free up space which should provide more possibilities for cars out of staging. However, if you have tight train length restrictions along the train's route, the program might not find destinations for cars out of staging while keeping the train length in check. If you find in the build report that the train length is an issue for cars out of staging, try building the train using the "Use normal mode when building this train" found under Train Build Options in the "Tools" menu under Edit Train.
When a car has a final destination which can be set by a schedule or manually using the Set Car window, the program will try and route the car to that destination. If the program can't find a train or series of trains that can deliver the car to the destination, it will try and move the car in an attempt to find a way to get the car to the destination.
If a car has a custom load without a destination, the program will search for a spur with a schedule demanding that car type and load, the program will then route the car to that destination. The program will use up to seven trains to route a car to a destination. The program when determining how many cars an industry can serve considers the length of the spur serving the industry, and the length of the alternate track if one is specified. If the car is departing staging with a custom load, the "Percentage of custom loads generated by staging" is used to determine if the car should be sent to that industry. See Schedules for more details.
Sometimes reading the build report can get tedious. A text editor allows you to search the report, you can select this option from the Build Report Options under "Tools" in the Setup or Trains window.
You can also access a train's Manifest and Build Report from the "Tools" menu in the edit train window. The "Tools" menu option allows you to recover the Manifest and build report for a train that has been terminated. Useful if you've accidentally terminated a train before printing out the train's Manifest.
Below is a train Manifest using the "Standard" format, with blue text for car pick ups, and red text for car set outs.
Below is a train Manifest using the "Two Column (Track)" format, "Tabular" and "Print Headers" selected, along with changes to the Manifest header and Manifest text fields. We've seen cases where the text and the column lines don't line up properly when using the "Two Column" formats. To fix this issue, you might have to play with the Manifest font type and size to get the text to line up properly. The page below was created with "Courier New" and a font size of 10.
An alternative to using the Manifests provided by OperationsPro™ is to create a custom Manifest. Shown below is a train Manifest (LS) and switch list for locations Lakeview and Bakersfield using Dan Foltz's Switch List Creator version 1.2 (SLC4JMRI.xlsm). This and other versions may be found at www.ManifestCreator.Weebly.Com. This particular custom format allows you to use a half sheet of paper for your crew. Note that the Car Types was changed in the Settings window from "Descriptive" to "AAR Codes" before using Dan's Excel program.
There's also a Java based program written by Tim Mann called Model Railroad Switch List and Manifest Formatter that will create custom Manifests and switch lists for you using the CSV files.
Press the "Switch Lists" button found at the bottom of the Trains window if you want a switch list for a given location. A menu will appear that allows you to select which locations to preview or print. Once you've determined which locations you want to print or preview, press the "Save" button to keep your selections.
The "Print Switch List Changes" button will become active after you've printed out your switch lists, and a change occurs to one of your locations due to building a new train. Pressing this button will send only new switch lists for a location to your printer.
The switch list menu also lets you add a comment to the switch list for a location and select which printer to use when printing out the switch list. Note that the program when printing out Manifests will also use the printer associated with the train's departure location.
You can also get a paperless version of a switch list by activating the appropriate Yardmaster window for a location.
The next option, "Page Format", controls how much paper is used when printing out switch lists. The "Normal" mode uses the least amount of paper, and will list the trains servicing the location one after another. The "Page per Train" option when selected causes the program to print a train's switch list on a new page for each train. This way your crew when completing the work for a train, can simply discard the paperwork for that train. This mode is also useful if you have more than one crew member working a location, this way they can easily hand out the work by train. The final option is "Page per Visit", this option prints a new page each time a train visits the location. Useful if you don't want multiple visits by a train to be on the same set of pages.
If you only want to print out work for new trains, then deselect the real time option. Once you've printed out the switch list for a location, when new work is created by building trains, the old work for older trains is deleted. Note that you can use preview to see what work a location has, but until you print it, new work will be added to whatever work is currently scheduled. So please understand that preview and print work differently in consolidation mode.
Another use for consolidation mode is to create large switch lists for a location by building and terminating several trains. For example, if you have a small layout, you might have to build and terminate quite a few trains in order to generate enough work for your crew. If you use switch lists in real time you have to print them out before you terminate your trains. Now if there isn't much work your switch list is going to be pretty short. By deselecting the "Real Time" checkbox you can consolidate several small switch lists in to one larger one. Use this mode if you want to save paper, otherwise don't bother, as it can be difficult to use. It's a bit complicated, so here's the order you need to do things:
Printing out the switch list for a location tells the program that you're done consolidating your trains for this location. The program will clear the switch list when the next change occurs to that location. If there are no changes to a location, then the switch list is a copy of the last one printed. This allows you to print more than one copy of the switch list if needed.
The Train Schedules window has buttons along the bottom of the window that simplify the building of train Manifests and consolidating train switch lists.
If you select or deselect any of the switch list options, you will need to press the "Save" button to activate them.
When the feature to generate CSV Switch Lists is enabled, the program will create a comma separated values file for each of the selected locations. You can find the CSV files in the csvSwitchList directory.
Two new buttons will appear at the bottom of the "Switch Lists by Location" window, "Run", and "Run Changes". The "Run" button is used to create custom switch lists for all of the selected locations by executing an Excel or Java program. The "Run" button will if needed, create the CSV files needed before asking the Excel or Java program to create and print a custom switch list. The "Run Changes" will only create new switch lists for locations that have new work.
When using a Java program like Model Railroad Switch List and Manifest Formatter to create a custom switch list, you must delete the Excel switch list file name and then press "Save".
The correct time to terminate a train is when the train actually arrives at its destination. Terminating a train before it completes it run means that the operation program incorrectly believes that the locomotives and cars have been delivered. It is better to build and print twelve trains and then later find out that only nine trains completed their runs. You would then terminate nine trains, and leave the other three for next time. Or if you wish you could reset any trains that didn't depart from their terminal. Reseting trains really isn't necessary, the trains that didn't run during this session could run the during the next session.
An alternate method is to build, print, and use the "Move" button for each train to track the actual movement of the trains during your session. As long as the trains on your layout match the locations in the program you can build a new train.
By enabling frames found in Preferences Web Server, you can access OperationPro™ windows like the Yardmaster which shows the work for a location.
End of OperationsPro™ help.
Thanks and congratulations to all who contributed! Contact us via the JMRI users Groups.io group.
Copyright © 1997 - 2024 JMRI Community. JMRI®, DecoderPro®, PanelPro™, DispatcherPro™, OperationsPro™, SignalPro™, SoundPro™, TrainPro™, Logix™, LogixNG™ and associated logos are our trademarks. Additional information on copyright, trademarks and licenses is linked here.
View the