Пример прилагаю.
Пример прилагаю.
Визуально, в отладчике
Вложение 54685
Тайм-аут пробовал как 10 мс, так и дефолтные 1000 мс, не влияет. Так же как время между фреймами.
Слэйвы пробовал разных производителей (Овен, Шнейдер, Мицубиси) не влияет.
Каждый слэйв физически отдельный прибор. Пробовал разные приборы на разных портах, не влияет.
Повторюсь, в циклическом режиме не было ни одной ошибки по обоим портам. Полтора десятка слейвов в сумме. Когда понадобилось некоторые чтения/записи делать по условию попробовал перейти на обмен по "переднему фронту". Сначала пробно первый порт, три слэйва, без проблем. Потом второй порт, больше 10 слейвов - появились ошибки на первом порту. В тестовых целях уменьшал количество слейвов, в процентном значении ошибок становилось меньше и совсем пропадают при трех приборах суммарно. Предполагаю проблема в производительности RT ядра СПК.
Мы изучим эту ситуацию, спасибо.
Провели эксперимент с вашим проектом - за 1000 транзакций ни одной ошибки.
В нашем тесте время между фреймами было установлено в 20 мс, а таймаут - в 500.
Вложение 54691
СПАСИБО! Да, установка фреймов в 20 мс помогла. Хотя это и в некотором роде профанация. Фрейм, он же "интервал тишины" должен составлять не менее 3,5 символов. При скорости 38400 как у меня это 91 мкс.
Установив фреймы в 20 мс я теряю треть скорости обмена. Ок, субъективно пользователю не заметно, пусть будет так.
P.S. Только сейчас понял, у СПК нет такого параметра, как "количество повторов". У всех он по умолчанию равен трем и не помню чтобы я когда-то его уменьшал. Возможно в этом причина - у вас делается только одна попытка связи и из-за этого видно ошибки связи?