Эх, не получается сделать красиво.
Скидал всё в одну программу и перебираю операции через CASE: чтение - задержка 100мс - запись - задержка 100 мс.
Теперь вечная ошибка 253, не могу избавиться.
А МВ110-16ДН всё время передает сигнал на третьем входе, независимо от реального состояния.
-----
UPD: поковырял немного (адреса терялись), теперь блоки работают, но именно что по очереди - один моргает диодом, другой устает ждать и ошибку показывает. А потом меняются ролями.
Err почти всегда 255, это вроде бы "таймаут". Может, с сетью что (длина икебаны на столе 0,5 метра), или с настройками самих блоков?
-----
UPD2: убрал проверку ошибок при связи с МУ110 (было условие "операция завершена и нет ошибок", стало просто "операция завершена"), то есть теперь контроллер просто кидается данными в сторону блока вывода. МУ110 реагирует адекватно и очень быстро - даже не успеваю разглядеть моргающий диод. Сомневаюсь, насколько это безопасно - аппарат будет стоять в цехе, рядом с движками, частотниками и прочим.
Пробовал так же изменить условия при чтении с МВ110, но в буфер писалась феерическая каша, вернул контроль ошибок на место.
Теперь аппарат работает так: МВ110 долго тупит (по таймауту), затем всё-таки читает данные и передает очередь. МУ110 получает данные, мгновенно срабатывает и передает очередь.
Настройки обоих блоков стандартные (кроме адреса), скорость 9600. Может, поднять до 19200?