24 VDC control using Arduino
If the input impedance of the PLC/controller is fairly high, you could get away with pullups and low-side transistors for inputs (to the PLC), and run outputs through a voltage divider.  Analog inputs would be a little more complex, but a basic op-amp should work fine for that unless you need high BW signals.

I don't know of a shield for this, but if you only need a couple you could get one of the stripboard/breadboard type shields and bang them out.