1. Время цикла давайте с запасом, если у вас на выполнение тратиться 1.5-3.5 мс -> минимальное время цикла 4 мс. Разные прошивки плк очень по разному распределяют время для системных задач и задач пользователя при недостатке оного, поэтому резервируйте его. В модуле статистика есть индикатор достаточности ресурса времени - он не должен быть активен для стабильной работы.
2. Буфер для порта (резервируемый при открытии) можно и побольше, а не в притык.
3. Считывайте буфер в каждом цикле и накапливайте где-нить, собственно обработку можно и пореже проводить.