Нужно чтоб конфиг модуля хранился в ПЛК, а каждый модуль имел бы свое точное место. Тогда при замене модуля ПЛК бы сам записывал соответствующий конфиг в модуль "на лету" и продолжил работу.
Что касается одинаковых адресов. Нужно каким-то образом маркировать модули "Старый", "Новый". Если в системе появилось два модуля с одинаковым адресом, то проверить какой из них "Новый" и назначить ему временные "свободные настройки"... В общем это все теория...