Показано с 1 по 3 из 3

Тема: Межсимвольный таймаут OPC-сервера

  1. #1

    По умолчанию Межсимвольный таймаут OPC-сервера

    Столкнулся со следующей проблемой. Использую две конфигурации OPC-сервера, они почти одинаковые, разница в одном считываемом регистре. Все адреса одинаковые, контроллеры одинаковые, в общем, всё одинаковое. Но одна конфигурация работает, вторая - нет. Возникает ошибка, причину которой, естественно, сервер не сообщает. Пришлось буквально переписывать на бумагу все параметры обеих конфигураций и сравнивать. Оказалось, что отличие только одно: у работающей конфигурации межсимвольный таймаут "ноль", у неработающей - 15 мс. Изучение справки по OPC-серверу показало, что нулевое значение таймаута - это значение по умолчанию. Значит, 15 мс откуда-то взялось. Углубившись в программу контроллера, удалось выяснить, что именно в ней при инициализации MODBUS устанавливается межсимвольный интервал в 15 мс. Уже хорошо.

    Теперь логические выкладки.
    1. Известно, что таймаут - это время ожидания, при превышении которого считается, что событие не произошло, и возникает ошибка.
    2. Если выставить значение таймаута, большее фактического межсимвольного интервала, то ошибки возникнуть не должно.
    3. Если при значении таймаута "ноль" ошибка не возникает, значит, фактическое значение межсимвольного интервала меньше или равно нулю.
    4. Если при значении таймаута 15 мс ошибка возникает, значит, фактическое значение межсимвольного интервала больше или равно 15 мс.

    Последние два положения противоречат друг другу, поэтому пришлось методом перебора значений таймаута от нуля и до.... выяснять, при каких значениях ошибка будет возникать, а при каких - нет. Оказалось, что работает при нуле и при значениях, больших 15 мс.
    Отсюда следует, что при значении "ноль" OPC-сервер вообще не считает, сколько мс проходит между символами, а ждёт до упора. Таким образом, на самом деле это не ноль, а бесконечность. На достижение понимания этого простого посыла ушло 2 часа рабочего времени.

    Если бы в справке было нормально описано, что означает нулевой таймаут, да если бы OPC-сервер сообщал, по какой именно причине возникла ошибка! Сколько времени можно было бы сэкономить!
    Последний раз редактировалось Roman62rus; 21.05.2015 в 13:16.

  2. #2

    По умолчанию

    На самом деле когда межсивольный таймаут установлен равным нулю, то его значение устанавливается равным 50 мс.
    Мы отобразим это в справке
    Спасибо.

  3. #3

    По умолчанию

    Спасибо. Это поможет многим.

Похожие темы

  1. Перезапуск opc-сервера
    от Andrew_Stranger в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 09.06.2022, 15:32
  2. Менять адрес OPC-сервера
    от Flutter в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 29.09.2014, 20:34
  3. Настройка универсального OPC сервера
    от Salvafion в разделе Master SCADA 3
    Ответов: 8
    Последнее сообщение: 08.09.2011, 22:29
  4. настройка ПЛК Овен 150 и OPC сервера
    от danila в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 19.03.2008, 09:34
  5. перезапуск Opc сервера
    от svavan в разделе Помощь Разработчикам
    Ответов: 5
    Последнее сообщение: 16.01.2008, 12:08

Ваши права

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