Different types of software are needed for implementing automation. Low-level software is mostly independent of the application. It consists of software for hardware configuration, communication, human-machine interface, data acquisition, and process control. Sensors such as strain gauges produce variable resistance, which have to be converted into voltage or current by using appropriate circuits. In the early days of industrial and building automation, protocols were proprietary and vendor specific. Building automation software controls systems such as lighting, air conditioning, safety, and security. Serial communication is the most common way of exchanging data between a computer and peripheral devices. Software that is needed for implementing automation is discussed in the chapter. Two types of software are needed: low-level automation software and high-level application software.