4-20ma output from Arduino

If you know the resistance of the receiver at the other end then current output is the same as voltage output.You said that the system had to drive 100ohm.

so use 4ma = 0.4V, 20mA = 2V.

Use a 100ohm resistor hooked between the arduino PWM output and put a 100microfarad capacitor from the output of the resistor to ground.

Hook the output line up to one of the analog inputs of the Arduino and use the PWM output to drive the voltage up and down. You could use a control algorithm to trim the voltage.

If you want a better circuit you could even put a second resistor (make them both 50ohm) after the first and hook the second analog input after this, so that you could directly measure the current via the voltage drop across the resistor, this would also make the circuit a bit safer as the capacitor would not be able to discharge instantly if you short circuit the output wires.

The only difficulty is that you will then find yourself using 1 PWM output and 2 analog inputs per output to the PLC, so you can only have 2 PLC outputs from the Arduino.

If you need more outputs you can of course by a DAC on a chip simiar to the AD5412. These appear to be able to be daisy chained similar to shift registers so you can have unlimited 4-20mA outputs using serial outputs.