Вы пробовали ставить таймаут > 77 мс? (кстати, почему выбрано такое странное число?)
Что именно у вас за slavе-устройства?
Тайм-аут пробовал как 10 мс, так и дефолтные 1000 мс, не влияет. Так же как время между фреймами.
Слэйвы пробовал разных производителей (Овен, Шнейдер, Мицубиси) не влияет.
Каждый слэйв физически отдельный прибор. Пробовал разные приборы на разных портах, не влияет.
Повторюсь, в циклическом режиме не было ни одной ошибки по обоим портам. Полтора десятка слейвов в сумме. Когда понадобилось некоторые чтения/записи делать по условию попробовал перейти на обмен по "переднему фронту". Сначала пробно первый порт, три слэйва, без проблем. Потом второй порт, больше 10 слейвов - появились ошибки на первом порту. В тестовых целях уменьшал количество слейвов, в процентном значении ошибок становилось меньше и совсем пропадают при трех приборах суммарно. Предполагаю проблема в производительности RT ядра СПК.
Мы изучим эту ситуацию, спасибо.
Провели эксперимент с вашим проектом - за 1000 транзакций ни одной ошибки.
В нашем тесте время между фреймами было установлено в 20 мс, а таймаут - в 500.
Вложение 54691
СПАСИБО! Да, установка фреймов в 20 мс помогла. Хотя это и в некотором роде профанация. Фрейм, он же "интервал тишины" должен составлять не менее 3,5 символов. При скорости 38400 как у меня это 91 мкс.
Установив фреймы в 20 мс я теряю треть скорости обмена. Ок, субъективно пользователю не заметно, пусть будет так.
P.S. Только сейчас понял, у СПК нет такого параметра, как "количество повторов". У всех он по умолчанию равен трем и не помню чтобы я когда-то его уменьшал. Возможно в этом причина - у вас делается только одна попытка связи и из-за этого видно ошибки связи?
Это не профанация. Данный параметр характеризует не "интервал тишины" (inter-frame delay в терминах спецификации Modbus), а задержку между получением ответа и отправкой следующего запроса (Turnaround delay). Вы можете прочитать про нее в 2.4.1 cпецификации.Цитата:
Да, установка фреймов в 20 мс помогла. Хотя это и в некотором роде профанация. Фрейм, он же "интервал тишины" должен составлять не менее 3,5 символов.
Цитата:
Nevertheless a delay is respected by the Master in order to allow any slave to process the current request before sending a new one. This delay is called "Turnaround delay".
Therefore the master goes into "Waiting Turnaround delay" state before going back in "idle" state and before being able to send another request.
... Typically the Response time-out is from 1s to several second at 9600 bps; and the Turnaround delay is from 100 ms to 200ms.
Вы правы - в стандартном драйвере CODESYS переповторов нет.Цитата:
P.S. Только сейчас понял, у СПК нет такого параметра, как "количество повторов". У всех он по умолчанию равен трем и не помню чтобы я когда-то его уменьшал.
В нашей библиотеке OwenCommunication этот параметр есть.
Добрый день. Когда ожидаются СПК110 с разрешением экрана больше, чем 800х480? И возможно ли будет обновить уже приобретенные СПК110 новой прошивкой?