The other day I caught a scene of a science-fiction film made in the 1950s. It took place in a factory of the future, with a control room lined with a wall of large, dedicated, single-function switches clearly labeled "furnace on", "main conveyor" and so on, just as real factories were designed and built in the days when that movie was made. A mechanical switch directly controlled a circuit loop which provided power to a corresponding actuator, and the reality would be lots of switches, wires, and control loops.
Zip ahead to the 21st century and control panels didn’t quite turn out that way. Even if there is a labeled switch, it most likely is not directly wired into or part of the control loop. Instead, it is sensed by an I/O port on the system controller, a switch press is detected and assessed via software (some debounce is needed here, most likely) and actions are taken based on the control program. Taking it one step further, in many designs, the switch function is actually "soft", and will change depending on what is going on and what a display screen label says that switch is for, at that time.
If there are a lot of switches, they may be on some sort of internal, low-end network or matrix rather than having one input pin dedicated to each switch-closure contact. It's not just factory control rooms, either: today's car's no longer have direct loops between functions such as window controls and the window motor; instead, the switch is sensed by a LAN, interpreted by a MCU, and desired actions are sent out by the MCU via the same LAN.
This makes sense, since it saves wiring (cost, weight, space) and provides design flexibility in locating switches (and re-locating them if design needs change). Even hobbies such as model railroading have gone "network", via the widely adopted digital command control (DCC) standard.
These changes haven't stopped at sensing via I/O lines or networks, either, as the rise of now-ubiquitous touch screen and GUI have given us non-switch-based controls. The screen shows us images or buttons, and we touch it in the appropriate place. It's very efficient in terms of switches (none needed), I/O sensing (none needed), and flexibility (lots).
But there's a downside to the indisputable efficiency of the soft key and touch screen approaches: it's a much longer path, functionally, from initiation to final action. Perhaps we feel more removed from the consequences of our actions and how they are implemented; that's a psychological aspect which is hard to assess.
Beyond psychology, though, there's more that has to go right and more than can go wrong with these newer approaches, of course. Further, it's hard to really know what is going on and troubleshoot it, if needed (and it will be).
In those ancient days, if something didn’t work, you could take a basic meter and check out the switch itself, then the loop, the power supply, and the actuator, end of story. It was all basic power and continuity testing, and fairly straightforward. Even better, if something failed, you could either fix it or rig a temporary bypass using another switch, or loop circuit. With today's completely flexible, touch-screen based systems, it's—as the song goes—all or nothing at all.
I know we're not going back, nor should we: the wiring virtues of the I/O-port or network-based switch, and flexibility of the touch-screen user interface are simply overwhelming for most products, both at the BOM level and system-design level. But along with virtue comes shortcomings, and we should keep those in mind, as well. I think I'll stick with that big, red, mushroom-topped "kill" switch for critical situations.
Where do you think we should retain hardwired, direct-control mechanical switches and controls? ?