если есть возможность - возьмите в ОВЕН оборудование на тестирование, они дают под гарантийное письмо, чтобы помучать железку в офисе, а не страдать в цеху

с зоопарком на одном порту проблем может быть две
1. из-за невнимательности косячишь с адресацией регистров по слейвам и частный случай этого - в какие-то моменты требуется учитывать чётность регистров для "сложных" переменных и делать вручную сдвижку, чтобы переменная, занимающая два регистра попадала началом на "чётный" регистр. Поэтому работая с той же панелью, на слейве лучше сначала сделать поставить битовые, а потом "аналоговые"
2. разные по своей сути устройства работают в принципе с разной скоростью обмена из-за особенностей внутренней организации - тот же аналоговый МВ отдаёт данные через буфер и 8 каналов обновляться быстрее полсекунды не будут, поэтому и задрачивать его запросами на 115к смысла нет - модуль отдаст в ответ "прошлое" значение, лежащее в буфере обмена. Это если на пальцах объяснять, погружаться в физику лень

поэтому сделайте для себя в экселе таблицу, аналог PLC конфига, в котором сходу не видно - адрес слейва, регистры на этом адресе, опрашиваемые мастером, команда, переменные
и сразу большую часть возможных проблем, связанную с неправильным обращением к адресу регистра, вы уберёте

и делайте степ бай степ, если сложное устройство. по шагу добавляете регистр, грузите, проверяете что всё работает, что получаете всё что нужно и в нужном формате, преобразовываете если нужно и идёте дальше, дальше следующий регистр. заодно и траблы какие есть сразу отловите - до этого всё работала, а теперь перестало, значит проблема в этом месте
да немного муторно, но надёжно, учитывая что вы не кодеры 80 лвл

ну и конечно всё это работает при условии, что у вас правильный код. А то может у вас в коде два тригера с одним именем идут или закольцевали логику и вы свой ПЧВ задрачиваете командами раз в секунду