Вложение 22014
оба устройства настроены одинаково. на 115200
Вид для печати
Вложение 22014
оба устройства настроены одинаково. на 115200
поменял 04 на 03. не помогло.
10мс цикл на цикл основной программы... и при этом 10мс между фреймами... не будет работать.
Попробуйте
1) Увеличить время в MainTask до 50мс.
2) уменьшить время между фреймами до 2-3мс
3) Скорость на порту - 115200
4) Время опроса кратно времени цикла задачи (50, 100, 150, 200... мс)
и все будет хорошо.
и все будет работать нормально.
P.S. Ждем результатов
Задача с визуализацией у Вас отдельно выполняется?
На визуализацию обычно ставлю 200 - 400мс
Скорости 115200 нигде в своих проектах не использую, так как опытным путем нашел меньшие скорости, но с большей устойчивостью соединения.
9600,19200,38400 Тем более где бы не соединял, везде есть помехи.
А мне интересно, зачем закладывать в проект СПК + модули, если критична задержка?
В любом варианте задержка будет плавать.
ПЛК110 + быстрые входа\выхода - вот там и нужно играться.
Давайте посчитаем?
Дано:
время на основную программу в 10мс
временя между фреймами в 2 мс
Используется каналов на порту - 4 (по 2 на каждом из устройств)
каждый из каналов подразумевает работу в режиме запрос от мастера - ответ от слейва.
То есть имеем
{запрос 8-10байт} - {пауза 2 мс} { ответ 6-8 байт} {пауза 2 мс} на каждый из каналов. У Вас используется 4 канала.
Усредним, предположим что длина запроса и ответа одинакова и =10 байтам. 10 байт - ориентировочно 100 бит. 100 бит при скорости 115200 - это 1/1152 сек, то есть около 1 мс. Соответственно на 1 опрос одного канала потребуется:
1+2+1+2 мс, то есть 6 мс. (и это не учитывая время, связанное с обработкой запроса слейв устройством, и времени на формирование ответа).
на опрос 4 каналов - 4*6=24 мс.
Вывод. При скорости 115200 и идеальном состоянии линии время выполнения для 4 каналов составляет 24 мс. Меньше не получится чисто физически. Еще докиньте некоторое время на обработку самой вашей программы. Ну к примеру 3 мс (если она почти пустая). Итог - менее 30мс на ПЛК на задачу использовать нереально :( Вы же хотите 10мс.
Не выходит-с.
Если будете пробовать с временем на задачу 30мс - то не забудьте поправить в каналах время опросов. Выставьте там КРАТНОЕ время опроса каналов относительно времени исполнения задачи. в Вашем случае с 10мс переставиьт на 30, и со 100 - на 90 или 120мс. Если в настройке каналов оставите текущие значения - получите нестабильную работу.