A controller of the type used in process control includes a plurality of modular I/O units. The I/O units includes I/O circuits which may be of four basic types: digital input circuits, digital output circuit, analog input circuits and analog output circuits. Each of the I/O circuits has a code generator that generates a binary code indicating the type of I/O circuit. The controller is microprocessor-controlled and periodically communicates with the I/O circuits and determines the type of each I/O unit based upon the binary code. The I/O units may be temperature-compensated based upon the temperature within the housing of the controller, and other integrity checks may be performed on the I/O units. The controller also has a change module routine which allows the I/O units to be installed or removed during operation of the controller.