Simple Youtube Video: https://www.youtube.com/watch?v=WPFZeM7ijco
4 Arithmetic Combinators, effectively implementing "-2000 + (X Modulo 2000)", and then manipulating those values to determine when a train is likely close to being full. Modulo 2000 works for any stack of 50, 100, or 200 (which is the vast majority of items in the game). If you're going to be loading barrels however, you will want to use "Modulo 400" (which would detect whenever the trains are almost loaded to a value divisible by 400). I'd expect a more significant slowdown however in that case. Two Decider Combinators were needed to "standardize" the Train-contents to "Signal 0" (That is, Input = "Each", and Output="Signal0"), so that this would work on any train (as long as the cargo-waagon filters of each train were set)
X Modulo 2000 is implemented as "((X+2000) / 2000) * -2000", and the addition is implemented by using red and green wires at the same time.
The youtube video is a demonstration of this Iron/Copper design in creative mode. I hope its self-explanatory, but I'm willing to take questions if anyone is confused about the design.
Blueprint