I just want to get others thoughts on what is the biggest obstacle one faces in migrating to a newer system?
For me with the few systems I have done would be is deciphering someone else's code especially with no documentation.
I'm not sure that I can rank the obstacles. But here is my list:
- feature creep. Adding things to the scope 'since-you're-changing-it-already'. From Operations, from Maintenance, and from your programming peers (or even YOU)
- keeping the system running while you change one piece at a time. Most of my upgrades have been done on 8 to 12 hour downs. Getting the old system to talk to the new system with no changes to the old system is quite a challenge
- wiring. If you replace wiring, it takes time to run it and terminate it. If you keep the old, you have to .. usually .. mess with the IO order since the wires are not long enough to reach the new IO terminals. This causes drawings changes, programming changes, and documentation changes that never seem to quite match what you have
- operators not remembering how it worked, or if it worked. People's memory is not perfect. They may truly believe that it used to do THIS .. but that's not what the code says. It does THAT, and always has. Particularly troublesome on activities that are done once a year, or less often.
- time to commission the new system and verify that alarms and safeties still work. Operations always gives it to you late and wants to start it early to work out the bugs.
- surprises. Everything you know about, you can create contingencies, alternates, backups plans. What you DON'T know about, you can't plan for. So it bites you in the A**. And the scramble is quite stressful!
- orphaned code. Parts of the HMI, the PLC code, the wiring .. that were changed. But the IO wiring is still there. No doc in the other 2 but there are wires. Or PLC code that references IO that no longer has wires. HMI code that sets and clears bits that the PLC does not reference. It takes a lot of time to clean all of this stuff properly up when you remember what was done. It's VERY time consuming to clean it up when you have to investigate drawings, code, and graphics that you have no idea if it still works, never worked, or is a pet project that is future and no one else was told about.