JMRI OperationsThe operations program allows you to create computer generated train manifests for your railroad. A train manifest details the work that a crew will perform during an operations session. The manifest provides a list of car pick up and set outs and shows where the cars are located and where they should be eventually positioned on the railroad. The program allows you to enter a roster of cars and locomotives, define locations (stations) on the railroad, and routes for trains to travel. The car roster includes information about the car, including road name, number, type of car, color, length, weight, load, date built, and owner. Trains are assigned routes that define locations or stations where cars can be picked up or set out. Features include the ability to control what car types, road names, and car loads a location or industry can service, the available track space for a location, and the maximum length the train can be between any two locations on the train's route.
Locations can have spurs, yards, staging and classification/interchange tracks. Spurs are used to service industries, and can optionally have custom schedules assigned to them. 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.
The operations program is included in the JMRI/DecoderPro suite of tools and can be found under the main menu heading "Tools->Operations".
Table of Contents
- New User Advice
- Operations Demo Files
- Quick Start Help
- Manifest Print Options
- Build Report Options
- Classification/Interchange Tracks
- Staging Tracks
- Change Track Type
- Track Pools
- Modify Locations and Tracks by Car Type
- Reset Train
- Train Build Options
- Train Manifest Options
- Show Car Types Serviced
- Modify Trains by Car Type
- Switcher Service
- Building Trains
- Problems Building Trains How to Fix
- Reading the Build Report
- Printing Manifests
- Switch Lists
- Moving Trains
- Terminate Train
- Save Builds
- Building Multiple Trains for a Session
- Operation Windows
New User AdviceIf you've never used a computer program to generate manifests and switch lists, we recommend that you load and use the demo files provided. Please read the build reports for the demo trains in very detailed mode, even if they build which they should since they are demo files. You should make changes to the demo program and see what the results are. This is your chance to experiment with the program before you enter your own data. You might want to print and save a demo train manifest and build report for later reference.
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 start using the more advanced features of the program. 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 the majority of users. 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 please learn to walk before your try to run.
Operations Demo FilesThe operations program provides a set of demo files to help introduce you to the some of the features and capabilities of this program. To load the demo files, first open the Operations Settings window "Tools->Operations->Settings", and in the upper left corner of the Setting window is the Tools menu, select "Load Demo Files". The program will create a backup of your current configuration if you have one, and then loads the demo files. Restart JMRI to complete the demo load process.
The program also supplies a simple panel to show how the train icons work. Load the panel before building the trains by selecting in the main JMRI menu, "Panels->Load Panels .." a window should appear and open the "operations" directory and then open the "Operations Demo Panel" xml file.
Quick Start HelpIn the top level menu for JMRI find the "Tools->Operations" menu. There are six items in this menu. We recommend that you start with Settings and work your way down to 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. We also recommend that when defining your locations that you first use yard and spur tracks, and try staging and classification/interchange tracks when you're more comfortable with how the program operates.
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. 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.
Now enter some cars into the operations database, don't bother entering locomotives for now. Be sure to place the cars on a track using either the edit car or the set car window. The program works best if you keep at least 50% of your tracks empty, so don't place too many cars on tracks until you understand how the program builds trains.
Now create a simple route for your first train to follow. Enter each of your locations in the route, 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, just use the "Add Location" button.
Now you're ready to create your first train. 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 "Option 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. 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.
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 of 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 your cars to be a caboose by selecting the caboose or FRED checkbox in the Edit Car window. Now change the Optional train requirements radio button to Caboose or FRED. Be sure that the last location on your trains route has a track that will accept the caboose car 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.
You should now be well on your way with regards to JMRI operations. Help is also available at the jmriusers list
British RailwaysThe program supports an alternate set of railway terminology for our British modelers. To use British terminologies, change the JMRI Display Locale to English (United Kingdom). With British terminology, trains travel Up/Down and East/West, and some British railway names and wagon types are provided to get you started.
SettingsThe Settings window contains general parameters for the operations program. Select from the JMRI main window "Tools->Operations->Settings" to open the Settings window. The Setting window has fields and buttons to allow you to enter your railroad name, the directions your train's travel, the scale that you are using, printer and icon controls, and the ability to create backups and restore files for operations.
Railroad NameEnter your railroad name in the field across from "Railroad Name". This name will show up on your manifests. You can also have a different railroad name for every train in your roster, see Train Manifest Options for details.
Train DirectionsIf your railroad depicts trains traveling north and south select the "North/South" box, if your trains travel east and west select the "East/West" box. You must select at least one direction, and can if desired select both.
ScaleNext select the scale you are modeling. This is useful when you enter the length of cars and tracks. You can enter the number of actual inches and the program will convert to scale feet. Append a double quote to the length when entering actual inches. The program will also automatically assign the proper NMRA weight for a car based on scale and length.
Maximum Train LengthNow enter the default "Maximum Train Length" you desire for your trains. This field provides the maximum default train length between stations. Later you can override this length if you wish a shorter train between any two locations. A 1000 foot train can carry approximately 20 cars, and is of course dependent on the car lengths assigned to the train.
Maximum Number of LocomotivesNow set the maximum number of locomotives that you want the program to assign to a train. If you don't want the program assigning locomotives, set this value to 0.
Switch and Travel TimesThe program when generating switch lists for the various locations on your railroad, will estimate the arrival times for your trains based on the train's departure time and the switch and travel times. Enter the average number of minutes it takes to set out or pick up a car on your railroad. Then enter the average amount of time in minutes it takes to travel from one location to the another. Later when you create a route you will be able to increase or decrease the train's travel time between any two locations.
Car TypesThe program has two sets of car types for you to use. Descriptive provides type names like "Boxcar" and "Tankcar", and AAR provides type names like "XM" and "T" for boxcars and tank cars respectively. Select the one that you prefer. You can add or delete car types by using the car type edit window.
Unit of LengthYou can use feet or meters when entering the length of your rolling stock and tracks. The program can convert actual inches into scale feet when entering car, locomotive, or track lengths. Just append a double quote (") to any length. The program can also convert from actual centimeters to scale meters, just append "cm" to any length.
Optional Year ModeledYou can optionally enter the year you want printed on your train manifests.
Add Operations Menu to Main MenuWhen selected, add the operations menu to the main menu bar. The operations menu will appear the next time you restart JMRI.
Close on SaveWhen selected, close operation windows when the "Save" button is pressed.
Auto SaveWhen selected, the program will automatically save the operation files after they have been changed. When a change occurs the program will after 1 to 2 minutes automatically save the operations files.
Auto BackupWhen selected, the program will create a set of operation backup files each time the program is started. See Backup and Restore for more information.
Panel Options (Train Icons)If you want the operations program to place an icon representing the train on a panel, enter the panel's name (NOT the panel's file path name!), otherwise leave the name blank to disable. Load the panel using the main menu "Panel->Load Panels..." or use other load panel options available in JMRI.
The "Enable Train Icon SetX&Y" when selected allows you to teach the operations program 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.
SaveWhen you're finished with the settings window, press the save button to store the setting in a file called "Operations.xml". You can find this file in your JMRI directory in a folder called "operations". The program will also create a backup file each time you press the save button.
Copies of the operations files can be made to provide backups for both error recovery and for archiving. The data files used for operations is a set of six files and they are referred to as a "Backup Set". The program has two places that it uses to store these backup sets, referred to as the "Automatic Backup Store" and the "Regular Backup Store". These are stored under the JMRI "operations" directory in your home directory as "autobackups" and "backups". The purpose of the automatic backups is to make a copy of the files for "safe keeping" before changes are made to the main operations files. This way, if anything gets messed up, there is a copy of the last known good data that can easily be restored to undo the damage. In normal operation, an automatic backup is made each time the program starts (if the "Auto Backup" setting is checked on the Settings page), and right before a Restore, Reset Database, or Load Demo Files operation is done.
Regular backups are done only when the user requests it by either clicking the "Backup" button on the Settings page, or by selecting the "Backup" option on the Tools menu of the Operations Settings page. The Backup button will copy the files to the Regular 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 Regular 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".
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 Regular Store using the "Restore" button on the Settings page. Alternatively, the "Restore" menu option on the Tools menu of the Operations Settings page 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.
To reset the operation database and remove all operation files, use the "Reset Database" option on the Tools menu of the Operations Settings page. An automatic backup copy of the current operation files will be made before deleting the main files. The results will be that the settings, cars, locomotives, locations, and trains files will be purged. Note that after this is done and JMRI restarts, the "Operations" menu item on the main menu will no longer be visible, as there are no operations files to load. If you want to once again use the operations feature, you can either load the demo files or restore a previous backup. To do this, open the Operations Settings page by selecting the "Settings" option on the Tools->Operations menu of the main page. From there you can do either a restore or a load of the demo files in the usual way.
OptionsThe operations program has several options that can be modified by selecting Operations->Settings->Tools->Options.
Build OptionsThere are two build train options, normal and aggressive. It is recommended that you select normal when you first begin using the program. Normal builds guarantee that when a car is delivered (set out) by a train that there will be track space available for the car.
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 two pass determination of car movements. The net effect is that more cars are moved within a given train. 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.
Note that once you've built a train, the build option can not be changed until all trains are terminated or reset.
Switcher ServiceThe next set of options control local car movements when using switcher to service a location. Normally it is better not to allow a car to move from one spur directly to another spur at the same location. This type of move can be very unrealistic, picture moving a boxcar from a shoe manufacture directly to an auto manufacture. Also moving a car from one yard track to another can have your operators wondering what kind of busy work is being generated! But if you need these types of moves, select the appropriate checkbox.
Enable Type, Road and Load Restrictions into StagingThe next option is restricting trains to staging tracks that only accept the train's rolling stock type, road and load names. When "Enable Type, Road and Load Restrictions into Staging" is selected, the program will only deliver a train to a staging track has the same rolling stock, road and load name restrictions. This is useful when you want trains delivered to staging tracks based on the train's rolling stock restrictions. However, if you want certain car types, car loads, or road names to be transported by a train, but not delivered to staging, deselect this feature.
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.
Make departure track available after train is builtWhen selected the departure track in staging becomes available for other trains immediately after the departure train is built. For trains that return to same staging location, this option allows the train to return to the same track it departed on. This option is only available when using the aggressive mode for building trains.
Allow cars to return to staging if neededWhen a train departs and returns to the same staging location, it is regarded as a turn by the program. A turn normally takes cars from staging, sets them out on the layout, picks up new cars and returns to staging with those cars. Normally the program doesn't allow the same cars to depart and return to staging. However, it may be desirable to allow the train carry the cars rather than having the program report that cars in staging couldn't be delivered to destinations on the layout. Selecting this option allows a turn to transport cars to and from the same staging location. Note that when this options is selected, that the program will only return cars to staging when destinations are not available on the layout.
This options is also available on a per train basis. See Train Build Options.
Prompt for Departure Track from StagingIf you would like the program to ask you which track a train should depart from staging during the train build, select this option. Normally during the train build the program would selected the least recently used track when determining the track to depart from. Note that the program will only prompt you if there are two or more trains available in staging that meet the train's requirements.
Prompt for Arrival Track into StagingIf you would like the program to ask you which track a train should use when arriving into staging during the train build, select this option. Normally during the train build the program would selected the least recently used track when determining the track to arrive on. Note that the program will only prompt you if there are two or more tracks available in staging that meet the train's requirements.
Car RoutingWhen car routing is enabled, the program will use multiple trains to deliver a car to it final destination. It is recommended that you leave this option enabled. With car routing enabled, you can use a Schedule to deliver a car to a specific location. The car routing algorithm will search for the most efficient route for the car to travel. The algorithm will attempt to use interchanges and then yards to move cars. If you don't want the router to use yards, you can deselect the "Enable Car Routing via Yards" check box. Routing through staging is disabled by default. The algorithm will try and find a route using a maximum of five trains to complete the car move. Note that the program never gives up trying to route a car. If a car has been assigned a Final Destination the program will try and route the car after every move.
Logging OptionsIf you want the operations program to log your locomotive, car, or train movements to a file, select the appropriate checkboxes. The program will create a new directory called "logger" in the operations directory. For each day's session the program will create a new file (.csv) using the day's date. Use a program like MS Excel to view the file.
OptionsIf you want to create your own custom manifest using a comma separated value (.csv) file, select this option. You can use a program like Excel to create a manifest to your liking. You can find the manifest files in the operations directory in a directory called "csvManifests". Each line of the file starts with a two or three 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:
|CC||Change Locos and Caboose|
|DTR||Departure Time Route||Time|
|EDT||Estimated Departure Time||Time|
|LOGO||Path name to logo||URL|
|PC||Pick up car||See below|
|PL||Pick up loco||See below|
|RLC||Route Location Comment||Comment|
|SC||Set out car||See below|
|SL||Set out loco||See below|
|TL||Train Length||Length, Empties, Number of cars|
|TM||Train Manifest Description||Description|
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, RFID, RWE location name, RWE track name. Where C = Caboose, F = FRED, and H = Hazardous.
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, car comment, RFID.
You can find some examples of custom manifests at http://groups.yahoo.com/group/jmriusers/files/Operations.
You can also generate custom switch lists using a comma separated value (.csv) files. You can find the switch list files in the operations directory in a directory called "csvSwitchLists". The csv switch lists use the same codes and descriptions as the csv manifests, plus the following:
|DL||Departure Location Name||Name|
|ETA||Expected Time Arrival||Time|
|ETE||Estimated Time Enroute||Time|
|NCPU||No Car Pick Up|
|NCSO||No Car Set Out|
|TDC||Train changes direction, departs||Direction|
|TIR||Train In Route|
|TDONE||Train has already serviced this location|
There are two other options, "Enable Value Fields" and "Enable Radio Frequency Identification (RFID) Fields". You can use these fields to enter the value or cost of your rolling stock and the RFID if you're using them to track your rolling stock. You can also rename these fields if you wish and use them for other purposes.
Manifest Print OptionsYou can modify the how the program prints the train manifests and the location switch lists. From the "Operations->Settings->Tools" menu select "Manifest Print Options" to open the manifest print option window.
Manifest Printer FontThe program supports several types of fonts for printing. Select the desired font and size using the pull down menus.
Message FormatIf you would like your manifest and switch lists printed in a tabular format select the tabular checkbox. Only equally spaced fonts like "Courier New" or "Monospaced" are shown in the Font selection box.
Set Out Text ColorYou can select the text color of your manifest when the operation is to set out a car or locomotive. Select the desired color from the drop down box.
Pick Up Text ColorYou can select the text color of your manifest when the operation is to pick up a car or locomotive. Select the desired color from the drop down box.
Local Move Text ColorYou can select the text color of your manifest when the operation is to move a car from one track to another at the same location. The car in this case in not added to the train. Select the desired color from the drop down box.
Switch List FormatYou can use the same format as your manifest for your switch lists, or you can customize your switch lists to your liking. Deselect the "Same as Manifest" if you want a different format for your switch lists.
Message FormatsYou can customize the pick up, set out, and local move messages for your manifests and switch lists by selecting the appropriate drop down menus. To remove an attribute select blank. You can also edit and or replace the "[ ] Set out", "[ ] Pick up" and "[ ] Move" prefixes. Two popular prefixes are "Spot" and "Pull" for set outs and pick ups respectively. If you want to use the text color options, the set out, pick up, and move prefixes must be unique.
Manifests OptionsThe program allows you to customize your train manifest to your liking. There are eight optional checkboxes and their functions are described below.
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.
Each location and train route can have an optional comment. You can print these comments on your manifest if the "Location" and "Route" checkboxes are selected respectively. If you want the manifest to show how many car loads and empties are in the train, select the "Loads and Empties" checkbox. You can also use a 12 hour rather than a 24 hour clock format on your manifests and switch lists. 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.
Selecting the "Show Timetable" prints which train timetable you are using when building your trains.
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 an operator 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 last options 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. If you would rather have the cars listed by the track name, select the option "Sort by Track".
Manifest PreviewIf you want to use a text editor to preview your manifests and switch lists, select this option. This option also allows you to make manual changes to your manifests before you print them.
Add LogoIf you want a logo in the top right hand corner of your manifests and switch lists, press the "Add Logo" button and select a file with the image you want to display. You can also have a different logo for every train in your roster, see Train Manifest Options for details.
Misplaced Cars CommentThe program provides a comment for your operators to search for misplaced cars. You can modify the comment to your liking.
Hazardous CommentThe program will add the "Hazardous Comment" to the manifests and switch lists when a car has the Hazardous checkbox selected in the "Car Edit" window and the "Hazardous" message format is selected in your manifest and switch lists print options. You can change the comment if desired, and press "Save" to keep the change.
Build Report OptionsFrom the "Operations->Settings->Tools" menu select "Build Report Options" to open the build report options window.
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 disk. 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 all of the available cars for 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.
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.
For most users, the "Very Detailed" setting is the most appropriate when reading a train's build report. For information on the content of the build report please see Problems Building Trains How to Fix.
LocationsLocations are places on your railroad that trains visit to pick up or set out cars and locomotives. Locations can be cities, towns, stations, or just places where trains need to work cars. Select "Tools->Operations->Locations" to add or edit the locations on your railroad.
The "Locations" window shows all of the places that your trains can work. For each location the window shows 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.
To add a location, press the "Add" button located on the bottom of the "Locations" window. A new window should appear.
In the "Add Location" window, enter the name of the location in box across from "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. For example, "Boston-1" and "Boston-2" will print as "Boston". The program will remove the hyphen and number when printing manifests and switch lists.
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 how to add tracks to your location.
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.
Location Service DirectionYou can decide which train direction the location can service. For example, if only east bound trains can access the location select "East" and deselect the other directions. This can be useful if you want to only support trailing point switching for a given location. If a location can support multiple directions then select the ones that are appropriate.
Location Rolling StockYou can control the rolling stock a location can service. Press the "Clear All" button to deselect all types, or "Select All" to select all types, then select or deselect the rolling stock you wish the location to accept. After configuring the tracks for a location, you can use the "Auto Select" button to have the location reflect the rolling stock serviced by the various tracks.
Location CommentYou can enter an optional comment for your location. If you want the comment to print on your manifests you must select the print location comments option.
YardsA yard is used to store cars and locomotives. A car's load status does not change when delivered to a yard track. To add a yard, select the "Yards" radio button and then press the "Add Yard Track" button.
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 meters. Press the "Add Yard Track" button at the bottom of the window and the disabled fields should now appear.
Rolling Stock ServicedYou can control what type of rolling stock the yard can service. Note that the yard rolling stock is restricted to the ones that the location can service. If the rolling stock that you wish doesn't appear for a yard, confirm that the location's rolling stock types are properly selected. If the rolling stock type you want doesn't exist for a location, you will have to create the type using the Cars window and editing any car.
Road Names ServicedYou can also restrict which roads a yard can service. Under "Tools" in the menu, Select "Road Options". In the "Edit Track Road Options" window select "Accept only" if you want to build a list of road names that the yard will accept. Select "Exclude" if you want to build a list of road names that you want to exclude from the yard.
Load ServicedYou can also restrict which car loads a yard can service. Under "Tools" in the menu, Select "Load Options". In the "Edit Track Load Options" window select "Accept only" if you want to build a list of car load names that the yard will accept. Select "Exclude" if you want to build a list of car load names that you want to exclude from the yard. There's also an option to associate the loads to a particular type of car that the track will service. Select the "Use car type and load" if you want this feature.
Pick Up Car OrderThere are three options for picking up cars from the yard. "Normal" uses the car's move count to determine the order cars are removed from the yard, "FIFO" (First In First Out), and "LIFO" (Last In First Out). LIFO is useful if you have a single ended yard that you use to service cars. For example storing empty coal cars, it would make more sense to pull an empty coal car from the front of the line rather than digging one out from the middle of the yard.
CommentYou can enter an optional comment for the yard.
Save Yard TrackPress the "Save Yard Track" to save your work. The program will create a file (OperationsLocationRoster.xml) in your JMRI directory in a folder called "operations". The program will also create a backup file containing the last settings for all of your locations.
SpursA spur is used to service an industry. To add a spur, press the "Add Spur" button. Spurs are very similar to Yards , so see above for more information. When entering the length of the spur, enter the length of the cars that will service the industry plus the coupler lengths. For example, let's say you have an industry that can service two 50' boxcars, the track length in this case is 100' plus 8' for the couplers (4' for each car), for a total of 108'. You could optionally round up the length to 110' or more.
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".
You can if you wish schedule the order that cars will be delivered to a spur, or demand cars with certain loads. See Schedules below for more information.
SchedulesIf you would like to see cars delivered in a particular sequence, or with a specific load for delivery or shipping, the program allows you to apply a schedule to a spur. This is an optional feature and shouldn't be used until you become very familiar with how the program generates manifests and switch lists. A schedule provides very fine control on the order types of cars will be delivered to a spur. You can specify the car type, when it can be delivered, the car's road name and load. You can also decide the car's new load and destination. For example, if you wanted two SP boxcars to be delivered followed by a tank car loaded with "Oil", you can create a schedule that will do exactly that.
To create a schedule press the "Edit" button next to "Optional Schedule" pull down menu on the "Edit Spur Track" window. Pressing the "Edit" button should create the "Add Schedule" window.
Enter a name for your schedule and press the "Add Schedule" button on the bottom of the window. Multiple spurs can use the same schedule as long as the spurs use the same car types and roads. 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, a pull down menu for road names, and a count of 1. You can if you wish specify a particular road for the type of car you entered, or leave it blank if you don't care about the road name. You can also specify the car load received and shipped. You can also control if the car will be delivered during the session. Select from the "Timetable" pull down menu the train timetable you want. When a train timetable is selected, a car will only be delivered when that train timetable is active. See Trains->Tools->Timetable to select the train timetable for your session.
If you wanted more than one car type to be delivered consecutively, increase the count to the number that you wish. The maximum count is 100 and the minimum is 1. In the schedule shown above, the schedule is requesting two SP Boxcars in a row, then a TankOil car with with a load of "L(Oil)". After the TankOil car is delivered the schedule starts from the beginning, again requesting two SP Boxcars followed by a TankOil car. The wait field allows you determine how many trains will visit the location before picking up the car. Useful if you want a car to remain still for several operating sessions.
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 and roads that are accepted by this spur are available. If a car type or road isn't available, check the car types and roads for this spur and location.
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. 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 Attributes for car "Load". Each new load is associated with the car type. For example you can have "Screws" 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 if you wish, specify the ship to destination for a car once it has been serviced by the spur. Only destination tracks that can accept the car type are shown in the track pull down menu. The destination loaded by a schedule is shown as the car's Final Destination in the various car windows.
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 using staging tracks. If you want to specify staging as the car's destination, do not select a track, let the program determine which is the appropriate track in staging to use. Otherwise, if you did select a track, that track would become unavailable for other cars. To prevent overloading a spur with cars with custom loads from staging, the program will normally limit the number of cars in 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. However, if you need to adjust the number of cars in route to a spur with a schedule, select in the edit schedule window "Tools->Options". A new window should appear, and adjust the "Percentage of custom loads generated by staging". The default value is 100% which means only generate enough cars to fill 100% of the available track space. If you only want half of your car loads to come from staging, set the value to 50%, and if you don't want staging to ever generate a custom load car for the spur, set the value to 0%. Sometimes it is appropriate to overload a spur with cars, if you want this, increase the value up to 1000%. BTW 1000% means send 10 times the available space in cars to this spur. If you enter this value, you hopefully have 10 times the spur's available track space in a storage yard that is near by!
The other option in the edit schedule tools menu is the ability to specify an alternate track. The program when it finds a spur full will send new cars to the track you specify in the alternate track pull down menu. If you don't specify an alternate, the program will try to find a yard at that location. The alternate track feature can be used to create an "Off Spot" track for your cars. To prevent the program from placing cars on the off spot track that aren't destined to your industry, use the "Select loads serviced by track" to only accept cars with loads that your industry is demanding.
Specifying an alternate track for a schedule also changes the behavior of cars with custom loads but without a final destination. When the program finds a car with a custom load, it will search all spurs for a schedule that is demanding that car's type and load, and if found will route the car there. However, if the track was full, the program would continue to search for a track/schedule that can accept the car. If all tracks are full and no alternate track is specified for any of the track/schedules, the program will attempt to move the car to another location. If there's an alternate track specified, the program will only move the car when one of the spurs can accept a new car, i.e. the track is no longer full.
Schedules can operate in one of two modes, sequential as described above, or in match mode. Match mode eliminates the sequential aspects of a schedule. In match mode, the program will search the entire schedule to find a car type and load that matches the car that the program is trying to place. In match mode the pointer shows the last car 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 ship cars with a specific load, provide the car's final destination, or have the car wait for a specific number of trains at the spur. In match mode the schedule item count is ignored as it isn't used. All of the other 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. 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.
You can also access your schedules from the Locations Tools menu. The Schedules table provides status for each schedule. Since you can assign a schedule to multiple spurs, the table also provides additional status for each of the spurs that use that particular schedule. The table also allows you the edit a schedule once its been assigned to a spur.
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.
Schedules and LoadsYou've entered all of your cars, tracks, and trains and have been playing with the program for awhile. You're happy with where the cars end up, but watching the car movements generated by the program over several sessions has you thinking that it would be nice if the car movements had a "purpose". What you would like to see is a series of car moves that mimic the prototype railroad that your modeling, or maybe you just want the cars to move in a certain sequence. Schedules and custom car loads is the trick to getting the program to do what you want.
The program 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 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 considered only 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 shipped 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.
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.
Show Schedules by Car Type and Load
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.
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 Tools in the "Show schedules by car type and load" window.
Classification/Interchange TracksThe easiest way to create the exchange of cars between trains is to use a classification/interchange track. A classification/interchange track can be used for classification, the movement of cars within the same railroad, and an interchange, the movement of cars between railroads. Cars dropped off to a classification/interchange track by a train on a given route will not be picked up by any train using that same route. Another train with a different route is required to pick up the cars. For example, you might have a branch line that picks up and set out cars from a terminal. By defining the track as a classification/interchange track, once the branch line train delivers the cars, they will remain there until the main line train stops to service the classification/interchange track.
The car's load status does not change when placed at a classification/interchange track.
If you want more control on how your classification/interchange track will operate, you can optionally specify which trains or 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 to the same ones that the train services, otherwise you can have cars stranded on the classification/interchange track.
You can also control which destinations the interchange track will service. Under "Tools" in the edit track window for a classification/interchange track, the menu item "Track Destinations" allows you to select which destinations are valid for the 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.
How to Create a Classification YardA classification yard is used to sort cars into various trains. Normally a yard track is assigned to a specific train and cars are delivered to that track until there are enough cars to complete a train. To create a classification yard, 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 and roads that the train services, otherwise you could end up with orphan cars.
Note that it is okay to create more classification tracks then there are physical tracks in your classification yard. The cars can share the same "slough" track until its time to finally sort them into their various trains. You can also use the Track Pools feature to share the track space in your yard.
Staging TracksStaging tracks are normally used to represent locations that generate traffic to and from your layout. Many times physical access to staging tracks is limited, therefore the program places significant restrictions on how staging tracks are used. A "staging track" holds one complete train. Once a train arrives on a staging track, the cars and locomotives remain together until the train departs the staging track. The program never modifies a train sitting on a staging track. In order for a train to depart staging, the program must find new locations for all of the locomotives and cars sitting on the staging track. No locos or cars can be left behind.
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 build reports.
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.
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 name; 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 Train Requirements 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.
Staging and Car loadsStaging tracks can optionally swap the car default loads from empty to loaded, and loaded to empty. Select the "Swap default Loads and Empties" if you want your cars loads to change when arriving at the staging track. You can if you want, ask the program to empty cars as they enter staging. Select the "Empty cars with default loads" to change a car's load status to empty. If you're using custom loads, you can remove the custom load when the cars arrive at the staging track. Select the "Empty cars with custom loads" box if you want to replace your custom loads with the default empty.
The program 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 the first option is selected, the program will only check spurs with schedules along the departure train's route. The program will only generate enough car loads to fill the spur's track. When the first option is selected, the program ignores values over 100% for the schedule's "Percentage of custom loads generated by staging" and doesn't use the "Alternate Track" feature.
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. The program when determining now 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 "Alternate Track", and then to any yard tracks at the spur's location.
Both options work the same with regards to placing custom car loads into empty cars, only the number of cars loaded and the number of spurs considered by the program changes. If a schedule demands a certain car type, 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 the appropriate option is selected.
For a spur to request a custom load, the spur must have a schedule.
To restrict which loads the program will place into your cars, you can use the staging track's load control features. See in the menu under Tools "Load Options". You can also control which types of loads the program will place by restricting the types of loads the train departing from staging is allowed to service. See "Select loads serviced by this train" under Edit->Train, then Tools->Train Build Options.
The program provides another feature with regards to car loads. If the train departs from staging and also terminates into staging, the program will automatically generate the appropriate load for your empty cars that depart and terminate into staging. To use this feature, one of the two "Generate custom loads ..." from staging must be selected for the departure track. Use the "Load Options" under "Tools" to control which loads the program will generate for you. You can also use the terminating staging track's "Load Options" to control which type of loads the program will generate from the departure staging track.
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. First, if the train departing staging is also terminating into staging, the program will try a place a custom load into an empty car that meets the train's load requirements, and the train's departure and terminal staging track's load requirements. If there isn't a terminal staging track for the train, or the program was unsuccessful in adding a custom load to the car that meets the terminal staging track requirements, the program will then search for other staging tracks that aren't at the departure or terminal location. If the program does find a staging track that isn't located at the departure or terminal location, it will randomly assign a custom load that is serviced by the train, the staging departure track and 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.
Blocking Cars from StagingThe program provides a very simplistic algorithm to block cars from staging. Since cars that have been sent to staging can reside anywhere in the train, the program uses the last location where the cars where picked up to block an outgoing train from staging. So for example, if a train that terminated into staging had three stops, A, B, and C, the cars from A would be blocked together when the next train departed staging. The same goes for previous pick ups from B and C, those cars would remain together. The program when attempting to find destinations for the cars departing staging, starts with the largest block of cars, and then checks the departure train's route, and attempts to send the largest block to the location requesting the most moves. After doing that, the program does the same with the next block of cars, it finds the second location in the route and sends the cars there. This is a very simplistic approach to blocking cars, it assumes that cars previously picked up at a location were placed into the train as a group. This blocking feature doesn't consider where in the train the cars are, as some operators when picking up cars, will add the cars to any part of the train. So the first stop in the departure train's route may not have the cars at the head of the train, but they should be in a group, somewhere in the train. The first time you depart staging with this feature on, the cars will not be blocked for you, you need to first terminate a new train into staging, those cars will have the blocking tags assigned to them. To enable this feature, see Edit Staging Track, "Optional Car Blocking" in the lower right corner of the window. There are many reasons why this option will not block cars correctly. See the train's build report for more details.
Looping Trains through StagingSometimes for operations a train enters staging at one location (call it A) and then later departs at another location (call it B). From an operations perspective locations A and B are locations not directly connected by trains. So we need to relocate locomotives and cars from location A to B so the train's manifest can make sense. One way to do this is to terminate the train into staging at location A. Then create a "virtual" train that simply moves the cars from location A staging to location B staging. Doing this causes the program to "move" the train and its cars from A to B which is really the same physical track. Later you can build a train that departs location B, and the manifest will show that the train originated from B and not A.
You can automate the restaging of a train by creating a script that is activated when the train is terminated into staging.
Change Track TypeIf you want to change the track type to a spur, interchange or yard, in the edit track window, select Tools->Change Track Type. Select the desired track type and press "Save".
Track PoolsThe program allows you to "pool" a set of tracks at a location. Tracks in a pool share their track lengths with each other. This is useful if you've divided a location into track segments and you want each segment to adjust its length based on the program's demands. To create and place a track into a pool, select Tools->Pools in one of the track edit windows. Enter a name for your pool and press the "Add" button. You can also specify the minimum length for the track. A minimum track length prevents the other tracks in the pool from acquiring all of the track's length. Next select a pool name for the track and press "Save". The bottom of the pool window will show the other tracks that are in the track's pool. The program on restart, will automatically delete any pools that aren't assigned to a track.
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 shipped 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 setting 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 setting a minimum.
Anther 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.
Planned Pick UpsThe program when searching for tracks to set out cars, checks to see if there's space available for new cars. Sometimes due to the order that you're building your trains, you know better than the program that certain cars will be picked up during your session, say by a train that will be built later. This feature can be useful for classification/interchange tracks, especially if you want the classification/interchange tracks to be more to the full side rather than empty side. Also if you are switching cars to and from tracks that are basically full, using this option on one or more of the tracks in question can increase car movement.
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 need to have some temporary track space available to hold the new cars. So if you don't have "extra" space for cars, don't use this feature! Note that it is your responsibility and not the programs to build and terminate a train that picks up the original cars.
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.
Modify Locations by Car TypeThis tool can be found under Locations->Tools. Use this tool to quickly modify the type of cars your locations and tracks will service. Very useful when adding a new car type to your roster.
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, first select the car your would like to copy, then select the "copy" checkbox, the car type will now appear to the right of the checkbox, then select the type of car you want to modify, and press "Save" to have both car types serviced by the same locations and tracks.
CarsThe cars window allows you to edit your car roster. You can enter a car's road, number, type, and length. The program will automatically calculate the car's weight based on length and the scale your modeling. You can optionally add the car's color, build date, load and owner. If you want a group of cars to be switched as a unit, you can create a "kernel". You can assign any number of cars to a kernel but the type of the first car assigned will be used by the program to determine if the kernel is allowed at a location. The entire length of the kernel is used to determine if the cars in the kernel will fit. Note that the program also includes space for the car's couplers when calculating the length of a kernel.
Add, Save, Find ButtonsThere are three buttons located at the bottom of the Cars window. The "Add" button allows you to add a car to your roster. The "Save" button stores the cars roster to disk. It also saves the Cars window position and size, and any changes you made to the table widths. The "Find" button and the adjacent text window can be used to find a car by its road number. You can use the wild card "*" when entering a car number. For example if you want to find all cars with numbers that ended with 345, enter *345, and press find. Each time you press find, the next car with a road number ending with "345" will be highlighted.
Importing Cars from a FileIf you already have a list of cars in a database, you can import the cars into the program. The import function requires an ACSII text file, with one line for each car. The car import requires four attributes and the order is car number, road name, type, and length. All four car attributes are required for the import to work correctly. The following shows two examples of the correct format:
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 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 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 cars with comma deliminters.
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
You need to be very careful with spaces when importing a comma delimitated file. The program will include leading and trailing spaces if they exist between the commas.
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 Tools->Operations->Cars menu. Then select "Tools->Roster->Import from file". Note that the program will only add cars that don't exist in the program's car roster. It 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.
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.
Adding Cars to your RosterTo manually add a car to your roster, press the "Add" button located at the bottom of the "Tools->Operations->Cars" window.
Then select the road for the car. If the desired road doesn't exist, press the "Edit" button to the right of the road select menu box. This will allow you to add a new road or delete any that you don't need.
Road NumberNow enter the car's road number in the text box. The program requires a unique road name and number for each car. If you have cars with identical roads and numbers, simply add a -1, -2, etc. to each of the car numbers. The program when printing out the manifest or switch list will drop the -1, -2, etc. from the car's road number.
Car Type, Length, WeightSelect the car's type and length from the menu boxes. Use the "Edit" button to the right of the menu boxes to add or delete car types, or lengths that you want to add or remove. The car's weight is automatically calculated, but you can enter a different weight if necessary. When entering the length of a car, enter the length of the body and not the total length. For example, a forty foot boxcar has a length of 40 feet. The program when calculating lengths will add two feet to each end of a car for the couplers. Therefore when you place a forty foot car at a spur, it will consume 44 feet of track.
The program supports the ability to add a subType to your car types. Adding a "-subType" to your car type will create a new type of car. The "-subType" is not printed on the manifest or switch lists. For example you might have coal cars with loads and coal cars that are empty. If you enter the car type as HopCoal-C for your cars with coal, and HopCoal-E for the empties, the program can use this information to assign and deliver cars to their appropriate trains and locations respectively.
Passenger, Caboose, FRED, Utility, and Hazardous CheckboxesIf the car is used in passenger service select the passenger checkbox. The program will place passenger cars towards the rear of a mixed service (combination of passenger and freight cars) train. If the car is a caboose, has a FRED (Flashing Rear End Device), or is hazardous, select the proper checkbox. The program uses the caboose and FRED functions to place the car at the end of a train when the train requires a caboose or car with FRED. The hazardous checkbox will cause the program to add a note to the switch list that the car is transporting hazardous materials. Your railroad's policy regarding hazardous materials can than be applied to this car!
When the utility checkbox is selected, it instructions the program when printing manifests and switch lists to not show the individual car's road and road number, but rather the quantity of cars needed of that type. For example, prototype trains when shipping coal don't normally list the cars in the train by the car's road number but instead shows the number of cars, the type of car, and the car's load on the train's manifest.
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 or not for a given type of car.
Car LocationNow set the car's location on the layout. If the car is off the layout, set the location to none (blank space).
Car LoadsYou can optionally set the load state of the car. Select E for empty or L for loaded. You can also create your own custom car loads, but there are restrictions. Normally spurs with Schedules are used to load or unload cars with custom loads that you've created. You can also use staging tracks to load or unload your car with custom loads. It is also suggested that you use a format similar to L(commodity) to describe your loads. For example a load of tools could be entered as "L(Tools)" or just "Tools" if desired.
Kernel, or Group of CarsIf wish this car to be part of a kernel which is a group of cars that you want to switch as one unit, press "Edit" across from "Kernel" and enter a kernel name. Then select the kernel from the menu box. The first car you assign to the kernel becomes the lead car. The program when searching for a track to set out the kernel will only use the lead car's attributes when determining if the track can accept the kernel. However, the program does use the entire length of the kernel to determine if the group of cars will fit on the destination track.
Optional FieldsFinally you can optionally enter the color, build date, owner and comment for this car. The build date can be entered as a four digit year, or in the format of month-year.
SavePress "Save" to store the car's settings. The program will create a file (OperationsCarRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your cars is also created each time the "Save" button is pressed.
Edit Car AttributesTo the right of each of the car attributes (Road, Type, Length, Color, Kernel, Load, Owner) is an "Edit" button. Use this to add, delete, or replace the available attributes for a car.
Add ButtonTo add a new car attribute, enter the desired text in the text box and press the "Add" button. When you first enter a new car attribute it will show up at the start of the list. Later when your restart the program it will be sorted in the correct order.
Delete ButtonTo delete a car attribute, select the attribute you want to delete in the menu box and press the "Delete" button.
Replace ButtonIf you need to change a specific car attribute (road, type, color, etc) in your entire car roster, you can use the "Replace" button found at the bottom right of the edit car attribute window. For example, if you wish to change the car road name attribute "UP" to "UPS" for all of your cars. Press the "Edit" button for any of your cars in the Cars window, and then press the "Edit" button across from Road in the "Car Edit" window. Enter the new road "UPS" in the text box, select "UP" in the menu box, and press "Replace". All cars with "UP" as their road will now have "UPS" as their road name.
Edit Car LoadsTo edit a car's load, press the Load "Edit" button in the Edit Car window.
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, pick up and set out messages. A load type of "Load" means the program will consider the car as being loaded and the maximum car weight is used when calculating the train's total weight. A load type of "Empty" tells the program that the car is empty as to only use 1/3 of the car's maximum weight when calculating the train's total weight. If you use the Loads and Empties option when printing your manifest, you will want to use the correct load type so that the program prints out the correct number of load and empties in the train.
The default load priority is low and you can change the priority to high for a given car type and load. High priority car loads are normally serviced before low priority. Useful if you need to get your reefer loaded with fruit to the market ASAP!
You can also provide optional messages for your operators based on the type of car and load. The messages can be useful if you have visible car loads that need to be added or removed by your operators.
Set CarAfter creating a car, you can set the car's location, and optionally the car's destination and train by using the "Set" button found for each car in the Cars window. Normally the car's destination and assigned train are generated by the program, but you can use these 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 and train for the car, then press the "Save" button.
In the upper right hand corner of the set car window is a checkbox labeled "Location Unknown". Selecting the location unknown checkbox does several things. First the program will ignore the car when building new trains. Second, on manifests and switch lists, the program will list all of the misplaced cars. Now your operators can help you find cars that have been misplaced. And finally, when this checkbox is selected, the other fields in the set car window are disabled.
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.
Use the "Location" set of field to place the car on the layout. Use the "Auto" checkbox to show valid tracks for a given location. You can also optionally enter the location and track that you want the car to return to when the car's load status becomes empty. Note that manually changing the load status to empty 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 become active.
You can also change the car's load, or create new ones by using the "Edit" button.
The next three set of fields are normally set by the program when building trains. We'll explain how they work in case you're interested in how the program works or if you want to manually override the program. The first is the "Destination" set of pull down menus. By default the destination fields are disabled. Under "Tools" there's an option to enable the destination fields.
The "Destination" is the next location that the car will be delivered to. The destination must be reachable by only one train from the car's current location or the car will not be serviced. Normally we recommend that you don't use the "Destination" pull down menus to forward a car to a location, but use the "Final Destination" as described below. However, if you're manually adding a car to a built train, you must set the car's destination and track.
The next field is the "Final Destination" set of pull down boxes. You can select any destination or track, the program will figure out the best route to ship the car to this destination. The "route" can consist of several trains, interchanges, and yards. When a car is delivered to a spur with a schedule, and the schedule has a shipping destination that requires more than one train, the program uses this set of fields to ship the car. If the track that the final destination specifies happens to be full, the program will search for a yard to place the car. When the track becomes available, the program will move the car from the yard to the track specified.
The last field is the train assignment. If you want to specify a car's destination or train, you can set them before or after build your trains.
When manually setting a destination, you don't have to specify a track. And when manually setting a destination that is staging, you shouldn't select a destination track, let the program do that for you unless you are adding a car to an already built train.
Set CarsIf you want to change the location, destinations, status, 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 and then select "Set Cars". The first car selected becomes the default, and if you press the "Change" button, all of the other selected cars will have the same settings as the default car. Be sure to press "Save" in the Cars window if you want to keep your changes.
ToolsThe cars "Tools" menu allows you to perform some useful functions to your car roster. In addition to "Import from file" feature described earlier, you can also export your cars to a comma separated value file. The "Export to file" function creates a file named "ExportOperationsCarRoster.csv" in the JMRI->operations directory. You can remove all of the cars in your roster using the "Delete all cars" option.
The "Reset move count all cars" will zero out all of the cars move counts. In normal use you should never reset the car move counts. The program uses the move counts to determine which cars have difficulty finding valid destination tracks. Cars with low move counts eventually get higher priority over cars with larger move counts. By servicing the lower move count cars first, the difficult car moves eventually get made by the program. Reseting car moves foils this algorithm. The only valid time for reseting the move counts is when you add new cars to your roster and you don't want your new cars to have priority over your old cars. However in most cases, folks do want to see the new cars riding the first train out of town, so don't reset the car moves if you want to put your new additions immediately to work!You can also preview and print your car roster. The preview and print features use the same "Sort by" radio buttons as the cars window. One of the more useful sorts is by "Location", this allows you to quickly verify your car locations before or after an operations session.
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.
LocomotivesThe locomotives window allows you to edit your locomotive roster. You can enter a locomotive's number, road, model, type, and length. You can optionally add the locomotive's build date and owner. If you want a group of locomotives to be assigned as a unit, you can create a "consist". The locomotive type is used by the program to determine where locomotives are picked up and or stored at the various locations on your layout. Some of default locomotive types are electric, diesel, gas turbine, and steam.
Import LocomotivesIf you already have a list of locomotives in your JMRI roster or in a database, you can import the locomotives into the program. To get your locomotives from your JMRI roster, select "Import from JMRI roster" from the Tools->Operations->Locomotives->Tools menu. Only locomotives that don't exist will be added to the programs locomotive roster. This way you can use this tool any time you add locomotives to your JMRI locomotive roster. The JMRI locomotive roster doesn't have the length field, so a default length is entered for you. You should correct the locomotive length if you want the program to correctly calculate your train lengths.
Import Locomotives from a FileThe import from file function requires an ACSII text file, with one line for each locomotive. The locomotive import requires four attributes and order is locomotive number, road name, model, and length. All four attributes are required for the import to work correctly. The following shows two examples of the correct format:
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:
236 UP RS4 40 AT 1930 Home Town USA - Engine Terminal
5578 SP SW1200 42 DB 1934 York - York Engine Yard
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 deliminters.
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
You need to be very careful with spaces when importing a comma delimitated file. The program will include 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 Tools->Operations->Locomotives menu. Select "Tools->Roster->Import. Note that the program will only add locomotives that don't exist in the program's locomotive roster. It 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.
Adding Locomotives to your RosterTo manually add a locomotive to your roster, press the "Add" button located at the bottom of the "Locomotives" window. Then select the road for the locomotive. If the desired road doesn't exist, press the "Edit" button across from the road select menu box. This will allow you to add a new road or delete any that you don't need. Now enter the locomotive's number, model, type, length and horsepower. The locomotive's horsepower, the train's weight, and track grade is used by the program to calculate how many locomotives are required when using the "Auto" feature when building trains.
Now set the locomotive's location on the layout. If the locomotive is off the layout, set the location to none (blank space). If wish this locomotive to be part of a consist, press "Edit" across from "Consist" and enter a consist name. Then select the consist name from the menu box. Finally you can optionally enter the build date, owner and comment for this locomotive.
Locomotive ModelsThe program allows you organize your locomotives by model. Each model can only have one locomotive type, length, weight and horsepower rating associated with it. For example, if you assign the model name "RS11" to a set of locomotives, when you change the length of one of the "RS11"s, the length will also change for the others.
SavePress "Save" to store the locomotive's settings. The program will create a file (OperationsEngineRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your locomotives is also created each time the "Save" button is pressed.
Set LocomotiveAfter creating a locomotive, you can set the locomotive's location, and optionally the locomotive's destination and train. Normally the locomotive's destination and assigned train are generated by the program, but you can use these fields to force a locomotive to a specific location using a specified train.
Synchronize with NCE ConsistsIf you are using NCE as your DCC command station, you can have the program synchronize your consist numbers with your locomotives. The program will read all of the consists out of the NCE system and then will search for matching locomotives in your operations roster. The program will assign the consist name nce_xxx where xxx is the consist number. To synchronize your consists, select "Synchronize with NCE Consists" under the "Tools" menu.
RoutesA route is a list of locations that a train will visit. Later you can decide if the train stops at a location for work. Routes can be point to point or out and back. To build a route, select "Tools->Operations->Routes". The Routes window also provides route status, for example, "Orphan" means the route hasn't been assigned to a train.
Then press the "Add" button located at the bottom of the window.
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". Now build your route by selecting the next location the train will visit, select 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.
Edit RouteEach 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. A car move can be a car pick up or car set out at that location. For example, 5 moves can be 5 pick ups, or 5 set outs, or any combination of 5 pick ups or set outs. Picking up or dropping off a group of cars or a kernel represents one move. To modify the number of moves for a location, click directly on the cell in the route table. When entering the desired number of car moves, enter reasonable numbers that reflect what you want the program to do for you. For example, if you want your train to depart with 15 cars, then 15 is the correct value for your moves at the start of the route. At the end of the route, if you want 12 cars in the train when it terminates, then 12 is the right value for the move count for the last location in your train's route.
If you want to delay the departure of the train from a location or increase the train's travel time, enter the number of minutes desired in the "Wait" 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.
You can also adjust the maximum train length using (feet or meters) that can depart each location. The grade is optional and is used to determine how many locomotives the train will require for that segment.
The X and Y are the coordinates on your dispatcher's panel for the optional train icon. You can set the coordinates here, use the Set Train Icon Coordinates tool, or use the "SetX&Y" train icon popup 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 on the train manifests. Press the "Add" button under the table heading "Comment" to add a comment to a location.
Save RoutePress "Save Route" to save your route. The program will create a file (OperationsRouteRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your routes is also created each time the "Save Route" button is pressed.
Copy RouteIn the Route window select "Tools->Copy Route" to make a copy of your route. Enter the name of the new route and select the route that you want to copy. If you want the route reversed check the "Invert" box.
Passenger Train RouteNormally passenger trains run on a schedule based on departure times. If you want your manifests to show the departure times for your train, create a route in which you specify the departure time at each location. In the lower right hand corner of the "Edit Route" window, select "Departure Time" in the Display box. Now select the departure time for each location in the train's route. The manifest statement "No work at xxx" isn't appropriate for a passenger train. To eliminate this statement, simply add a comment to each location in the train's route. Use the Edit Route window, and for each location, you can add a comment or edit an existing one.
Route FeaturesOne very powerful feature of routes is the ability to specify the same location more than once. When the same location name is used back to back, the train's manifest will print as though the train only arrived and departed once. Note that names "Danville", "Danville-1", and "Danville-2" are all the same with regards to the manifest and switch list printouts, but the program deals with them as though they were different locations.
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 3 set outs only. In the second "Danville" we can specify 7 pick ups 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" 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 it's 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.
Set Train Icon CoordinatesUse this tool to set the default X and Y coordinates of your train icons for each location. The tool allows you to specify the icon coordinates based on the train's direction. You can also update all of your existing routes and locations with these new coordinates. As an alternative, you can use a route's "Tools->Set Train Icon Coordinates for this Route" to create coordinates unique to a specific route.
TrainsNow that we've created our routes we need trains to move cars! Create a train by selecting "Tools->Operations->Trains" from the top level menu.
The "Trains" window shows all of your trains. For each train, the there's a checkbox to select which trains to build, print, and terminate using the buttons on the bottom of the page. You can also modify an existing train using the "Edit" button. For each train there's also an action button. You can select one of four actions for your train. 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 been moved.
There are several checkboxes along the bottom of the Trains window. The "Show All" when selects shows all trains in your roster. When deselected, only trains that have the "Build" checkbox selected are shown. 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 report detailing how the train was built by the program. Use the "Print" or "Preview" button for a built train to see the build report. The program always provides a "Report" button under the "Action" column for a train that fails to build.
The "Preview" checkbox when selected, allows you to preview rather than printing your train's manifest or build report.
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.
Press the "Add" button to create a train.
Enter the train's name and optional description, and then press the "Add Train" button. Both will show up on the train's manifest. The train's name will also show up on the train icon, so short names work best. Then 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. 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.
Train Departure TimeSelect the time that this train will depart the first location in its route. You can use the departure time to sort your trains in the order that you want them built when using the Build Selected Trains button. Note that if the train's route has a departure time for the first location, the route's departure time is used and the train departure time selection is disabled.
Train Rolling StockYou can determine what type of cars and locomotives the train will service. Select the rolling stock the train will carry by clicking on the appropriate checkboxes. A checked box means the train will service this type of rolling stock.
Optional Train RequirementsYou can control the number of locomotives that will be assigned to this train, and optionally, the locomotive's model and road name. If you don't want the program assigning locomotives to your train, select 0 as the number of locos required. If you want two or more locomotives assigned to a train, the locomotives must be part of a consist. If you select "Auto", the program will calculate the number of locomotives required for this train based on the weight of the train, the track grade, and the horsepower of the locomotives.
You can also require a caboose or car with FRED (Flashing Rear End Device) as the last car in the train, and you can optionally specify the road name for the caboose or car with FRED. If you leave the road name blank, the program will try and find a caboose with the same road name as the locomotive.
Reset TrainThe "Reset Train" button allows you to remove locomotives and cars that have been assigned to a train. Useful when you want to try various build options and don't what to physically move locomotives and cars on the railroad.
Save TrainPress "Save Train" to save your train. The program will create a file (OperationsTrainRoster.xml) in your JMRI directory in a folder called "operations". A backup file with the last settings for all of your trains is also created each time the "Save Train" button is pressed.
Train Build OptionsIn the edit train window menu under "Tools->Train Build Options" are additional options for building a train. You can control which car roads, load, owners, and built dates the train will service.
You can also specify a locomotive change in route or add helper locomotives.
Use normal mode when building this trainYou can request that the program use normal mode when building the train. This is useful when a train departs staging. In normal mode, all of the cars in staging are set out first, where in aggressive mode, the cars in staging are set out last. Selecting this option when you have build failures out of staging, it could fix the failure.
Send all car pick ups to terminalYou can also request that all car pick ups are sent to the last location in your route (terminal). Useful if you don't want your cars picked up and set out at various locations in your train's route.
Allow cars to return to staging if neededWhen a train departs and returns to the same staging location, it is regarded as a turn by the program. A turn normally takes cars from staging, sets them out on the layout, picks up new cars and returns to staging with those cars. Normally the program doesn't allow the same cars to depart and return to staging. However, it may be desirable to allow the train carry the cars rather than having the program report that cars in staging couldn't be delivered to destinations on the layout. Selecting this option allows a turn to transport cars to and from the same staging location. Note that when this options is selected, that the program will only return cars to staging when destinations are not available on the layout. You can also set this option for all turns, see Options.
Allow local moves when a car has a custom loadThe program when generating car movement normally doesn't create local moves. A local move is a pick up and then a set out of a car at the same location. When you use custom loads, the program can create local moves based on the car's custom load. So if you had a car sitting on a track with a custom load, and you also had a spur with a schedule at the same location requesting that load, the train's manifest could show the pull and spot as a local move. The same goes for a car with a final destination that's at the car's current location. So if you don't want your train to perform local moves when a car has a custom load or a local final destination, deselect this option.
Allow cars to travel from origin to terminalNormally the program allows cars to travel from the train's departure location (origin) to its last location (terminal). Deselect this option if you don't want the train to carry cars from the train's origin to the terminal.
Train Road NamesYou can control the road names that the train will service. Select under the "Edit Train->Tools" menu the "Train Build Options". This will bring up a new window with several options.
If the train will service any road name, select the "Accept all" radio button. If you want to accept only some road names, select "Accept only" radio button. Then use the menu of road names and "Add Road" button to make a list of road names that the train will service. To remove a road name from your list, select the road name from the menu and use the "Delete Road" button.
To build a list of road names that the train will not service, select the "Exclude" radio button. Use the menu of road names and the "Add Road" button to build a list of roads that this train will not service.
Press the "Save Train" button to update the train build options and close the window when your done.
Train Car LoadsYou can decide which car loads the train will service. 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.
Train OwnersYou can decide which rolling stock the train will service by owner name. The control is similar to Train Road Names, see above.
Train Built DatesYou can control which rolling stock the train will service by their built date. If you want only locomotives and cars built after a certain year, select the "After" radio button and enter a four digit year in the text box. If you only want locomotives and cars built before a certain year, select the "Before" radio button and enter a four digit year in the text box. And if you want to specify a period, select the "Range" radio button and enter the after and before years you want the train to service.
Optional Train RequirementsYou can have up to two locomotive changes while the train is in route. Select "Locomotive change" where you want the change to happen in your route, and how many new locomotives should be assigned to the train. You can optionally select the new locomotives model and road. At the locomotive change location, the previously assigned locomotives will be removed from the train.
The program 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.
Train Manifest OptionsYou can optionally have a unique railroad name and logo for each train in your roster. You can also decide if your manifests show the train's arrival and departure times. Use the "Edit Train->Tools->Manifest Options" to set these options.
ScriptsIf you want to run a script when a train is built, moves or terminates, select under the "Edit Train->Tools->Scripts". This will bring up a new window with several script options.
Included in the jython directory are several examples of operation oriented scripts.
Show Car Types Serviced
This diagnostic tool can help you determine why a train will not service a particular car type. You can select a car type and see how the train will service that car type. You can also select a specific car to see how that car would be serviced.
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" or "Set out" then the train can only pick up or set out cars to this 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.
|OK||Selected car type can be picked up and set out|
|Pick up||Selected car type can only be picked up from this track|
|Set out||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 (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 (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 (Schedule Timetable)||The spur's schedule timetable 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.|
Modify Trains by Car TypeThis tool can be found under Trains->Tools. Use this tool to quickly modify the type of cars your trains will service. Very useful when adding a new car type to your roster.
First select the car type you wish to modify. 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, first select the car your would like to copy, then select the "copy" checkbox, the car type will now appear to the right of the checkbox, then select the type of car you want to modify, and press "Save" to have both car types serviced by the same trains.
Switcher ServiceMany operators assign a locomotive to a location to do the local switching. Using the location's switch list allows the person assigned to the location to service all trains that stop at that location. However, there can be locations that don't get enough work servicing through or local trains and it would be nice to create some additional work for the operator assigned to that location. To create a "switcher" job, create a route with one location, the location that the switcher will service, and assign that route to a train. The "train" now becomes a switcher that will only service that location. Adjust the "Move" count in the route to control how many cars the switcher will service.
Some operators like to produce a train manifest that only shows set outs or pick ups from a yard or interchange, and then have a switch list that shows moves between the yard and spurs. To eliminate tracks from showing up on a train's manifest, deselect all of the direction boxes for that track. Only a "switcher" will service a track that doesn't have any direction boxes selected.
Switcher RestrictionsThe program when generating a manifest for a switcher (a train with a single location in its route) will by default never move a car from a spur to a spur or yard to a yard, only yard to spur or spur to yard. This rule also applies to interchanges. This restriction helps prevent unrealistic car movements between spurs (industries). However, if you want a spur to spur move, use a Schedule to force the car move. You can also disable this restriction see Options.
Building TrainsTo build one train, press the "Build" button in the row for the desired train in the Trains window. The button will become "Print" or "Preview" after the train is built. If you want to review how the train was built, select the "Build Reports" checkbox before pressing the "Print" or "Preview" button for the desired train. If the "Preview" checkbox is selected, the program will generate the build report and manifest and present them in preview windows. If you want to build several trains without having to press individual buttons for each train, select the trains that you want built and press the "Build" button found at the bottom of the trains window. The program will then build manifests for all of the selected trains.
If a train fails to build, the "Move" 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 also control which trains are shown in the Trains window. When the "Show All" checkbox is unselected, only trains that have the "Build" checkbox selected are shown.
TimetableThe Timetable tool allows you to define which trains will run on any given day, and can be found under the Trains->Tools. For each day of the week, select which trains you want to build. Then select which day you want by selecting the appropriate radio button. Then press the "Apply" button to update the Trains build checkboxes. Use the "Save" button to store any changes you made to the timetable.
Problems Building Trains How to FixIf you want to examine how a train was built, you can select the "Build Reports" checkbox at the bottom of the train window, and then press the "Print" or "Preview" button for that train. The program will then provide the train manifest and build report for your viewing.
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.
Reading the Build ReportThe program when building a train creates a build report and saves it to disk. Normally you would access the build report from the Trains window or from the edit train Tools menu. The text files can be found in the JMRI->operations->buildstatus directory. The build report shows the steps the operations program goes through while building a train. The first page provides the route the train will travel and the number of car moves requested for each location. The report then shows the car type and locomotive types that the train will service. By reading the various comments in the report you can get an idea of steps the operations program goes through to build a train. When there's an issue that the operation's build can't resolve, the build will fail. To understand why a build failed, go to the last page of the build report and by working backwards from the last line, you should be able to understand why a train failed to build.
More Build Report DetailsFor those who want to understand how the program builds trains here's the details. If the train requires a locomotive or several locomotives, the program will look for locomotives at the start of the route and then determines if the termination location will accept them. Note that if two or more locomotives are required for the train that the locomotives must be in a consist. The program assigns to the rolling stock (locomotives and cars) the number of moves that they experience during each session. The move count is bumped up each time the rolling stock is set out to a new location's track, or if the rolling stock was assigned to a train and the train was reset. The program sorts the rolling stock by the move count, and then tries to assign locomotives and cars with the least number of moves to the train. When building a train only rolling stock at locations that are part of the train's route are used. 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 high priority loads before low priority loads.
The next step 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.
In aggressive mode , the program when figuring out destinations for cars, will do two passes when determining where to place cars. The first pass does 50% of the available moves for each location, and the second pass does the remainder. By doing two passes, the program can "free" up some spurs that already have cars there, thus increasing the number of cars that the train can service. Once a car has been given a destination in aggressive mode, the car's current track space is available for other trains to use.
If a car has a final destination that was set by a schedule, the program will try and move the car to that destination, or if not possible, it will try and move the car closer to that final 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 five trains to get the 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.
Printing ManifestsAfter building a train, the "Build" button will become "Print" or "Preview" depending on the state of the checkbox called "Preview" located in the lower part of the Trains window. Pressing the "Print" button will print the manifest for that train. Pressing the "Preview" button will produce a window in which you can review the manifest. If you want to print manifests for several trains, select the trains you want in the build column and then press the "Print" or "Preview" button found at the bottom of the trains window. The program will then print or preview manifests for all of the selected trains. You can modify the look of your manifests from the Manifest Print Options 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.
Switch ListsA switch list shows the work required to service all of the trains visiting that location. Normally a switch list is given to the person in charge of a yard or a location with many spurs or industries. You can modify the look of your switch lists from the Manifest Print Options window.
Press the "Switch List" 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 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 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.
Switch List OptionsThere are three options for adjusting the switch lists to your liking. The first checkbox option when selected tells the program to print all trains that visit a location, even if the train doesn't have any work. If you deselect this option, then the program only prints out trains that have work at that location.
The next option when selected causes the program to print a train's switch list on a new page for each train. This way your operators 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 operator working a location, this way they can easily hand out the work by train.
The last option is whether you want your switch lists in real time or consolidation mode. Normally you would generate your switch lists in real time. In this mode the switch list for a location shows the work planned for trains that are built and not yet terminated.
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 the 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 operators. 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:
- Press the "Switch List" button found at the bottom the "Trains" window.
- Select which locations you want switch lists for in the "Switch Lists by Location" window.
- Deselect the "Real Time" checkbox and press "Save".
- Now build the trains you want consolidated switch lists for.
- Press the "Switch Lists" button again if you've closed the Switch List window.
- Then press the "Preview Switch Lists" or "Update Switch Lists" button.
- Now print out your train manifests and terminate the trains you want terminated.
- Continue building, updating switch lists, and terminating trains until your happy with the amount of work generated.
- Finally, print out your switch lists.
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.
Moving TrainsAfter providing your operators with a printed manifest or location switch list, you must keep the program database synchronized with the actual movement of trains on your layout. This is done by the train "Move" buttons located on the right side of the Trains window. Pressing the "Move" button will cause the train to depart its current location move to the next location in the route. The locomotives and cars assigned to the train will travel to the next location on the railroad. At each location, cars can be picked up or set out. You can also move a train by selecting the train's icon and selecting "Move" from the icon's popup menu. Each press of the "Move" button moves the train closer to its terminal location. When the train arrives at the last location in the route, the last press of the "Move" button will terminate the train. Once a train is terminated, you can build it again.
Each time a locomotive or car is moved a count associated with them is incremented. The program uses this to determine which cars haven't moved recently and tries to select cars with the least number of moves when building new trains. Each time a location has a car set out, the program increments a count associated with that location. The program tries to move cars to locations that have experienced the least number of car operations.
Terminate TrainWhen you terminate a train, you are asking the program to move the train from its current location to its final destination. The cars and locomotives associated with the train will be picked up and delivered to the locations shown in the train manifest. After terminating a train the locomotives and cars associated with that train become available for other trains. Therefore you should terminate a train only after it actually arrives at the final destination in the train's route. To terminate several trains, select the trains you wish to terminate in the build column and press the "Terminate" button at the bottom of the Trains window.
Save BuildsPressing the "Save Builds" button causes the program to update the train, car, locomotive, and location xml files. Any time you "Move" a train the operations program will make changes to the train, car, locomotive, and location databases. The data must be saved before you shut down JMRI, otherwise you will lose all of the changes that the operations program made to move a train to the next location. Pressing the "Save Builds" button before quitting JMRI allows the operations program to resume exactly at the point where you pressed the "Save Builds" button.
Building Multiple Trains for a SessionMost operating sessions require more than one train to keep your operators busy. The correct way to do this is to build and print all of the trains needed before terminating them. So if you need a dozen trains for a session, you must build twelve trains before you terminate any one train. Terminating a train tells the program that the locomotives and cars in that particular train have been delivered to their final locations and can be used again when building new trains. So always build all, print all, THEN terminate each train after completing its run! It is okay to build all trains, print all trains, and then use the "Save Builds" button and shut down the program. Later you can restart the program and terminate the trains that completed their runs.
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.
Operation WindowsAll of the operation windows can be resized and placed to your liking. When you close the window, the size and window location on your screen is saved.
The program also allows you to resize the Cars, Locomotives, Trains and Timetable table column widths. Adjust the column widths to your liking and then press the window's "Save" or "Save Builds" to save your preferences.
The end of operations help.