С потоками много проблем (GIL). Хотя это не мои мысли (читаю блог Светлова).
Я бы у ТС уточнил, планируется увеличение количества машин?
Да, со временем планируется, когда достроят новые цеха.
По терминологии. Если контроллеры активно шлют забросы на обработку данных то по отношению к вашей системе они клиенты а не сервера а ваш центральный комп сервер а не клиент.
Может Вы и правы, но в описании к протоколу (Open Protocol фирмы Atlas Copco) сказано обратное (смотреть рисунок). Дело в том что протокол предусматривает довольно обширные возможности для управления контроллером. Можно работать с ним в режиме спросил, получил ответ (тут чисто клиент - серверное взаимодействие), а можно установил с ним соединение (методами протокола) и подписался на оповещение в случае определённых событий (событий тоже может быть несколько). В случае когда линия сборки работает, то события происходят часто (пример: Неудачно выполнена затяжка болтового соединения или оператор просканировал вин номер на кузове автомобиля - необходимо получит этот вин номер, проанализировать его и указать контроллеру какую программу выбрать для данного типа авто). В случае когда линия стоит (перерыв или пересменка) появление событий может достигать значительного времени (20-30 минут).
Контроллер может одновременно поддерживать связь с пятью клиентами, я уже подумывал, чтобы для одних задач поставить один компьютер с программой, а для других задач (сохранение результатов в БД) другой комп.