OBD-II Code P0128 is defined as a Engine temperature has not increased and/or reached the correct level within a specified amount of time after engine startup
The purpose of code P0128 is to track the amount of time the engine requires to reach and maintain the correct operating temperature. This enables the fuel system to operate in a "closed loop" condition, where the Fuel Control or Air Fuel Ratio is being actively influenced by the two or more Oxygen Sensors located in the Exhaust System.
Generally, most Powertrain Management Systems require that the Engine Coolant Temperature Sensor rise above a reading of 160–170º F within fifteen minutes after engine startup. Additionally, the engine temperature must not drop below the 160–170º F threshold during vehicle operation. If the engine temperature, as measured by the Coolant Temperature Sensor, fail either of these operational criteria, the Powertrain Control Module (PCM) will record this event. If either of these fault conditions are repeated during the next engine startup, code P0128 will set and the Check Engine Light or MIL will illuminate.
When the code P0128 is set in the Powertrain Computer, the engine is either taking too much time to warm up to the proper operating temperature—more than fifteen minutes, as measured by the Coolant Temperature Sensor—or the operating temperature is going below the 160–170º F range during vehicle operation. This causes the Fuel System to go back into a warmup mode, which is a much richer mixture. This raises the level of CO and HCs being released out of the tailpipe. It also increases fuel consumption.
Here's how to diagnose the P0128 code:
When doing the P0128 diagnosis, be sure to verify that either the electric or mechanical cooling fan is not stuck in the "On" position because this will cause the engine to run at a very reduced operating temperature. Also, be sure to verify that the Intake Air Temperature Sensor readings are within reason, meaning that they are not too hot or too cold in relation to the outside air temperature and under-hood air temperature. A good rule of thumb is that the Intake Air Temperature reading is usually about 100º F below the Coolant Temperature readings after warmup. When cold starting the vehicle, the readings should begin at nearly identical values.