I think Donnie might have given the wrong impression. There may be 60 codes but there are almost an infinite number of causes to all codes.
For example a common code involving O2 sensors will be that the sensor has read a condition where the car can not be corrected within its adaptability. This is often the cause to O2 sensor replacement. But the code actually is stating that the car is too rich or too lean conditions that can be caused by nearly every part of the fuel system and many in the ignition.
Many non-performance codes are set by specific tests conducted by the engine management controller to verify function. The secondary air system is a good example. Codes here are very common on C and E cars with 104 motors for many reasons, vacuum, electrical, performance and plain crud. The controller monitors the engine for temp and closed loop condition (basically a warm car running in fuel control). It commands the pump to operate and watches the O2 sensor to see it go dead lean within a certain time frame (quite large as when the test is done with a proper scanner the O2 sensor voltage drops below the required 40mv in about a second; when working properly.
If one were to get a secondary airflow code on one of these cars and one had the proper scanner to initiate the actual test that was failed, one would still have to determine which part is failed. Most times I have found this code it was due to vacuum leaks which kept the gate valve from openning up blocking the air pump. Some times its the fuse or relay for the pump. Knowing to go that way is found when the scanner cannot command the pump on.
I wish there were only 60 possibilities each problem; ahhh, but then it would be no fun!
Bosch Master, ASE Master, L1
33 years MB technician