Wanhao Duplicator i3 plus temperature out of control I have a reasonably new Wanhao Duplicator i3 plus that has been printing happily for a few weeks.

This morning it has developed a new error.  When you hit pre-heat for PLA (target temperature 200&nbsp;&deg;C) it heats the extruder but never stops. It is like the extruder heater is permanently on. The set point doesn't make any difference. If you hit cooldown it still keeps heating up!  

At 240&nbsp;&deg;C I turned the machine off for fear of what happens next.

It seems only to affect the extruder heater not the bed heater. That seems to be working and following the set point.

Any ideas what this is and how to fix it?
Thermal Runaway?!
The temperature should not go over the MAXTEMP variable set in the firmware, so permanent damage is probably avoided (when temperature doesn't exceed about 250 °C; that is about the max temperature for the PTFE liners in the hotend). In the factory setup, the Wanhao Duplicator i3 is running an instance of Marlin Firmware. In the configuration.h file the MAXTEMP is defined like:
#define HEATER_0_MAXTEMP 275

for the first extruder where 275 °C is the default value, if Wanhao has changed this to a lower value (as they list their printer to print to max 240 °C) is not known.
Fixing the issue at hand
To expand on your question:

&quot;Any ideas what this is and how to fix it?&quot;

In order for you to fix the problem you need to do some troubleshooting. You need to find out if this problem persists when not using the pre-heat function of the firmware. E.g. When you do not pre-heat, but print a PLA object, does the temperature also keeps rising? Furthermore, try to hook up a computer/laptop over USB to the printer board and try pre-heating from a software application like OctoPrint, Repetier-Host, PronterFace, etc.
From the description alone, it appears as though the gain of the onboard MOSFET is opened once requested to preheat, but never closed. This could hint to a faulty MOSFET. If you are handy with software compiling for Arduino based microchips (please do note that this requires some thorough insight in compiling software for the Arduino platform), you could alter the printer configuration (not only hardware, by connecting the hotend heater and thermistor cables to the bed terminals, but also software, by switching pins in the board configuration file) to use the bed terminals to heat up the hotend (and not use the heated bed during the test, disconnect the cables of the bed), but that will most probably show that the hotend will stop at the requested temperature as the thermistor does not seem to be broken.
Simple tests that you could perform to check the functioning of the hotend/setup are:

Disconnecting the thermistor leadsThis will effectively result in a 0 Volt reading, this is to test the MINTEMP temperature limit of your setup.
Shorting the thermistor leadsThis will effectively result in a full 5 Volts signal resulting in the maximum temperature reading. This exceeds the MAXTEMP temperature by far, as such it should halt heating up the heating element once shortened. You can do this even without heating up or before it reaches 240 °C.
Disconnect the Heater cartridge orTake the heater cartridge out of the aluminium heater blockThis will effectively test the &quot;Thermal Runaway Protection&quot; (or short TRP) of your setup. If the thermistor does not register a temperature rise after a certain amount of seconds (in advanced configuration), the printer should detect there is something wrong and shut down/halt the printer. Disconnecting the heater cartridge is the safer way. Common TRP times are 120 seconds and less.