Ok, a few things: No external power supply is needed and I think your problem is in software.
Your scale block is taking an integer, and scaling it as Min 0 and Max 10. But if you look in the documentation on the analog output module, it accepts a range of 0 to 32760 (or 0 to 16380) to give a voltage of 0 to 10 volts. Scaling the value from 0 to 10 would yield an output of approximately zero. In mikes code, the integer N7:1 (which is scaled from the input) can be used as the output word. As said in previous posts with a Move command.
I would recommend testing configuration/hardware setup to confirm all problems are in software. One easy way to do this is to open the Output Data file, change the radix to decimal and click the number next to O:1.0. Enter 32760 in that address. Put any simple program into the PLC and go online. As long as the program isn’t changing that address, it should keep writing that value to the output and thus give a voltage. Manually changing that number should change the voltage.
That should confirm everything is working correctly. As for the PID block, it seems you can scale the input as you are doing and you should do that first in a rung above the PID block. Then use that Integer as your process variable and then your control variable will be a different integer. That integer should be able to be moved to the output address with no scaling because it should be in the right format. But if you had to scale it do so from 0 to 32760 or 16380 based on your configurations. If the manual method of inserting values worked, then moving that control value into the output address should also work to give you a voltage.
I have never done this or tested it so these things are confident assumptions. If anyone sees things inaccuracies in anything I have said, please point it out.
JK