Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

Тема: Как уменьшить таймаут ожидания ответа

  1. #11

    По умолчанию

    Исключение подразумевает случайный сбой, я же говорю о прямой связи - выключили автомат на каком-то шкафу - прибор отвалился из сетки - пошли тормоза. Автомат включили - все работает. Многократные запросы к отвалившемуся прибору и паузы между ними я вижу своими глазами по светодиоду на преобразователе RS232-RS485. Все полученные данные обрабатываются в управляющих алгоритмах и пишутся в файл. Если бы мы получали мусор, то у нас бы пошло спонтанное включение-выключение узлов и т.п., все данные можно просмотреть на графиках и весь неадекват мы бы давно уже увидели.

  2. #12
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    я посмотрел примеры идущие с библиотекой для дельфи, но что то так и не нашел, код подобный Вашему, везде функция ReadUInt запускается один раз, а у Вас перед циклом запущена и в теле цикла насколько я понимаю может прогнаться, это с какой целью сделано, результаты работы изменяются, если закомментировать цикл

  3. #13

    По умолчанию

    А что в коде то непонятно.
    1.Выбираем активный порт, если ОК, то дальше.
    2.Пытаемся прочитать ReadUInt.
    3.Далее если RetryCount=0 (у нас он или 0 или 1) , то без цикла, и если не было ошибки, то:
    4.Result := True и считанное значение в Value.
    Если же RetryCount не ноль, то входим в цикл и сразу же проверяем результат предыдущего ReadUInt, если было ОК, то второй раз не считываем, а выходим на п.4. Если же была ошибка, то пытаемся прочитать RetryCount-раз.
    От значения переменной RetryCount характер работы совершенно не меняется.

  4. #14
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    а как себя ведет такой цикл когда начальное значение равно единице, а считать надо до нуля, тут не может быть выбрашено исключение?

    И опять же, если прибор отсутствует то значит будет ошибка и в теле цикла бреак не сработает, а следовательно Вы повторно отправите запрос получив еще раз ошибку, а кто то утверждал
    Повторы делает сама функция owen_io.ReadUInt и ей подобные!
    Последний раз редактировалось capzap; 23.09.2012 в 22:41.

  5. #15

    По умолчанию

    Если RetryCount=0, то библиотека делает 5 повторов, если RetryCount=1, то библиотека делает 10 повторов, так понятнее?
    Наши программы на этом движке работают не первый год и глюков кроме вышеописанного не наблюдалось.

  6. #16
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от Andrey_M Посмотреть сообщение
    Если RetryCount=0, то библиотека делает 5 повторов, если RetryCount=1, то библиотека делает 10 повторов, так понятнее?
    Наши программы на этом движке работают не первый год и глюков кроме вышеописанного не наблюдалось.
    давайте так, я может тонкостей не знаю, но мне кажется что когда есть разница между начальным значением и значением условия окончания цикла, цикл будет считать в любом случае, только знак приращения сменится на соответствующий, если же начало равно концу, то цикл выполнится один раз
    Раз уж Вы пишите, что глюк с самого начала использования, то можно попытатся изменить функцию, если пришла ошибка то сразу выходите из функции, дайте другим приборам опроситься, а если через цикл опросоа снова с этого прибора придет ошибка, то принять меры к доведению до оператора сообщения о неисправности

  7. #17

    По умолчанию

    Ну как вы не поймете. Я вызываю функцию owen_io.ReadUInt и она сама выполняется 2 секунды если нет ответа от прибора! Никакие циклы и проверки тут не причем!
    А по любым языкам программирования for I := 1 to 0 do никогда не выполняется тело цикла.

  8. #18

    По умолчанию

    Сегодня специально накидал тест и проверил еще раз. Раз в 5 сек делаю пять запросов. Если ответа от прибора нет библиотека делает два запроса на каждую функцию ReadUInt, время ее выполнения в среднем 640 мсек. Если прибор отвечает, то время выполнения ReadUInt 16 мсек.
    Вот лог программы:

    Код:
    Время : 16:21:33,578
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:34,217
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:34,859
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:35,500
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:36,140
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:36,781
    
    Время : 16:21:38,577
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:39,217
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:39,859
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:40,500
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:41,139
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:41,780
    
    Время : 16:21:43,592
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:44,233
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:44,874
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:45,514
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:46,155
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:46,795
    
    Время : 16:21:48,593
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:49,234
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:49,874
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:50,514
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:51,155
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:51,796
    
    Время : 16:21:53,593
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:54,234
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:54,874
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:55,514
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:56,156
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:56,796
    
    Время : 16:21:58,592
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:59,233
    Ошибка чтения : Устройство не отвечает
    Время : 16:21:59,874
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:00,514
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:01,156
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:01,795
    
    Время : 16:22:03,593
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:04,233
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:04,874
    Ошибка чтения : Устройство не отвечает
    Время : 16:22:05,515
    Ошибка чтения : Ошибочный ответ от прибора
    Время : 16:22:06,125
    Прочитано : 0
    Время : 16:22:06,436
    
    Время : 16:22:08,592
    Прочитано : 0
    Время : 16:22:08,592
    Прочитано : 0
    Время : 16:22:08,609
    Прочитано : 0
    Время : 16:22:08,624
    Прочитано : 0
    Время : 16:22:08,640
    Прочитано : 0
    Время : 16:22:08,656
    
    Время : 16:22:13,592
    Прочитано : 0
    Время : 16:22:13,592
    Прочитано : 0
    Время : 16:22:13,609
    Прочитано : 0
    Время : 16:22:13,624
    Прочитано : 0
    Время : 16:22:13,640
    Прочитано : 0
    Время : 16:22:13,655
    
    Время : 16:22:18,592
    Прочитано : 0
    Время : 16:22:18,592
    Прочитано : 0
    Время : 16:22:18,608
    Прочитано : 0
    Время : 16:22:18,625
    Прочитано : 0
    Время : 16:22:18,640
    Прочитано : 0
    Время : 16:22:18,655
    
    Время : 16:22:23,592
    Прочитано : 0
    Время : 16:22:23,592
    Прочитано : 0
    Время : 16:22:23,608
    Прочитано : 0
    Время : 16:22:23,625
    Прочитано : 0
    Время : 16:22:23,640
    Прочитано : 0
    Время : 16:22:23,656
    
    Время : 16:22:28,592
    Прочитано : 0
    Время : 16:22:28,592
    Прочитано : 0
    Время : 16:22:28,609
    Прочитано : 0
    Время : 16:22:28,625
    Прочитано : 0
    Время : 16:22:28,639
    Прочитано : 0
    Время : 16:22:28,655
    
    Время : 16:22:33,593
    Прочитано : 0
    Время : 16:22:33,593
    Прочитано : 0
    Время : 16:22:33,608
    Прочитано : 0
    Время : 16:22:33,625
    Прочитано : 0
    Время : 16:22:33,640
    Прочитано : 0
    Время : 16:22:33,655
    
    Время : 16:22:38,593
    Прочитано : 0
    Время : 16:22:38,593
    Прочитано : 0
    Время : 16:22:38,608
    Прочитано : 0
    Время : 16:22:38,625
    Прочитано : 0
    Время : 16:22:38,639
    Прочитано : 0
    Время : 16:22:38,655
    Вложения Вложения

  9. #19

    По умолчанию

    Похоже на этом форуме не только спецов, но даже и модераторов нет.

  10. #20
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    ну почему же спецов нет, в поиске если набрать хотя бы имя библиотеки, то найдутся целые темы, где есть вопросы по работе с ней и ответы тех кто с ней работает

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Время ответа ТРМ202
    от незарегистрированный в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 20.07.2013, 19:52
  2. Ответов: 8
    Последнее сообщение: 29.03.2011, 14:07
  3. Ответов: 18
    Последнее сообщение: 10.07.2009, 01:33
  4. можно ли уменьшить время запуска плк
    от Sniper007 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 12.05.2009, 17:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •