Need some thoughts on a project...

I have a board with 12 8-bit shift registers (96 outputs) that are capable of sinking 150mA each,
12 other I/0, and 2 more for serial port.
Sounds like it would do what you need hardware wise.
Software, you want to write your own?
Not sure what PLC is. I'm not a PC programmer.
I'm sure we could develop a protocol to download an array on the fly that would be used to determine the order of IO turned when a digital pin is 'triggered' (i.e. input pin with internal pullup resistor, reads as a 1, and reads as 0 when pulled to ground with an external switch).