It sounds like you would recommend adding the tracking capability by tracking using the two registers. If this would be just as effective, I would prefer this method over having to install additional hardware.
Mike, yes, I think now to gain more through-put, and also allow all units to eventually be unloaded, your program only needs to keep up with which workstations are ready to load, and which are ready to unload. Sort those sets of numbers from high to low (I have a RSLogix sorting routines if you need one). Here is where you have a choice to make: SORT, or not? If you don't sort, the statin unload operation will be in the first-in, first-out order, and this will allow even wear on all stations. If you sort, the rate of production should be somewhat faster, but the higher-numbered stations will get more use.
Then you try to do an unload-load at the same time, if there are at least one workstation in each category. If not, then you look to see if you can do a single unload withoout load. If not, then you look to see if you can do a single load without unload. Then repeat the routine.
You know, you could actually use a FIFO instruction to keep the list of worksations ready to unload. Each time a unit was added to a workstion, the FIFO would be triggered and add a new number. Then the SORT routine would be triggered and sort the internal FIFO values from low to high, so the the FIFO Unload Destination is always the highest station waiting to unload. The advantage of this is there will be a higher probability of an empty workstation with a lower number, therefore allowing two units on the conveyor at the same time (one exiting and one entering). This method will also cause the higher workstations to have slightly higher use than the lower numbers. Eventually the FIFO will work down to the low numbers and all stations will get serviced (with some unloads and loads unavoidably being done one-at-a-time). For example, at first start-up with all workstations empty, all Loads will be done singley, but the PLC routine should cycle so fast that there will be no delays, loading first stations 24, then 23, then 22, and so on until all are working.
You will have to handle the problem of the Left and Right or Odd and Even numbered workstations on the same transfer units. For example, if Station 24 is ready to Unload, and Station 23 is ready to Load, you would not want that to happen at the same time. So you may need to set up your "Station to be Unloaded Next" so that it increments to the next number if the next empty station happens to be on the same transfer unit as the "Station to be Unloaded Next". Again, those numbers can also be inserted into a second FIFO (and sorted low to high), so that the next number can easily be moved to "Station to be Loaded Next" by triggering the FFU.