Things that are actual safety issues should never be handled in software that can be readily changed.
Issues of damage to the machine are not safety problems, although they are often treated like they are.
So tell me the difference between a software and a hardware jumper? If I jumper out an interlock, does it matter what the mechanism is?
And to your point does it matter if it it is an input to a PLC or a hard wired series connection?
I would argue there is a huge difference. When PLCs replaced relay logic reliability took a massive leap forward, like an order of magnitude. Arguing software vs. hardware is stupid. The difference in reliability is proven. In a PLC circuit typically every interlock involves just three parts: power source, interlock sensor, and PLC input. Every input is independent. I don’t have to sort through a half dozen series devices, never mind trying to catch things “in the act” in the relays. I can right click and create a trend chart in anything. And I can troubleshoot every input independently. And issues with loose wires and failing contacts don’t cause intermittent problems with a half dozen other devices.
Otherwise we would never have used PLCs. And to go a step further a standard high quality PLC can be used for SIL 2, and so-called safety PLCs with safety inputs and outputs (no single points if failure) achieve SIL 3. It is possible but highly impractical to build a SIL 3 system never mind SIL 2 in relay hardware.
Abs with all that being said, you can bypass your relay system for $8.99 on Amazon.
Amazon.com: Tbestmax 50 Pcs 5 Colors Alligator Clips Test Lead Set, 50cm/19 inches (5 Pack): Industrial & Scientific
www.amazon.com
Never mind tricks with cardboard, coat hangers, and string. And those safety inputs have some evil tricks that make jumpers fail.
The issue with PLCs is that it is very easy to write very poor code. It is very easy to make it almost unreadable. PLC programmers don’t typically get formal training on good programming practices and professional programmers don’t understand ladder logic. And they don’t get trained in things like Mealy-Moore logic and state transition vs. level based logic. So no training in race conditions or logic hazards. So PLC programmers often don’t understand why their code turns into race conditions, logic hazards, or why it is difficult to “reset” or crashes when an input becomes intermittent. Of all things this kind of training is only routinely taught in classes on digital logic for building digital electronics. Good code is very obvious, easy to read, and largely if not entirely race condition and logic hazard free.